maskrcnn detectron2问答

1.coco数据集instance的标注格式是什么?

   有一个巨大的json文件,里面关于标注的类目是coco_json['annotations']=[], 每个item是一个segmentation:

"annotations": [{"id": 1, "image_id": 1, "category_id": 95324.0, "iscrowd": 0, "area": 1, "bbox": [0.

其正式定义为:

annotation{
    "id": int,    
    "image_id": int,
    "category_id": int,
    "segmentation": RLE or [polygon],
    "area": float,
    "bbox": [x,y,width,height],
    "iscrowd": 0 or 1,
}

例如:

{"id": 1, "image_id": 199998, "category_id": 1598.0, 
"iscrowd": 0, "area": 1, "bbox": [352.0, 516.0, 96.0, 31.0],
 "segmentation": [[438.0, 539.0], [362.0, 540.0], 
           [360.0, 519.0], [436.0, 518.0]], "width": 720, 
"height": 1160}

 1.1这个json里面的annotaions怎么和图片文件关联的呢?

  json_coco['images']=[], 每个item是一个:

{
	"license":3,
	"file_name":"COCO_val2014_000000391895.jpg",
	"coco_url":"http:\/\/mscoco.org\/images\/391895",
	"height":360,"width":640,"date_captured":"2013-11-14 11:18:45",
	"flickr_url":"http:\/\/farm9.staticflickr.com\/8186\/8119368305_4e622c8349_z.jpg",
	"id":391895
},

 这里id和file_name做了关联,而每个annotation字段有id,间接关联了file_name

1.2 那么json文件和图片文件夹该怎么放置

   是没有要求的,因为detectron2里面,加载coco数据集使用:

from detectron2.data.datasets import register_coco_instances
register_coco_instances("fruits_nuts", {}, "./data/trainval.json", "./data/images")

2.detectron2如何训练maskrcnn?

  参见:https://www.dlology.com/blog/how-to-train-detectron2-with-custom-coco-datasets/

https://colab.research.google.com/github/Tony607/detectron2_instance_segmentation_demo/blob/master/Detectron2_custom_coco_data_segmentation.ipynb#scrollTo=Lnkg1PByUjGQ

3.对于maskrcnn生成的mask,如何生成多边形拟合mask?

  Python: cv2.approxPolyDP(curve, epsilon, closed[, approxCurve]) → approxCurve

curve,输入的二维点对, epsilon 生成的多边形和mask contour最大的距离, closed 是否封闭  

发布了159 篇原创文章 · 获赞 55 · 访问量 36万+

猜你喜欢

转载自blog.csdn.net/northeastsqure/article/details/103955075