πΈ ΠΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Python Π΄Π»Ρ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ° Π½Π° ΡΠΎΡΠΎ
Π§ΡΠΎΠ±Ρ ΡΠ°ΡΠΏΠΎΠ·Π½Π°ΡΡ ΡΠ΅ΠΊΡΡ Ρ ΡΠΎΡΠΎ Π² Python, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ pytesseract. ΠΠΎΡ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π°:
# Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ pytesseract, Π΅ΡΠ»ΠΈ Π΅Π³ΠΎ Ρ Π²Π°Ρ Π΅ΡΠ΅ Π½Π΅Ρ
!pip install pytesseract
# ΠΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ
import pytesseract
from PIL import Image
# Π£ΠΊΠ°ΠΆΠΈΡΠ΅ ΠΏΡΡΡ ΠΊ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅ΠΌΡ ΡΠ΅ΠΊΡΡ
image_path = 'ΠΏΡΡΡ_ΠΊ_ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ.jpg'
# ΠΡΠΊΡΡΠ²Π°Π΅ΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ PIL
image = Image.open(image_path)
# ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅ΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π² ΡΠ΅ΠΊΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ pytesseract
text = pytesseract.image_to_string(image, lang='rus')
# ΠΡΠ²ΠΎΠ΄ΠΈΠΌ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π½Π½ΡΠΉ ΡΠ΅ΠΊΡΡ
print(text)
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΡΠ½Π°ΡΠ°Π»Π° ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ pytesseract, Π΅ΡΠ»ΠΈ ΠΎΠ½Π° Π΅ΡΠ΅ Π½Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π°. ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ ΠΏΡΡΡ ΠΊ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ "image_path". ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΠΎΡΠΊΡΡΠ²Π°Π΅ΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ PIL ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅ΠΌ Π΅Π³ΠΎ Π² ΡΠ΅ΠΊΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ pytesseract, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΠ½ΠΊΡΠΈΡ "image_to_string". ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΌΡ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ ΡΠ΅ΠΊΡΡ.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π΄Π»Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ pytesseract ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½Π°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°, Π²ΠΊΠ»ΡΡΠ°Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ Tesseract OCR Π½Π° Π²Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅. Π£ΡΠΈΡΡΠ²Π°ΠΉΡΠ΅ ΡΡΠΎ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ.
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΠ°ΠΊ ΡΠ°ΡΠΏΠΎΠ·Π½Π°ΡΡ ΡΠ΅ΠΊΡΡ Ρ ΡΠΎΡΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Python
ΠΠ΄ΡΠ°Π²ΡΡΠ²ΡΠΉΡΠ΅! Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Python ΡΠ°ΡΠΏΠΎΠ·Π½Π°ΡΡ ΡΠ΅ΠΊΡΡ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ. ΠΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ OCR (Optical Character Recognition), ΠΈΠ»ΠΈ ΠΎΠΏΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ². ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ Python ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΌΡ ΡΠΌΠΎΠΆΠ΅ΠΌ Π»Π΅Π³ΠΊΠΎ ΡΠ°ΡΠΏΠΎΠ·Π½Π°ΡΡ ΡΠ΅ΠΊΡΡ Ρ ΡΠΎΡΠΎΠ³ΡΠ°ΡΠΈΠΉ ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ pytesseract
ΠΠ΅ΡΠ²ΡΠΌ ΡΠ°Π³ΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ pytesseract. ΠΠ½Π° ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΏΡΠΎΡΡΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΊ Tesseract-OCR - ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ open-source Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ Π΄Π»Ρ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ°. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ pip ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
pip install pytesseract
ΠΠΎΡΠ»Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΎΠΉ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ pytesseract, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Tesseract-OCR Π½Π° ΡΠ²ΠΎΡ ΡΠΈΡΡΠ΅ΠΌΡ. Tesseract-OCR ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ².
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Tesseract-OCR
Tesseract-OCR ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ·ΡΠΊΠΎΠ², Π²ΠΊΠ»ΡΡΠ°Ρ ΡΡΡΡΠΊΠΈΠΉ. ΠΠ»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Tesseract-OCR Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅: https://github.com/tesseract-ocr/tesseract/wiki
ΠΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ
ΠΠΎΡΠ»Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ pytesseract ΠΈ Tesseract-OCR, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π² Π½Π°Ρ ΠΊΠΎΠ΄:
import cv2
import pytesseract
ΠΠ°Π³ΡΡΠ·ΠΊΠ° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ°
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ Π³ΠΎΡΠΎΠ²Ρ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ Ρ ΠΎΡΠΈΠΌ ΡΠ°ΡΠΏΠΎΠ·Π½Π°ΡΡ ΡΠ΅ΠΊΡΡ. ΠΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ OpenCV Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ:
image = cv2.imread('image.jpg')
ΠΠΎΡΠ»Π΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΌΠ΅ΡΠΎΠ΄ pytesseract.image_to_string() Π΄Π»Ρ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ°:
text = pytesseract.image_to_string(image, lang='rus')
Π Π΅Π·ΡΠ»ΡΡΠ°ΡΡ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΡ
ΠΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ ΡΠ΅ΠΊΡΡ Π±ΡΠ΄Π΅Ρ Ρ ΡΠ°Π½ΠΈΡΡΡΡ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ text. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΡΠ²Π΅ΡΡΠΈ Π΅Π³ΠΎ Π½Π° ΡΠΊΡΠ°Π½:
print(text)
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΌΡ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π»ΠΈ ΡΠ΅ΠΊΡΡ Ρ ΡΠΎΡΠΎΠ³ΡΠ°ΡΠΈΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Python ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ pytesseract. ΠΡΠ° ΡΠ΅Ρ Π½ΠΈΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½Π° Π² ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΡΠ΅ΡΠ°Ρ , Π²ΠΊΠ»ΡΡΠ°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ², Π°Π½Π°Π»ΠΈΠ· ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ Π΄Π°Π½Π½ΡΡ .
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ, ΠΊΠ°ΠΊ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Python ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ pytesseract ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΡΠ°ΡΠΏΠΎΠ·Π½Π°ΡΡ ΡΠ΅ΠΊΡΡ Π½Π° ΡΠΎΡΠΎΠ³ΡΠ°ΡΠΈΡΡ ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΡ . ΠΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, Π·Π°Π³ΡΡΠ·ΠΈΠ»ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠ»ΠΈ ΠΌΠ΅ΡΠΎΠ΄ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΡ ΠΈ Π²ΡΠ²Π΅Π»ΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ. ΠΠ°Π΄Π΅ΡΡΡ, ΡΡΠΎΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» Π±ΡΠ» ΠΏΠΎΠ»Π΅Π·Π΅Π½ Π΄Π»Ρ Π²Π°Ρ!
Π£Π΄Π°ΡΠΈ Π² ΠΈΠ·ΡΡΠ΅Π½ΠΈΠΈ Python ΠΈ ΡΠ°Π·Π²ΠΈΡΠΈΠΈ Π² ΠΎΠ±Π»Π°ΡΡΠΈ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΡΡ Π½Π°ΡΠΊ!
πͺΠΠ΅ Π±ΠΎΠΉΡΠ΅ΡΡ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΠΈΠ·ΡΡΠ°ΡΡ Π½ΠΎΠ²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ! Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠ»ΡΡΠ΅Π²ΡΠΌ Π½Π°Π²ΡΠΊΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠ΅ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ ΠΈ ΠΏΡΠΎΠ±Π° Π½ΠΎΠ²ΡΡ ΠΈΠ΄Π΅ΠΉ.