Photometric Stereo의 원리
이번 글에서는
Photometric Stereo
에 대하여 살펴보겠습니다.

3D 복원을 위해 다양한 빛을 주어
촬영한 이미지를 이용한 방법입니다.
구체적으로 어떻게
작동하는지 알아보겠습니다.

Photometric Stereo 에서 카메라의
위치는 고정되어 있습니다.
MVG 개념과는 반대되는
걸 알 수 있습니다.
여러 개의 빛 방향을 주고,
각기 다른 조명 조건에서
동일한 물체를 촬영 합니다.

각 픽셀에서 측정된
밝기(intensity)를 기반으로
표면의 기울기(p, q) 또는
법선 벡터(normal)을 복원
할 수 있습니다.

특정 한 방향으로
지정해주기 위해서는
한 개의 이미지로는
불가능 합니다.

2장 으로도 유일한
해답을 구할 수 없습니다.

적어도 3장의 이미지는 있어야
구체적으로 한 점을
명시 할 수 있습니다.

전체적인 과정은
매우 간단한데,
실제 구하는 식을
살펴보겠습니다.
법선 벡터 계산 방식

알비도의 값은 상수이므로
무시할 수 있습니다.
우리가 구하고 싶은 것은
Surface normal 입니다.
다른 빛을 주고 찍은
사진 3장을 이용하여
1개의 3D surface normal 을
구하는 것이므로
맨 위 3개의 식에서
n 은 모두 동일합니다.
이제, 각 이미지를 찍을 때의
빛의 방향을 모아서 concat 합니다.
최소 3장이 필요하므로,
3장만 사용하여 3×3 matrix 와
surface normal 로
Image intensity 를
정의할 수 있습니다.

우리는 Surface normal 을 원하므로
단순히 S 의 역행렬을 구하여
답을 구할 수 있습니다.
단, 주의할 점은
구한 답은 정규화
되어 있지 않은
Normal 값 입니다.

따라서 우리는 Albedo 상수 값으로
scaled 된 값과 정규화를
진행해 줘야 합니다.
만약 이미지가 3장 보다 많다면,
더욱 정확한 값을 구할 수 있습니다.
역행렬을 구할 수 없다면,
Pseudo Inverse 를 이용하면 됩니다.
Lambertian 가정과 현실의 차이

이미지 5장으로
3D surface normal
을 구한 결과입니다.
전체적인 벡터들을 보시면
구 모양을 가지는 것을
확인할 수 있습니다.


우리가 Photometric stero 를 풀 때는
항상 Lambertian 가정이
들어가 있습니다.
하지만 실제는 그렇지 않습니다.
따라서 어느 정도 오차가
발생할 수 있습니다.

Photometric stereo 는
빛의 방향을 모아서
Concat 한 후 역행렬을 구해
Surface normal 을
구하는 것을 확인했습니다.
주의해야 할 점은
다양한 빛의 패턴을 줄 때
빛의 방향이 하나의
Plane 위에 있을 경우,
Invertible 하지 않아
식을 풀 수 없게 됩니다.
활용 사례 및 기술 적용 예시

이러한 Photometric stereo 를 활용한 기술이
정말 정교한 얼굴을
3D reconstruction 하는
Light stage 가 있습니다.

Photometric Stereo 와 Multiview Stereo 는
각 장단점이 있으며,
최종 목표는 3D reconstruction 입니다.
그런 건 난 잘 모르겠고,
Photometric Stereo 는 빛의 방향을
이용한 3D reconstruction 방법
참고자료
Slide credit : Shree Nayar
https://www.youtube.com/@firstprinciplesofcomputerv3258/videos