我们所看到的世界是3D立体的,但是在拍成照片或视频之后,它们就变成了2D平面。如果想把这些2D的影像在电脑中重建为3D场景,那么就需要一系列复杂的算法操作。好在随着计算机视觉及深度学习等技术的发展,现在我们可以智能地进行转换。
传统方法的不足
将现实场景转化为电脑中的3D数据,这并不是一项新科技,比如已经在很多工作场景中出现的3D打印机,它可以通过扫描人体制作3D模型。但是这种传统方法有着诸多不足,以3D人像采集为例,需要先通过3D扫描仪对人物进行立体式扫描,然后将扫描图像导入3D软件中制作成模型,再利用电脑进行3D渲染,最终才能获得完整的人体3D数据(图1)。
图1 传统3D数据获取流程图
这种方式费时费力,在一些对3D数据要求较高的场景中,如VR游戏、自动导航等,需要对3D数据实时转换,显然传统的3D数据捕捉是无法胜任的。
3D模型智能构建的背后
人工智能的发展,使得科学家们开始思考建立3D模型的新方法,当下较引人关注的,是对人工智能领域中计算机视觉系统及深度学习机制的应用。
计算机视觉就是研究机器如何像人一样“看”世界,通过摄像机和电脑来模拟人眼,对采集到的图片或视频进行处理以获取相应场景的3D信息。除了会“看”之外,计算机视觉对采集到的信息还要能“识别”和“理解”,也就是在一组图像数据中,判断是否包含了某个特定的物体,比如一大片的红色,到底只是一个红色圆形图案,还是一个飘浮的气球。
图2 人类视觉系统处理流程图解
它的识别原理和人类的视觉相似,当我们通过眼睛感知一个事物(比如气球),它首先被“平面化”成简单的“球形”数据输入大脑供我们进行识别,然后经过大脑一系列的“抽象”和“迭代”,最终将其理解为“气球”(图2、图3)。
图3 计算机视觉图解
有了原理还要有实践,为了让计算机视觉系统能够像人类的视觉一样精确,科学家们还需要通过特殊的方式对该系统进行感知、识别和理解等一系列的训练。
对于计算机来说,感知就是通过摄像设备进行数据的捕捉,然后转化为数字信息让计算机视觉系统感知到数据。识别则是对感知的数据进行甄别,比如把感知到的圆形物体识别为气球或者篮球等物体。因为对于计算机来说,通过摄像机捕捉到的只是单纯的“数据”,要想识别出这些数据代表着什么,就要进行深度学习训练。上述气球的例子中,科学家们准备了各种各样的气球图片,让深度学习系统进行识别训练。通过大量的数据学习后,计算机视觉系统就可以在捕捉到气球数据后准确地将它识别为“气球”,而不是篮球或者足球了(图4)。
图4 识别训练图解
最后则是理解训练,人类之所以能够将看到的各种类似形状的物体精准识别出来,依靠的是大脑的理解能力,大脑可以通过思考和知识积累,对看到的东西进行抽象化处理,从而实现对物体的理解。计算机视觉系统通过深度学习后已经可以识别出大量的物体,再结合卷积神经网络把信息从最繁琐的像素级别,抽象到“种类”的概念,这类似人类视觉功能的抽象和迭代,整个系统已经拥有人工智能的理解能力(图5)。
图5 理解训练图解
前面只是信息收集和分析的阶段,真正意义上的计算机视觉系统不仅要识别和感知环境,还要将所感知到的环境在电脑中进行3D重建。3D重建首先要解决位置和角度的问题,3D场景中,身处不同的位置,看到的场景也就不同(本质就是感知的数据不同)。其次是两眼视差的问题,不同的眼睛感知到的也是不同的数据,有视差才会有3D信息,并在此基础上重建3D场景。最后就是语义识别,这是3D重建的终极意义,场景中所包含的不再只是无意义的像素的集合,而是有意义的独立3D对象(图6)。
图6 三维场景重建图解
总而言之,计算机视觉系统的整个处理流程就像是人类视觉系统,通过摄像机(眼睛)感知到周围环境,接着通过识别系统对感知的物体进行甄别,最后通过理解能力准确识别出感知的物体,并借助场景重建生成3D数据,实现将平面物体智能转化为3D数据(图7)。
图7 计算机视觉系统处理流程
智能转换3D改变你我生活
通过上述描述我们知道,利用深度学习计算机视觉系统可以快速、智能地将现实世界智能转化为3D场景,这些应用可以给我们生活带来很多的便利,比如现在方兴未艾的VR游戏和各种应用,借助VR摄像头,计算机视觉系统可以将游戏者周边环境迅速转化到VR场景中,让游戏者有着更为真实的、无延迟的沉浸感(图8)。
图8 VR游戏中3D场景
另一方面,该技术在包括人脸识别、指纹识别、图像检索、目标跟踪等领域也有着非常广泛的应用,在手机的人脸识别中,因为可以采集到人脸的3D数据,所以通过场景重建获得的人脸3D模型,不仅识别率高,而且可以有效避免目前识别技术利用照片、视频画面来骗取识别的发生。