开工总结(padlepadle,yolo-fasterV2)

本文最后更新于:2022年3月9日 上午

开工总结(padlepadle,yolo-fasterV2)

问题概要

终于在春节前西安疫情消退,回家简短的休整后又来搬砖了。这段时间主要完成节前留下的问题:原使用yolov4-Tiny(TensorRT加速)在jetson nano上达到实时检测(FPS:40)的效果,后在win10下用yolov3训练数据测试效果mAP达到91.07%,用训练好的yolov3权重文件测试在nano的帧数只有8帧左右(不能用v3训练的权重测试v4-tiny检测不出来,可能是网络结构不同导致的),而预期目标要求在nano上满足准确率高的前提下实时的效果。参考下图在nano上用trt加速的各种算法帧数测试效果。

解决思路:

①提升yolov4-Tiny检测准确率

②通过剪枝压缩等操作提升yolov3在nano上的的检测速度

方法实施:

yolov3网络模型较为复杂,剪枝压缩不好操作,那就先用yolov4-tiny训练下数据看下效果。受限于每次训练数据电脑就用不了这一因素,最近有看到白嫖百度GPU服务器在线训练的内容,有这种好事当然要冲,给我也整一个。简单完成几个小任务算力卡就到手了,接下来就可以准备在飞桨的AI studio在线用yolov4-Tiny训练自己的数据集了。

国产深度学习开源框架—飞桨

padlepadle(百度飞桨)—国内最大的开源深度学习框架,是可以与PyTorch、TensorFlow掰手腕的国产框架佼佼者,简单了解下。顺便了解下其他国产深度学习平台

飞桨能干啥?

①超多深度学习免费课程

②在线跑项目

③创建自己的项目并在线训练数据

在线跑项目

飞桨怎么用?

本地使用,推荐win10下安装conda,可以安装各种想要的虚拟环境

在线创建项目并运行

结果

在线创建了项目并上传了自己的数据集,下载darknet源码,编译后报错。可能和cuda版本或者显卡驱动有关。

白嫖的GPU服务器sudo权限没有给解决起这个报错有点受阻,后面再百度试试实在不行还是用自己的电脑跑起来省事。

后面查了下百度aistudio早已不再支持tensorflow、pytorch、mxnet等框架,果然白嫖来的不会完美。不过在aistuidio从学习基础到上手跑项目代码确实是良心国产。

Yolo-fasterV2 训练自己的数据

目的
方法

按照球球大佬在readme.md中的说明,之前标注的数据集就可以用。

安装 requirements 环境,测试一张图片看看效果.可能会遇到torch和cuda不版本匹配的问题,报错如下:

1
RunTimeError: CUDA error: no kernel image is available for execution on the device

参考这篇解决。

按照目录结构,准备相应文件。

修改下自己的 .data文件,设定训练参数,删除文件中的注释

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[name]
model_name=obj # model name

[train-configure]
epochs=500 # train epichs
steps=150,250 # Declining learning rate steps
batch_size=64 # batch size
subdivisions=1 # Same as the subdivisions of the darknet cfg file
learning_rate=0.001 # learning rate

[model-configure]
pre_weights=None # The path to load the model, if it is none, then restart the training
classes=80 # Number of detection categories
width=352 # The width of the model input image
height=352 # The height of the model input image
anchor_num=3 # anchor num
anchors=12.64,19.39, 37.88,51.48, 55.71,138.31, 126.91,78.23, 131.57,214.55, 279.92,258.87 #anchor bias

[data-configure]
train=/media/qiuqiu/D/coco/train2017.txt # train dataset path .txt file
val=/media/qiuqiu/D/coco/val2017.txt # val dataset path .txt file
names=./data/coco.names # .names category label file

yolo-fatest的设计初衷是因为Darknet CPU推理效率优化不好,所以为了能够在像运算能力较低的ARM-cpu,虽然说“更快、更轻“,但训练出来的结果不尽人意。造成这一结果的原因太多了,可能是样本数量、学习率、训练轮次。

后面还是再试下yolov4-tiny的训练效果吧。

深度学习的宏观框架——训练(training)和推理(inference)及其应用场景