- 搭建环境
1,安装anaconda和pycharm
所需软件工具:anaconda pycharm cuda
Anaconda是一个管理用于python开发的包含不同库的虚拟环境的平台,可以高效的管理和创建适用于多个不同项目的project interpreter。安装完成自带一个根环境,路径在conda的安装目录下。进入后可以在环境管理页面创建新环境,新环境的路径在安装目录下的envs中存储,在pycharm中设置interpreter时需要找到所需环境的存储位置,interpreter设置选择conda enviroment,填写python.exe的路径即可完成编译环境与项目的绑定。之后进行虚拟环境设置,安装新的库的时候只需打开cmd,输入activate 环境名,即可进入环境目录,之后pip安装所需库即可。
从官网上下载进行安装,勾选这两项方便环境配置,如果安装时没有勾选这两项建议重新安装,并!重!启!,涉及到环境变量的改动都建议在修改后重启
等待anaconda安装完进入environment界面,将新环境命名为yolofastest,python版本选择3.7,点击ok,等待自动生成环境,之后即可关闭anaconda。
完成anaconda安装后,从官网下载pycharm,解压安装完成后创建工程,路径选择到之前解压源码的无中文字符路径,注意!!!!,创建完成后此处有红框标记的文件即为路径正确(也可先创建再解压到工程文件中)
之后进入pycharm中选择工程所需的interpreter
2,安装cuda11.4
第一步,下载双击运行,选择自定义
第二步:不要选择visual studio integration,否则无法安装
第三步:更改环境变量
第四步:安装cudnn
将cudnn解压后,将其中的所有内容复制到以下路径中,ps(默认路径,可以直接用
第五步:验证
打开cmd,输入nvcc -V验证cuda是否安装成功,出现如下界面即为成功
- 安装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打开文件夹,如下:
在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,该图像及其对应的标签文件具有相同的名称,并存储在同一目录中。数据文件结构如下:
3,生成一个数据集路径.txt文件,示例内容如下:
train.txt
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
本人自训练样例:
5,最终构建的训练数据集的目录结构如下:
下面示例为自组织数据集:
(二) 获得锚定片偏差:
1,根据当前数据集生成锚点
python genanchors.py --traintxt ./train.txt
(此处同样是将3删除)
2,anchors6.txt文件将在当前目录中生成,anchors6.txt的示例内容如下
3,Build the training .data configuration file(配置文件,调整参数使之符合要训练的数据集)
参考./data/coco.data
如果不想重新写一个,可直接在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框架)
- 将训练好的模型转化为onnx存储格式
python3 pytorch2onnx.py --data data/coco.data --weights modelzoo/coco2017-0.241078ap-model.pth --output yolo-fastestv2.onnx
- onnx-sim
python3 -m onnxsim yolo-fastestv2.onnx yolo-fastestv2-opt.onnx
- 搭建 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
- 转变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
- 跑通样例
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)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)