Faster RCNN在pycharm中运行(包括自制数据集)

文章目录

  • 1 代码
  • 2 文件说明
  • 3 代码解析
  • 5 数据
  • 6 自制数据集
    • 6.1 创建文件夹
    • 6.2 标注图片
  • 7 开始训练

1 代码

  • 参考B站up主:霹雳吧啦Wz
  • git clone https://github.com/WZMIAOMIAO/deep-learning-for-image-processing

2 文件说明

Faster RCNN在pycharm中运行(包括自制数据集)_第1张图片

  • 首先找到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 代码解析

Faster RCNN在pycharm中运行(包括自制数据集)_第2张图片
Faster RCNN在pycharm中运行(包括自制数据集)_第3张图片
Faster RCNN在pycharm中运行(包括自制数据集)_第4张图片
Faster RCNN在pycharm中运行(包括自制数据集)_第5张图片

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 创建文件夹

Faster RCNN在pycharm中运行(包括自制数据集)_第6张图片

  • 用命令行 mkdir +文件名,touch classes.txt
  • 其中classes.txt存放的是检测目标的种类名称,annotation中存放的是标注的信息文件,imgae放得是要进行标注的数据集
    Faster RCNN在pycharm中运行(包括自制数据集)_第7张图片
  • 输入这一行指令
  • labelImg 第一个是图片路径 第二个是类别标签路径

6.2 标注图片

Faster RCNN在pycharm中运行(包括自制数据集)_第8张图片

  • 打开目录选择image文件夹
  • 然后点击下面的改变存放目录,选择annotation,就是将更改后的数据放在该文件夹下面
    Faster RCNN在pycharm中运行(包括自制数据集)_第9张图片
    Faster RCNN在pycharm中运行(包括自制数据集)_第10张图片
  • 打开annotation文件,然后去找刚刚保存的图片
    Faster RCNN在pycharm中运行(包括自制数据集)_第11张图片

7 开始训练

Faster RCNN在pycharm中运行(包括自制数据集)_第12张图片

  • 然后将annotations文件夹放在Annotations中,images放在JPEGImages中
  • 需要自己去生成对应训练集的txt(train.txt),以及验证集的txt(val.txt),自己遍历annotation文件或者images文件获取文件夹下面所有的图片名称,按照比例进行分类,分类之后分别将训练集的所有图片名称写入到train.txt,验证集写入到val.txt,这样就可以按照使用pascal voc数据集一样进行训练

你可能感兴趣的:(pycharm,ide,python)