yolo分割模型推理结果mask不贴边问题
mask是在bbox内部提取,mask边缘像素被bbox边占用,导致2个像素左右黑边。
原因:
mask是在bbox内部提取,mask边缘像素被bbox边占用,导致2个像素左右黑边。
解决:在/segment/predict.py中的以下位置masks = ops.process_mask_native 或者ops.process_mask进入,找到以下图片中crop_mask函数中的红色框位置:
因为mask是在bbox内部提取,如果把bbox去掉则会导致背景误识别。
return masks * ((r >= x1-2) * (r < x2+2) * (c >= y1) * (c < y2))
elif self.args.retina_masks:
pred[:, :4] = ops.scale_boxes(img.shape[2:], pred[:, :4], orig_img.shape)
masks = ops.process_mask_native(proto, pred[:, 6:], pred[:, :4], orig_img.shape[:2]) # HWC
else:
masks = ops.process_mask(proto, pred[:, 6:], pred[:, :4], img.shape[2:], upsample=True) # HWC
pred[:, :4] = ops.scale_boxes(img.shape[2:], pred[:, :4], orig_img.shape)

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)