[MIT 머신비전 7강] 반사 지도: 기울기와 밝기를 잇는 지도 | 반사 지도(Reflectance Map)와 BRDF
MIT 6.801 머신비전(Machine Vision, Berthold Horn) 7강 정리. 기울기와 밝기를 잇는 반사 지도(Reflectance Map), 렌즈의 영상 밝기(Irradiance), BRDF와 헬름홀츠 상호성을 쉽게 설명합니다.
MIT OpenCourseWare 6.801 7강 원본 영상 (영어)
한 줄 요약: 표면이 어느 쪽으로 얼마나 기울었는지에 따라 밝기가 얼마일지를 한 장의 지도(반사 지도)로 그려 두면, 밝기에서 기울기를 거꾸로 찾는 일이 “지도에서 선 찾기”가 됩니다. 후반부에서는 카메라 렌즈가 이 밝기를 어떻게 사진으로 옮기는지 봅니다.
반사 지도: 기울기마다 밝기를 적어 둔 표
지난 글에서 표면의 방향은 기울기 두 개 (p, q)로 나타낼 수 있다고 했습니다. 그렇다면 (p, q) 평면 위의 점마다 “이렇게 기운 면은 이만큼 밝다”를 적어 둘 수 있습니다. 이것이 반사 지도입니다.
등고선 지도가 위치마다 높이를 적어 둔 것이라면, 반사 지도는 기울기마다 밝기를 적어 둔 것입니다. 같은 밝기를 잇는 선은 등광선(isophote)이라고 부릅니다.
왼쪽: 왼쪽 위에서 빛을 받은 무광 공. 오른쪽: 같은 조명의 반사 지도와 등광선(파란 선). 같은 색 점은 같은 기울기입니다. 별은 빛을 정면으로 받는 기울기, 주황 점선 너머는 그림자입니다.
공 사진은 반사 지도를 눈으로 보여 주는 좋은 방법입니다. 공 표면에는 모든 방향의 면이 한 번씩 다 들어 있기 때문입니다. 공의 가장자리로 갈수록 면이 많이 기울어지고, 지도에서는 바깥쪽으로 멀어집니다. (이 글의 그림과 데모에서는 보기 쉽도록 지도의 오른쪽이 “오른쪽을 향한 면”이 되게 그렸습니다.)
무광(램버트) 표면의 등광선은 지도 위에서 원뿔을 자른 곡선(타원, 포물선, 쌍곡선)이 됩니다.
거꾸로 풀기: 밝기에서 기울기 찾기
카메라로 할 수 있는 건 밝기를 재는 일뿐입니다. 그래서 진짜 관심은 반대 방향, 밝기 → 기울기입니다.
밝기 하나를 재면 지도 위에서 등광선 한 줄까지만 좁혀집니다. 조명을 바꿔 한 번 더 재면 등광선이 하나 더 생기고, 답은 두 선이 만나는 점입니다.
조명 1(파랑)과 조명 2(주황)에서 잰 밝기의 등광선. 두 곡선은 보통 두 군데에서 만나서, 세 번째 조명이 있어야 하나로 정해집니다.
이것이 지난 글의 포토메트릭 스테레오를 지도 위에서 본 모습입니다.
공식 대신 공 사진을 표로 쓰기
실제 물체는 교과서의 램버트 표면과 조금씩 다릅니다. 그래서 강의에서는 같은 재질로 만든 공을 보정용으로 쓰는 방법을 소개합니다.
- 공을 조명 1, 2, 3으로 각각 찍습니다. 공 위의 점마다 기울기를 이미 알고 있습니다.
- 점마다 (밝기1, 밝기2, 밝기3) → (p, q)를 표에 적어 둡니다.
- 진짜 물체를 같은 조명으로 찍고, 픽셀마다 밝기 세 개로 표를 찾아봅니다.
공식을 몰라도 되는 대신 표가 커지는 것이 단점입니다. 밝기 세 개를 칸으로 나누면 칸 수가 세제곱으로 늘어나고, 그중 상당수는 비어 있습니다. 여기서도 알베도를 하나 더 넣어 (밝기 세 개) → (p, q, 알베도)처럼 3개 → 3개로 맞추면 표가 훨씬 깔끔해집니다.
렌즈: 밝기를 사진으로 옮기는 장치
지금까지는 바늘구멍 카메라를 생각했습니다. 그런데 구멍이 정말 점이라면 들어오는 빛이 0입니다. 그래서 렌즈로 넓은 구멍을 쓰면서도 바늘구멍과 같은 원근 효과를 얻습니다.
얇은 렌즈의 세 규칙. 가운데를 지나는 빛이 꺾이지 않기 때문에 바늘구멍 카메라와 같은 원근 투영이 유지됩니다.
\(a\)는 물체에서 렌즈까지, \(b\)는 렌즈에서 상이 맺히는 곳까지의 거리, \(f\)는 렌즈의 초점거리입니다. 물체가 가까워지면 상은 렌즈에서 멀어집니다.
광각 렌즈는 넓은 시야를 센서에 다 담으려고 가장자리를 눌러 담는데, 그래서 직선이 휘어 보이는 방사 왜곡(술통형, 바늘꽂이형 등)이 생깁니다.
사진의 밝기는 장면의 밝기에 비례한다
강의 노트는 물체에서 나온 빛이 렌즈를 지나 센서 한 칸에 얼마나 모이는지 계산해서 다음 결과를 얻습니다.
\[E = L \, \frac{\pi}{4} \left(\frac{d}{f}\right)^2 \cos^4 \alpha\]- \(E\): 센서가 받는 빛(사진의 밝기), \(L\): 장면이 그 방향으로 내보내는 밝기(복사휘도)
- \(d/f\): 렌즈 구멍 지름과 초점거리의 비. 카메라의 “F값”은 이것의 역수라서, F값이 √2배씩 바뀔 때마다 빛이 절반씩 바뀝니다.
- \(\alpha\): 사진 한가운데(광축)에서 벗어난 각도
핵심은 사진의 밝기가 장면의 밝기에 정비례한다는 점입니다. 그래서 사진의 밝기 숫자로 표면의 기울기를 따지는 일이 의미가 있습니다. 다만 \(\cos^4 \alpha\) 때문에 가장자리는 어두워집니다. 광각일수록 눈에 띄고, 좋은 렌즈는 이를 보정하도록 설계합니다.
고르게 밝은 벽을 찍어도 광축에서 40° 벗어난 곳은 한가운데의 약 34% 밝기로 찍힙니다.
BRDF와 헬름홀츠 상호성
물체마다 빛을 되돌려 보내는 성질이 다릅니다. 이것을 “빛이 이 각도로 들어왔을 때, 저 각도로 얼마나 나가는가”로 적은 것이 BRDF(양방향 반사 분포 함수)입니다. 들어오는 방향 2개, 나가는 방향 2개, 모두 각도 4개에 대한 함수입니다.
헬름홀츠 상호성: 조명과 카메라 자리를 맞바꿔도 BRDF 값은 같습니다.
BRDF에는 중요한 성질이 있습니다. 조명과 카메라 자리를 맞바꿔도 값이 같습니다(헬름홀츠 상호성). 그렇지 않다면 열역학 제2법칙에 어긋납니다. 덕분에 BRDF를 측정할 때 표의 절반만 재면 됩니다. 또 대부분의 물체는 표면을 제자리에서 돌려도 똑같아 보여서, 각도 4개 대신 3개로 줄일 수 있습니다. (벌새 목의 깃털이나 일부 보석처럼 결이 있는 표면은 예외입니다.)
직접 해 보기
① 반사 지도. 오른쪽 지도의 주황 별(빛)을 끌어 보세요. 공의 음영과 지도의 등광선이 함께 움직입니다. 공 위의 초록 점을 끌면 그 점이 지도의 어디에 해당하는지 보여 줍니다.
빛을 정면에 두면 등광선이 동심원이 되고, 빛을 옆으로 눕힐수록 등광선이 길쭉해지다가 쌍곡선 모양으로 벌어지는 것을 볼 수 있습니다.
② 얇은 렌즈. 물체 화살표 끝의 동그라미를 좌우로 끌어 보세요. 물체를 초점(F) 안쪽까지 가까이 가져가면 상이 사라지고 돋보기처럼 커진 허상이 생깁니다.
정리
- 반사 지도는 기울기 (p, q)마다 밝기를 적은 지도이고, 같은 밝기를 잇는 선이 등광선입니다. 무광 표면의 등광선은 원뿔 곡선입니다.
- 밝기 하나는 등광선 한 줄, 조명 두 개는 두 선의 교점(보통 두 개), 조명 세 개면 답이 하나로 정해집니다.
- 공식 대신 같은 재질의 공을 찍어 만든 표로 밝기에서 기울기를 바로 찾을 수도 있습니다.
- 렌즈를 거친 사진의 밝기는 장면의 밝기에 비례하지만, 가장자리는 cos⁴ 법칙으로 어두워지며, 물질의 반사 성질은 BRDF로 나타냅니다.
참고: MIT 6.801/6.866 Machine Vision (Fall 2020), Berthold Horn · Ryan Sander · Tadayuki Yoshitake 강의 노트 (MIT OpenCourseWare, CC BY-NC-SA 4.0)