共计 766 个字符,预计需要花费 2 分钟才能阅读完成。
算法思维
间接对 bounding box 的地位和置信度进行回归。
算法流程
- 将图片划分成
S*S
的格子,如果 box 核心落到某个格子内,则该格子负责预测这个 box; - 每个格子负责预测 b 个 bounding box(预测绝对于以后格子的坐标以及绝对于全图的长宽),最初选定置信度最大的格子输入;
- 计算回归损失。
推理流程
- 图片通过网络前向计算失去
S*S*(5*b+num_classes)
个输入,在 pascal VOC 数据集中,YOLOv1 采纳 S =7, b=2, 一共 20 类,所以 num_classes=20, 最初的输入为7*7*30
,即每个格子预测两个 bounding box; - 筛选出 bounding box 置信度 (confidence) 大于阈值的框(此时在 YOLOv1 中曾经过滤掉大部分);
- 对筛选出的 bounding box 进行 nms(非极大克制)。依据业务不同要求,nms 的模式也可能不同,YOLOv1 中间接对所有 bbox 的 score 进行排序,在所有 bbox 中做 nms;而在要求召回较高的场景须要对每一类别离做 nms。
优缺点
长处
- 速度很快,pipline 简略
- YOLO 会基于整张图片信息进行预测,而其余滑窗式的检测框架,只能基于部分图片信息进行推理。
- YOLO 学到的图片特色更为通用
- 背景误检率低
毛病
- 因为输入层为全连贯层,因而在检测时,YOLO 训练模型只反对与训练图像雷同的输出分辨率;
- 每个格子只能预测一个 bbox。当一个格子蕴含多个物体时,只能检出一个;
- 地位检测不精确。YOLO loss 函数中,大物体 IOU 误差和小物体 IOU 误差对网络训练中 loss 奉献值靠近(尽管采纳求平方根形式,但没有基本解决问题)。因而,对于小物体,小的 IOU 误差也会对网络优化过程造成很大的影响,从而升高了物体检测的定位准确性。
代码
https://github.com/Howe-Young…
正文完