
즉시 사용 가능한 OCR로, 80개 이상의 언어와 라틴 문자, 중국어, 아랍어, 데바나가리, 키릴 문자 등 모든 주요 문자 체계를 지원합니다.
80개 이상의 지원 언어와 라틴어, 중국어, 아랍어, 데바나가리어, 키릴 문자 등 모든 주요 문자 체계를 지원하는 즉시 사용 가능한 OCR입니다.
Gradio를 사용하여 Huggingface Spaces 🤗에 통합되었습니다. 웹 데모를 사용해 보세요:
2024년 9월 24일 - 버전 1.7.2



pip을 사용하여 설치
최신 안정 버전:
pip install easyocr
최신 개발 버전:
pip install git+https://github.com/JaidedAI/EasyOCR.git
참고 1: Windows의 경우, 먼저 공식 지침(https://pytorch.org)에 따라 torch와 torchvision을 설치하세요. pytorch 웹사이트에서 자신이 보유한 CUDA 버전에 맞는 것을 선택해야 합니다. CPU 모드로만 실행하려면 CUDA = None을 선택하세요.
참고 2: Dockerfile도 여기에서 제공합니다.
import easyocr
reader = easyocr.Reader(['ch_sim','en']) # 모델을 메모리에 로드하려면 한 번만 실행하면 됩니다.
result = reader.readtext('chinese.jpg')
출력은 리스트 형식이며, 각 항목은 경계 상자(bounding box), 감지된 텍스트, 신뢰도 수준을 각각 나타냅니다.
[([[189, 75], [469, 75], [469, 165], [189, 165]], '愚园路', 0.3754989504814148),
([[86, 80], [134, 80], [134, 128], [86, 128]], '西', 0.40452659130096436),
([[517, 81], [565, 81], [565, 123], [517, 123]], '东', 0.9989598989486694),
([[78, 126], [136, 126], [136, 156], [78, 156]], '315', 0.8125889301300049),
([[514, 126], [574, 126], [574, 156], [514, 156]], '309', 0.4971577227115631),
([[226, 170], [414, 170], [414, 220], [226, 220]], 'Yuyuan Rd.', 0.8261902332305908),
([[79, 173], [125, 173], [125, 213], [79, 213]], 'W', 0.9848111271858215),
([[529, 173], [569, 173], [569, 213], [529, 213]], 'E', 0.8405593633651733)]
참고 1: ['ch_sim','en']은 읽으려는 언어 목록입니다. 여러 언어를 동시에 지정할 수 있지만 모든 언어가 함께 사용될 수 있는 것은 아닙니다.
영어는 모든 언어와 호환되며, 공통 문자를 공유하는 언어들은 일반적으로 서로 호환됩니다.
참고 2: 파일 경로 chinese.jpg 대신 OpenCV 이미지 객체(numpy 배열) 또는 바이트 형태의 이미지 파일을 전달할 수도 있습니다. 원본 이미지의 URL도 허용됩니다.
참고 3: reader = easyocr.Reader(['ch_sim','en']) 행은 모델을 메모리에 로드하기 위한 것입니다. 시간이 걸리지만 한 번만 실행하면 됩니다.
detail=0으로 설정하여 더 간단한 출력을 얻을 수도 있습니다.
reader.readtext('chinese.jpg', detail = 0)
결과:
['愚园路', '西', '东', '315', '309', 'Yuyuan Rd.', 'W', 'E']
선택한 언어의 모델 가중치는 자동으로 다운로드되거나, 모델 허브에서 수동으로 다운로드하여 '~/.EasyOCR/model' 폴더에 넣을 수 있습니다.
GPU가 없거나 GPU 메모리가 부족한 경우 gpu=False를 추가하여 CPU 전용 모드로 모델을 실행할 수 있습니다.
reader = easyocr.Reader(['ch_sim','en'], gpu=False)
$ easyocr -l ch_sim en -f chinese.jpg --detail=1 --gpu=True
인식 모델의 경우, 여기를 읽어보세요.
감지 모델(CRAFT)의 경우, 여기를 읽어보세요.
reader = easyocr.Reader(['en'], detection='DB', recognition = 'Transformer')
아이디어는 EasyOCR에 최신(state-of-the-art) 모델을 플러그인할 수 있게 하는 것입니다. 더 나은 감지/인식 모델을 만들려고 노력하는 수많은 천재들이 있지만, 우리는 여기서 천재가 되려고 하지 않습니다. 우리는 그들의 작업을 대중이 빠르게 접근할 수 있도록 만들고 싶을 뿐입니다... 무료로요. (음, 우리는 대부분의 천재들이 자신의 작업이 가능한 한 빠르고 크게 긍정적인 영향을 미치길 원한다고 믿습니다.) 파이프라인은 아래 다이어그램과 같아야 합니다. 회색 슬롯은 교체 가능한 연한 파란색 모듈을 위한 자리 표시자입니다.

이 프로젝트는 여러 논문과 오픈소스 저장소의 연구 및 코드를 기반으로 합니다.
모든 딥러닝 실행은 Pytorch를 기반으로 합니다. ❤️
감지 실행은 이 공식 저장소의 CRAFT 알고리즘과 해당 논문을 사용합니다. (@clovaai의 @YoungminBaek님 감사합니다.) 또한 그들의 사전 학습된 모델을 사용합니다. 학습 스크립트는 @gmuffiness가 제공했습니다.
인식 모델은 CRNN(논문)입니다. 이는 3가지 주요 구성 요소로 이루어져 있습니다: 특징 추출(현재 Resnet 및 VGG 사용), 시퀀스 라벨링(LSTM) 및 디코딩(CTC). 인식 실행을 위한 학습 파이프라인은 deep-text-recognition-benchmark 프레임워크의 수정 버전입니다. (@clovaai의 @ku21fan님 감사합니다.) 이 저장소는 더 많은 인정을 받을 만한 보석 같은 저장소입니다.
빔 서치(Beam search) 코드는 이 저장소와 그의 블로그를 기반으로 합니다. (@githubharald님 감사합니다.)
데이터 합성은 TextRecognitionDataGenerator를 기반으로 합니다. (@Belval님 감사합니다.)
그리고 distill.pub의 CTC에 관한 훌륭한 글은 여기에 있습니다.
AI를 모두가 사용할 수 있게 만들어 인류를 함께 발전시켜 봅시다!
기여할 수 있는 3가지 방법:
코더: 작은 버그/개선 사항에 대해서는 PR을 보내주세요. 더 큰 변경의 경우, 먼저 이슈를 열어 저희와 논의해 주세요. 'PR WELCOME' 태그가 붙은 가능한 버그/개선 이슈 목록이 있습니다.
사용자: EasyOCR이 귀하/귀하의 조직에 어떻게 도움이 되는지 알려주시면 향후 개발에 큰 힘이 됩니다. 또한 이슈 섹션에 실패 사례를 게시하여 향후 모델 개선에 도움을 주세요.
기술 리더/전문가: 이 라이브러리가 유용하다고 생각되면 널리 알려주세요! (EasyOCR에 관한 Yann Lecun의 게시물 참조)
새 언어를 요청하려면 다음 2개의 파일이 포함된 PR을 보내주셔야 합니다:
귀하의 언어에 고유한 요소(예: 1. 아랍어: 문자가 서로 연결될 때 형태가 바뀌고 오른쪽에서 왼쪽으로 씀 2. 태국어: 일부 문자는 줄 위에, 일부는 아래에 있어야 함)가 있다면, 최선을 다해 저희에게 알려주시고/유용한 링크를 제공해 주세요. 실제로 작동하는 시스템을 만들려면 세부 사항에 주의를 기울이는 것이 중요합니다.
마지막으로, 저희의 우선순위는 인기 있는 언어 또는 서로 많은 문자를 공유하는 언어 집합에 돌아갈 수밖에 없다는 점을 양해 부탁드립니다 (귀하의 언어가 그런 경우에도 알려주세요). 새 모델을 개발하는 데 최소 1주일이 걸리므로, 새 모델이 출시될 때까지 기다려야 할 수 있습니다.
개발 중인 언어 목록 보기
제한된 리소스로 인해 6개월 이상 된 이슈는 자동으로 닫힙니다. 중요한 이슈라면 다시 이슈를 열어 주세요.
엔터프라이즈 지원의 경우, Jaided AI는 구현, 학습/파인튜닝 및 배포에 이르는 맞춤형 OCR/AI 시스템을 위한 전체 서비스를 제공합니다. 여기를 클릭하여 문의하세요.