VGG
VGGNet是2014年提出的卷积神经网络结构,其主要与AlexNet发展而来。同GoogLeNet一样证明加深网络层数是有效的。不过没有那么的炫。
贴一篇论文翻译:http://noahsnail.com/2017/08/17/2017-8-17-VGG%E8%AE%BA%E6%96%87%E7%BF%BB%E8%AF%91%E2%80%94%E2%80%94%E4%B8%AD%E6%96%87%E7%89%88/
主要进行了两个方面的改进:(1)在卷积层使用更小的filter尺寸和间隔。(2)在整个图片和multi—scale上训练和测试图片。网络基本上为3*3的卷积层构成。3*3的卷积层具有如下特性:(1)是最小能够捕获上下左右和中心概念的尺寸。(2)代替大的卷积核。例如,2个代替5*5,3个代替7*7.(3)卷积层后使用激活函数,加入了更多的非线性。(4)更少的参数。
卷积层的通道数变化很常规,在经过maxpooling层后加倍,从64最终变化到512.这种相对一致的网络结构对研究者很有吸引力。但是相对于GoogLeNet,需要训练的特征数量非常的巨大。
VGG一共有6个网络模型,从低到高层数逐渐加深。为加快训练,通常先训练浅层网络,在训练深层网络如E时,使用A中的参数进行初始化对应的层。
多尺度训练:原始图片需要等比例缩放,保证短边的长度>224,然后在图片上进行裁剪,裁剪尺度固定为224*224.
文章介绍了两种多尺度的训练方法:(1)在不同的尺度下,训练多个分类器。分别训练s=256和s=384两个分类器。(2)直接训练一个分类器,每次输入数据时,每张图片被重新缩放,缩放的短边长度在[256,512]之间。初始化时使用s=384.
多尺度训练的思想十分的重要,在后面的神经网络中都采用了这种方法。在yolov2中更是可以进行精度和速度的一个调整,这个后面的学习再说。
SSD
论文网址:https://arxiv.org/abs/1512.02325
翻译网址:http://noahsnail.com/2017/12/11/2017-12-11-Single%20Shot%20MultiBox%20Detector%E8%AE%BA%E6%96%87%E7%BF%BB%E8%AF%91%E2%80%94%E2%80%94%E4%B8%AD%E6%96%87%E7%89%88/
按照模型的发展顺序来讲,应该先介绍R-CNN模型,然后是Fast-RCNN,接着Faster-RCNN,再然后为SSD模型。但是呢R-CNN已经比较老了,后面的网络已经将前面的这些思想和技巧都融合贯通了,所以这里直接从较新的目标检测网络SSD学起。
和FasterRCNN先提取建议框,在进行分类不同,SSD利用Anchor直接进行分类和BoundingBox回归。Anchor就是一个具有一定大小基准框,然后按照不同倍数和长宽比例得到不同大小的框。这样的SSD是一种端对端的训练方法。其速度的改进来自于消除提出边界框和随后的重采样阶段。
模型特点:
1.多尺度特征映射。将卷积特征层添加到截取的基础网络的末端。大尺度的特征图有较多的信息,可以用来检测小物体。而小尺度的特征图用来检测较大的物体。允许在多个尺度上对检测结果进行预测。
2.采用卷积层作为作为预测器。代替了全连接层,直接采用卷积对不同的特征图进行提取检测结果。