hsc for object detection

HSC


Abstract

目标检测有长足的进步得益于HOG特征的出现。但是我们能做比HOG更好的特征吗?这里我们提出一种方案--基于稀疏表达的HSC(稀疏编码直方图)。我们通过使用K-SVD从数据集中学习稀疏编码字典,并集合每一个像素的稀疏编码来形成直方图。我们有意的保持滑动窗口的框架,只是改变了里面的特征。为了保证训练速度,我们通过从学习的模型中计算SVD来进行降维,并采用给定根滤波器和部件滤波器的隐藏位置的监督训练,就像基于HOG检测器一样。通过学习和使用局部表达,我们证明该方法在PASCAL标准中根滤波器和部件滤波器精度都有较大提升。


1. introduction

目标检测是计算机视觉的基础,是该领域研究的主要焦点。由于HOG的出现,目标检测又有了很大的进步。HOG特征是行人检测、DPM、Exemplar-SVM和其他目标检测器的基础,并且在其他领域如姿态估计、人脸识别和场景分类中都有涉及。

HOG虽然基友精度又有速度,但并不是没有缺点。它是基于梯度的故在直接表征目标模式上有缺乏,有很多设计例如4路正则化和9个方向都是非直观和缺乏吸引力的。更重要的是,这种手工制作的特征很难通用化或扩展到新领域例如深度图片和时域,反而成为摩尔法则提升计算能力的瓶颈。有很多证据表明,局部特征对于检测是很关键的,而HOG的能力已经极限了。

我们可以学习更好于HOG的目标表征么?在了解特征学习的优势和它在很多其他视觉领域如识别和聚类中的成功,很有必要考虑采用从数据自动学习来的局部特征。然而,用于检测的特征学习是一个很大的挑战,至今仍有很受限制,部分原因是由于需要浏览大量的窗口。你可以争辩说HOG是一种高维的表达,比正样本数目还要大,因此是否有更丰富的表达来提高检测的效果呢?

这篇文章中,我们展示了一种用于目标检测更优于HOG的局部表达。我们使用由K-SVD学习来的稀疏编码字典,并集合形成直方图(HSC)。为了公平比较,我们沿用HOG中用到的扫描窗口框架,并同样的参数设置和训练程序。为了加快训练,我们使用监督训练策略:代替DPM中的半凸设计(根和部件的隐藏位置),我们假定这些位置是给定的固定的。我们还采用学习模型进行降维来压缩高维稀疏编码表达空间。

基于HSC的目标检测结果要优于基于HOG的检测结果。对于PASCAL2007,根滤波器模型精度从HOG的21.4%提高到了HSC的26.9%,部件滤波器的30.1%提高到了34.3%。我们证明字典和图像块大小越大,越有益处。就我们所知而言,我们的工作是第一次证明基于字典的特征可以超越和代替HOG的,对于通用的目标检测来说。

2. Related work

目标检测。很多基于SVM和HOG的检测方法在PASCAL中都得到了验证。很多方法都用到HOG特征,由于我们正是基于对特征表达的研究,因此我们的方法同样可以适用任何使用HOG的方法。

图像描述。意思同上。

稀疏特征。特征学习是一个很活跃的领域,由于其对于大数据的处理能力。稀疏编码是学习特征表达的方法中很流行的一种,一般用于图像分类设置,在检测中也得到一些研究。很多近期的稀疏编码的使用都是像素级的,学习图像块表达来代替SIFT。这些图像块表达可以用到其他问题上例如轮廓检测。

3. 目标检测的特征学习

HOG尤其流行于目标检测的系统中。HOG的核心是使用梯度表征像素的局部模式,由行人检测发展起来,拓展于对梯度敏感的一般目标检测。HOG在捕捉梯度上很有一套,对于视觉和外观鲁棒性和光照变化都很重要,但是图像并不是只有梯度。如何构建一个更丰富局部表达可以超越HOG是一个挑战,是一个开放的问题。

我们从数据自动学习特征来寻找可以代替HOG的方法。这一部分,我们介绍HSC,一种基于成熟的稀疏编码技术的码本稀疏集合(字典)。字典通过非监督的方式从数据中学习。一旦单个像素的稀疏编码计算出来,我们就将其进行直方图统计,就像DPM中对HOG所做的那样。

3.1 局部表达通过稀疏编码

我们使用K-SVD进行字典学习,一种标准的非监督字典学习算法可以产生k个均值。给定一个图像块的集合Y=[y1,y2,,,yn],K-SVD可以找到一个字典D=[d1,d2...dn]和一个对应的稀疏编码矩阵X=[x1,x2...xn]通过最小化重建误差:

min ||Y-DX||^2     s.t. 对于任何i,||xi||0(零范数)《=K;

D,X

xi是X的列,零范数计算稀疏编码xi中的非零个数,K是预指定的稀疏级别。K-SVD通过交替计算X&D来求解最优解。给定字典D,计算可以通过 贪婪正交匹配追踪(OMP)计算编码X。给定编码X,可以通过singular value decompositon(奇异值分解)按顺序更新字典D. 我们可以提取从图像块减去均值。

一旦字典D学习得到了,我们再次通过OMP方法来计算图像金字塔中每一个像素的稀疏编码。可以通过预计算图像块和编码内积来加速计算OMP【文献27】。

学习得到的字典由图2所示。K-SVD有效率的学习到一般结构而无需选择性采样。随着图像块增大和字典规格增大,越来越多的结构被发掘,例如角点、细线、线端和高频栅格。

3.2 聚合稀疏编码到直方图

目标检测的滑动窗口框架将图像分割成很多的cells,并计算每个cell的特征向量,为了用于卷积。我们尽可能的让稀疏编码和HOG相近。

设X为单个像素的稀疏编码,其维数等价于字典大小。对于每一个X中的非零的xi,我们使用软binning(双线性插值)来表征xi的精确值对于其周围的四个cell。结果是一个稠密特征向量F作为HSC特征。使用L2对F进行归一化,最后我们对每一个F中的元素采用 power trasform(功率变换):

-

F = Fa

经常在识别设置中看到。这个功率变换使得F的值的分布更一致而且增加了F的辨别功率。

对于一般的目标检测,我们发现只使用|xi|是不够的,我们需要标注xi表示是从白到黑还是从黑到白。我们增加两个半波整流值在双线性插值之前,也就是每一个字典中的码本i在HSC中有三个值:[|x|,max(xi,0), max(-xi,0)]

值得注意的是这里几乎没有ad-hoc的设计选择在HSC中。我们可以废掉HOG中的每一个手工设计,例如4路归一化,舍去梯度能量,和9个bins中水平、垂直方向的不对称等等。这说明更大的图像块的特征,包含的信息比梯度更多,并且较少需要人工设计变化。另外,可以直接改变设置,例如大小变化,稀疏度,字典大小等参数,让HSC特征适应困难问题的需要。

图3中,我们使用主要的码本可视化了HSC特征,并且和HOG做比较。HSC特征使用学习模式捕捉带有方向的边缘,可以更好的在cell中定位(边缘可能偏离中心)。另外,HSC特征可以表征丰富的模式例如角点和平行线。虽然这两幅图片在HOG中容易混淆,但是HSC模型可以毫无压力的分辨它们。

3.3 部件模型的监督学习

我们只改变局部特征,保持其他DPM中滑动窗口框架实现细节一致。令 pi=(xi, yi, si)为部件i的位置和尺度,p={pi:i属于V}为所有部件的放置设置,设m为图像窗口I的混合分配。则检测器分值

S(I, p, m)=   公式(4)

图G=(V,E)表示部件连接,一个星形图连接所有部件到根。 大fai(I, pi)表示局部特征,式中我们用HSC代替HOG。 小fai(pi,pj)是受限部件位置的变形损失。最大化S的解可以通过动态规划得到。计算花费线性于特征维数 大fai(I).

上式检测公示中很多参数需要学习得到,包括外观滤波器{wi^m},弹簧参数{wij^m},和混合偏移{bm}。训练模型的标准方法是LSVM。主要学习的挑战是有多关于正样本的东西未知:部件位置,混合分配,和一些根位置。学习的过程需要对训练模型和正样本中的隐变量进行迭代计算,得到一个精心制作并且很慢的过程,有时又很易碎由于非凸的自然特性。这提出了一个主要的挑战对于训练外观特征就是越能表达,维数越高,并且冗余。

我们规避所有非凸学习带来的麻烦通过借助于监督训练,假定关于正样本所有的信息是已知的,通过外部资源给定。injecting supervision(注射监督)已经成为检测的趋势,例如文献5和基于HOG的人脸识别。对于通用的目标识别,很难获得广泛的人工标注,因此我们该用标准的基于HOG的检测系统【文献14】,其中最后检测器的输出用来作为“groundtruth”。 通过固定基于部件模型中的隐变量,我们可以直接公平的对HSC和HOG特征进行比较。

由于隐变量被固定,学习检测模型可以看为凸二次规划:

argmin 1/2 beita*beita+C(求和符)spson n     s.t. 对于任意n属于pos  beita*大fai(In,zn)>=1-epson n; 对于任意n属于neg,对于任意z 有 beita*大fai(In, z)<=-1+epson n.

beita, epson n>=0

epson n为松弛惩罚。 我们使用文献34提供的对偶坐标解算器,只需一次迭代对负训练图像就可收敛。这就使得我们训练监督模型比难例挖掘更有效率,使得在部件模型中处理高维外观特征更可行。

3.4 使用学习模型进行降维

对于只有根滤波器的实验,我们使用5*5 patches 100个编码的字典,产生一个300维的特征向量,chaoguo HOG一个数量级。我们发现当训练全部部件模型时很方便进行降维。然而,非监督维数降维例如PCA,并不能在梯度和稀疏编码中有好的效果。在SVM设置中进行优化例如双边模型是值得考虑的,但是要求昂贵的算法迭代。

我们找到一个简单的监督降维方法是用我们只采用根滤波器情况下训练得到的模型。 我们设定每个学习得到的滤波器wi^m 作为N*nf矩阵Wi^m, 其中N=nx*ny(一个部件滤波器中cells的数目),nf是我们HSC特征F的大小。我们期望每个滤波器进行低秩(low rank)表达:

Wi^m  约= Ci^m*B, 其中 Ci^m 属于R^N*P, B属于R^P*nF.

B是类似于PCA的将F映射到一个相对小维度集合P《nf,Ci^m是这个降维空间的外观滤波器。我们可以通过计算串联的矩阵集合的SVD来为所有类型的所有滤波器学习一个好的子空间,并获得一个通用映射矩阵B,可以捕捉HSC特征中的重要部分或者是去掉冗余。我们整合B到特征计算以至于训练/测试基于部件模型更快但不失精度。

4. 实验

我们使用INRIA行人数据库和PASCAL2007数据库来验证我们HSC特征并于HOG进行比较。对于INRIA我们使用单根模型并评估HSC设置例如字典大小,稀疏级别,图像块大小,和功率变换。对于PASCAL2007,我们使用根和部件模型进行监督训练,评估HSC在20个类别中对HOG的提升,并且在DPM系统中进行比较。



你可能感兴趣的:(hsc for object detection)