Раскрытие возможностей оптического распознавания символов: преобразование изображений в текст стало проще

В современный век цифровых технологий мы часто сталкиваемся с ситуациями, когда нам необходимо извлечь текст из изображений. Будь то извлечение текста из отсканированных документов, захват текста из изображений в социальных сетях или преобразование рукописных заметок в редактируемый текст, возможность конвертировать изображения в текст невероятно полезна. В этой статье блога мы рассмотрим различные методы, подкрепленные примерами кода, которые позволят вам использовать возможности оптического распознавания символов (OCR) для легкого выполнения этой задачи.

Метод 1: Pytesseract
Одной популярной библиотекой для оптического распознавания символов является Pytesseract. Это оболочка Python для механизма OCR Google Tesseract, который широко известен своей точностью. Вот пример использования Pytesseract:

import pytesseract
from PIL import Image
def image_to_text(image_path):
    image = Image.open(image_path)
    text = pytesseract.image_to_string(image)
    return text
# Usage
image_path = 'path_to_image.jpg'
result = image_to_text(image_path)
print(result)

Метод 2: API компьютерного зрения Microsoft Azure
Еще одним мощным инструментом для оптического распознавания символов является API компьютерного зрения Microsoft Azure. Вы можете использовать этот облачный сервис для извлечения текста из изображений. Вот пример использования пакета SDK Azure Cognitive Services Python:

from azure.cognitiveservices.vision.computervision import ComputerVisionClient
from azure.cognitiveservices.vision.computervision.models import TextRecognitionMode
from msrest.authentication import CognitiveServicesCredentials
def image_to_text(image_path, subscription_key, endpoint):
    credentials = CognitiveServicesCredentials(subscription_key)
    client = ComputerVisionClient(endpoint, credentials)

    with open(image_path, "rb") as image_file:
        result = client.read_in_stream(image_file, raw=True)

    text = ""
    if result.status_code == 200:
        operation_id = result.headers["Operation-Location"].split("/")[-1]
        result = client.get_read_result(operation_id)
        if result.status == "succeeded":
            for line in result.analyze_result.read_results[0].lines:
                text += line.text + " "
    return text
# Usage
image_path = 'path_to_image.jpg'
subscription_key = 'your_subscription_key'
endpoint = 'your_endpoint'
result = image_to_text(image_path, subscription_key, endpoint)
print(result)

Метод 3: OpenCV и Tesseract
OpenCV — это популярная библиотека компьютерного зрения, которую можно комбинировать с Tesseract для улучшения предварительной обработки изображений. Вот пример:

import cv2
import pytesseract
def image_to_text(image_path):
    image = cv2.imread(image_path)
    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    gray = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY | cv2.THRESH_OTSU)[1]

    text = pytesseract.image_to_string(gray)
    return text
# Usage
image_path = 'path_to_image.jpg'
result = image_to_text(image_path)
print(result)

Преобразование изображений в текст с помощью оптического распознавания символов становится все более доступным и точным благодаря достижениям в области компьютерного зрения и машинного обучения. В этой статье мы рассмотрели три различных метода: Pytesseract, API компьютерного зрения Microsoft Azure и комбинацию OpenCV и Tesseract. Каждый метод имеет свои сильные и слабые стороны, поэтому важно выбрать тот, который лучше всего соответствует вашим требованиям. Благодаря возможности извлекать текст из изображений вы открываете целый мир возможностей для автоматизации ввода данных, оцифровки документов и многого другого!