随着元宇宙、虚拟现实、数字孪生等概念的发展,为了让三维的虚拟物体离开二维的平面显示器,并出现在物理世界中,增强现实技术也逐渐受到关注.如何实现环境稳定的三维注册,让增强现实从实验室内走向户外,让虚拟世界无形地融入到真实世界中,始终都是亟须解决的问题.以前三维注册通过在场景中布置平面二维码标记并使用相机进行定位[1],这样做破坏了原始的场景,丧失了对于新场景的应变能力.现在则是通过提取图像中的点[2]、线[3]、图像块[4]等自然纹理特征进行定位,例如SIFT[5],SURF[6],AKAZE[7]和ORB[8].它们是根据经验设计的,稳定性很容易受到环境变化的影响,从而导致跟踪注册失败.鉴于深度卷积神经网络对图像出色的特征提取能力,其也被用于提取特征点.Revaud等[9]将检测和描述联合学习,在检测过程中同时考虑显著性与置信度,得到可重复和可区分的特征点.Luo等[10]使用可变形卷积提取图像的局部形状,从而提高几何不变性,并融合多尺度特征图信息提高精度.Zhou等[11]提出了一种两阶段的网络,在第一个阶段得到图像块之间的匹配,在第二个阶段利用置信度分类和图像块中心的匹配细化,得到像素之间的匹配.张少鹏等[12]在L2-NET的基础上引入多尺度卷积核可变形卷积,并添加卷积注意力机制和坐标注意力机制,使特征点提取更加准确.特征点易受光照变换与视角变换等的影响,为了实现环境稳定的三维注册,设计了FNET网络提取特征点,并共享编码器的特征空间生成描述子;之后根据特征点与描述子建立二分图模型,使用最优匹配算法完成图像匹配;最后基于FNET和二分图匹配实现三维注册.1 特征点网络FNET基于人体姿态估计的序贯模型,提出了单输入多输出的特征点提取网络,即输入为单通道图像,输出为特征点与描述子.在特征点检测骨干网络上引入描述子并行分支,对具备强耦合性依赖关系的特征点与描述子同时进行处理,根据描述子的相似度完成特征点匹配,完成三维注册.1.1 特征点检测模块特征点检测模块采用了编码器-解码器结构,并且进行跨层拼接(Concat),融合了低层信息与高层信息,提高网络应对视角变换的能力.在编码器中使用卷积重参数化(Reparameter,Rep)模块提取不同光谱特征,提高特征点的光照不变性.编码器包含了3个EncodeConv模块,模块均进行2倍下采样压缩空间信息,扩大感受野,第一和第二个EncodeConv模块输出特征图通道为64,分别起到了升维和跨通道信息融合的作用,第三个EncodeConv模块输出特征图通道为128,通过升维得到语义信息更丰富的特征图.解码器将融合特征图各通道的信息,增加特征图的分辨率,从而进行像素预测.解码器包含了3个DecodeConv模块,均进行了2倍上采样与通道压缩.在第一个和第二个DecodeConv模块之后将浅层的特征图与当前特征图在通道维度进行拼接,最后通过两个卷积层融合各特征图信息并进行降维后输出.EncodeConv模块包含了3个3×3的卷积重参数化RepConv模块,第三个RepConv模块的步长设置为2实现2倍下采样.如图1所示,RepConv模块将训练用和推理用的模型解耦.在训练阶段,引入了1×1卷积和恒等映射的残差连接防止梯度消失,在不同感受野下提取图像不同光谱的特征.在推理阶段,首先将卷积层和批归一化层融合,得到新的卷积权重和偏置,再将1×1和恒等映射的分支填充为3×3的卷积核进行合并,简化网络结构.新的卷积权重和偏置分别为10.13245/j.hust.230122.F001图1卷积重参数化模块W'=γW/σ;b'=-μγ/σ+β,式中:μ和σ为批归一化层的均值和方差;γ和β为尺度因子和偏移因子矩阵;W'和b'为合并后的卷积权重和偏置矩阵.DecodeConv模块包含了2个3×3的深度可分离卷积与1个转置卷积,转置卷积用来进行2倍上采样,从而提高特征图的分辨率,有利于与低层的特征图在通道维度上进行拼接,融合深层的语义信息与浅层的空间几何细节,增强网络深层级的表达能力,完成像素级的预测.每个模块中的第一个卷积核用来改变模块输出特征图的通道,使得特征图与下一个模块的输入通道数相同,并且网络中的任意一个卷积运算之后,都添加了批归一化层与非线性激活函数ReLU.1.2 描述子生成模块描述子生成模块是一个解码器网络,它采用与特征点检测模块共享的编码器网络,并且添加了改进的金字塔模块(pyramid pooling module,PPM)聚合图像的空间上下文信息,得到表达能力更强的描述子,提高特征点的稳定性.改进的PPM模块在原始PPM模块的基础上,调整平均池化金字塔尺寸为1,2,4,8,对应栅格的8×8图像区域信息,相邻两层之间下采样倍率相差2倍,其中尺寸为8的池化层为全栅格平均池化.原图像通过编码器进行8倍下采样后,在该分支中先通过3×3卷积升维得到256个通道的特征图,特征图的每个栅格代表了对原图像进行8×8区域的分块;通过改进PPM模块聚合每个栅格的空间上下文信息;经过3×3卷积进一步解码聚合得到图像的稀疏描述子;之后通过双三次插值恢复分辨率,L2归一化得到图像的稠密描述子.1.3 特征点匹配模块提取出特征点与描述子后,对查询图像和训练图像的特征点进行匹配.假设查询图像和训练图像的特征点集合分别为S和T,不妨设S≥T.使用集合S和T构造二分图G=S⋃T,E.边集E定义为:对于图G的任意两个顶点si和tk,当且仅当满足条件si∈S,tk∈T时才连接一条边,权值为w(si,tk).边权w定义为w(si,tk)=dmax-d(si,tk),式中:d为描述子的欧式距离;dmax为图G中最大的欧式距离.查询图像和训练图像中检测到的自然特征点分别作为二分图的两个点集合,对应相同图像的点之间不连边,对应不同图像的点相互连边.图像匹配问题就转化成了一个二分图问题,通过寻找集合S到T之间的单射ζ:S→T,最大化权值和∑(si,tk)∈ζw(si,tk).特征点匹配模块的算法KMIM流程如下所述.步骤1 若ST,则增加虚点和虚边使S=T,为虚边或权值大于50时,不进行考虑;步骤2 设置集合S的顶点标号l(si)=maxw(si,tk),T的顶点标号l(tk)=0,标号满足l(si)+l(tk)≤w(si,tk);步骤3 选取满足w(si,tk)=l(si)+l(tk)的边与对应顶点构成相等子图Gl;步骤4 使用Kuhn-Munkres(KM)算法[14]求解二分图Gl的最大权匹配;步骤5 若KM算法的增广路不饱和于S,则更新增广路上的顶点标号,S的标号l(si)=l(si)-c,T的标号l(tk)=l(tk)+c,返回步骤3,其中c为增广路上的最小可调整标号minl(si)+l(tk)-w(si,tk);步骤6 若KM算法的增广路饱和于S,则匹配完成,算法结束.假设S=T=N,且特征点提取模块中按响应值大小选择前200个特征点.KMIM算法遍历相等子图Gl中集合S的点,根据步骤1中设置的权值阈值,最好的情况下所有的边都不考虑,相当于遍历了所有的边,时间复杂度O(n2);最坏的情况下每个点都可以寻找到一条增广路,时间复杂度O(n3).模块构造的基本是稀疏二分图,加快了求解速度.1.4 多任务损失函数图像输入网络可以得到特征点和描述子,使用MagicPoint网络标注原始图像与其经过单应性变换的图像的特征点,对网络进行训练.损失函数为L(X,X',Y,Y',D,D',M)=Ldet(X,Y)+Ldet(X',Y')+λLdes(D,D',M),式中:XH×W×2和DH×W×256为原图像的特征点与描述子;YH×W×1为原图像的特征点标签;X',Y',D'为变换图像对应的值;MH×W×H×W为相似度矩阵;λ为用于平衡两部分损失的权重;Ldet为特征点检测误差,使用分类交叉熵损失,具体为Ldet=1HW∑i=1H∑j=1WYi,jldet(Xi,j,1)+(1-Yi,j)ldet(Xi,j,2),ldet(Xi,j,k)=-logexpXi,j,k/∑CexpXi,j,C;Ldes为描述子误差,使用合页损失函数,具体为Ldes=(HCWC)-2∑h,wHC,WC∑h',w'HC,WCldes(Dh,w,Dh',w',Mh,w,h',w'),ldes(d,m)=λdmmax(0,1-dTd)+(1-m)max(0,dTd-0.2),其中,λd为加权项,用来平衡正确匹配与错误匹配,dTd为描述子的余弦相似度,Mh,w,h',w'=1     Hphw-ph'w'≤8,0     (其他),H为两幅图像的单应变换矩阵.假设在数字空间中,一点[XW,YW,ZW]T,投影到显示器上的像素坐标为[u,v]T,根据世界坐标系到像素坐标系的转换关系,即ZC[u,v,1]T=K[R,T][XW,YW,ZW,1]T,式中:K为3×3的相机内参矩阵,对相机进行标定获得;R为3×3的旋转矩阵;T为3×1的平移矩阵;ZC为尺度因子.位姿矩阵[R,T]可以通过图像特征点匹配后,求解单应矩阵分解得到.2 实验结果与分析实验的配置为:内存大小8 GB,显卡NVIDIA RTX 2080Ti,显存大小11 GiB,使用Pytorch1.11.0,视觉库OpenCV-Python 4.2.0.设置批大小为8,使用Adam优化器,学习率为0.000 1,平滑系数β=(0.9,0.999),不设置权重衰减,非极大值抑制图像块大小为4,使用角点检测网络MagicPoint[15]标注COCO2014训练集,将标注好的图片作为本网络的训练数据,迭代训练2×105轮.在训练网络前,使用区域插值的方法对图像下采样得到240×320的灰度图,再添加随机亮度、随机对比度、斑点噪声、高斯模糊、运动模糊等进行数据增强.2.1 特征点检测实验使用HPatches数据集[16]进行特征点检测实验,其中包含了116组不同场景的图片,每一组中有具有1张原始图像与5张变换后的图像,其中亮度变换57组,视点变换59组.使用不同特征点检测方法进行对比,计算可重复率如下.其中可重复率R定义为两幅图像A和B上检测到的相同特征点占总特征点的比率,具体为R=xA|LAB3+xB|LBA3/(m+n),式中:m为图A中的特征点数;n为图B中的特征点数;L为特征点定位误差;xA和xB为图像A和B的特征点坐标;LAB=xA-HABxB2为图像B的点经过变换后与图像A的点之间的误差,为平面图像B到图像A的单应变换矩阵;LBA=xB-HBAxA2为图像A的点经过变换后与图像B的点之间的误差.表1中SIFT和ORB是目前较为出色的传统特征点算法,Superpoint,R2D2,Patch2Pix和FNET为神经网络的特征点算法.SIFT和ORB光照变换和视角变换下的可重复率相比于神经网络较低,特征点稳定性较差.ORB的整体可重复率高于Superpoint和R2D2,但是提取的特征点比较集中,不利于位姿估计.尽管Superpoint和R2D2方法的可重复率较低,但它们提取的特征点均匀地分布在图像上.10.13245/j.hust.230122.T001表1HPatches数据集中不同特征点方法可重复率方法光照变换可重复率光照变换可重复率整体可重复率SIFT[5]49.952.549.5ORB[8]47.240.459.9Superpoint[13]63.148.458.1R2D2[9]59.340.252.8Patch2Pix[11]79.744.360.4FNET(本文)67.755.961.7%Patch2Pix的光照变换可重复率是最高的,但视角变换可重复率并不高.由于一阶段网络输入是图像块,能在一定程度上避免光照影响,但是忽略了整体的联系,在视角变换下效果较差,对比神经网络方法,仅次于Superpoint和本文方法.提出的FNET光照变换可重复率仅次于Patch2Pix,视角变换可重复率最高,总体可重复率最高,说明FNET方法提取的特征点比较稳定,具有出色的像素级别定位能力.表2对网络各模块作用进行分析,其中Concat指的是在编码器与解码器之间引入跨层连接,Rep+dwConv指的是将编码器的卷积层替换成卷积重参数化模块,将解码器的卷积层替换成深度可分离卷积.PPM指的是在描述子分支添加金字塔池化模块.添加Concat之后,光照变换可重复率和视角变换可重复率均提高,这是因为浅层的几何细节不容易受视角变换的干扰,并且引入了跨层连接,防止网络过拟合;在添加Rep+dwConv后可以提升光照变换可重复率,但视角变换可重复率和整体可重复率略微降低,因为多尺度特征融合了不同大小的感受野,提高了局部环境的感知能力,从而提高了应对光照变换的稳定性,但是模型压缩特性会使得网络预测结果有所降低;添加PPM聚合空间上下文信息能提高描述子的表达能力,由于特征点与描述子的依赖关系,使得特征点可重复率得到提高.同时添加上述模块,所有指标均达到最高.10.13245/j.hust.230122.T002表2HPatches数据集中FNET消融实验ConcatRep+dwConvPPM光照变换可重复率视角变换可重复率整体可重复率不用不用不用64.5149.7659.13使用不用不用65.6455.4960.47使用使用不用68.1854.5160.24使用不用使用67.1656.5560.74使用使用使用67.7055.9461.72%2.2 特征点匹配实验使用KMIM算法、暴力匹配(BF)、OpenCV的快速近似最近邻库(FLANN)进行特征匹配,在HPatches数据集上对比分析.图2和图3分别表示光照变换与视角变换下的图像匹配效果.第一行的两张图片使用FLANN算法,第二行的两张图片使用KMIM算法.匹配中左边的是原始图像,右边的是经过变换后的图像.两幅图像之间的连线表示一对匹配.绿色表示正确的匹配,红色表示错误的匹配.10.13245/j.hust.230122.F002图2光照变换下三种匹配算法效果10.13245/j.hust.230122.F003图3视角变换下三种匹配算法效果可以得出:FLANN算法得到的匹配数多,但是误匹配也多.KMIM算法很大程度地减少了误匹配,但由于其建立二分图时删除了许多正确匹配,因此匹配总数也很少.表3为特征点匹配的具体指标,精确率P=T/U,召回率R=T/F,匹配分数S=T/ min(m,n),其中:U为所有匹配的数量;T为正确匹配的数量;F为两张图片中的相同特征点数量.均值平均精度M定义为P-R曲线下方的面积.相比于BF,FLANN进行了比率测试,所以两幅图片特征点总数不变的情况下,剔除了部分匹配和正确匹配,召回率S下降,但提高了匹配质量,精确率M上升.KMIM算法建立二分图时,剔除了一部分匹配,且算法剔除错误匹配的效果较好,所以KMIM算法的精确率,S和M相比于FLANN都得到了提高,但是KMIM剔除了大量的匹配,最终剩下的匹配数量很少,S降低.10.13245/j.hust.230122.T003表3HPatches数据集中特征点匹配实验方法PRMSBF86.1590.7685.5551.78FLANN91.4385.5787.0849.89KMIM95.2988.1094.1527.04%表4为不同特征点算法在Oxford数据集[17]中的M.Oxford数据集是一个图像特征匹配数据集,包含了视角变换、模糊变换、JPEG压缩、尺度变换、旋转变换、光照变换等图像操作集,使用不同方法计算M.在光照变换下,FNET仅次于R2D2;在视角变换下,FNET仅次于Superpoint;在模糊变换下,FNET最高;在JPEG压缩中,FNET最低.R2D2在应对光照变换时图像匹配的精确度较高,适合处理光线变化的场景,Superpoint在应对视角变换时的精确度较高,适合处理视角改变的场景,但整体上Superpoint略高于R2D2.FNET方法综合考虑了光照变换与视角变换的情况,充分挖掘了像素信息,使它能够在单项上超过其中一个网络,并且在模糊变换下取得了最高.10.13245/j.hust.230122.T004表4Oxford数据集中不同方法的均值平均精度方法光照视角模糊压缩整体SIFT+FLANN91.7043.4896.7498.0882.52ORB+FLANN85.9448.6181.4779.5363.94Superpoint+FLANN90.7875.5498.2396.5487.52R2D2+FLANN95.2372.6196.8895.5485.74FNET+FLANN93.5973.2199.1993.9289.98SIFT+KMIM93.2757.1295.5498.8287.64ORB+KMIM85.6356.8390.6386.1382.13Superpoint+FLANN89.6277.4298.5697.1490.14R2D2+FLANN96.6475.5495.7195.7389.68FNET+FLANN94.1279.6298.8496.5293.42%FNET在JPEG压缩处理中偏低,说明过于依赖像素信息时,难以应对破坏像素空间排列的处理.尽管如此,FNET在整体评测上也取得了最高.对比FLANN和KMIM两种特征匹配算法,KMIM在光照变换、视角变换及压缩处理下,均高于FLANN,整体评测下也有上升.在模糊变换下,KMIM提取的特征点可重复率较低,特征点稳定性不强,使得KMIM算法剔除了过多的正确匹配,导致M下降,低于FLANN.2.3 三维注册效果利用FNET网络实现三维注册.实验使用书本模板,Redmi手机在视角变换与光照变换场景下动态拍摄,Pyopengl3.1.6实现三维物体渲染,Pygame2.1.2进行可视化.图4给出了一段视频序列中的第21~30帧,相同列是同一帧图像,不同行使用不同的三维注册算法.使用SIFT和ORB等方法进行三维注册是目前主流的方法,但相机在拍摄过程中由于自身的运动,环境的光照等影响会使成像模糊,传统方法会使定位产生漂移,使三维注册失败.其中第26~30帧中SIFT算法注册成功,ORB算法注册失败,可见SIFT算法的稳定性比ORB算法好.而本文方法优于上述两种算法,在21~30帧中均成功注册.10.13245/j.hust.230122.F004图4视角变换下增强现实效果图5给出了视频序列中在强光和弱光下的增强现实效果,强光对应98~102帧,弱光对应225~229帧,相同列是同一帧图像,不同行使用不同的三维注册算法.10.13245/j.hust.230122.F005图5光照变换下增强现实效果光照变换会对图像的像素值产生影响,使图像的特征点不稳定,SIFT算法在强光的98,99,101和102帧注册成功,在弱光的226~228帧注册成功,由于SIFT算法利用了梯度信息,在光照变换下有一定的稳定性;而ORB算法依赖像素值,因此在所选帧中都注册失败.本文方法不仅在特征点算法上使用了多分支提取特征,并且筛选了较精确的特征匹配,在所选帧均完成了注册.表5给出不同方法的指标,成功率定义为 1 000帧图像中成功注册图像的比率,只有渲染的矩形与物体的4个角之间的距离在一定范围内,才认为注册成功.10.13245/j.hust.230122.T005表5不同三维注册方法的指标方法时间/sFPS成功率/%SIFT1.147 50.87183.2ORB0.121 48.23751.6FNET0.318 53.14095.4从表5数据可以得出:SIFT算法的处理时间最多;ORB算法速度最快,但是注册失败的次数也更多;FNET算法成功率最高,在兼顾了速度的同时,画面渲染非常流畅.3 结论增强现实的三维注册技术一般是通过传统视觉方法提取图像特征点,然而卷积神经网络在图像理解方面有着更强的稳定性.鉴于此,使用卷积神经网络提取图像特征点并生成描述子,之后在查询图像和训练图像之间建立稀疏二分图进行特征匹配,从而完成三维注册.本三维注册算法对视频进行逐帧检测,后续可以跟踪特征点,提高视频处理速度;研究网络轻量化、改进损失函数提高模型性能;与视觉SLAM结合;或部署到智能手机、Hololens等显示设备,实现更多元的交互.

使用Chrome浏览器效果最佳,继续浏览,你可能不会看到最佳的展示效果,

确定继续浏览么?

复制成功,请在其他浏览器进行阅读