CN116797742A - 室内场景的三维重建方法及系统 - Google Patents
室内场景的三维重建方法及系统 Download PDFInfo
- Publication number
- CN116797742A CN116797742A CN202310922149.4A CN202310922149A CN116797742A CN 116797742 A CN116797742 A CN 116797742A CN 202310922149 A CN202310922149 A CN 202310922149A CN 116797742 A CN116797742 A CN 116797742A
- Authority
- CN
- China
- Prior art keywords
- point
- representing
- camera
- pixel
- image
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 161
- 230000008043 neural expression Effects 0.000 claims abstract description 48
- 239000013598 vector Substances 0.000 claims description 157
- 230000006870 function Effects 0.000 claims description 121
- 238000005070 sampling Methods 0.000 claims description 65
- 230000011218 segmentation Effects 0.000 claims description 45
- 238000004364 calculation method Methods 0.000 claims description 27
- 239000011159 matrix material Substances 0.000 claims description 25
- 238000012549 training Methods 0.000 claims description 22
- 230000008569 process Effects 0.000 claims description 21
- 238000009877 rendering Methods 0.000 claims description 19
- 230000009466 transformation Effects 0.000 claims description 16
- 238000001514 detection method Methods 0.000 claims description 15
- 230000001186 cumulative effect Effects 0.000 claims description 12
- 238000005457 optimization Methods 0.000 claims description 11
- 239000002245 particle Substances 0.000 claims description 11
- 101100149256 Mus musculus Sema6b gene Proteins 0.000 claims description 9
- 238000012545 processing Methods 0.000 claims description 9
- 238000013528 artificial neural network Methods 0.000 claims description 8
- 238000013507 mapping Methods 0.000 claims description 8
- 230000005855 radiation Effects 0.000 claims description 7
- 238000005315 distribution function Methods 0.000 claims description 6
- 238000005516 engineering process Methods 0.000 claims description 6
- 230000014509 gene expression Effects 0.000 claims description 6
- 238000010606 normalization Methods 0.000 claims description 6
- 238000013519 translation Methods 0.000 claims description 6
- 239000003086 colorant Substances 0.000 claims description 5
- 239000000463 material Substances 0.000 claims description 5
- 230000004927 fusion Effects 0.000 claims description 4
- 241001334134 Rugopharynx epsilon Species 0.000 claims description 3
- 230000008859 change Effects 0.000 claims description 3
- 239000002131 composite material Substances 0.000 claims description 3
- 230000001419 dependent effect Effects 0.000 claims description 3
- 238000009792 diffusion process Methods 0.000 claims description 3
- 230000003287 optical effect Effects 0.000 claims description 3
- 230000006735 deficit Effects 0.000 claims 1
- 230000001537 neural effect Effects 0.000 claims 1
- 230000000694 effects Effects 0.000 abstract description 14
- 238000010586 diagram Methods 0.000 description 9
- 230000009286 beneficial effect Effects 0.000 description 5
- 238000011160 research Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 3
- 241000282412 Homo Species 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Landscapes
- Image Analysis (AREA)
Abstract
本发明属于三维重建技术领域,具体公开了一种室内场景的三维重建方法及系统,该方法将室内场景的图像输入深度估计网络,得到初始深度图,计算初始深度图像素点对应的法向量,估计出主方向,检测所有根据深度图计算得到的法向量,将其和估计的主方向比较对齐,训练深度估计网络,计算每张室内场景图像的每个像素对应的相机光线并获得采样点信息,训练隐式神经表达网络并优化,将隐式神经表达网络转化为显式网格,得到三维重建结果。采用本技术方案,基于结构知识的室内深度估计网络提高了深度估计的准确性,基于隐式神经表达的室内三维重建网络有效提升室内重建的整体效果。
Description
技术领域
本发明属于三维重建技术领域,涉及一种室内场景的三维重建方法及系统。
背景技术
视觉对人类具有重要意义,人类感知的绝大多数信息都是通过视觉获取的。而计算机视觉技术就是希望计算机能够通过算法模拟人类,感知人类眼中的世界。和二维图像相关的计算机视觉技术已经非常成熟,而有关三维计算机视觉技术的研究还处在发展阶段,是非常具有挑战性的研究方向。
三维重建是计算机视觉领域的一项基础研究内容,得益于计算机技术的快速发展,三维重建相关研究越来越受关注。与相对成熟的大规模室外重建模型相比,室内重建由于数据采集困难,数据集比较匮乏,导致其发展受到一定程度制约。除此之外,室内场景自身结构复杂、物体种类繁多、且存在大量低纹理区域。若将室外重建技术直接应用到室内三维重建中会导致重建模型精确度低、三维重建整体效果不佳等问题。
室内重建一般是利用相机拍摄室内场景的图片,再以图片为基础生成相应的三维模型。此处的室内场景既可以是房间中的一个区域,也可以是一个房间,甚至是一个完整的房屋。室内重建不仅需要在宏观上恢复房屋的布局,更重要的是重建家具、墙壁和地板等室内设施。室内场景不同于室外场景,它既包含纹理丰富的区域也包含纹理稀疏的区域。传统的重建算法多是基于光度一致性获得稠密三维信息,在一些场景下会有局限性,导致最终的重建结果出现孔洞或纹理堆叠的情况。有时由于体素分辨率的限制,重建结果还会丢失很多细节。而基于深度学习的三维重建方法近几年来取得了很大的进展,突破了传统算法的限制,通过神经网络训练提取到更丰富的图像信息,基于深度学习的方法对于纹理丰富的物体重建效果很好,但是低纹理区域的重建效果仍差强人意。
发明内容
本发明的目的在于提供一种室内场景的三维重建方法及系统,提高深度估计的准确性,并有效提升室内重建的整体效果。
为了达到上述目的,本发明的基础方案为:一种室内场景的三维重建方法,包括如下步骤:
获取室内场景的图像,并输入深度估计网络,得到初始深度图;
基于影消点和影消线的结构知识,估计出主方向;
利用深度图和法向量之间的强相关性,计算初始深度图像素点对应的法向量;
基于空间结构约束,检测所有根据深度图计算得到的法向量,将其和估计的主方向比较对齐;
基于结构知识的空间结构约束和平面约束,辅助深度估计网络训练,获取优化后的深度图;
根据室内场景图像、拍摄室内场景图像的相机参数以及优化后深度图的位姿,进行相机光线采样,计算每张室内场景图像的每个像素对应的相机光线并获得采样点信息;
将采样点的坐标和视线方向输入隐式神经表达网络,利用深度估计网络生成的深度图作为监督信号,训练隐式神经表达网络;
将室内场景图像输入语义分割网络,生成二维语义分割结果并输入隐式神经表达网络,使用隐式神经表达网络生成的语义信息优化二维语义分割结果;
利用优化后的语义信息和几何约束,优化隐式神经表达网络;
将隐式神经表达网络转化为显式网格,得到三维重建结果。
本基础方案的工作原理和有益效果在于:本技术方案利用室内环境结构信息,将室内结构知识引入深度估计网络以提高室内深度估计的准确性,引入空间结构约束和平面约束,使得预测的深度图在室内数据集上的实验结果相比原网络更加准确。
基于隐式神经表达网络实现三维重建,对于纹理丰富区域,使用基于结构知识的深度估计网络生成的深度图作为监督信号辅助重建,对于纹理稀疏区域,使用二维语义分割网络生成的语义分割结果结合几何约束辅助重建。最终综合使用深度图、语义分割结果及几何约束,优化场景表达能力,提升室内三维重建效果。
针对语义分割网络可能产生错误的分割结果继而影响后续三维重建的问题,提出一种语义几何联合优化策略,使用隐式神经表达网络生成的语义信息优化输入的语义分割结果,提升语义的准确性。再将优化后的语义信息和几何约束结合,联合优化网络,通过使用联合优化策略进一步提升室内重建整体效果。
进一步,所述深度估计网络包括位姿估计模块和深度估计模块;
位姿估计模块中,相机在三维空间中的运动是六自由度的刚性运动,它的位姿变化使用沿x轴、y轴、z轴的三个平移变量tx、ty、tz和绕x轴、y轴、z轴旋转的三个角度rx、ry、rz表示;
输入源图像Is和目标图像It,位姿估计模块输出对应的六个变量,再通过这六个变量构造旋转矩阵R和平移矩阵T,得到从It到Is时刻的位姿变换矩阵Tt→s:
T=[tx ty tz]T
深度估计模块包括编码器和解码器,输入目标图像It,经过编码器卷积操作,特征图的尺度变小,通道数变多;而解码器进行反卷积操作,用于恢复图像尺度,编码器和解码器之间尺度相同的特征图跨层连接。
结构简单,利于使用。
进一步,估计主方向的方法为:
假设空间中的一条直线方向为d=[a,b,c]T,a、b、c是该直线在三个坐标轴上的分量,无穷远点原本的坐标表示为x∞=[a,b,c,0]T;无穷远点经过摄像机变换投影到影消点v1,投影矩阵为M,假设相机坐标系和世界坐标系一致,则M=K[I,0],K为相机内参矩阵,I是3×3的单位矩阵,投影变换为:
其中,影消点v1和这条直线的关系满足v1=Kd,直线方向为:
主方向的单位向量μ1和直线方向是平行的,所以主方向的单位向量满足:
μ1∝K-1v1
对于影消点v2,按照相同方法可得:
μ2∝K-1v2
计算两个影消点v1和v2的主方向μ1和μ2,第三个主方向通过交叉积μ3=μ1×μ2计算,获得三个主方向。
基于影消点和影消线的结构知识估计出主方向,计算简单,便于使用。
进一步,计算初始深度图像素点对应的法向量的方法如下:
通过深度估计网络的DepthNet获得初始深度图,计算初始深度图中每个像素点p的三维坐标φ(xp):
φ(xp)=D(p)K-1xp
其中,D(p)表示通过深度估计网络的DepthNet获得的像素p的深度值,K为相机内参矩阵,xp是像素点p的二维坐标;
法向量N(xi)为:
其中,P表示像素点xi的8邻域内的所有像素点,xi1和xi2表示其中一对像素点,n表示像素点xi的8邻域内的所有像素点对(xi1,xi2)的法向量积, 分别表示像素点对(xi1,xi)和(xi2,xi)的权重,‖n‖2表示向量n的欧式范数。
获取法向量,利于后续使用。
进一步,检测所有根据深度图计算得到的法向量,将其和估计的主方向比较对齐的方法为:
基于深度图和法向量之间的强相关性计算得到法向量,再使用基于空间结构约束的法向量检测,对所有属于主平面的法向量进行分类;
对于某个像素点,通过深度图计算得到的法向量和使用影消点和影消线估计得到的三个主方向之一相似度最高并达到某个阈值,那么该像素点属于以这个主方向为法向量的对应的平面;
利用余弦相似度比较通过深度图获得的法向量np和每个主方向μk之间的差值,并且选择相似度最高的一个:
其中,表示对齐后的法向量,cos(·,·)表示余弦相似度,表示为:
每个像素最高的相似度记为通过将掩膜定义为:
其中,表示符合空间结构约束的区域,t表示设定的阈值,当最大相似度大于给定阈值时,掩膜为1,表示该像素点属于符合空间结构约束的区域;当最大相似度小于给定阈值时,掩膜为0,表示该像素点不属于符合空间结构约束的区域。
运算简单,利于使用。
进一步,在添加平面约束之前需要对平面区域进行检测,具体方法如下:
设室内场景图像上有一个像素点p,它的相邻像素点为q,那么两个像素点之间的颜色差异度Dc(p,q):
Dc(p,q)=‖Ip-Iq‖
其中,Ip,Iq分别表示像素点p和像素点q的RGB颜色值;
使用对齐后的法向量,假设像素点p位于某个平面上,它对齐后的法向量是相邻点q的对齐后的法向量为两个法向量之间的差异度Dn(p,q)定义为两个像素点之间的欧式空间距离:
和表示所有相邻像素点的最大法向量差异度和最小法向量差异度,对法向量差异度归一化,归一化操作表示为[·]:
设像素点p的三维坐标为xp,平面到点p的距离distp为:
平面到点q的距离为distq,p,q两点之间的平面到原点距离的差异度Dd(p,q)为:
Dd(p,q)=|distp-distq|
对Dd(p,q)进行归一化操作,得到归一化后的值[Dd(p,q)],几何差异度是法向量差异度和平面到原点的距离差异度之和,几何差异度Dg(p,q)定义为:
Dg(p,q)=[Dn(p,q)]+[Dd(p,q)]
比较颜色差异度和几何差异度的大小,选择较大值作为整体差异度D(p,q):
D(p,q)=max([Dc(p,q)],[Dg(p,q)])
基于整体差异度确定平面边界划分标准,定义分割区域S的内差和外差,通过比较内差、外差大小,确定两个区域之间是否应该存在边界划分,分割区域的内差Inter(S)指的是分割区域S中边的最大权重值:
其中,MST(S,E)是分割区域S内部像素点之间形成的最小生成树,E是其中所有像素点之间的边的集合,e表示其中的一条边,而ω(e)表示边e的权重;
分割区域的外差Exter(S1,S2)指的是两个分割区域间S1和S2,有边连接的顶点对的最小权重值:
其中,vi,vj是分别属于两个分割区域的顶点,可能存在两个分割区域之间没有任何连接边的情况,此时两个分割区域之间的外差定义为无穷大,Exter(S1,S2)=∞;
通过比较内差和外差判断两个分割区域之间是否应该存在边界划分,边界划分的标准定义为:
MinInter(S1,S2)=min(Inter(S1),Inter(S2))
其中,D(S1,S2)是一个布尔值,表示是否应该在S1,S2之间进行边界划分,MinInter(S1,S2)是最小分割区域内差,使用最小分割区域内差与外差比较,并不是直接使用分割区域的内差和外差进行比较,而是在原本的内差基础上添加了阈值δ(S),将最小分割区域内差计算公式修改为:
MinInter(S1,S2)=min(Inter(S1)+δ(S1),Inter(S2)+δ(S2))
阈值δ(S)=k/|S|,和分割区域内点的数量呈负相关,k是人为设置的参数,主要和图像尺寸大小相关。
基于整体差异度的图分割算法进行平面区域检测,图分割算法的关键就是确定边界区域的判断标准,操作简单。
进一步,进行平面区域检测后,使用平面约束使得位于同一平面区域的三维点扁平化,具体方法为:
平面区域为:
NTxp+dp=0
其中,p是平面上的一点,xp是p点对应的三维坐标,dp是p点到平面的距离,N是该平面的法向量,N=(n1,n2,n3)T;
使用三个参数进行拟合:
其中,θ表示平面的法向量与平面到原点的距离之间的关系,θ1,θ2,θ3是θ的三个参数;
像素点p对应的归一化后的二维坐标为m=(u,v)T,u,v分别表示像素点p对应的归一化后的二维坐标,像素点p的深度值为逆深度为逆深度与深度互为倒数关系;点p的三维坐标齐次化后为 表示m齐次化后的坐标;
平面内的三维点满足关系式:
计算三维点的逆深度:
获得逆深度后,将逆深度转换为深度
为了避免过度参数化,只使用其中三个参数进行拟合,便于使用。
进一步,还包括深度估计网络的损伤函数:
空间结构约束损失函数Lnorm为:
其中,Nnorm表示符合空间结构约束区域的像素点的数量,和分别表示像素p是否位于符合空间结构约束的区域或平面区域,位于则值为1;像素点p位于某个平面上,它对齐后的法向量是np表示原始的法向量;
有关平面约束的损失函数Lplane为:
其中,Nplane表示平面区域MP内的像素点的数量;Dp是深度估计网络估计的初始深度值,是通过共平面深度计算的深度值;
基于面片构建光度损失函数,对于给定的一个关键点p=(x,y),把它的邻域定义为以该关键点为中心,大小为N的区域,那么该点的支持域为Ωp:
Ωp={(x+xp,y+yp),xp∈{-N,0,N},yp∈{-N,0,N}}
其中,xp,yp是像素点p的二维坐标;
支持域Ωp的结构性损失LSSIM表示如下:
其中,It表示目标图像,Is表示源图像,It[p]表示图像It中p处的像素值;和分别表示目标图像和源图像的支持域;
L1损失表示为:
将光度损失Lph定义为支持域上的L1损失与结构相似性损失SSIM之和,光度损失Lph为:
其中,α为加权因子;
边缘敏感的平滑度损失Lsmooth为:
其中,是均值归一化逆深度,分别表示x方向和y方向的梯度;
基于结构知识的深度估计网络的总损失函数为:
L=Lph+λ1Lsmooth+λ2Lnorm+λ3Lplane
其中,λ1,λ2和λ3分别设置为0.001、0.05和0.1。
基于结构知识的室内深度估计网络的损失函数由四部分组成,优化网络性能。
进一步,计算每张室内场景图像的每个像素对应的相机光线并获得采样点信息,具体方法如下:
在坐标轴范围的栅格空间中,像素中心点P的坐标表示是像素坐标加上0.5个偏移量,将该像素中心点的坐标转换到标准化设备坐标系下,此时坐标轴范围需要重新映射,映射结果为[0,1],计算像素点的新坐标:
其中,Px,Py是栅格坐标系中像素点P的横纵坐标,PNDCx,PNDCy是标准化设备坐标系中像素点P的横纵坐标;
把像素点坐标从标准化设备坐标系转换到屏幕坐标系:
其中,PScreenx,PScreeny是屏幕坐标系中像素点P的横纵坐标;
由于坐标轴范围变为了[-1,1],所以点的坐标有正负之分,进行计算后发现原本应该为正值的纵坐标变为了负值,所以需要对该像素点的纵坐标取相反数:
PScreeny=1-2*PNDCy
考虑图像的宽高比,ImageW和ImageH分别是图像的宽度和高度,Ratio是图像的宽高比,PCamerax,PCameray是像素点P在相机坐标系下的横纵坐标,相机坐标系下像素点P的坐标为:
屏幕空间中图像平面的任何点纵坐标范围都位于[-1,1]之间,假设图像平面距离相机原点1个单位距离,图像平面高度为2个单位距离,从侧面看相机,将相机原点和图像平面的顶部、底部相连组成一个三角形;
相机原点对应的角为angle,假设angle为90度,那么图像平面BC的长度表示为tan(angle/2);当angle大于90度时,BC长度大于1;当angle小于90度时,BC长度小于1;将屏幕坐标系下的坐标乘以tan(angle/2)的长度进行放大或缩小,使用角度定义相机的视野范围,得到原始像素坐标相对于相机图像平面的表示,这个点在相机空间中,相机坐标系下相应点的横纵坐标表示为:
在相机位于默认位置时,相机坐标系和世界坐标系对齐。该平面位于距相机原点一个单位距离处,并且相机沿着z轴负向对齐,所以该像素点在图像平面上的最终坐标为:
P=(PCamerax,PCameray,-1)
获得图像像素点P在相机图像平面的位置后,将相机原点定义为光线原点O,光线方向定义为向量OP的方向;使用位姿估计网络生成的位姿变换矩阵将像素点P在相机坐标系下的坐标转换到世界坐标系下,得到在世界坐标系下的对应点O′和P′,O′P′对应世界坐标系下的光线方向;经过相机光线采样后,获得采样点的五维坐标,包含位置坐标(x,y,z)和视线方向其中θ表示相机光线的俯仰角,表示相机光线的方位角。
利用这些采样点构建经过该像素点的相机光线,这些离散点的坐标和视线方向是后续神经网络的输入,利于使用。
进一步,所述隐式神经表达网络的结构为:
用集合表示空间中的某个三维物体,表示该物体的边界,定义指标函数IΩ(x):
指标函数表明,如果某点x位于物体内部其值为1,位于物体外部其值为0;
使用d(x)表示符号距离函数:
其中,||·||表示欧几里得二范数,y表示物体边界上的点,x表示空间中任意一点,d(x)表示如果该点位于物体内部,那么它到物体边界处的距离为负值;如果该点位于物体外部,那么它到物体边界处的距离为正值;
d(x)通过多层感知机网络映射表示:
d(x)=Fd(x)
其中,Fd(x)表示根据点的坐标映射为符号距离函数的多层感知机网络;
在多层感知机网络中输入点的位置坐标x和视线方向v,通过多层感知机网络映射生成相应的颜色c(x),Fc(x,v)表示根据点的坐标和视线方向映射为颜色的MLP网络:
c(x)=Fc(x,v)
求解场景的几何表示符号距离函数,将符号距离函数转化为隐式神经表达网络生成的体密度的形式,体密度为光在某点被遮挡的概率,用σ(x)表示,它和点x处单位体积的粒子数成正比;点x处单位体积的粒子数越多,表示该点的体密度越大,光在该点被遮挡的概率越大;体密度σ(x)用d(x)表示:
其中,A,β>0,表示可学习的参数;是拉普拉斯分布的累积函数,s在本文指的是d(x):
场景几何用符号距离函数表示为:
相机光线采样过程中,假设从相机原点处发出一条光线,c表示相机所处位置,v表示视线方向,t表示空间中的位置,t≥0,射线方程可简写成l(t)=c+tv;透明度表示相机光线中的一个粒子成功穿过某点而没有被反弹的概率,透明度函数定义为:
T(t)=exp(-∫0 tσ(l(s))ds)
其中,s是光线上的采样点;
不透明度函数和透明度函数对应的值相加为1,不透明度函数定义为O(t)=1-T(t),其中T(t)是透明度函数,它表示在相机光线经过空间中的距离t处的透明度;O(t)是单调递增函数,O(0)=0,假设每条光线在无穷远处都有终点,无穷远处的不透明度为1,即O(∞)=1,该函数看作是累积分布函数,根据累积分布函数推断概率密度函数τ(t)为:
体渲染方程定义如下:
V(c,v)=∫0 ∞R(l(t),nR(t),v)τ(t)dt=∫0 ∞T(t)σ(l(t))R(l(t),nR(t),v)dt
其中,R(l,nR,v)是辐射场函数,表示的是从相机所处位置c处发出的v方向上的光线数量;nR表示法向量,辐射场函数之所以和法向量相关,是因为常见材料表面的BRDF模型表面漫射通常是相对于表面法向量进行编码的;法向量通过l(t)得到,体渲染方程简写为:
V(c,v)=∫0 ∞T(t)σ(l(t))R(l(t),v)dt
使用体渲染方法求解三维场景的颜色表示,假设光线从相机中心处发出,颜色函数表示为:
其中,tn表示相机光线的近边界处,tf表示相机光线的远边界处,T(t)是透明度函数,表示从近边界处到远边界处光线的累积透明度,l(t)表示从相机处发出的一条光线,σ(l(t))表示l(t)的体密度,c(l(t),v)表示相应位置的颜色值;通过分层抽样法求解积分,得到预测颜色值的离散化表示:
其中,weight(x)=1-exp(-x),δi=ti+1-ti,δi表示两个相邻采样点之间的距离;Ti表示第i个采样点的颜色值;ci表示第i个采样点的颜色的权重;σi表示第i个采样点的标准差;
Ti离散化形式如下:
其中,σj表示第j个采样点的标准差,δj=tj+1-tj,δj表示两个相邻采样点之间的距离;
颜色值函数最终表示为:
本技术方案对传统隐式神经表达网络进行改进,获得了场景的几何表示和颜色表示,利于后续在此基础上对场景表示进行优化。
进一步,优化隐式神经表达网络的方法如下:
输入一张大小为H×W×3的图片,将其划分为4×4的面片,并输入到多个变换器中,获得原始图像1/4,1/8,1/16,1/32的分层次特征,每一层次的特征Fi为:
其中,Ci是特征的通道数,即特征图中每个位置的向量维度,这个维度会因不同层次而变化;
对输入特征进行下采样处理,将该步骤的计算复杂度从O(N2)降到O(N2/R);其中N=H×W,和图像分辨率有关,R是下采样率;引入Mix-FFN模块,使用3×3的卷积处理输入特征,传递位置信息,Mix-FFN表示为:
xout=MLP(GELU(Conv3×3(MLP(xin))))+xin
其中,xin是自注意力层输出的结果,也是Mix-FFN的输入;xout是Mix-FFN的输出结果;
解码过程表示为:
其中,表示预测的分层次特征,F表示经过第三步后连接好的特征,Mask表示预测的掩膜,Linear(Cin,Cout)(·)表示Cin和Cout分别作为输入和输出向量的线性层,Ncls是类别的数量;Upsample(·)表示表示上采样操作,用于将特征进行放大;
通过语义分割网络划分后,得到了地面、墙壁和天花板等低纹理区域,对地面和墙壁这两个区域使用几何约束,使得属于同一墙壁、地面区域的点共享相同的法向量方向,并且法向量方向和三个主方向之一保持一致,地面和墙壁结构不同,分别为这两个区域设计不同的损失函数;
对于地面区域,假设地面垂直于z轴,那么地面区域的点的损失函数Lf(l)为:
Lf(l)=|1-n(xl)·nf|
其中,xl表示相机发出的光线和物体表面的交点,n(xl)是计算符号距离d(x)在点xl处的梯度得到的法向量,nf表示目标地面区域的单位法向量,方向向上,nf=(0,0,1);
对于墙壁区域,定义一个可学习的法向量nw,假设墙壁上的点或者与法向量nw平行或者与法向量nw垂直,墙壁区域的像素点的损失函数Lw(l)为:
其中,nw是一个可学习的法向量,初始值设置为nw=(1,0,0),并且z坐标始终为0;
几何约束相关的损失函数Lgeo定义为:
其中,F和W分别表示地面区域和墙面区域的光线集合;
通过MLP进行语义对数s(x)映射:
s(x)=Fθ(x)
其中Fθ表示可学习的多层感知机;
通过神经网络预测三维空间中每个点的语义对数,再使用体渲染技术将其渲染到二维图像中,语义对数为:
其中,si表示相机光线上的采样点的语义对数;
获得语义对数后,通过softmax函数将其转化成多类概率,多类概率指该点的语义是墙壁、地面或其他部分的概率,再将多类概率整合到几何损失中,将几何损失函数修改为语义几何联合优化损失函数Lunion:
其中,表示该像素的语义是地面的概率,Lf(l)表示地面部分的损失函数,表示该像素的语义是墙壁的概率,Lw(l)表示墙壁部分的损失函数;
引入交叉熵损失函数,最终的交叉熵损失函数Lseman为:
其中,r∈{f,w,o}表示属于地面、墙壁和其他部分的点,表示通过隐式神经表达网络生成的该点是r类标签的概率,pr(l)表示二维语义分割网络预测的语义概率。
室内场景中的低纹理区域通常以地面、墙壁和天花板这三个区域为主,语义几何联合优化策略提升了低纹理区域的重建效果。
进一步,还包括隐式神经表达网络的总损失函数:
颜色损失LRGB为:
其中,R表示通过采样点像素的光线集合,C(l)表示像素点的颜色真值,是隐式神经表达网络渲染的像素点的颜色值;
Ei kona l损失LEikonal为:
其中,Y表示从随机均匀空间采样的点和像素点的集合;
使用深度估计网络生成的深度图监督神经网络的训练,深度损失LDepth为:
其中,δi表示两个相邻采样点之间的距离;表示由深度估计网络生成的深度图,是对相机光线上N个采样点进行加权求和得到的;Ti表示第i个采样点的值;ti表示第i个采样点的权重系数;σi表示第i个采样点的标准差;
联合优化损失Lunion为:
交叉熵损失Lseman为:
基于隐式神经表达的室内三维重建网络的总损失函数L表示为:
L=LRGB+λ1LEikonal+λ2LDepth+λ3Lunion+λ4Lseman
其中,λ1,λ2,λ3和λ4分别被设置为0.1、0.5、0.05和0.5。
隐式神经表达网络的总损失函数由五部分组成,分别是颜色损失、Eikonal损失、深度损失、联合优化损失和交叉熵损失,优化网络性能。
进一步,将隐式神经表达网络转化为显式网格的方法如下:
使用TSDF算法构建三维空间体素,TSDF值的计算公式为:
tsdfi(x)=max(-1,min(1,sdfi(x)/t))
其中,x表示体素,绿色部分表示物体的横截面,p表示从相机光心发出的光线经过体素x后与物体截面的交点,camz(x)表示体素x和相机的距离,sdfi(x)表示x的符号距离值;
当体素x距离截面的距离比较近时,它对应的TSDF值在[-1,1]区间;当体素x距离截面的距离比较远时,它对应的TSDF值为1或-1,获得每幅图像的TSDF值后,将其合并到当前已有的TSDF模型中,合并多幅图像既可以补全单幅图片缺少的信息又可以在一定程度上提升模型精度;合并TSDF的过程表示为:
Wi(x)=Wi-1(x)+wi(x)
其中,TSDFi表示新生成的TSDF模型,Wi-1(x)表示之前生成的TSDF模型的权重系数,tsdfi及wi(x)分别表示当前需要更新的体素的TSDF值和对应权重,Wi(x)表示总权重;
按照合并TSDF的过程进行多次融合,即可得到最终的TSDF模型;
使用Marchi ng Cubes算法提取等值面,Marchi ng Cubes算法的基本单位是体元,体元是由8个体素点组成的小立方体,在立方体中,如果体素顶点的TSDF值大于或等于等值面,那么它位于等值面外,设置为0;如果体素顶点的TSDF值小于等值面,那么它位于等值面内,设置为1;
在获得所有体元的等值面后,连接等值面获得完整的网格结果。
隐式表达不能进行可视化观察,转化成显示网格,以便进行可视化表达。
本发明还提供一种室内场景的三维重建系统,包括图像采集模块和处理模块,所述图像采集模块用于获取室内场景的图像,图像采集模块的输出端与处理模块的输入端连接,所述处理模块执行本发明所述方法,进行三维重建。
该系统结构简单,进行三维重建效果好,利于使用。
附图说明
图1是本发明室内场景的三维重建方法的室内场景深度估计的流程示意图;
图2是本发明室内场景的三维重建方法的深度估计网络的结构示意图;
图3是本发明室内场景的三维重建方法的位姿估计模块的结构示意图;
图4是本发明室内场景的三维重建方法的深度估计模块的结构示意图;
图5是本发明室内场景的三维重建方法的影消点的结构示意图;
图6是本发明室内场景的三维重建方法的法向量的计算过程示意图;
图7是本发明室内场景的三维重建方法的基于整体差异度的图分割算法的流程示意图;
图8是本发明室内场景的三维重建方法的室内三维重建的流程示意图;
图9是本发明室内场景的三维重建方法的相机光线的结构示意图;
图10是本发明室内场景的三维重建方法的将栅格空间下的坐标转化到世界坐标系下的结构示意图;
图11是本发明室内场景的三维重建方法的相机设置侧视图;
图12是本发明室内场景的三维重建方法的相机坐标系到世界坐标系的转换示意图;
图13是本发明室内场景的三维重建方法的隐式神经表达网络的网络结构示意图;
图14是本发明室内场景的三维重建方法的体渲染建模示意图;
图15是本发明室内场景的三维重建方法的等值面分布情况示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
在本发明的描述中,需要理解的是,术语“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
在本发明的描述中,除非另有规定和限定,需要说明的是,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是机械连接或电连接,也可以是两个元件内部的连通,可以是直接相连,也可以通过中间媒介间接相连,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。
本发明公开了一种室内场景的三维重建方法,将结构知识应用于室内深度估计网络,并把生成的深度图与语义信息及几何约束结合,基于隐式神经表达进行室内重建,以提升整体重建效果。室内场景的三维重建方法包括如下步骤:
如图1所示,获取室内场景的图像(RGB图片),并输入深度估计(深度估计是通过特定方法估计RGB图像中每个像素对应的物点相对于相机的距离)网络(改进P2Net深度估计网络),得到初始深度图,使用深度图作为额外的信息辅助室内三维重建;
基于影消点和影消线的结构知识,估计出主方向;
利用深度图和法向量之间的强相关性,计算初始深度图像素点对应的法向量;
基于空间结构约束(空间结构约束就是三维空间中的主要平面互相垂直,并且每个平面的法向量和三个主方向(x轴、y轴和z轴)之一对齐),检测所有根据深度图计算得到的法向量,将其和估计的主方向比较对齐;得到对齐后的法向量有两个作用,其一,将其直接作为深度估计网络监督信号之一,监督深度图的训练;其二,利用对齐的法向量,颜色信息和深度信息计算得到平面区域的整体差异度,并基于整体差异度进行平面区域划分,得到划分后的平面区域后,使用平面约束作为深度图估计网络的另一个监督信号。
基于结构知识的空间结构约束和平面约束,辅助深度估计网络训练,获取优化后的深度图;在训练初期,基于空间结构约束进行法向量检测的结果和基于整体差异度进行平面区域检测的结果准确度可能相对较低,但是随着训练的进行,估计的深度值准确度会越来越高,法向量检测和平面区域检测的准确度也会提高,改进的监督信号会进一步作用于深度估计网络,从而提高最终生成的深度图的准确度。
根据室内场景图像、拍摄室内场景图像的相机参数以及优化后深度图的位姿,进行相机光线采样,计算每张室内场景图像的每个像素对应的相机光线并获得采样点信息;
将采样点的坐标和视线方向输入隐式神经表达网络,利用深度估计网络生成的深度图作为监督信号,训练隐式神经表达网络;
将室内场景图像输入语义分割网络,生成二维语义分割结果并输入隐式神经表达网络,使用隐式神经表达网络生成的语义信息优化二维语义分割结果;
利用优化后的语义信息和几何约束,优化隐式神经表达网络;
使用TSDF算法(truncated signed distance function,基于截断地带符号距离函数,是一种常见的在3D重建中计算隐势面的方法)结合Marching Cubes算法,将隐式神经表达网络转化为显式网格,得到三维重建结果,方便人们观察。
本发明的一种优选方案中,如图2所示,深度估计网络包括位姿估计模块PoseNet和深度估计模块DepthNet;
如图3所示,位姿估计模块中,相机在三维空间中的运动是六自由度的刚性运动,它的位姿变化使用沿x轴、y轴、z轴的三个平移变量tx、ty、tz和绕x轴、y轴、z轴旋转的三个角度rx、ry、rz表示;
输入源图像Is和目标图像It,位姿估计模块输出对应的六个变量,再通过这六个变量构造旋转矩阵R和平移矩阵T,得到从It到Is时刻的位姿变换矩阵Tt→s:
T=[tx ty tz]T
如图4所示,深度估计模块包括编码器(卷积层(Conv))和解码器(反卷积层(Deconv)),输入目标图像It,经过编码器卷积操作,特征图的尺度变小,通道数变多,有助于获得更高级的图像信息;而解码器进行反卷积操作,用于恢复图像尺度,编码器和解码器之间尺度相同的特征图跨层连接,同时融合纹理特征和语义信息,有助于提高网络训练效果。在深度估计网络中,添加了基于结构知识的空间结构约束和平面约束,辅助网络训练,经过训练后,网络会输出对应的深度图。
本发明的一种优选方案中,估计主方向的方法为:
主方向可以通过图像中的影消点和影消线估计,三维世界里原本互相平行的线在投影变换后会相交于一点,该点就是影消点。交汇于同一个影消点的对应直线叫做影消线。
影消点在数学上可以定义为无穷远点在二维图像上的投影点如图5所示,假设空间中的一条直线方向为d=[a,b,c]T,a、b、c是该直线在三个坐标轴上的分量,无穷远点原本的坐标表示为x∞=[a,b,c,0]T;无穷远点经过摄像机变换投影到影消点v1,投影矩阵为M,假设相机坐标系和世界坐标系一致,则M=K[I,0],K为相机内参矩阵,I是3×3的单位矩阵,投影变换为:
其中,影消点v1和这条直线的关系满足v1=Kd,直线方向为:
主方向的单位向量μ1和直线方向是平行的,所以主方向的单位向量满足:
μ1∝K-1v1
对于影消点v2,按照相同方法可得:
μ2∝K-1v2
计算两个影消点v1和v2的主方向μ1和μ2,第三个主方向通过交叉积μ3=μ1×μ2计算,获得三个主方向,获得的方向或其相反方向都可能是场景中主平面如地面或墙壁平面的法向量。
本发明的一种优选方案中,计算初始深度图像素点对应的法向量的方法如下:
通过深度估计网络的DepthNet获得初始深度图,计算初始深度图中每个像素点p的三维坐标φ(xp):
φ(xp)=D(p)K-1xp
其中,D(p)表示通过深度估计网络的DepthNet获得的像素p的深度值,K为相机内参矩阵,xp是像素点p的二维坐标;在三维重建中,法向量和深度值之间具有强相关性,并遵循局部正交性;
利用一对像素点计算某个像素点xi的法向量的过程如图6所示,图6左侧是一组二维空间上的点xi,xi1,xi2,其中xi表示需要计算法向量的像素点,其余两个点xi1,xi2属于xi的8邻域;图6右侧是左侧对应的三维空间中的点φ(xi),φ(xi1),φ(xi2)。对于xi=[m,n]的8邻域像素点,将其分割成4对,即P(xi)={([m-1,n],[m,n+1]),…,([m+1,n-1],[m-1,n-1])}。计算每对像素点的交叉积,将得到的向量的平均方向作为xi的法向量。
由于深度图不是一直连续的,对所有像素直接求平均值作为最后的法向量是不合理的。因此离像素中心点xi更近、颜色更相似的点权重更大,而其他元素权重更小。法向量N(xi)为:
其中,P表示像素点xi的8邻域内的所有像素点,xi1和xi2表示其中一对像素点,n表示像素点xi的8邻域内的所有像素点对(xi1,xi2)的法向量积, 分别表示像素点对(xi1,xi)和(xi2,xi)的权重,‖n‖2表示向量n的欧式范数。
本发明的一种优选方案中,检测所有根据深度图计算得到的法向量,将其和估计的主方向比较对齐的方法为:
基于深度图和法向量之间的强相关性计算得到法向量,再使用基于空间结构约束的法向量检测,对所有属于主平面的法向量进行分类;
对于某个像素点,通过深度图计算得到的法向量和使用影消点和影消线估计得到的三个主方向之一相似度最高并达到某个阈值,那么该像素点属于以这个主方向为法向量的对应的平面;
利用余弦相似度比较通过深度图获得的法向量np和每个主方向μk之间的差值,并且选择相似度最高的一个:
其中,表示对齐后的法向量,cos(·,·)表示余弦相似度,表示为:
每个像素最高的相似度记为通过将掩膜定义为:
其中,表示符合空间结构约束的区域,t表示设定的阈值,当最大相似度大于给定阈值时,掩膜为1,表示该像素点属于符合空间结构约束的区域;当最大相似度小于给定阈值时,掩膜为0,表示该像素点不属于符合空间结构约束的区域。
训练过程中,使用自适应阈值方案来检测区域是否符合空间结构约束。起初设置一个相对较小的阈值使得更多的像素被分类为符合空间结构约束的区域,随着训练的进行法向量估计会变得越来越准确,过程中再不断提高阈值使得符合空间结构的区域的划分变得越来越准确。训练过程中使用对齐的法向量作为深度估计网络监督信号之一。
本发明的一种优选方案中,在添加平面约束之前需要对平面区域进行检测,具体方法如下:
如图7所示,基于整体差异度的图分割算法用于平面检测,图分割算法的关键就是确定边界区域的判断标准,该算法聚合了颜色信息、深度信息和几何信息,有助于更准确地检测平面区域。采用一种新的差异度的计算方式作为边界判断标准,综合考虑了颜色、法向量和平面到原点的距离几个因素,使用颜色差异度和几何差异度计算平面区域的整体差异度,以整体差异度作为图分割算法边界划分标准,以此进行平面区域检测。
颜色差异度计算:设室内场景图像上有一个像素点p,它的相邻像素点为q,那么两个像素点之间的颜色差异度Dc(p,q):
Dc(p,q)=‖Ip-Iq‖
其中,Ip,Iq分别表示像素点p和像素点q的RGB颜色值;
法向量差异度计算:使用对齐后的法向量,假设像素点p位于某个平面上,它对齐后的法向量是相邻点q的对齐后的法向量为两个法向量之间的差异度Dn(p,q)定义为两个像素点之间的欧式空间距离:
和表示所有相邻像素点的最大法向量差异度和最小法向量差异度,对法向量差异度归一化,归一化操作表示为[·]:
计算平面到原点的距离差异度:设像素点p的三维坐标为xp,平面到点p的距离distp为:
平面到点q的距离为distq,p,q两点之间的平面到原点距离的差异度Dd(p,q)为:
Dd(p,q)=|distp-distq|
对Dd(p,q)进行归一化操作,得到归一化后的值[Dd(p,q)],几何差异度是法向量差异度和平面到原点的距离差异度之和,几何差异度Dg(p,q)定义为:
Dg(p,q)=[Dn(p,q)]+[Dd(p,q)]
比较颜色差异度和几何差异度的大小,选择较大值作为整体差异度D(p,q):
D(p,q)=max([Dc(p,q)],[Dg(p,q)])
基于整体差异度确定平面边界划分标准,定义分割区域S的内差和外差,通过比较内差、外差大小,确定两个区域之间是否应该存在边界划分,分割区域的内差Inter(S)指的是分割区域S中边的最大权重值:
其中,MST(S,E)是分割区域S内部像素点之间形成的最小生成树,E是其中所有像素点之间的边的集合,e表示其中的一条边,而ω(e)表示边e的权重;
分割区域的外差Exter(S1,S2)指的是两个分割区域间S1和S2,有边连接的顶点对的最小权重值:
其中,vi,vj是分别属于两个分割区域的顶点,可能存在两个分割区域之间没有任何连接边的情况,此时两个分割区域之间的外差定义为无穷大,Exter(S1,S2)=∞;
通过比较内差和外差判断两个分割区域之间是否应该存在边界划分,边界划分的标准定义为:
MinInter(S1,S2)=min(Inter(S1),Inter(S2))
其中,D(S1,S2)是一个布尔值,表示是否应该在S1,S2之间进行边界划分,MinInter(S1,S2)是最小分割区域内差,使用最小分割区域内差与外差比较,并不是直接使用分割区域的内差和外差进行比较,而是在原本的内差基础上添加了阈值δ(S),将最小分割区域内差计算公式修改为:
MinInter(S1,S2)=min(Inter(S1)+δ(S1),Inter(S2)+δ(S2))
这样做的原因是,存在极端情况分割区域内只存在一个顶点,Inter(S1)=0,此时外差一定大于内差,使得两个区域内存在边界,但这样划分边界并不合理。因此需要添加阈值避免这种情况的发生。阈值δ(S)=k/|S|,和分割区域内点的数量呈负相关,k是人为设置的参数,主要和图像尺寸大小相关。
确定边界划分标准后,基于整体差异度的图分割算法过程简单概括如下:
(1)初始化:首先把图像用无向图G=(V,E)表示,图像的像素点用无向图G的顶点表示,vi∈V,相邻像素点间的连线构成边,e=(vi,vj),e∈E。将边按权重大小从小到大排序。
相邻像素点间的权重通过整体差异度计算获得,ω(e)=D(vi,vj)。像素点间的权重越小,意味两点间的差异度越小,即两点间的相似度越高,更可能属于同一平面区域。
(2)分割:初始情况下,每个顶点都是一个单独的区域S。基于上文提到的边界划分标准,逐边判断两个顶点之间是否应该存在划分边界并逐步融合各个区域。重复以上操作直到满足循环退出条件。
(3)循环退出条件:当前平面划分结果数量既不过大,也不过小。标准人为设置,根据图像中场景复杂程度的不同而分割结果数量不同。
使用基于整体差异度的图分割算法进行平面区域划分检测,随着训练的进行,深度值预测准确度逐渐提高,整体差异度计算准确度提高,平面检测效果也会提升。与仅使用颜色区分平面相比,有效避免了假平面区域的产生和过度分割情况的出现。
本发明的一种优选方案中,进行平面区域检测后,使用平面约束使得位于同一平面区域的三维点扁平化,具体方法为:
平面区域为:
NTxp+dp=0
其中,p是平面上的一点,xp是p点对应的三维坐标,dp是p点到平面的距离,N是该平面的法向量,N=(n1,n2,n3)T;
为了避免过度参数化,只使用三个参数进行拟合:
其中,θ表示平面的法向量与平面到原点的距离之间的关系,θ1,θ2,θ3是θ的三个参数;
像素点p对应的归一化后的二维坐标为m=(u,v)T,u,v分别表示像素点p对应的归一化后的二维坐标,像素点p的深度值为逆深度为逆深度与深度互为倒数关系;点p的三维坐标齐次化后为 表示m齐次化后的坐标;
平面内的三维点满足关系式:
计算三维点的逆深度:
获得逆深度后,将逆深度转换为深度
本发明的一种优选方案中,还包括深度估计网络的损伤函数:
使用对齐的法向量作为监督信号,将该信号应用于符合空间结构约束的区域。该约束强制使得通过深度图计算得到的法向量尽可能接近通过基于影消点影消线的结构知识估计的主方向,空间结构约束损失函数Lnorm为:
其中,Nnorm表示符合空间结构约束区域的像素点的数量,和分别表示像素p是否位于符合空间结构约束的区域或平面区域,位于则值为1;像素点p位于某个平面上,它对齐后的法向量是np表示原始的法向量;
通过共平面深度计算得到的深度作为监督信号监督深度估计,有关平面约束的损失函数Lplane为:
其中,Nplane表示平面区域MP内的像素点的数量;Dp是深度估计网络估计的初始深度值,是通过共平面深度计算的深度值;
基于面片构建光度损失函数,使用直接稀疏测距法(Direct Sparse Odometry,简称DSO)提取关键点,以关键点为中心构造一个局部窗口,通过计算局部窗口获得的损失更具鲁棒性。对于给定的一个关键点p=(x,y),把它的邻域定义为以该关键点为中心,大小为N的区域,那么该点的支持域为Ωp:
Ωp={(x+xp,y+yp),xp∈{-N,0,N},yp∈{-N,0,N}}
其中,xp,yp是像素点p的二维坐标;
支持域Ωp的结构性损失LSSIM表示如下:
其中,It表示目标图像,Is表示源图像,It[p]表示图像It中p处的像素值;和分别表示目标图像和源图像的支持域;
L1损失表示为:
将光度损失Lph定义为支持域上的L1损失与结构相似性损失SSIM之和,光度损失Lph为:
其中,α为加权因子;
边缘敏感的平滑度损失Lsmooth为:
其中,是均值归一化逆深度,分别表示x方向和y方向的梯度;
基于结构知识的深度估计网络的总损失函数为:
L=Lph+λ1Lsmooth+λ2Lnorm+λ3Lplane
其中,λ1,λ2和λ3分别设置为0.001、0.05和0.1。
本发明的一种优选方案中,如图8和图9所示,计算每张室内场景图像的每个像素对应的相机光线并获得采样点信息,具体方法如下:
将像素中心点的坐标转换到世界坐标系下需要经过三个步骤:
如图10所示,首先将该点在栅格空间下的坐标变换到标准化设备坐标系下,再将标准化设备坐标系下的坐标变换到屏幕坐标系下,再应用前文深度估计网络中生成的相机坐标系到世界坐标系的4×4位姿变换矩阵,将屏幕坐标系下的坐标变换为世界坐标系下的坐标。
在坐标轴范围为[0,6]的栅格空间中,像素中心点P的坐标表示是像素坐标加上0.5个偏移量即(4.5,2.5),将该像素中心点的坐标转换到标准化设备坐标系下,此时坐标轴范围需要重新映射,映射结果为[0,1],计算像素点的新坐标:
其中,Px,Py是栅格坐标系中像素点P的横纵坐标,PNDCx,PNDCy是标准化设备坐标系中像素点P的横纵坐标;此时像素点P在标准化设备坐标系下的坐标为(0.75,0.42);
把像素点坐标从标准化设备坐标系转换到屏幕坐标系,,坐标轴范围重新映射为[-1,1]:
其中,PScreenx,PScreeny是屏幕坐标系中像素点P的横纵坐标;该像素点P在屏幕坐标系中的坐标是(0.5,0.16);
由于坐标轴范围变为了[-1,1],所以点的坐标有正负之分,进行计算后发现原本应该为正值的纵坐标变为了负值,所以需要对该像素点的纵坐标取相反数:
PScreeny=1-2*PNDCy
以上计算基于图像是正方形的,长宽相等,如果图像的长宽不一样,还需考虑图像的宽高比,ImageW和ImageH分别是图像的宽度和高度,Ratio是图像的宽高比,PCamerax,PCameray是像素点P在相机坐标系下的横纵坐标,相机坐标系下像素点P的坐标为:
相机设置侧视图如图11所示,屏幕空间中图像平面的任何点纵坐标范围都位于[-1,1]之间,假设图像平面距离相机原点1个单位距离,图像平面高度为2个单位距离,从侧面看相机,将相机原点和图像平面的顶部、底部相连组成一个三角形;
相机原点对应的角为angle,假设angle为90度,那么图像平面BC的长度表示为tan(α/2);当angle大于90度时,BC长度大于1;当angle小于90度时,BC长度小于1;将屏幕坐标系下的坐标乘以tan(angle/2)的长度进行放大或缩小,使用角度定义相机的视野范围,得到原始像素坐标相对于相机图像平面的表示,这个点在相机空间中,相机坐标系下相应点的横纵坐标表示为:
在相机位于默认位置时,相机坐标系和世界坐标系对齐。该平面位于距相机原点一个单位距离处,并且相机沿着z轴负向对齐,所以该像素点在图像平面上的最终坐标为:
P=(PCamerax,PCameray,-1)
获得图像像素点P在相机图像平面的位置后,将相机原点定义为光线原点O,光线方向定义为向量OP的方向;如图12所示,使用位姿估计网络生成的位姿变换矩阵将像素点P在相机坐标系下的坐标转换到世界坐标系下,得到在世界坐标系下的对应点O′和P′,O′P′对应世界坐标系下的光线方向;经过相机光线采样后,获得采样点的五维坐标,包含位置坐标(x,y,z)和视线方向其中θ表示相机光线的俯仰角,表示相机光线的方位角。
本发明的一种优选方案中,如图13所示,隐式神经表达网络的结构为:
室内场景的几何和外观分别用符号距离函数(Signed Distance Function,简称SDF)和颜色表示,用集合表示空间中的某个三维物体,表示该物体的边界,定义指标函数IΩ(x):
指标函数表明,如果某点x位于物体内部其值为1,位于物体外部其值为0;
使用d(x)表示符号距离函数:
其中,||·||表示欧几里得二范数,y表示物体边界上的点,x表示空间中任意一点,d(x)表示如果该点位于物体内部,那么它到物体边界处的距离为负值;如果该点位于物体外部,那么它到物体边界处的距离为正值;
d(x)通过多层感知机网络映射表示:
d(x)=Fd(x)
其中,Fd(x)表示根据点的坐标映射为符号距离函数的多层感知机网络;
颜色与输入点的位置及视线方向都有关系,在多层感知机网络中输入点的位置坐标x和视线方向v,通过多层感知机网络映射生成相应的颜色c(x),Fc(x,v)表示根据点的坐标和视线方向映射为颜色的MLP网络:
c(x)=Fc(x,v)
求解场景的几何表示符号距离函数,将符号距离函数转化为隐式神经表达网络生成的体密度的形式,体密度为光在某点被遮挡的概率,用σ(x)表示,它和点x处单位体积的粒子数成正比;点x处单位体积的粒子数越多,表示该点的体密度越大,光在该点被遮挡的概率越大;体密度σ(x)用d(x)表示:
其中,A,β>0,表示可学习的参数;是拉普拉斯分布的累积函数,s在本文指的是d(x):
场景几何用符号距离函数表示为:
求解场景的颜色表示,颜色表示基于体渲染求解,体渲染建模过程如图14所示.假设相机发出一束光线,光线沿视线方向穿过粒子,从光线开始发出到最终到达图像平面,计算出该过程的辐射强度即可得到渲染的图像。体渲染就是对该过程建模,将其表示成数学形式。体渲染过程,假设光线只与其附近的粒子发生反应,即图14中圆柱体部分;并且不考虑内散射及外散射等多种复杂情况。
相机光线采样过程中,假设从相机原点处发出一条光线,c表示相机所处位置,v表示视线方向,t表示空间中的位置,t≥0,射线方程可简写成l(t)=c+tv;透明度表示相机光线中的一个粒子成功穿过某点而没有被反弹的概率,透明度函数定义为:
T(t)=exp(-∫0 tσ(l(s))ds)
其中,s是光线上的采样点;
不透明度函数和透明度函数对应的值相加为1,不透明度函数定义为O(t)=1-T(t),其中T(t)是透明度函数,它表示在相机光线经过空间中的距离t处的透明度;O(t)是单调递增函数,O(0)=0,假设每条光线在无穷远处都有终点,无穷远处的不透明度为1,即O(∞)=1,该函数看作是累积分布函数,根据累积分布函数推断概率密度函数τ(t)为:
体渲染方程定义如下:
V(c,v)=∫0 ∞R(l(t),nR(t),v)τ(t)dt=∫0 ∞T(t)σ(l(t))R(l(t),nR(t),v)dt
其中,R(l,nR,v)是辐射场函数,表示的是从相机所处位置c处发出的v方向上的光线数量;nR表示法向量,辐射场函数之所以和法向量相关,是因为常见材料表面的BRDF模型表面漫射通常是相对于表面法向量进行编码的;法向量通过l(t)得到,体渲染方程简写为:
V(c,v)=∫0 ∞T(t)σ(l(t))R(l(t),v)dt
使用体渲染方法求解三维场景的颜色表示,假设光线从相机中心处发出,颜色函数表示为:
其中,tn表示相机光线的近边界处,tf表示相机光线的远边界处,T(t)是透明度函数,表示从近边界处到远边界处光线的累积透明度,l(t)表示从相机处发出的一条光线,σ(l(t))表示l(t)的体密度,c(l(t),v)表示相应位置的颜色值;
通过分层抽样法求解积分,得到预测颜色值的离散化表示:
其中,weight(x)=1-exp(-x),δi=ti+1-ti,δi表示两个相邻采样点之间的距离;Ti表示第i个采样点的颜色值;ci表示第i个采样点的颜色的权重;σi表示第i个采样点的标准差;
Ti离散化形式如下:
其中,σj表示第j个采样点的标准差,δj=tj+1-tj,δj表示两个相邻采样点之间的距离;
颜色值函数最终表示为:
通过以上体渲染过程,获得了场景的几何表示和颜色表示,后文在此基础上对场景表示进行优化。
本发明的一种优选方案中,优化隐式神经表达网络的方法如下:
通过SegFormer语义分割网络实现语义分割,该网络在室内数据集上表现优异。该网络整体上遵从编码器-解码器结构,由两部分组成:层次化的Transformer编码器模块和轻量化的全MLP解码器模块。前者用于生成不同尺度的特征,后者用来融合不同尺度的特征。
编码器模块用来为给定的图片可以生成类似卷积神经网络的多层次特征,其中既包含高分辨率的粗特征也包含低分辨率的细特征,将不同层次的特征结合使用提高语义分割的性能。编码器模块共包含4个Transformer部分,输入一张大小为H×W×3的图片,将其划分为4×4的面片,并输入到多个变换器中,获得原始图像1/4,1/8,1/16,1/32的分层次特征,每一层次的特征Fi为:
其中,Ci是特征的通道数,即特征图中每个位置的向量维度,这个维度会因不同层次而变化;
SegFormer使用重叠的面片进行合并,并在网络中设置了相应的训练参数,对自注意力层进行改进。对输入特征进行下采样处理,将该步骤的计算复杂度从O(N2)降到O(N2/R);其中N=H×W,和图像分辨率有关,R是下采样率;引入Mix-FFN模块,使用3×3的卷积处理输入特征,传递位置信息,Mix-FFN表示为:
xout=MLP(GELU(Conv3×3(MLP(xin))))+xin
其中,xin是自注意力层输出的结果,也是Mix-FFN的输入;xout是Mix-FFN的输出结果;
SegFormer的解码器结构全部由MLP组成,计算量和参数量都大大减少,有效提高语义分割效率。解码步骤共分为四步,第一步是通过MLP对多尺度特征进行维度变换,不同层的特征都通过一个线性层从而统一通道维度;第二步将特征都使用1/4上采样率进行上采样再连接起来;第三步是采用MLP层融合已经连接起来的特征;最后一步是使用另一个MLP层对融合特征进行分类预测。
解码过程表示为:
其中,表示预测的分层次特征,F表示经过第三步后连接好的特征,Mask表示预测的掩膜,Linear(Cin,Cout)(@)表示Cin和Cout分别作为输入和输出向量的线性层,Ncls是类别的数量;Upsample(@)表示表示上采样操作,用于将特征进行放大;
通过语义分割网络划分后,得到了地面、墙壁和天花板等低纹理区域,对地面和墙壁这两个区域使用几何约束,使得属于同一墙壁、地面区域的点共享相同的法向量方向,并且法向量方向和三个主方向之一保持一致,地面和墙壁结构不同,分别为这两个区域设计不同的损失函数;
通过语义分割网络划分后,得到了地面、墙壁和天花板等低纹理区域。由于室内拍摄的图片很少包括天花板,所以仅考虑地面和墙壁区域。地面和墙壁区域的法向量通常和三维空间中的三个主方向x轴、y轴和z轴保持一致。基于此理论,对地面和墙壁这两个区域使用几何约束,使得属于同一墙壁、地面区域的点共享相同的法向量方向,并且法向量方向和三个主方向之一保持一致。地面和墙壁结构不同,所以分别为这两个区域设计了不同的损失函数。
对于地面区域,假设地面垂直于z轴,那么地面区域的点的损失函数Lf(l)为:
Lf(l)=|1-n(xl)·nf|
其中,xl表示相机发出的光线和物体表面的交点,n(xl)是计算符号距离d(x)在点xl处的梯度得到的法向量,nf表示目标地面区域的单位法向量,方向向上,nf=(0,0,1);
对于墙壁区域,定义一个可学习的法向量nw,假设墙壁上的点或者与法向量nw平行或者与法向量nw垂直,墙壁区域的像素点的损失函数Lw(l)为:
其中,nw是一个可学习的法向量,初始值设置为nw=(1,0,0),并且z坐标始终为0;在实践中使用带有重力传感器的移动平台拍摄RGB图片时,可以很容易地保证相机垂直于当时的地面,即与真实世界中的z坐标轴方向一致。但是却难以保证墙壁区域和真实世界的x轴或y轴是完全对齐的,因此需要将nw设置为可学习的参数,使其跟随网络的其他参数一起训练以达到矫正的效果。
几何约束相关的损失函数Lgeo定义为:
其中,F和W分别表示地面区域和墙面区域的光线集合;
将隐式神经表达网络生成的三维语义信息称为语义对数,语义对数与视线方向和法向量都无关,只与输入点的坐标有关。通过MLP进行语义对数s(x)映射:
s(x)=Fθ(x)
其中Fθ表示可学习的多层感知机;
通过神经网络预测三维空间中每个点的语义对数,再使用体渲染技术将其渲染到二维图像中,语义对数为:
其中,si表示相机光线上的采样点的语义对数;
获得语义对数后,通过softmax函数将其转化成多类概率,多类概率指该点的语义是墙壁、地面或其他部分的概率,再将多类概率整合到几何损失中,将几何损失函数修改为语义几何联合优化损失函数Lunion:
其中,表示该像素的语义是地面的概率,Lf(l)表示地面部分的损失函数,表示该像素的语义是墙壁的概率,Lw(l)表示墙壁部分的损失函数;
联合优化损失函数可以优化场景表示,以地面区域为例,如果输入的语义分割结果是正确的,那么Lf(l)应该减少的很快;如果输入的语义分割结果是错误的,那么Lf(l)可能在训练过程中产生震动。为了减少这项,梯度会使得这项变小,从而优化语义分割结果。
引入交叉熵损失函数,最终的交叉熵损失函数Lseman为:
其中,r∈{f,w,o}表示属于地面、墙壁和其他部分的点,表示通过隐式神经表达网络生成的该点是r类标签的概率,pr(l)表示二维语义分割网络预测的语义概率。
本发明的一种优选方案中,室内场景的三维重建方法还包括隐式神经表达网络的总损失函数:
颜色损失LRGB为:
其中,R表示通过采样点像素的光线集合,C(l)表示像素点的颜色真值,是隐式神经表达网络渲染的像素点的颜色值;
Eikonal损失LEikonal为:
其中,Y表示从随机均匀空间采样的点和像素点的集合;
使用深度估计网络生成的深度图监督神经网络的训练,深度损失LDepth为:
其中,δi表示两个相邻采样点之间的距离;表示由深度估计网络生成的深度图,是对相机光线上N个采样点进行加权求和得到的;Ti表示第i个采样点的值;ti表示第i个采样点的权重系数;σi表示第i个采样点的标准差;
联合优化损失Lunion为:
交叉熵损失Lseman为:
基于隐式神经表达的室内三维重建网络的总损失函数L表示为:
L=LRGB+λ1LEikonal+λ2LDepth+λ3Lunion+λ4Lseman
其中,λ1,λ2,λ3和λ4分别被设置为0.1、0.5、0.05和0.5。
本发明的一种优选方案中,将隐式神经表达网络转化为显式网格的方法如下:
使用TSDF算法构建三维空间体素,将需要重建的物体或场景看作是由L×W×H个立方体组成的,这些小立方体也可以称作体素。给定一个尺寸大小为100×100×100的TSDF模型,如果每个体素大小为0.05m×0.04m×0.03m,那么该模型可以表示5m×4m×3m的场景。
TSDF值的计算公式为:
tsdfi(x)=max(-1,min(1,sdfi(x)/t))
其中,x表示体素,绿色部分表示物体的横截面,p表示从相机光心发出的光线经过体素x后与物体截面的交点,camz(x)表示体素x和相机的距离,sdfi(x)表示x的符号距离值;
当体素x距离截面的距离比较近时,它对应的TSDF值在[-1,1]区间;当体素x距离截面的距离比较远时,它对应的TSDF值为1或-1,获得每幅图像的TSDF值后,将其合并到当前已有的TSDF模型中,合并多幅图像既可以补全单幅图片缺少的信息又可以在一定程度上提升模型精度;合并TSDF的过程表示为:
Wi(x)=Wi-1(x)+wi(x)
其中,TSDFi表示新生成的TSDF模型,Wi-1(x)表示之前生成的TSDF模型的权重系数,tsdfi及wi(x)分别表示当前需要更新的体素的TSDF值和对应权重,Wi(x)表示总权重;
按照合并TSDF的过程进行多次融合,即可得到最终的TSDF模型;
使用Marching Cubes算法提取等值面,Marching Cubes算法的基本单位是体元,体元是由8个体素点组成的小立方体,在立方体中,如果体素顶点的TSDF值大于或等于等值面,那么它位于等值面外,设置为0;如果体素顶点的TSDF值小于等值面,那么它位于等值面内,设置为1;
每个立方体有8个顶点,所以存在256种可能的等值面分布情况,图15所示,列举了其中14种基本情况,其他情况可通过基本情况进行变换得到。在获得所有体元的等值面后,连接等值面获得完整的网格结果。
本发明还提供一种室内场景的三维重建系统,包括图像采集模块和处理模块,图像采集模块用于获取室内场景的图像,图像采集模块的输出端与处理模块的输入端电性连接,处理模块执行本发明所述方法,进行三维重建。该系统结构简单,进行三维重建效果好,利于使用。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
Claims (14)
1.一种室内场景的三维重建方法,其特征在于,包括如下步骤:
获取室内场景的图像,并输入深度估计网络,得到初始深度图;
基于影消点和影消线的结构知识,估计出主方向;
利用深度图和法向量之间的强相关性,计算初始深度图像素点对应的法向量;
基于空间结构约束,检测所有根据深度图计算得到的法向量,将其和估计的主方向比较对齐;
基于结构知识的空间结构约束和平面约束,辅助深度估计网络训练,获取优化后的深度图;
根据室内场景图像、拍摄室内场景图像的相机参数以及优化后深度图的位姿,进行相机光线采样,计算每张室内场景图像的每个像素对应的相机光线并获得采样点信息;
将采样点的坐标和视线方向输入隐式神经表达网络,利用深度估计网络生成的深度图作为监督信号,训练隐式神经表达网络;
将室内场景图像输入语义分割网络,生成二维语义分割结果并输入隐式神经表达网络,使用隐式神经表达网络生成的语义信息优化二维语义分割结果;
利用优化后的语义信息和几何约束,优化隐式神经表达网络;
将隐式神经表达网络转化为显式网格,得到三维重建结果。
2.如权利要求1所述的室内场景的三维重建方法,其特征在于,所述深度估计网络包括位姿估计模块和深度估计模块;
位姿估计模块中,相机在三维空间中的运动是六自由度的刚性运动,它的位姿变化使用沿x轴、y轴、z轴的三个平移变量tx、ty、tz和绕x轴、y轴、z轴旋转的三个角度rx、ry、rz表示;
输入源图像Is和目标图像It,位姿估计模块输出对应的六个变量,再通过这六个变量构造旋转矩阵R和平移矩阵T,得到从It到Is时刻的位姿变换矩阵Tt→s:
T=[tx ty tz]T
深度估计模块包括编码器和解码器,输入目标图像It,经过编码器卷积操作,特征图的尺度变小,通道数变多;而解码器进行反卷积操作,用于恢复图像尺度,编码器和解码器之间尺度相同的特征图跨层连接。
3.如权利要求1所述的室内场景的三维重建方法,其特征在于,估计主方向的方法为:
假设空间中的一条直线方向为d=[a,b,c]T,a、b、c是该直线在三个坐标轴上的分量,无穷远点原本的坐标表示为x∞=[a,b,c,0]T;无穷远点经过摄像机变换投影到影消点v1,投影矩阵为M,假设相机坐标系和世界坐标系一致,则M=K[I,0],K为相机内参矩阵,I是3×3的单位矩阵,投影变换为:
其中,影消点v1和这条直线的关系满足v1=Kd,直线方向为:
主方向的单位向量μ1和直线方向是平行的,所以主方向的单位向量满足:
μ1∝K-1v1
对于影消点v2,按照相同方法可得:
μ2∝K-1v2
计算两个影消点v1和v2的主方向μ1和μ2,第三个主方向通过交叉积μ3=μ1×μ2计算,获得三个主方向。
4.如权利要求1所述的室内场景的三维重建方法,其特征在于,计算初始深度图像素点对应的法向量的方法如下:
通过深度估计网络的DepthNet获得初始深度图,计算初始深度图中每个像素点p的三维坐标φ(xp):
φ(xp)=D(p)K-1xp
其中,D(p)表示通过深度估计网络的DepthNet获得的像素p的深度值,K为相机内参矩阵,xp是像素点p的二维坐标;
法向量N(xi)为:
其中,P表示像素点xi的8邻域内的所有像素点,xi1和xi2表示其中一对像素点,n表示像素点xi的8邻域内的所有像素点对(xi1,xi2)的法向量积, 分别表示像素点对(xi1,xi)和(xi2,xi)的权重,‖n‖2表示向量n的欧式范数。
5.如权利要求1所述的室内场景的三维重建方法,其特征在于,检测所有根据深度图计算得到的法向量,将其和估计的主方向比较对齐的方法为:
基于深度图和法向量之间的强相关性计算得到法向量,再使用基于空间结构约束的法向量检测,对所有属于主平面的法向量进行分类;
对于某个像素点,通过深度图计算得到的法向量和使用影消点和影消线估计得到的三个主方向之一相似度最高并达到某个阈值,那么该像素点属于以这个主方向为法向量的对应的平面;
利用余弦相似度比较通过深度图获得的法向量np和每个主方向μk之间的差值,并且选择相似度最高的一个:
其中,表示对齐后的法向量,cos(·,·)表示余弦相似度,表示为:
每个像素最高的相似度记为通过将掩膜定义为:
其中,表示符合空间结构约束的区域,t表示设定的阈值,当最大相似度大于给定阈值时,掩膜为1,表示该像素点属于符合空间结构约束的区域;当最大相似度小于给定阈值时,掩膜为0,表示该像素点不属于符合空间结构约束的区域。
6.如权利要求1所述的室内场景的三维重建方法,其特征在于,在添加平面约束之前需要对平面区域进行检测,具体方法如下:
设室内场景图像上有一个像素点p,它的相邻像素点为q,那么两个像素点之间的颜色差异度Dc(p,q):
Dc(p,q)=‖Ip-Iq‖
其中,Ip,Iq分别表示像素点p和像素点q的RGB颜色值;
使用对齐后的法向量,假设像素点p位于某个平面上,它对齐后的法向量是相邻点q的对齐后的法向量为两个法向量之间的差异度Dn(p,q)定义为两个像素点之间的欧式空间距离:
和表示所有相邻像素点的最大法向量差异度和最小法向量差异度,对法向量差异度归一化,归一化操作表示为[·]:
设像素点p的三维坐标为xp,平面到点p的距离distp为:
平面到点q的距离为distq,p,q两点之间的平面到原点距离的差异度Dd(p,q)为:
Dd(p,q)=|distp-distq|
对Dd(p,q)进行归一化操作,得到归一化后的值[Dd(p,q)],几何差异度是法向量差异度和平面到原点的距离差异度之和,几何差异度Dg(p,q)定义为:
Dg(p,q)=[Dn(p,q)]+[Dd(p,q)]
比较颜色差异度和几何差异度的大小,选择较大值作为整体差异度D(p,q):
D(p,q)=max([Dc(p,q)],[Dg(p,q)])
基于整体差异度确定平面边界划分标准,定义分割区域S的内差和外差,通过比较内差、外差大小,确定两个区域之间是否应该存在边界划分,分割区域的内差Inter(S)指的是分割区域S中边的最大权重值:
其中,MST(S,E)是分割区域S内部像素点之间形成的最小生成树,E是其中所有像素点之间的边的集合,e表示其中的一条边,而ω(e)表示边e的权重;
分割区域的外差Exter(S1,S2)指的是两个分割区域间S1和S2,有边连接的顶点对的最小权重值:
其中,vi,vj是分别属于两个分割区域的顶点,可能存在两个分割区域之间没有任何连接边的情况,此时两个分割区域之间的外差定义为无穷大,Exter(S1,S2)=∞;
通过比较内差和外差判断两个分割区域之间是否应该存在边界划分,边界划分的标准定义为:
MinInter(S1,S2)=min(Inter(S1),Inter(S2))
其中,D(S1,S2)是一个布尔值,表示是否应该在S1,S2之间进行边界划分,MinInter(S1,S2)是最小分割区域内差,使用最小分割区域内差与外差比较,并不是直接使用分割区域的内差和外差进行比较,而是在原本的内差基础上添加了阈值δ(S),将最小分割区域内差计算公式修改为:
MinInter(S1,S2)=min(Inter(S1)+δ(S1),Inter(S2)+δ(S2))
阈值δ(S)=k/|S|,和分割区域内点的数量呈负相关,k是人为设置的参数,主要和图像尺寸大小相关。
7.如权利要求6所述的室内场景的三维重建方法,其特征在于,进行平面区域检测后,使用平面约束使得位于同一平面区域的三维点扁平化,具体方法为:
平面区域为:
NTxp+dp=0
其中,p是平面上的一点,xp是p点对应的三维坐标,dp是p点到平面的距离,N是该平面的法向量,N=(n1,n2,n3)T;
使用三个参数进行拟合:
其中,θ表示平面的法向量与平面到原点的距离之间的关系,θ1,θ2,θ3是θ的三个参数;
像素点p对应的归一化后的二维坐标为m=(u,v)T,u,v分别表示像素点p对应的归一化后的二维坐标,像素点p的深度值为逆深度为逆深度与深度互为倒数关系;点p的三维坐标齐次化后为 表示m齐次化后的坐标;
平面内的三维点满足关系式:
计算三维点的逆深度:
获得逆深度后,将逆深度转换为深度
8.如权利要求1所述的室内场景的三维重建方法,其特征在于,还包括深度估计网络的损伤函数:
空间结构约束损失函数Lnorm为:
其中,Nnorm表示符合空间结构约束区域的像素点的数量,和分别表示像素p是否位于符合空间结构约束的区域或平面区域,位于则值为1;像素点p位于某个平面上,它对齐后的法向量是np表示原始的法向量;
有关平面约束的损失函数Lplane为:
其中,Nplane表示平面区域MP内的像素点的数量;Dp是深度估计网络估计的初始深度值,是通过共平面深度计算的深度值;
基于面片构建光度损失函数,对于给定的一个关键点p=(x,y),把它的邻域定义为以该关键点为中心,大小为N的区域,那么该点的支持域为Ωp:
Ωp={(x+xp,y+yp),xp∈{-N,0,N},yp∈{-N,0,N}}
其中,xp,yp是像素点p的二维坐标;
支持域Ωp的结构性损失LSSIM表示如下:
其中,It表示目标图像,Is表示源图像,It[p]表示图像It中p处的像素值;和分别表示目标图像和源图像的支持域;
L1损失表示为:
将光度损失Lph定义为支持域上的L1损失与结构相似性损失SSIM之和,光度损失Lph为:
其中,α为加权因子;
边缘敏感的平滑度损失Lsmooth为:
其中,是均值归一化逆深度,分别表示x方向和y方向的梯度;
基于结构知识的深度估计网络的总损失函数为:
L=Lph+λ1Lsmooth+λ2Lnorm+λ3Lplane
其中,λ1,λ2和λ3分别设置为0.001、0.05和0.1。
9.如权利要求1所述的室内场景的三维重建方法,其特征在于,计算每张室内场景图像的每个像素对应的相机光线并获得采样点信息,具体方法如下:
在坐标轴范围的栅格空间中,像素中心点P的坐标表示是像素坐标加上0.5个偏移量,将该像素中心点的坐标转换到标准化设备坐标系下,此时坐标轴范围需要重新映射,映射结果为[0,1],计算像素点的新坐标:
其中,Px,Py是栅格坐标系中像素点P的横纵坐标,PNDCx,PNDCy是标准化设备坐标系中像素点P的横纵坐标;
把像素点坐标从标准化设备坐标系转换到屏幕坐标系:
其中,PScreenx,PScreeny是屏幕坐标系中像素点P的横纵坐标;
由于坐标轴范围变为了[-1,1],所以点的坐标有正负之分,进行计算后发现原本应该为正值的纵坐标变为了负值,所以需要对该像素点的纵坐标取相反数:
PScreeny=1-2*PNDCy
考虑图像的宽高比,ImageW和ImageH分别是图像的宽度和高度,Ratio是图像的宽高比,PCamerax,PCameray是像素点P在相机坐标系下的横纵坐标,相机坐标系下像素点P的坐标为:
屏幕空间中图像平面的任何点纵坐标范围都位于[-1,1]之间,假设图像平面距离相机原点1个单位距离,图像平面高度为2个单位距离,从侧面看相机,将相机原点和图像平面的顶部、底部相连组成一个三角形;
相机原点对应的角为angle,假设angle为90度,那么图像平面BC的长度表示为tan(angle/2);当angle大于90度时,BC长度大于1;当angle小于90度时,BC长度小于1;将屏幕坐标系下的坐标乘以tan(angle/2)的长度进行放大或缩小,使用角度定义相机的视野范围,得到原始像素坐标相对于相机图像平面的表示,这个点在相机空间中,相机坐标系下相应点的横纵坐标表示为:
在相机位于默认位置时,相机坐标系和世界坐标系对齐。该平面位于距相机原点一个单位距离处,并且相机沿着z轴负向对齐,所以该像素点在图像平面上的最终坐标为:
P=(PCamerax,PCameray,-1)
获得图像像素点P在相机图像平面的位置后,将相机原点定义为光线原点O,光线方向定义为向量OP的方向;使用位姿估计网络生成的位姿变换矩阵将像素点P在相机坐标系下的坐标转换到世界坐标系下,得到在世界坐标系下的对应点O′和P′,O′P′对应世界坐标系下的光线方向;经过相机光线采样后,获得采样点的五维坐标,包含位置坐标(x,y,z)和视线方向其中θ表示相机光线的俯仰角,表示相机光线的方位角。
10.如权利要求1所述的室内场景的三维重建方法,其特征在于,所述隐式神经表达网络的结构为:
用集合表示空间中的某个三维物体,表示该物体的边界,定义指标函数IΩ(x):
指标函数表明,如果某点x位于物体内部其值为1,位于物体外部其值为0;
使用d(x)表示符号距离函数:
其中,||·||表示欧几里得二范数,y表示物体边界上的点,x表示空间中任意一点,d(x)表示如果该点位于物体内部,那么它到物体边界处的距离为负值;如果该点位于物体外部,那么它到物体边界处的距离为正值;
d(x)通过多层感知机网络映射表示:
d(x)=Fd(x)
其中,Fd(x)表示根据点的坐标映射为符号距离函数的多层感知机网络;
在多层感知机网络中输入点的位置坐标x和视线方向v,通过多层感知机网络映射生成相应的颜色c(x),Fc(x,v)表示根据点的坐标和视线方向映射为颜色的多层感知机MLP网络:
c(x)=Fc(x,v)
求解场景的几何表示符号距离函数,将符号距离函数转化为隐式神经表达网络生成的体密度的形式,体密度为光在某点被遮挡的概率,用σ(x)表示,它和点x处单位体积的粒子数成正比;点x处单位体积的粒子数越多,表示该点的体密度越大,光在该点被遮挡的概率越大;体密度σ(x)用d(x)表示:
其中,A,β>0,表示可学习的参数;是拉普拉斯分布的累积函数,s在本文指的是d(x):
场景几何用符号距离函数表示为:
相机光线采样过程中,假设从相机原点处发出一条光线,c表示相机所处位置,v表示视线方向,t表示空间中的位置,t≥0,射线方程可简写成l(t)=c+tv;透明度表示相机光线中的一个粒子成功穿过某点而没有被反弹的概率,透明度函数定义为:
其中,s是光线上的采样点;
不透明度函数和透明度函数对应的值相加为1,不透明度函数定义为O(t)=1-T(t),其中T(t)是透明度函数,它表示在相机光线经过空间中的距离t处的透明度;O(t)是单调递增函数,O(0)=0,假设每条光线在无穷远处都有终点,无穷远处的不透明度为1,即O(∞)=1,该函数看作是累积分布函数,根据累积分布函数推断概率密度函数τ(t)为:
体渲染方程定义如下:
其中,R(l,nR,v)是辐射场函数,表示的是从相机所处位置c处发出的v方向上的光线数量;nR表示法向量,辐射场函数之所以和法向量相关,是因为常见材料表面的BRDF模型表面漫射通常是相对于表面法向量进行编码的;法向量通过l(t)得到,体渲染方程简写为:
使用体渲染方法求解三维场景的颜色表示,假设光线从相机中心处发出,颜色函数表示为:
其中,tn表示相机光线的近边界处,tf表示相机光线的远边界处,T(t)是透明度函数,表示从近边界处到远边界处光线的累积透明度,l(t)表示从相机处发出的一条光线,σ(l(t))表示l(t)的体密度,c(l(t),v)表示相应位置的颜色值;
通过分层抽样法求解积分,得到预测颜色值的离散化表示:
其中,weight(x)=1-exp(-x),δi=ti+1-ti,δi表示两个相邻采样点之间的距离;Ti表示第i个采样点的颜色值;ci表示第i个采样点的颜色的权重;σi表示第i个采样点的标准差;
Ti离散化形式如下:
其中,σj表示第j个采样点的标准差,δj=tj+1-tj,δj表示两个相邻采样点之间的距离;
颜色值函数最终表示为:
11.如权利要求10所述的室内场景的三维重建方法,其特征在于,优化隐式神经表达网络的方法如下:
输入一张大小为H×W×3的图片,将其划分为4×4的面片,并输入到多个变换器中,获得原始图像1/4,1/8,1/16,1/32的分层次特征,每一层次的特征Fi为:
其中,Ci是特征的通道数,即特征图中每个位置的向量维度,这个维度会因不同层次而变化;
对输入特征进行下采样处理,将该步骤的计算复杂度从O(N2)降到O(N2/R);其中N=H×W,和图像分辨率有关,R是下采样率;引入Mix-FFN模块,使用3×3的卷积处理输入特征,传递位置信息,Mix-FFN表示为:
xout=MLP(GELU(Conv3×3(MLP(xin))))+xin
其中,xin是自注意力层输出的结果,也是Mix-FFN的输入;xout是Mix-FFN的输出结果;
解码过程表示为:
其中,表示预测的分层次特征,F表示经过第三步后连接好的特征,Mask表示预测的掩膜,Linear(Cin,Cout)(·)表示Cin和Cout分别作为输入和输出向量的线性层,Ncls是类别的数量;Upsample(·)表示表示上采样操作,用于将特征进行放大;
通过语义分割网络划分后,得到了地面、墙壁和天花板等低纹理区域,对地面和墙壁这两个区域使用几何约束,使得属于同一墙壁、地面区域的点共享相同的法向量方向,并且法向量方向和三个主方向之一保持一致,地面和墙壁结构不同,分别为这两个区域设计不同的损失函数;
对于地面区域,假设地面垂直于z轴,那么地面区域的点的损失函数Lf(l)为:
Lf(l)=|1-n(xl)·nf|
其中,xl表示相机发出的光线和物体表面的交点,n(xl)是计算符号距离d(x)在点xl处的梯度得到的法向量,nf表示目标地面区域的单位法向量,方向向上,nf=(0,0,1);
对于墙壁区域,定义一个可学习的法向量nw,假设墙壁上的点或者与法向量nw平行或者与法向量nw垂直,墙壁区域的像素点的损失函数Lw(l)为:
其中,nw是一个可学习的法向量,初始值设置为nw=(1,0,0),并且z坐标始终为0;
几何约束相关的损失函数Lgeo定义为:
其中,F和W分别表示地面区域和墙面区域的光线集合;
通过MLP进行语义对数s(x)映射:
s(x)=Fθ(x)
其中Fθ表示可学习的多层感知机;
通过神经网络预测三维空间中每个点的语义对数,再使用体渲染技术将其渲染到二维图像中,语义对数为:
其中,si表示相机光线上的采样点的语义对数;
获得语义对数后,通过softmax函数将其转化成多类概率,多类概率指该点的语义是墙壁、地面或其他部分的概率,再将多类概率整合到几何损失中,将几何损失函数修改为语义几何联合优化损失函数Lunion:
其中,表示该像素的语义是地面的概率,Lf(l)表示地面部分的损失函数,表示该像素的语义是墙壁的概率,Lw(l)表示墙壁部分的损失函数;
引入交叉熵损失函数,最终的交叉熵损失函数Lseman为:
其中,r∈{f,w,o}表示属于地面、墙壁和其他部分的点,表示通过隐式神经表达网络生成的该点是r类标签的概率,pr(l)表示二维语义分割网络预测的语义概率。
12.如权利要求11所述的室内场景的三维重建方法,其特征在于,还包括隐式神经表达网络的总损失函数:
颜色损失LRGB为:
其中,R表示通过采样点像素的光线集合,C(l)表示像素点的颜色真值,是隐式神经表达网络渲染的像素点的颜色值;
Eikonal损失LEikonal为:
其中,Y表示从随机均匀空间采样的点和像素点的集合;
使用深度估计网络生成的深度图监督神经网络的训练,深度损失LDepth为:
其中,δi表示两个相邻采样点之间的距离;表示由深度估计网络生成的深度图,是对相机光线上N个采样点进行加权求和得到的;Ti表示第i个采样点的值;ti表示第i个采样点的权重系数;σi表示第i个采样点的标准差;
联合优化损失Lunion为:
交叉熵损失Lseman为:
基于隐式神经表达的室内三维重建网络的总损失函数L表示为:
L=LRGB+λ1LEikonal+λ2LDepth+λ3Lunion+λ4Lseman
其中,λ1,λ2,λ3和λ4分别被设置为0.1、0.5、0.05和0.5。
13.如权利要求11所述的室内场景的三维重建方法,其特征在于,将隐式神经表达网络转化为显式网格的方法如下:
使用TSDF算法构建三维空间体素,TSDF值的计算公式为:
tsdfi(x)=max(-1,min(1,sdfi(x)/t))
其中,x表示体素,绿色部分表示物体的横截面,p表示从相机光心发出的光线经过体素x后与物体截面的交点,camz(x)表示体素x和相机的距离,sdfi(x)表示x的符号距离值;
当体素x距离截面的距离比较近时,它对应的TSDF值在[-1,1]区间;当体素x距离截面的距离比较远时,它对应的TSDF值为1或-1,获得每幅图像的TSDF值后,将其合并到当前已有的TSDF模型中,合并多幅图像既可以补全单幅图片缺少的信息又可以在一定程度上提升模型精度;合并TSDF的过程表示为:
Wi(x)=Wi-1(x)+wi(x)
其中,TSDFi表示新生成的TSDF模型,Wi-1(x)表示之前生成的TSDF模型的权重系数,tsdfi及wi(x)分别表示当前需要更新的体素的TSDF值和对应权重,Wi(x)表示总权重;
按照合并TSDF的过程进行多次融合,即可得到最终的TSDF模型;
使用Marching Cubes算法提取等值面,Marching Cubes算法的基本单位是体元,体元是由8个体素点组成的小立方体,在立方体中,如果体素顶点的TSDF值大于或等于等值面,那么它位于等值面外,设置为0;如果体素顶点的TSDF值小于等值面,那么它位于等值面内,设置为1;
在获得所有体元的等值面后,连接等值面获得完整的网格结果。
14.一种室内场景的三维重建系统,其特征在于,包括图像采集模块和处理模块,所述图像采集模块用于获取室内场景的图像,图像采集模块的输出端与处理模块的输入端连接,所述处理模块执行权利要求1-13之一所述方法,进行三维重建。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310922149.4A CN116797742A (zh) | 2023-07-26 | 2023-07-26 | 室内场景的三维重建方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310922149.4A CN116797742A (zh) | 2023-07-26 | 2023-07-26 | 室内场景的三维重建方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116797742A true CN116797742A (zh) | 2023-09-22 |
Family
ID=88040365
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310922149.4A Pending CN116797742A (zh) | 2023-07-26 | 2023-07-26 | 室内场景的三维重建方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116797742A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117132727A (zh) * | 2023-10-23 | 2023-11-28 | 光轮智能(北京)科技有限公司 | 一种地图数据获取方法、计算机可读存储介质及电子设备 |
CN117252987A (zh) * | 2023-10-08 | 2023-12-19 | 烟台大学 | 一种基于显式和隐式混合编码的动态场景重建方法 |
CN117519150A (zh) * | 2023-11-02 | 2024-02-06 | 浙江大学 | 一种结合边界探索的自主隐式室内场景重建方法 |
CN117611648A (zh) * | 2023-12-04 | 2024-02-27 | 北京斯年智驾科技有限公司 | 一种图像深度估计方法、系统和存储介质 |
CN117853678A (zh) * | 2024-03-08 | 2024-04-09 | 陕西天润科技股份有限公司 | 基于多源遥感进行地理空间数据三维实体化改造的方法 |
CN118334492A (zh) * | 2024-06-14 | 2024-07-12 | 山东科技大学 | 边缘检测模型训练方法、边缘检测方法、设备及存储介质 |
CN118365808A (zh) * | 2024-06-20 | 2024-07-19 | 安徽省农业科学院农业经济与信息研究所 | 基于直线采样和直线约束的养殖舍内场景三维重建方法 |
-
2023
- 2023-07-26 CN CN202310922149.4A patent/CN116797742A/zh active Pending
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117252987A (zh) * | 2023-10-08 | 2023-12-19 | 烟台大学 | 一种基于显式和隐式混合编码的动态场景重建方法 |
CN117132727A (zh) * | 2023-10-23 | 2023-11-28 | 光轮智能(北京)科技有限公司 | 一种地图数据获取方法、计算机可读存储介质及电子设备 |
CN117132727B (zh) * | 2023-10-23 | 2024-02-06 | 光轮智能(北京)科技有限公司 | 一种地图数据获取方法、计算机可读存储介质及电子设备 |
CN117519150A (zh) * | 2023-11-02 | 2024-02-06 | 浙江大学 | 一种结合边界探索的自主隐式室内场景重建方法 |
CN117519150B (zh) * | 2023-11-02 | 2024-06-04 | 浙江大学 | 一种结合边界探索的自主隐式室内场景重建方法 |
CN117611648A (zh) * | 2023-12-04 | 2024-02-27 | 北京斯年智驾科技有限公司 | 一种图像深度估计方法、系统和存储介质 |
CN117853678A (zh) * | 2024-03-08 | 2024-04-09 | 陕西天润科技股份有限公司 | 基于多源遥感进行地理空间数据三维实体化改造的方法 |
CN117853678B (zh) * | 2024-03-08 | 2024-05-17 | 陕西天润科技股份有限公司 | 基于多源遥感进行地理空间数据三维实体化改造的方法 |
CN118334492A (zh) * | 2024-06-14 | 2024-07-12 | 山东科技大学 | 边缘检测模型训练方法、边缘检测方法、设备及存储介质 |
CN118365808A (zh) * | 2024-06-20 | 2024-07-19 | 安徽省农业科学院农业经济与信息研究所 | 基于直线采样和直线约束的养殖舍内场景三维重建方法 |
CN118365808B (zh) * | 2024-06-20 | 2024-08-30 | 安徽省农业科学院农业经济与信息研究所 | 基于直线采样和直线约束的养殖舍内场景三维重建方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116797742A (zh) | 室内场景的三维重建方法及系统 | |
CN111798475B (zh) | 一种基于点云深度学习的室内环境3d语义地图构建方法 | |
US20210312710A1 (en) | Systems and methods for processing 2d/3d data for structures of interest in a scene and wireframes generated therefrom | |
CN109410307B (zh) | 一种场景点云语义分割方法 | |
CN108038906B (zh) | 一种基于图像的三维四边形网格模型重建方法 | |
CN111832655A (zh) | 一种基于特征金字塔网络的多尺度三维目标检测方法 | |
CN108269266A (zh) | 使用马尔可夫随机场优化来产生分割图像 | |
CN115423978A (zh) | 用于建筑物重建的基于深度学习的图像激光数据融合方法 | |
CN116822100B (zh) | 一种数字孪生建模方法及其仿真试验系统 | |
CN115222884A (zh) | 一种基于人工智能的空间对象分析及建模优化方法 | |
CN114742966A (zh) | 一种基于图像的三维场景重建方法及装置 | |
CN118229889B (zh) | 影视现场预演辅助方法及装置 | |
CN115359223A (zh) | 一种实景三维城市开发显示系统及方法 | |
CN116385660A (zh) | 室内单视图场景语义重建方法及系统 | |
CN112750155B (zh) | 基于卷积神经网络的全景深度估计方法 | |
JP2023079022A (ja) | 情報処理装置及び情報生成方法 | |
Sneha et al. | A Neural Radiance Field-Based Architecture for Intelligent Multilayered View Synthesis | |
Lyu et al. | 3DOPFormer: 3D occupancy perception from multi-camera images with directional and distance enhancement | |
CN116152442B (zh) | 一种三维点云模型生成方法及装置 | |
Chen et al. | Ground 3D object reconstruction based on multi-view 3D occupancy network using satellite remote sensing image | |
CN116310228A (zh) | 一种针对遥感场景的表面重建与新视图合成方法 | |
CN115908731A (zh) | 一种基于云边协同的双无人机三维重建方法 | |
CN113129348B (zh) | 一种基于单目视觉的道路场景中车辆目标的三维重建方法 | |
CN114187404A (zh) | 一种用于近海域高分辨率的三维重建方法和系统 | |
CN117934727B (zh) | 镜面物体的三维重建方法、装置、设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |