查看原文
其他

脑补了和库克的对话后,我发现了iPhone X深度相机选择的秘诀和方法

sixgod 计算机视觉life 2019-06-23

   欢迎关注计算机视觉life


前面的文章分别介绍了三种深度相机的原理:TOF(深度相机原理揭秘--飞行时间(TOF))、RGB双目(深度相机原理揭秘--双目立体视觉)、结构光(深度相机原理揭秘--结构光(iPhone X 齐刘海原理))。看起来它们都各有利弊,那么在实际产品研发中如何选择深度相机呢?


为了读者能够有个清晰的思路,我脑补了苹果公司CEO蒂姆·库克(Tim Cook)和我的一段对话,我们就iPhone X如何选择深度相机深入交换了意见。

以下对话内容纯属虚构,如有雷同,肯定是抄我的。

---------------------------------------------------------

Hi, sixgod, how are you?

I am fine. Thank you! And you?

I am fine, too.

Sorry,我英语库存已经耗尽了。。。接不下去了。。。我们还是用中文吧!

木问题!我最近在考虑一款新手机iPhone X,想要增加深度相机,我看了你公众号介绍的三种深度相机,写的不错,然而看完了我还是不知道该怎么选,你有什么建议吗?

谢谢!我最近正好想写一下,如何根据自身产品的需求选择合适的深度相机技术方案。简单来说,这三种深度相机没有最好,只有最合适。首先,这款用在手机上的深度相机,你打算放前置还是后置?

前置。因为我们的深度相机主要是对人脸进行三维建模,然后在此基础上增加三维人脸识别来解锁手机,后面还有更多基于三维人脸的有趣应用。

要进行三维人脸识别,那看来使用距离很近了。另外,对深度相机的测量精度要求也很高啊!

是啊,这次我们就是主打三维人脸解锁,要做就要做到最牛X,不然不好意思拿出手啊!

明白!那这么说,是不是也要随时随地人脸解锁了?不论室内室外,白天夜晚,效果都要杠杠的?

那是必须的!如果人脸解锁还要看环境条件,那消费者肯定不会买账的!三维人脸解锁本来就是要方便的啊,我们的目标是比指纹解锁还要方便快捷!

Got it!那我们现在可以先排除掉RGB的双目相机了。

啊!这么快就排除一个了?那你得告诉我为啥要排除掉RGB双目方案。

RGB双目相机因为非常依赖纯图像特征匹配,所以在光照较暗或者过度曝光的情况下效果都非常差,另外如果被测场景本身缺乏纹理,也很难进行特征提取和匹配。你看看下面的图就懂了。(点击可以放大看)

嗯,这个点明白了。我们继续讨论吧。

别急,看下面的表格,我列出了对比结果。(点击可以放大看)

嗯,知道了。我们手机必须全天候实现三维人脸识别,RGB双目方案做不到,不考虑了。那还有两种呢,怎么选?

下面可以从分辨率、帧率、软件复杂度、功耗等方面来考虑吧。毕竟我们要用在移动设备上。

OK。我们计划推出基于人脸的很多实用有趣的应用,比如人脸表情,人像光照,背景虚化等。攻城狮们正在努力加班中。后期可能还会推出AR相关的应用。所以对深度图分辨率还是有较高的要求的。

啊?你们也加班啊。。。关于分辨率,TOF方案深度图分辨率很难提高,一般都达不到VGA(640x480)分辨率。比如Kinect2的TOF方案深度图分辨率只有512x424。而Google和联想合作的PHAB2手机的后置TOF深度相机分辨率只有224x171。TOF方案受物理器件的限制,分辨率很难做到接近VGA的,即使做到,也会和功耗呈指数倍增长。

那结构光的分辨率呢?

在较近使用范围内,结构光方案的分辨率会大大高于TOF方案。比如目前结构光方案的深度图最高可以做到1080p左右的分辨率了。

嗯,这个分辨率够用了。那帧率和软件复杂度呢?我们要实现实时的应用,这点也很重要!

帧率的话,TOF方案可以达到非常高的帧率,差不多上百fps吧。结构光方案帧率会低点,典型的是30fps,不过这也基本够用了。软件复杂度方面,结构光因为需要对编码的结构光进行解码,所以复杂度要比直接测距的TOF高一些。

嗯,看起来,帧率和软件复杂度方面TOF更有优势,不过差别对我们的需求影响不太明显,我们无所不能的算法工程师应该可以搞定。那功率呢?三维人脸解锁使用频率很高,功率是一个非常重要的考虑因素。

确实是啊,我之前用的iphone5s每天都得充电,出远门都得自带充电宝,心累啊。

额。。。

扯远了啊。功耗的话TOF是激光全面照射,而结构光是只照射其中局部区域,比如PrimeSense的伪随机散斑图案,只覆盖了不到十分之一的空间。另外,TOF发射的是高频调制脉冲,而结构光投射图案并不需要高频调制,所以结构光的功耗要比TOF低很多。还是以伪随机散斑结构光为例,结构光方案功耗只有TOF的十分之一不到吧。

Amazing! 有没有具体的对比表格?

有有有。下面是三种方案在分辨率,帧率,软件复杂度和功耗方面的对比结果。(点击可以放大看)

嗯,看来我只能选择结构光方案了。其实,结构光方案还有一个优势在于技术成熟,我们收购的PrimeSense很早就把结构光技术用在kinect一代产品中了。既然技术这么成熟,想必结构光技术也有很多变种吧。

没错!目前结构光技术有如下几种:一种是RGB单目+投影红外点阵,另外一种是RGB双目+投影红外点阵,这样相当于结构光+RGB双目融合了,深度测量效果会比前者好一些,比如Intel RealSense R200采用的就是RGB双目+投影红外点阵,不足之处就是体积较大。而RGB单目+投影红外点阵的方案虽然体积较小,但是效果会差一点。

等下,体积是重点考虑因素啊!手机上空间本身就非常有限,消费者现在对全面屏也非常着迷。看来只能选择RGB单目+投影红外点阵的方案了。我们前置深度相机的空间非常狭小,即使这样设计出来,看起来很可能像是女生的齐刘海。

那挺萌的啊!

额。。。你继续说说计算复杂度。

嗯,计算方式也分几种:一是直接用ASIC(专用集成电路)进行计算,成本稍微高一点,但是处理速度快,支持高帧率和高分辨率深度相机,关键是比通用芯片功耗低。二是DSP+软件算法,成本跟用ASIC差不多,但支持不了高帧率高分辨率,功耗比ASIC稍高。三是直接用手机的AP(Application Processor)进行纯软件计算,这个不需要额外增加硬件成本,但是比较消耗AP的计算资源。同样也不支持高帧率高分辨率,功耗比较大。(点击可以放大看)

低功耗,计算速度快,高帧率高分辨率,嗯,ASIC方案比较适合iPhone X。

那您总结一下最后iPhone X的深度相机技术方案?

嗯。我们最终选择方案是:结构光原理的深度相机。具体来说是:RGB单目+投影红外点阵+ASIC方案。该方案在深度分辨率、深度测量精度上有较大优势,实时性处理和全天候工作也都有保障,功耗也相对较低,就是成本稍高了一些。

额,这么说,iPhone X的定价会比较高了?

还好吧,不过是几杯咖啡的钱。

。。。

-------------------------------------------------------

我猛地从梦中惊醒,出了一身冷汗。手里攥着还没来得及泡的泡面,已被我捏的咔咔作响,那分明是心脏被震碎一地声音。我掐指算了算,嗯,只要再坚持吃半年泡面,我就能攒够买iPhone X的钱了。


相关阅读

iPhone X的原深感相机到底是个什么玩意?

深度相机原理揭秘--飞行时间(TOF)

深度相机原理揭秘--双目立体视觉

深度相机原理揭秘--结构光(iPhone X 齐刘海原理)


注:原创不易,转载请注明来源,违者必究。


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存