问题:
- 图像分类网络是否可以用于目标检测
- 在什么情况下可以使用
图像分类与目标检测的区别
目标检测架构的基本网络
将一个预训练的分类网络作为深度学习目标检测架构(例如 Faster R-CNN、SSD 或者 YOLO)的基本网络。
- 这个方法的好处是:你可以创建一个基于深度学习的复杂端到端目标检测器。
- 而其不足之处是:它需要一些关于深度学习目标检测器如何工作的知识,我们将在后面的部分中讨论这个问题。
深度学习目标检测器的模块
图 4: VGG16 基本网络是 SSD 深度学习目标检测框架的一个特征抽取模块。
首先我们要知道,深度学习目标检测器有很多模块,子模块以及更小的子模块,但是我们今天要重点关注的是深度学习入门读者所困惑的两个:
-
目标检测框架(不包括 Faster R-CNN, SSD, YOLO)
-
适合目标检测框架的基本网络
基本网络就是你常用的分类 CNN 架构,包括:
VGGNet
ResNet
MobileNet
DenseNet
通常这些网络在大数据集上进行预训练来进行分类,例如 ImageNet,它们可以学习到很多具有鉴别能力的滤波器。
目标检测框架由很多组成部分和子模块构成:
- Faster R-CNN 框架包括:
候选区域网络(RPN)
一组锚点
ROI 池化模块
最终基于区域的卷积神经网络
- SSD(单步检测器,single shot detectors)包括:
多框(MultiBox)
先验(Priors)
固定先验(Fixed priors)
图 4 描述了 SSD 框架内部的 VGG-16 网络。通常,我们需要在基本网络上进行网络手术。这种修改包括:
- 变成全卷积的形式,并接受任意输入维度。
- 剪除了基本网络中更深层的卷积和池化层,将它们以一系列新层
(SSD)、新模块(Faster R-CNN),或者这两者的一些组合代替。
这里的「网络手术」是一种口语化的说法,它的意思是移除基本网络中的一些原始卷积层,将它们用新层替代。网络手术也是讲究策略的,我们移除一些不需要的部分,然后用一组新的部分来替代它们。
然后,当我们开始训练我们的框架进行目标检测时,(1)新层、模块和(2)基本网络的权重都被修改了。
图片来自 知乎-田昊