tensorflow ocr 예제


참고: tensorflow_model_server에는 이전 단계에서 내보낸 파일이 존재하고 그 안에 버전 번호가 있는 하위 디렉토리가 필요합니다. 따라서 내보낸 모델의 내용을 내보낸 모델/1로 수동으로 이동해야 합니다. 종단 간 OCR 모델을 주의사항으로 훈련하는 것이 좋습니다. 당신은 우리가 거리 이름을 전사하는 데 사용되는 주의 OCR을 시도 할 수 있습니다 https://github.com/tensorflow/models/tree/master/research/attention_ocr 지금 당신은 예를 들어, 실행 중인 서버에 예측 요청을 보낼 수 있습니다 : 오프라인 필기 텍스트 인식 ( HTR) 시스템은 스캔한 이미지에 포함된 텍스트를 디지털 텍스트로 전사하고, 예는 도 1에 도시되어 있다. IAM 데이터 집합의 워드 이미지에 대해 학습되는 NN(신경망)을 구축할 것입니다. 입력 계층(그리고 다른 모든 레이어)을 단어 이미지에 대해 작게 보관할 수 있으므로 NN 교육은 CPU에서 사용할 수 있습니다(물론 GPU가 더 좋을 것입니다). 이 구현은 TF를 사용하는 HTR에 필요한 최소 한도입니다. 위의 예제에서는 텍스트 인식을 하기 전에 텍스트 감지가 필요한 이유를 보여 줍니다. 텍스트 감지 알고리즘은 텍스트 영역 주위에 경계 상자를 출력한 다음 Tesseract와 같은 텍스트 인식 엔진에 공급하여 고품질 출력을 제공합니다. 우리는 미래의 게시물에서 이를 다룰 것입니다. 모델 교육 후 우리는 테스트 세트의 이미지에 적용하고 정말 높은 정확도를 얻을. 또한 각 RNN 단계의 확률 분포를 행렬로 시각화합니다. 다음은 예제입니다.

이 네트워크 학습을 용이하게 하기 위해 PYTHON 이미징 라이브러리(PIL)를 사용하여 데이터 집합이 생성됩니다. 숫자 문자로 구성된 임의의 문자열이 생성됩니다. PIL을 사용하면 각 임의 문자열에 대해 이미지가 생성됩니다. 파일 이름과 연결된 임의 문자열을 포함하는 CSV 파일도 생성됩니다. 생성된 데이터 집합의 몇 가지 예는 그림 3과 같습니다. 아래 예제는 tesseract 명령줄 도구를 사용하여 OCR을 수행하는 방법을 보여 주십습니다. 언어는 영어로 선택되고 OCR 엔진 모드는 1(즉, LSTM만)으로 설정됩니다. 실제로, CNN 출력 벡터의 수는 32, 64 이상에 도달할 수 있다. 선택은 특정 작업에 따라 달라집니다. 또한 생산에서 다층 양방향 LSTM을 사용하는 것이 좋습니다. 그러나 이 간단한 예제는 가장 중요한 개념만 설명합니다. 이제 준비된 작업 환경(텐서플로우 및 커라스)을 통해 docker 컨테이너를 빌드하고 실행할 수 있습니다.

그냥 “docker” 디렉토리로 이동 하 고 다음 명령을 실행 전통적인 OCR 기술은 일반적으로 다단계 프로세스. 예를 들어, 먼저 이미지는 개별 문자를 포함하는 더 작은 영역으로 나눌 수 있고, 두 번째는 개별 문자가 인식되고, 마지막으로 결과는 다시 함께 조각된다. 이 방법의 어려움은 원본 이미지의 좋은 분할을 얻는 것입니다. 이 블로그 게시물에서는 딥 러닝을 사용하여 간소화된 OCR 시스템을 제공합니다. 책 페이지의 텍스트 구조는 매우 잘 정의되어 있습니다. 즉 단어와 문장의 간격이 동일하며 청구서 영수증의 경우는 아니지만 글꼴 크기의 변형이 매우 적습니다. 약간 어려운 예는 균일하지 않은 텍스트 레이아웃과 여러 글꼴이 있는 Receipt입니다. 테서랙트가 스캔한 영수증에서 얼마나 잘 수행되는지 살펴보겠습니다.