실제 포스터에서 폰트 알아맞히기 · 후보 3,721종

92.2%

1순위92.2%
3순위95.2%
5순위96.1%

학습에 쓰지 않은 글줄 2,687개로 잰 값이다. 후보를 하나씩 렌더해 견주는 방식은 3,700종이면 수십 초가 걸리는데, 이 모델은 10ms에 끝난다.

어떻게 여기까지 왔나

폰트 파일로 그리기 11.1%

그려낸 글자의 결을 배워 버렸다

배경·잡음 섞기 16.6%

증강을 세게 줘도 벽은 그대로

글자 지우고 덧그리기 44.7%

여기서 오래 막혀 있었다

실제로 만든 눈 + 합성 머리 80.4%

눈과 머리를 나눠 만들자 뚫렸다

템플릿 다시 그리기 92.2%

폰트만 갈아끼워 진짜 배경에 그렸다

넘은 방법

눈과 머리를 나눠 만들었다

합성만으로 밑바닥부터 세우면 모델이 폰트가 아니라 ‘그려진 글자의 결’을 배운다. 실제 크롭으로 백본을 먼저 만들고 그 위에 카탈로그 전량을 얹었다.

44.7% → 80.4%

템플릿을 폰트만 갈아끼워 다시 그렸다

템플릿에 실제로 쓰인 폰트는 211종뿐. 그런데 템플릿도 폰트도 배경도 우리 것이니, 자리·크기·색은 진짜 그대로 두고 폰트만 바꿔 29만 장을 그렸다.

80.4% → 92.2%

곁들여, 합성 글자는 실제보다 획이 날카롭다 — 획 가장자리가 실제는 12.5%인데 그려낸 것은 4.8%였다. 글자 높이에 비례하는 흐림으로 그 격차를 메웠다.

공개된 연구와 견주면

DeepFont Adobe · 2015 71.4%
HanFont 한글 · 2019 57.9%
이 모델 3,721종 92.2%

후보 수는 각각 617 · 3,300 · 3,721종이다. 합성으로 배워 실제 사진에서 몇 %인지 수치로 공개한 사례는 사실상 DeepFont 하나뿐 — 공개 구현들은 대개 합성 테스트셋 점수만 낸다.

남은 약점

글자 12~20px 94.8%
20~34px 94.4%
34~60px 93.9%
60px 이상 85.9%

작은 글자가 약할 줄 알았는데 큰 글자가 가장 약하다. 큰 글자는 제목에 쓰이고, 제목은 손글씨체·세리프 변형처럼 서로 닮은 장식 폰트를 쓴다. 다음 개선의 첫 자리다.

학습 비용

1차 — 자동종료가 잘못 걸림$1.76
2차 — 8에폭 (90.8%)$8.65
3차 — 앞선 종료 예약에 걸려 중단$5.81
4차 — 20에폭 완주 (92.2%)$14.87
합계$31.09

g6.12xlarge · L4 24GB 넉 장 · 시간당 $5.658. 이 중 $7.57은 스크립트 문제로 날린 것이고, 원인은 모두 배포 스크립트에 반영했다 — 이제 학습을 걸기 전에 재료를 점검하고 종료 예약은 한 곳에서만 관리한다.

끝까지 굽는 것이 중요하다. 8에폭에서 “수렴한 것 같다”고 멈췄을 때 90.8%였는데, 20에폭 완주해 92.2%가 됐다. 코사인 학습률은 지정한 에폭 수에 맞춰 짜이므로 중간에 멈추면 후반의 수확기를 버리게 된다.