天天看点

第四门课:卷积神经网络(第三周)——目标检测1. 目标定位2. 特征点检测3. 目标检测4. 滑动窗口的卷积实现5. Bounding Box预测(YOLO)6. 交并比(loU)7. 非极大值抑制(Non-max suppression)8. Anchor Boxes9. YOLO 算法10. 候选区域

目标检测

  • 1. 目标定位
  • 2. 特征点检测
  • 3. 目标检测
  • 4. 滑动窗口的卷积实现
  • 5. Bounding Box预测(YOLO)
  • 6. 交并比(loU)
  • 7. 非极大值抑制(Non-max suppression)
  • 8. Anchor Boxes
  • 9. YOLO 算法
  • 10. 候选区域

1. 目标定位

定位分类问题:

第四门课:卷积神经网络(第三周)——目标检测1. 目标定位2. 特征点检测3. 目标检测4. 滑动窗口的卷积实现5. Bounding Box预测(YOLO)6. 交并比(loU)7. 非极大值抑制(Non-max suppression)8. Anchor Boxes9. YOLO 算法10. 候选区域

不仅要判断图片中是不是一辆汽车,还要标记出它的位置,用框圈起来

第四门课:卷积神经网络(第三周)——目标检测1. 目标定位2. 特征点检测3. 目标检测4. 滑动窗口的卷积实现5. Bounding Box预测(YOLO)6. 交并比(loU)7. 非极大值抑制(Non-max suppression)8. Anchor Boxes9. YOLO 算法10. 候选区域

softmax函数进行分类操作,判断图片中是否存在行人、汽车和摩托车或是背景对象。除此之外,我们可以让神经网络多输出几个单元,表示一个边界框,即 b x , b y , b h , b w b_x, b_y, b_h, b_w bx​,by​,bh​,bw​,这四个数字是被检测对象的边界框的参数化表示。

第四门课:卷积神经网络(第三周)——目标检测1. 目标定位2. 特征点检测3. 目标检测4. 滑动窗口的卷积实现5. Bounding Box预测(YOLO)6. 交并比(loU)7. 非极大值抑制(Non-max suppression)8. Anchor Boxes9. YOLO 算法10. 候选区域

2. 特征点检测

Landmark 检测

第四门课:卷积神经网络(第三周)——目标检测1. 目标定位2. 特征点检测3. 目标检测4. 滑动窗口的卷积实现5. Bounding Box预测(YOLO)6. 交并比(loU)7. 非极大值抑制(Non-max suppression)8. Anchor Boxes9. YOLO 算法10. 候选区域

3. 目标检测

基于滑动窗口的目标检测

  • 将目标剪切出来,训练卷积网络
  • 以一定大小的窗口扫描图片,将窗口内的图片输入卷积网络预测
  • 更改窗口大小,重复上面步骤
    第四门课:卷积神经网络(第三周)——目标检测1. 目标定位2. 特征点检测3. 目标检测4. 滑动窗口的卷积实现5. Bounding Box预测(YOLO)6. 交并比(loU)7. 非极大值抑制(Non-max suppression)8. Anchor Boxes9. YOLO 算法10. 候选区域

滑动窗口目标检测算法缺点:

  • 计算成本高,用小粒度或小步幅,窗口会特别多,卷积网络要一个个地处理
  • 用的步幅很大,窗口个数少,可能会影响性能

4. 滑动窗口的卷积实现

第四门课:卷积神经网络(第三周)——目标检测1. 目标定位2. 特征点检测3. 目标检测4. 滑动窗口的卷积实现5. Bounding Box预测(YOLO)6. 交并比(loU)7. 非极大值抑制(Non-max suppression)8. Anchor Boxes9. YOLO 算法10. 候选区域
第四门课:卷积神经网络(第三周)——目标检测1. 目标定位2. 特征点检测3. 目标检测4. 滑动窗口的卷积实现5. Bounding Box预测(YOLO)6. 交并比(loU)7. 非极大值抑制(Non-max suppression)8. Anchor Boxes9. YOLO 算法10. 候选区域

对整张图片进行卷积操作,一次得到所有预测值,如果足够幸运,神经网络便可以识别出目标的位置

第四门课:卷积神经网络(第三周)——目标检测1. 目标定位2. 特征点检测3. 目标检测4. 滑动窗口的卷积实现5. Bounding Box预测(YOLO)6. 交并比(loU)7. 非极大值抑制(Non-max suppression)8. Anchor Boxes9. YOLO 算法10. 候选区域

在卷积层上应用滑动窗口算法,提高了整个算法的效率

不过这种算法仍然存在一个缺点,就是边界框的位置可能不够准确

5. Bounding Box预测(YOLO)

滑动窗口法中,离散的边界框可能没有一个能完美匹配汽车位置

一个能得到更精准边界框的算法是YOLO算法,YOLO(You only look once)意思是你只看一次,这是由Joseph Redmon,Santosh Divvala,Ross Girshick和Ali Farhadi提出的算法

第四门课:卷积神经网络(第三周)——目标检测1. 目标定位2. 特征点检测3. 目标检测4. 滑动窗口的卷积实现5. Bounding Box预测(YOLO)6. 交并比(loU)7. 非极大值抑制(Non-max suppression)8. Anchor Boxes9. YOLO 算法10. 候选区域

YOLO算法有一个好处,它是一个卷积实现,运行速度非常快,可以达到实时识别

第四门课:卷积神经网络(第三周)——目标检测1. 目标定位2. 特征点检测3. 目标检测4. 滑动窗口的卷积实现5. Bounding Box预测(YOLO)6. 交并比(loU)7. 非极大值抑制(Non-max suppression)8. Anchor Boxes9. YOLO 算法10. 候选区域

边界框定义还有其他更有效的方法,可能效果要更好一点

6. 交并比(loU)

交并比(loU)函数做的是计算两个边界框交集和并集之比。

第四门课:卷积神经网络(第三周)——目标检测1. 目标定位2. 特征点检测3. 目标检测4. 滑动窗口的卷积实现5. Bounding Box预测(YOLO)6. 交并比(loU)7. 非极大值抑制(Non-max suppression)8. Anchor Boxes9. YOLO 算法10. 候选区域

7. 非极大值抑制(Non-max suppression)

算法可能对同一个对象做出多次检测。非极大值抑制确保算法对每个对象只检测一次。

非极大值抑制,非最大值意味着你只输出概率最大的分类结果,抑制很接近,但不是最大的其他预测结果

第四门课:卷积神经网络(第三周)——目标检测1. 目标定位2. 特征点检测3. 目标检测4. 滑动窗口的卷积实现5. Bounding Box预测(YOLO)6. 交并比(loU)7. 非极大值抑制(Non-max suppression)8. Anchor Boxes9. YOLO 算法10. 候选区域

如果你尝试同时检测三个对象,比如说行人、汽车、摩托,那么输出向量就会有三个额外的分量。

事实证明,正确的做法是独立进行三次非极大值抑制,对每个输出类别都做一次

8. Anchor Boxes

你想让一个格子检测出多个对象,就是使用 anchor box 这个概念

第四门课:卷积神经网络(第三周)——目标检测1. 目标定位2. 特征点检测3. 目标检测4. 滑动窗口的卷积实现5. Bounding Box预测(YOLO)6. 交并比(loU)7. 非极大值抑制(Non-max suppression)8. Anchor Boxes9. YOLO 算法10. 候选区域

算法处理不好的情况:

  • 如果你有两个anchor box,但同一格子有三个对象
  • 两个对象都分配到一个格子中,且它们的anchor box形状也一样

    出现的概率比较小,对性能的影响应该不会很大

怎么选择 anchor box呢?

  • 一般手工指定anchor box形状,选择5到10个anchor box形状,覆盖多种不同的形状
  • k - 平均算法,可以将两类对象形状聚类,选择最具有代表性的一组 anchor box,这是自动选择anchor box的高级方法

9. YOLO 算法

  • 训练:
    第四门课:卷积神经网络(第三周)——目标检测1. 目标定位2. 特征点检测3. 目标检测4. 滑动窗口的卷积实现5. Bounding Box预测(YOLO)6. 交并比(loU)7. 非极大值抑制(Non-max suppression)8. Anchor Boxes9. YOLO 算法10. 候选区域
  • 预测:
    第四门课:卷积神经网络(第三周)——目标检测1. 目标定位2. 特征点检测3. 目标检测4. 滑动窗口的卷积实现5. Bounding Box预测(YOLO)6. 交并比(loU)7. 非极大值抑制(Non-max suppression)8. Anchor Boxes9. YOLO 算法10. 候选区域
  • 非极大值抑制:

    如果使用两个anchor box,那么9个格子中任何一个都会有两个预测的边界框,其中一个的概率很低。

    接下来你抛弃概率很低的预测。

    第四门课:卷积神经网络(第三周)——目标检测1. 目标定位2. 特征点检测3. 目标检测4. 滑动窗口的卷积实现5. Bounding Box预测(YOLO)6. 交并比(loU)7. 非极大值抑制(Non-max suppression)8. Anchor Boxes9. YOLO 算法10. 候选区域
    如果你希望检测(3种目标)行人,汽车和摩托车,那么你要做的是,对于每个类别单独运行非极大值抑制,运行三次来得到最终的预测结果。

10. 候选区域

第四门课:卷积神经网络(第三周)——目标检测1. 目标定位2. 特征点检测3. 目标检测4. 滑动窗口的卷积实现5. Bounding Box预测(YOLO)6. 交并比(loU)7. 非极大值抑制(Non-max suppression)8. Anchor Boxes9. YOLO 算法10. 候选区域
第四门课:卷积神经网络(第三周)——目标检测1. 目标定位2. 特征点检测3. 目标检测4. 滑动窗口的卷积实现5. Bounding Box预测(YOLO)6. 交并比(loU)7. 非极大值抑制(Non-max suppression)8. Anchor Boxes9. YOLO 算法10. 候选区域

候选区域是一个有趣的想法,但这个方法需要两步:

  • 首先得到候选区域
  • 然后再分类

相比之下,类似于YOLO(You only look once)这个算法,能够一步做完,老师觉得长远而言更有希望

YOLO 网址:https://pjreddie.com/darknet/yolo/

继续阅读