4.3目标检测

觉得有用的话,欢迎一起讨论相互学习~Follow Me

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}\)
  2. 去掉所有\(p_{c}\le0.6\)的边框,抛弃所有概率比较低的输出边界框。
    while 还有边界框剩下:
  3. 在剩下的没有被抛弃的边界框中一直挑选\(p_{c}\)最高的边界框
  4. 在剩下的边界框中将与最高\(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 关联起来。以处理两个识别对象的中心点落入同一个网格中的情况。
    • 则此时边界框的目标标签可以被编码为:

    \[\begin{equation}
    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}\]


  • 单目标图像检测算法--对于训练集图像中的每个对象,都根据对象的中点的位置,分配到对应的格子中。所以输出y是\(3*3*8\), 使用anchor boxes 策略,每个对象不仅和之前一样被分配到同一个格子中,还被分配到对象形状交并比最高的anchor boxes中,假设只检测图片中的两个对象则输出y为\(3*3*16\)

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个格子中的任何一个都会有两个预测的边界框。
    • 抛弃概率低的预测,即模型认为这个网格中什么都没有的边界框。
    • 对于三种检测目标--行人,机动车,摩托车,对于每个类别单独运行非最大值抑制。

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

  1. [DeeplearningAI笔记]卷积神经网络4.6-4.10神经网络风格迁移

    4.4特殊应用:人脸识别和神经网络风格转换 觉得有用的话,欢迎一起讨论相互学习~Follow Me 4.6什么是神经网络风格转换neural style transfer 将原图片作为内容图片Cont ...

  2. [DeeplearningAI笔记]卷积神经网络4.1-4.5 人脸识别/one-shot learning/Siamase网络/Triplet损失/将面部识别转化为二分类问题

    4.4特殊应用:人脸识别和神经网络风格转换 觉得有用的话,欢迎一起讨论相互学习~Follow Me 4.1什么是人脸识别 Face verification人脸验证 VS face recogniti ...

  3. [DeeplearningAI笔记]卷积神经网络3.10候选区域region proposals与R-CNN

    4.3目标检测 觉得有用的话,欢迎一起讨论相互学习~Follow Me 3.10 region proposals候选区域与R-CNN 基于滑动窗口的目标检测算法将原始图片分割成小的样本图片,并传入分 ...

  4. [DeeplearningAI笔记]卷积神经网络3.1-3.5目标定位/特征点检测/目标检测/滑动窗口的卷积神经网络实现/YOLO算法

    4.3目标检测 觉得有用的话,欢迎一起讨论相互学习~Follow Me 3.1目标定位 对象定位localization和目标检测detection 判断图像中的对象是不是汽车--Image clas ...

  5. [DeeplearningAI笔记]卷积神经网络1.9-1.11池化层/卷积神经网络示例/优点

    4.1卷积神经网络 觉得有用的话,欢迎一起讨论相互学习~Follow Me 1.9池化层 优点 池化层可以缩减模型的大小,提高计算速度,同时提高所提取特征的鲁棒性. 池化层操作 池化操作与卷积操作类似 ...

  6. [DeeplearningAI笔记]卷积神经网络1.6-1.7构造多通道卷积神经网络

    4.1卷积神经网络 觉得有用的话,欢迎一起讨论相互学习~Follow Me 1.6多通道卷积 原理 对于一个多通道的卷积操作,可以将卷积核设置为一个立方体,则其从左上角开始向右移动然后向下移动,这里设 ...

  7. [DeeplearningAI笔记]卷积神经网络1.4-1.5Padding与卷积步长

    4.1卷积神经网络 觉得有用的话,欢迎一起讨论相互学习~Follow Me 1.4Padding 一张\(6*6\)大小的图片,使用\(3*3\)的卷积核设定步长为1,经过卷积操作后得到一个\(4*4 ...

  8. [DeeplearningAI笔记]卷积神经网络1.2-1.3边缘检测

    4.1卷积神经网络 觉得有用的话,欢迎一起讨论相互学习~Follow Me 1.2边缘检测示例 边缘检测可以视为横向边缘检测和纵向边缘检测如下图所示: 边缘检测的原理是通过一个特定构造的卷积核对原始图 ...

  9. [DeeplearningAI笔记]卷积神经网络4.11一维和三维卷积

    4.4特殊应用:人脸识别和神经网络风格转换 觉得有用的话,欢迎一起讨论相互学习~Follow Me 4.11一维和三维卷积 二维和一维卷积 对于2D卷积来说,假设原始图像为\(14*14*3\)的三通 ...

随机推荐

  1. python基础知识-04-字符串列表元组

    python其他知识目录 内存,cpu,硬盘,解释器 实时翻译 编译器 :一次性翻译python2,3 除法,2不能得小数,3能得小数 1.字符串操作 1.1字符串操作startswith start ...

  2. windows环境下nginx服务器的安装与配置

    转载至:http://www.cnblogs.com/hxxy2003/archive/2012/09/20/2695254.html nginx服务器是一个高性能的HTTP和反向代理服务器,它以稳定 ...

  3. HDU 5154 Harry and Magical Computer 有向图判环

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5154 题解: 有向图判环. 1.用dfs,正在访问的节点标记为-1,已经访问过的节点标记为1,没有访 ...

  4. lintcode-445-余弦相似度

    445-余弦相似度 Cosine similarity is a measure of similarity between two vectors of an inner product space ...

  5. 第207天:HTTP协议头字段详解大全

    本篇重点介绍一下HTTP常用的Header HTTP Header非常之多,很少有人能完全分清这些Header到底是干什么的.鉴于RFC文件规范艰深晦涩难懂,本文对协议规范中列出的HTTP Heade ...

  6. 【poj2409】Let it Bead Polya定理

    题目描述 用 $c$ 种颜色去染 $r$ 个点的环,如果两个环在旋转或翻转后是相同的,则称这两个环是同构的.求不同构的环的个数. $r·c\le 32$ . 题解 Polya定理 Burnside引理 ...

  7. 运维朋友们,别再问需不需要学 Python 了!

    运维人员需不需要学开发?需不需要学 Python?PythonN 和 Shell 有什么区别?天天问这种好水的问题,我实在受不了,决定帮大家扫扫盲. 现阶段,掌握一门开发语言已经成为高级运维工程师的必 ...

  8. Qt——数据的隐式共享

    一.隐式共享类 在Qt中有很多隐式共享类( Implicitly Shared Classes ),什么是隐式共享呢,请参考官方文档的说明. 好吧,翻译一下—— 许多C++类隐式地共享数据,使得资源使 ...

  9. [Violet]蒲公英 分块

    发现写算法专题老是写不动,,,, 所以就先把我在luogu上的题解搬过来吧! 题目大意:查询区间众数,无修改,强制在线 乍一看是一道恐怖的题,仔细一看发现并没有那么难: 大致思路是这样的,首先我们要充 ...

  10. Unity3D for VR 学习(4): 自绘摄像机的视口区域锥体

    在Unity Editor下,当选择Camera组件后,可呈现出Camera视口区域锥体,非常方便.但是当选择其他物体,如Cube后,就无法得知是否在Camera市口区内了,这里我找到了雨松MOMO的 ...