APP下载

基于约束总体最小二乘的单应性矩阵求解方法

2022-12-11孙海迅罗健欣潘志松张艳艳郑义桀

计算机技术与发展 2022年12期
关键词:内点乘法像素

孙海迅,罗健欣,潘志松,张艳艳,郑义桀

(陆军工程大学 指挥控制工程学院,江苏 南京 210001)

0 引 言

单应性矩阵反映了空间中的点在两个投影平面的坐标变换关系,在图像拼接[1]、三维重建[2]等计算视觉领域有广泛应用。

在多视图几何中,单应性矩阵求解的一种经典方法是基于图像特征点匹配的随机抽样一致性算法(RANSAC)[3]与总体最小二乘(Total Least Squares,TLS)[4]相结合的方法。其中,特征点匹配主要是找到不同视角的图像上特征点的对应关系,特征点检测可采用SIFT[5]、SURF[6]等方法;RANSAC算法的作用主要是从特征点对中消除误匹配,准确找出正确的匹配对(内点),根据内点的对应关系构造线性方程组用TLS求解。

由于经典RANSAC方法存在迭代次数多、需要人为定义内点阈值等问题,研究人员提出了多种鲁棒方法[7-14]。例如将RANSAC求解过程与贝叶斯方法结合起来的MAPSAC[8],应用图分割方法进行局部优化的GC-RANSAC[9],通过加权最小二乘拟合优化求解的MAGSAC[10]及其改进版本MAGSAC++[11],将各种现有RANSAC类方法进行了有机融合的USACv20[12]。另外,还有利用特征点的几何位置关系进行误匹配滤除方法,如文献[7]提出了一种基于改进RANSAC的方法,利用了特征点的距离信息;文献[13]利用四个特征点构成的几何形状,提出了一种基于保序性约束和相似性度量的估计方法;文献[14]提出了一种单应性矩阵自适应估计方法,克服了RANSAC需要人为设置阈值的缺点。

当前求解单应性矩阵各种方法的研究重点大都在于如何滤除误匹配点得到内点,在得到内点后采用传统的TLS方法求解线性方程组,而对于内点噪声普遍较大的情况下,如何精确求解单应性矩阵研究较少。事实上,当内点坐标比较准确时,用TLS方法能准确求解单应性矩阵,而当内点噪声较大时,用TLS求解精度会有所下降。本文针对以上问题,对方程组中噪声矩阵的结构进行分析研究,充分考虑到噪声列之间的相关性,提出了一种基于约束总体最小二乘(CTLS,Constrained Total Least Squares)[15]的单应性矩阵优化求解方法。

1 单应性矩阵

如图1所示,若空间中一平面π方程为:nTX+d=0,其中,n∈R3×1表示平面法向量,X∈R3×1表示平面上任一点的三维坐标,d∈R3×1为一常数向量,文中上标T均表示矩阵或向量的转置,上标-1均表示矩阵的逆;图中O1、O2为两个相机的光心,R∈R3×3、t∈R3×1为相机的旋转矩阵和平移向量。

图1 空间中平面在不同视角投影示意图

则空间点X对应的两幅图像上的投影像素x1,x2∈R3×1有如下关系:

(1)

(2)

当匹配点对大于4对时,令H33=1,并构建方程组Ax=b,即:

(3)

其中,上标(i)表示第i对匹配点。求解以上方程的经典方法是TLS,即认为在系数矩阵A∈R2n×8和向量b∈R2n×1同时含有高斯噪声,对应的噪声矩阵和噪声向量分别为E和e,于是将方程重新构造为:

(A+E)x=b+e

(4)

B=UΣVT

(5)

最小奇异值对应的右奇异向量V8=(v0,v1,…,v8)T∈R9×1,则方程组的解为:

(6)

以上方法虽然速度较快,但单纯假设系数矩阵A上存在高斯噪声并不符合方程的原型,通过观察发现,A的某些元素(如第3列与第6列)是常数,不存在噪声。另外,A的最后两列是两个坐标相乘的形式,叠加在其上的噪声并不是高斯噪声。

2 约束总体最小二乘

约束总体最小二乘法(CTLS)常被作为对经典TLS和普通最小二乘法(Ordinary Least Squares,OLS)的一种改进方法,在国内也有相关的研究[16-20]。文献[17]提出了一种基于CTLS的到达时差到达频差无源定位算法,降低了定位误差;文献[20]还将CTLS应用于点云拼接,提高了参数求解精度。

对于单应性矩阵的求解,更合理的方法是考虑到A与b上噪声列的相互关系,将方程求解问题重新构造为CTLS问题,即假定高斯噪声存在于像素坐标(u2,v2)T和(u1,v1)T上,所有的噪声形成一个基本的噪声向量w,而叠加在B上的噪声矩阵D的每一列都可以由w生成,它们具有一定的线性关系,即可写成如下形式:

D=[F0w,F1w,…,F8w]

(7)

其中,F0,F1,…,F8为不同的系数矩阵,则根据文献[15],这一CTLS问题的求解即变成如下的优化问题:

(8)

并且可以通过最小化以下损失函数得到方程解:

(9)

其中,

(10)

具体实现方法如下:

设第i对匹配点的像素坐标为:

i=0,1,…,n-1

(11)

叠加在其上的高斯噪声为:

(12)

于是,可得基本的噪声向量:

(13)

设bj为矩阵B的第j行,则bj对si的雅各比矩阵(一阶偏导数)为:

Jsibj=

当j=2i,i=0,1,…,n-1

(14)

Jsibj=

当j=2i+1,i=0,1,…,n-1

(15)

于是,叠加在B的第k列的一阶噪声扰动可表示为:

Dk=Fkw∈R2n×1,k=0,1,…,8

(16)

(17)

(18)

(19)

(20)

(21)

于是,便可以利用梯度下降法进行优化求解,损失E对z的梯度为:

Jsibj·z)

(22)

Jsibj·z)

(23)

另外,为增强计算的鲁棒性,常采用归一化图像坐标进行计算,归一化的方式为:

(24)

其中,u、v表示归一化之前的像素坐标,l表示图像的像素宽度,u0、v0表示图像中心点的像素坐标,归一化之后的图像坐标介于[-0.5,0.5]。

3 实验结果

3.1 合成数据实验

为了对比实验效果,在此加入其他两种方法——OLS和数据最小二乘法(Data Least Squares,DLS)。OLS的求解可在通用矩阵教材中找到,DLS的求解由文献[21]给出。

对于最小二乘问题Ax=b各种求解方法总结如下:

(1)普通最小二乘法(OLS)。

xOLS=(ATA)-1ATb

(25)

(2)数据最小二乘法(DLS)。

(26)

其中,vDLS是矩阵Pb·A最小奇异值对应的右奇异向量,Pb=(I-b(bTb)-1bT)是一投影矩阵,I是单位矩阵。

(3)总体最小二乘法(TLS)。

(27)

其中,vTLS是矩阵B=(A|b)最小奇异值对应的右奇异向量,vlast是vTLS的最后一位元素。

(4)约束总体最小二乘法(CTLS)。

(28)

相关符号说明见公式(10)。

评价标准为:

(1)平均坐标转换损失。

Transfer Loss=

(29)

其中,n表示匹配点对的数量,上标(i)表示第i对匹配点,合成数据采用n=50。

(2)与真实H0矩阵之差的Frobenius范数平方。

(30)

从图2中可以看出,当噪声较小时,四种方法都能求解准确,噪声标准差在1~5像素时,四种方法的平均坐标转换损失在4个像素以下,且互相之间的求解结果相差不到1像素;但随着噪声标准增大,CTLS的平均坐标转换损失小于其他几种方法,且相同条件下δH的Frobenius 范数也较小。

单应性矩阵中不同元素的偏差对坐标转换的影响不尽相同,所以δH的F范数与相应的坐标转换损失没有严格的正相关关系,如图2所示,但在噪声相同的情况下,δH的F范数仍能从一个侧面反映出四种方法的求解精度。

3.2 真实图像上实验

单应性矩阵常用在图像拼接上,下面选取在不同视角下拍摄的图像。首先利用SURF提取特征点,用RANSAC去除误匹配,再分别用以上OLS、TLS、CTLS三种方法求单应性矩阵(从实验3.1发现DLS与TLS求解结果接近,下面不再单独展示),用单应性矩阵对图像拼接,拼接的结果可以从直观上验证H矩阵的求解精度。

图2 合成数据下4种方法的平均坐标转换损失对比与δH的F范数平方对比

由于SIFT、SURF等方法在清晰图像上的特征点检测比较准确,包含在特征点图像坐标上的噪声较小,经典的TLS可以将图像拼接的较为准确。但对于模糊图像,由于噪声影响,特征点检测变得不准确,拼接效果会打折扣,下面选取两组图像,第一组中相机位置只进行旋转,第二组中相机位置变化主要是平移。对每组中第二幅图采用不同的滑动窗口进行均值模糊(5-10),在特征点匹配的基础上,分别用求单应性矩阵并拼接,为对比实验效果,未对图像接缝处采取平滑处理。

对第一组图像,实验发现,OLS对图像的拼接结果存在错位(框处),TLS虽能拼接准确,但右侧建筑出现了倾斜和形变,CTLS拼接效果较好,如图3、图4所示。

图3 待测图像(右图经过均值模糊(滑动窗口10*10))

图4 不同方法对图3的拼接结果(上:OLS,中:TLS,下:CTLS)

第二组图像拼接对比结果如图5与图6所示,用OLS和TLS拼接结果都出现错位,CTLS能对图像拼接准确。

图5 待测图像(右图经过均值模糊(滑动窗口5*5)(原图来自ETH3D数据集[22]))

图6 不同方法对图5的拼接结果(上:OLS,中:TLS,下:CTLS)

4 结束语

在计算机视觉领域,单应性矩阵常用来表示两个平面的坐标变换关系。传统的基于RANSAC和TLS的求解方法在某些情况下的求解精度会下降,而当前关于特征点坐标噪声较大时的求解方法研究较少。该文在文献[4]和文献[15]的基础上,提出了一种基于CTLS的单应性矩阵求解方法,将像素坐标上存在高斯噪声作为基本假设,考虑了噪声矩阵列之间的相关性,并给出了具体求解步骤。分别在合成数据和真实图像上验证算法的求解精度,证明了在特征点噪声误差较大的情况下,基于CTLS的单应性矩阵求解要优于经典的TLS与OLS、DLS方法。另一方面,由于CTLS问题目前还没有闭式解,只能通过梯度下降等优化方法求解,速度不如求解TLS等其他方法快。未来对于CTLS求解速度的提升具有一定的研究价值。

猜你喜欢

内点乘法像素
算乘法
像素前线之“幻影”2000
我们一起来学习“乘法的初步认识”
拓扑空间中五类特殊点的比较
《整式的乘法与因式分解》巩固练习
把加法变成乘法
“像素”仙人掌
区分平面中点集的内点、边界点、聚点、孤立点
ÉVOLUTIONDIGAE Style de vie tactile
基于罚函数内点法的泄露积分型回声状态网的参数优化