Android OCR에서 세로 일본어 텍스트를 처리하는 방법
Source: Dev.to
문제점
대부분의 OCR 엔진은 가로 → 오른쪽 텍스트에 최적화되어 있습니다. 만약 세로 일본어 텍스트가 있는 만화 페이지를 입력하면 다음과 같은 현상이 발생합니다:
- 문자 순서가 뒤섞임
- 인접한 열의 텍스트가 합쳐짐
- 열 경계에서 문자 누락
- 읽는 방향이 완전히 잘못됨
탐지 전략
종횡비 분석
세로 텍스트 블록은 가로보다 높이가 더 큽니다. 감지된 텍스트 영역의 높이‑대‑너비 비율이 > 2:1이면 세로 텍스트일 가능성이 높습니다.
문자 간격 패턴
세로 텍스트에서는 문자가 일정한 수직 간격으로 쌓여 있습니다. 감지된 문자들의 공간 분포를 분석해‑서, 문자들이 수직 축을 따라 군집한다면 OCR 전에 해당 영역을 90° 회전합니다.
ML Kit의 내장 지원
많은 Android OCR 앱에서 사용하는 Google ML Kit은 최근 버전에서 세로 텍스트 지원이 개선되었습니다. 일본어 스크립트 인식기를 포함한 TextRecognition API는 세로 텍스트를 비교적 잘 처리합니다.
실용적인 해결책: Screen Translator 접근법
Screen Translator에서는 세로 일본어 텍스트를 다음과 같은 다단계 파이프라인으로 처리합니다:
- 캡처 – MediaProjection API로 화면을 캡처
- 전처리 – 텍스트 영역을 감지하고 방향을 분석
- 필요 시 회전 – 세로 영역은 90° 시계 방향으로 회전
- OCR – 정규화된 이미지에 텍스트 인식 수행
- 후처리 – 문자 순서를 재배열해 올바른 읽기 순서로 복원
- 번역 – 올바르게 정렬된 텍스트를 번역 API에 전송
개발자를 위한 팁
- 합성 테스트 이미지가 아니라 실제 만화 페이지로 반드시 테스트하세요.
- 게임 내 일본어 텍스트는 커스텀 폰트를 사용해 OCR 정확도가 떨어질 수 있습니다.
- 한자 위에 표시되는 작은 루비(ふりがな)는 OCR을 혼란스럽게 할 수 있으니, 문자 크기로 필터링을 고려하세요.
- 가로·세로 레이아웃이 혼합된 경우(만화에서 흔함) 영역별 방향 감지가 필요합니다.
결과
세로 텍스트를 올바르게 처리하면, 깨끗한 디지털 스캔에 대한 OCR 정확도가 약 40 %에서 85 % 이상으로 크게 상승합니다. 핵심 인사이트는 OCR 전에 텍스트 방향을 감지해야 한다는 점입니다.
Screen Translator는 Android용 무료 부동 레이어 번역기로, 세로 일본어 텍스트, 만화, 게임 등을 지원합니다: Google Play