开源|如何用Caffe深度学习框架实现A-Fast-RCNN

Posted 全球人工智能

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了开源|如何用Caffe深度学习框架实现A-Fast-RCNN相关的知识,希望对你有一定的参考价值。

全球人工智能


文章来源:arxiv、Github  编译:马卓奇

文章投稿:news@top25.cn


论文摘要:A-Fast-RCNN模型通过用对抗网络生成具有遮挡和变形的样本,并用其训练检测网络,从而使得网络能够对样本的遮挡和变形问题更加的鲁棒。

 

如何学习一个具有变形和遮挡不变形的目标检测器?目前的方法是使用数据驱动的方法来收集大规模的数据集,然后其中会含有不同条件下的目标样本。人们希望最终的分类器可以使用这些样例来学习得到不变性。但是有可能在数据库中看到所有的遮挡样例吗?作者认为,与类别一样,遮挡和目标变形也遵循“长尾理论”。有的遮挡和变形样例很少见,甚至于几乎不会出现,但是我们需要学习一个可以对这些现象不敏感的模型。在这篇文章中,作者提出了一个替代方法。作者提出学习得到一个对抗式网络,可以生成具有遮挡和变形情况的样例。对抗网络的目标是生成让目标检测器难以分类的样例。在该算法框架下,原始的检测器和对抗式网络都是联合学习的。实验结果表明,与Fast-RCNN框架相比,我们的算法在VOC07数据库上的(mAP)有2.3%的提高,在VOC2012目标检测挑战数据库上平均识别精度(mAP)有2.6%的提高。我们也公布了这篇文章的代码。


网络结构

ASDN网络结构以及与Fast RCNN的结合方法

 

ASDN网络采用使用RoI池化层提取的图像块特征作为输入。ASDN网络产生一个遮挡/丢弃掩模(occlusion/dropout mask),在下一步用于丢弃特征值,并且传递给Fast-RCNN的分类塔


代码实现:

这是基于Caffe版本的A-Fast-RCNN。我们最开始是用torch实现的,但是Caffe复现的版本更简单,更快,使用起来也更方便。

 

我们也发布了用对抗式空间丢弃网络(Adversarial SpatialDropout Network)来训练A-Fast-RCNN的代码。

 

声明:

该版本实现基于OHEM的代码复现,而它也是依次基于Faster R-CNN的Python代码和Fast R-CNN的代码实现的。如果使用相应部分的模型或代码,请引用他们的论文。


运行数据效果:

| Approach                      | training data          | test data         | mAP
| Fast R-CNN  (FRCN)            | VOC 07 trainval         | VOC 07 test      | 67.6
| FRCN with adversary           | VOC 07 trainval         | VOC 07 test      | 70.8

注:该结果基于VGG16网络


安装地址:

请根据安装说明进行准确安装,并且下载VOC数据库以及Faster R-CNN Python代码。


Github的使用方法


运行代码

./train.sh


包含三个阶段的训练:

1 训练标准的Fast-RCNN,进行10000次迭代,可以在这里下载该阶段的作者的模型和训练日志。

 

模型:https://dl.dropboxusercontent.com/u/334666754/CVPR2017_AFRCNN/fast_rcnn_std_iter_10000.caffemodel

日志:https://dl.dropboxusercontent.com/u/334666754/CVPR2017_AFRCNN/fast_rcnn_std.txt.2017-04-08_16-53-59


./experiments/scripts/fast_rcnn_std.sh [GPU_ID]  VGG16 pascal_voc


2 对抗式网络的预训练阶段,可以在这里下载该阶段的作者的模型和训练日志。

 

模型:https://dl.dropboxusercontent.com/u/334666754/CVPR2017_AFRCNN/fast_rcnn_adv_pretrain_iter_25000.caffemodel

日志:https://dl.dropboxusercontent.com/u/334666754/CVPR2017_AFRCNN/fast_rcnn_adv_pretrain.txt.2017-04-08_19-39-49


./experiments/scripts/fast_rcnn_adv_pretrain.sh [GPU_ID]  VGG16 pascal_voc


 复制上述两个模型的权重,用于初始化联合模型

./copy_model.h


3 检测器和对抗式网络的联合训练,可以在这里下载该阶段的作者的模型和训练日志。

 

模型:https://dl.dropboxusercontent.com/u/334666754/CVPR2017_AFRCNN/fast_rcnn_adv_iter_40000.caffemodel

日志:https://dl.dropboxusercontent.com/u/334666754/CVPR2017_AFRCNN/fast_rcnn_adv.txt.2017-04-09_22-09-57

./experiments/scripts/fast_rcnn_adv.sh [GPU_ID]  VGG16 pascal_voc





AIJob社是《全球人工智能》旗下专门为AI开发工程师免费服务的求职平台。我们将竭尽全力帮助每一个ai工程师对接自己喜欢的企业,推荐给你喜欢的直接领导,帮你谈一个最好的薪资待遇。

微信咨询:aihr007  简历投递:hr@top25.cn  企业合作:job@top25.cn

全球人工智能》招聘5名兼职翻译:图像技术、语音技术、自然语言、机器学习、数据挖掘等专业技术领域,工作内容及待遇请添加工作人员微信:C691993。


热门文章推荐





重磅|全球AI报告:看看谷歌|苹果|Facebook等十几家巨头都收购了哪些牛逼的AI公司?



以上是关于开源|如何用Caffe深度学习框架实现A-Fast-RCNN的主要内容,如果未能解决你的问题,请参考以下文章

深度学习框架之Caffe源码解析

重磅Facebook 开源产业级深度学习框架 Caffe2,带来跨平台机器学习工具

开源产业级深度学习框架 Caffe2

工具 | Facebook 开源产业级深度学习框架 Caffe2,带来跨平台机器学习工具

开源深度学习架构Caffe

行业热点Facebook发布开源Caffe2深度学习框架,顺应跨平台模型训练的新趋势