生物识别可以安全快速地鉴别个体,具体可以通过指关节纹(Finger Knuckle Print,FKP)、指纹(Finger Print)、掌纹(Palm Print)等。由于疫情影响,FKP识别成为一个不易传播疾病的识别方式。
LEARNING DISCRIMINATIVE FINGER-KNUCKLE-PRINT DESCRIPTOR
(ICASSP 2019)方向信息(Direction information)是识别FKP图像的一个关键特征,大多现有的方法仍然使用这人工设计的特征,这些特征需要很多的先验知识。这篇文章为FKP的特征学习,提出了一种基于方向的二值特征学习方法(Discriminative Direction Binary Feature Learning, DDBFL)。主要贡献有:
- 设计了一种基于Gabor过滤器卷积的特征Direction Convolution Difference Vector(DCDV)
- 使用投影函数将特征二值化,并保持同类样本的紧密性(compact)和异类样本的差异性(separable)
- 将特征进行分块统计,组成最终的FKP特征算子(Feature Descriptor)
Gabor Filter
Gabor滤波器使用了图像频域中的信息来提取图像的纹理特征,由一个二维高斯函数和二维三角函数叠加而成,本文使用了Gabor滤波器的实数部分
$$ G(x,y,\theta,\sigma, \beta)=\frac{1}{2\pi \sigma\beta}\exp{-\pi(\frac{x’^2}{\sigma^2}+\frac{y’^2}{\beta^2})}\cos({2\pi \mu x’}) $$
其中
$$ \begin{aligned} x’=(x-x_0)\cos\theta+(y-y_0)\sin\theta \\ y’=-(x-x_0)\sin \theta + (y-y_0)\cos \theta \end{aligned} $$
$(x_0,y_0)$为核的中心,$\mu$是径向频率(我取1/3),$\sigma$和$\beta$为$x,y$标准差,这里取1。
DCDV
在本文中,当选定了一个方向$\theta$后,根据核的大小便可以计算出每个方向的Gabor核,并在图像上进行卷积操作,得到每一个像素在该方向的特征值。本文从$[0,\pi]$选择了12个方向,为每个像素计算了12个特征值,将12个特征值$c_1,c_2,\dots,c_{12}$的相邻差组成向量,即DCDV:
$$DCDV=[c_{12}-c_{11},c_{11}-c_{10},\dots,c_2-c_1,c_1-c_{12}]$$
DCDV可以很好的表示图像中出现的多个主要方向特征,若相邻的两个卷积结果异号,说明此处包含着方向信息。同时,DCVC的均值为零,所以不需要做归一化。
DDBFL
特征的二值表示是一个具有鲁棒性的表示方法,若原始特征值具有一定动荡性,它的二值表示还是能相对稳定一些的,如$[0.8,0.9]$的动荡,在二值表示后还是会归为$1$。本文使用一个投影矩阵$W\in R^{k\times d}$将$d$维的DCVC投影至$k$维的DDBFL,具体计算如下: $$b_{p,i,k}=\frac{1}{2}(sgn(w_k^T x_{p,i})+1)$$ 表示第i个样本第p个像素的第k维二值特征。
Objective
优化目标主要从两个角度:
- 增加特征的差异性,使特征之间长得不一样,更具辨识度,即特征的方差最大化。
- 使同类样本接近,异类样本远离 于是可以将优化目标初步表示为:
$$ \begin{aligned} \max_{w_k}J(w_k)&=\max_{w_k}J_1(w_k)+2\lambda J_2(w_k) \\ &=\max_{w_k}\sum_{p=1}^P \sum_{i=1}^N ||b_{p,i,k}-\mu_{p,k}||^2 \\ &+2\lambda\sum_{p=1}^P\sum_{i=1}^N (\sum_{j\in \Gamma(i)}||b_{p,i,k}-b_{p,j,k}||^2 -\sum_{j\notin \Gamma(i)}||b_{p,i,k}-b_{p,j,k}||^2 ) \end{aligned} $$
方差最大化
由于上式的sgn函数导致了NP难的问题,所以实际优化过程中做了相应的放宽,直接优化投影后的特征(添加非线性函数?),使投影后的特征与投影后的特征均值平方差最大(即方差最大):
$$ \begin{aligned} J_1(W)&=\sum_{p=1}^P |||W^TX_p-W^TM_p||^2 \\ &=tr(W^T(\sum_{p=1}^P(X_pX_p^T-2X_pM_p^T+M_pM_p^T))W) \end{aligned} $$
这里将矩阵的二范数转化为矩阵的迹形式方便计算,其中$M_p$为所有像素p上的DCDV均值。这里的均值是每一张图像在像素p上的向量均值,如果每张图像的拍摄范围有一定的偏差,说不定会对优化造成影响。该方法是否能具有平移不变性的特征还需要进一步实验证明,可以对训练图像进行随机程度的偏移,观察是否会对模型带来影响。
Similarity Preserve
在实际计算中,本文把二值特征的欧氏距离改写成内积形式,能这么做是由于二值特征的取值特性$b\in {-1,1}$,即把欧氏距离变成汉明距离。
$$J_2(W)=\sum_{p=1}^P\sum_{i=1}^N (\sum_{j\in \Gamma(i)}sgn(w_k^Tx_{p,i})\times sgn(w_k^Tx_{p,j})-\sum_{j\notin \Gamma(i)}sgn(w_k^Tx_{p,i})\times sgn(w_k^Tx_{p,j})))$$
此处$\Gamma(i)$表示与样本$i$同类别的样本。可以看到,对于不同的样本来说,也是计算对应的像素之间的差异,再使其差异最小(同类情况下)或最大(异类情况下),也需要验证是否由偏移不变性。
整理成矩阵形式为
$$ \begin{aligned} J_2(W)&=\frac{1}{2}\sum_{p=1}^Ptr(W^TX_pSX_p^TW) \\ &=\frac{1}{2}tr(W^T(\sum_{p=1}^PX_pSX_p^T)W) \end{aligned} $$
其中矩阵连乘的形式相当于样本之间的笛卡尔积,$S$代表相似度。
Optimization
用平衡因子结合两个优化项:
$$ \begin{aligned} J(W)&=J_1(W)+2\lambda J_2(W) \\ &=tr(W^T(\sum_{p=1}^P(X_pX_p^T-2X_pM_p^T+M_pM_p^T))W) \\ &+\lambda tr(W^T(\sum_{p=1}^PX_pSX_p^T)W) \\ &=tr(W^TQW) \end{aligned} $$
将中间的连乘矩阵组合为$Q$,在优化时计算矩阵Q最大的k个特征向量,作为该问题的解。
DDBFL特征表示
以上的步骤将每一个像素的d维特征转化为k维binary code,每张图片的特征维为$w\times h \times k$,其中w和h为图片的宽高。本文进一步将图像划分为不重叠的若干个区域(如$16\times 16$),计算每一个区域中取值的统计值,将图像表示为$16\times 16$的统计特征,计算两个图像之间的卡方距离作为相似度度量。
在我个人的理解里,每个区域内需要统计k个维度中1的个数,这样每个区域相当于有k个变量,再计算所有区域这k个变量的均值,用于计算卡方距离。对于两个不同的图片中的某个区域,它们的卡方距离为:
$$
\chi^2(a,b) = \sqrt{(\sum_{i=1}^k\frac{a_i-m_i}{m_i})^2+(\sum_{i=1}^k\frac{a_i-m_i}{m_i})^2}
$$
其中$a_i$为图片$a$的第$i$维统计量,$m_i$为所有图片在该区域统计量中第$i$维的均值。
思考
本文利用了Gabor Filter卷积获得图像的方向特征,为FKP图像提供较具区分度的特征表示。本文的思考如下:
- 在优化过程中计算两个像素同一个像素的差异,然而图像特征在位置上的分布可能会不同,再加上图像的偏移也可能会影响模型结果,所以可以考虑设计一些能够具有平移不变形的特征提取方法;虽然最后的DDBFL表示可以在一定程度上缓解图像平移的影响(因为是取了一个local patch的统计信息),但这只是在匹配时考虑这个问题,而不是在优化中考虑的;
- DDBFL的统计表示维度依然很大,可以考虑设计一个维度更小,但是保留更有用信息的表示方法;
- 是否可以增强更具方向性的特征,平滑不明显的特征,考虑在DCDV上做适当的处理。
接下来需要实现一下这篇论文的模型,并且测试图像偏移的影响。
Jointly learning compact multi-view hash codes for few-shot FKP recognition
(2021 Pattern Recognition)本文针对FKP图像稀少的情况提出了解决方案,并在DCDV的基础上,利用了多视图特征,从不同的角度来描述FKP图像(multi-view feature)。
Related Works
本文介绍了一些现有的方法,主要包括hand-crafted特征的方法:
- Morales et al. 使用尺度不变的特征变换(scale invariant feature transform)来表示FKP.
- Kumar et al. 基于localized Radon变换(localized Radon transform)对随机线条和褶皱进行编码.
- 许多现有的方法模仿掌纹识别,使用了基于方向的特征来表示FKP.
- Zhang et al.基于Gabor过滤器来找到图像的主要方向特征(dominant direction feature).
- Zhang et al.进一步改进自己的方法,过滤了一些plane pixel,并对特征进行量化(quantify)
- Gao et al.使用多个方向的Gabor过滤器来获取多方向的特征 和基于学习的方法:
- 基于PCA和LDA进行特征提取
- 基于CNN和基本的增强方法(BN, data augmentation)
- 基于hash learning的方法
- 基于稀疏表示的学习 这些方法都需要大量的标记数据,对few-shot的情况可能会出现优化不足的情况。 本文的主要贡献为:
- 提取了多视图的FKP特征(multi-view feature),提供了更充分的信息;
- 提出了一种非监督的方法,用于特征学习(feature learning)和特征编码(feature encoding),同时该方法可以拓展为更多维度的特征学习;
Learning compact multi-view FKP descriptor
多视图特征指的是用不同类型的特征来对某个图像进行表示,本文主要使用了和DCVC相似的,基于方向的DVDV(Direction View Data Vector),与基于纹理的TVDV(Texture View Data Vector)
DVDV
DVDV依旧使用了12个方向的Gabor Filter来提取特征向量,并在之后的步骤中被映射为更低维度的特征向量。
$$DCDV=[c_{12}-c_{11},c_{11}-c_{10},\dots,c_2-c_1,c_1-c_{12}]$$
TVDV
现有的基于纹理的方法大多使用LBP和PDV来描述特征,它们主要通过相邻像素直接的计算得到特征,当存在一些噪声像素(noise pixel)和描绘的偏差(illumination variances)时会很容易受影响。
本文则在局部区域计算像素的梯度来表示纹理特征。具体来说,使用了8个Kirsch masks来计算每个3x3区域内,八个方向的像素之间的变化梯度。在计算过程中需要把FKP图像缩放到[0,1]之内,以至于和DVDV的取值范围相同。
对于每个像素,可以计算8个梯度值,则每个TVDV可以表示为
$$TVDV=[e_8,e_7,e_6,\dots, e_1]$$
JLCMHC
DVDV和TVDV共同构成了MVDV(Multi-View Data Vector),为了进一步进行特征学习,本文分别将两个向量映射为K维二值向量:
$$b_{p,i}^v=0.5\times (sgn((W^v)^Tx_{p,i}^v)+1^{K\times 1})$$
其中$b_{p,i}^v$是第v中view的特征(这里是DVDV或者TVDV)。
最终两个K维二值向量将组合成一个K维二值向量$c$作为该图片的哈希表示,向量$c$将通过学习的形式获得。
损失函数包括三个部分:
- 待学习的向量$c$与投影后两个维度的特征差距最小化
- 二值化后的特征之间的方差最大化,使得向量之间具有差异性,分布更加分散,每个图像的特征就更加鲜明,不容易被识别为别的特征
- 使两个view的二值特征差异最大化,这样不同的view之间可以拥有不同的特征
本文使用的是无监督的方法,应对数据集和标记较少的情况。
损失函数的形式为:
$$ \begin{aligned} \min_{W^v}J(W^v)&=J_1(W^v)+\lambda_1J_2(W^v)+\lambda_2J_3(W^v) \\ &=\sum_{v=1}^{V=2}(\beta^v)^r(\sum_{p=1}^P\sum_{i=1}^N ||c_{p,i}-0.5^{K\times 1}-(W^v)^Tx^v_{p,i}||^2 \\ &-\lambda_1\sum_{p=1}^P\sum_{i=1}^N||b_{p,i}^v-m_p^v||^2) \\ &-\lambda_2\sum_{p=1}^P\sum_{i=1}^N||b_{p,i}^1-b_{p,i}^2||^2 \\ s.t. c_{p,i}={0,1}^{K\times 1}, (W^v)^TW^v=I \end{aligned} $$
其中第一项使得学习到的联合向量表示$c$分别与两个投影后的K维特征距离相近,表示将多个view的特征进行融合;第二项损失函数对于所有图像中的每一个像素,其特征方差最大化,具体来说,本文选取了$55\times 110$大小的图像,对于每一个像素位置$(x,y), x\in[0,54], y\in[0,109]$,计算每一张图像在$(x,y)$上特征的方差,并使该方差最大化;第三项使得不同view的每个特征向量差异最大化,使得不同view的特征具有差异性。
在限制条件中,将$c$限制为了二值向量,同时也限制了$(W^v)^TW^v=I$,后者的目的是为了让投影矩阵的每一行都线性独立(与其它行的内积为0),且每一行都是单位向量(与自己的内积为1),这样能够提取更丰富、更discriminative的特征。
可以看出对于第二项损失,可能依然存在对图像平移敏感的情况,需要数据集有一个较为规整的预处理,把图像中心都统一到一个特定的位置,而一三项实际上是存在一定的矛盾的(即要让不同view的特征差异大,又要让最终的联合向量与不同view的投影结果相近),实际上是在找两者之间的一个平衡,可以考虑是否有更合适的向量表示方法。
Optimization
将损失函数写成矩阵形式:
$$ \begin{aligned} \min_{W^v}J(W^v)&=\sum_{v=1}^{V=2}(\beta^v)^r(\sum_{p=1}^P ||C_p-0.5-(W^v)^TX^v_{p}||^2 \\ &-\lambda_1\sum_{p=1}^P||B_{p}^v-M_p^v||^2) \\ &-\lambda_2\sum_{p=1}^P||B_{p}^1-B_{p}^2||^2 \\ &s.t. C_{p}={0,1}^{K\times N}, (W^v)^TW^v=I \end{aligned} $$
因为该损失函数中含有不可微函数$sgn(\cdot)$,所以是非凸的,这里将它relax成投影形式:
$$ \begin{aligned} \min_{W^v}J(W^v)&=\sum_{v=1}^{V=2}(\beta^v)^r(\sum_{p=1}^P ||C_p-0.5-(W^v)^TX^v_{p}||^2 \\ &-\lambda_1\sum_{p=1}^P||(W^v)^TX^v_{p}|-M_p^v||^2) \\ &-\lambda_2\sum_{p=1}^P||(W^1)^TX^1_{p}|-(W^2)^TX^2_{p}|||^2 \\ &s.t. C_{p}={0,1}^{K\times N}, (W^v)^TW^v=I \end{aligned} $$
这里的relaxtion遵循了2010年的论文Semi-supervised hashing for scalable image retrieval,该文的描述为“直观地让同类特征在保有相同正负符号的同时尽可能的拉近,让异类特征在正负符号不同的同时尽可能的远离”。
优化过程分为三步:
- 更新像素p的联合向量$C_p$
- 更新不同view的投影矩阵$W^v$
- 更新权重参数$\beta$
更新$C_p$
$$ \begin{aligned} J(C_p)&=\sum_{p=1}^P\sum_{v=1}^{V=2}(\beta^v)^r( ||C_p-0.5-(W^v)^TX^v_{p}||^2) \\ &= \sum_{p=1}^P\sum_{v=1}^{V=2}(\beta^v)^rtr((C_p-0.5-(W^v)^TX^v_{p}|)C_p-0.5-(W^v)^TX^v_{p}|^T) \\ &= \sum_{p=1}^P\sum_{v=1}^{V=2}(\beta^v)^rtr(C_pC_p^T-2(0.5+(W^v)^TX_p^v)C_p^T \\ &+(0.5+(W^v)^TX_p^v)(0.5+(W^v)^TX_p^v)^T) \\
&s.t. C_{p}={0,1}^{K\times N} \end{aligned} $$
令其导数为0,可得:
$$ \frac{\partial J}{\partial C_p} = \sum_{p=1}^P\sum_{v=1}^{V=2}(\beta^v)^r (C_p-0.5-(W^v)^TX_p^v)=0 $$
整理可得:
$$ C_p=0.5+\frac{1}{\sum_{v=1}^V(\beta^v)^r}\sum_{v=1}^V(\beta^v)(W^v)^TX_p^v \\ s.t. C_p={0,1}^{K\times N} $$
为了保证结果能够符合限制条件$s.t. C_p={0,1}^{K\times N}$,本文将该式调整成符合限制的形式:
$$ \begin{aligned} C_p&=0.5+0.5\times sgn(\frac{1}{\sum_{v=1}^V(\beta^v)^r}\sum_{v=1}^V(\beta^v)(W^v)^TX_p^v )\\ C_p&=0.5\times sgn(\sum_{v=1}^V(\beta^v)(W^v)^TX_p^v +1) \end{aligned} $$
其中由于$\beta$是正值,不影响$sgn$后的结果,所以可以剔除。
更新$W^v$
本文在这里将损失函数中l2-norm形式改写成矩阵的迹的形式:
$$ \begin{aligned} J(W^v)=& \sum_{v=1}^V(\beta^v)^r (\sum_{p=1}^P tr( (C_p-0.5)(C_p-0.5)^T \\ & -2(C_p-0.5)(X_p^v)^TW^v+(W^v)^TX_p^v(X_p^v)^TW^v) \\ &- \lambda_1\sum_{p=1}^P tr((W^v)^TX_p^v(X_p^v)^TW^v-2(W^v)^TX_p^v(\bar{M}_p^v)^TW^v\\ &+(W^v)^T\bar{M}_p^v(\bar{M}p^v)^TW^v))\\ &-\lambda_2 \sum{p=1}^P tr((W^v)^TX_p^1(X_p^1)^TW^1-2(W^1)^TX_p^1(X_p^2)^TW^2\\ &+(W^1)^TX_p^1(X_p^2)^TW^2) \end{aligned} $$
删除常数项$tr( (C_p-0.5)(C_p-0.5)^T$后可整理为:
$J=W^TYW-2W^TZ$
的形式,这是一个经典的QPSM(Quantitative Strategic Planning Matrix)问题,可以用GPI算法解决,参考F. Nie, R. Zhang, X. Li, A generalized power iteration method for solving quadratic problem on the Stiefel manifold, Sci. China Inf. Sci. 60 (11) (2017) 112101.。
更新$\beta^v$
$beta$的更新可以整理成带约束优化问题:
$$ \begin{aligned} &J(\beta^v)=\sum_{v=1}^V(\beta^v)^rg^v \\ &s.t. \sum_{v=1}^V \beta^v = 1 \end{aligned} $$
利用拉格朗日乘子法可以求解得出:
$$\beta^v=\frac{(g^v)^{1/(1-r)}}{\sum_{v=1}^{N_v} (g^v)^{1/(1-r)}}$$
LCMHC-based FKP representation
与DDBFL特征表示一致,本文把每张图片划分为不重叠的若干个区域,在每个区域进行特征的直方图统计,最后对比每个区域之间的chi-square距离,其实这么做在一定程度上也减少了图像平移所带来的影响。