前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[DeeplearningAI笔记]卷积神经网络3.6-3.9交并比/非极大值抑制/Anchor boxes/YOLO算法

[DeeplearningAI笔记]卷积神经网络3.6-3.9交并比/非极大值抑制/Anchor boxes/YOLO算法

作者头像
演化计算与人工智能
发布2020-08-14 14:37:12
8790
发布2020-08-14 14:37:12
举报

4.3 目标检测

吴恩达老师课程原地址[1]

3.6 交并比 intersection over union

  • 交并比函数(loU)可以用来评价对象检测算法,可以被用来进一步改善对象检测算法的性能。
  • 如何评价一个算法的好坏,即如图中假设红色框线表示 真实的对象所在边界框,紫色框线表示 模型预测的对象所在边界框.通过计算两个边界框交集和并集的比用于评价对象检测算法的好坏。
  • 在对象检测的算法中,如果 IoU>0.5 则认为检测正确。0.5 是人为定义的阈值,也可以定义为 0.5 及以上的值

3.7 非极大值抑制 Non-max suppression

  • 在以上介绍的对象检测的算法中,存在模型可能对同一个对象做出多次检测的状况。非极大值抑制(non-max suppression)可以确保算法对每个对象仅检测一次。
非极大值抑制算法 Non-max suppression
  • 对于如图的对象检测,使用
19*19

的网格,在进行预测的同时,两辆车中心旁的其他网格也会认为目标对象的中心点在其中。如图绿色和黄色方框中显示。

  • 为了清理多余或错误的检测结果,使用非极大值抑制算法 Non-max suppression
    • 只输出概率最大的分类结果--即挑选出检测
    p_c

    最大的边框,而其余和该边框 IoU(交并比)很高的其他边框则会认为是在检测同一对象,则另外的和最大

    P_c

    边框 IoU 很大的边框都会变暗。

非极大值抑制算法 Non-max suppression 实现细节
  1. 假设只检测汽车这一个对象,所以去掉目标标签向量中的
c_{1},c_{2},c_{3}
  1. 去掉所有
p_{c}\le0.6

的边框,抛弃所有概率比较低的输出边界框。while 还有边界框剩下:

  1. 在剩下的没有被抛弃的边界框中一直挑选
p_{c}

最高的边界框

  1. 在剩下的边界框中将与最高
p_{c}

有较大 IoU(

IoU\ge0.5

)的边界框全部抛弃

  • 如果要检测的对象不止汽车一个,还有行人和自行车的对象,正确的做法是:独立进行三次非最大值抑制,对每个输出类别都进行一次

3.8Anchor Boxes

  • 先前介绍的方法只能使格子检测出一个对象,如果想要一个格子检测出多个对象-- anchor box “参考文献 Redmon J, Divvala S, Girshick R, et al. You Only Look Once: Unified, Real-Time Object Detection[C]// IEEE Conference on Computer Vision and Pattern Recognition. IEEE Computer Society, 2016:779-788.
  • 使用
3*3

的网格检测图中的对象,注意行人的中点和汽车的中点几乎都在同一个地方,两者都落入同一个格子中。使用原先的目标标签,只能选择两个类别中的一个进行识别。

  • 此时可以使用 Anchor 策略--即使用特定形状的 Anchor box 作为边界框,则策略需要把预测结果与 anchor boxes 关联起来。以处理两个识别对象的中心点落入同一个网格中的情况。
A=\left[ \begin{matrix} p_{c}\\ b_{x}\\ b_{y}\\ b_{h}\\ b_{w}\\ c_{1}\\ c_{2}\\ c_{3}\\ p_{c}\\ b_{x}\\ b_{y}\\ b_{h}\\ b_{w}\\ c_{1}\\ c_{2}\\ c_{3}\\ \end{matrix} \right] \left[ \begin{matrix} anchor box1\\ 使用0和1表示网格中是否有目标物体\\ 边框中心点横坐标值的范围在(0,1)之间\\ 边框中心点纵坐标的范围在(0,1)之间\\ 边框高可以大于1,因为有时候边框会跨越到另一个方格中\\ 边框宽可以大于1,因为有时候边框会跨越到另一个方格中\\ 行人\\ 汽车\\ 摩托车\\ anchor box2\\ 使用0和1表示网格中是否有目标物体\\ 边框中心点横坐标值的范围在(0,1)之间\\ 边框中心点纵坐标的范围在(0,1)之间\\ 边框高可以大于1,因为有时候边框会跨越到另一个方格中\\ 边框宽可以大于1,因为有时候边框会跨越到另一个方格中\\ 行人\\ 汽车\\ 摩托车\\ \end{matrix} \right] \end{equation}
Note:Anchor boxes 算法处理不好的情况
  • 两个对象的中点在同一个网格中,并且使用 同一种形状 的 Anchor Boxes 检测
  • 有超过两个的对象的中点在同一个网格中。

3.9YOLO 算法

  • 参数设置:
  • 3 种识别类别:1.pedestrianx 行人 2.car 车 3.motorcycle 摩托车-->
c_{1},c_{2},c_{3}
3*3

识别网格

  • 两种识别 anchor boxes-->
b_{x},b_{y},b_{h},b_{w}
  • 运行非极大值抑制:
    • 使用两个 anchor boxes,那么对于 9 个格子中的任何一个都会有两个预测的边界框。
    • 抛弃概率低的预测,即模型认为这个网格中什么都没有的边界框。
    • 对于三种检测目标--行人,机动车,摩托车,对于每个类别单独运行非最大值抑制。

参考资料

[1]

吴恩达老师课程原地址: https://mooc.study.163.com/smartSpec/detail/1001319001.htm

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-05-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DrawSky 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 4.3 目标检测
    • 3.6 交并比 intersection over union
      • 3.7 非极大值抑制 Non-max suppression
        • 3.8Anchor Boxes
          • 3.9YOLO 算法
            • 参考资料
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档