软件需求:
cuda Anaconda pytorch paddle
首先需要搭建自己的开发环境,这里是指搭建pytorch,或者搭建百度飞浆的paddle都可以
简答说一下流程:首先你需要一个带显卡的电脑,我们需要去查找自己电脑显卡的驱动是否安装成功,然后查看自己显卡支持的cuda版本:
在命令行输入:
nvidia-smi
查看右上角的版本号即可知道驱动支持的最大cuda版本号
我们在安装了cuda后还需要安装cudnn这里的cudnn需要和自己的cuda版本好相对应。
安装好cuda和cudnn后我们去pytorch官网根据cuda的版本号选择pytorch的版本在电脑使用anaconda创建虚拟环境进行安装。
在这里默认环境已经安装完成,接下来我参考的是百度飞桨的一个项目,PaddleSeg-release
首先我们在开始之前需要采集自己的数据集,数据集的采集需要利用的软件是labelme可以利用Anaconda创建一个虚拟环境来安装labelme进行数据集的采集,采集后的数据集内含两类文件,原图和json文件,我们将所有的图片放到一个文件夹当中,这里我们需要利用一个脚本来将我们的数据集创建成标准的数据集文件:
python tools/labelme2seg.py dataset
可以将json文件删除了
因为没 ⽤了,label已经都解压到了annotations(上⼀步⽣成)⽂件夹⾥。
接下来对数据集进行划分:
python tools/split_dataset_list.py dataset images annotations --split 0.6 0.2 0.2 --format jpg png
运行后将得到四个txt文件,里面对数据集进行了解释和链接
注意!!!:***.txt中的⽂件路径是不是/(反斜杠),要是\这个的话就要全部替换!!!!
当我们创建好数据集后我们开始搭建自己的网络,这里我选择的是BiseNetV2模型,模型我还不是很理解就不做介绍,
我这里使用了一个自己的yml文件,当中需要需改的参数有三个:
1.dataset_root路径
2.train_path为txt的路径
3.num_classes为类别(背景也算为⼀类);
接下来是网络代码的编写:
python train.py --config my.yml --do_eval --use_vdl --save_interval 200 --save_dir output2
这个代码将开始训练模型
接下来我们进行验证模型
python val.py \ --config my.yml --model_path output2/iter_1000/model.pdparams
结果显示:acc:0.98 miou:0.78 kappa:0.7294 。可见训练效果还是不错的。
接下来我们进行模型的预测,这里我将加载模型去判断未知的数据,可以是我们需要应用的数据
首先如果是视频的话,需要将视频进行切片,分成若干张图片,然后:
进行模型的预测:
python predict.py --config my.yml --model_path output2/iter_1000/model.pdparams --image_path images --save_dir output3/result
预测的结果会存储在:output/result文件当中。
当然我们也可以对模型进行导出:
python export.py --config my.yml --model_path output/iter_1000/model.pdparams --save_dir output2
然后我们利用本地的模型进行推到:
python deploy/python/infer.py --config output/deploy.yaml --image_path VedioPicture --save_dir output2/result_demo
VedioPicture需要推到的文件名