计算机视觉 - 图像编码

图像编码在计算机视觉领域中一直是一个严峻的挑战,至少在深度学习火之前。在众多的视觉任务中,比如识别,检测,跟踪等,都需要提取出辨别的特征表示能更好的运用于后续的模型中。一般来说,最浅层的特征是图像的像素灰度。这种原始的灰度具有很少的语义信息,这严重限制了图像表示的描述能力。因此,大量的纹理特征,结构模式和边缘信息,如SIFT,HOG,LBP等得到了发展。这些特征灵活且相对容易构造,以方便的局部形式捕获了真实图像的大部分复杂统计量。此外,它们具有良好的抵抗遮挡,几何变形和光照变化的能力,并表现出良好的匹配性。然而,它们通常无法检测出图像局部块中最有意义的信息的,并且与图像的高层语义几乎没有关系。因此,许多研究基于这些低层的特征描述考虑了图像的较高级特征提取,如基于BoVW的模型和基于稀疏编码的方法。例如,李飞飞等应用潜在Dirichlet分配(LDA)模型来学习图像的高级语义信息。在这里,图像被视为文档;图像中学习的语义上下文对应于文档中的主题,而低层描述对应于文档中的单词。显然,学习的主题在文档分类中更有用。那么,对于更具复杂结构的图像应如何更好的表示呢? 2006年出现的深度学习对于自动表征这些复杂的图象非常有用。深度学习通常包含许多隐藏的层次,其表示能力从像素级(pixel-level)能增长到“人类”级(human-level)。显然,这些最终获得的“人类”级表示对后续的视觉任务非常有用。目前,基于深度学习的方法在各种视觉任务中能获得最佳性能。下面主要对相关方法进行一个简单汇总与总结,给自己的后续研究提供思路。

1. Super-vector

该文Image classi fication using super-vector coding of local image descriptors 发表在ECCV2010上。在Vector Quantization (VQ) Coding 的基础上运用泰勒函数展开定理进行了扩展,得到的编码向量被称为Super-Vector。本文假设我们旨在学习被定义在高维空间的一个平滑非线性函数 f(x) ,但在通常情况下用一个线性函数去无限的接近它,即 f(x)WTϕ(x) ,其中 ϕ(x) 将局部描述子 x 非线性映射到高维空间。本文解决的问题就是如何得到一个好的非线性映射 ϕ(x)
本文模型基于VQ,假设 x 在字典中最接近的视觉单词为第 k 个, k=argminjxdj ,记着 v=dk 那么 f(x) x=v 出进行泰勒展开

f(x)=f(v)+f(v)T(xv)+β2xv2

由于 x 接近于 v ,则 f(x)f(v)+f(v)T(xv) 。可知误差来自于 xv2 ,我们可以采用字典的监督学习来降低误差。最后
f(x)f(v)+f(v)T(xv)=WTϕ(x)

其中 ϕ(x) 称为Super-Vector,定义为
ϕ(x)=[0,0,,0,1,xvk,0,,0,0]

以上都是基于VQ,很自然我们会联想到Soft-VQ,那么
f(x)k=1CPk(x)[f(vk)+f(vk)T(xvk)]=WTϕ(x)

在实验中,128-dimensional SIFT特征被提取并通过PCA被降维到80-dimensional。 Pk(x) 只选取top-20,其余的设置为0。 最后发现Soft-Super-Vector的分类正确率比VQ高出20\%。

2. Locally Linear KNN Model

该文A novel locally linear knn model for visual recognition 发表在CVPR2015上。在Locally-constraint 稀疏表示模型的基础上做了进一步的改进,模型表示为

minαxDα2+λα1+μαβs2

其中 s 为样本数据 x 与字典 D 各列之间的相似性度量,第 i 个元素值为 si=exp{12σ2xdi2} 。模型的直观解释为希望得到的稀疏表示跟样本与字典的相似性想吻合,即分配给最近的字典列较大的系数。字典为各个类别的训练数据组合而成。
测试过程中采用传统的最小化重构误差,但在之前需将测试样本的稀疏表示进行cut-off,即每一个类别中的系数 αi 只保留top k largest values。
值得注意的是,这个训练过程是在 {xi,yi}Ni=1 数据集上进行。当面对大分辨率的图像数据集时,一般采用spatial pyramid feature或fisher vector等等,再使用MFA(marginal fisher analysis) with PCA 进行将维。

3.Weighted Sparse Coding for Saliency Detection

该文A weighted sparse coding framwork for saliency detection 发表在CVPR2015上。提出了利用稀疏表示模型用于图像的显著性区域检测。构造显著性字典/非显著性字典进行稀疏编码,利用稀疏系数定义显著性值。作者在标准的稀疏表示模型下,引入了权重因子

αi=argminαifiDαi22+λdiag(ωi)αi1

注意到优化上述目标函数时,当 ωi 很大时将会压缩 αi 的值。换句话,应该使 ωi 值与 fi 与字典的相似性成反比。该目标函数使得与字典相似的信号对应的稀疏系数更大,即信号的重构误差更小。那么文中是如何识别出图像中 I 的显著性区域呢?很简单

  • 对图像 I 使用简单的SLIC(simple linear iterative clustering)进行分割得到一系列小的非重叠的区域(region/superpixel),即 R={r1,,rN} 。文中一般取 N=300
  • 在每一个区域里提取了两种特征(A good feature should exhibit high contrast between saliency and background):Gabor filter responses 作为纹理描述子,颜色直方图(1024bins)。将这些区域里的局部描述子相加得到该区域特征描述。那么整个图像的特征为这些区域特征的合集, FARC×N (纹理)与 FHRC×N (颜色直方图)。
  • 构造初始的显著性字典 S0 。文中提出首先构造初始化的非显著性字典,即选取紧邻图像的边界区域 r ,和focusness response 低于平均值的区域 r 一起构造非显著性字典。对图像 I 中的 N 个区域在非显著性字典下进行稀疏编码,在得到对应区域的重构误差(显著性值)。当区域 r 的显著性值高于平均值时,则定义该区域为显著性区域。有了这些显著性区域,就可以构造初始的显著性字典 S0 ,作为潜在的显著性区域。
  • 不断迭代,不断精细化该显著性字典。最终得到的显著性字典即为图像 I 中的显著性区域。

4.Localize objects with minimal supervision

经典的目标检测方法是将图像中的目标(bounding box)与背景带入分类器中学习出一个辨别模型( ω )。但在实际应用中,bounding box尤其在大规模数据集中标定是很耗时且不准确,因此产生了很多类似weakly supervised/minimal supervised方法。本文On learning to localize objects with minimal supervision 针对这种弱标记(weakly-labeled,即图像类别已知但目标位置未知)提出了将submodular与LSVM 相结合的新方法来训练模型并检测目标。训练过程大致可以分为3 个步骤:

  • 使用selective search大规模减少图像训练集中探测窗口的个数
  • 利用discriminative submodular cover algorithm进一步得到近似的目标窗口,并作为LSVM的初始值
  • 利用LSVM进行模型的训练

LSVM是一个鸡与蛋的问题:有了模型参数才能推出隐变量,而有了隐变量才能估计模型参数。该模型可表示为

L(ω)=12ω22+Ci=1nmax(0,1yifω(xi))

其中 fω(x) 为分类器, fω(x)=maxzZ(x)ωϕ(x,z) ,(隐变量 Z ,对于目标检测来说就是一系列bounding boxes;对于DPM模型来说就说就是root filter和part filters在图像中的位置信息。而在 Z 上的最大化,就是找到一个包含目标的(bounding box)。LSVM模型是一个非凸问题,求解可分为两步
(1) Relabel positive example: zi=argminzZ(xi)ωϕ(xi,z)
(2) Optimizing Omega: Optimizing L(ω) over ω using coordinate descent.
L(ω)={ωCnyiϕ(xi,zi)ωifyifω(xi)<1ifyifω(xi)1

LSVM对初始化非常敏感,所以本文在使用LSVM之前使用了提出的discriminative submodular cover algorithm得到近似的目标窗口。该算法思想很简单,基于一个先验知识:正确的目标boxes在合适的特征空间很相似,且目标窗口只有在正图像集中出现而不会出现在负图像集中。因此作者定义了一个函数 F(S) 来度量boxes 集合 S 来表征整个正图像集,该函数的直观意义为该集合 S 相似的box 在正图像集中的个数。当 F(S) 超过某一数值时,则用 S 来粗略表示目标窗口。
本文设计了两组实验证明了初始目标窗口的有效性,以及最终目标检测的准确性。

5.Multi-Task Multi-View Sparse Tracking}

该文Multi-attributed dictionary learning for sparse coding 发表在ICCV2013上。在传统的稀疏表示跟踪框架下提出了Multi-View的跟踪模型,即用多个特征去描述目标。作者在文中用到了4种特征,颜色直方图,灰度,HOG,LBP。假设一帧图像中所有候选窗口(400 个)的特征表示为 X=[X1,,XK] ,其中 K 为特征数;同理字典表示 M=[M1,,MK] ,其中每一特征的字典 Mk=[Dk,Ik,0] 由目标模板(10), 背景字典(文中用单位矩阵表示)和0矩阵构成,其中添加0矩阵只是为了使得每一特征的字典的原子数目相同,即使得到的稀疏表示系数矩阵具有相同的维度。模型可以表示为

minW,P,Qk=1KXkDkWk2F+λ1P12+λ2QT12

其中 Wk=Pk+Qk P=[P1,,PK] Q=[Q1,,QK]
上述模型同样可通过The Accelerated Proximal Gradient (APG) 算法计算稀疏系数矩阵 P Q 。图中只用了3种特征,其中系数矩阵 Q 有一列值较大,则对应的候选窗口则为outlier。由于是混合范数约束,模型可以理解为如果候选目标与目标很相似,则通过系数矩阵 P 就可以重构,而如果偏离目标很远则 Q 中对应列的值就很大。因此作者提出了通过系数矩阵 Q 排除一些outlier,即如果某些列的数值累加超过一阈值就定义为outlier,其对应的整个稀疏矩阵 W 设置为0。最后在剩下的候选目标中通过 W 和对应的目标模板 D 计算重构误差,误差最小的即为得到的目标。
当然作者也提到了排除outlier的初始阈值设置为1,而在后续跟踪中阈值随着一帧中检测到的outlier的个数成类似正比增长。

6.Structural Sparse Tracking

稀疏表示模型运用在目标跟踪中的成果大量涌现,可分为全局稀疏表示跟踪和局部稀疏表示跟踪。该文Structural Sparse Tracking 出现在CVPR2015上,属于两者的结合体,提出的模型综合考虑了全局与局部稀疏约束,候选目标和局部块之间的内在联系,以及局部块的空间结构。
该文基于一个先验:即在目标周围采样的候选目标具有潜在的相关性,且这些目标窗口内采样的同位置处的局部块之间也具有潜在的联系(intrinsic relationship)。因此该文作者提出了新的稀疏编码框架。假设在一帧图像中,在目标位置处采样了 n 个候选目标(particles) X=[x1,,xn] ,同时为了使用局部稀疏表示和局部块的空间性,对每一个候选目标采样 K 个局部块,空间布局与Spatial pyramid类似。 Xk=[xk1,,xkn] 表示 n 个候选目标中的第 k 个局部块, Dk 以同样的方法在训练数据集中得到的字典。那么,模型可表示为

minZ12k=1KXkDkZk2F+λZ2,1

其中上文提到的相关性用 p,q 混合范数实现。
当对一帧图像进行目标跟踪时,首先在上一帧目标附近位置处采样候选目标窗口(400个),对每一个目标窗口内采样局部块(14 个),对所有的局部块数据进行稀疏编码,得到稀疏系数矩阵;再在对应字典上求出重构误差;针对每一个候选目标窗口,将属于此的局部块的重构误差累加;比较各个候选目标窗口的重构误差,达到对目标的检测。
本文采用中心位置误差与重叠率作为评价指标,并与14种最近方法进行比较,能取得不错的效果。但是作者没在文中说明局部块的特征提取方法。注意:当 K=1 ,即不进行局部块采样时,且采用 11 ,则为全局稀疏表示跟踪;当进行局部块采样时,且采用 11 时,为局部稀疏表示跟踪;当 K=1 时且采用混合范数时,为联合稀疏表示跟踪。而本文方法既是对这3种方法的结合。

7.Tracking via Discriminative Similarity Map

本文Visual tracking via discriminative sparse similarity map 在传统的稀疏表示跟踪框架下提出了反稀疏表示跟踪,即将候选目标窗口作为稀疏表示模型的字典而将目标模板和背景模板作为待分解的信号。另外为了使相似的候选目标具有相似的稀疏表示,本文引入了拉普拉斯正则项。模型可表示为

minCTYC22+λC11+δijcicj2Bijs.t.ici0

其中 T 为模板集,文中提出在构造初始模板集时,首先人工标定bounding box,在该框内中心的一定半径范围内选取10个窗口作为正模板集;而在一定半径环状范围内采样150个窗口作为负模板集。注意这些窗口归一化到 32×32pixels ,再空间采样子局部块提取特征连接而成该窗口的特征表示。 Y 为候选目标窗口集, B 为二值矩阵,当 ci cj 的K紧邻中,则 Bij=1 。模型中的拉普拉斯正则项可以表示为 ijcicj2Bij=tr(CLCT) ,其中 L=DB D=diag(D1,D2,,DN) Di=jBij 。所以最终模型为
minCTYC22+λ1TC1+δtr(CLCT)s.t.ici0

该模型可通过APG method求解,得出的 C ,那么就可以用此稀疏系数矩阵进行最佳目标窗口的选择。
注意 Cij 表示第 i 个候选窗口与第 j 个模板的相关系数,则第 i 行表示第 i 个候选窗口与整个模板集的相关系数,其中前10个为对应的正模板集的相关系数,后面150个为对应负模板集的相关系数。那么最佳的候选目标窗口应该是对应的正、负模板相关系数差别越大越好。为了更加区分候选窗口,a. 对每一个相关系数都乘上一个权重,该权重定义为候选窗口与模板的相似性,越相似值越大;b. 作者提出了新的系数pooling方法,即将对应的正、负模板集的相关系数中最大的K 个相加。最后,通过正、负模板集的相关系数相减,差值越大的窗口即为检测的目标。
该文也提出了模板集的更新策略达到更加鲁棒的跟踪。当在一帧图像中检测到目标时,将该目标与正模板集做相似性运算,当与某一个模板的相似度小于设定的阈值时,则用此目标替换该对应模板;否则不更新正模板集。而负模板集的更新则采用实时更新的策略。

8.Tracking via Sparse Collaborative Appearance Model

本文Robust object tracking via sparsity-based collaborative model 提出了sparse discriminative classifier(SDC) 和sparse generative model(SGM)的集成模型用于目标的跟踪。其中SDC主要用于前景与背景的分离,而SGM主要考虑目标的空间特性。SDC为常规的稀疏表示跟踪模型,在构造目标字典(50) 与背景字典(200),人工框定窗口后归一化到 32×32 pixels,再提取特征。前面提到的特征空间在文章指出是冗余的,所以作者利用投影矩阵对字典和候选窗口特征表示进行降维。对候选窗口特征表示进行稀疏编码,再在各自相应的目标字典和背景字典上计算重构误差 εf εb 。那么该候选窗口 r 的目标值定义为

Hr=11+exp((εbεf)/σ)

当为真正的目标时, εf 很小而 εb 很大,则 Hr 很大。SGM在第一帧时对目标内部进行空间采样(196pathes,特征维度36),将这些patches进行聚类组合成目标字典 D (50)。然后对该目标区域内的每个patch特征在字典 D 下进行稀疏编码,最后将这些patch的编码链接起来成为该目标区域的特征表示。在跟踪时,对所有的候选目标区域进行同样的操作得到对应区域的特征表示。同时,作者考虑了对遮挡部分的处理,当对某一区域里的patch进行重构时,如果重构误差大于阈值时,则认为该patch为遮挡部分,将其对应的稀疏表示系数置为0。那么,有了目标的特征表示和所有候选目标区域的特征表示,就可以计算之间的相似性
Lr=jmin(ϕjr,ϕj)

当候选目标与目标很相似时, Lr 很大。作者提到再计算相似性时,当候选目标的特征表示某些patch的系数置为0时,则目标的特征表示相应位置也应该置为0。
最后,作者定义了候选目标窗口的综合目标值
Vr=HrLr=jmin(ϕjr,ϕj)1+exp((εbεf)/σ)

上述定义可以理解为候选目标与目标进行特征加权匹配,其中 Hr 为权重。

9.Learning Spatial Regions for Classification

中层表示(mid-level representation)近来被用于增强图像分类的辨别能力,即寻找图像中辨别的部分(parts)并通过卷积得到该部分的响应,将这些部分的响应连接起来作为整幅图像的表示。即使图像中辨别的部分被发现并学习出滤波器,但是对新图像测试时那些不相关的但是结构相似的部分能产生高的响应,从而导致辨别能力的下降。而本文Learning important spatial pooling regions for scene classi fication 解决的问题是去除某些部分的错误响应得到图像更加辨别的中层表示。
这里写图片描述
本文思想基于一个先验:对某一类图像中的显著性物体(bounding box) 的中心做空间位置分布统计时,发现这一类图像中的物体空间位置基本紧紧相邻为几个簇;换句话,离簇中心较远的位置的部分对应错误的响应。因此本文提出的模型可以看成是在DPM根滤波器和子滤波器的基础上加入了空间位置信息,表示为

f(I,P)=FH(I,P)+ϕ(P,Pc,σ)=i=0NFiH(I,pi)+i=1Nj=1Kdijϕ(pi,pcij,σij)

where
ϕ(pi,pcij,σij)=exp(pipcijp02σ)

其中 N 为图像中parts的个数, K 为图像中簇中心的个数。模型第一项为appearance, F 为滤波器系数, H 为图像中各部分的底层特征表示(HoG);第二项为空间位置信息,离簇中心位置越近的部分对目标函数贡献越大。构造该模型的目的就是要找出使目标函数值(响应值)最大的parts,然后对应每一个part 计算出响应值(即第一项的值,第二项的值),然后将这些parts 的响应值连接起来作为图像的特征表示。注意为了式特征更加鲁棒,对part应作不同尺度的缩放。
这里写图片描述
那么,该模型的参数怎么得到呢?使用大量训练数据学习出参数,其中训练数据中显著性物体被bounding box大致的标定出,但不一定标定的准确。训练参数分为3步: P β ( Fi dij ), ω ( pcij σij ) 的训练。整个训练过程:

  • 初始化 β ω
  • P 的推导。此过程相当于DPM中的Relabel Positive and Mine Hard Negative Samples。
  • β 的学习。假设 P 已知,则正负样本已知。模型可以改写为 Fβ(I,P)=βψ(I,P) ,那么损失函数写为SVM的形式 LD(β)=12β2+CmMmax(0,1ymFβ(Im,Pm)) ,其中 D={(y1,I1,P1),,(yM,IM,PM)}
  • ω 的学习。 ω=argmaxωMmNiKjdjϕ(pmi,pcij,σij)

图像的特征表示得到后,同时为了得到更高的正确率,该文特征结合FV,带入SVM分类器进行训练与测试。

10.Low-Rank Sparse Coding for Tracking & Image Classification

Low-rank sparse learning for robust visual trackingLow-rank sparse coding for image classi cation 都是基于低秩的稀疏编码用于目标的跟踪或图像的分类。基于低秩的稀疏编码都是基于这样的先验:目标周围区域内采样的目标候选框之间是相似的,则在过完备冗余字典下的稀疏表示是稀疏的且稀疏表示矩阵是低秩的;对于图像分类,作者对大量自然场景图像做了统计,发现所有图像采样块的SIFT描述子组成的矩阵是低秩的,且一副图像中的superpixel内的SIFT描述子组成的矩阵是更低秩的。那么模型可表示为

minZXDZE2F+λ1Z+λ2Z1,1+λ3E1,1

模型的求解是通过Inexact Augmented Lagrange Multiplier算法。对于目标跟踪来说 X 即为上一帧中框定目标周围的候选目标区域(400), D 由目标模板和背景模板构成(25),加入背景模板是为了防止跟踪目标漂移。同时为了更加鲁棒的跟踪,作者采用了字典的更新机制,当在一帧图像中检测到目标时,将该目标与正模板集做相似性运算,当与某一个模板的相似度小于设定的阈值时,则用此目标替换该对应模板;否则不更新正模板集。而负模板集的更新则采用实时更新的策略。得到的稀疏系数矩阵 Z 的每一列中对应的目标模板的系数累加减去对应的背景模板的系数累加,值最大的那一列即对应最佳的跟踪目标位置。
对于图像分类来说不考虑噪声 E X 即为一副图像中的superpixel(通过SLIC 算法得到,个数一般设为150) 内部的SIFT描述子组成的矩阵。而 D 为在所有训练数据集上针对采样的SIFT描述子通过k-means算法得到(注意,该字典没有通过模型学习)。通过低秩的稀疏编码后就能到superpixels的高层表示,再引入Spatial Pyramid机制将这些superpixels的高层表示通过max-pooling 得到整幅图像的特征表示。最后实验验证该编码方法能取得很好的分类效果。

11.Encoding High Dimensional Local Features by Sparse Coding Based Fisher Vectors

该论文发表于NIPS2014,主要针对的问题是传统的基于GMM的Fisher vector不能很好的处理高维的局部描述子。我们知道在计算机视觉建模中,GMM模型对于传统的128维的SIFT描述子往往需要不过100个高斯分布便能很好的拟合这些局部描述子。但是,针对更加高维的局部描述子,比如通过CNN提取的特征向量,则需要海量的高斯分布来拟合数据;而最终的Fisfer vector会造成维数灾难,不利于后续的处理。下图(a)很好的印证了该问题, d 的定义是所有局部描述子到其最近的高斯均值向量的平均距离,即刻画了高斯分布拟合数据的能力。
这里写图片描述
下面简单回顾一下Fisher kernel。假设 X={x1,,xn} 表示图像中提取的 n 个局部描述子,且独立的采样与分布 P(xi|λ) 。那么Fisher 核的定义为 K(X,Y)=GXTλF1GYλ F 为信息矩阵,在实际应用中往往被省略掉。因此, GXTλ 称为Fisher vector,其定义为

GXTλ=λlnP(X|λ)=inλlnP(xi|λ)

由上式可出,fisher vector的计算分为两步:对每一个局部描述子的分布的对数求梯度;再使用sum-pooling。
该文中局部描述子的生成过程如下:首先从一个零均值的Laplacian distribution中抽样一个编码向量,即 P(μ)=12λexp(μ/λ) ;其次,从编码向量组成的均值向量的高斯分布中抽样局部描述子,即 xN(Bμ,Σ) 。那么 μ 为隐变量, B 为参数,则 x 的边界分布为
P(x)=μP(x|μ,B)P(μ)

由于积分的存在,最大似然方法对参数 B 的估计非常困难。为了简化计算,文中采用了point-wise maximum的策略。
P(x)P(x|μ,B)P(μ)

其中 μ=argmaxμP(x|μ,B)P(μ) 。文中进一步假设 Σ 为对角矩阵且各元素相等,那么 P(x) 的对数形式为:
lnP(x|B)=minμ1σ2xBμ+μ1

可以看出模型参数 B 的学习为稀疏表示中字典的非监督学习;而隐变量 μ 的推断为稀疏表示中的稀疏编码。有了 B,μ ,最终的fisher vector即为对参数 B 的求导与累加的过程。由上图(b)可以看出文中方法的优越性。

猜你喜欢

转载自blog.csdn.net/step_forward_ml/article/details/78217117