基于正则化正交非负矩阵分解的旋转目标检测方法
2024-01-15谢余庆黄旭东胡丽莹
谢余庆,黄旭东,胡丽莹
(1.福建师范大学计算机与网络空间安全学院,福建师范大学数字福建环境监测物联网实验室,福建 福州 350117;2.维库(厦门) 信息技术有限公司,福建 厦门 361008)
目标检测是计算机视觉领域中的一个重要研究领域,它的目标是要在图像或视频中准确地识别和定位特定的目标物体,并在很多实际应用中具有广泛的应用,如自动驾驶、视频监控、人脸识别、物体识别等。旋转目标检测是在图像或视频中检测和定位目标物体时,考虑目标可能发生旋转的情况。在许多实际应用中,目标物体可能以不同的旋转角度出现,如交通标志、人脸、车辆等,因此产生了带旋转角度的目标检测的需求。此外在某些场景里,如工业生产或者计算资源有限的情况下,样本数一般比较少,深度学习方法通常需要大量的标注数据和高性能的计算设备来进行训练和推断。如何使得传统方法在小样本和计算资源有限的情况下仍然能够提供可靠的目标检测结果,这需要适应小样本的算法去解决旋转目标的检测问题。
Viola等[1]最早在2001年提出了基于级联分类器和Haar-like特征的目标检测方法,但其存在训练和检测速度较慢以及对光照变化敏感的缺点。Dalal等[2-3]提出将HOG(histogram of oriented gradients)特征应用于行人目标检测任务,HOG特征通过计算图像中局部区域的梯度方向直方图来描述图像中的目标特征,但复杂度较高也是其缺点之一。2014年,由Girshick等[4]提出基于深度学习的方法,引入了区域卷积神经网络(R-CNN)的概念,R-CNN利用深度卷积神经网络提取图像区域的特征,并使用支持向量机进行目标分类,R-CNN方法在训练和推理过程中的计算复杂度较高,它需要对每个候选区域进行CNN特征提取,并对每个候选区域进行独立的前向传播和后向传播操作。这导致了需要大量的样本支持,无法适用于小样本。
旋转目标检测是将具有旋转方向的目标检测出来,在俯视图的目标检测中比较常见,如遥感图像目标检测、航拍图像目标检测等。目前旋转目标检测的方法主要分为2种。第1种方法是在候选框中进行加入旋转因子,主要方法有基于深度学习的旋转区域候选框网络RRPN[5],它沿用了Faster-RCNN[6]中的RPN的思想(即使用其来生成候选区域),并在此基础上进行了改进。文献[7]就是在此基础上做出改进,虽然有不错的效果,但这种基于深度学习的方法,有着样本量需求大、训练时间长、解释性差等缺点,因此对小样本场景并不适用。第二种方法根据目标关键点进行检测,与影像的大小和旋转无关。主要方法有尺度不变特征变换(scale-invariant feature transform,SIFT)[8],一种用于图像处理领域的描述,这种描述具有尺度不变性,可在图像中检测出关键点,是一种局部特征描述子。文献[9]通过改进SIFT特征流程,使得检测人脸具有一定的效果,但SIFT算法对于光照变化、旋转、尺度变化等因素比较敏感,这些因素会影响到特征点的提取和匹配,从而影响整个算法的效果。
还有一些旋转目标检测的改进方法[10]采用HOG 特征来描述目标的局部纹理信息,并通过增强型随机蕨类(boosted random ferns)来进行目标分类,但增强型随机蕨类作为一种机器学习算法,需要充分的训练数据和调整参数来获得良好的分类性能,缺乏足够的训练数据或不合理的参数设置可能导致分类器性能不佳。本文旋转目标检测方法也采用HOG 特征来描述目标的局部纹理信息,因为它是基于梯度方向的统计信息,对于图像中的物体边缘和纹理等局部结构具有很好的描述能力。相比于像素级的特征表示,HOG特征对光照变化的影响较小,能够更好地区分目标和背景。同时HOG特征在计算过程中对图像进行了局部梯度计算和统计直方图的操作,这使得它对于目标在不同尺度下的表现具有一定的不变性,并且HOG特征主要关注局部边缘的方向信息,对于目标的具体形状不敏感。本文对复杂度较高的HOG进行特征提取再进行了训练检测。
一些经典的特征提取算法有局部保持投影(locality preserving projections,LPP)[11]、局部线性嵌入算法 (locally linear embedding,LLE)[12],主成分分析(principal component analysis,PCA)[13]、KPCA(kernel PCA)[14]等。PCA的基本思想是找到数据中具有最大方差的方向,即主成分,作为新的特征空间的基。这样,在新的特征空间中,数据的维度可以被大大减少,同时尽可能地保留了原始数据的信息。KPCA的基本思想是利用核技巧(kernel trick)将原始数据映射到一个高维的特征空间,然后在高维特征空间中进行PCA。通过这种方式,KPCA能够发现非线性数据中的主要成分,并进行特征提取处理。LLE的基本思想是通过将每个样本表示为其局部邻域样本的线性组合来进行特征提取。LPP的基本思想是通过最大化局部邻域内的样本之间的相似性,并最小化非局部邻域样本之间的距离,来实现数据特征提取。
非负矩阵分解(nonnegative matrix factorization,NMF)[15]是传统的机器学习特征提取方法之一,它适用于小样本场景,并且可解释性好、训练速度快、较高的准确率。Choi[16]等人提出正交非负矩阵分解算法(orthogonal nonnegative matrix factorization,ONMF),比原始的非负矩阵分解算法特征提取效果进行了提升,同时正交的概念让基矩阵中的特征之间更加独立,在用于目标检测的特征辨别中起到不错的效果,可以更好地适用于旋转目标检测中。针对ONMF可以把旋转后的图片主要特征集中表达在基矩阵中的优势,本文提出一种基于正则化ONMF(regularized orthogonal nonnegative matrix factorization,RONMF)的旋转目标检测方法。首先,为了更好地表征学习,将目标正样本图片旋转填充背景,接着将这些填充好背景的图片,提取梯度直方图特征[17],组成正样本矩阵;其次,为了使提取的特征更具有代表性,对正、负样本用本文算法进行特征提取;最后对提取后的特征进行训练分类。为了证明本文方法的有效性,本文设计了一些对比实验,结果表明本文方法具有可行性,并且优于其他检测方法。
1 非负矩阵分解算法相关知识
1.1 非负矩阵分解(NMF)
NMF是由Lee等[18]提出,传统的NMF问题描述如下:
(1)
(2)
1.2 正交非负矩阵分解(ONMF)
ONMF是在NMF的基础上增加了基矩阵正交的约束条件,由于正交约束的引入,ONMF能够更好地捕捉图像的局部特征。正交基矩阵可以看作是图像的原子或模板,每个基矩阵对应于图像中的一个局部结构或特征,这使得ONMF在图像分割、纹理分析和局部特征提取等任务中具有优势,能够更精确地捕获图像中的细节和局部信息。ONMF优化问题如下:
(3)
根据KKT条件,再基于斯蒂弗尔流型[20]进一步优化,得到W和H迭代公式如下所示:
(4)
(5)
ONMF要求分解得到的基矩阵W是正交矩阵,即W中的列向量(基向量)两两之间正交,这使得基向量更加稀疏且有强可解释性,有助于提取具有判别性的特征和减少信息重复和冗余。
2 基于RONMF的旋转目标检测方法
为了更好地表征学习,本文对没有角度旋转的图片先进行不同角度的旋转,之后对背景进行了填充。同时为了有效控制模型的复杂度,防止过拟合的发生,提出一种基于正则化ONMF(RONMF)的旋转目标检测方法。
2.1 旋转背景填充
图1 背景填充的部分旋转图片Fig.1 Partial rotated images with background fill
将目标正样本图片进行旋转并填充背景进行训练检测,该操作在旋转目标检测中有几个主要的目的和优势。通过旋转并填充背景,可以生成更多样化的正样本数据,有助于增加训练数据的多样性,提高模型的泛化能力和鲁棒性。旋转填充背景后,生成的正样本数据在旋转目标检测中具有旋转不变性,意味着检测模型可以在不同旋转角度下对目标进行有效的检测,而不会受到目标旋转带来的影响,对于处理实际场景中目标的姿态变化和视角变化非常重要。填充背景可以提供目标周围的上下文信息,这对于目标的定位和区分背景干扰物非常有帮助。填充背景还可以提供更多的环境信息,有助于模型更好地理解目标与周围环境的关系,并提高检测的准确性。部分旋转填充好的图片如图1所示。
2.2 RONMF算法
本文在ONMF的目标函数上加入了惩罚项,该惩罚项是由基矩阵和系数矩阵的F范数的平方之和构成。目标函数如式(6)所示:
(6)
加入F范数惩罚项可以促使分解矩阵中的部分元素趋向于零,从而实现稀疏性,这样的稀疏表示具有一定的特征选择能力,可以提取出更具有区分性和重要性的特征,也有助于解耦特征之间的关联性。通过引入F范数惩罚项,可以提高特征的独立性和互斥性,更好地捕捉到数据中的不同变化模式和特征维度。
下式为RONMF算法的乘法更新规则的推导,即目标函数(6)可以重写为:
(7)
其中,tr代表矩阵的迹。设φ和ψ为约束W和H的拉格朗日乘子,相应地,φ=[φij],ψ=[ψij],则拉格朗日函数L为:
L=J+tr(φWT)+tr(ψHT)。
(8)
L对W和H的偏导分别为:
(9)
(10)
由KKT条件,令φijwij=0和ψijhij=0,可以得到以下关于wij和hij的等式:
(VHT+W)ijwij-(WHHT+WWTW+λW)ijwij=0,
(11)
(WTV)ijhij-(WTWH+λH)ijhij=0,
(12)
因此,可以推导出W和H的迭代公式如下:
(13)
(14)
RONMF算法伪代码如下:
1 r∶= 2 初始化中间维度2 k∶= t 初始化需要达到的中间维度3 M0∶=DATASET 加载数据矩阵4 W0=rand(m,r) 随机初始化基矩阵W5 H0=rand(r,n) 随机初始化基矩阵H6 while(r<=t)7 W0,H0=RONMF(W0,H0,M0) 按照迭代公式(13)、(14)计算H0 和W08 r = r∗29 W0=hstack(W0,W0) 将两个W0水平方向上拼在一起,以便下一次迭代更好地表征10 do if(r<=t)11 thenH0=rand(r,n) 重新生成随机矩阵H012 end if13 end while14 输出W0、H0
RONMF迭代的时间复杂度为O(log2(k)n),其中n是迭代次数,k为初始化需要达到的中间维度。
2.3 基于RONMF算法的旋转目标检测方法
旋转目标检测方法旨在识别并定位具有不同旋转角度的目标物体,使其在不同角度下具有较好的检测性能。基于RONMF算法的旋转目标检测方法步骤如下:
(1)先将正样本的图片进行每α度的旋转填充,再将旋转后的正样本和负样本的HOG特征分别提取成Vpos∈R3 780×n和Vneg∈R3 780×m2个矩阵,其中3 780是HOG特征的维度,n和m分别代表正负样本的数量。
(2)对正、负样本用RONMF算法进行特征提取,得到基矩阵W和系数矩阵H,基矩阵可以用来表示目标在不同旋转角度下的特征,系数矩阵表示基矩阵特征系数的权重。用RONMF分解Vpos得到基矩阵Wpos∈R3 780×k,k为初设的中间维度,再通过公式(15)和(16)得到Hpos∈Rk×n和Hneg∈Rk×m。
(15)
(16)
其中,Wpos是正样本的基矩阵,样本矩阵分别用的是正样本的Vpos和负样本的Vneg。
(3)对提取后的特征进行训练分类,并用基于滑动窗口的预选框机制框选出目标对象。提取到Hpos和Hneg系数矩阵特征后,放到SVM里面进行二分类的训练,训练好模型之后,对于测试集,首先提取待检测区域的HOG特征,得到HOG特征描述子descriptors∈R3 780×1的向量,然后利用Wpos∈R3 780×k,得到:
(17)
再将Htest放进SVM里面进行检测,如果与正样本匹配度高则标记为正样本,框选目标区域。同时一个区域若有多个预选框,则使用NMS非极大值抑制,选出最合适的那个预选框。
对目标进行检测判别是否为目标对象实际上就是分类任务。进行检测判别必须先提取其特征,因本文提取的特征为HOG特征,而HOG特征一般比较复杂,由于RONMF的基矩阵W能够很好地保存原始数据的主要特征且W中元素比较稀疏,所以用RONMF算法对旋转后的图像集合HOG特征进行特征学习,提取其关键部分的特征并进行训练。本文旋转目标检测方法的具体流程如图2所示。
图2 旋转目标检测方法流程Fig.2 The flowchart of the rotating object detection method
3 实验分析
本次实验在处理器为Intel(R)Core(TM)i7-10700,显卡为NVIDIA GT 710的硬件环境下进行测试,算法运算过程在python3.9的软件环境下进行。所有特征提取方法均是将原来HOG特征的特征提取后进行训练比较,其中LLE和LPP的搜索样本近邻的个数设为30,其他均为默认参数。
3.1 实验数据
因工业数据集MVTEC具有许多带旋转角度的图片,且数量也较多,所以本文选取其作为结果对比,为了进一步验证RONMF算法的有效性,同时选取人脸数据集 ABERDEEN、CMU、FDDB、FERET、MIT、ORL、PE加以验证。数据集主要参数如表1所示,部分图片如图3所示。
表1 8个数据集主要参数Tab.1 The main parameters of eight datasets
(1)MVTEC数据集是一个常用的机器视觉和物体检测的工业数据集,共包含3 466张无标注图,其中螺丝图片大小为700×700像素,该数据集由德国斯图加特大学计算机视觉研究组维护和发布,MVTEC数据集旨在提供具有丰富多样性的现实世界物体图像,用于评估和比较不同目标检测和图像分割算法的性能。数据集下载地址:https:∥www.mvtec.com/company/research/datasets/mvtec-ad/。
(2)ABERDEEN人脸数据库包含了100多个人,每个人拥有5张左右的人脸图片,都以人名命名,总共629张,全部为彩色图片。
(3)CMU人脸数据库包含2 429张灰色人脸图像,该数据集由卡内基梅隆大学(Carnegie Mellon University)的机器学习研究者和计算机视觉专家创建。数据集下载地址:http:∥vasc.ri.cmu.edu∥idb/html/face/frontal_images/index.html。
(4)FDDB数据集中共包含了2 845张图片,其中1 100张图片被标注为包含人脸,每张图片的人脸数量也不相同,总共涵盖了5 171个人脸,它由马萨诸塞大学阿默斯特分校的计算机视觉研究团队创建。数据集下载地址:http:∥vis-www.cs.umass.edu/fddb/。
图3 8个数据集的部分图片Fig.3 Partial images from eight datasets
(5)FERET数据集包含来自1 190名不同人的照片,每个人的照片数量不等,平均约为7张,最多有22张。每张照片都包含头部和肩膀部分的图像,并提供了人脸标记和额外的元数据(如性别、年龄、种族等)。总共有22 000多张图像,本文实验代表性的选取其中1 400张。该数据集由美国国防部高级研究计划局(DARPA)资助,并由美国海军研究实验室(NRL)创建和维护。数据集下载地址:http:∥www.itl.nist.gov/iad/humanid/feret/。
(6)MIT人脸数据集是一个经典的人脸识别数据集,由麻省理工学院的计算机科学和人工智能实验室创建,该数据集包含400多个人的图像,其中每个人都有10张照片,每张照片都被手动标记,并包含了头部和肩膀的图像。该数据集中的人脸包含了不同的姿态、表情、光照和遮挡情况,以测试人脸识别算法的鲁棒性和准确性,本文实验代表性的选取其中2 705张。数据集下载地址:http:∥cbcl.mit.edu/software-datasets/heisele/facerecognition-database.html。
(7)ORL人脸数据集是一个常用的人脸识别数据集,由意大利的Olivetti Research Laboratory创建,该数据集包含了40个不同人的照片,每个人都有10张照片,每张照片都是灰度图像,大小为92×112像素,该数据集中的人脸图像采集于不同的姿态、表情、光照和遮挡条件下,以测试人脸识别算法的鲁棒性和准确性。数据集下载地址:http:∥www.cl.cam.ac.uk/Research/DTG/attarchive:pub/data/att_faces.tar.Z。
(8)PE数据集共包含300个三维人脸模型和纹理贴图,该数据集包含了15个不同人的三维人脸模型和纹理贴图,每个人都有20个不同的姿态和表情的模型。这些模型是通过使用结构光三维重建系统获取的,以捕捉人脸的形状和纹理信息。数据集下载地址:https:∥www.princeton.edu/engineering/research/stcav/research/facial-recognition/。
本文提取的特征是HOG特征,故所有图片尺寸均转换成128×64像素,保持提取图片的特征向量维数为3 780维。这种表示方式可以更好地捕捉图像中的细节和纹理信息,提供丰富和准确的图像描述。
为了测试本文算法在特征学习后的有效性,使用SVM(支持向量机)对结果进行分类测试,本文在SVM训练结果的评价中采用准确率的指标,将数据集按照7∶3的比例分为训练集和测试集。准确率公式如下所示:
Accuracy=(TP+TN)/(TP+TN+FP+FN),
(18)
其中,TP表示真正例(true positive),即实际为正样本且被正确预测为正样本的数量;TN表示真负例(true negative),即实际为负样本且被正确预测为负样本的样本数量;FP表示假正例(false positive),即实际为负样本但被错误预测为正样本的样本数量;FN表示假负例(false negative),即实际为正样本但被错误预测为负样本的样本数量。
3.2 性能对比实验
表2是工业数据集MVTEC的检测结果,取30张正样本图片,其中10度代表每旋转10度提取1次HOG特征向量加入正样本矩阵进行训练。正负样本数量比为1∶3,这样可以使模型达到比较好的性能,以下数据均是分别进行了10次实验得到的平均结果。
表2 不同方法和不同旋转角度对工业数据集MVTEC的平均检测准确率Tab.2 Average detection accuracy of industrial dataset MVTEC using different methods and rotation angles %
由表2可知,RONMF算法在不同角度的图像训练中都有着不错的效果。因为旋转后的图片特征并不是都集中在一块区域,图片经过不同角度的旋转之后,特征位置也相应发生了变化。RONMF算法可以把旋转后的图片主要特征集中表达在基矩阵中,如果把基矩阵看成分块矩阵的话,每一个分块矩阵都是图片的部分主要特征,并且RONMF算法的目标函数中加入了F范数惩罚项,使得主要特征之间相互独立,基矩阵更加稀疏,主要特征得到了比较好的保留,从而在检测的时候,RONMF算法能比其他算法实现更好的识别准确率。
因人脸特征较多,具有代表性,故为了进一步验证本文方法的有效性,本文在旋转的人脸数据集也进行了实验。实验结果如表3所示,其中10度代表每旋转10度提取1次HOG特征向量加入正样本矩阵进行训练。
表3 不同方法和不同旋转角度对人脸数据集的平均检测准确率Tab.3 Average detection accuracy of face datasets using different methods and rotation angles %
由表3知,本文方法在旋转人脸的图像训练中也有着不错的效果。
本文方法在旋转度数为15度时训练出的模型会有比较好的检测效果,旋转人脸检测的部分结果如图4、图5所示。
图4 检测结果1Fig.4 Test result 1
RONMF算法在非旋转的目标检测情况下也有不错表现,在不同数据集上的平均检测准确率对比实验结果如表4所示。
表4 不同方法在不同人脸数据集(未旋转)上的平均检测准确率Tab.4 Average detection accuracy of different methods on different facial datasets (not rotated) %
从表4可知,CMU数据集均为较小的图片人脸,所以LLE局部线性嵌入算法会有比较好的效果,FDDB数据集会有多个人脸在一张图片中,用kernel的PCA去映射得到的低维特征在训练集里更具有代表性,但是存在着泛化性较差的问题。MIT和ORL均为灰度图片,且均为人脸正面,用局部投影LPP的方法会有较好的结果。ABERDEEN,FERET数据集包含不同颜色的人脸正面图片,结果具有一定的泛化性。PE数据集包含人的肩部以上位置,同时也有侧脸的图片,表4结果也说明本文方法在提取图片的关键特征的能力也是比其他方法更优。
由表5可知,在MVTEC的对比实验中,RCNN需要1 211 s才能使准确率达到99.45%,而本文方法仅需要30.816 s即可完成模型训练。而人脸数据集的图片训练,RCNN需要4个epoch,花费2 391.87 s才能让准确率达到99.4%,而本文算法仅需要161.28 s,也可使准确率达到99.30%。
表5 训练时间对比Tab.5 The comparison of training time s
4 小结
本文对正样本进行旋转背景填充,再基于正则化正交非负矩阵分解(RONMF)算法实现旋转目标检测。它是一种实现旋转不变性的目标检测方法。不仅可以对旋转后的目标进行准确的检测,还具有较好的鲁棒性。本文旋转目标检测方法的实现步骤包括对包含多个图像的数据集进行旋转变换,对每个图像及其所有旋转变换后的图像进行RONMF分解,计算待检测图像在不同旋转角度下的重构误差,将重构误差作为该图像在对应旋转角度下的置信度,最终对所有旋转角度下的置信度进行融合得到目标的检测结果。该方法相比于基于特征提取算法的目标检测方法(如LLE、LPP、PCA、KPCA等)的优点在于可以同时学习基向量和系数,避免了对基向量的选择和系数的计算。同时,具有良好的鲁棒性和可解释性,并且可以应用于不同类型的数据集。然而,本方法也存在一些缺点,如计算复杂度有待优化。
虽然基于RONMF的算法对简单背景的旋转目标检测有着不错的效果,但是复杂背景的旋转目标检测仍然是一项难题,复杂背景的噪音、图片光照等因素会影响算法的精度。今后将研究复杂背景的旋转目标检测方法,预计通过复杂背景预处理算法以及与NMF相融合算法的研究,提升整体算法的识别精度和背景抗干扰能力。