深度学习目标检测项目实战(二)—基于Faster-RCNN的交通标志检测

深度学习目标检测项目实战——基于Faster-RCNN的交通标志检测

目前目标检测算法有很多,流行的就有faster-rnn和yolov,本文使用了faster-rnn框架进行训练,效果还不错,准确率,当然也可以使用更高版本的Yolov进行实战。本代码使用的是keras框架,本代码参考于github开源的faster rcnn代码

Faster-RCNN

原理有很多大佬都写得很好,例如:
Faster-RCNN原理详解—该算法是其他算法的基础

Faster RCNN系列算法原理讲解(笔记)

数据集准备

https://drive.google.com/open?id=1qyMnM452ESdi5V_FOX9D_O1Q9S760SZh
使用越南交通标志数据集,不能翻墙的同学,我已整理了百度网盘下载:
链接:https://pan.baidu.com/s/1PUx1xkQWe_IVgP-p6PBJAA?pwd=n3nl
提取码:n3nl

基础代码准备
本工程基于开源代码进行修改。

环境

tensorflow==1.15.0
keras==2.3.1

前提是电脑或者服务器有cuda10.0,才能使用gpu训练,如果没有,只能安装tensorflow 1.14版本及以下,keras 2.2.4版本及以下。本人建议使用gpu训练。其他包缺什么pip什么即可,本人python使用3.6版本。

使用步骤

1.将数据集放在工程文件夹
在这里插入图片描述
可以看到已经有train和val的txt文件。

2.修改参数
这里的参数根据自己具体需要去修改,主要包括:
(1)train_frcnn.py里面的:
在这里插入图片描述
比如train_path,选择哪个模型(fcnet或vgg),还有迭代次数这些。
(2)config.py:
在这里插入图片描述
可以修改anchor的尺寸,比例。

3.训练
运行

python train_frcnn.py

4.训练完的结果:
在这里插入图片描述
hdf5保存权重偏置参数,pickle保存模型网络参数。损失如下:
在这里插入图片描述
准确率如下:
在这里插入图片描述
5.测试
在dataset/test_img里面放置需要检测的图片,几张都行
运行

python test_frcnn.py

结果保存在results_img文件夹里面:
在这里插入图片描述

识别结果:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
mAP的值:
在这里插入图片描述
这里需要注意的是,置信空间是从0.2到0.7(间隔0.05)

thresholds = np.arange(start=0.2, stop=0.7, step=0.05)

可见每个框的分数挺高的,导致Precision/Recall都是直线,如果到1.0的话后面应该会有所下降。
另外,有些标志类别的AP为0,有两种原因,一种是测试数据集不够平衡,那些AP为0的交通标志比较少,或者比较小,刚才没测出来,一种是模型对此交通标志的训练还不够好(训练数据集的问题)。最终导致mAP值0.46。

好了,今天的学习到这里,保持下一个项目的学习与研究。

需要代码的同学私信,想训练其他交通标志数据集的也可以私。

  • 0
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夏融化了这季节

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值