2P by neo 2달전 | favorite | 댓글 1개

페이지 뒤틀림 보정 (Page Dewarping)

  • 말려있는 페이지 이미지를 펴는 작업을 최적화 문제로 접근함

배경

  • Leptonica 라이브러리나 Coordinate Transform Model (CTM) 방법 등 기존의 뒤틀림 보정 방법들은 계층적 문제 분해 접근법을 사용함
    1. 텍스트를 라인 단위로 분리
    2. 라인들을 평행하고 수평이 되도록 와핑(warping)이나 좌표 변환을 찾음
  • CTM의 3D 실린더 모델 기반 접근법에서 아이디어를 얻어, 페이지 모양을 결정하는 파라미터들을 사용한 자체 파라메트릭 모델을 만듦
    • 3D 회전/이동 벡터, 페이지 곡률 기울기, 수평선 오프셋 등
  • 최적화 문제로 정의
    • 원본 사진에서 수평 텍스트 영역을 따라 키포인트들을 찾음
    • 초기 추정치에서 시작해 모델 파라미터를 최적화해 키포인트 재투영 에러를 최소화

절차

  1. 페이지 경계 추출
  2. 텍스트 윤곽선 검출
  • 이진화, 모폴로지 연산, 연결요소 분석 사용
  • 세로 텍스트 테이블도 검출하도록 특화
  1. 텍스트 윤곽선을 수평 영역으로 그룹화
  2. 수평 영역에서 키포인트 샘플링
  3. 초기 모델 파라미터 추정
  4. 최적화로 재투영 에러 최소화
  • scipy.optimize.minimize의 Powell 솔버 사용
  • 실행 시간의 대부분을 차지함
  1. 최적 모델로 좌표 변환 후 영상 리매핑 및 이진화

결과

  • 다양한 예제 영상에서 잘 동작함
  • 모델 파라미터 수가 많아 최적화에 시간이 걸림
  • 가로 방향 왜곡은 고려하지 않았음

마무리

  • 배경지식을 쌓고 최적화 문제로 공식화하는 전형적인 워크플로우
  • Deformable Part Model, Active Appearance Model과 유사한 접근법
  • Emacs, Pylint 등 도구 활용 노하우도 얻음
  • 추가 발전 계획은 없지만, 컴퓨터비전을 가르칠 때 참고할 만한 프로젝트

GN⁺의 의견

  • 실제 사용성을 위해서는 가로 방향 왜곡도 보정할 필요가 있어 보임. 이를 위해 CTM처럼 더 정교한 모델이 필요할 듯함.
  • 최적화 속도 개선이 중요해 보임. 파라미터 수를 줄이거나 고속 최적화 기법을 쓰면 도움될 것 같음.
  • 딥러닝 기반 방법과 비교해보면 흥미로울 것 같음. 딥러닝이 특징점 추출과 모델링을 동시에 해결해 줄 수 있을지도.
  • 산업 현장의 문서 디지털화 작업 등에 활용하려면 다양한 레이아웃의 문서에 대한 강인성이 더 확보되어야 할 듯함.
  • 오픈소스로 공개된 것은 좋으나, 실사용을 위해서는 파이썬 스크립트보다는 독립 실행형 프로그램으로 배포하는 것이 나을 것 같음.
Hacker News 의견

요약:

  • 이미지 이진화 시 높은 임계값 적용에 주의해야 함
    • 일반 텍스트에는 잘 동작하지만, 삽화나 각주 등이 읽을 수 없을 정도로 훼손될 수 있음
    • Google Books 스캔이 유일한 경우 운이 나쁠 수 있음
  • 2024년인데도 문서 스캐너 앱에 이 기능이 내장되어 있지 않음
  • Adobe 전 CEO John Warnock은 희귀 역사 서적 보존에 힘썼음
    • 펼칠 수 없는 스캔 페이지의 de-curling이 과제였음
    • 관련 프로젝트: Rare Book Room
  • 이 글은 기술 프로젝트와 결정을 효과적으로 문서화하는 방법의 예시로 직장에서 참고할 만함
  • 대학 시절 색상 코딩된 노트 스캔 앱을 만들다 색상 왜곡 문제에 부딪힘
    • 페이지 상단과 하단의 색상이 달라 파란색과 초록색 펜 구분이 어려웠음
  • 결과물이 적절해 보이나, warp 모델이 다소 전역적임
    • 종이의 복잡한 왜곡을 모두 포착하지 못해 최종 결과에 잔류 왜곡이 보임
  • 2016년에 못 봐서 아쉬웠던 흥미로운 글
    • 문제 정의, 스마트한 기법 적용, 잘 동작하는 솔루션 도출의 전 과정이 잘 서술됨
    • 직접 사용할 일은 없겠지만 문제 해결 과정의 훌륭한 예시
  • 설치 오류 발생, GitHub 이슈 등록함
  • 영수증 de-wrinkling도 해보면 좋겠음
  • OCR만 필요하다면 이 단계를 건너뛸 수 있을 것
  • Google은 10년 전에 이미 이 문제를 해결함
  • 가치 있는 책고문서라면 X선 단층촬영으로 비접촉식 de-warping 가능