C#

[WPF/C#] Tesseract & PaddleOCR 기반 지능형 OCR 테스트 툴 개발 및 릴리즈 🚀

Coding J 2026. 4. 29. 14:30
728x90
반응형

안녕하세요! 오늘은 비전 검사 및 다양한 이미지 텍스트 추출 작업에서 필수적으로 사용되는 OCR(광학 문자 인식) 테스트 툴의 개발 및 릴리즈 소식을 전해드립니다.

현업에서 머신비전이나 데이터 추출 시스템을 개발하다 보면, 이미지의 상태에 따라 인식률이 크게 달라지기 때문에 최적의 전처리 옵션을 찾고 다양한 OCR 엔진을 비교 테스트하는 과정이 반드시 필요합니다. 이번에 개발한 툴은 이러한 번거로운 과정을 하나의 UI에서 직관적이고 빠르게 수행할 수 있도록 고안되었습니다.

🛠 Tech Stack (기술 스택)
최신 데스크톱 앱 개발 트렌드에 맞춰 최적의 퍼포먼스를 내기 위해 아래와 같은 기술 스택을 활용했습니다.

Framework: .NET 10.0, WPF
Architecture: MVVM Pattern (CommunityToolkit.Mvvm 적용)
Image Processing: OpenCV (OpenCvSharp4)
OCR Engines:
Tesseract (v5.2.0)
Sdcb.PaddleOCR & PaddleInference (딥러닝 기반 고성능 인식)
✨ Key Features (주요 기능)

  1. Dual OCR 엔진 지원 (Tesseract vs PaddleOCR)
    오픈소스 OCR의 대명사인 Tesseract와 최근 압도적인 인식률로 주목받고 있는 딥러닝 기반의 PaddleOCR을 모두 탑재했습니다. 클릭 한 번으로 두 엔진의 인식 결과를 즉각적으로 비교 분석할 수 있습니다.
  2. 직관적인 ROI(Region of Interest) 설정
    전체 이미지에서 텍스트를 추출할 특정 영역만을 마우스 드래그로 간단하게 지정할 수 있는 ROI 설정 창을 제공합니다. 다중 이미지를 불러왔을 때도 설정한 ROI를 일괄적으로 적용하여 테스트 효율을 극대화했습니다.
  3. 실시간 미리보기가 지원되는 강력한 전처리(Pre-processing) 기능
    OCR 인식률을 높이기 위한 핵심은 '전처리'에 있습니다. 본 툴에서는 OpenCvSharp을 활용하여 다음과 같은 다양한 전처리 옵션을 실시간으로 조절하고 결과를 확인할 수 있습니다.

기본 조정: Grayscale 변환, Resize, 수동 회전(Deskew)
명암 및 대비: 밝기(Alpha) 및 대비(Beta) 미세 조정
블러(Blur): Gaussian / Median Blur 지원
이진화(Thresholding): Otsu, Adaptive Threshold 및 색상 반전(Invert)
모폴로지(Morphology): 침식, 팽창, 열기, 닫기 등 커널 및 반복 횟수 조절
노이즈 제거: 지정된 크기 이하의 작은 노이즈(미세 픽셀) 제거
이 모든 과정을 실시간 프리뷰로 보며 최적의 파라미터를 찾을 수 있습니다.

💡 Development Insights (개발 주안점)
이번 프로젝트에서 가장 신경 쓴 부분은 '사용자 경험(UX)과 성능의 조화'입니다. MVVM 패턴을 엄격하게 적용하여 뷰(View)와 비즈니스 로직(ViewModel)을 완벽히 분리함으로써 코드의 유지보수성을 높였습니다.

또한, 무거운 이미지 처리 알고리즘과 OCR 엔진 구동 시 UI 스레드가 멈추는(Freezing) 현상을 방지하기 위해 async/await 기반의 비동기 프로그래밍을 철저히 적용하여, 다수의 이미지를 로드하고 전처리를 수행하는 중에도 부드러운 앱 사용성을 보장합니다.

🚀 마치며
이 OCR 테스트 툴은 단순한 텍스트 추출을 넘어, 어떤 이미지 조건에서 어떤 전처리 파라미터가 최적의 결과를 내는지 분석하는 강력한 환경을 제공합니다. 비전 솔루션 개발자나 데이터 자동화 시스템을 구축하시는 분들께 큰 도움이 되길 바랍니다.

추가적인 기능 업데이트나 엔진 튜닝에 대한 아이디어가 있다면 언제든 댓글로 남겨주세요!

https://drive.google.com/file/d/1S-2-7GPO1kMK-Q6p2ydpDZLQRb9g2rxV/view?usp=drive_link

*현재 Paddle 기능은 정상적으로 동작이 안되고 있으니 참고 부탁드립니다.
*Test용 데모버전임을 참고 부탁드립니다.

728x90
반응형