光度立体Photometric Stereo in 3D Biometrics

什么是光度立体?What is photometric stereo?

用多光源的方法来估计表面几何
需要三个方程来接三个未知数,所有用三个或三个以上的光源照射物体。

为什么要用光度立体?Why photometric stereo?

  1. 加强了脸部识别
    在3D中更加丰富的数据集
  2. 环境照明独立性
  3. 促进姿势和表情的校正
  4. 非接触式指纹分析

它有什么特殊之处呢?

  • 捕获反射率数据以进行2D匹配
  • 和其它方法比较更优

    与上述方法的比较如下:
    1. Shape-from-Shading
      从阴影图案估计表面法向
    2. Geometric stereo(立体几何)
    3. Laser triangulation(激光三角)
      工业上识别速度很快
    4. Projected Pattern Triangulation


      人脸是不容易识别的,可以看到在面部打上阴影,可从上图看出就如斑点一般,从而更好的识别面部。

基本方法The basic method

Assumptions:
1.No cast/self-shadows or specularities没有阴影或高光
2.Greyscale/linear imaging灰度/线性的图像,即未经处理的图像,类似GoPro都是经过处理的
3.Distant and uniform light sources远距离且均匀的光源
4.Orthographic projection正射投影
5.Static surface静止的表面
6.Lambertian reflectance朗伯反射

$N\cdot L=\left | N \right |\cdot \left | L \right |\cdot cos\theta $
其中 $\left | N \right |\cdot \left | L \right | $ 为常量,则有下面这个式子

图中 $\theta $ 为光源与法向之间的夹角, \(I\) 为辐射度(强度)。

由平面方程可求得:

其中在 \(x\) 方向上的梯度和在 \(y\) 方向上的梯度可分别表示为:

为什么要将 \(C\) 除过来呢?是为了凑成这样的形式:

其中令 $p=\frac{\partial z}{\partial x } $ , \(q=\frac{\partial z}{\partial y }\)

取光源向量和法向向量的点积,得到 $cos\theta $ :

这一步就是用了向量的数量积

如果重新定义了 \(r\) 并且相机响应是线性的,则

此时的已知量是

未知量是

可见有一个方程三个未知数,是不能解决的。
Shape-from-Shading方法中
照射一个球体,可以看到球体中央强度最大,从中央向四周递减。

\(p_{s},q_{s}\)发生变化时,即光照方向发生变化,光照强度的分布图如下所示:

分别使用圆锥曲线和球面表示:

我们可以使用几个光源方向来克服圆锥模糊性,也就是运用光度立体

矩阵表示


可以看作是三个方程来解三个未知数

如果三个光源向量共面,则光源矩阵将变为非奇异的-即无法求逆,并且方程式是不可解的。

深度是怎样的呢?

首先回忆一下表面法向和梯度的关系,应该是下面这样的:

用积分来计算

因此,可以通过积分(或计算机视觉离散世界中的总和)确定高度。这可以写作下面几种方式:

应用Applications

Faces, weapons, fingerprints

posted @ 2020-09-04 21:01  Wxxuan  阅读(1500)  评论(0)    收藏  举报