如何让YOLOX模型evaluation输出漂亮的结果图

yolox是旷视做的yolo改进模型, performance先不说, 测试输出居然只有一个log, 比隔壁yolov5可谓"寒酸"...
(人家contributor是228 vs 53, 实习生救一下啊
那么怎么才能拥有像v5那样输出可视化的混淆矩阵还有各种曲线呢
非常简单的一手移花接木即可(很丑陋的魔改,能跑通就是胜利,肯定有更好的方法,欢迎指教

重要更新: (2023.03.30)已整理至github,支持coco、voc数据集,增加参数控制曲线采样率。详见 YOLOX-eval-visualization(https://github.com/lrioxh/YOLOX-eval-visualization)
更新:log分类的P,R,mAP50,mAP95,类别过多不推荐
正文描述了一些关键修改,略过传参之类的小细节

正文
有两个半关键文件:
YOLOX/yolox/evaluators/coco_evaluator.py 这是测试主函数, 要在这里调用画图函数和类
yolov5/utils/metrics.py 这里有所有用到的画图函数和类的本体
yolov5/val.py 只需要这里的process_batch一个函数, 复制到1.即可
首先将2.文件复制到YOLOX项目中, 做好import. 此时2.和3.(如果process_batch已经复制好)已经不需要了.
剩下就是改写1.包括四个部分:
全局修改
添加ConfusionMatrix, ap_per_class, box_iou三个import和process_batch函数
主循环前定义变量, COCOEvaluator类的evaluate函数内, for循环前:
主循环中, 在循环最后添加:
循环完成后, return前
其他正常跑就行, 结果


因为没找到相关做法花一下午鼓捣的小trick, 希望能帮到有需要的人