所采取的技术方案,是一种基于结构光的主动扫描方案。具体来讲,主要是利用Kinect,Xtion等低成本深度摄像机进斤数据采集,并使用类KinectFusion技术进行实时数据融合的一种三维扫描方案。2011年,Newcombe和Izadi等人,提出了一种被称为KinectFusion的实时三维重建技术,该技术可对场景进行实时的三维重建和可视化,由于该算法只使用深度数据作为数据源,因此场景的光照条件不敏感,非常适合家用三维扫描。KinectFuison算法在运行时,首先会在显存中分配空间,创建一个虚拟的三维网格立方体用于存放全局数据。随后,对Kinect采集到的深度数据进行滤波得到平滑后的深度数据,利用反投影原理,将深度数据像素坐标映射为空间坐标,并计算法线,得到一倾带法线的点云数据。通过ICP算法将当前倾点云与全局数据进行配准,计算相机姿态,并根据相机姿态将新数据加入到全局数据中,随着点云数据的不断加入,场景逐步完成重建。最后,通过光线投射算法,檀染数据使之表现出3D效果。重建后的模型精度取决于虚拟三维网格的分辨率,通常情况下,网格在三个方向上均等分为512份,因此需要512M湿存,当边长为1.5m时,重建精度大致为3mm。该算法充分使用了GPU技术,使得相机姿态追踪和重建能够顿级别的速率运行,具有非常好的实时性和准确性。
当然,KinectFusion算法也存在一些不足,首先,该算法对GPU要求比较高,需要支持DirectX11的显卡。Kinect的一些开源实现,例如PCL的KinFu也需要显卡具有2.0W上的计算能为。另外,KinectFusion算法中的相机姿态追踪仅使用了Kinect采集到的深度数据,因此对于一些几何特征不明湿的物体,例如:圆柱体,球体等,该算法不能很好的进行姿态追踪,也就不能正确的进行三维重建。
为了解决上述姿态追踪问题,Peasley等人采用Lucas-Kanade算法对Kinect采集到的点云数据进行估计,得出两组点云之前存在的投影变换关系,将其作为点到面误差最小化的数据关联,通过送一方法,实现了对几何特征不明显的物体建立相对较为准确的三维模型。而Daniel Tenedorio等人则将一个追踪器固定在Kinect上,并在屋顶布置了 4个红外摄像机构成追踪系统,追踪系统以60Hz的速率对追踪器的6自由度姿态进行精确的追踪,以此来实时获得Kinect设备的姿态,提高了三维扫描的准确度。同时该系统可以生成实时的扫描结果预览,使得用户可以根据预览的扫描效果,进行孔洞部位二次扫描或有针对性的提高扫描精度。这种方案非常适合在实验室开展相关的研究活动,但无法作为家用三维扫描设备进行推广,有着比较大的局限性。