yolo-fastestv2小白全流程使用指南

  • 搭建环境

1,安装anaconda和pycharm

所需软件工具:anaconda pycharm cuda

Anaconda是一个管理用于python开发的包含不同库的虚拟环境的平台,可以高效的管理和创建适用于多个不同项目的project interpreter。安装完成自带一个根环境,路径在conda的安装目录下。进入后可以在环境管理页面创建新环境,新环境的路径在安装目录下的envs中存储,在pycharm中设置interpreter时需要找到所需环境的存储位置,interpreter设置选择conda enviroment,填写python.exe的路径即可完成编译环境与项目的绑定。之后进行虚拟环境设置,安装新的库的时候只需打开cmd,输入activate 环境名,即可进入环境目录,之后pip安装所需库即可。

从官网上下载进行安装,勾选这两项方便环境配置,如果安装时没有勾选这两项建议重新安装,并!重!启!,涉及到环境变量的改动都建议在修改后重启

yolo-fastestv2小白全流程使用指南_第1张图片

 

等待anaconda安装完进入environment界面,将新环境命名为yolofastest,python版本选择3.7,点击ok,等待自动生成环境,之后即可关闭anaconda。

yolo-fastestv2小白全流程使用指南_第2张图片

 

完成anaconda安装后,从官网下载pycharm,解压安装完成后创建工程,路径选择到之前解压源码的无中文字符路径,注意!!!!,创建完成后此处有红框标记的文件即为路径正确(也可先创建再解压到工程文件中)

yolo-fastestv2小白全流程使用指南_第3张图片

 

之后进入pycharm中选择工程所需的interpreter 

yolo-fastestv2小白全流程使用指南_第4张图片

 

2,安装cuda11.4

第一步,下载双击运行,选择自定义

第二步:不要选择visual studio integration,否则无法安装

第三步:更改环境变量

第四步:安装cudnn
将cudnn解压后,将其中的所有内容复制到以下路径中,ps(默认路径,可以直接用

第五步:验证
打开cmd,输入nvcc -V验证cuda是否安装成功,出现如下界面即为成功

yolo-fastestv2小白全流程使用指南_第5张图片

 

  1. 安装pytorch1.5.1以及其他库

以管理员身份进入cmd,输入activate yolov5test进入环境目录下,输入

​
pip install torch===1.5.1 torchvision===0.6.1 -f https://download.pytorch.org/whl/torch_stable.html -i Simple Index

​

使用豆瓣源安装,很多是使用清华源,但是清华源安装时容易超时而导致安装失败,有条件的可以FQ直接安装,效果非常好。
安装完成后再pycharm中创建文件,输入验证pytorch安装是否成功

import torch
print(torch.__version__)

  • 下载源码

GitHub - dog-qiuqiu/Yolo-FastestV2: Based on Yolo's low-power, ultra-lightweight universal target detection algorithm, the parameter is only 250k, and the speed of the smart phone mobile terminal can reach ~300fps+

解压后使用pycharm打开文件夹,如下:

yolo-fastestv2小白全流程使用指南_第6张图片

 

在pycharm的终端栏或是命令行输入:activate yolofast

  • 运行代码

基本上是按照readme中操作,但是个别语句需要更改

1,Dependent installation安装requirements中的第三方库

pip3 install -r requirements.txt

 2,Test测试能否正常使用

python test.py --data data/coco.data --weights modelzoo/coco2017-0.241078ap-model.pth --img img/000139.jpg

(注意此命令与readme中不同,删去python后面的3)

训练How to train

流程:建立数据集——获得锚定偏差——训练——评估

(一)建立数据集:Building data sets(The dataset is constructed in the same way as darknet yolo)

数据集的格式darknet Yolo相同,每个图像对应一个.txt标签文件。标签格式也基于darknetYolo的数据集标签格式:“类别cx cy wh”,其中类别是类别下标,cx,cy是标准化标签框的中心点的坐标,w,h是标准化标签框的宽度和高度,.txt标签文件内容示例如下:

11 0.344192634561 0.611 0.416430594901 0.262

14 0.50 9915014164 0.51 0.974504249292 0.972

2,该图像及其对应的标签文件具有相同的名称,并存储在同一目录中。数据文件结构如下:

yolo-fastestv2小白全流程使用指南_第7张图片

 

3,生成一个数据集路径.txt文件,示例内容如下:

train.txt

yolo-fastestv2小白全流程使用指南_第8张图片

val.txt

 

Python自动修改代码:

txt_ = r"D:/mask_txt/val.txt"

with open(txt_,'a+') as f:

    for i in range(101,201):

        item = ("D:/mask_txt/val/"+"{}.jpg").format(str(i).zfill(4))

        f.write(item)

        f.write("\n")

此处路径均为实际路径,在此不在赘述。

4,生成.names类别标签文件,示例内容如下:

category.names

yolo-fastestv2小白全流程使用指南_第9张图片

本人自训练样例:

 

5,最终构建的训练数据集的目录结构如下:

yolo-fastestv2小白全流程使用指南_第10张图片

 

下面示例为自组织数据集:

yolo-fastestv2小白全流程使用指南_第11张图片 

(二) 获得锚定片偏差:

1,根据当前数据集生成锚点

python genanchors.py --traintxt ./train.txt

(此处同样是将3删除)

2,anchors6.txt文件将在当前目录中生成,anchors6.txt的示例内容如下

 

3,Build the training .data configuration file(配置文件,调整参数使之符合要训练的数据集)

参考./data/coco.data

yolo-fastestv2小白全流程使用指南_第12张图片

 

如果不想重新写一个,可直接在coco.data修改

Epoch   轮次,每十轮会保存一次训练结果

Classes  分类,你想要的分类数目

Anchor  此处修改为上述生成的偏差

Train,val,names 均修改为实际路径

注意:anchor6.txt很重要,若移植代码,则注意使anchor内容与自己训练集的保持对应。

(三)训练

python train.py --data data/coco.data

(四)评估

python3 evaluation.py --data data/coco.data --weights modelzoo/coco2017-0.241078ap-model.pth

此处的pth文件选择训练生成的文件。

(五)预测

与测试类似,将所要预测的图片放入指定位置,修改图片参数。

python3 test.py --data data/coco.data --weights modelzoo/coco2017-0.241078ap-model.pth --img img/000139.jpg
  • 部署(此处使用NCNN框架)
  1. 将训练好的模型转化为onnx存储格式
python3 pytorch2onnx.py --data data/coco.data --weights modelzoo/coco2017-0.241078ap-model.pth --output yolo-fastestv2.onnx
  1. onnx-sim
python3 -m onnxsim yolo-fastestv2.onnx yolo-fastestv2-opt.onnx
  1. 搭建 NCNN
git clone https://github.com/Tencent/ncnn.git

cd ncnn

mkdir build

cd build

cmake ..

make

make install

cp -rf ./ncnn/build/install/* ~/Yolo-FastestV2/sample/ncnn
  1. 转变ncnn的参数和配置
cd ncnn/build/tools/onnx

./onnx2ncnn yolo-fastestv2-opt.onnx yolo-fastestv2.param yolo-fastestv2.bin

cp yolo-fastestv2* ../

cd ../

./ncnnoptimize yolo-fastestv2.param yolo-fastestv2.bin yolo-fastestv2-opt.param yolo-fastestv2-opt.bin 1

cp yolo-fastestv2-opt* ~/Yolo-FastestV2/sample/ncnn/model
  1. 跑通样例
cd ~/Yolo-FastestV2/sample/ncnn

sh build.sh

./demo

参考

史上最详细yolov5环境配置搭建+配置所需文件 - 你熬夜不学习吗 - 博客园 (cnblogs.com)

dog-qiuqiu/Yolo-FastestV2: Based on Yolo's low-power, ultra-lightweight universal target detection algorithm, the parameter is only 250k, and the speed of the smart phone mobile terminal can reach ~300fps+ (github.com) 

你可能感兴趣的:(深度学习,1024程序员节,计算机视觉,目标检测,cnn)