《基于AidLux的自动驾驶智能预警应用方案》

YOLOP模型转ONNX

ONNX是开放式神经网络(Open Neural Network Exchange)的简称,ONNX的规范及代码主要由微软,亚马逊,Facebook和IBM等公司共同开发,以开放源代码的方式托管在Github上。目前官方支持加载ONNX模型的框架有:Caffe2,PyTorch,MXNet,ML.NET,TensorRT和Microsoft CNTK,并且TensorFlow也非官方的支持ONNX。
在这里插入图片描述

YOLOP导出onnx模型

执行命令:
python3 export_onnx.py–height 640–width 640
执行完成后,会在weights文件夹下生成转换成功的onnx模型
onnx转换核心api:
在这里插入图片描述

onnx模型导出流程:

1.加载PyTorch模型,可以选择只加载模型结构;
也可以选择加载模型结构和权重。
2.定义PyTorch模型的输入维度,比如(1,3,640,640),
这是一个三通道的彩色图,分辨率为640x640.
3.使用torch.onnx.export()函数来转换,生产onnx
模型。
在这里插入图片描述

推理流程

1.加载模型
2.获取输入输出节点名
3.准备数据,如(n,c,h,w)或者
(n,h,w,c)
4.执行推断,获得输出
在这里插入图片描述

可视化ONNX模型

使用Netron,可视化ONNX模型,看一下
网络结构;查看使用了那些算子,以便开
发部署。
Netron是一个轻量级、跨平台的模型可
视化工具,支持多种深度学习框架的模型
可视化,包括TensorFlow、PyTorch、
ONNX、Keras、Caffe等等。它提供了可
视化网络结构、层次关系、输出尺寸、权
重等信息,并且可以通过鼠标移动和缩放
来浏览模型。Netron还支持模型的导出
和导入,方便模型的分享和交流。
在这里插入图片描述

YOLOP模型在AidLux上部署与应用

AidLux介绍

AidLux是一个构建在ARM硬件上,基于创新
性跨Android/鸿蒙+Linuxi融合系统环境的智
能物联网(AIoT)应用开发和部署平台。
AidLux软件使用非常方便,可以安装在手机、
PAD、ARM开发板等边缘端设备上。而且使用
AidLux开发的过程中,既支持在边缘设备的本
机开发,也支持通过Web浏览器访问边缘端桌
面进行开发。
各大应用商城都能下载AidLux,如右图,在手
机应用商城搜索、下载安装AidLux
在这里插入图片描述

AidLux:编程接口

AidLux接口介绍链接
https://docs.aidlux.com/#/intro/ai/ai-aidlite
在这里插入图片描述

连接AidLux

将手机的wifi网络和电脑的网络连接到一起,打开安装好的手机上的AidLuxa软件,点击第一排第二个Cloud_ip.
手机界面上会跳出可以在电脑上登录的1P网址,在电脑的浏览器上,随便输入一个P,即可将手机的系统投影到
电脑上,连接上后就可以利用手机的算力进行模型推理了。
在这里插入图片描述

上传项目到AidLux

1.点击文件浏览器,打开文件管理页面
2.找到home文件夹,并双击进入此文件夹
3.点击右上角往上的箭头“upload”,再选择Folder,将前面YOLOP的文件夹上传到home文件夹内。(也可以直接将文件夹拖进目录下。)
在这里插入图片描述

安装环境

1.打开终端,切换到项目目录
2.执行命令:pip install-r requirements.txt安装依赖环境
3.安装pytorch、torchvision、onnxruntime

pip install torch==1.8.1  torchvision==0.9.1 -i https://pypi.mirrors.ustc.edu.cn/simple/
pip install onnxruntime-i https://pypi.mirrors.ustc.edu.cn/simple/

其他包缺失可以直接使用pip install安装
在这里插入图片描述

运行demo.py

验证推理效果,执行命令:
python tools/demo.py --source inference/images
运行报错:module’cv2’has no attribute’_registerMatType’
解决办法:卸载opencv-python、opencv-contrib-python只安装低版本的opencv-contrib-python

pip install opencv_python==4.5.4.60 -i https://pypi.mirrors.ustc.edu.cn/simple/

运行成功后,会将结果文件存放到inference/output文件夹中,可以去该文件夹下查看推理结果
在这里插入图片描述

智能预警系统代码实战

智能预警

验证推理效果,执行命令:
python tools/demo.py --source inference/images
运行报错:module’cv2’has no attribute’_registerMatType’
解决办法:卸载opencv-.python、opencv-contrib-python只安装低版本的opencv-.contrib-python

pip install opencv_python==4.5.4.60 -i https://pypi.mirrors.ustc.edu.cn/simple/

运行成功后,会将结果文件存放到inference/output文件夹中,可以去该文件夹下查看推理结果
在这里插入图片描述
智能预警系统包含3个任务:
目标检测,可行驶区域检测,车道线检测
传感器:前视相机
目标检测任务:检测车辆
可行驶区域检测:主要是检查出可以行驶的
区域,为自动驾驶提供路径规划辅助
车道线检测:是一种环境感知应用,其目的
是通过车载相机或激光雷达来检测车道线
在这里插入图片描述
在这里插入图片描述
1.输入:
读取视频图像作为输入,图像尺寸19201080
在这里插入图片描述
2.预处理
2.1 将输入尺寸1920
1080 resize+padding?到640640
2.2 归一化
2.3 640
6403->13640640
在这里插入图片描述
在这里插入图片描述
3.使用onnx模型进行推理
读取模型->准备数据->推理
得到det_out,da_seg_out,ll_seg_out,shape:分别为:(1,n,6)(1,2,640,640)(1,2,640,640)
在这里插入图片描述
4.后处理
4.1将检测结果,可行驶区域检测结果,车道线检测结果,合并到一张图像上,分别用不同的颜色标记出来
4.2将检测的帧数,帧率,车辆数等信息显示在图像上
在这里插入图片描述
5.输出
获取最终融合的图像,并保存成视频,图像尺寸、率、编码是原视频尺寸、帧率和编码
在这里插入图片描述

预警代码

forewarning.py为智能预警代a码,执行命令:python forewarning.py
显示中文时,如果报错,请参照以下解决办法
报错:OSError:cannot open resource缺少中文字体
解决办法:将simsun.ttc上传到/usr/share/fonts/文件夹下(simsun.ttc已存放在百度云盘)
在这里插入图片描述

最终推理过程以及结果

推理结果如b站视频:https://www.bilibili.com/video/BV1aV411M7QQ/?vd_source=706eedffe7949070fa3c396c34f4e789

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值