利用Faster RCNN实现交通标志识别(检测小目标)

针对小目标交通灯检测难题,采用FasterRCNN模型并优化参数,提高检测精度,特别是交通灯的mAP从0.48提升至0.55。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

a.k.a.曲老师的期末大作业

观察了一下老师的给的训练集,一共有五类:交通灯d,指示标志s,指路标志l,禁令标志z,警告标志j。训练集里的交通灯太小了,最小的只有3个像素,之前读的一些论文都提到YOLO的缺点就是检测小目标物体,于是我决定选择Faster RCNN 😃

第一步 训练自己的数据集

整体流程没啥好说,完全参照大佬的教程:
使用faster-rcnn.pytorch训练自己数据集(完整版)
主要是训练的过程中,出现了loss:nan的情况,这个是因为代码中有数据扩充的部分,在扩充的过程中,边界框的坐标xmin,xmax,ymin,ymax出现了错误,因此需要在lib/dataset/pascal_voc.py里修改_load_pascal_annotation函数

  # Load object bounding boxes into a data frame.
        wh = tree.find('size')
        w, h = int(wh.find('width').text), int(wh.find('height').text)
        for ix, obj in enumerate(objs):
            bbox = obj.find('bndbox')
            # Make pixel indexes 0-based
            x1 = float(bbox.find('xmin').text)
            y1 = float(bbox.find('ymin').text)
            x2 = float(bbox.find('xmax').text)
            y2 = float(bbox.find('ymax').text)
            
            x1 = max(x1, 0)
            y1 = max(y1, 0)
            x2 = min(x2, w)
            y2 = min(y2, h)
            

第二步 利用训练好的模型测试

终端输入README里的提示
python test_net.py --dataset pascal_voc --net res01 --checksession 1 --checkepoch 20 --checkpoint 5047 --cuda

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值