# Traffic-signal-recognition--
本项目使用YOLOv4模型,并在对数字信号灯进行数字识别时采用opencv算法。
## 环境安装
所需环境 python =3.7.11 torch==1.2.00
使用
```
pip install -r requirements.txt
```
安装所需的包。
## 文件下载
训练所需的预训练权重可在百度网盘中下载。
链接:https://pan.baidu.com/s/1gKmRdwpQ05fMu1H-mi38zg 提取码:1234
作者训练结果可在下方链接中下载。
链接:https://pan.baidu.com/s/1cLSoWbra612Ezx1EsqOFGQ 提取码: 1234
## 训练过程
1.数据集的准备
**本文使用VOC格式进行训练,训练前需要自己制作好数据集,**
训练前将标签文件放在VOCdevkit文件夹下的VOC2007文件夹下的Annotation中。
训练前将图片文件放在VOCdevkit文件夹下的VOC2007文件夹下的JPEGImages中。
2.数据集的处理
在完成数据集的摆放之后,我们需要利用voc_annotation.py获得训练用的2007_train.txt和2007_val.txt。
修改voc_annotation.py里面的参数。第一次训练可以仅修改classes_path,classes_path用于指向检测类别所对应的txt。
训练自己的数据集时,可以自己建立一个cls_classes.txt,里面写自己所需要区分的类别。
model_data/cls_classes.txt文件内容为:
```python
左转红灯
左转绿灯
...
```
其中内容也可以换成自己需要的。
3. 开始网络训练
**训练的参数较多,均在train.py中,大家可以在下载库后仔细看注释,其中最重要的部分依然是train.py里的classes_path。**
**classes_path用于指向检测类别所对应的txt,这个txt和voc_annotation.py里面的txt一样!训练自己的数据集必须要修改!**
修改完classes_path后就可以运行train.py开始训练了,在训练多个epoch后,权值会生成在logs文件夹中。
4. 训练结果预测
训练结果预测需要用到两个文件,分别是yolo.py和predict.py。在yolo.py里面修改model_path以及classes_path。
**model_path指向训练好的权值文件,在logs文件夹里。
classes_path指向检测类别所对应的txt。**
完成修改后就可以运行predict.py进行检测了。运行后输入图片路径即可检测。
5. 由于本项目不仅要对红绿灯进行识别,还要对倒计时识别,先采用CNN网络预先对数码管数据集进行训练。然后采用OpenCV对第一步预测出来的结果进行切割,然后把切割出来的图像进行二值化,再进行识别。
## 预测过程
在yolo.py文件里面,在如下部分修改model_path和classes_path使其对应训练好的文件;**model_path对应logs文件夹下面的权值文件,classes_path是model_path对应分的类**。
```python
_defaults = {
#--------------------------------------------------------------------------#
# 使用自己训练好的模型进行预测一定要修改model_path和classes_path!
# model_path指向logs文件夹下的权值文件,classes_path指向model_data下的txt
# 如果出现shape不匹配,同时要注意训练时的model_path和classes_path参数的修改
#--------------------------------------------------------------------------#
"model_path" : 'model_data/yolo_weights.pth',
"classes_path" : 'model_data/coco_classes.txt',
#---------------------------------------------------------------------#
# anchors_path代表先验框对应的txt文件,一般不修改。
# anchors_mask用于帮助代码找到对应的先验框,一般不修改。
#---------------------------------------------------------------------#
"anchors_path" : 'model_data/yolo_anchors.txt',
"anchors_mask" : [[6, 7, 8], [3, 4, 5], [0, 1, 2]],
#---------------------------------------------------------------------#
# 输入图片的大小,必须为32的倍数。
#---------------------------------------------------------------------#
"input_shape" : [416, 416],
#---------------------------------------------------------------------#
# 只有得分大于置信度的预测框会被保留下来
#---------------------------------------------------------------------#
"confidence" : 0.5,
#---------------------------------------------------------------------#
# 非极大抑制所用到的nms_iou大小
#---------------------------------------------------------------------#
"nms_iou" : 0.3,
#---------------------------------------------------------------------#
# 该变量用于控制是否使用letterbox_image对输入图像进行不失真的resize,
# 在多次测试后,发现关闭letterbox_image直接resize的效果更好
#---------------------------------------------------------------------#
"letterbox_image" : False,
#-------------------------------#
# 是否使用Cuda
# 没有GPU可以设置成False
#-------------------------------#
"cuda" : True,
}
```
## 预测结果
![clip_image001](https://github.com/liwenchao956/Traffic-signal-recognition--/assets/86154097/292e6b32-53f4-4e24-8d30-01029dbb66e1)
![clip_image002](https://github.com/liwenchao956/Traffic-signal-recognition--/assets/86154097/b55a855c-727e-4d4b-9871-0654b4f4f814)
![clip_image002-16850168028411](https://github.com/liwenchao956/Traffic-signal-recognition--/assets/86154097/c2e961e1-e3ef-47f9-a07b-4f723ee53d95)
![clip_image002-16850168213472](https://github.com/liwenchao956/Traffic-signal-recognition--/assets/86154097/221497a3-b2ff-462c-a7e7-73488878d19c)
![clip_image002-16850168336033](https://github.com/liwenchao956/Traffic-signal-recognition--/assets/86154097/888baa73-99af-4d15-87df-015c7448fdd5)
## Reference
https://github.com/[bubbliiiing]
https://github.com/qqwweee/keras-yolo3/
https://github.com/Cartucho/mAP
https://github.com/Ma-Dan/keras-yolo4
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
## 训练过程 1.数据集的准备 **本文使用VOC格式进行训练,训练前需要自己制作好数据集,** 训练前将标签文件放在VOCdevkit文件夹下的VOC2007文件夹下的Annotation中。 训练前将图片文件放在VOCdevkit文件夹下的VOC2007文件夹下的JPEGImages中。 2.数据集的处理 在完成数据集的摆放之后,我们需要利用voc_annotation.py获得训练用的2007_train.txt和2007_val.txt。 修改voc_annotation.py里面的参数。第一次训练可以仅修改classes_path,classes_path用于指向检测类别所对应的txt。 训练自己的数据集时,可以自己建立一个cls_classes.txt,里面写自己所需要区分的类别。 model_data/cls_classes.txt文件内容为: ```python 左转红灯 左转绿灯 ... ``` 其中内容也可以换成自己需要的。 3. 开始网络训练 **训练的参数较多,均在train.py中,大家
资源推荐
资源详情
资源评论
收起资源包目录
机器视觉+神经网络+数字信号等识别+使用YOLOv4模型,并在对数字信号灯进行数字识别时采用opencv算法 (8008个子文件)
.gitignore 176B
yolov4-pytorch-_light_master.iml 486B
desktop.ini 5KB
000246.jpg 416KB
000231.jpg 416KB
000028.jpg 399KB
000030.jpg 385KB
000032.jpg 382KB
000031.jpg 380KB
000033.jpg 327KB
000029.jpg 324KB
000005.jpg 263KB
000004.jpg 260KB
000026.jpg 258KB
000027.jpg 256KB
000006.jpg 255KB
000532.jpg 195KB
000024.jpg 191KB
000022.jpg 190KB
000533.jpg 187KB
000515.jpg 186KB
000514.jpg 185KB
000538.jpg 185KB
000535.jpg 185KB
000550.jpg 184KB
000536.jpg 183KB
000537.jpg 183KB
000540.jpg 183KB
000023.jpg 182KB
000516.jpg 182KB
000544.jpg 182KB
000531.jpg 182KB
000539.jpg 181KB
000541.jpg 180KB
000517.jpg 180KB
000036.jpg 180KB
000530.jpg 180KB
000545.jpg 180KB
000527.jpg 179KB
000025.jpg 179KB
000528.jpg 179KB
000546.jpg 178KB
000548.jpg 177KB
000534.jpg 177KB
000543.jpg 177KB
000542.jpg 177KB
000525.jpg 176KB
000521.jpg 175KB
000547.jpg 175KB
000513.jpg 175KB
000518.jpg 174KB
000523.jpg 174KB
000529.jpg 173KB
000522.jpg 173KB
000526.jpg 172KB
000519.jpg 172KB
000524.jpg 171KB
000549.jpg 170KB
000520.jpg 165KB
000293.jpg 159KB
000294.jpg 156KB
000298.jpg 151KB
000291.jpg 150KB
000295.jpg 149KB
000297.jpg 149KB
000290.jpg 146KB
000292.jpg 145KB
000296.jpg 142KB
000386.jpg 134KB
000395.jpg 133KB
000385.jpg 132KB
000397.jpg 132KB
000388.jpg 132KB
000390.jpg 132KB
000370.jpg 131KB
000389.jpg 131KB
000380.jpg 131KB
000396.jpg 130KB
000387.jpg 130KB
000391.jpg 130KB
000382.jpg 130KB
000379.jpg 130KB
000393.jpg 129KB
000392.jpg 129KB
000381.jpg 129KB
000377.jpg 129KB
000375.jpg 128KB
000371.jpg 128KB
000378.jpg 128KB
000394.jpg 128KB
000376.jpg 128KB
000372.jpg 128KB
000383.jpg 128KB
000384.jpg 128KB
000374.jpg 127KB
000365.jpg 126KB
000373.jpg 125KB
000360.jpg 124KB
000361.jpg 122KB
000369.jpg 121KB
共 8008 条
- 1
- 2
- 3
- 4
- 5
- 6
- 81
资源评论
白话机器学习
- 粉丝: 1w+
- 资源: 7671
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功