深度传感(Depth Sensing)被大量应用在手机应用上,支持包括人脸解锁、3D照片与景深场景分割等功能,而Google在Pixel 4上,应用了一种称为uDepth的即时红外线主动式立体深度传感器,即便在黑暗环境,也能快速且精准的运行,计算出相机场景的深度信息,而且uDepth所生成的深度信息,Google最近也开放给外部使用,开发者可在Camera2 API中找到uDepth相关的功能。
Google提到,深度传感是计算机视觉的一个热门的研究领域,能应用摄影机的肖像模式,或是AR等应用上,但传统利用RGB的立体深度传感技术,计算成本很高,在低材质的区域性能表现不佳,且在极弱光的环境下,可能会完全失去作用。立体摄影机是利用视差来重建深度,跟人类产生立体视觉的原理相似,人类只用右眼与只用左眼看同一个场景,同一个物体的位置看起来会有所不同,且距离眼睛越近的物体差异越大。
而Google在Pixel 4手机上使用的uDepth技术,也是利用这个原理,计算出每个像素的视差;通过比较一台相机中每一个像素周围区域,与另一个相机成像中的相似区域,重建出实际的物理距离,另外,像是人脸解锁这种深度传感应用,必须在黑暗中,也能快速良好地运行,为了处理低材质与弱光环境的问题,uDepth运用了主动式立体配置,可投影红外线图案到场景中,帮助场景深度检测,降低系统运算要求。
不过,由于典型主动式立体系统投影出去的随机网格图案,虽然可以帮助消除场景中比对的歧异,但是由于uDepth在看起来相似的重复结构图形,可能使得比对发生错误,因此Google使用了轻量级卷捷豹构,并同时结合红外线的亮度和邻近信息,来修正错误比对的情况,这些计算每个影格只要花费1.5ms的时间就能完成。
另外,当手机受到严重撞击时,可能导致立体摄影机的出场校准与实际的位置不同,因此为了持续保持相机的精确度,uDepth系统采用自动校准技术,系统会评估深度图像是否存在未校准的信号,并创建对设备状态的信心,只要系统检测到错误校准,便会立刻重新产生较准参数。
Google提到uDepth的设计,是为了用在脸部识别上,因此原始资料非常的精确,其需求与相机应用程序的肖像模式与3D照片的计算非常不同,后者计算的图片影帧速率并不重要,但是产生的深度信息需要平滑,且物体边缘要平整,也需要对整个画面进行处理。因此Google训练了一个端到端深度学习架构,结合RGB图像、人像分割以及原始深度,强化了原始uDepth资料,以推测出完整且密集的3D深度图。
uDepth可产生30Hz的深度信息流媒体,开发者现在已经可以从Camera2 API中取得,而经过后处理所产生的平滑深度图,目前则应用在Google摄影应用程序中,当用户激活社交媒体深度功能后,使用Pixel 4所拍摄的自拍照,系统会为每个像素产生平滑且密集的深度信息,可用于社交媒体上的散景与3D照片上。