原文链接:目标检测工作原理
目标检测工作原理
长期以来,目标检测模型使用分离的机制进行定位(where)和分类(what)。这些模型称为两阶段检测器,效果也非常不错。但是,最近的工作已经将这两个步骤组合为一个深度学习模型,使模型成为了一个一阶段检测器。
- “You Only Look Once: Unified, Real-Time Object Detection” by Joseph Redmon, Santosh Divvala, Ross Girshick, Ali Farhadi (CVPR 2016)
- “SSD: Single Shot MultiBox Detector” by Wei Liu, Dragomir Anguelov, Dumitru Erhan, Christian Szegedy, Scott Reed, Cheng-Yang Fu, Alexander C. Berg (ECCV 2016)
- “YOLO9000: Better, Faster, Stronger” by Joseph Redmon, Ali Farhadi (CVPR 2017)
这些模型预测效果非常快,甚至可以在iPhone等移动设备上运行。模型整体类似于图片分类器(请参考其工作原理)。主要区别在于神经网络被要求预测每张图片的多个目标,并且每个目标要与边界框相关联。实际上,我们的模型预测一个固定的2535个目标集合。这个数字来自于131315,其中1313表示中心位置的固定网格。最后一个数字代表15种类型的边界框形状的预定义列表(例如3232盒256*128)。由于大多数图片只有很少的目标,因此可以通过低置信度或非最大抑制算法来消除2535个目标中的绝大多数(请参考高级用法)。位置和形状列表旨在提供边界框,边界框应该大致满足任何图片的预测需求。换句话说,给定目标的图片,2535个边界框至少存在一个可以和目标的边界框差不多接近。但是,完美匹配将很少见。为了解决这个问题,对位置和形状的调整值进行预测,并使用调整值来调整固定的边界框来产生更精确的定位。
迁移学习
在训练过程中,类似于图像分类器,我们也应用了迁移学习。实际上,我们的出发点仍然是训练1000个类别的图像分类器。这意味着神经网络在看到我们的数据之前就已经看过了数百万张图片。这非常好,因为这减轻了我们的数据标注负担,并且正是这种情况可以使我们有时只使用每种类别只有30个样本的情况下训练出合理的检测器。这需要一种称为end-to-end fine-tuning
技术,该技术不忘记在先前学习到的有意义的视觉语义的情况下,轻微的更新新任务的所有权重(参数)。与图像分类相比,目标检测会调整到顶层,结果,目标检测器的模型创建时间比图像分类器的模型创建时间更长。
YOLO
我们使用TinyYOLO(带有Darknet网络的YOLOv2)重新实现了YOLO模型
- Source Link: https://github.com/pjreddie/darknet
- Project Page: https://pjreddie.com/darknet/yolo/
Citation: “YOLO9000: Better, Faster, Stronger” by Joseph Redmon, Ali Farhadi (CVPR 2017)
License: Multiple (see https://github.com/pjreddie/darknet)