目录
一、项目简介
二、预期效果
三、操作流程
1、yolov5 环境部署与训练
1.1 Yolov5代码下载
1.2 安装Pycharm+Conda+Python
1.3 环境配置
1.4 测试运行
1.5 训练模型
2、AidLux平台软件部署
2.1 上传代码到AidLux
2.2 环境配置
2.3 测试运行
2.4 模型移植步骤
2.5 运行代码查看结果
本项目由智能终端组成,智能终端为采集道路数据并实时进行智能数据分析道路病害为一体的便携式硬件设备,其搭载基于ARM64架构的高通S855处理器智能模组,算力可高达15TOPS,高性能、低功耗;高度集成化设计,体积小巧,支持嵌入式安装,方便部署;工业级散热设计,持久稳定工作。系统层方面,打破以往借用虚拟机实现跨系统的模式,通过共享 Linux 内核实现Android 和 Linux 系统融合。同时,集成了全球10大主流AI框架,并做了全面的环境部署和适配。其主要通过搭载于交通或采集设备自动采集路面数据并对数据进行智能识别分析。在技术层面上,首先采用Scharr滤波器求解图像特征,得到数据集当中病害特征最为明显的一批数据,接着利用CycleGAN网络生成背景更为复杂、多样的完好路面数据集,方便后续操作,其次再利用反阈值化、形态学、仿射变换、mask等操作将明显的病害特征裁剪下来随即添加到完好的路面图中,形成新的数据集。最后,将上述经过处理得到的数据集与原始数据集相结合,得到新的数据集并送入YOLOv5-DA网络训练,得到算法网络模型用于路面病害检测。通过以上的硬软结合,本产品对病害的识别精度高达87.5%。并且减少了人工采集数据的人力成本,提高数据分析精确度及养护效率,降低购买专业设备的资金成本,有效减少经济损失。
本项目基于AidLux+YOLOv5s-DA,搭配外置摄像头,实现全流程路面缺陷检测。
具体功能是由各种采集设备采集路面信息,如手机,车载摄像头,将采集到的路面信息进行处理,识别路面缺陷信息若捕捉到路面缺陷信息,则将信息进行记录。
本项目在现阶段人工道路检测逐渐淘汰,现有路面智能缺陷检测尚有不足的环境下,提出一种YOLOv5s-DA网络,基于YOLOv5s网络结构作出优化,提高了其在路面检测方面的准确率,并在现有的高性能AI边缘计算设备的基础上,研究基于ARM架构的人工智能目标检测算法,在边缘计算设备上的路面病害识别,实现路面病害检测。
本项目需要的硬件需求为:
1.装有pytorch框架的电脑;或一台安卓设备,例如小米11,骁龙888,8+256。
2.usb摄像头(电脑采集训练集数据用)
对于开发者而言,AI项目中各种算法的数据集准备+模型训练+模型部署依然存在着不小的难度。AidLux的出现,可以将我们的安卓设备以非虚拟的形式变成同时拥有Android和Linux系统环境的边缘计算设备,支持主流AI框架,非常易于部署,还有专门的接口调度算力资源,极大地降低了AI应用落地门槛。
Yolov5的官方链接为:https://github.com/ultralytics/yolov5
具体可参考博主Ding Jiaxiong的博客:http://t.csdn.cn/wiAiW
在终端输入:pip install -r requirements.txt 进行相关库的安装
所需库安装完后,找到detect.py文件,找到对应位置修改并运行,如下:
根据提示,测试结果将放在runs\detect\exp中,我们将找到如下预测图:
在train.py文件中,我们主要修改如下参数:
以及
之后,直接run起来训练即可。我们将得到如下效果的验证集:
我们首先打开边缘计算盒的aidlux,并投影到电脑网页上。然后第一步先将所有代码上传到 aidlux的平台里面。点击电脑端页面菜单栏的第一个,文件浏览器,打开文件管理页面。
点击右上角往上的箭头“upload”,再选择Folder,将前面Yolov5的文件夹上传到home文件夹内。
上传好后,在Yolov5-master的aidlux文件夹中,可以看到修改过的代码。
在终端输入:pip install -r requirements.txt 进行相关库的安装
所需库安装完后,找到detect.py文件,找到对应位置修改并运行,如下:
根据提示,我们依旧能在runs\detect\exp中找到测试结果,我们将找到如下预测图:
(1)pt模型转换
因为aidlux里面用的是tensorflow框架的tflite模型,所以我们先将训练好的pt模型转换成tflite模型。
先在PC端电脑上,打开代码,找到export.py,主要修改两个地方。
第一个是修改模型的路径,即weights的路径,修改export.py文件最下面的parse_opt配置函数。
因为训练出的模型放在runs文件夹里面,所以将detault修改成“runs/train/exp3/weights/best.pt
第二个是修改模型转换成的格式,将include的default修改成“tflite”
代码运行转换后,在weights文件夹里面,可以看到转换后的yolov5s-fp16.tflite模型
(2)查看模型参数
使用netron查看转换后的tflite模型的信息,可以直接登录netron的在线网站版本https://netron.app/。
选择open model,打开刚刚导出的best-fp16.tflite模型。
网页的滚动条一直拉到最下面,点击最后的一个模块,可以看到右面的弹窗,会跳出输入信息 [1,640,640,3] 和 输出信息 [1,25200,6]。
(3)修改代码中的信息
将导出的best-fp16.tflite,放到aidlux文件夹下面。
打开文件,主要修改模型的路径
(4)AidLux上传代码
打开Aidlux的页面,打开文件浏览器,进入yolov5-master的aidlux文件夹中
进入aidlux界面,找到文件浏览器
点击右上角的图标,选择“Build”。
进入代码的运行页面,选择左上角的坐标,点击“Run Now”。
即可启动整套代码,电脑端也能实时看到检测的画面。
在AidLux上的演示视频,可以移步:【基于AidLux+YOLOv5s-DA的路面缺陷检测系统】 基于AidLux+YOLOv5s-DA的路面缺陷检测系统_哔哩哔哩_bilibili
对AidLux感兴趣的同学,这里有一份AidLux相关训练营课程、交流群、新版本、活动等资源汇总!可以点击链接查看https://community.aidlux.com/postDetail/1369
感谢阅读本篇文章,谢谢!