1.2.4 目标检测方法
传统计算机视觉问题的解决思路如下:首先对图像数据进行预处理;然后人工提出特征。大部分研究集中在如何使人工提取的特征更加精准上,例如,梯度方向直方图(Histogram of Oriented Gridients,HOG)算法与支持向量机(Support Vector Machine,SVM)算法结合使用,进行目标检测。但人工提取的方式存在特征不强的缺陷,或者说泛化能力较弱。泛化能力是指已训练好的模型可以在其他数据集或者其他任务中使用的能力。例如,一类特征针对某一特定问题处理较好,但是对其他问题效果却不尽如人意。
当前流行的深度学习方法比传统方法更强大。通过深度学习算法进行端到端的学习,从输入图像到输出任务结果可一步完成。所以,本书主要讲解基于深度学习方法。作为对比,还会讲解一小部分传统方法。
深度学习方法中的目标检测,常见的有两阶段目标检测方法和一阶段目标检测方法。在两阶段目标检测方法中,首先由算法生成一系列作为样本的候选框,再通过卷积神经网络进行样本分类。常见的算法有Region-CNN(R-CNN)、Fast R-CNN和Faster R-CNN等。一阶段目标检测方法不需要产生候选框,而是直接将目标框定位问题转化为回归问题进行处理,这种方法的速度非常快,常见的有You Only Look Once(YOLO)系列算法(如YOLO、YOLOv2、YOLOv3、YOLOv4)和Single Shot MultiBox Detector(SSD)等。
本书将围绕深度学习方法展开目标检测技术从入门到进阶的讲解。为了方便基础比较薄弱的读者更快入门,在本书前面部分增加了有助于后面部分理解的必要的铺垫,如相关数学基础、跨平台计算机视觉和机器学习软件库OpenCV和PyTorch等编辑工具基础。然后就是深度学习基础,特别是卷积神经网络用于分类,因为这个分类都是与检测紧密相连的。接着就是本书最为精彩的部分:两阶段深度学习方法、一阶段深度学习方法。最后是4大实战项目讲解,对于技能掌握是非常重要的,也有助于读者牢牢掌握目标检测的各种应用方法。