• 阅读数:236发布于2021-01-25 11:37:11

    只看该作者
    多楼层室内环境下的三维几何重建(创新应用竞赛系列) 复制本文链接

    1.背景介绍

    在智能制造、AR、机器人等领域,三维重建都有很广泛的应用前景。随着消费级RGB-D相机的普及,三维重建的应用场景也得到了很大程度的扩展。对多楼层的室内环境进行稠密的三维重建,可以应用于混合现实(MR)、室内装修等领域。
    目前,虽然有众多专家学者致力于三维重建的研究,但在诸如多楼层室内的复杂环境下进行稠密三维重建仍然具有以下难点:
    模型更新。三维重建输入的是图像序列,不仅需要算法能够选择关键帧,而且还需要在检测到新关键帧时,能够根据其位姿融合到三维模型中。
    高质量表面重建。RGB-D相机获取的是深度图,根据相机内参生成点云,然而完成三维重建最终需要获得连续的表面而非离散的三维点。
    针对上述难点,我们使用TSDF(truncated signed distance function)地图来对模型进行更新,采用Marching Cube算法对离散的空间点进行重建获得三角面片。最终,我们使用Zora P1开发板和Astra Pro深度相机,基于ORB-SLAM2框架进行位姿估计并进行扩展,构建了一套完整的多楼层大型室内环境稠密重建的系统。

    2.系统构成

    本项目硬件系统由Zora P1开发板、Astra Pro深度相机、11.6寸液晶屏,以及为其供电的锂电池和逆变器组成,如图 1所示。下面分别对每个模块进行介绍。
    图片alt
    图 1系统硬件组成

    2.1 Zora P1开发板

    Zora P1(D2/D4)开发板是奥比中光针对3D视觉技术的应用开发而定制,与奥比中光RGBD模组、软件SDK等高度适配;并提供丰富的周边配件产品:POE插板、EMMC插板、麦克风阵列、LCD屏幕触摸屏、MIPI-CSI接口摄像头模组等,适用于各种场景需求。具体如图 2所示。
    图片alt
    图片alt
    图 2 Zora P1开发板
    Zora P1开发板可使用Android和Ubuntu固件在相应系统进行程序烧录,也可以直接使用自带的嵌入式Armbian系统进行操作,Armbian系统可以看作是Ubuntu系统的嵌入式版本,使用Ubuntu的开发者可以快速上手。

    2.2 Astra Pro深度相机

    如图 3所示,ORBBEC Astra Pro 3D传感摄像头采用单目结构光技术,具有高精度、低功耗、响应迅速、稳定可靠的优点。该相机能够覆盖近距离和中远距离的多种室内场景,拥有高精度,易安装和功耗低等功能。其高精度传感摄像头的应用算法可实现多种功能,例如面部识别,手势识别,人体跟踪,三维测量,环境感知和三维地图重建,可应用于客厅娱乐、安防监控、测量、3D扫描、体感交互、商显等多种场景。
    图片alt
    图 3相机硬件结构图

    2.3系统电源模块

    考虑到三维重建在更大范围内的应用,需配备大容量可携带电源。见图 4,本项目采用12V大容量动力锂电池搭配逆变器使输出电压达到220V以满足移动设备的使用需求。其参数如图所示:
    图片alt
    图 4电池图片及参数
    该锂电池具有电量显示,应急照明和能够便携手提等多种优势,可以很好的满足本项数据采集在各个情景的需要。
    锂电池为12V输出,需为其配备的12V转220V逆变器,逆变器的输出可以使移动设备稳定工作。图 5为逆变器的参数:
    图片alt
    图 5逆变器参数

    3.Zora P1环境配置

    开发板连接Astra Pro相机采集数据需要配置奥比中光官方的OpenNI SDK,如图 6所示。
    图片alt
    图 6 OpenNI SDK
    通过命令sudo sh install.sh进行安装后,在自己的采集程序中需要包含该SDK中的include文件夹和Redist文件夹,其前者为头文件,后者为链接库。

    4.关键技术创新点

    1、基于ORB-SLAM2(Oriented Fast and Rotated Brief - Simultaneous Localization And Mapping)框架扩展带RGB信息的多楼层大型室内环境的稠密重建系统;
    2、针对传统的深度图到点云融合步骤存在点云密度爆炸、计算复杂及累计误差等缺陷,利用选取的关键帧信息匹配位姿、RGB图和深度图,通过TSDF(Truncated Signed Distance Function)实现三维点云重建;
    3、针对重建结果存在的离群点、噪声等问题,利用统计滤波实现对点云重建结果的优化与平滑
    4、由于点云数据在三维空间中为离散表示,以Marching Cube算法实现三角面片重建,复现真实的带纹理的多楼层大型室内环境。

    5.算法设计

    本算法主要实现多楼层大型室内环境的三维重建。以ORB-SLAM2开源算法作为基础框架,通过ORB特征描述子获取包含相机位姿、时间戳在内的关键帧信息,根据关键帧信息匹配对应的位姿、RGB和深度信息后通过TSDF实现三维点云重建。为复现真实的、带纹理且空间连续的三维环境,本算法采用统计滤波优化点云的质量,通过Marching Cube算法在不丢失环境细节的前提下实现三角片面的重建。本算法的具体设计描述如下所述:
    S1:本算法在ORB-SLAM2框架上进行扩展,构建了一套完整的多楼层大型室内环境稠密重建的系统。原理示意图如图 7所示:
    图片alt
    图 7算法流程
    S2:在ORB-SLAM2的框架中,通过ORB特征描述子实现跟踪、局部建图与闭环功能,根据制定的规则确定关键帧,并在地图构建的同时插入关键帧并进行筛选,最后获取稠密三维重建所需的关键帧信息。
    S3:根据筛选后的关键帧信息,对位姿、RGB图、深度图及时间戳信息进行匹配。在传统点云融合与重建中,大多优先通过深度图与RGB图计算点云数据再根据位姿信息进行点云与点云之间的融合,但这种方式存在计算复杂度高、点云累加所引起的密度爆炸以及位姿计算的累计误差等缺陷。
    为避免上述问题,本算法采用TSDF根据关键帧信息对点云数据集进行重建,通过预先构建一个三维立体空间来实现可控的点云密度并减少不必要的重复计算。
    S4:对重建后的三维环境点云进行统计滤波以优化点云质量。从数据采集到重建的过程中,尽管在ORB-SLAM2框架中通过ORB描述子避免噪点和离群点对位姿估计的影响,但由于传感器采集的数据本身存在噪点和离群点,重建结果将不可避免的引入这些所谓的‘坏点’。
    为解决上述重建后点云的质量问题,本算法通过对点云空间中任意点的邻域进行统计学分析,绘制领域特征表征的统计直方图,根据所谓‘坏点’与正常点存在的特征差异对直方图进行裁剪,实现对点云的统计滤波。
    S5:通过Marching Cube对重建后的点云实现三角面片重建。由于点云数据在三维空间为离散表示,难以直观反映环境的纹理,在保留纹理的细节的前提下,以Marching Cube复现真实的带纹理的多楼层大型室内环境,最终实现完整的多楼层大型室内环境稠密重建系统。

    6.测试结果

    我们使用图 1中的硬件系统,以ORB-SLAM2开源算法作为基础框架,后提取图 7中由时间戳、位姿、RGB和深度图组成的匹配信息对,采用TSDF融合,并使用Marching Cube算法重建出三角面片,构建了一套完整的多楼层大型室内环境稠密重建的系统。重建结果如图 8所示。
    图片alt
    图片alt
    图片alt
    图 8三维重建结果

    7.基于开发套件产生的bug及建议

    1、使用SDK读取相机内参为NaN,需要自行对相机进行内参标定。
    2、开发板难以支持快速实时的在线大场景数据重建,实验过程中项目组仅能通过Astra Pro相机采集的数据集进行离线式的重建。
    3、开发板难以支持以OpenDet开源库为代表的三维点云深度学习框架。
    4、开发板对当前主流版本的Ubuntu操作系统适配度不高。
    5、针对相机,在使用orb-slam2框架采集数据的过程中,曾多次出现orb特征算子检测失效,项目组无法判断为框架原因、环境原因或是相机本身原因,因为同一个地方偶尔或概率性的可以成功。
    6、本项目组长期使用RealSense的消费级深度相机,相比于RealSense,本相机由于采用结构光三维成像的方案,深度信息更易受阳光干扰。

    源码地址:https://github.com/3DCVdeveloper/pengyiping

    回复 (0)

    举报
举报

请选择举报理由

  • 垃圾广告
  • 违规内容
  • 恶意灌水
  • 重复发帖
提示

奥比中光 · 3D视觉开发者社区...

站长统计