如果你认真读了我上一篇文章44. Light Stage: 无限真实的人脸三维扫描——忘记幼稚的AI换脸吧,你一定会对Light Stage的惊人效果印象深刻。
这就引入了我们今天想要讲的主题:光度立体法
一、光度立体法原理
光度立体法,即Photometric Stereo, 最早是由当时在MIT的人工智能实验室的Robert J. Woodham教授在1978年左右提出,比较系统的阐述可以看他在1979年的论文《Photometric stereo: A reflectance map technique for determining surface orientation from image intensity》,以及1980年的论文《Photometric Method for Determining Surface Orientation from Multiple Images》。
因为三维物体表面的(x, y)点在这种假设下直接对应着图像上的(x, y)点。那么就可以通过图像上的(x, y)点的相关特性求取到物体表面上对应点的法向量了。
这里面,
设三个光源方向向量构成矩阵
这里光源方向L,球表面法向量N,以及反射方向R之间的关系如下
利用N和R,就可以求得光源方向L。
2.2 计算法向量图和深度图
利用第一节的原理和公式,可以很容易求得物体表面上每一个被足够多的光源照亮的点的法向量。接下来的关键则是利用法向量图,获取深度图。
设投影关系如下图所示:
以及
利用光度立体法,可以计算得到反照率图如下,注意这里我们对图像的每个颜色通道都做了独立运算,而不是把图像转换为灰度图计算。
重建结果:
三. 光度立体法和传统几何重建方法的对比
正如Woodham的论文中所说,光度立体法并不是用于取代传统几何重建方法的,而是和几何重建方法构成了互补关系。下面我列出了这两类方法的对比:
示例2:检测洗发水瓶上的缺陷
这个例子展示了用光度立体法获取洗发水瓶上的缺陷。也是一样的,用不同方向的光照射瓶子,然后利用光度立体法获取表面反照率图,以及法向量(从而获得曲率图)。在反照率图上很难看出的缺陷,在后者却可以轻松检测出来。
知乎视频?www.zhihu.com
Halcon里面关于光度立体法的算子是photometric_stereo,其帮助文档写的很清晰,有一些信息可以补充我们对这个技术的理解。
要点1:光源的方向和数量
而光度立体法的隐含假设则是图像像素的值是线性反应了光源和反射的强度,因此有必要采用RAW格式图像来获得准确的结果。Halcon还专门提供了算子radiometric_self_calibration用于获取相机的特性,以及算子lut_trans来将非线性的像素值转换为线性的,这里就不展开讲解了。
五. 总结
今天我详细介绍了光度立体法这种独特的获取物体表面法向量的反照率的方法,它和利用几何信息重建三维表面的视觉方法(例如立体匹配)形成了互补关系。这个方法从提出到现在已经过去了40年左右了,但现在还在工业界广泛应用,比如我们上一课介绍的Light Stage系统就采用了光度立体法来获取人脸表面的法向量,而工业视觉软件Halcon则展示了用此方法来进行缺陷检测。Woodham教授功不可没!
希望这篇文章开阔了你的眼界,带给你新的启发,别忘了点赞哦
六. 参考资料
- CMU 2017 Fall Computational Photography Course 15-463, Lecture 22
- 44. Light Stage: 无限真实的人脸三维扫描——忘记幼稚的AI换脸吧
- Woodham et al., “Photometric stereo: A reflectance map technique for determining surface orientation from image intensity,” IUSIA 1979.
- 32. 镜头、曝光,以及对焦(下)
- 威斯康星-麦迪逊大学的课程CS766_09项目
- Sticky在问题”光度立体三维重建,根据光照模型算出物体表面法线后如何计算出深度下的回答
- Halcon HDevelop 19.11 Progress的示例和帮助文档

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!