YOLO 物体检测 ( learns general representations of objects )
是 RCNN 路线之外的另一种方向。速度更快但准确性略低。
功能 :直接从image pixels 到 边界框坐标 和 类概率 。you only look once (YOLO) at an image 预测 目标有什么、在哪儿。
思想:把目标检测当作 一个空间分隔的边界框 和 相关类概率 的回归问题
性能:YOLO会产生更多的定位错误,但不太可能预测背景中的 false positives
过程:
优点:运行快(可处理视频流,实时处理);预测时 reasons globally about the image;学习对象的一般化表示;
模型:
网络设计:24 conv + 2 fc
在 1 x 1(跨通道信息整合) 之后使用 3 x 3 (受googlenet inception 启发)
训练:预训练 前20层 conv + 平均池化 + 全连接
将预训练的模型应用到检测上时,有前人声明:同时 添加 conv 和 fc 到 预训练网络中 可以提高性能
----> add 4 conv + 2 fc (随机初始化权重) ----> 24 conv + 2 fc
检测要求详细的视觉信息 --> 增加网络的输入分辨率 (224x224 to 448x448)
最后一层 预测 class probabilities + bounding box coordinates
损失函数:预测数据与真实数据之间的 坐标误差、IOU误差和分类误差
需要注意的是,YOLO 每个网格预测两个 bbox,最终只有 1 个 bbox 来负责代表相应的目标的 bbox 位置,它们通过 Confidence 比较,也就是 IOU 比较,胜出的是分数更高的那个,进行 loss 计算时,也是这个 bbox 才能参与。
YOLO 把输入图片分割成 SxS 个网格,
如果一个目标的中心点落在某个网格当中,那么对应的那个网格就负责预测这个目标的大小和类别。
相乘的结果是针对每一个 bbox 而言的目标类别概率分布的置信值,这个置信值同时表达了 2 样东西,一个是目标是某个类别的概率,一个是预测的 bbox 离真实的 bbox 有多远
补充:
系统将空间限制放在网格单元建议上,有助于减轻对同一对象的多次探测。
YOLO的背景错误要比Fast R-CNN少得多。
YOLO对相互靠的很近的物体,还有很小的群体 检测效果不好
虽然每个格子可以预测B个bounding box,但是最终只选择IOU最高的bounding box作为物体检测输出,即每个格子最多只预测出一个物体。当物体占画面比例较小,如图像中包含畜群或鸟群时,每个格子包含多个物体,但却只能检测出其中一个。这是YOLO方法的一个缺陷
对测试图像中,同一类物体出现的新的不常见的长宽比和其他情况是。泛化能力偏弱。
由于损失函数的问题,定位误差是影响检测效果的主要原因。尤其是大小物体的处理上,还有待加强。