PaddlePaddle / PaddleDetection

Object Detection toolkit based on PaddlePaddle. It supports object detection, instance segmentation, multiple object tracking and real-time multi-person keypoint detection.
Apache License 2.0
12.65k stars 2.87k forks source link

solo v2 数据标注与训练请教 #2178

Closed qiyuezhiguang closed 3 years ago

qiyuezhiguang commented 3 years ago

问题1--数据标注。按照提供的文档教程标注自己的数据集,有一个地方不明白,标注的时候,如果一个图片中包括多个person,如果类别全部都是person的话,标注结果与语义分割一致,难以区分不同的实例。

如果每个实例标注为person_1,person_2等时,使用自带的x2coco转换生成的json文档中,可以看到类别为person_1,person_2等,具有不同的id,如下: "categories": [ { "supercategory": "component", "id": 1, "name": "person_1" }, { "supercategory": "component", "id": 2, "name": "person_2" }, { "supercategory": "component", "id": 3, "name": "person_3" }, { "supercategory": "component", "id": 4, "name": "person_4" } ], 在annotation中也可以看到segmentaion中,person也具有不同id,应该是被划为不同的类别了,看到与coco数据集中同一类别,不同实例具有相同的id不一致。 "annotations": [ { "segmentation": [ [ 725.9830508474577, 548.2881355932204, 1019.2033898305085, 509.30508474576277, 1032.7627118644068, 531.3389830508474, 1017.5084745762713, 566.9322033898305, 1005.6440677966102, 563.542372881356, 732.7627118644068, 597.4406779661017 ] ], "iscrowd": 0, "image_id": 1, "bbox": [ 725.0, 509.0, 307.0, 88.0 ], "area": 27016.0, "category_id": 1, "id": 2 },

问题2--训练时的feed数据 由于coco数据集的reader最终输出的是image、bbox和segmentation的具体坐标,使用solov2进行训练时,还需要将segmentation的具体坐标转化为与网络对应的输出,包括类别分支和语义分支,其中由于使用了fpn,会有多个尺度的分支。在脚本中一直找不到这些转换代码在哪里。本人想对solo进行大改,在输出中增加一个分支,以执行多任务的需要。 在tools/train里面,查到训练的命令是outs = exe.run(compiled_train_prog, fetch_list=train_values),而且在该命令行的循环中没有看到 for iter_id, data in enumerate(train_loader)该行。因为paddle的教程中,理论上data就是转换后的与网络数据一致的数据。

yghstill commented 3 years ago

(1)实例分割会区分不同实例,标注时对每个单个的人标注成person就行,类别id要一致。 (2)如果想改solov2的代码,可以根据solov2的architecture 进行修改:https://github.com/PaddlePaddle/PaddleDetection/blob/release/2.0-beta/ppdet/modeling/architectures/solov2.py#L57

lingdujunshang commented 9 months ago

楼主你好,迷茫之际看到了你的问题,是这样的,我也想跑solov2实例分割,但是没有找到相关的自定义数据准备教程,内心充满疑惑,实例分割怎么标?用什么工具标注,如何转coco等,可否指点一二,,有教程链接也行,,,我可以自己看