神经网络起源较可以追溯到二十世纪四十年代[1],最初的想法是借鉴人的大脑结构,来解决一些常规的学习问题,随着反向传播算法[2]的提出神经网络开始盛行起来,但是由于计算机计算和处理能力受限制,训练策略局限,缺乏大量数据训练等缺点,打击了学者们对神经网络研究的热情,自 2006 年人们在语音识别技术的进展[3],重新点燃了人们对深度学习的兴趣,并且随着计算机硬件水平的提升,GPU 的出现和使用,计算机计算能力有了质的突破,以及大量优秀数据集的出现和网络结构的训练策略的重大进步[4]更加激发了学者们对深度学习的研究渴望,大量优秀的神经网络模型被提出,常用的卷积神经网络有 Le Net[5],AlexNet,ZFNet[6],VGG16Net[7],GoogleNet[8]和 ResNet[9]等。如果说传统的目标检测算法是冷兵器时代的智慧,那么基于深度学习的目标检测就是 GPU 下的暴力美学。卷积神经网络经历了从简到繁再到简的过程,浅层卷积层可以得到目标物体边缘的信息,而深层网络可以得到更细节更抽象的特征。神经网络结构可以设计很深,网络越深,网络的非线性表达能力就越强,可以近乎无限逼近任意函数,这就是神经网络强大学习能力的原因。
基于深度学习目标检测的算法主要有两种,一种是基于 two stage 的检测算法,它使用 region proposal(候选区域)来代替传统的滑动窗口法来实现候选区域的生成,解决了滑动窗口区域选择没有针对性的问题,用卷积神经网来实现对候选区域的特征提取和分类任务。另一种是基于 one stage 的目标检测算法,它使用了基于回归的方法,仅仅使用一个卷积神经网完成所有检测流程,没有采用 R-CNN 系列的 Anchor,而是采取了预定义候选区,对于待检测图像直接在图像中回归出目标检测框和类别。下表对比了不同检测算法在 COCO 数据集上的性能,可以得出,计算机性能的提升和网络结构不断优化,检测算法的性能有了显而易见的提高。