You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

YOLOv8卫星图像建筑屋顶分割标签可视化异常问题求助

YOLOv8分割标签可视化异常的原因及解决方法

核心问题原因

YOLOv8的实例分割标签格式不需要额外添加bbox的x_center/y_center/width/height字段,你当前的标签多了这四个参数,导致YOLO解析时错误地将这四个值当作多边形的前四个顶点,最终出现可视化错位。

YOLOv8分割标签的标准格式为:

<class_id> <x1> <y1> <x2> <y2> ... <xn> <yn>

所有坐标均为相对于图像宽高的归一化值(0-1区间),无需额外的bbox参数。

标签问题验证

你提供的标签示例:

3 0.4068 0.1871 0.3874 0.3742 0.6005 0.0844 0.4320 0.3742 0.2131 0.2514 0.3691 0.0000 0.4462 0.0000

其中3是类别,后面的0.4068 0.1871 0.3874 0.3742是你额外添加的bbox参数,YOLO会把这四个值当成多边形的前两个点,再加上后面的真实多边形点,自然会绘制出错误形状。而你自己的可视化代码跳过了这四个参数,只解析后面的多边形点,所以显示正常。

解决步骤

  1. 修改标签生成函数,移除bbox相关参数,直接输出类别+扁平化的多边形坐标:
    修改export_yolo_labels函数中的yolo_text_format行:
    # 原错误代码:
    # yolo_text_format = f"{label_class} {x_center:.4f} {y_center:.4f} {bbox_width:.4f} {bbox_height:.4f} {flat_polygon}"
    
    # 修改后正确代码:
    yolo_text_format = f"{label_class} {flat_polygon}"
    
  2. 重新生成所有标签文件,替换原有错误标签。
  3. 验证格式:使用YOLOv8自带的val命令或ultralytics.utils.plotting工具,重新检查标签可视化效果。

额外检查点

  • 确认flatten_polygon函数正确将多边形点转为x1 y1 x2 y2 ...的空格分隔字符串,无顺序错误或遗漏。
  • 确保所有多边形坐标均为相对于图像宽高的归一化值(你的原始JSON数据已满足此要求)。

内容的提问来源于stack exchange,提问作者Sakuragi97

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 09:52:05