기존의 OCR 기술은 일반적으로 다단계 프로세스입니다. 예를 들어, 먼저 이미지는 개별 문자를 포함하는 더 작은 영역으로 나눌 수 있고, 두 번째는 개별 문자가 인식되고, 마지막으로 결과는 다시 함께 조각된다. 이 방법의 어려움은 원본 이미지의 좋은 분할을 얻는 것입니다. 이 블로그 게시물에서는 딥 러닝을 사용하여 간소화된 OCR 시스템을 제공합니다. 예를 들어, 상위 수준의 Keras API는 딥 러닝 모델을 만들고 학습하는 빌딩 블록을 제공합니다. 이러한 초보자 친화적인 노트북 예제로 시작하여 TensorFlow Keras 가이드를 읽어보십시오. 이 기사가 마음에 들어서 고 코드 (C ++ 및 파이썬) 및 이 게시물에 사용 된 예제 이미지를 다운로드 하려는 경우, 우리의 뉴스 레터를 구독 하시기 바랍니다. 또한 무료 컴퓨터 비전 리소스 가이드를 받게 됩니다. 뉴스레터에서는 C++/Python으로 작성된 OpenCV 자습서 및 예제와 컴퓨터 비전 및 기계 학습 알고리즘 및 뉴스를 공유합니다. 가능한 문자의 수는 어디에 있습니까? 이 예제에서는 대문자 및 소문자, 숫자 및 빈 문자에 대해 63개의 가능한 문자가 있습니다. 컨볼루션 레이어의 괄호값은 각각 위에서 아래로 필터 크기와 보폭 값입니다. 모양 변경 레이어의 값은 모양이 변경된 치수입니다.

참고: tensorflow_model_server에는 이전 단계에서 내보낸 파일이 존재하고 그 안에 버전 번호가 있는 하위 디렉토리가 필요합니다. 따라서 내보낸 모델의 내용을 내보낸 모델/1로 수동으로 이동해야 합니다. 아래 예제는 tesseract 명령줄 도구를 사용하여 OCR을 수행하는 방법을 보여 주십습니다. 언어는 영어로 선택되고 OCR 엔진 모드는 1(즉, LSTM만)으로 설정됩니다. 오프라인 필기 텍스트 인식(HTR) 시스템은 스캔한 이미지에 포함된 텍스트를 디지털 텍스트로 전사하며, 예는 도 1에 도시되어 있다. IAM 데이터 집합의 워드 이미지에 대해 학습되는 NN(신경망)을 구축할 것입니다. 입력 계층(그리고 다른 모든 레이어)을 단어 이미지에 대해 작게 보관할 수 있으므로 NN 교육은 CPU에서 사용할 수 있습니다(물론 GPU가 더 좋을 것입니다). 이 구현은 TF를 사용하는 HTR에 필요한 최소 한도입니다. 예를 들어 고품질 스캐너로 책을 스캔하면 결과가 좋을 것입니다.

그러나 백그라운드에서 복잡한 기요슈 패턴이있는 여권을 가져 간 경우 텍스트 인식도 작동하지 않을 수 있습니다. 이러한 경우 이러한 텍스트를 읽을 수 있도록 하기 위해 몇 가지 트릭을 사용해야 합니다. 우리는 우리의 다음 게시물에서 그 사전 트릭을 논의 할 것이다. 텐서플로우 설치에 대한 자세한 내용은 https://www.tensorflow.org/install/ 확인할 수 있습니다. 실제로, CNN 출력 벡터의 수는 32, 64 이상에 도달할 수 있다. 선택은 특정 작업에 따라 달라집니다. 또한 생산에서 다층 양방향 LSTM을 사용하는 것이 좋습니다. 그러나 이 간단한 예제는 가장 중요한 개념만 설명합니다.

모델 교육 후 우리는 테스트 세트의 이미지에 적용하고 정말 높은 정확도를 얻을. 또한 각 RNN 단계의 확률 분포를 행렬로 시각화합니다. 다음은 예제입니다. Tesseract는 많은 이미지 형식을 지원하기 시작하고 점차적으로 많은 수의 스크립트 (언어)를 추가했을 때 버전 3.x로 성숙도를 얻었습니다. Tesseract 3.x는 기존의 컴퓨터 비전 알고리즘을 기반으로 합니다.