位置: IT常识 - 正文

Python基于YOLOv5的交通标志识别系统[源码](yolo算法python代码)

编辑:rootadmin
Python基于YOLOv5的交通标志识别系统 1.图片演示:

推荐整理分享Python基于YOLOv5的交通标志识别系统[源码](yolo算法python代码),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:yolk python,python yolo,yolo算法python代码,yolov5 pycharm,yolk python,yolk python,python yolov4,yolov3 python,内容如对您有帮助,希望把文章链接给更多的朋友!

2.视频演示:

[项目分享]Python基于YOLOv5的交通标志识别系统[源码&技术文档&部署视频&数据集]_哔哩哔哩_bilibili

3.标注好的数据集:

4.YOLO网络的构建:

网络结构是首先用Focus将计算图长宽变为原先1/4, channel 数量乘4。再用bottlenectCSP 提取特征,个人理解 CSP 就是更多不同channel的融合吧。 然后再用maxpooling 下采样构建特征金字塔。下采样过每阶段与input cancatenate。 再对下采样产生的feature map 上采样,与backbone里相应的层融合。最后用detect层预测anchors。detect 层输出channel是 (class num + 5)* 每层每grid预测的anchor 数。num class是预测结果为每类的概率,5是anchor的 x, y, w, h 和是否为object的置信度。默认配置经过maxpooling 以后产生三个尺寸的feature map,每个feature map 经过上采样融合等操作后都会用来预测anchor,每个grid 预测三个anchor。比如yolov5 s 预测anchor 有80类。输出 x.shape=(bs, 3, 20, 20, 85)。

5.数据增强:

在深度学习领域,对于数据量的要求是巨大的,在CV领域,我们通过图像数据增强对现有图像数据进行处理来丰富图像训练集,这样可以有效的泛化模型,解决过拟合的问题。

Python基于YOLOv5的交通标志识别系统[源码](yolo算法python代码)

该博客提出的图像数据增强方式有旋转图像、裁剪图像、水平或垂直翻转图像,改变图像亮度等,为了方便训练模型,我们通常会对数据进行归一化或者标准化以及将图片大小设置为一样。

6.代码实现:

该博客代码写法上来值得注意的有这几处:

1 首先有 focus 层,对输入图片slice, 把feature map减小增加channel 后面计算速度会快。

2 构建模型(parse_model) 在yolo.py 里面,用一个数组(ch) 存储了每层的输出channel, 后续concatenate的时候很容易构成concatenate后输出的channel 数量。

3 对除了最后一层预测层外,每层output channel都检查是不是8的倍数,保证后续concate的时候不会出问题

4 common.py 里面是各种basic block, 除了bottlenect, CSP, concate层等,还有transformer 等层。

首先导入相关模块:

import tensorflow as tfimport numpy as npimport pandas as pd import cv2import matplotlib.pyplot as pltimport osfrom sklearn.model_selection import train_test_split

读取图片:target.txt的内容如下所示,前面对应图片名字,后面对应图片的类别

x=[]y=[]with open ('./target.txt','r') as f: for j,i in enumerate(f): path=i.split()[0] lable=i.split()[1] print('读取第%d个图片'%j,path,lable) src=cv2.imread('./suju/'+path) x.append(src) y.append(int(lable))

将数据归一化,并且划训练集和验证集

x=np.array(x)y=np.array(y)x.shape,y.shapey=y[:,None]x_train,x_test,y_train,y_test=train_test_split(x,y,stratify=y,random_state=0)#归一化x_train=x_train.astype('float32')/255x_test=x_test.astype('float32')/255y_train_onehot=tf.keras.utils.to_categorical(y_train)y_test_onehot=tf.keras.utils.to_categorical(y_test)

搭建网络模型

model=tf.keras.Sequential([ tf.keras.Input(shape=(80,80,3)), tf.keras.layers.Conv2D(filters=32,kernel_size=(3,3),padding='same',activation='relu'), tf.keras.layers.MaxPooling2D(pool_size=(2,2),strides=(2,2)), tf.keras.layers.Conv2D(filters=64,kernel_size=(3,3),padding='same',activation='relu'), tf.keras.layers.MaxPooling2D(pool_size=(2,2),strides=(2,2)), tf.keras.layers.Conv2D(filters=32,kernel_size=(3,3),padding='same',activation='relu'), tf.keras.layers.MaxPooling2D(pool_size=(2,2),strides=(2,2)), tf.keras.layers.Flatten(), tf.keras.layers.Dense(1000,activation='relu'), tf.keras.layers.Dropout(rate=0.5), tf.keras.layers.Dense(43,activation='softmax')])model.compile( loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])train_history=model.fit(x_train,y_train_onehot,batch_size=100,epochs=8,validation_split=0.2,verbose=1, )

画图显示模型的loss和acc

la=[str(i) for i in range(1,9)]def show(a,b,c,d): fig,axes=plt.subplots(1,2,figsize=(10,4)) axes[0].set_title('accuracy of train and valuation') axes[0].plot(la,train_history.history[a],marker='*') axes[0].plot(train_history.history[b],marker='*') axes[0].set_xlabel('epoch') axes[0].set_ylabel('accuracy') aa=round(train_history.history[a][7],2) bb=round(train_history.history[b][7],2) axes[0].text(la[7],train_history.history[a][7],aa,ha='center',va='bottom') axes[0].text(la[7],train_history.history[b][7],bb,ha='center',va='top') #axes[0].set_xticks(la,['as','asd',3,4,5,6,7,8])# for x1,y1 in zip(la,train_history.history[a]):# y1=round(y1,2)# axes[0].text(x1,y1,y1,ha='center',va='bottom',fontsize=10,c='b') axes[0].legend(['train_accuracy','val_accuracy']) axes[1].set_title('loss of train and valuation') axes[1].plot(la,train_history.history[c],marker='*') axes[1].plot(train_history.history[d],marker='*') axes[1].set_xlabel('epoch') axes[1].set_ylabel('loss') cc=round(train_history.history[c][7],2) dd=round(train_history.history[d][7],2) axes[1].text(la[7],train_history.history[c][7],cc,ha='center',va='top') axes[1].text(la[7],train_history.history[d][7],dd,ha='center',va='bottom') axes[1].legend(['train_loss', 'val_loss']) #axes[1].show()show('accuracy','val_accuracy','loss','val_loss')

保存模型

model.save('traffic_model2.h5')7.训练结果:

完整源码&环境部署视频教程&数据集&自定义训练视频教程 参考博客《Python基于YOLOv5的交通标志识别系统[源码&技术文档&部署视频&数据集]》

8.参考文献:

【1】谢豆,石景文,刘文军,刘澍.一种基于深度学习的交通标志识别算法研究[J].电脑知识与技术:学术版,2022,18(6):116-118. 【2】王泽华,宋卫虎,吴建华.基于改进YOLOv4网络的轻量化交通标志检测模型[J].电脑知识与技术:学术版,2022,18(5):98-101.

本文链接地址:https://www.jiuchutong.com/zhishi/296194.html 转载请保留说明!

上一篇:k8s控制器Deployment使用详解(k8s控制器模式)

下一篇:OpenCV实战(15)——轮廓检测详解(opencv.)

  • 给大家分享几个经典的网赚经验(给大家分享几个bt)

    给大家分享几个经典的网赚经验(给大家分享几个bt)

  • 闲鱼未读信息可以撤回吗(闲鱼未读信息让对方看不到)

    闲鱼未读信息可以撤回吗(闲鱼未读信息让对方看不到)

  • 手机如何和电脑连接(手机如何和电脑传输文件)

    手机如何和电脑连接(手机如何和电脑传输文件)

  • 电脑打开软件没有反应(电脑打开软件没有声音怎么回事)

    电脑打开软件没有反应(电脑打开软件没有声音怎么回事)

  • 触控id无法识别你的指纹(触控id无法识别你的指纹无法关机)

    触控id无法识别你的指纹(触控id无法识别你的指纹无法关机)

  • 微信不能用了怎么回事(微信不能用了怎么回事华为)

    微信不能用了怎么回事(微信不能用了怎么回事华为)

  • 华为手机时间日期怎么设置(华为手机时间日历显示在桌面怎么设置?)

    华为手机时间日期怎么设置(华为手机时间日历显示在桌面怎么设置?)

  • 手机返厂维修需要多长时间(手机返厂维修需要什么)

    手机返厂维修需要多长时间(手机返厂维修需要什么)

  • word所认为的字符不包括汉字嘛(字word是指)

    word所认为的字符不包括汉字嘛(字word是指)

  • qq群签到可以统计吗(qq群签到)

    qq群签到可以统计吗(qq群签到)

  • 荣耀手机跳屏怎么修复(荣耀手机屏幕跳屏)

    荣耀手机跳屏怎么修复(荣耀手机屏幕跳屏)

  • 苹果11重新启动在哪(苹果11重新启动是什么意思)

    苹果11重新启动在哪(苹果11重新启动是什么意思)

  • 手机账号密码在哪里看(vivo账户密码忘了怎么解开手机)

    手机账号密码在哪里看(vivo账户密码忘了怎么解开手机)

  • 联想电脑怎么下载软件安装(联想电脑怎么下载ie浏览器)

    联想电脑怎么下载软件安装(联想电脑怎么下载ie浏览器)

  • 苹果官方care+是什么意思(apple care+iphone)

    苹果官方care+是什么意思(apple care+iphone)

  • 打电话直接挂断是怎么回事(打电话直接挂断是拉黑了吗)

    打电话直接挂断是怎么回事(打电话直接挂断是拉黑了吗)

  • 斗鱼怎么搜索房间号找到主播(斗鱼app怎么搜索房间号找到主播)

    斗鱼怎么搜索房间号找到主播(斗鱼app怎么搜索房间号找到主播)

  • vivo手机怎么隐藏应用(vivo手机怎么隐藏图标)

    vivo手机怎么隐藏应用(vivo手机怎么隐藏图标)

  • 货拉拉退押金多久能到账(货拉拉退押金多久才能重新加入)

    货拉拉退押金多久能到账(货拉拉退押金多久才能重新加入)

  • 怎么看微信打电话记录(怎么看微信打电话次数)

    怎么看微信打电话记录(怎么看微信打电话次数)

  • iphone x 分屏多任务(苹果x能分屏两个任务)

    iphone x 分屏多任务(苹果x能分屏两个任务)

  • qq开启消息免打扰对方知道吗(qq开启消息免打扰对方打电话)

    qq开启消息免打扰对方知道吗(qq开启消息免打扰对方打电话)

  • 苹果蓝牙耳机怎么用调音量(苹果蓝牙耳机怎么连接安卓手机)

    苹果蓝牙耳机怎么用调音量(苹果蓝牙耳机怎么连接安卓手机)

  • a8 7500相当于i几(a8 7500相当于intel)

    a8 7500相当于i几(a8 7500相当于intel)

  • 21种吸甲醛的植物,放办公室吸甲醛更健康![多图](吸甲醛最好的植物是什么?)

    21种吸甲醛的植物,放办公室吸甲醛更健康![多图](吸甲醛最好的植物是什么?)

  • 花语大全,各种花的花语(花语大全各种花的花语花树)

    花语大全,各种花的花语(花语大全各种花的花语花树)

  • 通过云服务器租用GPU进行基于YOLOV5的人体检测模型训练(通过云服务器租号安全吗)

    通过云服务器租用GPU进行基于YOLOV5的人体检测模型训练(通过云服务器租号安全吗)

  • 一般纳税人开普票税率是3%还是13%
  • 增值税开票软件在哪下载
  • 个人独资企业税种有哪些
  • 增值税属于哪个部门
  • 消费税可以在企业抵扣吗
  • 税控盘开票机号是哪个
  • 服装类发票可以做账吗
  • 银行融资服务费怎么算
  • 人工费能不能抵扣进项税
  • 会计大写数字金额书写规则
  • 建筑企业怎么转让
  • 车辆购置税发票电子版怎么查
  • 无形资产的使用
  • 企业收到投资款怎么处理
  • 建筑业异地预缴增值税
  • 公司租房可以入公积金吗
  • 劳务派遣公司支付劳务费怎么做账
  • 报税的销售额怎么改数字
  • 职工教育经费取得证件之后补助多少钱
  • 租赁押金的法律规定
  • 少计提增值税0.01计入营业外
  • 补缴公积金账务处理
  • 农产品收购销售免税吗
  • 出售股权收入会计分录
  • 增值税发票已经认证可以撤销吗?
  • 电子商业承兑与银行承兑哪个好
  • 防火墙老是弹出来怎么弄
  • 取得其他权益工具投资发生的交易费用
  • 农业种植公司要纳税吗
  • php-mbstring
  • rtmservice.exe - rtmservice是什么进程 有什么用
  • php获取变量长度
  • 拨缴经费收入进行账务处理
  • php分层
  • 出差餐补如何做账
  • 金税盘锁死咋办
  • 毕业设计2022年幼儿园
  • json与对象的区别
  • 猿类作文
  • 出口退税企业待遇怎么样
  • 公司卖地如何交税
  • 汇总纳税企业所得税征收管理办法
  • 母子公司转让不动产 契税
  • 开票软件的证书口令是多少
  • 如何修改mysql
  • 工资不纳税项目
  • 注册资本认缴出资日期是什么意思
  • 开专用发票可以直接写加工费这个明细吗?
  • 固定资产一次性扣除政策
  • 销售退回的会计分录全过程
  • 购买的材料入库属于什么会计科目
  • 怎么用两台电脑登录同一个微信
  • mysql中的null值和空
  • sql server数据库恢复
  • centos邮件服务器
  • windowssystem32oobe找不到指定的路径
  • Ubuntu Kylin 14.10默认的屏幕分辨率怎么更改?
  • 怎么用u盘装xp系统教程
  • 将程序桌面图标放到桌面
  • E: Encountered a section with no Package: header错误解决方法
  • CentOS中-bash: lsb_release: command not found错误的解决方法
  • windows 10 周年更新
  • linux下VSFTP 530 Permission denied错误的解决办法
  • edit apps
  • 多个版本python
  • cmd命令基础
  • css固定在底部
  • nodejs基础知识
  • jQuery+Ajax实现无刷新操作
  • jquery 设置css
  • Python制作钟表代码
  • the oculus rift
  • python dict 转 list
  • jquery中each()方法的作用及使用
  • 从局部变量和全变量区分
  • 国家税务总局全国增值税查询
  • 农村报账员的基本职责
  • 手表不贵比较好的品牌
  • 数字经济与实体经济融合发展的理论探索
  • 预缴的税额可以用留底抵扣吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设