1 代码
- 参考B站up主:霹雳吧啦Wz
- git clone https://github.com/WZMIAOMIAO/deep-learning-for-image-processing
2 文件说明
- 首先找到faster_rcnn
├── backbone: 特征提取网络,可以根据自己的要求选择
├── network_files: Faster R-CNN网络(包括Fast R-CNN以及RPN等模块)
├── train_utils: 训练验证相关模块(包括cocotools)
├── my_dataset.py: 自定义dataset用于读取VOC数据集
├── train_mobilenet.py: 以MobileNetV2做为backbone进行训练
├── train_resnet50_fpn.py: 以resnet50+FPN做为backbone进行训练
├── train_multi_GPU.py: 针对使用多GPU的用户使用
├── predict.py: 简易的预测脚本,使用训练好的权重进行预测测试
├── validation.py: 利用训练好的权重验证/测试数据的COCO指标,并生成record_mAP.txt文件
└── pascal_voc_classes.json: pascal_voc标签文件 - 这是各个文件的作用
3 代码解析
5 数据
- Pascal VOC2012 train/val数据集下载地址:http://host.robots.ox.ac.uk/pascal/VOC/voc2012/VOCtrainval_11-May-2012.tar
- 如果不了解数据集或者想使用自己的数据集进行训练,请参考我的bilibili:https://b23.tv/F1kSCK
- 使用ResNet50+FPN以及迁移学习在VOC2012数据集上得到的权重: 链接:https://pan.baidu.com/s/1ifilndFRtAV5RDZINSHj5w 提取码:dsz8
训练方法
6 自制数据集
- 标注图片,在git上搜索label,labelImg可以生成xml文件,labelme可以生成json文件
- 这里以labelImg为例git链接
- 终端输入pip install labelImg
6.1 创建文件夹
- 用命令行 mkdir +文件名,touch classes.txt
- 其中classes.txt存放的是检测目标的种类名称,annotation中存放的是标注的信息文件,imgae放得是要进行标注的数据集
- 输入这一行指令
- labelImg 第一个是图片路径 第二个是类别标签路径
6.2 标注图片
文章来源:https://www.toymoban.com/news/detail-436463.html
- 打开目录选择image文件夹
- 然后点击下面的改变存放目录,选择annotation,就是将更改后的数据放在该文件夹下面
- 打开annotation文件,然后去找刚刚保存的图片
7 开始训练
文章来源地址https://www.toymoban.com/news/detail-436463.html
- 然后将annotations文件夹放在Annotations中,images放在JPEGImages中
- 需要自己去生成对应训练集的txt(train.txt),以及验证集的txt(val.txt),自己遍历annotation文件或者images文件获取文件夹下面所有的图片名称,按照比例进行分类,分类之后分别将训练集的所有图片名称写入到train.txt,验证集写入到val.txt,这样就可以按照使用pascal voc数据集一样进行训练
到了这里,关于Faster RCNN在pycharm中运行的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!