复旦、清华和英特尔中国研究院ICCV新作:完全脱离预训练模型的目标检测方法-阿里云开发者社区

开发者社区> 知与谁同> 正文

复旦、清华和英特尔中国研究院ICCV新作:完全脱离预训练模型的目标检测方法

简介:
+关注继续查看

最近,由复旦大学、清华大学和英特尔中国研究院合作提出的一种新型的目标检测方法 (DSOD) 被国际计算机视觉顶级会议ICCV 2017接收。论文标题为:DSOD: Learning Deeply Supervised Object Detectors from Scratch。


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


论文地址:https://arxiv.org/abs/1708.01241。论文代码:https://github.com/szq0214/DSOD


论文在Arxiv放出之后,在社交网络上引起广泛关注。本文对这个工作做一个详细的解读。


目标检测存在的几个痛点


目标检测 (Object Detection) 作为一项重要的视觉任务广泛应用于自动驾驶、监控、医学图像检测等领域。众所周知,目前所有基于深度学习的目标检测方法都严重依赖于在ImageNet分类任务上预训练(pre-train)的模型作为初始权重。根据论文中的观点,这种预训练+微调(pre-train + fine-tune)的方式主要存在以下几个问题:


1、缺乏灵活性。在ImageNet上训练模型代价非常高昂,如果只使用公开的预训练的模型,将很难根据需要去灵活地调整模型结构。


2、Loss差异问题。由于ImageNet模型的类别和目标检测问题的类别分布差别较大,分类的目标函数和检测的目标函数也不一致,作者认为从预训练模型上微调(fine-tune)可能和检测问题的有一定的优化学习偏差. 这个偏差对于有限训练样本可能更突出。


3、问题域(domain)的不匹配。并不是所有检测任务都是在自然RGB图像上进行的,如医学图像、多谱图像的检测。目前能够作为预训练的大规模数据集几乎只有ImageNet,而在自然图片上预训练,由于domain的巨大差异,很难在医学图像等domain上有效地微调(fine-tune)。


那么有没有一种方法能够在完全脱离预训练模型的情况下达到state-of-the-art的性能呢?


借助CVPR2017最佳论文DenseNet特性


DSOD目的是为了解决这些痛点,该方法借助于DenseNet (CVPR2017 best paper) 隐式的deeply supervised的特性,结合其他一些设计原则,成功地实现了目标检测模型的从零开始训练(training from scratch)。这是目前已知的第一篇在完全脱离ImageNet 预训练模型的情况下使用深度模型l, 在有限的训练数据前提下能做到state-of-the-art效果的工作,同时模型参数相比其他方法也要小很多。


DSOD的完整结构图如下表1 :


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

表1. DSOD网络结构图


为了训练出性能更好的检测器,文章提出了如下几个网络设计原则:


原则一:无障碍的梯度回传


并不是所有框架都适合用来从头开始训检测器。作者发现像Faster-RCNN、R-FCN这类基于region-proposal的框架,由于存在ROI pooling layer, 该层类似于一个mask,使得梯度没法平滑的回传到前面层,因此从零开始训练的整个模型没法收敛(或者收敛较差)。而YOLO、SSD这类框架由于是proposal-free的结构,模型可以收敛,但是结果和预训练模型上微调有较大差距。


原则二:更深的监督信息


训练深度模型一个很常见的问题就是梯度消失。一个比较常用的减缓梯度消失问题的方法是在网络中间层插入side-output loss项,让网络靠近输入层的神经元也能接收到比较强的梯度信号。但是DSOD抛弃了这种显式的deep supervision结构,原因在于目前detection框架的loss项本身比较复杂,而且会使用多层feature来做检测,所以不太适合插入多个这样的loss项。DSOD采用了一种更加优雅的解决方案,通过借助dense block中每一层都会连接到后面层上去的特点,避免了training from scratch过程中梯度消失的问题。在DSOD中,除了主干网,预测层的结构也改变成dense的连接方式(见图1),该结构不仅能大量减少需要学习的模型参数,同时能进一步提升模型性能。


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

图1. DSOD预测层结构示意图


原则三:根(Stem)结构


根结构已经被应用于一些优秀的神经网络结构中,如google提出的Inception结构等。实验结果表明,stem结构可以有效地保护输入图片信息的丢失,从而训练出更加鲁棒的检测器。


以下是DSOD在PASCAL VOC 2007数据集上各部分有效性验证实验:


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

表2. 网络各部分有效性验证实验


更多细节大家可以去阅读原文。


表3是DSOD 在 PASCAL VOC 2007数据集上的“物体检测”对比实验结果(包括模型参数量,运行速度,输入图片大小,模型精度等):



640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

表3. VOC2007 test set上的实验结果对比



从表中可以看出DSOD不仅模型参数更小 (仅为SSD的1/2, faster-rcnn的1/10),而且性能优于相同设置下的YOLOv2、SSD等。更重要的是DSOD模型不需要在ImageNet预训练,也就是说该模型训练图像其实比其他state-of-the-art的方法少用了120万张预训练图片!


下面是DSOD算法的一些实际的检测结果:

        

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

图2. 检测结果示例图


总结


在DSOD这篇论文中,作者首先分析了深度网络training from scratch存在的问题以及如何才能构建一个可以从零开始训练的检测器的网络,同时给出了非常详细的指导和设计原则帮助读者去构建这样的网络。


基于这些原则,作者提出了DSOD模型,该模型不仅参数更少(适合于手机、无人机等资源受限的设备)、性能更强,更重要的是不需要在大数据集(如ImageNet)上预训练,使得DSOD的网络结构设计非常灵活,根据自己的应用场景可以设计自己所需要的网络结构。


DSOD模型打破了传统的基于预训练+微调的检测器训练的藩篱,在有限数据集下,从零开始训练就能得到state-of-the-art的目标检测器,在自动驾驶、监控、医学图像、多谱图像等领域将会拥有非常广阔的应用前景。


文章转自新智元公众号,原文链接

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
9497 0
目标检测技术演化:从R-CNN到Faster R-CNN
一文了解目标检测技术发展,不要错过哟。
2540 0
CV:基于深度学习实现目标检测之GUI界面产品设计并实现图片识别、视频识别、摄像头识别(准确度非常高)
CV:基于深度学习实现目标检测之GUI界面产品设计并实现图片识别、视频识别、摄像头识别(准确度非常高)
13 0
YOLO: 3 步实时目标检测安装运行教程 [你看那条狗,好像一条狗!]
封面图是作者运行图,我在 ubuntu 环境下只有文字预测结果。 Detection Using A Pre-Trained Model 使用训练好的模型来检测物体 运行一下命令来下载和编译模型 git clone https://github.
1206 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
13186 0
直线目标检测技术
Boofcv研究:直线目标检测 public class LineDetection { private static final float edgeThreshold = 25; private static final int m...
670 0
如何部署自己的SSD检测模型到Android TFLite上
TensorFlow Object Detection API 上提供了使用SSD部署到TFLite运行上去的方法, 可是这套API封装太死板, 如果你要自己实现了一套SSD的训练算法,应该怎么才能部署到TFLite上呢?   首先,抛开后处理的部分,你的SSD模型(无论是VGG-SSD和Mobilenet-SSD), 你最终的模型的输出是对class_predictions和bbo
4255 0
号称准确率 97% 的开源肺炎检测模型:照搬 PyTorch 教程、50 张图片就训练完了
此前,一位澳大利亚的人工智能博士候选人宣布构建了一套深度学习模型,能够从肺部 X 光片中以 97.5% 的准确率 检测出患者是否感染了 COVID-19 病毒。
1791 0
+关注
10077
文章
2994
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载