🧭걸어온 길
처음부터 지금의 방법을 알았던 건 아니에요. 사진 한 장씩 막힐 때마다 시도하고, 측정하고, 틀린 걸 거둬들이며 여기까지 왔어요. 그 전환점들이에요.
전환점
- 2022년 6월 · 데브 세미나Plate Solving을 처음 소개하다
동료가 찍은 사이판·석촌호수 사진을 사람이 별자리 앱으로 풀어 보고, Astrometry.net이 사각형과 KD-tree로 푸는 방법을 소개했어요. 마지막 장의 목표는 '밝은 별만으로, 땅이나 구름이 찍힌 사진에서도, 안 되면 사진 두 장만이라도'였어요.
- 2023년 4월 · 드림 챌린지삼각형으로 직접 만들다가 실패 선언
별 9천여 개로 삼각형 284만 개를 만들었는데, 각도가 같은 삼각형이 3천 개 가까이 나와 가를 수 없었어요. 발표 직전에 북두칠성을 5시간 만에 풀고, 다음 날 3분 24초로 줄였어요.
북두칠성 5시간 → 3분 24초 - 2025년 3월 · V2 발표사각형 해싱 하나
별 넷의 모양을 숫자 넷으로 바꾸는 기하 해싱으로 다시 만들었어요. 별 찾기는 OpenCV, 모양 색인(65MB)은 풀이 코드에 통째로 실었어요. 맞는지 판정하는 단계가 없어 후보를 늘어놓기만 했고, 사람이 별을 고치고 후보를 골라야 했어요.
- V3 초기노이즈 많은 사진과 사람의 협업
사이판 사진은 물결 반사광이 전부 가짜 별이고, 진짜 별은 밝기 순위 284~405위였어요. 사람이 별 있는 영역을 고르면 그 안에서 다시 찾게 해, 진짜 별 8개로 8/8 맞게 풀었어요. 병목은 짝 찾기가 아니라 '어두운 진짜 별이 안 보이는 것'이었어요.
- V3 초기어안이라 믿은 은하수
석촌호수 은하수 사진을 손 라벨 8개로 맞춰 어안 렌즈로 결론 내리고, 작은 패턴 투표로 렌즈까지 맞추는 어안 풀이를 만들었어요. 합성 어안은 가짜 50%에도 정확히 풀었지만, 실제 사진은 못 풀었어요.
- V3 초기사진에 맞춘 코드 지우기
은하수만 저장된 라벨로 그리던 길을 지웠어요. 어떤 사진이든 같은 흐름으로 풀고, 안 풀리면 정직하게 '모르겠어요'라고 하기로 했어요.
- 2026년 10월 19일확신의 기준을 다시 세우다
샘플 16장을 앱과 같은 흐름으로 돌리자 거의 다 '찾았다'고 했고, 그중 여럿이 틀렸어요. '우연 기대치의 몇 배'를 '우연일 확률 10억 분의 1'로 바꾸자 틀린 확신이 사라졌어요.
틀린 확신 13장 → 0장 - 2026년 10월 19일멈출 때를 알게 되다
확신 기준이 생기자 '확신하면 바로 멈추기'가 안전해졌어요. 못 푸는 사진은 8초에서 끊어요. 삼각형 색인은 KD-tree 대신 격자 칸으로 바꿔 17배 빨리 만들어요.
북두칠성 0.9초 → 0.18초, 최악 70초 → 9.4초 - 2026년 10월 20일두 패턴을 함께
삼각형과 사각형을 실제 사진에 각각 돌려 보니 서로 못 푸는 사진을 풀었어요. 사각형 먼저, 안 되면 삼각형.
자동으로 풀리는 샘플 3장 → 6장 - 2026년 10월 20일땅을 가리다
똑똑한 필터를 두 번 실패한 뒤, 사람이 하는 단순한 일(땅을 가리고 하늘만 보기)을 흉내 냈어요. 사진 위쪽 75·55·45%로 차례로 풀어요.
6장 → 13장 - 2026년 10월 20일은하수는 어안이 아니었다
원근 변환이 어안보다 잘 맞았고, 자동 풀이가 라벨에 없던 별 26개를 2~4픽셀로 맞췄어요. 원근 정밀화와 밝은 별 삼각형 색인을 더했어요.
13장 → 14장 (16장 중) - 2026년 10월 20일별다움
풀린 사진의 답으로 검출마다 진짜인지 자동으로 표시하는 측정 기준부터 만들고, '주변이 고른 하늘인가' 하나로 가짜를 뒤로 미뤘어요. 땅 위치를 가정하지 않아도 거의 다 풀려요.
앞쪽 25개 안의 진짜 별 124 → 280 - 2026년 10월 20일합성 장면, 줄지음, 처음 보는 사진
창문·전봇대·바다 반사·비행기를 넣은 픽셀 합성 장면으로 시험하고, 줄지은 점을 뒤로 미뤘어요. 받은 그대로 돌린 처음 보는 사진도 풀렸어요. 작성자의 정답 그림이 있는 2장은 별 위치가 3픽셀 안으로 맞았고, 틀린 확신은 없었어요.
모든 거짓 요소를 섞은 장면 0/8 → 7/8 - 2026년 10월 20일하늘 계산
해·달·행성 위치를 직접 계산해 그리고, 지평선으로 촬영 시각을 거꾸로 찾고, 별 10개짜리 사이판 사진을 시각·장소·지평선으로 풀었어요. 지평선도 자동으로 찾아요.
사이판: 클릭 없이 풀림 - 2026년 10월 20일받는 것에서 만드는 것으로
OpenCV를 직접 짠 코드로 바꾸고, 모양 색인은 받지 않고 브라우저가 만들고, 글꼴은 쓰는 글자 조각만 받아요.
처음 받는 양 28MB(V2) → 0.68MB - 2026년 10월 20일흔들려도 풀리게
풀리는 사진 14장을 WebP·재압축·축소로 흔들어 112건으로 시험했어요. 시간 제한 없이 잰 개선이 8초 안에서는 퇴보라는 걸 발견하고, 마지막 단계에서만 검색을 넓혔어요.
112건 중 107 → 108, 틀린 확신 0 - 2026년 10월 21일사람에게 먼저 묻지 않는다
화면 흐름도 바꿨어요. 사진을 고르면 바로 풀고, 못 찾거나 틀렸을 때만 사람이 별·지평선·달을 고쳐요.