플러팅 AI/Flask Server
다양한 OCR 모듈 사용해보며 느낀 점 (Tesseract, EasyOCR, PaddleOCR, Google Cloud Vision, Clova OCR)
Solo.dev
2024. 11. 18. 19:38
다양한 OCR 모듈 사용해보며 느낀 점 (Tesseract, EasyOCR, PaddleOCR, Google Cloud Vision, Clova OCR)
프로젝트를 진행하면서 핵심 기술인 OCR에 대해 직접 다양한 모듈을 사용해 보았습니다. 각 OCR 모듈마다 특징이 뚜렷하게 나타났고, 이를 통해 프로젝트에 맞는 최적의 선택을 찾는 데 많은 도움이 되었습니다. 이번 포스팅에서는 제가 실제로 사용해 본 주요 OCR 모듈들의 사용 후기와 느낀 점을 공유하려 합니다.
1. Tesseract OCR
소개
- Google이 개발한 오픈소스 OCR 엔진으로, 다양한 언어를 지원하며 무료입니다.
장점
- 오픈소스로 수정 가능 (초보 개발자에겐 다소 무관한 장점).
- 다양한 언어 인식에 강력 (하지만 한국어 인식률은 낮음).
- 이미지 전처리를 통해 정확도 개선 가능 (모든 OCR 모듈에 해당).
단점
- 속도가 느리다는 평이 있지만, 제 경험상 다른 OCR에 비해 특별히 느리진 않았습니다.
- 환경 설정이 약간 까다롭지만, 다른 모듈에 비해 평이한 편입니다.
- 기본 설정으로는 한글 인식률이 낮아 추가 학습이 필요합니다.
사용 경험
- 영어 텍스트 인식에는 탁월했지만, 한국어 인식은 미흡했습니다.
- 한글 인식이 중요한 제 프로젝트에서는 결국 다른 대안을 찾게 되었습니다.
2. EasyOCR
소개
- PyTorch 기반의 오픈소스 OCR 라이브러리로, 80개 이상의 언어를 지원하며 설치가 매우 간편합니다.
장점
- pip install easyocr로 손쉽게 설치 가능.
- 다양한 언어 지원, 특히 한글 인식률이 높은 편.
- GPU 가속을 지원해 속도 개선 가능 (저는 CPU만 사용).
단점
- 모델이 커서 메모리 사용량이 많습니다.
- 커스텀 학습이 어려워 정확도 개선이 제한적입니다.
사용 경험
- 설치가 정말 간단해서 초심자에게 추천할 만합니다.
- 하지만 속도가 가장 느려 실시간 처리에는 적합하지 않아 사용을 포기했습니다.
3. PaddleOCR
소개
- Baidu에서 개발한 OCR 모듈로, 경량 모델과 고성능 모델 모두 제공하여 다양한 환경에서 사용 가능합니다.
장점
- 정확도가 높고 경량화된 모델 제공.
- 텍스트 검출과 인식을 통합하여 자연스러운 워크플로우.
- 다양한 전처리 옵션으로 최적화 가능.
단점
- 사용법이 다소 복잡하고 정보가 부족해 학습 곡선이 높습니다.
- 서버에서 모델을 로드하는 시간이 다소 걸립니다.
사용 경험
- 설정이 까다롭지만, 설정 후에는 매우 빠르고 정확한 성능을 보여주었습니다.
- 특히 아시아권 언어 인식률이 높아 만족스러웠습니다.
- 다만 메모리 사용량이 많아 최적화 문제로 고민 중입니다.
4. Google Cloud Vision
소개
- Google Cloud에서 제공하는 상용 OCR API로, 고도의 이미지 분석 기능을 포함합니다.
장점
- 매우 높은 정확도와 다양한 언어 지원.
- 문서 내 레이아웃 분석 가능.
- 클라우드 기반으로 대규모 데이터 처리에 유리.
단점
- 유료 서비스로 비용 부담이 큽니다.
- 인터넷 연결이 필수라 속도 지연 발생 가능.
사용 경험
- 한글 인식률이 높고 기능이 다양하지만, 비용 때문에 사용을 포기했습니다.
5. Clova OCR
소개
- 네이버에서 제공하는 상용 OCR 서비스로, 한국어 인식에 특화되어 있습니다.
장점
- 한글 인식률이 매우 높음.
- 문서 내 표와 레이아웃 분석 기능 제공.
- 사용이 매우 간편.
단점
- 무료 사용 시 호출 제한이 있고, 일정 이상 사용 시 비용이 발생.
사용 경험
- 한글 인식에 있어 최고의 정확도를 보여주었으나, 가격 문제로 프로젝트에서 배제하게 되었습니다.
정리 및 결론
제 프로젝트에서는 이미지 내 요소들을 Crop한 후 OCR 작업을 진행했습니다. 그 결과, 상용 서비스인 Google Cloud Vision과 Clova OCR은 뛰어난 정확도를 보였지만 비용이 큰 문제였습니다.
- 정확도 우선: 비용이 문제가 되지 않는다면 Google Cloud Vision을 선택할 것입니다.
- 비용 절감: 현재 상황에서는 무료로 사용 가능한 PaddleOCR 또는 Tesseract를 활용하고 있습니다.
특히 Tesseract와 PaddleOCR은 특정 언어에 대해 추가 학습이 가능하기 때문에, 더 깊이 연구하고 학습을 시킬 수 있는 분들에게 추천드립니다.
현재 저는 PaddleOCR로 프로젝트를 진행 중이며, 메모리 문제를 해결한 후 다음 포스팅에서 추가적인 경험을 공유할 수 있기를 기대합니다. 🙏
틀린 점이나 수정할 점 있다면 항상 환영입니다. 부족한 저에게 지식을 나눌 기회를 주십쇼 감사합니다.