训练完模型后,运行YOLOX中的demo.py推理文件时发生错误,运行代码与错误如下:
运行代码
python tools/demo.py image -f exps/example/yolox_voc/yolox_voc_s.py -c YOLO_outputs/yolox_voc_s_1/best_ckpt.pth --path assets/dog.jpg --conf 0.25 --nms 0.45 --tsize 640 --save_result --device [cpu/gpu]
注意:
-f exps/example/yolox_voc/yolox_voc_s.py
指令中的这个一定要匹配,不是训练之前用来测试的yolox_s.py了,是你自己配置的。不改过来会一直报下面的错误的。
当然,如果上面指令没问题,还是出现这个错误,那就是demo中的类别对应出错了。
拿我自己的举例,我使用的时VOC格式的数据集,但是demo文件中默认的是COCO_CLASSES,那这样肯定会报错,所以我们要在demo.py文件中改过来。
首先,找到 yolox/data/datasets/_init_.py文件,在文件中添加以下代码:
from .voc_classes import VOC_CLASSES
然后进入tools/demo.py文件
将大约在15行
from yolox.data.datasets import COCO_CLASSES
改为
from yolox.data.datasets import VOC_CLASSES
将大约100行左右的Predictor中的cls_names
改为
将300行左右的函数
改为
运行不会报错,成功!NICE!