一、模型选型-YOLOP
YOLOP能同时处理目标检测、可行驶区域分割、车道线检测三个视觉感知任务,并速度优异、保持较好精度进行工作,代码开源。它是华中科技大学—―王兴刚团队,在全景驾驶感知方面提出的模型。
1.代码链接:github.com/hustvl/YOLO…。
2.网络结构
编辑
3.损失函数
编辑
二、AutoDL云端训练YOLOP模型
1.数据集-BDD100K数据集
加州大学伯克利分校Al实验室(BAIR)于2018年发布,迄今为止最大规模、内容最具多样性的公开驾驶数据集之一。其包含的10万个高清视频序列,时长超过1100小时。其中,每个视频大约40秒长、720p、30 fps,数据集中的视频是从美国各地收集的,涵盖不同时间、不同天气条件(包括晴天、阴天和雨天,以及白天和晚上的不同时间)和驾驶场景。收集数据集的地理位置分布在纽约、伯克利、旧金山等地。
编辑
编辑
2.数据上传 
编辑
3.使用Xshell和Xftp传输项目文件
具体教程点击链接:AutoDL帮助文档
复制登录指令为(具体请以您的实例为准):ssh -p 44562 root@region-1.autodl.com
由于XShell命令格式较特殊,需要您手动修改格式为: ssh root@region-1.autodl.com 44562
即将端口号置于末尾,无需添加-p参数。
编辑
4.训练
修改配置文件:lib/config/default.py
编辑
cmd运行python tools/train.py
编辑
5.PC端推理
编辑
编辑
三、智能预警在AidLux上的部署
1.pth—onnx转化部署
编辑
2.onnx-tflite
使用AidLux模型转换工具Al Model Optimizer,链接:model-convert(体验账号:AIMOTCO01账号密码:AIMOTCO01)
Al Model Optimizer——AIMO,是一个简单、快速、精度损失小的模型转换平台。旨在帮助用户能够在边缘端芯片上无精度损失的快速迁移、部署和运行各种机器学习模型。AIMO以网页的方式与用户交互,用户只需要上传模型并设置一些选项即可快速完成转换。

编辑3.YOLOP模型在AidLux上部署与应用
AidLux是一个构建在ARM硬件上,基于创新性跨Android/鸿蒙+Linux融合系统环境的智能物联网(AloT)应用开发和部署平台,使用非常方便,可以安装在手机、PAD、ARM开发板等边缘端设备上。而且使用AidLux开发的过程中,既支持在边缘设备的本机开发,也支持通过Web浏览器访问边缘端桌面进行开发。各大应用商城都能下载AidLux,如下图,在手机应用商城搜索、下载安装AidLux:
编辑
编程API:AidLux-文档
3.1连接AidLux
将手机的wifi网络和电脑的网络连接到一起,打开安装好的手机上的AidLux软件,点击第一排第二个Cloud_ip.手机界面上会跳出可以在电脑上登录的IP网址,在电脑的浏览器上,随便输入一个IP,即可将手机的系统投影到电脑上,连接上后就可以利用手机的算力进行模型推理了。
编辑
3.2上传项目到AidLux
- 点击文件浏览器,打开文件管理页面2.找到home文件夹,并双击进入此文件夹
- 点击右上角往上的箭头“upload”,再选择Folder,将前面YOLOP的文件夹上传到home文件夹内。(也可以直接将文件夹拖进目录下。)
编辑
3.3配置环境
- 打开终端,切换到项目目录
- 执行命令: pip install-r requirementstxt 安装依赖环境
- 安装pytorch、torchvision、onnxruntimepip install torch==1.8.1 torchvision==0.9.1 -i pypi.mirrors.ustc.edu.cn/simplepip install onnxruntime -i pypi.mirrors.ustc.edu.cn/simple/其他包缺… install 安装
编辑
3.4运行demo.py
- 验证推理效果,执行命令:
- python tools/demo.py –source inference/images
- 运行报错: module’cv2′ has no attribute’registerMatType解决办法: 卸载opencvpython、opencv-contrib-python 只安装低版本的opencv-contrib-pythonpip install opencv_python==4.5.4.60 -i pypi.mirrors.ustc.edu.cn/simple/
- 运行成功后,会将结果文件存放到inference/output文件夹中,可以去该文件夹下查看推理结果
编辑
四、智能预警系统代码实战
1.智能预警
- 验证推理效果,执行命令:python tools/demo.py–source inference/images
- 运行报错: module ‘cv2’ has no attribute ‘_registerMatType’
- 解决办法:卸载opencv-python、opencv-contrib-python 只安装低版本的opencv-contrib-pythonpip install opencv_python==4.5.4.60 -i pypi.mirrors.ustc.edu.cn/simple/
- 运行成功后,会将结果文件存放到inference/output文件夹中,可以去该文件夹下查看推理结果
智能预警系统包含3个任务:目标检测,可行驶区域检测,车道线检测
传感器:前视相机目标检测任务:检测车辆可行驶区域检测:主要是检查出可以行驶的区域,为自动驾驶提供路径规划辅助车道线检测:是一种环境感知应用,其目的是通过车载相机或激光雷达来检测车道线。
基于AidLux的自动驾驶智能预警应用方案
最后,谢谢AidLux的技术支持!!大家在学习过程中遇到任何问题可以评论区问我。