CVHub520 / X-AnyLabeling

Effortless data labeling with AI support from Segment Anything and other awesome models.
GNU General Public License v3.0
3.82k stars 442 forks source link

自定义训练模型yolov8-seg预测标注掩码粗糙,可否结合sam输出细粒度精确掩膜标注 #387

Closed haiyang-HE closed 4 months ago

haiyang-HE commented 5 months ago

我通过自己的数据集训练了一个yolov8x-seg模型,加载到X-AnyLabeling进行新数据预测掩膜效果不好。由于数量多手动校准很费劲,曾经尝试过使用ultralytics.data.annotator的auto_annotate(结合了sam_b.pt)函数可以输出精确的掩膜。 粗糙掩膜: yuanlai

精确掩膜: xiugai

应如何结合sam在X-AnyLabeling直接预测输出细粒度的精确掩膜标注?

我观察到类似的yolov8_efficientvit_sam.yaml文件将sam两者的结合,尝试过报但错未很好的解决。

如果可以指点帮助,将不胜感激!!

CVHub520 commented 5 months ago

您好,请问具体是报什么错了?

haiyang-HE commented 5 months ago

您好,请问具体是报什么错了?

报错Error in predict_shapes: list index out of range 这是需要单独生成自定义的sam.onnx文件吗? 另外如果可以,能直接得到yolov8x-seg预测结果的精细度输出,而不伴随vit_h.decoder和vit_h.encoder(vit_h.decoder和vit_h.encoder需要的时候用专门的sam模型补充标注)

CVHub520 commented 5 months ago

不需要自定义的sam.onnx模型,你可以直接用model_zoo上提供的模型。

作为示例参考,这边建议您先根据这个yolov8n_efficientvit_sam_l0_vit_h进行修改,这个案例是通过yolov8的结果作为sam的box提示;同理,如果你是分割模型,可以取一个最大外接矩,结合yolov8_seg和yolov8n_efficientvit_sam_l0_vit_h修改下就行了。

自定义模型适配操作可参考custom_model教程。

haiyang-HE commented 5 months ago

谢谢指点,我还想问一下yolov8n_efficientvit_sam_l0_vit_h模型如果用yolov8l模型作为提示具有兼容性吗,还是说必须要yolov8n

CVHub520 commented 5 months ago

谢谢指点,我还想问一下yolov8n_efficientvit_sam_l0_vit_h模型如果用yolov8l模型作为提示具有兼容性吗,还是说必须要yolov8n

都可以的,不影响。

ZHIZIHUABU commented 4 months ago

@CVHub520 @haiyang-HE 请问使用yolov8n-sam这个模型支持对推理的标签进行微调吗,又因为很多标签分割的不准确?

CVHub520 commented 4 months ago

@CVHub520 @haiyang-HE 请问使用yolov8n-sam这个模型支持对推理的标签进行微调吗,又因为很多标签分割的不准确?

你只需要通过配置文件指定替换掉对应部分的模型的即可。