在detectron目录下一般会有如下几个比较重要的目录:
configs、
detectron(lib)、
tools
configs目录下
- 全部存放的是模型训练的各种yaml配置文件。
- 在detectron框架中进行训练及测试时,不同的配置文件决定了不同的算法模型结构及训练、测试参数。
- 官方给出了大量的示例yaml配置,这些配置在公开数据集上跑出的效果优异。
- 一般,我们可以针对自己实际情况进行修改。
tools目录下
- 主要存放detectron中的一些拓展功能脚本,
- 如train_net.py为训练过程的启动文件, test_net.py为测试过程的启动文件
- infer_simple.py允许根据yaml配置文件及训练好的模型对图片进行推断
- pickle_caffe_blobs.py文件可以根据caffe的模型文件及caffe的网络定义
- prototxt文件将caffe的模型转换为满足detectron格式要求的.pkl文件。
detectron(lib)
目录为整个工程的核心目录,其子目录有:
- core、
- datasets、
- modeling、
- opt、
- roi_data、
- tests、
- utils
core目录中
主要有
- config.py文件
- 生成rpn的rpn_generator.py
- 部分测试核心代码test.py,test_engine.py,test_retinanet.py),
datasets目录
顾名思义主要就是存放数据集以及与数据集读取、定义相关的文件。
这里主要支持coco数据集,
在datasets/data/coco目录下,一般分:
- Annotations
- coco_train/
- coco_val/
- coco_test
Annotations存放json格式的训练/验证/测试数据的图片名、ground truth、图片高宽等信息
coco_train/coco_val/coco_test中存放相应图片。
modeling目录下
主要存放模型定义的组成脚本,
如model_builder.py主要定义了算法的基本形式,这里主要有三种
- faster_rcnn、rfcn以及retinanet。
- FPN.py、resnet.py、vgg16.py、vgg_cnn_M_1024.py等文件定义了检测算法中特征提取网络部分,我们也可以根据需要自己添加或修改特征提取网络部分。
- fast_rcnn_heads.py 、mask_rcnn_heads.py、retinanet_head.py、rfcn_heads.py定义了各种头部
- roi_data目录中的文件主要定义detectron中数据的加载及处理细节,
- 其中loader.py定义了数据加载方式,
- minibatch.py定义数据进入网络前的增强及过滤方式,我们也可以根据需要修改源码加入想要的图片预处理。
utils目录下
文件包含较广泛,
- lr_policy.py定义了训练中的优化策略,
- net.py主要定义了以权重文件初始化网络及在各gpu中broadcast各层网络参数、及从内存中将权重文件保存到硬盘的细节。
参考 链接: 参考