如何讓YOLOX模型evaluation輸出漂亮的結(jié)果圖

yolox是曠視做的yolo改進(jìn)模型, performance先不說, 測(cè)試輸出居然只有一個(gè)log, 比隔壁yolov5可謂"寒酸"...
(人家contributor是228 vs 53, 實(shí)習(xí)生救一下啊
那么怎么才能擁有像v5那樣輸出可視化的混淆矩陣還有各種曲線呢
非常簡(jiǎn)單的一手移花接木即可(很丑陋的魔改,能跑通就是勝利,肯定有更好的方法,歡迎指教

重要更新: (2023.03.30)已整理至github,支持coco、voc數(shù)據(jù)集,增加參數(shù)控制曲線采樣率。詳見?YOLOX-eval-visualization(https://github.com/lrioxh/YOLOX-eval-visualization)
更新:log分類的P,R,mAP50,mAP95,類別過多不推薦
正文描述了一些關(guān)鍵修改,略過傳參之類的小細(xì)節(jié)

正文
有兩個(gè)半關(guān)鍵文件:
YOLOX/yolox/evaluators/coco_evaluator.py 這是測(cè)試主函數(shù), 要在這里調(diào)用畫圖函數(shù)和類
yolov5/utils/metrics.py 這里有所有用到的畫圖函數(shù)和類的本體
yolov5/val.py 只需要這里的process_batch一個(gè)函數(shù), 復(fù)制到1.即可
首先將2.文件復(fù)制到Y(jié)OLOX項(xiàng)目中, 做好import. 此時(shí)2.和3.(如果process_batch已經(jīng)復(fù)制好)已經(jīng)不需要了.
剩下就是改寫1.包括四個(gè)部分:
全局修改
添加ConfusionMatrix, ap_per_class, box_iou三個(gè)import和process_batch函數(shù)
主循環(huán)前定義變量, COCOEvaluator類的evaluate函數(shù)內(nèi), for循環(huán)前:
主循環(huán)中, 在循環(huán)最后添加:
循環(huán)完成后, return前
其他正常跑就行, 結(jié)果


因?yàn)闆]找到相關(guān)做法花一下午鼓搗的小trick, 希望能幫到有需要的人