포스트

[MIT 머신비전 8강] 보름달은 왜 원판처럼 평평해 보일까 | 음영으로 모양 찾기(Shape from Shading)

MIT 6.801 머신비전(Machine Vision, Berthold Horn) 8강 정리. 보름달이 평평해 보이는 이유, 램버트와 하프케(Hapke) 반사, 밝기만으로 지형을 복원하는 Shape from Shading과 텔레센트릭 렌즈를 쉽게 설명합니다.

[MIT 머신비전 8강] 보름달은 왜 원판처럼 평평해 보일까 | 음영으로 모양 찾기(Shape from Shading)

MIT OpenCourseWare 6.801 8강 원본 영상 (영어)

한 줄 요약: 보름달이 공이 아니라 납작한 원판처럼 보이는 건, 달 표면이 석고 같은 램버트 표면이 아니라 “하프케 표면”이기 때문입니다. 이 성질 덕분에 달 사진의 밝기만으로 지형의 단면을 꽤 쉽게 되찾을 수 있습니다.

보름달의 수수께끼

석고로 만든 공을 손전등으로 정면에서 비추면, 가운데는 밝고 가장자리로 갈수록 어두워져서 “둥근 공”처럼 보입니다. 6강에서 본 램버트 법칙 그대로입니다.

보름달도 해가 우리 등 뒤에서 정면으로 비추는 상황입니다. 그런데 보름달은 가장자리까지 거의 똑같이 밝아서 공보다는 납작한 원판처럼 보입니다.

실제 보름달과, 달이 램버트 표면이었다면 보였을 모습 왼쪽: 실제 보름달 사진(Gregory H. Revera, Wikimedia Commons, CC BY-SA 3.0). 오른쪽: 같은 사진에 램버트 법칙의 밝기 감소를 곱해 “달이 석고 공이었다면”을 계산한 그림. 가장자리가 눈에 띄게 어두워집니다.

두 가지 표면: 램버트와 하프케

이상적인 램버트 표면은 들어온 빛을 하나도 흡수하지 않고, 어느 방향에서 봐도 똑같이 밝은 표면입니다. 밝기는 빛을 받는 각도 하나로만 정해집니다.

하프케 표면은 달처럼 대기가 없는 천체의 푸석한 흙(레골리스) 표면을 설명하려고 만든 모델입니다. 강의 노트에 나오는 간단한 형태로 쓰면 밝기는 이렇습니다.

\[L = E_0 \sqrt{\frac{\cos\theta_i}{\cos\theta_e}}\]

\(\theta_i\)는 해가 표면을 비추는 각(수직에서 잰 각), \(\theta_e\)는 우리가 표면을 바라보는 각, \(E_0\)는 햇빛의 세기입니다. 분모에 보는 각이 들어 있다는 점이 램버트와 다릅니다.

보름달일 때는 해와 우리가 같은 쪽에 있어서 달 표면 어디서나 \(\theta_i = \theta_e\)입니다. 그러면 분수가 1이 되어 어디나 밝기가 같습니다. 직관적으로는 이렇습니다. 가장자리의 땅은 햇빛을 비스듬히 받아 덜 받지만, 우리도 그 땅을 비스듬히 보기 때문에 사진 한 칸에 더 넓은 땅이 들어옵니다. 두 효과가 서로 상쇄됩니다.

위상각에 따른 램버트 구와 하프케 구의 밝기와 등광선 직접 렌더링한 두 표면. 보름(왼쪽)에서 램버트는 동심원 모양으로 어두워지고 하프케는 완전히 고르게 밝습니다. 해가 옆으로 가면 하프케의 등광선은 위아래 극을 잇는 경도선이 됩니다.

해가 옆에서 비출 때 하프케 표면의 등광선(같은 밝기 선)은 경도선을 따라갑니다. 지구본의 세로줄처럼 위아래 극을 잇는 선입니다.

기울기 지도에서는 등광선이 직선

7강의 반사 지도(기울기 평면) 위에 그려 보면 차이가 더 분명합니다.

기울기 평면에서 램버트는 곡선, 하프케는 직선인 등광선 같은 조명에서의 등광선. 램버트는 타원·쌍곡선 같은 곡선이지만, 하프케는 나란한 직선입니다.

하프케 표면의 등광선은 나란한 직선입니다. 그래서 밝기 하나를 재면 해가 비추는 방향(초록 화살표)의 기울기는 딱 하나로 정해지고, 그와 직각인 방향의 기울기만 모르는 상태가 됩니다. 조명을 바꿔 두 번 재면 직선 두 개가 한 점에서 만나니, 램버트처럼 답이 두 개 나오는 일도 없습니다.

밝기만으로 달 지형의 단면 그리기

이 성질을 이용하면 달 사진 한 장에서 지형을 되찾을 수 있습니다.

  1. 해가 비추는 방향을 따라 사진에 줄을 긋습니다.
  2. 줄 위의 각 점에서 밝기로 그 방향의 기울기를 바로 계산합니다.
  3. 기울기를 왼쪽 끝부터 차례로 더해 나가면 높이, 즉 단면이 나옵니다.

주의할 점이 두 가지 있습니다.

  • 기울기를 더해서 높이를 구하므로, 출발점의 높이는 따로 알려 줘야 합니다. 몰라도 모양은 나오지만 전체가 위아래로 얼마나 떠 있는지는 모릅니다.
  • 줄마다 따로 계산하므로 줄과 줄 사이의 관계는 알 수 없습니다. 여러 단면을 붙여 3차원 지형을 만들 때는 따로 요령이 필요합니다.

렌즈 이야기: 두꺼운 렌즈와 텔레센트릭 렌즈

실제 카메라 렌즈는 여러 장의 렌즈를 겹쳐서 각 렌즈의 결점을 서로 보완합니다. 이런 두꺼운 렌즈도 기준면 두 개(주평면)를 잡으면 얇은 렌즈와 같은 공식으로 다룰 수 있고, 망원 렌즈처럼 긴 초점거리를 짧은 몸통에 담는 요령도 여기서 나옵니다.

공장에서 부품 크기를 재거나 회로 기판을 검사할 때는 텔레센트릭 렌즈를 씁니다. 보통 렌즈는 가까운 물체를 크게 찍지만, 텔레센트릭 렌즈는 렌즈 중심을 아주 멀리 보낸 것과 같은 효과를 내서 거리와 상관없이 같은 크기로 찍습니다.

보통 렌즈와 텔레센트릭 렌즈의 차이 같은 크기의 막대 두 개. 보통 렌즈는 가까운 막대를 크게 찍고, 텔레센트릭 렌즈는 둘을 같은 크기로 찍습니다. 대신 렌즈 지름이 물체보다 커야 합니다.

물체가 조금 앞뒤로 움직여도 크기가 그대로이니, 사진 속 길이로 실제 길이를 바로 잴 수 있습니다.

직접 해 보기

① 석고 공과 달. 위상각 슬라이더를 0°(보름)에서 오른쪽으로 움직여 보세요. 0°에서는 하프케 쪽이 완전히 평평한 원판이 되고, 해가 옆으로 갈수록 등광선이 경도선 모양으로 바뀝니다.

② 밝기로 단면 되찾기. 사진 위를 끌어 주황 줄을 옮겨 보세요. 해의 고도를 낮추면 그림자 때문에, 잡음을 올리면 오차가 쌓여서 되찾은 단면이 실제와 어긋납니다.

정리

  • 램버트 표면은 빛을 받는 각도만으로 밝기가 정해지고, 정면에서 비추면 가장자리가 어두워져 공처럼 보입니다.
  • 달 표면은 하프케 표면에 가까워 밝기가 빛 각도와 보는 각도의 비로 정해지며, 보름에는 어디나 밝기가 같아 원판처럼 보입니다.
  • 하프케 표면의 등광선은 기울기 평면에서 직선이라, 밝기 하나로 해 방향의 기울기를 바로 알 수 있고 이를 더해 지형 단면을 그릴 수 있습니다. 다만 출발 높이는 따로 필요합니다.
  • 텔레센트릭 렌즈는 거리와 상관없이 같은 크기로 찍어서 부품 검사와 측정에 쓰입니다.

다음 글: [MIT 머신비전 9강] 바늘 그림에서 입체 모양 되살리기

참고: MIT 6.801/6.866 Machine Vision (Fall 2020), Berthold Horn · Ryan Sander · Tadayuki Yoshitake 강의 노트 (MIT OpenCourseWare, CC BY-NC-SA 4.0)

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.