본문 바로가기
C.W.K.
Stream
Lesson 03 of 04 · published

모든 걸 u 로 잰다

~12 min · loomis-units, scale-invariance, calibration, normalization

Level 0빈 종이
0 XP0/35 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete
"얼굴을 픽셀로 재지 마. 얼굴로 재."

픽셀도 센티미터도 못 믿는다

Loomis 공의 반지름을 정해야 한다고 쳐. 픽셀로 재면 그 숫자가 이미지 크기에 묶여버려. 1024 픽셀 사진에서 140 픽셀이었다면, 다음 레퍼런스가 512 나 4000 이 되는 순간 틀린 값이 돼. 그럼 센티미터로 잴까? 이번엔 카메라가 얼마나 가까이 섰냐에 따라 같은 얼굴이 다른 값을 갖게 돼. 천 장을 천 가지 거리에서 찍었다고 생각해봐. 픽셀도 센티미터도 기준이 못 되지.

얼굴을 얼굴로 잰다

해법은 얼굴을 바깥 잣대에 대는 대신 얼굴 자신에 대는 거야. Loomis 는 기준 하나를 정해뒀어. 눈썹에서 코까지의 거리, u. 그리고 나머지를 전부 u 의 몇 배로 적어. 공 반지름은 140 픽셀이 아니라 u 의 몇 배고, 턱 길이도 눈 간격도 옆면 깊이도 다 u 로 적혀 있어. u 자체가 얼굴과 같이 커지고 작아지니까, u 로 적은 비율은 크기에 안 흔들려. 사진을 자르든 줄이든 두 배 멀리서 찍든 값이 그대로야.

한 번 맞추고 계속 쓴다

사람이 한 번 잡은 감각이 모든 사진에서 버티는 게 이 덕분이야. 공이 u 의 몇 배인지, 삼등분이 어디 떨어지는지 같은 숫자들은 LoomisConfig 라는 작은 프로필에 모여 있어. 사람이 한 번 자기 비례 감각에 맞춰 조정하고, 그다음부터는 엔진이 새 사진마다 u 를 다시 재서 작도 전체를 거기 맞춰 늘리고 줄여. 맞추는 건 사람이 한 번, 맞춰 넣는 건 엔진이 매번. 그리고 이 프로필은 일부러 밖으로 꺼내두고 문서에도 적어놨어. 코드 안에 파묻지 않고. 사람이 정한 유일한 손잡이니까 보이는 데 있어야 하거든.

더 큰 이야기, 안에서 꺼낸 기준

이 수법은 얼굴보다 훨씬 넓게 쓰여. 물리학자는 방정식에서 잡다한 상수가 사라지도록 자연 단위를 골라. 인물 화가는 몸을 '머리 몇 개' 로 재서 거인이든 아이든 같은 비례 언어로 말하고. 머신러닝 파이프라인은 feature 를 정규화해서 스케일이 계산을 지배하지 못하게 막아. 전부 같은 수야. 대상 안에서 기준을 하나 꺼내면, 그 뒤로는 크기가 알아서 상쇄된다. Loomis 의 u 는 그 수법을 사람 얼굴에 적용한 거고.

Code

픽셀은 깨지고 u 는 버틴다·python
# BROKEN: hard-code the ball radius in pixels.
# Fine on one photo, wrong on the next.
ball_radius_px = 140          # ok at 1024px wide ... wrong at 512px or 4000px

# ROBUST: express the radius as a ratio of u = brow-to-nose distance.
u = distance(landmarks[BROW], landmarks[NOSE_BASE])   # measured on THIS photo
ball_radius = 1.9 * u          # 1.9 is a property of the FACE, not the image

# The multiplier 1.9 lives in LoomisConfig -- a human calibrates it ONCE.
# u is re-measured automatically on EVERY photo. Scale cancels; the profile holds.

External links

Exercise

얼굴 사진을 하나 놓고 두 군데를 픽셀로 재. 눈썹에서 코까지, 이게 u 야. 그리고 한쪽 눈 너비. 눈 너비를 u 로 나눠봐. 이제 사진을 절반 크기로 줄이고 셋을 다시 재. 픽셀 값은 반으로 줄어드는데 눈 너비 나누기 u 는 어떻게 됐어? 뭐가 그대로 남았고 왜 그게 Loomis 의 바닥인지 설명해봐.
Hint
픽셀 값은 이미지랑 같이 줄지만 둘의 비율은 안 줄어. 줄어든 배수가 분자에도 분모에도 똑같이 들어가서 지워지거든. 그 지워짐이 크기에 안 흔들린다는 뜻이야. 작도 전체를 u 로 적어두면 보정 한 번이 크기가 제각각인 레퍼런스 천 장을 견디는 이유가 그거고.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.