Reserch
活动+

[3D视觉计算] 3D视觉计算方式

  • 徐宏民

3D视觉资料表示以及计算方式。(a)为计算机图学中沿用多时利用网格来描述3D物件。(b)为点云范例,利用立体相机拍摄出来物体表面的稀疏点来描述立体信息。(c)为使用固定大小的立体像素(voxel)堆叠出3D物件。每种表示法有其相对的视觉计算方式。徐宏民

3D(立体)视觉计算的目的是利用3D传感器所拍摄到的信息,来侦测物件或是辨识应用场景。例如自驾车使用LiDAR精确掌握人、车、障碍物位置;机器手臂使用立体相机侦测正确的抓取点、涂胶位置等。需要3D讯号是因为多了立体空间信息,有机会超越单使用2D平面影像。所以各种崭新的应用包括AR(扩增实境)/VR(虚拟实境)、自驾车、 医疗、安全、机械制造、机器人(手臂)等都仰赖3D视觉计算的精进。

在过去,我们并未全然掌握如何计算这些3D资料,所以就沿用2D影像上的做法。比如图a,这是个利用网格表示的标准3D模型,为了计算方便,就将立体模型投影到多个2D视角上,利用2D影像的计算(例如卷积网络CNN)辨识各个2D投影,接著汇集多个视角计算结果(通常是采用最大池化法max pooling)。这方法最具代表的就是MVCNN,可此法会受制于过多计算量(多视角影像)、视角取样等问题。

另一常用的做法是只利用深度图(depth map),即3D相机拍摄时画面中各位置相对相机的距离,可以表示物件位置的远近。因为是2D画面,可以沿用过去2D影像上的计算方式,甚至与RGB三个频道结合,成为RGBD四个频道来计算。但是未真正利用全部的立体空间讯息,所以称为2.5D的算法。其它缺点在于深度值的估算本来就有误差,而且3D传感器因为软硬件的限制,深度图在某些环境材质、或是物件接缝处会有疏漏,影响正确率。

立体画素(voxel)则延伸2D的做法来使用3D讯息。它使用3D的小区块(可以想象类似乐高积木)来表示3D物件(如图c)。因为有了这些规则的立体画素(可以与2D上的画素做比较),可以进行系统化的视觉计算。所以近几年可以看到卷积网络开始在voxel上大行其道。类似2D的做法,只是输入变为3D,增加一个维度,所以运算资源(存储器、特征图、卷积核等)也得再加上一个维度,计算量庞大。为了平衡运算资源,一般使用低分辨率的voxel(颗粒较大)。另一个局限是无法全然克服实际物体旋转所造成的辨识错误。

3D视觉计算的突破,来自于近来发现可以设计适合点云(point cloud)(如图b)的算法,直接在众多的点云中计算。每个点都有空间中3D位置信息、RGB颜色值,有些还有物体表面的反射量(如LiDAR点云中由金属反射回来的讯号较强)。点云计算在过去是非常困难的,因为这些点云不像2D画素或是立体画素般规则排列,每个拍摄到的点云并没有特定的顺序。举例来说,每台车子上所侦测到的点云并没有特定的顺序,所以虽然保有丰富空间讯息量,却不知如何有系统的计算。

2017年发表在计算机视觉顶会CVPR的PointNet算法开启了这个机会。他们发现透过使用「对称函数」,可以保有重要的「排列不变性」的特质,也就是解决同样物件中,侦测出的点云排列却不同的问题。深度学习中常使用的最大池化法刚好就是对称函数,因此开启深度学习技术使用在点云上的机会,可以更精细的利用3D中丰富的空间信息。接下来延伸的一系列点云算法,更大大提升点云运算效率、正确性等。

当然在实际解决问题时,我们会将RGB、voxel、点云等混搭使用,目的是为了发挥各个做法的优点或是善用更丰富的讯息。我们将在接下来的各种立体视觉应用文章中继续解析这些前瞻算法以及可能的产业情境。

徐宏民(Winston Hsu)现任台大资工系教授及NVIDIA AI Lab计画主持人。哥伦比亚大学电机博士,专精于机器学习、大规模影像视讯查找与辨识。为讯连科技研发团队创始成员,慧景科技(工业智能新创)共同创办人;曾任IBM华生研究中心客座研究员、美国微软研究院客座研究员。习惯从学术及产业界的角度检验技术发展的机会;十余年产学合作及新创经验,近年致力将深度学习技术落实到产业,并协助成立研究开发团队。曾获2018 IBM Research Pat Goldberg Memorial Best Paper Award 、2018伪装人脸辨识冠军、杰出信息人才奖、吴大猷先生纪念奖等国内外研究奖项。