关于图像识别:YOLOv1学习笔记

44次阅读

共计 766 个字符,预计需要花费 2 分钟才能阅读完成。

算法思维

间接对 bounding box 的地位和置信度进行回归。

算法流程

  1. 将图片划分成 S*S 的格子,如果 box 核心落到某个格子内,则该格子负责预测这个 box;
  2. 每个格子负责预测 b 个 bounding box(预测绝对于以后格子的坐标以及绝对于全图的长宽),最初选定置信度最大的格子输入;
  3. 计算回归损失。

推理流程

  1. 图片通过网络前向计算失去 S*S*(5*b+num_classes) 个输入,在 pascal VOC 数据集中,YOLOv1 采纳 S =7, b=2, 一共 20 类,所以 num_classes=20, 最初的输入为7*7*30,即每个格子预测两个 bounding box;
  2. 筛选出 bounding box 置信度 (confidence) 大于阈值的框(此时在 YOLOv1 中曾经过滤掉大部分);
  3. 对筛选出的 bounding box 进行 nms(非极大克制)。依据业务不同要求,nms 的模式也可能不同,YOLOv1 中间接对所有 bbox 的 score 进行排序,在所有 bbox 中做 nms;而在要求召回较高的场景须要对每一类别离做 nms。

优缺点

长处

  1. 速度很快,pipline 简略
  2. YOLO 会基于整张图片信息进行预测,而其余滑窗式的检测框架,只能基于部分图片信息进行推理。
  3. YOLO 学到的图片特色更为通用
  4. 背景误检率低

毛病

  1. 因为输入层为全连贯层,因而在检测时,YOLO 训练模型只反对与训练图像雷同的输出分辨率;
  2. 每个格子只能预测一个 bbox。当一个格子蕴含多个物体时,只能检出一个;
  3. 地位检测不精确。YOLO loss 函数中,大物体 IOU 误差和小物体 IOU 误差对网络训练中 loss 奉献值靠近(尽管采纳求平方根形式,但没有基本解决问题)。因而,对于小物体,小的 IOU 误差也会对网络优化过程造成很大的影响,从而升高了物体检测的定位准确性。

代码

https://github.com/Howe-Young…

正文完
 0