yolo_v1学习笔记

yolo_v1学习笔记

  注:第一次学习目标检测神经网络,目标检测训练数据的标签与分类任务的不同,有框的位置及大小置信度等参数,不只是简单的类别。

核心思想

  • 将物体检测方法看作一个回归问题,来预测空间分离的边界框和相关类别的概率。
  • 将图片隐式(理论处理上)的分为S*S个网格。
  • 物体的中心落在哪个网格内,哪个网格就负责预测这个物体。
  • 每个网格要预测B个框,C个类别。
      这种预测方式导致网格内出现两个物体的中心时,只能预测出其中一个;一个网格内包含很多小物体,如一群鸟时,只能检测出一类或者一个。即对靠的很近的物体和小目标群体检测效果不是很好
  • 每个框包含了位置信息和置信度(x,y,w,h,confidence)
      x,y为中心点坐标,w,h为框的宽度(均经过归一化,值0-1),confidence是置信度,所以一张图预测的信息一共有:SS(B*5+C)。

置信度的计算

   c o n f i d e n c e = P r ( O b j e c t ) ∗ I O U p r e d t r u t h confidence=Pr(Object)*IOU^{truth}_{pred} confidence=Pr(Object)IOUpredtruth
第一项为物体先验概率,如果框内包含物体值为1,否则为0;第二项为预测框与真实框的交并比(0-1),所以Confidence的取值范围为0-1。

优缺点

  • 速度快:将检测作为回归问题处理,流程简单,仅需输入一张图片。
  • 假阳性错误少:对整张图处理,利用全图信息,全局推理。
  • 泛化能力强:yolo可以学习到物体的通用特征,泛化能力更好。(还是因为利用了整张图的信息)
  • 精度与sta比不高,对小物体不友好

网络结构

yolo_v1学习笔记_第1张图片

损失函数

yolo_v1学习笔记_第2张图片

  • 中心点损失
  • 宽高损失
  • 置信度损失
  • 类别损失
      损失函数分析:对于每张图片,大多数格点单元不包含目标,其对应的置信度得分为0。目标存在与不存在框的比例失衡(前景与背景失衡),将会影响最后loss的计算,从而影响包含目标的格点单元的梯度,导致模型不稳定,训练容易过早收敛甚至发散。
      因此,模型中增加bounding box坐标对应的loss,同时对于不包含目标的box,降低其置信度对应的loss。文中用 λ c o o r d \lambda_{coord} λcoord λ n o o b j \lambda_{noobj} λnoobj来实现这一功能。
      对于不同大小的bbox预测中,相比于大bbox预测偏一点,小box预测偏一点更不能忍受。而平方误差损失对同样的偏移loss是一样的。文中将box的width和height取平方根代替原本的height和width。

你可能感兴趣的:(深度学习)