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

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

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

 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

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

 

  • 6
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
Yolox 是一种目标检测算法,该算法通过简化网络结构,提高了检测速度和准确率。在对 Yolox 结构进行修改时,可以从以下几个方面进行优化。 首先,可以考虑修改特征提取层。Yolox 使用了轻量级的 CSPDarknet53 作为特征提取网络,可以尝试在其基础上进行改进,例如引入更强大的模块或使用更深的网络结构,来提取更丰富的特征信息。 其次,对于 Yolox 中的检测头部(Detection Head),可以进行精细的调整。可以考虑引入更多的特征层级,并对不同尺度的特征图进行融合,以增强对不同大小目标的检测能力。同时,可以尝试使用更高效的检测头部结构,例如 FCOS 或 ATSS 算法,来提高检测精度。 另外,针对 Yolox 中的损失函数,可以进行适当的修改。可以考虑使用更合适的损失函数来平衡目标的定位和分类准确度,例如 Focal Loss 或 GHM Loss,以提高模型的鲁棒性和稳定性。 此外,对于训练策略,可以尝试采用更有效的数据增强技术,如 Mixup 或 Cutmix,以增加数据的多样性和难度,进一步提升模型的泛化能力。 最后,结合硬件平台的特点,可以对 Yolox 进行模型压缩和加速。例如,使用深度可分离卷积、轻量级模块或通道剪裁等技术来减少模型的计算量和参数量,以提高 Yolox 在嵌入式设备上的运行速度和实时性。 综上所述,通过对 Yolox 结构的修改,可以在保持检测准确率的前提下,提高检测速度和模型的适应性,进一步拓展了 Yolox 算法在目标检测领域的应用潜力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值