美文网首页
深度学习之对象检测2

深度学习之对象检测2

作者: 你要好好学习呀 | 来源:发表于2019-04-02 18:19 被阅读0次

承接前文:深度学习之对象检测1

 交并比(IOU)

计算两个边框交集和并集之比,IOU是用来衡量两个边框的重叠的大小。

两个边框指的是:自己得到的、实际需要实现的。

交集/并集=

一般认为IOU>=α(阀值,一般人为约定为0.5)是可接受的,由不同场景可自己设置。

非最大值抑制

YOLO算法在运行中存在一个问题,理论上图片上每一个对象只存在一个中心点,实践中可能会有几个网格都会认为对象的中心在自己网格中。

于是就会生成多个边框

非最大抑制的作用就是,对于每个对象只保留其Pc预测最大的值

非最大抑制用法

    a.去掉IOU没到达到阀值的边框

    while(存在剩下的边框):

      b.选择概率Pc最大的边框,输出为预测结果

      c.剩下边框中所有和输出边框有很大的交并的,则它们的输出被抑制。

非最大值抑制可以确保对每个对象只检测一次。

非最大值抑制会逐一审视剩下的边框,所有和这个最大概率的边界框有很高的交并比,高度重叠的其他边框就会被抑制。

*如果存在多种类型的对象(即是c1,c2,c3),每种类型的对象要单独运行最大抑制(不同类型对象的交并值会对结果产生影响)。

 Anchor Box

使用Anchor Box可以让一个格子检测出多个对象(不同类别的)。

 Anchor Box思路:

    a.预先定义多个个不同形状的的Anchor Box,Anchor Box的形状是与预测结果关联起来的。

    b.现在每个对象都和以前一样分配到同一个格子里面,但是现在还要分配到一个Anchor Box,分配的原则是比较并选择该格子内对象与定义的Anchor Box不同形状之间的IOU交并比最高的那个。

于是标签y(对于视频中的例子)就变成下图这样了,每一个Pc对应这一个Anchor Box形状。

使用Anchor Box的好处:

    a.处理两个不同类型的对象出现在同一格子里面,实际情况中如果格子够细致的话,一般不会出现两个格子在一个对象里面的。

    b.能够让算法更有针对行(监督学习),如果你的数据给出的对象的形状大概相似。

如何选择Anchor Box:

1.一般手动根据对象制定Anchor Box形状,可以选择5个到10个形状,可以涵盖你想要检测对象的各种对象。

2.使用k-平均算法,自动选择Anchor Box的形状。

YOLO算法例子

上面讲的都是构建YOLO算法中所需要知道的一些知识,下面就通过一个例子把所有的知识点穿插起来。

使用的例子还是在图片中检测pedestrian(行人)、car(车)和motorcycle(摩托车)

输出数据形状是3x3x16:

    a.3x3是分的格子形状

b.16(=2x8)其中2是使用的Anchor Box的个数,8就是输出的参数个数(Pc,bw,bx,bh,bw,c1,c2,c3)

输出标签y:

Anchor Box选择:

使用Anchor Box 1表示pedestrian(行人),Anchor Box 2表示car(车)和motorcycle(摩托车),这里是不知道为什么摩托车没Anchor形状,所以我认为可能摩托车形状与Anchor Box 2差不多。

使用卷积神经网络训练:

最后是使用非最大抑制:

没有使用非最大抑制时,由于使用了两个Another Box,每个格子都会有两个检测边界框,只是Pc概率不同而以。

你需要做的是:

    a.抛弃概率比较低的预测边框

    b.如果存在三个对象检测的类别(行人,车和摩托车),对每一类单独运行非最大抑制。这里的意思对于行人Anchor Box 1的形状的概率明显高于Anchor Box 2的概率。所以去掉Anchor Box 2形状的边框。

相关文章

  • 深度学习之对象检测2

    承接前文:深度学习之对象检测1 交并比(IOU) 计算两个边框交集和并集之比,IOU是用来衡量两个边框的重叠的大小...

  • 深度学习之对象检测1

    目标定位 使用算法判断图片中是不是目标物体,如果是还要再图片中标出其位置并使用边框标记出来 图片分类的思想可以帮助...

  • 深度学习之目标检测-RCNN系列

    参考文章 #Deep Learning回顾#之基于深度学习的目标检测 基于深度学习的目标检测技术演进:R-CNN、...

  • 行人檢測

    [Detection] 深度学习之 "物体检测" 方法梳理 行人检测的发展历史) 行人再识别(行人重识别) 知乎 ...

  • 使用Tensorflow实现目标检测(一、基础术语篇)

    1、机器学习与深度学习的区别2、深度学习算法是什么,怎么使用深度学习算法3、数据模型是什么4、什么叫目标检测5、t...

  • 重复问题检测

    1.基于序列到序列模型的句子级复述生成 2.深度学习之《社交网络问答系统-问题重复检测任务》实现

  • 深度学习——目标检测(2)

    前言:RCNN虽然能进行目标检测,但检测的精确度,尤其是速度方面太慢了,没秒才0.03帧。在RCNN基础上做了改进...

  • [Detection] CNN 之 "物体检测&quo

    详见个人博客:[Detection] 深度学习之 "物体检测" 方法梳理 Index RCNN Fast RCNN...

  • 课堂中的“深度学习”

    “深度思维”是“深度学习”之魂! “深度思维”是“深度学习”之根! “深度思维”是“深度学习”之本! ...

  • opencv for java之——深度学习目标检测Mobile

    前言 当前,在目标检测领域,基于深度学习的目标检测方法在准确度上碾压传统的方法。基于深度学习的目标检测先后出现了R...

网友评论

      本文标题:深度学习之对象检测2

      本文链接:https://www.haomeiwen.com/subject/cbqnbqtx.html