Chapter 11

모양과 공간의 수학

기하는 '자를 대고 재는' 수학처럼 보이지만, 공학이 기하에서 정말로 빌려 쓰는 것은 무엇이 변하고 무엇이 변하지 않는가를 가려내는 눈입니다. 메쉬를 늘여도 변하지 않는 수(위상), 도로를 따라 달라지는 휨(곡률), 어떤 지도로도 피할 수 없는 왜곡(가우스 곡률), 사진 속에서 만나는 평행선(사영기하), 한 점에 모이지 않는 빛(수차). 이 장은 그 다섯 가지를 각각 하나의 공학 문제에서 꺼냅니다.

이 수식이 없었다면문서 스캔 앱

책상 위 영수증을 스마트폰으로 비스듬히 찍으면 직사각형 종이가 사다리꼴로 찍히고, 먼 쪽 글자는 작고 가까운 쪽 글자는 큽니다. 이미지를 회전·확대·기울이는(아핀) 어떤 조합으로도 이것은 펴지지 않습니다. 아핀 변환은 평행선을 평행하게 두는데, 사진 속 종이의 두 변은 평행하지 않고 저 멀리 한 점(소실점)에서 만나기 때문입니다. 스캔 앱은 종이의 네 모서리만 찾은 뒤, 그 네 쌍의 대응으로 3×3 호모그래피 행렬을 풀어 모든 픽셀을 반듯한 A4 위로 옮깁니다. 차선 인식 카메라가 도로를 하늘에서 내려다본 모습(버드아이 뷰)으로 바꾸는 것도 같은 행렬입니다.

비스듬히 찍은 종이→평행선이 만난다→아핀으로는 못 편다→사영기하 · 호모그래피→반듯한 스캔

늘여도 변하지 않는 수: 위상과 오일러 특성수

3D 스캔 메쉬에 구멍이 있는가

3D 스캐너가 만든 삼각형 메쉬는 수십만 개의 면으로 이루어져 있고, 스캔이 닿지 않은 곳에는 작은 구멍이 숨어 있습니다. 구멍 난 메쉬를 3D 프린터 슬라이서에 넣으면 '안'과 '밖'이 정의되지 않아 출력이 망가집니다. 면을 하나하나 눈으로 볼 수는 없습니다. 모양이 아무리 복잡해도 한 번에 답을 주는 숫자 하나가 필요합니다.

좌표·길이·각도는 메쉬를 조금만 매끄럽게 다듬어도 전부 바뀝니다. 그래서 질문을 바꿉니다. 찢거나 붙이지 않고 늘이고 구부리기만 할 때 변하지 않는 성질은 무엇인가? 이것을 다루는 분야가 위상수학(Topology)입니다. 위상수학자에게 도넛과 손잡이 달린 머그컵은 같은 물체입니다. 진흙 도넛을 주물러 머그컵을 만들 때 구멍 하나가 손잡이로 그대로 남기 때문입니다.

도넛 (구멍 1) 주무르는 중 (구멍 1) 머그컵 (구멍 1) χ = 0 셋 다
그림 11-1. 찢거나 붙이지 않는 연속 변형(위상 동형)으로 도넛은 머그컵이 된다. 길이·넓이·곡률은 모두 바뀌지만 '구멍(손잡이)의 개수'는 바뀌지 않는다. 이런 불변량만 보는 것이 위상수학이다.

구멍의 개수를 어떻게 계산으로 셀까요? 오일러가 1750년대에 다면체에서 발견한 놀라운 사실이 답입니다. 꼭짓점 수 \(V\), 모서리 수 \(E\), 면 수 \(F\)는 다면체마다 제각각인데, \(V-E+F\)는 공처럼 생긴 다면체라면 항상 2입니다. 정육면체 8−12+6, 정이십면체 12−30+20 모두 2입니다. 아래에서 다면체를 바꾸고 분할을 잘게 해 보세요.

SIMULATOR

V − E + F는 무엇을 세는가

끌어서 회전
꼭짓점 V—
모서리 E—
면 F—
χ = V − E + F—
경계 고리 b · 구멍 g—
해볼 것: ① 정다면체 다섯 개와 '구'의 분할 수를 바꿔 보며 V, E, F는 제멋대로 변해도 χ = 2로 고정되는 것을 확인. ② 토러스와 '구멍 g개 판'으로 바꾸면 χ = 0, −2, −4…, 즉 χ = 2 − 2g. ③ '면 하나 떼어내기'를 켜면 χ가 정확히 1 줄고, 짝 없는 모서리(주황색 경계 고리)가 나타난다. 모델: 닫힌 다면체 메쉬(면은 다각형, 모든 모서리는 면 두 개에 공유). 판은 정육면체 블록을 이어 붙인 것이라 같은 평면 위에 모서리가 많지만 χ에는 영향이 없다.
$$\chi = V - E + F = 2 - 2g - b$$
\(g\): 구멍(손잡이) 수, \(b\): 경계 고리 수(메쉬가 닫혀 있지 않을 때 짝 없는 모서리가 이루는 고리). 구는 \(g=0\)이라 2, 토러스는 0, 손잡이 둘이면 −2. 면을 쪼개면 \(V,E,F\)가 함께 늘지만 늘어나는 양이 정확히 상쇄되므로 χ는 메쉬를 어떻게 나누든 같은 값이다. 그래서 '표면 자체의' 성질이다.

왜 쪼개도 불변일까요? 면 하나에 대각선을 그으면 \(E\)와 \(F\)가 1씩 늘어 상쇄되고, 모서리 중간에 점을 찍으면 \(V\)와 \(E\)가 1씩 늘어 상쇄됩니다. 모든 세분은 이 두 동작의 조합이니 χ는 움직이지 않습니다. 실무에서는 이 덕분에 수십만 면짜리 메쉬도 정수 세 개만 세어 "구멍 없는 공 모양인가(χ = 2, b = 0)"를 즉시 판정할 수 있습니다. 메쉬 처리 라이브러리의 '물샐틈없음(watertight)' 검사가 짝 없는 모서리와 함께 확인하는 값입니다.

엔지니어의 눈으로 χ는 결함 검출기다. 스캔 메쉬가 χ = 2를 기대했는데 1이 나오면 구멍이 하나, 0이 나오면 원치 않는 '손잡이'(얇은 부분이 서로 붙어 생긴 터널)가 하나 생긴 것이다. 위치는 몰라도 '있다'는 것은 숫자 하나로 안다.

다리 일곱 개와 칩 배선: 그래프와 평면성

위상적 사고의 출발점은 오히려 다면체보다 앞선 1736년의 퍼즐이었습니다. 프로이센 쾨니히스베르크(지금의 칼리닌그라드)에는 강 사이 땅 넷을 잇는 다리가 일곱 개 있었고, 시민들은 "모든 다리를 꼭 한 번씩만 건너는 산책"이 가능한지 궁금해했습니다. 오일러는 땅의 모양·다리 길이를 모두 버리고 땅 = 점, 다리 = 선으로만 남긴 그래프(Graph)로 바꿨습니다. 거리를 버리고 연결만 남긴다는 것, 이것이 위상적 사고입니다.

A (북쪽 둑) B (남쪽 둑) C (섬) D 강(파란 띠) · 다리(굵은 회색 선) 7개 A · 차수 3B · 차수 3 C · 차수 5D · 차수 3
그림 11-2. 쾨니히스베르크의 다리(개략도)와 그 그래프. 각 점에 붙은 선의 수(차수)가 모두 홀수다. 중간에 지나가는 점은 '들어왔다 나가는' 쌍이 필요하므로 차수가 짝수여야 하고, 홀수 차수 점은 출발점이나 도착점만 될 수 있다.
$$\text{한붓그리기 가능} \iff \text{연결되어 있고, 홀수 차수 꼭짓점이 0개 또는 2개}$$
0개면 출발점으로 돌아오는 오일러 회로, 2개면 한 홀수점에서 출발해 다른 홀수점에서 끝나는 오일러 경로. 쾨니히스베르크는 홀수점이 4개라 불가능하다. 이 조건은 배선 검사 로봇이나 CNC·레이저 절단기가 공구를 들지 않고 한 번에 그을 수 있는 경로(펜 들기 횟수 최소화)를 계산할 때 그대로 쓰인다.

평면 그래프: 배선이 교차하지 않으려면

인쇄 회로 기판(PCB)이나 칩의 한 배선층에서는 선이 서로 교차할 수 없습니다. 교차가 필요하면 비아(via)로 다른 층으로 넘어가야 하고, 층과 비아는 곧 비용입니다. 그러면 "이 연결은 한 층에 교차 없이 그릴 수 있는가?"가 궁금해집니다. 여기서도 오일러 공식이 결정적입니다. 교차 없이 평면에 그린 연결 그래프는 바깥 영역까지 면으로 세면 \(V-E+F=2\)를 만족하고, 각 면이 적어도 세 변으로 둘러싸인다는 사실(\(3F \le 2E\))과 합치면 강력한 부등식이 나옵니다.

$$E \le 3V - 6 \qquad (\text{삼각형이 없는 그래프는 } E \le 2V-4)$$
\(K_5\)(점 5개를 모두 잇기): \(E=10 > 3\cdot5-6=9\) → 평면에 못 그린다. \(K_{3,3}\)(집 3채와 수도·전기·가스 3곳을 모두 잇는 퍼즐): 삼각형이 없으므로 \(E=9 > 2\cdot6-4=8\) → 못 그린다. 쿠라토프스키 정리(1930)는 거꾸로, 평면에 못 그리는 그래프에는 반드시 이 둘 중 하나가 (세분된 형태로) 숨어 있다고 말한다.
그림 11-3. 평면 그래프가 될 수 없는 두 기본 그래프. 어떻게 다시 배치해도 적어도 한 번(빨간 점)은 교차한다. 배선 설계 도구는 교차를 피하려 층을 나누고, 그 최소 층수를 줄이는 것이 배치·배선(P&R) 최적화의 한 목표다.
오일러 공식의 쓰임 하나 더 축구공은 정오각형 12개와 정육각형 20개로 되어 있다. 꼭짓점마다 세 면이 만나는 다면체가 오각형과 육각형만으로 닫히려면 오일러 공식에서 \(F_5 = 12\)가 강제된다(육각형 수는 자유). 탄소 60개로 된 풀러렌 C₆₀, 지오데식 돔이 정확히 12개의 '결함' 꼭짓점을 갖는 이유도 같다. 평면은 육각형만으로 덮이지만(그래핀), 구로 닫으려면 χ = 2가 오각형 12개를 요구한다.

핸들을 언제 꺾을까: 곡률과 완화곡선

직선 도로 끝에 원형 커브를 바로 붙이면

반지름 100 m 커브를 시속 60 km로 돌면 차는 약 2.8 m/s²의 원심 가속도를 받습니다(\(v^2/R\)). 직선 끝에서 원호가 곧바로 시작되면, 이 가속도가 0에서 2.8 m/s²로 한순간에 튀어야 하고 운전자는 핸들을 순간적으로 꺾어야 합니다. 실제로는 그럴 수 없으니 차가 차선을 벗어납니다. 직선과 원호는 매끄럽게(접선 방향이 같게) 이어져 있는데 무엇이 문제일까요?

접선이 연속이어도 '휘는 정도'가 불연속이기 때문입니다. 곡선이 한 점에서 얼마나 휘는지를 재는 가장 자연스러운 방법은 그 점에 가장 잘 들러붙는 원, 즉 접촉원(Osculating Circle)을 찾는 것입니다. 곡선 위 가까운 세 점을 지나는 원의 극한이고, 그 반지름이 곡률 반지름 \(R\), 역수가 곡률(Curvature) \(\kappa = 1/R\)입니다. 직선은 \(\kappa=0\)(\(R=\infty\)), 반지름 100 m 원은 어디서나 \(\kappa = 0.01\ \text{m}^{-1}\).

$$\kappa = \frac{d\theta}{ds} = \frac{x'y'' - y'x''}{(x'^2+y'^2)^{3/2}}, \qquad a_\perp = v^2 \kappa$$
\(\theta\): 접선 방향 각, \(s\): 호의 길이. 곡률은 '진행 거리당 방향 회전율'이다. 그래프 \(y=f(x)\)이면 \(\kappa = f''/(1+f'^2)^{3/2}\). 부호는 왼쪽으로 휘면 +. 일정 속도 \(v\)로 달리는 차의 횡가속도는 \(v^2\kappa\), 곧 핸들 각은 (저속 근사로) 곡률에 비례한다.

그러니 운전자가 핸들을 일정한 속도로 돌리게 하려면 곡률이 주행 거리에 비례해 0에서 \(1/R\)까지 서서히 늘어나는 곡선을 직선과 원호 사이에 끼워야 합니다. \(\kappa(s) = s/A^2\)인 곡선, 이것이 클로소이드(Clothoid, Euler spiral)이고, 도로 설계에서 완화곡선(Transition Curve)으로 쓰입니다. 철도는 3차 포물선 같은 다른 완화곡선도 쓰지만 목적은 같습니다: 곡률(=횡가속도)을 연속으로 만드는 것.

SIMULATOR

접촉원을 끌고 다니며 곡률 읽기

곡선
곡률 κ—
곡률 반지름 R—
횡가속도 @60 km/h—
횡저크(가속도 변화율)—
위: 곡선과 접촉원(점을 끌거나 '위치' 슬라이더), 아래: 호의 길이 \(s\)에 따른 곡률 \(\kappa(s)\). 해볼 것: ① '도로'에서 L = 0이면 직선(회색)→원호(파랑) 경계에서 κ가 계단처럼 튀고 횡저크가 무한대가 된다. L을 늘리면 클로소이드(주황) 구간에서 κ가 직선적으로 오른다. ② '사인'에서 꼭대기의 접촉원이 가장 작고, 변곡점(κ = 0)에서 원이 반대편으로 뒤집히는 것. ③ '타원'을 납작하게 하면 장축 끝의 곡률이 커진다(\(\kappa = a/b^2\)). 모델: 도로는 직선 120 m + 클로소이드 L + 반지름 100 m 원호 160 m. 저크는 클로소이드 구간의 \(v^3/(RL)\).

L = 0일 때와 L = 75 m일 때를 비교하면 이 절의 메시지가 보입니다. 원호의 반지름(최대 곡률)은 같은데, 곡률이 시작되는 방식이 달라졌습니다. 클로소이드 구간의 횡저크 \(v^3/(RL)\)는 60 km/h, L = 75 m에서 약 0.6 m/s³으로, 일반적으로 쾌적하다고 보는 범위 안입니다. 롤러코스터 루프가 원이 아니라 위로 갈수록 좁아지는 물방울 모양인 것도 비슷한 이유로, 곡률을 점진적으로 바꿔 가속도의 급변을 줄이기 위해서라고 알려져 있습니다.

κs 직선→원호: 계단 (핸들을 순간에 꺾어야) 직선→클로소이드→원호: 기울기 (핸들을 일정 속도로) 직선 κ=0원호 κ=1/R
그림 11-4. 곡률 그래프로 보면 도로 설계의 핵심이 분명하다. 위치(곡선 모양)는 둘 다 매끄럽게 이어지지만, 곡률의 연속성이 다르다. 곡률은 위치의 2차 미분이므로, '모양이 매끄러워 보인다'와 '달리기에 매끄럽다'는 다른 조건이다.
클로소이드 계산 \(\kappa = s/A^2\)를 적분하면 \(\theta = s^2/(2A^2)\), 좌표는 \(x = \int_0^s \cos\frac{t^2}{2A^2}dt,\; y=\int_0^s \sin\frac{t^2}{2A^2}dt\)로 프레넬 적분이 된다. 닫힌 형태가 없어 수치 적분(4장의 룽게–쿠타, 10장)으로 계산한다. 매개변수 \(A^2 = RL\)이 설계값이다. 같은 아이디어가 CNC 공구 경로와 로봇 경로 계획에서 '곡률 연속(G2)' 이음으로 쓰인다.

오렌지 껍질은 평평해지지 않는다: 가우스 곡률

휘는 디스플레이는 왜 한 방향으로만 휘는가

돌돌 마는 디스플레이, 접는 스마트폰, 곡면 모니터는 모두 화면을 한 방향으로만 휩니다. 얇은 OLED 필름을 반구 모양 돔에 붙이려 하면 가장자리가 주름지거나 찢어집니다. 종이 한 장으로 원통은 쉽게 말지만 공은 감싸지 못하는 것과 같습니다. 원통과 공은 둘 다 '휘어 있는데' 무엇이 다를까요?

곡면 위 한 점에서는 방향마다 곡선의 곡률이 다릅니다. 가장 크게 휘는 방향과 가장 작게 휘는 방향의 곡률을 주곡률(Principal Curvatures) \(\kappa_1,\kappa_2\)라 하고, 그 곱을 가우스 곡률(Gaussian Curvature)이라 부릅니다.

$$K = \kappa_1 \kappa_2 = \frac{1}{R_1 R_2}$$
구(반지름 \(R\)): 두 방향 모두 \(1/R\) → \(K = 1/R^2 > 0\). 원통: 둘레 방향 \(1/R\), 축 방향 0 → \(K=0\). 말안장: 두 방향이 반대로 휨 → \(K<0\). 주곡률의 부호는 법선 쪽으로 휘는지로 정한다.
구 K > 0 내각 합 > 180° 원통 K = 0 내각 합 = 180° (펴진다) 안장 K < 0 내각 합 < 180°
그림 11-5. 가우스 곡률의 세 부호. 주황색은 곡면 위의 측지선(가장 짧은 길) 삼각형이다. 원통은 휘어 보여도 K = 0이라 잘라서 펴면 평면이 되고 삼각형 내각 합도 정확히 180°다. 구와 안장은 어떻게 해도 펴지지 않는다.

가우스는 1827년, 이 곱이 곡면이 3차원 공간에 '어떻게 놓였는지'와 무관하게 곡면 위에서 잰 거리만으로 결정된다는 것을 증명하고 스스로 빼어난 정리(Theorema Egregium)라 이름 붙였습니다. 곡면을 늘이거나 줄이지 않고 구부리기만 하면(등거리 변형) 곡면 위 모든 거리가 그대로이니 \(K\)도 그대로입니다. 결론은 단호합니다.

곡률이 '안에서' 보인다는 말은 무슨 뜻일까요? 곡면 위에 측지선(가장 짧은 길)으로 삼각형을 그리고 내각을 재면 됩니다. 평면에서는 180°지만 곡면에서는 그 안에 들어 있는 곡률만큼 어긋납니다.

$$\alpha + \beta + \gamma = \pi + \iint_{\triangle} K\, dA \quad\xrightarrow{\ \text{구}\ }\quad \alpha+\beta+\gamma = \pi + \frac{\text{넓이}}{R^2}$$
가우스–보네 정리의 삼각형 판. 구면에서는 지라르의 정리라 부른다. 남는 각 \(\varepsilon = \alpha+\beta+\gamma-\pi\)(구면 초과량)가 곧 넓이다. 작은 삼각형일수록 넓이가 작아 평면처럼 보인다. 땅 위 측량이 대부분 평면 기하로 충분한 이유다.
SIMULATOR

구 위의 삼각형: 내각의 합은 180°가 아니다

점을 끌기 · 빈 곳을 끌면 회전
삼각형 프리셋
∠A · ∠B · ∠C—
내각의 합—
구면 초과량 ε—
넓이 (지구, R = 6371 km)—
해볼 것: ① '작은 삼각형'에서 세 점을 서로 가까이 모으면 합이 180°에 다가간다(넓이 → 0). ② '직각 셋'은 북극과 적도 위 경도 0°·90° 점으로, 세 각이 모두 90°(합 270°)이고 넓이는 정확히 구의 1/8(약 6,380만 km²). ③ '서울·런던·뉴욕'은 대권(최단 항로)으로 이은 삼각형 — 지도 위에서 굽어 보이는 항공로가 실제로는 '직선'이다. 모델: 반지름 1인 구, 정사영(멀리서 본 모습) 렌더. 변은 대원호(측지선), 각은 꼭짓점에서의 접선 벡터 사이 각.

지구를 종이에: 지도 투영과 티소 지시원

나침반 하나로 대양을 건너려면

16세기 항해사는 "북동쪽 45°로 계속 가라" 같은 일정한 나침반 방위로 항해했습니다(항정선). 그런데 지구본 위에서 이 경로는 극을 향해 감기는 나선이라, 평범한 격자 지도에서는 곡선으로 그려져 자로 방위를 읽을 수 없었습니다. 빼어난 정리 때문에 완벽한 지도는 없으니, 무엇을 지키고 무엇을 버릴지 골라야 합니다.

메르카토르(1569)의 선택은 각도였습니다. 경선을 평행한 세로선으로 펴면 위도 \(\varphi\)에서 동서 방향이 \(\sec\varphi\)배 늘어나므로, 남북 방향도 같은 비율로 늘이면 국소적으로 모양(각도)이 보존됩니다. 이런 지도를 등각 투영(Conformal Projection)이라 하고, 그 위에서 항정선은 직선이 됩니다. 대가는 넓이입니다. 길이 배율 \(\sec\varphi\)가 두 방향에 다 걸리니 넓이는 \(\sec^2\varphi\)배, 위도 60°에서 4배, 70°에서 약 8.5배입니다.

$$\text{메르카토르: } x = R\lambda,\quad y = R\ln\tan\!\Big(\frac{\pi}{4}+\frac{\varphi}{2}\Big) \qquad \text{람베르트 등적 원통: } x = R\lambda,\quad y = R\sin\varphi$$
\(\lambda\): 경도, \(\varphi\): 위도(라디안). 메르카토르의 \(y\)는 \(dy/d\varphi = R\sec\varphi\)를 적분한 것. 등적 원통은 남북을 \(\cos\varphi\)배로 눌러 동서 확대 \(\sec\varphi\)를 상쇄 → 넓이는 보존, 대신 고위도에서 모양이 납작해진다. 하나의 지도가 각도와 넓이를 동시에 보존하는 것은 불가능하다(그러면 거리까지 보존되어 빼어난 정리에 어긋난다).

투영이 어디서 얼마나 왜곡하는지 한눈에 보는 도구가 19세기 프랑스 수학자 티소의 지시원(Tissot's Indicatrix)입니다. 지구 위 곳곳에 같은 크기의 작은 원을 놓고 지도에 투영하면, 원이 타원으로 바뀝니다. 타원의 두 반지름 \(a, b\)가 그 지점의 최대·최소 길이 배율이고, \(ab\)가 넓이 배율, \(a/b\)가 각도 왜곡입니다. 수학적으로는 투영의 야코비 행렬(국소 선형 근사)의 특이값입니다(3장의 SVD).

SIMULATOR

티소 지시원: 같은 원이 지도마다 어떻게 변하나

투영
길이 배율 a · b—
넓이 배율 ab—
최대 각 왜곡—
지도 위 넓이 그린란드/아프리카—
파란 원은 지구 위에서 모두 같은 크기(지름 약 1,300 km)이고, 노란 원이 탐침 위도의 원이다. 해볼 것: ① 메르카토르에서 탐침을 0° → 80°로 올리면 원은 원 모양 그대로(각 왜곡 0) 커지기만 한다(\(a=b=\sec\varphi\)). 그린란드가 아프리카보다 커 보이지만 실제 넓이는 약 217만 km² 대 약 3,030만 km²(약 1/14). ② 등적 원통으로 바꾸면 넓이 배율이 어디서나 1, 대신 고위도 원이 가로로 납작한 타원이 된다. ③ 몰바이데는 넓이를 지키면서 각 왜곡을 가장자리로 몰아낸 절충안. 모델: 구형 지구, 원은 반지름 6°의 측지 원을 그대로 투영(그래서 고위도 메르카토르 원은 약간 달걀형). 대륙 윤곽은 수십 개 점으로 만든 개략 다각형이다.
투영지키는 것버리는 것쓰이는 곳
메르카토르(웹 메르카토르)각도(등각) → 항정선이 직선, 확대해도 모양 유지넓이(고위도 과장), 극 표현 불가해도, 웹 지도 타일(확대 축소해도 길모퉁이가 직각)
정거 원통(위경도 그대로)경선 방향 거리, 계산의 단순함각도·넓이 모두위성 영상·기후 데이터 격자, 360° 파노라마 저장 형식
람베르트 등적 원통 · 몰바이데넓이(등적)각도(모양)인구·식생 분포처럼 '면적이 곧 양'인 주제도
심사 투영(그노몬)대원 → 직선각도·넓이, 반구 이하만대권 항로 계획
카메라도 지도다 360° 카메라와 어안 렌즈는 구면(모든 방향)을 평면 센서에 담는 지도 투영 문제를 그대로 푼다. 파노라마를 위경도 격자(정거 원통)로 저장하면 하늘과 바닥이 늘어나고, 어안 렌즈는 등거리·등입체각 같은 서로 다른 투영 공식을 따른다. 이 장 끝의 '왜곡' 절과 이어지는 이야기다.

평행선이 만나는 곳: 사영기하와 소실점

차선 인식 카메라가 본 도로

앞 유리의 카메라가 찍은 도로에서 평행한 두 차선은 화면 위쪽 한 점으로 모입니다. 차선 사이 폭은 아래에서 300픽셀, 위에서 20픽셀입니다. 차가 차선 중앙에서 얼마나 벗어났는지 미터 단위로 알려면 이 '모여드는' 기하를 되돌려야 합니다. 유클리드 기하에는 "평행선은 만나지 않는다"는 공리가 있는데, 사진 속에서는 매번 만납니다.

지평선(소실선) 소실점 침목 간격(실제로는 같음)이 위로 갈수록 좁아진다 → 비율은 깨지지만 '직선은 직선'과 교차비는 남는다
그림 11-6. 원근 사진에서 실제로 평행한 직선들은 한 소실점에서 만나고, 같은 평면(지면) 위의 모든 평행선 묶음의 소실점은 한 직선(지평선) 위에 있다. 길이·각도·평행은 깨지지만 '직선은 직선', '점이 직선 위에 있음', 그리고 교차비는 보존된다.

원근(핀홀 카메라)은 3차원 점 \((X,Y,Z)\)를 \((fX/Z,\ fY/Z)\)로 보냅니다. \(Z\)로 나누기가 모든 것의 원인입니다. 나눗셈은 선형이 아니라서 3장의 행렬로 바로 쓸 수 없습니다. 해결책은 좌표를 하나 더 붙이는 동차 좌표(Homogeneous Coordinates)입니다. 평면의 점 \((x,y)\)를 \((x,y,1)\)로 쓰고, \((wx, wy, w)\)는 모두 같은 점으로 칩니다. 그러면 '마지막 성분으로 나누기'를 맨 끝으로 미룰 수 있고, 그 전까지는 전부 행렬 곱입니다.

w = 1 (실제 화면) wx (−1,1)(0.8,1)(2,1) w = 0: 화면과 평행 → 무한원점 원점을 지나는 직선 하나 = 점 하나
그림 11-7. 동차 좌표의 그림(한 차원 낮춘 판). '점'은 원점을 지나는 직선이고, 화면(w = 1)과 만나는 곳이 우리가 보는 위치다. 화면과 평행한 직선(w = 0)은 화면 어디와도 만나지 않는다: 이것이 '무한원점'이고, 평행선이 만나는 곳이다. 카메라를 기울이면 이 점이 화면 안으로 들어와 소실점이 된다.

동차 좌표에서는 직선도 벡터 \(\ell = (a,b,c)\)(직선 \(ax+by+c=0\))로 쓰이고, 놀랍게도 점과 직선이 대칭이 됩니다.

$$\ell = \mathbf p \times \mathbf q \ \ (\text{두 점을 지나는 직선}), \qquad \mathbf v = \ell_1 \times \ell_2 \ \ (\text{두 직선의 교점})$$
외적 한 번으로 '두 점 → 직선', '두 직선 → 교점'이 끝난다. 평행한 두 직선의 교점은 \(w=0\)인 \((a, b, 0)\) 꼴, 즉 방향만 있는 무한원점이 나온다. 그래서 사영 평면에서는 어떤 두 직선도 정확히 한 점에서 만난다. 예외가 사라진다. 사진 속 종이의 위·아래 변으로 직선 두 개를 만들고 외적을 하면 소실점이 나온다(다음 시뮬레이터에서 그대로 쓴다).
기하허용하는 변환자유도(평면)보존되는 것(불변량)
유클리드회전 + 이동3길이, 각도, 넓이
닮음+ 균일 확대4각도, 길이의 비
아핀+ 기울임·비균일 확대 (2×2 행렬 + 이동)6평행, 같은 직선 위 길이의 비, 넓이의 비
사영+ 원근 (3×3 행렬, 동차 좌표)8직선, 접합(점이 직선 위), 교차비
위상연속 변형∞연결성, 구멍 수, 오일러 특성수

이 표는 펠릭스 클라인이 1872년 에를랑겐 프로그램에서 제시한 관점, "기하란 어떤 변환들 아래서 변하지 않는 성질을 연구하는 것"을 요약합니다. 아래로 갈수록 허용하는 변환이 많아지고 남는 불변량은 적어집니다. 변환들이 이루는 '군'은 12장의 주제입니다. 사영 아래서도 살아남는 대표 불변량은 한 직선 위 네 점의 교차비(Cross Ratio) \(\frac{AC\cdot BD}{BC\cdot AD}\)입니다. 침목 간격처럼 길이의 비는 원근에서 깨지지만 교차비는 그대로라서, 사진 한 장으로 도로 위 거리를 재는 데 쓸 수 있습니다. 화가들이 르네상스 시기에 정립한 원근법도 결국 이 기하를 손으로 구현한 것입니다(집필 예정인 ArtBook에서 다룰 예정).

네 점이면 충분하다: 호모그래피와 문서 스캔

카메라가 평면(종이, 도로 면, 체스판)을 찍을 때, 평면 위 점 \((u,v)\)와 사진 속 점 \((x,y)\) 사이의 관계는 정확히 3×3 행렬 하나로 쓰입니다. 이것이 호모그래피(Homography, 사영 변환)입니다.

$$\begin{bmatrix} x' \\ y' \\ w' \end{bmatrix} = \underbrace{\begin{bmatrix} h_{11} & h_{12} & h_{13} \\ h_{21} & h_{22} & h_{23} \\ h_{31} & h_{32} & h_{33} \end{bmatrix}}_{H} \begin{bmatrix} u \\ v \\ 1 \end{bmatrix}, \qquad x = \frac{x'}{w'},\ \ y = \frac{y'}{w'}$$
원소는 9개지만 \(H\)와 \(2H\)는 같은 변환이므로(동차 좌표의 배율 자유) 자유도는 8. 아래 행 \((h_{31}, h_{32})\)이 0이면 아핀 변환(평행 유지)이고, 0이 아니면 \(w'\)가 위치마다 달라져 원근이 생긴다. 평면 \(Z=0\)을 찍는 카메라 \(K[R\,|\,\mathbf t]\)에서 세 번째 열이 빠지며 \(H = K[\mathbf r_1\ \mathbf r_2\ \mathbf t]\)가 된다.

미지수가 8개이고, 대응점 하나가 식 두 개(\(x\)와 \(y\))를 주므로 점 네 쌍이면 됩니다(그중 세 점이 한 직선 위에 있지 않아야 함). \(h_{33}=1\)로 두고 분모를 양변에 곱하면 선형식이 됩니다. 이 방법을 DLT(Direct Linear Transform)라 합니다.

$$\begin{aligned} u\,h_{11} + v\,h_{12} + h_{13} - u x\, h_{31} - v x\, h_{32} &= x \\ u\,h_{21} + v\,h_{22} + h_{23} - u y\, h_{31} - v y\, h_{32} &= y \end{aligned} \quad (\text{점마다 2줄} \times 4 = 8\times 8\ \text{선형계})$$
문서 스캔 앱은 (1) 가장자리 검출로 종이의 네 모서리를 찾고 (2) 이 8×8 계를 풀어 \(H\)를 얻은 뒤 (3) 출력 A4의 각 픽셀 \((u,v)\)마다 \(H(u,v,1)^\top\)를 계산해 사진에서 그 위치의 색을 가져온다(역방향 매핑 + 보간, 6장의 재표본화). 점이 많고 잡음이 있으면 최소제곱(SVD)과 RANSAC으로 푼다.
SIMULATOR

문서 스캐너: 네 꼭짓점으로 원근 펴기

찍힌 사진 · 꼭짓점 4개를 끄세요
H로 편 결과
사진 위에 표시
H (단위 정사각형 → 픽셀, h₃₃=1)—
소실점 (위·아래 변)—
소실점 (좌·우 변)—
모서리 평균 오차—
해볼 것: ① 네 점을 종이의 네 모서리에 맞추면(또는 '자동 맞춤') 오른쪽에 반듯한 문서가 나타난다. 모서리를 몇 픽셀만 어긋나게 해도 표의 선이 기울어지는 것을 보라. ② '소실점'을 켜고 종이의 마주 보는 변을 연장하면 사진 밖 어딘가에서 만난다. 두 소실점을 잇는 선이 책상 면의 지평선이다. ③ '아핀으로 근사'를 켜면 네 번째 점이 무시되고(점선 평행사변형) 아무리 맞춰도 먼 쪽 글자가 펴지지 않는다. 모델: 합성 '사진'은 정답 호모그래피로 만든 흑백 이미지, 결과는 역방향 매핑 + 쌍선형 보간. H는 8×8 선형계를 가우스–조르단으로 푼다.
같은 행렬, 다른 제품 차선 인식의 버드아이 뷰(역원근 변환, IPM)는 도로 면 위 네 점과 화면 위 네 점으로 \(H\)를 정한 것이다. 파노라마 사진 이어 붙이기(카메라가 제자리에서 회전하면 두 사진 사이가 호모그래피), 축구 중계의 가상 오프사이드 선, 증강현실의 평면 마커 추적도 모두 3×3 행렬 하나다. 카메라 보정의 표준인 장정유(Zhang) 방법(2000)도 체스판 사진마다 호모그래피를 구한 뒤 거기서 카메라 내부 행렬 \(K\)를 뽑아낸다.
수치 함정 픽셀 좌표(수백~수천)를 그대로 넣으면 8×8 계의 원소 크기가 \(1\)에서 \(10^6\)까지 섞여 조건수가 나빠진다(10장). 실전 DLT는 점들을 원점 중심, 평균 거리 \(\sqrt2\)로 정규화한 뒤 풀고 되돌린다(하틀리 정규화). 이 시뮬레이터는 출력 쪽을 단위 정사각형으로 두어 규모 차이를 줄였다.

구면은 한 점에 모으지 못한다: 렌즈 수차

스마트폰 카메라 렌즈는 왜 이상한 모양인가

스마트폰 카메라 모듈을 잘라 보면 렌즈가 교과서 그림의 볼록렌즈가 아니라 가장자리가 물결치듯 휜 플라스틱 조각 여러 장입니다. 수백 년 동안 렌즈는 구면으로 만들어졌습니다. 두 면을 서로 비비며 갈면 어느 방향으로 맞대도 꼭 맞는 유일한 모양인 구면으로 저절로 수렴하기 때문입니다. 만들기 쉬운 이 구면이 왜 부족할까요?

교과서의 렌즈 공식(얇은 렌즈, 근축 근사)은 \(\sin\theta \approx \theta\)를 가정합니다. 렌즈 중심 가까이 들어오는 광선에만 맞는 근사입니다. 실제 스넬 법칙 \(n_1\sin\theta_1 = n_2\sin\theta_2\)를 정확히 따라가면, 구면의 가장자리로 들어온 광선은 중심 광선보다 더 앞에서 축을 만납니다. 이것이 구면수차(Spherical Aberration)입니다. 해결책은 면의 모양 자체를 바꾸는 것, 곧 비구면(Asphere)입니다.

$$z(r) = \frac{c\,r^2}{1+\sqrt{1-(1+K)\,c^2 r^2}} + A_4 r^4 + A_6 r^6 + \cdots$$
\(z\): 면의 처짐(sag), \(r\): 축에서의 높이, \(c=1/R\): 꼭짓점 곡률. \(K\): 원뿔 상수. \(K=0\) 구, \(-1
SIMULATOR

스넬 법칙으로 광선 추적: 구면수차와 비구면 보정

광학계
근축 초점 z (첫 면 기준)—
가장자리 광선 초점—
종구면수차 LSA—
최소 흐림 원 반지름—
위: 평행광 광선 추적(바깥 광선일수록 주황), 아래: 입사 높이 \(h\)별 초점 위치의 어긋남(종구면수차). 길이 단위는 꼭짓점 곡률 반지름 R. 해볼 것: ① K = 0(구면)에서 조리개를 키우면 초점이 번지고 아래 곡선이 대략 \(h^2\)에 비례해 내려간다. 조리개를 조이면 수차가 빠르게 준다(사진에서 조리개를 조이면 선명해지는 한 이유). ② 'K 최적화'를 누르면 '굴절면 하나'는 \(K=-1/n^2\), '평면 앞'은 \(K=-n^2\)으로 가며 수차가 0이 된다. ③ 같은 구면 평볼록 렌즈라도 '볼록면 앞'이 '평면 앞'보다 수차가 훨씬 작다. 렌즈는 방향도 중요하다. 모델: 2차원 자오면, 단색광, 스넬 법칙 정확 계산(근사 없음). 렌즈 두께 0.6R. 전반사된 광선은 그리지 않는다.

렌즈 설계는 곧 이런 '면 모양 최적화'입니다(9장). 구면만 쓰면 한 면이 지울 수 있는 수차가 적어서 렌즈를 여러 장 겹쳐 서로 상쇄시켜야 합니다. 비구면 한 장이 구면 여러 장의 일을 하므로, 두께가 몇 mm뿐인 스마트폰 카메라는 사출 성형한 플라스틱 비구면 렌즈 여러 장(대개 5~7장 안팎)으로 이 문제를 풉니다. 성형은 금형만 한 번 정밀하게 깎으면 같은 비구면을 대량으로 찍어낼 수 있어서, '갈기 쉬운 구면'의 경제학을 뒤집었습니다.

수차의 족보 근축 근사 다음 항(\(\sin\theta \approx \theta - \theta^3/6\))까지 넣은 3차 이론에서 단색 수차는 다섯 가지로 갈린다(자이델 수차): 구면수차, 코마, 비점수차, 상면 만곡, 왜곡. 이 중 앞의 넷은 점을 '흐리게' 만들고, 마지막 왜곡은 점은 선명하게 두되 위치를 옮긴다. 그래서 왜곡만은 사진을 찍은 뒤 계산으로 되돌릴 수 있다. 다음 절의 주제다.

직선이 휘는 사진: 방사 왜곡과 카메라 보정

광각 블랙박스 영상에서 차선이 휜다

화각이 넓은 블랙박스·액션캠 영상에서는 화면 가장자리의 곧은 건물과 차선이 바깥으로 불룩하게 휩니다(배럴 왜곡). 사람 눈에는 '광각 느낌'이지만, 차선 검출기는 직선을 찾고 앞 절의 호모그래피는 직선이 직선으로 찍힌다고 가정합니다. 렌즈를 바꾸지 않고 소프트웨어로 펴려면 휨을 수식으로 써야 합니다.

렌즈가 축 대칭이면 왜곡도 축 대칭입니다. 화면 중심에서 거리 \(r\)인 점이 \(r'\)로 옮겨지는데, \(r'\)은 \(r\)의 홀함수여야 하므로(축 반대쪽은 반대로) 테일러 전개는 홀수 차수만 남습니다. 이것이 브라운–콘래디 계열의 방사 왜곡 모델(Radial Distortion Model)이고, OpenCV 같은 카메라 보정 도구의 기본형입니다.

$$\mathbf x_d = \mathbf x\,\big(1 + k_1 r^2 + k_2 r^4 + k_3 r^6\big), \qquad r = \|\mathbf x\|$$
\(\mathbf x\): 정규화된 이상적 좌표(핀홀이 찍었을 위치), \(\mathbf x_d\): 실제 찍힌 위치. \(k_1<0\): 바깥이 안으로 눌림 → 배럴(광각). \(k_1>0\): 바깥이 늘어남 → 핀쿠션(망원). \(k_1<0, k_2>0\)이 섞이면 중심은 배럴, 가장자리는 핀쿠션인 '콧수염' 왜곡. 렌즈와 센서가 기울어 생기는 접선 왜곡 \(p_1,p_2\) 항을 더하기도 한다.
SIMULATOR

직접 해 보는 렌즈 왜곡 보정

찍힌 격자 (렌즈 왜곡)
보정 결과
렌즈
직선 오차 (RMS, 폭 1000 px 기준)—
렌즈 사양 k₁ · k₂—
판정—
해볼 것: ① k₁ 슬라이더만으로 배럴 렌즈의 격자를 곧게 펴 보라(오차 1 px 아래가 목표). 보정 결과의 점선 테두리는 원래 사진의 가장자리로, 배럴을 펴면 모서리가 바깥으로 뻗친 '핀쿠션 모양 이미지'가 되어 직사각형으로 잘라 써야 한다. ② '콧수염' 렌즈는 k₁만으로는 중심과 가장자리를 동시에 펼 수 없다. k₂가 필요하다. ③ '자동 보정'은 모든 격자선이 직선이 되도록 (k₁, k₂)를 탐색한다. 카메라 보정 프로그램이 체스판 사진으로 하는 일이 바로 이것이다. 모델: 정규화 좌표(가로 −1…1, 4:3), 방사 왜곡 2항, 보정은 사용자의 \((k_1,k_2)\) 모델을 뉴턴법으로 역변환한다.

실제 카메라 보정은 이 시뮬레이터와 같은 생각을 더 크게 합니다. 체스판을 여러 각도로 찍고, 각 사진의 모서리 점들에 대해 "핀홀 카메라 \(K[R\,|\,\mathbf t]\) + 왜곡 \((k_1,k_2,\ldots)\)로 투영한 위치"와 "실제 검출 위치"의 차이(재투영 오차)를 최소화합니다. 초깃값은 앞 절의 호모그래피로 얻고, 마무리는 비선형 최소제곱(레벤버그–마쿼트)입니다. 위상(χ), 미분기하(곡률), 사영기하(H), 광학(수차)이 카메라 한 대 안에서 만나는 셈입니다.

이 도구가 쓰이는 곳

이 장의 도구들이 시리즈의 다른 책에서 어떤 문제를 푸는지 모았습니다. 거꾸로, 각 책에서 '더 깊이' 링크를 따라오면 이 장의 해당 절로 연결됩니다.

핵심 정리

  1. 위상수학은 연속 변형 아래 불변인 성질만 본다. 오일러 특성수 \(\chi = V-E+F = 2-2g-b\)는 분할 방식과 무관하며, 메쉬의 구멍·결함을 정수 하나로 검출한다.
  2. 그래프로 추상화하면 한붓그리기 조건(홀수 차수 점 0개 또는 2개)과 평면성 한계(\(E\le 3V-6\), \(K_5\)·\(K_{3,3}\)는 비평면)가 오일러 공식에서 나온다.
  3. 곡률은 접촉원 반지름의 역수이자 거리당 방향 회전율이다. 횡가속도 \(v^2\kappa\)를 연속으로 만들려고 도로는 곡률이 거리에 비례하는 클로소이드를 원호 앞에 넣는다.
  4. 가우스 곡률 \(K=\kappa_1\kappa_2\)는 곡면 안에서 잴 수 있는 양이다(빼어난 정리). 그래서 구면은 평면으로 왜곡 없이 펴지지 않고, 휘는 디스플레이는 한 방향으로만 휜다. 측지 삼각형의 내각 합은 \(\pi + \iint K\,dA\).
  5. 지도 투영은 각도(메르카토르)와 넓이(등적) 중 하나를 고른다. 티소 지시원의 두 반지름 = 투영 야코비의 특이값.
  6. 원근은 '나누기'라서 동차 좌표로 행렬화한다. 평행선은 무한원점에서 만나며 외적으로 소실점을 계산한다. 평면→사진은 호모그래피(3×3, 자유도 8)이고 대응점 4쌍의 DLT로 구한다.
  7. 구면은 만들기 쉽지만 가장자리 광선을 앞에 모은다(구면수차). 원뿔 상수·비구면 계수로 면 모양을 바꿔 보정한다. 왜곡은 위치만 옮기므로 \(r' = r(1+k_1r^2+k_2r^4)\) 모델로 계산 보정한다.

확인 퀴즈

정이십면체는 꼭짓점 12개, 면 20개다. 모서리는 몇 개인가?

공 모양 다면체는 V − E + F = 2이므로 E = V + F − 2 = 30. 직접 세어도 같다: 삼각형 20개 × 변 3개 = 60인데 모서리마다 두 면이 공유하므로 30.

3D 스캔 메쉬(닫혀 있음, 경계 없음)를 검사했더니 V − E + F = −2가 나왔다. 이 표면은?

닫힌 곡면은 χ = 2 − 2g이므로 g = 2. 면이 빠졌다면 경계 고리가 생기므로 '경계 없음'과 모순이다. 얇은 부분이 서로 붙어 원치 않는 터널이 생겼을 가능성이 높다.

도로에서 직선과 원호 사이에 클로소이드를 넣는 가장 직접적인 이유는?

접선 방향은 직선과 원호만으로도 맞출 수 있다. 문제는 곡률이 계단처럼 튀는 것이다. 클로소이드는 κ(s) = s/A²로 곡률이 거리에 비례하므로, 일정 속도에서 횡가속도가 선형으로 늘고 저크가 유한해진다.

지구 위에 세 각이 모두 90°인 측지선 삼각형(북극–적도 위 경도 0°–경도 90°)의 넓이는 지구 겉넓이의 몇 분의 일인가?

구면 초과량 ε = 270° − 180° = π/2. 넓이 = εR² = (π/2)R², 겉넓이 4πR²의 1/8. 가우스–보네(지라르) 정리가 '각도로 넓이를 잰다'는 예다.

비스듬히 찍은 문서를 반듯하게 펴는 호모그래피를 정하려면 최소 몇 쌍의 대응점이 필요한가?

H는 원소 9개지만 배율이 자유라 자유도 8. 대응점 하나가 x, y 두 식을 주므로 4쌍. 3쌍으로는 아핀 변환(자유도 6)까지만 정해지고, 아핀은 평행을 유지하므로 원근을 펼 수 없다.

메르카토르 지도에서 위도 60°에 있는 땅은 적도의 같은 넓이 땅보다 지도 위에서 몇 배로 그려지는가?

메르카토르는 등각이라 위도 φ에서 모든 방향 길이 배율이 sec φ로 같다. 넓이 배율은 sec²φ = 1/cos²60° = 4. 각도(모양)를 지키는 대신 넓이를 버린 투영이다.