Python을 사용하여 사진 속 텍스트를 식별하는 방법

풀어 주다: 2020-06-15 16:42:35
앞으로
4728명이 탐색했습니다.

Python을 사용하여 사진 속 텍스트를 식별하는 방법

Tesseract

텍스트 인식은 ORC의 일부입니다. ORC는 일반적으로 텍스트 인식으로 알려진 광학 문자 인식을 의미합니다. Tesseract는 텍스트 인식을 위한 도구입니다. Python과 함께 사용하면 텍스트 인식을 빠르게 구현할 수 있습니다. 하지만 그 전에 우리는 지루한 작업을 완료해야 합니다.

(1) Tesseract 설치 및 구성

https://digi.bib.uni-mannheim.de/tesseract/

Python을 사용하여 사진 속 텍스트를 식별하는 방법

에서 Tesseract를 다운로드하세요. 다양한 버전 중에서 선택할 수 있습니다. 당신의 필요에. 그 중 w32는 32비트 시스템을 의미하고, w64는 64비트 시스템을 의미하므로 해당 버전을 선택하시면 다운로드 속도가 느릴 수 있습니다.

설치할 때 설치 위치를 알아야 하며 설치 디렉터리를 시스템 경로 변수에 구성해야 합니다. 경로는 D:CodeFieldTesseract-OCR입니다.

Python을 사용하여 사진 속 텍스트를 식별하는 방법

내 컴퓨터/이 컴퓨터->속성->고급 시스템 설정->환경 변수->경로->편집->새로 만들기를 마우스 오른쪽 버튼으로 클릭한 다음 경로를 복사합니다. 시스템 변수를 추가한 후에도 계속해서 확인을 클릭해야 구성이 완료됩니다.

(2) 언어 팩 다운로드

Tesseract는 기본적으로 중국어를 지원하지 않습니다. 중국어나 다른 언어를 인식하려면 해당 언어 팩을 다운로드해야 합니다. 다운로드 주소는 다음과 같습니다. -ocr.github.io/tessdoc /Data-Files, 웹 사이트에 들어간 후 아래로 스크롤합니다.

Python을 사용하여 사진 속 텍스트를 식별하는 방법

중국어 간체와 중국어 번체의 두 가지 중국어 언어 팩이 있습니다. 각각 다운로드해야 할 것을 선택합니다. 다운로드가 완료되면 Tesseract 경로 아래의 tessdata 디렉터리에 넣어야 합니다. 경로는 D:CodeFieldTesseract-OCRtessdata입니다.

(3) 기타 모듈 다운로드

위 단계 외에도 두 개의 모듈을 다운로드해야 합니다.

pip install pytesseract
pip install pillow
로그인 후 복사

첫 번째는 텍스트 인식용이고 두 번째는 이미지 읽기용입니다. 다음으로 텍스트 인식을 수행할 수 있습니다.

텍스트 인식

(1) 단일 사진 인식

다음 작업은 훨씬 간단합니다.

Python을 사용하여 사진 속 텍스트를 식별하는 방법

다음은 텍스트 인식 코드입니다.

import pytesseract
from PIL import Image
# 读取图片
im = Image.open('sentence.jpg')
# 识别文字
string = pytesseract.image_to_string(im)
print(string)
로그인 후 복사

인식입니다. 결과는 다음과 같습니다.

Do not go gentle into that good night!
로그인 후 복사

기본적으로 영어를 지원하기 때문에 직접 인식할 수 있지만, 중국어나 다른 언어를 인식하려면 약간 수정이 필요합니다.

import pytesseract
from PIL import Image
# 读取图片
im = Image.open('sentence.png')
# 识别文字,并指定语言
string = pytesseract.image_to_string(im,)
print(string)
로그인 후 복사

인식 시 lang='을 설정합니다. chi_sim', 즉 언어를 중국어 간체로 설정하면 이 설정은 tessdata 디렉터리에 중국어 간체 패키지가 있는 경우에만 적용됩니다. 인식에 사용한 사진은 다음과 같습니다.

Python을 사용하여 사진 속 텍스트를 식별하는 방법

인식 결과는 다음과 같습니다.

그 좋은 밤에 순순히 걷지 마세요

사진의 내용이 정확하게 인식되었습니다. 우리가 알아야 할 한 가지는 언어를 중국어 간체 또는 다른 언어로 설정한 후에도 Tesseract가 여전히 영어 문자를 인식할 수 있다는 것입니다.

(2) 일괄 이미지 인식

이제 단일 이미지 인식을 나열했으므로 일괄 이미지 인식 기능이 있어야 합니다. 이를 위해서는 txt 파일을 준비해야 합니다. 예를 들어 다음과 같은 형식의 text.txt 파일이 있습니다. 내용은 다음과 같습니다.

sentencePython을 사용하여 사진 속 텍스트를 식별하는 방법
sentencePython을 사용하여 사진 속 텍스트를 식별하는 방법
로그인 후 복사

코드를 다음과 같이 수정합니다.

import pytesseract
# 识别文字
string = pytesseract.image_to_string('text.txt',)
print(string)
로그인 후 복사

다만, txt 파일을 직접 작성하는 것은 약간 번거로우므로 다음과 같이 수정하면 됩니다.

import os
import pytesseract
# 文字图片的路径
path = 'text_img/'
# 获取图片路径列表
imgs = [path + i for i in os.listdir(path)]
# 打开文件
f = open('text.txt', 'w+', encoding='utf-8')
# 将各个图片的路径写入text.txt文件当中
for img in imgs:
    f.write(img + '\n')
# 关闭文件
f.close()
# 文字识别
string = pytesseract.image_to_string('text.txt',)
print(string)
로그인 후 복사

이렇게 하면 필요한 것은 다음과 같습니다. 텍스트와 이미지의 루트 디렉터리를 전달하기 위해 일괄적으로 식별할 수 있습니다. 테스트 과정에서 Tesseract가 손글씨, 일반 문자 등 우아한 글꼴을 정확하게 인식하지 못하는 것으로 나타났으며, 일부 복잡한 문자에 대한 인식도 개선이 필요한 것으로 나타났습니다.

그러나 송나라나 블록체와 같이 획이 엄격한 글꼴의 인식 정확도는 매우 높습니다. 또한, 이미지의 기울기가 특정 각도보다 크면 인식 결과가 매우 달라집니다.

더 많은 관련 지식을 알고 싶다면 python 동영상 튜토리얼 칼럼

을 주목해주세요.

위 내용은 Python을 사용하여 사진 속 텍스트를 식별하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:csdn.net
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿