무색무광 (멀티프레임 글레어 제거 문서 스캐너)
OpenCV 멀티프레임 합성을 활용해 문서의 빛 반사(Glare)를 제거하고, PaddleOCR 튜닝을 통해 텍스트 인식률을 극대화한 웹 기반 문서 스캔 솔루션

프로젝트 개요
유광 용지나 화이트보드를 촬영할 때 발생하는 조명 반사(Glare)로 인해 텍스트 인식률이 떨어지는 문제를 해결하기 위해 만든 문서 스캔 솔루션이다. 단일 이미지 보정 방식으로는 반사광 제거에 한계가 있다고 판단해, 여러 장의 이미지를 활용하는 멀티프레임 합성 방식의 이미지 처리 파이프라인을 구현했다. 반사광 제거와 정투영 보정을 거친 이미지를 기반으로 OCR을 수행해 보다 안정적인 텍스트 추출이 가능하도록 구성했다.
담당 역할 및 기여 — Full Stack Developer & AI Engineer
- OpenCV 기반 이미지 전처리 파이프라인 설계 및 구현
- PaddleOCR 모델 적용 및 인식 파라미터 튜닝
- FastAPI 기반 이미지 처리 API 구현
- React Drag & Drop UI 및 결과 비교 인터페이스 개발
핵심 기술 구현
- 멀티프레임 글레어 제거 파이프라인
단일 프레임 필터링으로는 강한 반사광 제거가 어려워 멀티프레임 기반 이미지 처리 파이프라인을 구성했다.
- Multi-frame Merge: 여러 프레임의 픽셀 정보를 비교하여 반사광이 없는 영역을 합성
- Specular Masking & Inpainting: 과노출 영역을 검출하고 주변 픽셀 정보를 활용해 복원
- Perspective Warp: 문서 영역을 자동 검출하여 정투영 변환 수행
조명 평탄화 처리를 함께 적용하여 다양한 촬영 환경에서도 텍스트 가독성을 유지할 수 있도록 했다.
2. PaddleOCR 인식 정확도 개선
기본 OCR 설정에서 작은 글씨 누락과 텍스트 박스 오검출 문제가 발생해 파라미터 튜닝을 진행했다.
- det_db_box_thresh 조정으로 검출 민감도 개선
- det_db_unclip_ratio 조정으로 텍스트 영역 확장
- 이미지 upscale 및 이진화 기반 second pass 적용
이를 통해 저해상도 이미지와 혼합 문서에서도 인식 정확도를 개선할 수 있었다.
문제 해결 경험
반사광으로 인한 OCR 인식 실패
유광 교재나 신분증 촬영 시 반사 영역의 텍스트가 손실되는 문제가 있었다. 단일 이미지 처리 방식으로는 복원이 어렵다고 판단해, 서로 다른 프레임에서 반사광이 없는 픽셀을 선택해 합성하는 방식으로 문제를 해결했다. 그 결과 강한 반사광 환경에서도 안정적으로 텍스트를 추출할 수 있었다.
모바일 OCR 모델 정확도 문제
초기에는 속도를 고려해 Mobile OCR 모델을 사용했지만 복잡한 한글 문서와 손글씨 인식 정확도가 낮았다. 정확도를 우선으로 판단해 PaddleOCR Server 모델로 전환하고, FastAPI 비동기 처리 구조를 적용해 처리 지연을 최소화했다.
배운 점
이미지 처리와 OCR 모델 성능은 단일 알고리즘보다 전체 파이프라인 설계에 더 크게 영향을 받는다는 것을 경험했다. 특히 전처리 단계에서 데이터 품질을 개선하는 것이 인식 성능을 크게 좌우한다는 점을 확인할 수 있었다.