加入收藏 | 设为首页 | 会员中心 | 我要投稿 南通站长网 (https://www.0513zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 传媒 > 正文

谈谈基于深度学习的目标检测网络为什么会误检

发布时间:2021-04-18 14:22:52 所属栏目:传媒 来源:互联网
导读:人脸检测为代表的目标检测深度学习网络来说,误检是一件非常恼人的事情。把狗检测为猫尚可接受,毕竟有些狗的确长得像猫,但是把墙壁、灯泡、拳头、衣服检测成人脸就不能忍了,明明一点都不像。稍稍思考下,我感觉应该能够从两个方面解释下误检问题。 图像内

人脸检测为代表的目标检测深度学习网络来说,误检是一件非常恼人的事情。把狗检测为猫尚可接受,毕竟有些狗的确长得像猫,但是把墙壁、灯泡、拳头、衣服检测成人脸就不能忍了,明明一点都不像。稍稍思考下,我感觉应该能够从两个方面解释下误检问题。

图像内容问题

在训练人脸检测网络时,一般都会做数据增强,为图像模拟不同姿态、不同光照等复杂情况,这就有可能产生过亮的人脸图像,“过亮”的人脸看起来就像发光的灯泡一样。。。如果 发光灯泡 经过网络提取得到的特征,和 过亮人脸 经过网络提取得到的特征相似度达到临界值,那么网络把发光灯泡检测为人脸就不足为奇了。

同样的道理,用于训练网络的人脸数据集中,若是存在一些带口罩,带围巾的人脸图像,那么网络就极有可能“记住”口罩、围巾的特征,在预测阶段,要是有物体(比如衣服)表现得像口罩、围巾,那么网络就有可能把该物体检测成人脸。

当然,以上讨论都是启发性的,本文暂时不把它当做讨论重点。

目标 bbox 的范围问题

目前非常流行的深度学习目标检测网络(SSD、YOLO、RetinaFace 等)在训练阶段,我们需要提供目标在图像中的 bbox,所谓 bbox,其实主要就是指目标的外接矩形。这样训练而来的网络在预测阶段,一般给出的也是目标的外接矩形。

问题就出在 bbox 上,接下来的讨论还是以人脸检测为例,请看下个典型的目标 bbox。bbox 本质上是矩形,但通常目标(人脸)不是矩形,bbox 内部包含一些非人脸内容, 我认为这些非人脸内容要对误检负一部分责任 。

常用的人脸检测网络一般使用大量的卷积层提取图像特征,得到的特征图尺寸通常小于原始输入图像数倍(取决于卷积的 stride、padding 等参数),网络对特征图的每一个“像素点”做二分类(人脸类、背景类),“误检”就是在这个二分类过程中产生的。

数倍小的特征图的一个“像素点”都对应着原图的一小块矩形区域内的像素,这么看来,特征图的每一个“像素点”都可视为一个 bbox,只不过这些 bbox 有的属于背景类,有的属于人脸类。

为了简单,将人脸检测网络的二分类分支抽离出来,设为 p_{theta } ,再令 x 表示特征图中的“像素点”, q 表示该像素点的标签,则训练 p_{theta } 的一个常用方法就是优化下述目标:到的是 p_{theta}(y|x) ,实际得到的却是 p_{theta}(y|x+Delta x) ,可以认为 Delta x 的存在是引起误检的主要原因之一。

优化误检问题

既然 Delta x 的存在会引起误检,那么优化该问题直观上有以下方法:

  • 令 Delta x rightarrow 0
  • 令 p_{theta}(y|x+Delta x) rightarrow p_{theta}(y|x)

遗憾的是,这两个方法在实践中都很难 直接 实现。虽然我们可以不考虑人工成本,将粗糙的人脸 bbox 用更加精细的多边形代替,但是缩放数倍的卷积特征图本身也隐含着“矩形框”,另外, 人眼认为的“人脸”未必是网络认为的“人脸” 。

本文不考虑像素级别的语义分割任务。

稍稍再想一想,不难发现,虽然上述理论是将 x 和 Delta x 作为彼此独立的像素集合处理得到的,但是我们可以对该理论做稍许推广,也即:将 x 视为 bbox 内的所有像素, Delta x 视为 bbox 内所有干扰人脸误检的像素差值,那么该理论就更加有用了。

我们完成了优化人脸检测网络误检问题的理论构建,该理论将指导接下来的网络,以及对应的损失函数设计。

构建深度学习网络


(编辑:南通站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读