Распознавание текста на изображениях — сравнение Tesseract и Baidu Cloud OCR

задняя часть Python Байду модульный тест

В нынешнюю эпоху искусственный интеллект уже является плохим словом, и OCR должны знать многие люди.

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

В этой статье в основном описаны две попытки использования OCR через Python.

Tesseract

Tesseract, механизм OCR (оптическое распознавание символов, оптическое распознавание символов) с открытым исходным кодом, разработанный HP Labs и поддерживаемый Google, с открытым исходным кодом, бесплатный и поддерживающий несколько языков и платформ.

адрес проекта:GitHub.com/t-gentle-act-oh…

Установите и используйте

Установка Tesseract относительно проста, и ее можно установить через brew на Mac.

brew install --with-training-tools tesseract

В Windows его можно установить через установочный пакет exe, а адрес загрузки можно найти на вики в проекте GitHub. После завершения установки не забудьте добавить каталог исполняемого файла Tesseract в PATH для облегчения последующих вызовов.

Кроме того, установка по умолчанию будет включать пакет обучения английскому языку.Если вам нужна поддержка упрощенного китайского или традиционного китайского языка, вам необходимо проверить это во время установки.

tesseract-lang

Или скачать с адреса проекта после установки:GitHub.com/t-gentle-act-oh…

Загруженный языковой пакет можно поместить в testdata в каталоге установки. В системах Windows вам также необходимо добавить каталог testdata в переменную среды.

TESSDATA_PREFIX=C:\Program Files (x86)\Tesseract-OCR\tessdata

Если все на месте, можно использовать команды Tesseract из командной строки.

# tesseract
Usage:
tesseract --help | --help-psm | --help-oem | --version
tesseract --list-langs [--tessdata-dir PATH]
tesseract --print-parameters [options...] [configfile...]
tesseract imagename|stdin outputbase|stdout [options...] [configfile...]

OCR options:
--tessdata-dir PATH Specify the location of tessdata path.
--user-words PATH Specify the location of user words file.
--user-patterns PATH Specify the location of user patterns file.
-l LANG[+LANG] Specify language(s) used for OCR.
-c VAR=VALUE Set value for config variables.
Multiple -c arguments are allowed.
--psm NUM Specify page segmentation mode.
--oem NUM Specify OCR Engine mode.
NOTE: These options must occur before any configfile.

Вы можете выполнять простые задачи распознавания текста изображения через командную строку.

tesseract test.png outfile -l chi_sim

Вызывается Python

После того, как Tesseract установлен, Python может легко вызвать его, вам нужно установить два пакета.

pip install pillow
pip install pytesseract

Простая функция преобразования изображения в текст реализована следующим образом.

from PIL import Image
import pytesseract

class Languages:
CHS = 'chi_sim'
CHT = 'chi_tra'
ENG = 'eng'

def img_to_str(image_path, lang=Languages.ENG):
return pytesseract.image_to_string(Image.open(image_path), lang)

print(img_to_str('image/test1.png', lang=Languages.CHS))
print(img_to_str('image/test2.png', lang=Languages.CHS))

Тестовое изображение-test1.png:

test1

Результат распознавания:

process image file "image/test1.png" in 1.4782530478747697 seconds

8 所 调 人 , 在 - 方 。
深 从 久 , 定 中 央
。 所 澈 伊 人 , 圭 水 淳
。 淇 渡 从 之 , 定 圭 北 中 坂 。
。 所 澈 伊人 , 圭 水 浩
从 丿 , 定 圭 水 中 沥 。

Тестовое изображение -test2.png

test1

Результат распознавания:

process image file "image/test2.png" in 1.2131140296607923 seconds

清 明 时 节 雨 纷 纷 , 路 上 行 人 欲 断 魂
信 问 酒 家 何 处 有 , 牧 奕 通 指 枪 花 村 。

резюме

Tesseract хорошо распознает четкие стандартные китайские шрифты, но очень плохо, когда немного сложновато, да и времени занимает много.Лично я считаю единственным плюсом то, что он бесплатный. Если вы не против потратить больше времени, вы можете рассмотреть возможность использования функции обучения, которую она предоставляет, для настройки вашей языковой библиотеки, чтобы скорость распознавания могла улучшиться в определенных сценариях.

Облачное распознавание символов Baidu

Это случайное открытие. Baidu Cloud предоставляет определенное количество бесплатных API OCR, в настоящее время 500 раз в день, чего едва хватает для исследований или небольших приложений. Эта статья предназначена в основном для проверки его эффекта.

Адрес документа:cloud.baidu.com/doc/OCR/OCR…

Установите и используйте

Для начала вам необходимо зарегистрироватьУчетная запись Baidu Cloud BCE, а затем создайте новое приложение для распознавания текста из панели управления.baidu-ocr

Затем вы можете получить AppID, ключ API и секретный ключ, необходимые для вызова API. После этого просто следуйте официальной документации шаг за шагом.

pip install baidu-aip

упаковать и позвонить

Справочная документация:cloud.baidu.com/doc/OCR/OCR…

from aip import AipOcr

config = {
'appId': 'your-id',
'apiKey': 'your-key',
'secretKey': 'your-secret-key'
}

client = AipOcr(**config)

def get_file_content(file):
with open(file, 'rb') as fp:
return fp.read()

def img_to_str(image_path):
image = get_file_content(image_path)
result = client.basicGeneral(image)
if 'words_result' in result:
return '\n'.join([w['words'] for w in result['words_result']])

Тестовое изображение-test1.png:

test1

Результат распознавания:

process image file "image/test1.png" in 0.6331169034812572 seconds

蒹葭
先秦:佚名
蒹葭苍苍,白露为霜。所谓伊人,在水一方。
溯洄从之,道阻且长。溯游从之,宛在水中央。
蒹葭萋萋,白露未晞。所谓伊人,在水之湄。
溯洄从之,道阳且跻。溯游从之,宛在水中坻。
蒹葭采采,白露未已。所谓伊人,在水之涘。
溯洄从之,道阻且右。溯游从之,宛在水中沚。

Тестовое изображение -test2.png

test1

Результат распознавания:

process image file "image/test2.png" in 0.6621812639450142 seconds

清明时节雨纷纷,路上行人欲断魂。
借问酒家何处有,牧童遥指杏花村。

резюме

Результаты тестов очевидны, могу лишь сказать, что OCR Baidu Cloud действительно мощный, ни одной опечатки. С точки зрения китайского, Baidu знает немного лучше, чем Google. Кроме того, Baidu OCR предоставляет больше параметров, позволяющих более гибко обрабатывать изображения, таких как настраиваемый поворот, достоверность возврата, идентификация определенных типов документов и т. д.

Больше оптического распознавания символов

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

Вы заметили, что у всех крупных компаний есть такая услуга? В будущем мы можем просто покупать, покупать, покупать, и нет особого смысла тратить много сил на изобретение велосипеда.

Toby Qin wechatДобро пожаловать в WeChat, чтобы стать любителем дынь
  • Автор этой статьи: Toby Qin
  • Ссылка на эту статью: бета-версия cat.online/posts/2018-…
  • Уведомление об авторских правах:Все статьи в этом блоге, если не указано иное, используютCC BY-NC-SA 3.0соглашение. Пожалуйста, укажите источник!