FAIR开源目标识别平台Detectron从入门到放弃(一)

最近去RBG大婶的github主页查看faster rcnn源码,他告诉我py-faster rcnn已经out了,让我移步detectron看下mask rcnn,于是我就去了Shaoqingren婶的github看了下,原作者好像没有说faster rcnn out的意思。抱着试试看的态度,买了两瓶。。。额。去了detectron的githunb主页看了下,于是clone下来研究下。

Detectron文件夹下有大量的文件资源,包含了模型训练与推理的配置,FAIR预训练的模型,docker容器配置以及一些必要的库文件等。即使没有经历一一阅读源码,但是了解下各个文件的作用也是很必要的,下面由AI小白带你学习Detectron平台,一步一步从入门到放弃。

model_Zoo概述

configs/12_2017_baselines文件夹下存放了FAIR在2017年12月份预训练好的最新的目标识别模型,打开文件夹可以看到有faster rcnn,mask rcnn,keyponit rcnn ,retinanet 等,涵盖了最先进的目标识别算法,别问为啥没有yolo和ssd,我也不知道,也许下次更新就会出现。官方在MODEL_ZOO.md文档中公布了一些训练细节:

1. 训练平台是自己的开源gpu服务器Big Basin,8个Tesla P100GPU完成了训练(基于cuda8.0,cuDNN6.0.21)

2. 8个gpu并行sync SGD(同步随机梯度下降法)训练,minibatch 为8或16,这么好的机器minbath size还是选的比较保守的hehe

3.训练时,仅用水平反转作为数据增强,训练数据集为coco_2014_train和coco_2014_valminusminival,完全等价于coco_2017_train

4.测试集采用coco_2014_minival,这也完全等价于coco_2017_val,纯手打,结果比机器翻译还机器翻译,输出结果是coco json格式

5. 目前的预训练模型都是coco dataset格式,Cityscapes dataset预训练模型下个detectron版本即将推出,真替做adas的同学高兴啊,忧愁啥时候出个x光数据集预训练模型

预训练模型策略

configs/12_2017_baselines文件夹下的预训练模型的命名结尾有1x,2x,s1x等字符,表示了三种不同的训练策略:

1.  1x: minibatch size 16, t开始 LR 是0.02,在 60k 和 80k 迭代之间LR乘以0.1系数衰减,总的迭代次数为90k. 训练过程总计12.17个epochs,数据集为coco_2014_train coco_2014_valminusminival,数量为118,287幅图像。

2.  2x: LR为0.01,在 60k 和 80k 迭代之间LR乘以0.1系数衰减,总的迭代次数为90k,训练时间是1x的两倍。

3.  s1x ("stretched 1x"): 相比1x,学习率缩小了1.44倍,在 100k 和 120k 迭代之间LR乘以0.1系数衰减,总的迭代次数为130k.

若修改minibatch size,建议在8到16之间,  SGD iterations 和 base learning rate 需要修改。参考FB的论文 Accurate, Large Minibatch SGD: Training ImageNet in 1 Hour.

ImageNet 预训练模型

FAIR给出了转换后的基于ImageNet-1k的预训练模型,我们可以用这些模型来迁移学习私人定制模型。

  • R-50.pkl: converted copy of MSRA's original ResNet-50 model
  • R-101.pkl: converted copy of MSRA's original ResNet-101 model
  • X-101-64x4d.pkl: converted copy of FB's original ResNeXt-101-64x4d model trained with Torch7
  • X-101-32x8d.pkl: ResNeXt-101-32x8d model trained with Caffe2 at FB
  • X-152-32x8d-IN5k.pkl: ResNeXt-152-32x8d model trained on ImageNet-5k with Caffe2 at FB (see our ResNeXt paper for details on ImageNet-5k)

faster rcnn和mask rcnn baseline

个人比较关心目标识别算法的速度和精度,于是摘出了下面的baseline,主要是end2end faster rcnn和mask rcnn,红色的backbone对应的faster rcnn和mask rcnn比较中意

        backbone         type lr
schd
im/
gpu
train
mem
(GB)
train
time
(s/iter)
train
time
total
(hr)
inference
time
(s/im)
box
AP
mask
AP
kp
AP
prop.
AR
model id download
links
R-50-C4 Faster 1x 1 6.3 0.566 28.3 0.167 + 0.003 34.8 - - - 35857197 model | boxes
R-50-C4 Faster 2x 1 6.3 0.569 56.9 0.174 + 0.003 36.5 - - - 35857281 model | boxes
R-50-FPN Faster 1x 2 7.2 0.544 13.6 0.093 + 0.004 36.7 - - - 35857345 model | boxes
R-50-FPN Faster 2x 2 7.2 0.546 27.3 0.092 + 0.004 37.9 - - - 35857389 model | boxes
R-101-FPN Faster 1x 2 8.9 0.647 16.2 0.120 + 0.004 39.4 - - - 35857890 model | boxes
R-101-FPN Faster 2x 2 8.9 0.647 32.4 0.119 + 0.004 39.8 - - - 35857952 model | boxes
X-101-64x4d-FPN Faster 1x 1 6.9 1.057 52.9 0.305 + 0.003 41.5 - - - 35858015 model | boxes
X-101-64x4d-FPN Faster 2x 1 6.9 1.055 105.5 0.304 + 0.003 40.8 - - - 35858198 model | boxes
X-101-32x8d-FPN Faster 1x 1 7.0 0.799 40.0 0.233 + 0.004 41.3 - - - 36761737 model | boxes
X-101-32x8d-FPN Faster 2x 1 7.0 0.800 80.0 0.233 + 0.003 40.6 - - - 36761786 model | boxes
R-50-C4 Mask 1x 1 6.6 0.620 31.0 0.181 + 0.018 35.8 31.4 - - 35858791 model | boxes | masks
R-50-C4 Mask 2x 1 6.6 0.620 62.0 0.182 + 0.017 37.8 32.8 - - 35858828 model | boxes | masks
R-50-FPN Mask 1x 2 8.6 0.889 22.2 0.099 + 0.019 37.7 33.9 - - 35858933 model | boxes | masks
R-50-FPN Mask 2x 2 8.6 0.897 44.9 0.099 + 0.018 38.6 34.5 - - 35859007 model | boxes | masks
R-101-FPN Mask 1x 2 10.2 1.008 25.2 0.126 + 0.018 40.0 35.9 - - 35861795 model | boxes | masks
R-101-FPN Mask 2x 2 10.2 0.993 49.7 0.126 + 0.017 40.9 36.4 - - 35861858 model | boxes | masks
X-101-64x4d-FPN Mask 1x 1 7.6 1.217 60.9 0.309 + 0.018 42.4 37.5 - - 36494496 model | boxes | masks
X-101-64x4d-FPN Mask 2x 1 7.6 1.210 121.0 0.309 + 0.015 42.2 37.2 - - 35859745 model | boxes | masks
X-101-32x8d-FPN Mask 1x 1 7.7 0.961 48.1 0.239 + 0.019 42.1 37.3 - - 36761843 model | boxes | masks
X-101-32x8d-FPN Mask 2x 1 7.7 0.975 97.5 0.240 + 0.016 41.7 36.9 - - 36762092 model | boxes | masks

RetinaNet Baselines

RetinaNet提出是用来抑制目标识别过程中负样本与正样本数量过于悬殊(接近1000:1)以及不同class图像数量带来的模型AP较低问题。也许在coco dataset数据集这两个问题不明显,所以Detectron给出的RetinaNet的boxAP均没有faster rcnn和mask rcnn高。对于自建数据集,RetinaNet值得一试。

Keypoint-Only Mask R-CNN Baselines

这个与人体姿态识别有关,不带入门。


你可能感兴趣的:(机器学习;python,图像处理,深度学习)