Facebook将照片3D化技术商用,强大的算法+海量的数据+移动端优化是工程亮点
近日,Facebook AI 团队官宣使用其 Facebook APP的用户均可以方便的在手机端将单摄像头拍摄的2D图像转成3D图像,这项服务支持iPhone 7以上苹果手机和大多数中高端安卓手机。
3D 拍摄是手机摄像头进化的重要方向,使用双目摄像头是主流方案,但一直以来学术界都在研究使用算法将单摄像头拍摄的2D RGB图像转化成3D图像(虽然也有人认为这并不科学),这不仅可以使得新设备硬件成本降低,而且可以让我们看到之前拍摄的老照片3D化后的效果。
值得一提的是,Facebook发布的这项功能的几种关键技术都是开源的,这可以让个人开发者和创业团队容易地也进入到照片3D化的研发和产品化中来。(由于国内无法使用Facebook app,这肯定是好的机会)
其将2D照片3D化的卷积网络使用U-Net的结构:
其中使用了面向移动设备优化的FBNet模块,该模块基本构成是点卷积层,可选的上采样层,K x K深度卷积层和附加的点卷积层。 如上图,该U-Net结构被修改为沿skip连接放置FBNet模块, U-Net编码器和解码器均包含五个阶段,每个阶段对应于不同的空间分辨率。
选择了算法架构并没有结束,为使得算法保有高精度和满足一定的受限计算资源,Facebook 工程师们使用了神经架构搜索方法ChamNet来配置结构参数。其搜索空间有3.4x1022种架构,他们使用了800块 Tesla V100 GPUs 耗费了3天时间完成了搜索。
FBNet 和 ChamNet开源地址:
https://github.com/facebookresearch/mobile-vision
为了更好的降低模型大小提高计算速度,他们进一步将模型转化为Int8数据,使用Int8精度推断,这里他们使用了PyTorch生态的QNNPack 和 QAT(量化感知训练)方法,进一步消除训练阶段和产品部署的模型性能差距。
这两项技术的开源地址和使用说明:
https://github.com/pytorch/QNNPACK
https://pytorch.org/docs/stable/quantization.html
当然上述工程方法都很重要,但更重要的是,训练阶段他们使用了百万级成对的3D图像和相应的深度图,这才是最终效果好的保障。
总之,照片3D化功能很吸引人,但Facebook 在整个工程开发中的流程和使用的工具也都是值得参考的!
原文地址:
https://ai.facebook.com/blog/-powered-by-ai-turning-any-2d-photo-into-3d-using-convolutional-neural-nets/
三维视觉交流群