"각도를 알려주면 상자 그리는 건 아무나 해. 어려운 건 사진만 보고 그 각도를 알아내는 거지."
정방향은 쉽고 역방향은 어렵다
작도 문제에는 방향이 둘 있어. 정방향은 값을 넣어서 그림을 얻는 쪽이야. 3D 렌더러에 머리 모델이랑 yaw 20도, 초점거리를 주면 투영된 그림이 나와. 어떤 그래픽 엔진이든 하는 일이고 별로 안 어려워.
공부에 필요한 건 역방향이야. 흐름이 정반대지. 그림은 이미 있어. 진짜 얼굴 사진 말이야. 여기서 값을 거꾸로 알아내야 해. 어떤 yaw, pitch, roll 이었고 카메라는 어디 있었나? 그 값만 되찾으면 작도는 거기서 저절로 따라 나와. Loomis 가 하는 일이 이 역방향 하나고, 역문제는 원래 정방향보다 훨씬 어렵기로 유명해.
모델한테 그냥 그리라고 하면 안 되나
솔깃한 지름길이 있지. 작도가 그려진 사진 수천 장으로 모델을 훈련시켜서 공이랑 상자를 바로 그리게 하는 거야. 작도처럼 보이는 게 나오긴 해. 근데 그럴듯해 보이는 건 기준이 못 돼. 생성 모델이 맞추는 건 기하학적 일관성이 아니라 그럴듯한 자국이거든. 자기가 칠한 공이 자기가 같이 칠한 턱 각도랑 맞을 이유가 없어. 밑의 구조를 푼 게 아니라 답의 겉모습만 흉내낸 거니까. 믿을 만한 기준이 되는 게 존재 이유인 도구한테 흉내는 실격이야.
정답지는 재현이 돼야 한다
엔진 전체가 이 문장 하나를 지키려고 지어졌어. 재현이 안 되는 정답지는 정답지가 아니다. 기하에 같은 사진을 두 번 넣으면 소수점까지 똑같은 작도가 나와. 몇 년 뒤에 넣어도 똑같고. 사진만 정해지면 답도 정해진다는 뜻이야. 반면 샘플링 온도나 가중치 업데이트가 끼어드는 모델은 그걸 약속 못 해. 화요일에 본 답이 목요일에 달라지는 순간, 그건 이미 대볼 기준이 아니야. 여기서 기하를 고른 이유는 더 화려해서가 아니라 말이 안 바뀌어서야.
기하는 '모르겠다'고 말할 줄 안다
조용한 장점이 하나 더 있어. 얼굴이 너무 돌아갔거나 조명이 landmark 를 먹어버리면 기하는 뻥카를 안 쳐. reprojection error 를 크게 뱉지. 이 fit 은 흔들리니까 덜 믿으라는 신호야. 생성기는 반대야. 아무것도 모르는 상황에서도 구조상 자신 있어 보이는 결과를 내놔. 배우는 사람한테는 정직한 '잘 모르겠어' 가 자신만만한 오답보다 훨씬 값져. 그리고 그 말을 해줄 수 있는 건 기하 쪽뿐이고.