学习记录:Windows系统下复现目标检测算法(pytorch-retinanet)训练自己标注的数据集

一、项目来源(下载两个工程包)

https://gitcode.net/mirrors/yhenon/pytorch-retinanet?utm_source=csdn_github_accelerator

https://gitcode.net/mirrors/bubbliiiing/object-detection-augmentation?utm_source=csdn_github_accelerator

感谢大佬的博客分享~~~

【目标检测实战学习】从零开始制作并训练自己的VOC数据集,并使用Retinanet进行目标检测_vocdevkit_trash_Bill~QAQ~的博客-CSDN博客

用标注工具labeling标注自己的数据集参考链接:

学习记录:win10系统labeling标注工具的使用以及前期anaconda环境搭建完整版_小跑遨游宇宙的博客-CSDN博客

二、参考上面博客,重新合并工程包,对照正文(完整版)下载可直接使用。

百度网盘连接地址:

链接:https://pan.baidu.com/s/17T714hdoCOqMG08F11lpBg 
提取码:7dj5

       正文中出现训练不显示的问题,有可能是cuda10.0版本低了???不得而知,反正换了一台电脑cuda11.3版本就成功了,流程是一样的,主要注意的就是pytorch安装对应cuda、python版本,上一篇博客有提到过。

三、正文(完整版)

1、打开Anaconda Prompt(Anaconda3),创建环境cuda10.0+python3.7+pytorch1.2.0

conda create -n mbjc python==3.7  #创建环境 python版本:3.7 环境名称:mbjc
conda activate mbjc               #激活环境 环境名称:mbjc
conda install pytorch==1.2.0 torchvision==0.4.0 cudatoolkit=10.0 -c pytorch  #安装pytorch 

显示安装成功!

2、修改 labelImg-master文件夹中data文件夹的predefined_classes.txt,类别我这里只要检测行人,只保留了person一个类,然后在labelImg-master文件夹中,打开终端。安装能够使用标注工具labeling的依赖项

-----------激活先前创建的环境-----------
D:\pytorch-retinanet-master\labelImg-master>conda activate mbjc
 
---------输入下面代码安装环境依赖-------
(mbjc) D:\pytorch-retinanet-master\labelImg-master>conda install pyqt=5
(mbjc) D:\pytorch-retinanet-master\labelImg-master>conda install -c anaconda lxml
(mbjc) D:\pytorch-retinanet-master\labelImg-master>pyrcc5 -o libs/resources.py resources.qrc
 
--------------打开labeling--------------
(mbjc) D:\pytorch-retinanet-master\labelImg-master>python labelImg.py

 3、对数据进行增强,这里就使用mosaic方法为例。我们把上图的jpg_original和label_original两个文件夹复制到D:\pytorch-retinanet-master\object-detection-augmentation-main\VOCdevkit_Origin\VOC2007文件夹中

接着在D:\pytorch-retinanet-master\object-detection-augmentation-main\VOCdevkit\VOC2007文件夹中创建jpg_final和label_final两个新文件夹,用来存储数据增强后的图片以及标签

打开D:\pytorch-retinanet-master\object-detection-augmentation-main文件夹中的generate_mosaic.py,对其做部分修改

Out_Num 表示利用mosaic生成多少组图片,修改数据增强后的图片数目,自行修改

 修改路径中的文件夹名称,注意原始图片和标签 以及 数据增强后的图片和标签

修改之后,在D:\pytorch-retinanet-master\object-detection-augmentation-main文件夹中打开cmd窗口,激活环境,安装能够运行generate_mosaic.py的依赖包。提前准备这些安装包

激活环境后安装依赖包(需要和python3.7版本对应),安装很快,命令语句:

conda activate mbjc
pip install numpy-1.19.5+mkl-cp37-cp37m-win_amd64.whl
pip install opencv_python-4.5.3.56-cp37-cp37m-win_amd64.whl
pip install Pillow-8.3.2-cp37-cp37m-win_amd64.whl
python generate_mosaic.py

 接着在D:\pytorch-retinanet-master\object-detection-augmentation-main\VOCdevkit\VOC2007文件夹中会分别产生20张数据增强后的照片以及对应的标签,随便打开一张处理后的照片,发现以拼图的方式展现了。

4、划分训练集,测试集。首先将jpg_final和label_final两个文件夹复制粘贴到D:\pytorch-retinanet-master算法文件夹中,注意huafenshujuji.py中的路径位置

 在该文件夹中打开cmd终端,激活环境

会产生三个.csv文件,train.csv、val.csv、class.csv

train.csv和val.csv分别存储了训练集和测试集的图像信息,class.csv存储了类的信息,也就是标签的目录,这里只有person一个类

5、开始训练,打开train.py

这里为了演示,就把epoch改成了5,训练时间少一点

提前下载好预训练权重resnet50-19c8e357.pth(在工程包里,已经下载好)

安装一些依赖包(都已经下载好,放在工程包里)

pip install opencv_python-4.5.3.56-cp37-cp37m-win_amd64.whl
pip install pycocotools_windows-2.0-cp37-cp37m-win_amd64.whl
conda install scikit-image

开始训练(注意三个.csv所在的路径):

然后开始训练 python train.py --dataset csv 

找了半天原因没找到为什么。。。。。。哭了啊

行,方法总比困难多,去实验室找另一台电脑重新创建一个环境,需要查看电脑的cuda版本再安装环境。cuda13.1+python3.7+pytorch1.10.0

conda create -n mbjc python==3.7  #创建环境 python版本:3.7 环境名称:mbjc
conda activate mbjc               #激活环境 环境名称:mbjc
conda install pytorch==1.10.0 torchvision==0.11.0 torchaudio==0.10.0 cudatoolkit=11.3 -c pytorch -c conda-forge
pip install opencv_python-4.5.3.56-cp37-cp37m-win_amd64.whl
pip install pycocotools_windows-2.0-cp37-cp37m-win_amd64.whl
conda install scikit-image
python train.py --dataset csv

 一下子就跑出来了,D:\pytorch-retinanet-master文件夹中多了训练权重文件,在最终完成后还会生成一个最终的权重文件,我们要使用的就是这个model_final.pt

6、开始验证

在visualize.py代码中做如下修改

注意权重文件model_final.pt 的所在位置

输入验证集val.csv的图片内容

然后开始验证 python visualize.py --dataset csv,可以直接可视化出检测结果,由于训练次数少,检测效果并不好。这里只是演示一下整个复现的流程。

总结:pytorch安装对应cuda、python版本,上一篇博客讲解过。

猜你喜欢

转载自blog.csdn.net/weixin_47247597/article/details/129430061