深圳网站建设一尘互联,网络会议系统国内十大品牌,一个网站做十个二级域名,如何组建商业网若该文为原创文章#xff0c;转载请注明原文出处。 通过正点原子的ATK-3568了解到了YOLOP#xff0c;这里记录下训练及测试及在onnxruntime部署的过程。
步骤#xff1a;训练-测试-转成onnx-onnxruntime部署测试 一、前言
YOLOP是华中科技大学研究团队在2021年…若该文为原创文章转载请注明原文出处。 通过正点原子的ATK-3568了解到了YOLOP这里记录下训练及测试及在onnxruntime部署的过程。
步骤训练-测试-转成onnx-onnxruntime部署测试 一、前言
YOLOP是华中科技大学研究团队在2021年开源的研究成果其将目标检测/可行驶区域分割和车道线检测三大视觉任务同时放在一起处理并且在Jetson TX2开发板子上能够达到23FPS。
论文标题YOLOP: You Only Look Once for Panoptic Driving Perception 论文地址: https://arxiv.org/abs/2108.11250 官方代码: https://github.com/hustvl/YOLOP
网络结构
相比于其它论文YOLOP的论文很容易阅读。YOLOP的核心亮点就是多任务学习而各部分都是拿其它领域的成果进行缝合其网络结构如下图所示 三个子任务共用一个Backbone和Neck然后分出来三个头来执行不同的任务。
二、环境搭建
1、平台
使用的是AutoDL平台配置如下 2、环境创建
# 创建虚拟环境
conda create -n yolop_env python3.8 -y
# 激活环境
conda activate yolop_env
# 安装pytorch
根据官网Previous PyTorch Versions | PyTorch安装pytorch这里选择1.7版本其他版本测试时在转换成onnx时出错所以在这里直接安装1.7版本。
pip install torch1.7.1cu101 torchvision0.8.2cu101 torchaudio0.7.2 -f https://download.pytorch.org/whl/torch_stable.html
# 下载源码代码地址
https://github.com/hustvl/YOLOP
# 安装yolop环境
pip install -r requirements.txt
# 测试
python tools/demo.py --source ./inference/images/0ace96c3-48481887.jpg
运行 python tools/demo.py --source ./inference/videos/1.mp4 测试图片–source 图片路径 (或存放图片的文件夹路径) 测试视频–source 视频路径 (或存放视频的文件夹路径) 相机实时–source 0 默认用cpu测试效果如果想改成gpu修改demo.py 198行。
三、onnxruntime测试
先安装onnxruntime
pip install onnxruntime
测试
python test_onnx.py --weight yolop-640-640.onnx --img ./inference/images/adb4871d-4d063244.jpg
四、训练
训练前需要下载数据集可以根据YOLOP里的readme.md里的地址下载也可以下载下面的网盘地址把数据解压到YOLOP目录下。
链接https://pan.baidu.com/s/1DJirasFncnnf4auI-BxEHA
提取码1234
在Train之前修改相关参数修改文件./lib/config/default.py
1、修改第9行 _C.WORKERS 0
2、修改第51-56行这是数据集的路径
_C.DATASET CN(new_allowedTrue)
_C.DATASET.DATAROOT /root/YOLOP-main/datasets/images # the path of images folder
_C.DATASET.LABELROOT /root/YOLOP-main/datasets/det_annotations # the path of det_annotations folder
_C.DATASET.MASKROOT /root/YOLOP-main/datasets/da_seg_annotations # the path of da_seg_annotations folder
_C.DATASET.LANEROOT /root/YOLOP-main/datasets/ll_seg_annotations # the path of ll_seg_annotations folder
3、修改ATCH_SIZE 修改96行121行_C.TRAIN.BATCH_SIZE_PER_GPU 为合适大小
修改完后就可以训练了,执行下面命令开始训练
python tools/train.py
训练时间很久根据default.py文件epoch共240轮大概8小时左右在训练过程中有一点要注意每训练一轮结束后模型和一些图片都会保存下来造成磁盘空间不够有可能训练失败我只是测试所以只训练了100轮。
五、转onnx模型及测试
转换成onnx模型前先安装环境
pip install onnxruntime
pip install onnx
pip install onnx-simplifier
pip install onnxoptimizer
pip install numpy1.20.0
安装完后运行python export_onnx.py转成onnx模型
onnxruntime测试和上面一样执行下面命令测试
python test_onnx.py --weight yolop-640-640.onnx --img ./inference/images/adb4871d-4d063244.jpg
onnx转换并测试成功接下来就是把模型转成rknn并在rk3568上部署。 遇到的问题 [ONNXRuntimeError] : 1 : FAIL : Node (Mul_948) Op (Mul) [ShapeInferenceError] 处理把torch降成1.7
如有侵权或需要完整代码请及时联系博主。