[0032] 为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
[0033] 本发明提出的基于人工神经网络的实时场景布局识别及重建方法,如图1所示,包括以下三个步骤:
[0034] 1)搭建人工神经网络模型,方法中选择了卷积残差神经网络作为网络的基本结构,为了使得网络可以输出矩阵,在网络的顶端用若干卷积层代替一般的全连接层。为了克服训练数据的不均衡和更好地处理场景中存在较为严重遮挡的情况,网络训练分为三个阶段:
[0035] I.第一阶段:训练网络实现对复杂室内场景的语义分割。此处用到的网络是在ResNet101的基础上修改得到的,输入数据为普通RGB图片,对应的ground truth为输入图片中的场景人工语义分割的结果,网络输出结果与ground truth之间进行比较,运用梯度下降的方法求得较好的网络权值,得到的模型可以对室内场景中的物体进行37类的分类,网络输出结果为w*h*37的矩阵,每个通道对应一类物体在该场景中存在概率,取每个像素对应的37维概率向量中最大值所在通道作为汇总结果中该像素的类别,最终可以得到该场景的语义分割结果,该结果为最终得到场景布局识别提供一个有用的先验条件。
[0036] II.第二阶段:训练网络实现场景布局分割。第二阶段中用的训练数据为若干室内场景的RGB图片经过第一阶段的网络后得到若干对应语义分割的37通道的特征图,ground truth为场景中三类交线(墙与地面,墙与天花板,墙与墙)和背景的分类结果。将每个像素点作为训练数据。该阶段使用一个全连接层,实现37类语义分割的概率到4类布局(三种交线加背景)的映射,训练得到的模型实现输入37维概率分布,输出该种情况下4类布局的概率分布。
[0037] III.第三阶段:该阶段为前两个阶段的综合,将第二阶段的全连接层改为卷积层,两个阶段的网络结构合并为一个完整网络,第二阶段中得到的权值改变其形状,37*4的改为1*1*37*4,用于初始化最顶端的卷积层权值,同时继承第一阶段得到权值,作为初始权值。训练数据为RGB图片和对应的场景布局人工标记结果,进行端对端训练,对权值进行微调,最终得到的模型可以实现输入RGB图片,输出RGB图片对应场景的布局识别结果。
[0038] 2)方法中处理的数据为视频帧序列,由于视频帧是连续的,因此视频帧之间存在一定的相关性,这部分检测帧与帧之间特征点,并将特征点进行匹配,配合第一部分得到的室内场景布局识别模型,一起对视频帧中的场景进行布局识别,将帧间的相关性作为又一约束,使得布局识别更为准确。
[0039] 3)本发明中的方法基于以下假设下进行
[0040] I.相机光轴方向平行于地面
[0041] II.所拍摄的场景为曼哈顿世界,相邻平面两两垂直
[0042] III.该视频帧序列通过透视投影获得,使用具有固有矩阵K的拍摄设备。相机坐标系下Q和像素坐标系下q满足如下公式
[0043] Qi=λK‑1qi
[0044] 这里的K,q和Q分别如下
[0045]
[0046] 平面法向量和平面到相机中心距离满足
[0047] dp=npQi=npλK‑1qi
[0048] 目标输出是场景中平面的法向量和平面到相机中心的距离。主要原理为:相机坐标系下空间中一点映射回像素坐标系下有且仅有一个点,像素坐标系中两个平面交线上的点同时属于两个平面,根据两个平面的法向量和到相机中心的距离分别可以还原得到两个相机坐标系下的三维坐标,理想情况下得到的两个三维坐标应当重合,因此约束两个三维坐标之间的距离越小,求得的法向量和距离越理想。利用前两步得到的场景布局识别信息做一步初始化,得到更为理想的交线信息,利用场景中交线的端点列出约束条件,用fmincon函数进行求解该非线性规划问题,输出结果为平面的单位法向量和平面到相机中心的距离。
[0049] 得到平面的信息后,为了实现更好的显示效果,输入得到的平面信息,使用OpenGL进行平面渲染,可以得到视频帧序列中每帧场景对应的布局的三维平面重建结果。
[0050] 本发明的一个实施例包含一段视频帧序列,实施例中的每一帧都会重建出与场景对应的三维平面。图2展示了其中一帧的输入和部分结果。处理一帧图像的过程具体包括以下步骤:
[0051] 1)根据之前部分提到的三个阶段训练得到实现室内场景布局识别的模型,取视频帧序列中一帧,调用模型进行处理,输出得到w*h*4的特征图,单个通道对应于该类标签的概率热图。取每个像素对应的4维概率向量,该向量中最大值所在位置,作为该像素点的预测标签,最终得到一张场景布局识别的灰度图。
[0052] 2)对该帧图像进行特征点检测,并与之间一帧图像进行特征点匹配,若相同特征点的位置预测标签不一致,取概率较大的一方作为该特征点位置的预测标签。
[0053] 3)对得到的场景布局识别结果进行进一步处理,一般来说该结果中的交线较为粗糙,处理后得到细长的直线来表示布局结果,作为重建部分的初始化。取得到直线的端点坐标,根据如下公式列出约束条件:
[0054] Qi=λK‑1qi
[0055]
[0056] dp=npQi=npλK‑1qi
[0057] 使用fmincon函数进行非线性规划求解,得到该帧图像中场景平面对应的单位法向量和平面到相机中心的距离。用得到的平面信息使用OpenGL进行平面渲染,得到最终显示结果。