【学习记录】Yolox检测踩坑记录

1.我们现在已经训练好了yolox的模型,但是在使用我们训练好的去测试我们训练出来的模型的精度的时候我是遇到了几个坑。首先先上图,我训练出模型最后打印出来的mAP值和我们训练出来的结果权重文件。

【学习记录】Yolox检测踩坑记录_第1张图片

我们通常使用的权重文件是YOLOX-main下的best_ckpt.pth​文件。 

【学习记录】Yolox检测踩坑记录_第2张图片 2. 踩坑记录之我们直接拿训练好的权重去测试,就会发现我们目标框的标签名字很奇怪,并不是我们自己数据集的标签,所以在我们去测试我们模型的准确性的时候我们需要修改tools下的demo.py。我们需要修改三个地方,如下所示:

#1.首先我们在代码的15行import的时候需要加上VOC_CLASSES
14 from yolox.data.data_augment import ValTransform
15 from yolox.data.datasets import COCO_CLASSES, VOC_CLASSES
16 from yolox.exp import get_exp


#2.我们需要在代码的105行的cls_names原来的给注释了,修改为cls_names=VOC_CLASSES,
100 class Predictor(object):
101     def __init__(
102         self,
103         model,
104         exp,
105         cls_names=VOC_CLASSES,
106         #cls_names=COCO_CLASSES,
107         trt_file=None,
108         decoder=None,


#3.我们需要给295行代码中的COCO_CLASSES改为VOC_CLASSES。
295     predictor = Predictor(model, exp, VOC_CLASSES, trt_file, decoder, args.device, args.legacy)

296     #predictor = Predictor(model, exp, COCO_CLASSES, trt_file, decoder, args.device, args.legacy)

297     current_time = time.localtime()

298     if args.demo == "image":

 3.接下来我们就可以进行测试了​。

#测试单张照片
python tools/demo.py image -f ./yolox_voc_s.py -c /home/jsj/YOLOX/YOLOX_outputs/yolox_voc_s/best_ckpt.pth --path /home/jsj/img/img745.jpg --conf 0.25 --nms 0.45 --tsize 640 --save_result --device gpu

#批量测试
python tools/demo.py image -f ./yolox_voc_s.py -c /home/jsj/YOLOX/YOLOX_outputs/yolox_voc_s/best_ckpt.pth --path /home/jsj/img/ --conf 0.25 --nms 0.45 --tsize 640 --save_result --device gpu

#视频测试
python tools/demo.py video -f ./yolox_voc_s.py -c /home/jsj/yolox/YOLOX-main/YOLOX_outputs/yolox_voc_s/best_ckpt.pth --path /home/jsj/yolox/demo1.avi --conf 0.25 --nms 0.45 --tsize 576 --save_result --device gpu

本博主新开公众号,欢迎大家扫码关注支持一下,感谢。

【学习记录】Yolox检测踩坑记录_第3张图片

 

你可能感兴趣的:(cv,pytorch,深度学习,神经网络,yolox,目标检测)