Szu_Loosen 2023-07-23 21:43 采纳率: 0%
浏览 7

MMDetection训练时遇到的问题

训练的时候mAP直接归零了

img


然后可视化测试图像,发现图像里的标签出现了错误:

img

但我标注文件里的对应关系是正确的:
(以下是该图片的标注信息)

{"id": 52, "image_id": 12, "category_id": 9, "bbox": [23, 358, 23, 50], "area": 1150, "iscrowd": 0}, 
{"id": 53, "image_id": 12, "category_id": 9, "bbox": [43, 359, 22, 38], "area": 836, "iscrowd": 0}, 
{"id": 54, "image_id": 12, "category_id": 9, "bbox": [147, 224, 15, 19], "area": 285, "iscrowd": 0}, 
{"id": 55, "image_id": 12, "category_id": 1, "bbox": [353, 61, 27, 38], "area": 1026, "iscrowd": 0}, 
{"id": 56, "image_id": 12, "category_id": 4, "bbox": [222, 301, 21, 12], "area": 252, "iscrowd": 0}, 
{"id": 57, "image_id": 12, "category_id": 7, "bbox": [211, 363, 25, 22], "area": 550, "iscrowd": 0},
{"id": 58, "image_id": 12, "category_id": 1, "bbox": [204, 316, 49, 34], "area": 1666, "iscrowd": 0}, 
{"id": 59, "image_id": 12, "category_id": 1, "bbox": [241, 340, 39, 31], "area": 1209, "iscrowd": 0}, 
{"id": 60, "image_id": 12, "category_id": 1, "bbox": [262, 312, 44, 35], "area": 1540, "iscrowd": 0},
{"id": 61, "image_id": 12, "category_id": 1, "bbox": [293, 333, 45, 32], "area": 1440, "iscrowd": 0}, 
{"id": 62, "image_id": 12, "category_id": 1, "bbox": [315, 303, 49, 41], "area": 2009, "iscrowd": 0},
{"id": 63, "image_id": 12, "category_id": 1, "bbox": [345, 325, 47, 35], "area": 1645, "iscrowd": 0}, 
{"id": 64, "image_id": 12, "category_id": 1, "bbox": [368, 292, 48, 40], "area": 1920, "iscrowd": 0}, 
{"id": 65, "image_id": 12, "category_id": 1, "bbox": [396, 494, 40, 28], "area": 1120, "iscrowd": 0}


"categories": [{"id": 1, "name": "airplane", "supercategory": "object"}, 
{"id": 2, "name": "boat", "supercategory": "object"}, 
{"id": 3, "name": "camping_car", "supercategory": "object"}, 
{"id": 4, "name": "car", "supercategory": "object"}, 
{"id": 5, "name": "pick-up", "supercategory": "object"}, 
{"id": 6, "name": "tractor", "supercategory": "object"}, 
{"id": 7, "name": "truck", "supercategory": "object"}, 
{"id": 8, "name": "van", "supercategory": "object"}, 
{"id": 9, "name": "vehicle", "supercategory": "object"}, 
{"id": 10, "name": "others", "supercategory": "object"}]}

请问有懂哥可以帮忙分析一下原因吗?万分感谢!

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-07-24 09:13
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:
    • 请看👉 :mmdetection训练自己的数据并评估mAP
    • 除此之外, 这篇博客: mmdetection使用教程及报错中的 mAP测试 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

      可以批量测试模型在测试集数据,使用以下命令:

       python tools/test.py model_train/yolof/yolof_r50_c5_8x8_1x_coco.py model_train/yolof/epoch_70.pth --show 
      --eval bbox
      

      其中的eval可选参数如下:

      ‘evaluation metrics, which depends on the dataset, e.g., “bbox”,’
      ’ “segm”, “proposal” for COCO, and “mAP”, “recall” for PASCAL VOC’

      同时也可以通过以下命令:

      --out=eval/result2.pkl
      

      将测试结果保存成pkl文件。
      最终得到包含mAP0.5,mAP0.5:0.95等参数:

       Average Precision  (AP) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = 0.504
       Average Precision  (AP) @[ IoU=0.50      | area=   all | maxDets=1000 ] = 0.860
       Average Precision  (AP) @[ IoU=0.75      | area=   all | maxDets=1000 ] = 0.538
       Average Precision  (AP) @[ IoU=0.50:0.95 | area= small | maxDets=1000 ] = 0.109
       Average Precision  (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=1000 ] = 0.507
       Average Precision  (AP) @[ IoU=0.50:0.95 | area= large | maxDets=1000 ] = 0.653
       Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = 0.578
       Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=300 ] = 0.578
       Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=1000 ] = 0.578
       Average Recall     (AR) @[ IoU=0.50:0.95 | area= small | maxDets=1000 ] = 0.187
       Average Recall     (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=1000 ] = 0.582
       Average Recall     (AR) @[ IoU=0.50:0.95 | area= large | maxDets=1000 ] = 0.662
      OrderedDict([('bbox_mAP', 0.504), ('bbox_mAP_50', 0.86), ('bbox_mAP_75', 0.538), ('bbox_mAP_s', 0.109), ('bbox_mAP_m', 0.507), ('bbox_mAP_l', 0.653), 
      ('bbox_mAP_copypaste', '0.504 0.860 0.538 0.109 0.507 0.653')])
      

      最终得到的各个模型的测试结果如下:

      modelmAP0.5mAP0.5:0.95
      yolof0.8600.504
      yolov30.9130.564
      atss0.8560.511
      reppoints0.8780.503
      fastrcnn0.8660.522
      fcos0.8670.515
    • 以下回答来自chatgpt:

      问题分析: 根据描述,训练过程中mAP归零并且标签出现错误,可能导致这个问题的原因有很多,包括但不限于以下几个方面: 1. 数据集问题:标注文件中的标签与实际图像不匹配,或者标注文件本身存在错误; 2. 模型配置问题:模型网络结构、训练配置参数等导致了训练过程中出现问题; 3. 数据预处理问题:数据预处理过程中的问题导致了标签错误或训练失败; 4. 代码实现问题:代码实现错误或者库的使用不当导致训练出错。

      解决方案: 根据以上问题分析,可以尝试以下的解决方案来解决问题。

      1. 检查标注文件:首先检查标注文件中的标签是否与实际图像匹配,确保文件没有错误。可以人工检查标签与图像的对应关系是否正确,以及标注的类别命名是否与训练配置文件中的类别名字一致。

      2. 检查模型配置:检查模型配置文件,确保网络结构和训练参数设置正确。可以参考模型的官方文档或示例配置文件,修改和调整相关参数。

      3. 检查数据预处理:检查数据预处理过程中的代码实现,确保数据处理流程正确无误。特别要注意数据增强的方式和参数设置,确保没有对图像或标签造成错误的处理。

      4. 检查代码实现:仔细检查训练过程的代码实现,确保代码逻辑正确。可以尝试使用调试工具进行排查,例如在关键代码处加上日志输出,检查代码运行时的变量值和数据的正确性,或者使用断点调试来定位错误的来源。

      如果尝试了以上的解决方案后仍然解决不了该问题,可以尝试以下方法:

      1. 查看错误提示:在训练过程中是否输出了错误提示,根据错误提示的内容进行排查和解决。
      2. 查看训练日志:根据训练日志中的输出信息,定位问题出现的位置和原因。

      如果你需要更具体的帮助,可以提供更多的错误信息以及相关的代码和配置文件,以便更好地帮助你解决问题。


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 7月23日

悬赏问题

  • ¥15 网站设计与开发职业技能大赛试题
  • ¥20 在使用CESM2.2.0模型进行case.submit过程中出现如下错误(关键词-Map)
  • ¥15 有办法改变通过wifi进入的网站的设置吗
  • ¥15 所以到底怎么算!算到凌晨五点都算不出来!
  • ¥15 label_studio
  • ¥15 请教如何phython发邮件
  • ¥15 linux系统安装问题
  • ¥15 路径规划如何采用矢量法让他们尽量在一个方向
  • ¥15 crypto 一道rsa解密题
  • ¥15 survIDINRI已将生存时间转为数值变量,仍错误 Time variable is not numeric。