Python에서 광학 문자 인식을 구현하는 방법



이 기사는 Python에서 광학 문자 인식을 구현하는 방법에 대한 상세하고 포괄적 인 지식을 제공합니다.

광학 문자 인식은 매우 중요하며 프로그래밍 언어. 이러한 개념을 실제 시나리오에 적용하는 방법은 많습니다. 이 기사에서는 Python에서 광학 문자 인식을 구현하는 방법에 대해 설명합니다.

광학 문자 인식의 응용

티켓 카운터는이를 광범위하게 사용하여 티켓의 주요 정보를 스캔하고 감지하여 경로와 통근자 세부 정보를 추적합니다. 종이 텍스트를 디지털 형식으로 변환하여 카메라가 고해상도 사진을 캡처 한 다음 OCR을 사용하여 단어 또는 PDF 형식으로 가져옵니다.





charachters

Python과 함께 OCR을 도입 한 것은 'Tesseract'및 'Orcad'와 같은 다용도 라이브러리가 추가 된 덕분입니다. 이러한 라이브러리는 많은 코더와 개발자가 코드 디자인을 단순화하는 데 도움이되었습니다.프로젝트의 다른 측면에 더 많은 시간을 할애 할 수 있습니다. 이점이 엄청 나기 때문에 그것이 무엇이며 어떻게 수행되는지 살펴 보겠습니다.



Python에서 광학 문자 인식 빌드

먼저 'pytesseract'를 사용하여 클래스를 만들어야합니다. 이 클래스를 사용하면 이미지를 가져 와서 스캔 할 수 있습니다. 이 과정에서 'ocr.py'확장자를 가진 파일을 출력합니다. 아래 코드를 보겠습니다. 'process_image'기능 블록은 우리가 얻은 텍스트를 선명하게하는 데 사용됩니다.

다음 라우트 핸들러와 뷰 기능이 애플리케이션 (app.py)에 추가되었습니다.

라우터 핸들러 코드



// ROUTE HANDLER @ app.route ( '/ v {} / ocr'.format (_VERSION), methods = ['POST ']) def ocr () : try : url = request.json ['image_url '] if' jpg 'in url : output = process_image (url) return jsonify ({'output ': output}) else : return jsonify ({'error ':'only .jpg files, please '}) except : return jsonify ({'error ':'보내려고 하셨나요 : { 'image_url': 'some_jpeg_url'} '})

OCR 엔진 코드

// OCR ENGINE import pytesseract import requests from PIL import Image from PIL import ImageFilter from StringIO import StringIO def process_image (url) : image = _get_image (url) image.filter (ImageFilter.SHARPEN) return pytesseract.image_to_string (image) def _get_image ( url) : return Image.open (StringIO (requests.get (url) .content)) //

가져 오기를 업데이트하고 API 버전 번호를 추가하십시오.

import os import logging from logging import Formatter, FileHandler from flask import Flask, request, jsonify from ocr import process_image _VERSION = 1 # API version

OCR Engine의 'process_image ()'함수의 JSON 응답을 추가합니다. JSON은 API로 들어오고 나가는 정보를 수집하는 데 사용됩니다. PIL의“Image”라이브러리를 사용하여 개체 파일에 응답을 전달하여 설치합니다.

이 코드는 .jpg 이미지에서만 최상의 성능을 발휘합니다. 여러 이미지 형식을 특징으로하는 복잡한 라이브러리를 사용하면 모든 이미지를 효과적으로 처리 할 수 ​​있습니다. 또한이 코드를 직접 시험 해보고 싶은 경우에는 먼저 'Pillow'라이브러리에서 확보 한 PIL을 설치하십시오.

& bull 'app.py'앱을 실행하여 시작합니다.

// $ cd ../home/flask_server/ $ python app.py //

& bull 그런 다음 다른 터미널에서 다음을 실행합니다.

// $ curl -X POST http : // localhost : 5000 / v1 / ocr -d '{'image_url ':'some_url '}'-H 'Content-Type : application / json'

예를 들면 :

// $ curl -X POST http : // localhost : 5000 / v1 / ocr -d '{'C : UsersakashDownloadsPic1 ':'https://edureka.com/images/blog_images/ocr/ocr.jpg '}'- H 'Content-Type : application / json'{ '출력': 'ABCDEnFGH I JnKLMNOnPQRST'} //

OCR 엔진의 장단점

파이썬에서 OCR을 사용하는 많은 응용 프로그램 중에서 인기있는 것은 필기 인식입니다. 사람들은 이것을 단순히 원본 스크립트를 복사하는 것이 아니라 수많은 사본으로 채울 수있는 서면 텍스트를 다시 만드는 것을 적용합니다. 이것은 균일 성과 가독성을 가져 오기위한 것입니다.

OCR은 PDF를 텍스트로 변환하고 변수로 저장할 때도 유용합니다. 이것은 나중에 추가 작업을 위해 얼마든지 사전 처리 될 수 있습니다. OCR의 개념은 Python 세계에서 유익한 주제 인 것처럼 보이지만 확실히 단점의 일부를 공유합니다.

OCR이 항상 100 % 정확도를 보장 할 수는 없습니다. OCR 엔진이 불량 이미지를 학습하고 인식 할 수 있도록하는 인공 지능 개념의 도움으로 많은 시간의 교육을 적용해야합니다. 필기 이미지는 인식 할 수 있지만 필기 스타일, 페이지 색상, 이미지 대비 및 이미지 해상도와 같은 여러 요소에 따라 달라집니다.

이것으로 파이썬의 광학 문자 인식 기사를 마칩니다. OCR이 정확히 어떻게 작동하는지 이해하시기 바랍니다.

자바에서 오토 박싱이란?

다양한 애플리케이션과 함께 Python에 대한 심층적 인 지식을 얻으려면 다음을 수행 할 수 있습니다. 연중 무휴 지원 및 평생 액세스가 가능한 라이브 온라인 교육.

질문이 있으십니까? 'Python의 광학 문자 인식'의 주석 섹션에서 언급하면 ​​다시 연락 드리겠습니다.