目标检测

目标定位

目标检测是计算机视觉中一个热门的应用领域,实现目标检测首先需要实现目标的定位问题。通常一张图片有多个目标,实现目标定位,有助于目标检测,如下例子所示:

对于目标定位问题,首先约定一组符号:
(0,0)表示的是选中方框左上角的坐标,(1,1)表示的右下角坐标。
(b_x,b_y)表示的是红框的中心位置。
(b_h,b_w)分别表示的是边界框的高度和宽度所占的格子的比例。

因此,有监督学习的神经网络不仅包含了神经万络过要预测的对象分类标签,而且还包含了边界框的信息。对应的输出标签则如下所示:

输出标签中的p_c表示的是图片中有车,对于多目标(假设为3)的定位问题,可以用c_1,c_2,c_3表示,若c_2为1则表示检测到是的是第二个目标。

对于以上示例,如果采用的是平方误差,则损失函数如下所示:
L(\hat{y},y) = (\hat{y_1}-y_1)^2+(\hat{y_2}-y_2)^2+…+(\hat{y_8}-y_8)^2

特征点检测

神经网络可以通过对输出图片上的特征点的(x,y)坐标定位来实现对目标特征的识别,在此情况下,特征点的个数会更多,可以根据自己的需要设定特征点的个数,以人脸检测为例,利用神经网络实现特征点检测的方法如下所示:

  • 利用神经网络和一些特征集,将人脸图片输入到卷积网络,输出为0表示没有人脸,否则表示有人脸。
  • 假定选定了64个特征点,则通过神经网络输出特征点(l_{1x},l_{1y})……(l_{64x},l_{64y}),用l表示一个特征,包含表示是否有人脸的特征,则一共有129个输出单元。

目标检测

目标检测算法中,一种常用的算法是基于滑动窗口的目标检测算法,以一个汽车检测的应用为例,算法是实现步骤如下所示:

  • 选定一个特定大小的窗口,将红色小方块选定的数据输入整个卷积神经网络。
  • 红色方块按照行列的方式遍历整个图像,将选定的数据依次送入卷积神经网路。
    总结以上步骤,即也就是以固定的步幅移动窗口,遍历图像的每个区域,将这些剪切后的图像输入卷积神经网络,并对每个位置进行0,1分类,判断图片中是否出现汽车,如下图所示:


滑动窗口的卷积实现

为了构建滑动窗口的卷积应用,首先需要将神经网络的全连接层转换为卷积层,具体实现如下所示:

以14×14×3的图像为例,通过卷积和池化操作后得到了一个5×5×16的数据,图像分类的操作是接着添加一个连接2个400个单元的全连接层,最后通过softmax函数输出每个类别输出的概率。

将全连接层转换为卷积层时,经过卷积和池化操作后,输入图像的大小是5×5×16,继续用400个5×5的卷积进行卷积操作,输出结果为1×1×400,继续添加一个1×1×1400的卷积层,最后经由1×1的过滤器处理,得到一个softmax激活值。通过卷积网络得到一个1×1×4的输出层。

对输入图片进行滑动卷积操作时,如果每次选定一块输入图像送入卷积神经网络中时,卷积操作中的很多计算是重复的,如下图所示,以步幅为2,对16×16×3的图像,执行卷积操作,每次选定的区域大小是14×14×3,经过卷积和池化操作后,会得到一个2×2×4的输出层,而不是1×1×4,最终,这个2×2×4的输出层中,每个1×1×4的输出代表所选定区域的输出。

在实际运算中,不需要将整个图像分割为四个子集,分别执行前向传播,而是将整个图像输入卷积网络进行计算,公共区域可以共享很多计算。如下所示,对28×28×3的图片应用滑动窗口卷积,以14×14区域滑动窗口,接着以大小为2的步幅不断移动窗口,最终得到一个8×8×4的输出。对大小为28×28×3的图像应用卷积操作,一次得到所有预测值,如果足够幸运,神经网络就可以识别出汽车的位置。

Bounding Box预测

滑动卷积窗口的实现效率很高,但是不能输出最精准的边界框,对于边界框的预测,常用的方法是YOLO算法,即YOU ONLY LOOK ONCE算法,为了方便起见,将一副图像分割为3×3的网格形式,如下图所示:


使用图像分类和定位算法,将这个算法应用到9个网格中,每个格子指定一个标签y,这个标签y是8维的,其说粗话如下所示:

对于3×3的网格,最后输出的是3×3×8,实现边界预测时,需要做的就是输入图像作为x,经过卷积神经网络的卷积层,池化层,映射得到一个3×3×8的输出尺寸。即也就是,有一个输入图像x,得到3×3×8的目标标签y.

即使检测目标覆盖多个格子的区域,在训练中,也只会分配到9个格子中的一个。在算法的实际实现中,输入图像的划分更为精细,如19×19形式的划分,更为精细的划分保证了多个检测目标处于同一个格子的概率会更低。

交并比

交并比函数是计算两个边界框的交集和并集之比,用来评估目标检测任务,对于如下图像,交并比函数的计算可以用如下公式表示,

一般约定,在计算机检测任务中,如果IoU \ge 0.5,说明哦检测正确,如果预测器和实际边界完美重叠,则IoU=1,即也就是交并比越高,边界框越精确。

非极大值抑制

目标检测算法的运行过程可能会对同一目标做出多次检测,而非极大值抑制可以确保算法对每个目标值检测一次。


当运行目标分类和检测算法时,对每个格子都运行一次,目标所覆盖的区域的格子都能检测到目标,每次的检测结果都能出现一个与结果相关的概率p_c,非极大值抑制算法会依次比较剩下的矩形,所有和这个最大概率的边框有很高的交并比边框的输出会被抑制。算法的实现细节如下所示:

如上图所述,就是实现非极大值抑制算法的基本流程图,如果有多个目标需要检测或者定位,需要独立进行多次非极大值抑制算法,也就是对每个输出类别都做一次该算法。

Anchor boxes

如果希望通过一个格子检测出多个目标,需要用到anchor boexes的概念。如下图所示,如果一个3×3的图像,行人和车的中点几乎在同一个位置,可能会无法利用向量y输出检测结果。

而利用anchor boxes的算法可以解决上述问题,算法的基本思路如下所述:


预先定义两个不同形状的anchor box,定义的输出标签不再是


而是两个anchor box的输出拼接到一起的矩阵,如下所示:


其中,该向量的前8个元素代表第一个anchor box的输出标签,后8个元素代表第二个anchor box输出的标签。整个算法的实现思路就是训练图像的每个目标被分配到目标中点所在的格子中,并分配到和目标形状交并比最高的anchor box中。具体而言就是,在这种情况下,目标不是被分配到了一个格子中,而是一对格子中,此时输出y的标签是3×3×16(或者是3×3×3×2),包含了两个目标的信息。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342

推荐阅读更多精彩内容