Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/jaidedai/easyocr
Утилиты общего назначенияСкриптинг и автоматизацияМашинное Обучение
GitHubjaidedai/easyocr

EasyOCR

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

РепозиторийСайт
29.9k3.6k8 месяцев назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

EasyOCR

PyPI Status license Tweet Twitter

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

Попробуйте демо на нашем сайте

Интегрировано в Huggingface Spaces 🤗 с использованием Gradio. Попробуйте веб-демо: Hugging Face Spaces

Что нового

  • 24 сентября 2024 — Версия 1.7.2

    • Исправлены некоторые проблемы совместимости
  • Читать все примечания к выпускам

Что дальше

  • Поддержка рукописного текста

Примеры

example

example2

example3

Установка

Установка с помощью pip

Для последнего стабильного выпуска:

root@kitploit:~
pip install easyocr

Для последней разрабатываемой версии:

root@kitploit:~
pip install git+https://github.com/JaidedAI/EasyOCR.git

Примечание 1: Для Windows сначала установите torch и torchvision, следуя официальным инструкциям здесь https://pytorch.org. На сайте pytorch обязательно выберите правильную версию CUDA, которая у вас установлена. Если вы планируете работать только в режиме CPU, выберите CUDA = None.

Примечание 2: Мы также предоставляем Dockerfile здесь.

Использование

root@kitploit:~
import easyocr
reader = easyocr.Reader(['ch_sim','en']) # this needs to run only once to load the model into memory
result = reader.readtext('chinese.jpg')

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

root@kitploit:~
[([[189, 75], [469, 75], [469, 165], [189, 165]], '愚园路', 0.3754989504814148),
 ([[86, 80], [134, 80], [134, 128], [86, 128]], '西', 0.40452659130096436),
 ([[517, 81], [565, 81], [565, 123], [517, 123]], '东', 0.9989598989486694),
 ([[78, 126], [136, 126], [136, 156], [78, 156]], '315', 0.8125889301300049),
 ([[514, 126], [574, 126], [574, 156], [514, 156]], '309', 0.4971577227115631),
 ([[226, 170], [414, 170], [414, 220], [226, 220]], 'Yuyuan Rd.', 0.8261902332305908),
 ([[79, 173], [125, 173], [125, 213], [79, 213]], 'W', 0.9848111271858215),
 ([[529, 173], [569, 173], [569, 213], [529, 213]], 'E', 0.8405593633651733)]

Примечание 1: ['ch_sim','en'] — это список языков, которые вы хотите распознавать. Можно передать несколько языков одновременно, но не все языки могут использоваться вместе. Английский совместим с любым языком, а языки с общими символами обычно совместимы друг с другом.

Примечание 2: Вместо пути к файлу chinese.jpg можно также передать объект изображения OpenCV (массив numpy) или файл изображения в виде байтов. URL на исходное изображение также допустим.

Примечание 3: Строка reader = easyocr.Reader(['ch_sim','en']) предназначена для загрузки модели в память. Это занимает некоторое время, но выполнить её нужно только один раз.

Вы также можете установить detail=0 для более простого вывода.

root@kitploit:~
reader.readtext('chinese.jpg', detail = 0)

Результат:

root@kitploit:~
['愚园路', '西', '东', '315', '309', 'Yuyuan Rd.', 'W', 'E']

Веса модели для выбранного языка будут загружены автоматически, или вы можете скачать их вручную из модельного хаба и поместить в папку '~/.EasyOCR/model'

Если у вас нет GPU или объём памяти GPU мал, вы можете запустить модель только в режиме CPU, добавив gpu=False.

root@kitploit:~
reader = easyocr.Reader(['ch_sim','en'], gpu=False)

Для получения дополнительной информации читайте руководство и документацию по API.

Запуск из командной строки

root@kitploit:~
$ easyocr -l ch_sim en -f chinese.jpg --detail=1 --gpu=True

Обучение/использование собственной модели

Для модели распознавания читайте здесь.

Для модели обнаружения (CRAFT) читайте здесь.

План разработки

  • Поддержка рукописного текста
  • Реструктуризация кода для поддержки сменных алгоритмов обнаружения и распознавания API должен быть таким же простым, как
root@kitploit:~
reader = easyocr.Reader(['en'], detection='DB', recognition = 'Transformer')

Идея состоит в том, чтобы можно было подключать любую современную модель к EasyOCR. Есть много гениев, пытающихся создать лучшие модели обнаружения/распознавания, но мы не пытаемся быть гениями здесь. Мы просто хотим сделать их работы быстро доступными для публики ... бесплатно. (что ж, мы верим, что большинство гениев хотят, чтобы их работа оказала положительное влияние как можно быстрее и масштабнее) Конвейер должен выглядеть примерно как диаграмма ниже. Серые слоты — это заполнители для сменных голубых модулей.

plan

Благодарности и источники

Этот проект основан на исследованиях и коде из нескольких статей и открытых репозиториев.

Вся работа глубокого обучения выполняется на базе Pytorch. ❤️

Для обнаружения используется алгоритм CRAFT из этого официального репозитория и их статьи (Спасибо @YoungminBaek из @clovaai). Мы также используем их предобученную модель. Обучающий скрипт предоставлен @gmuffiness.

Модель распознавания — это CRNN (статья). Она состоит из 3 основных компонентов: извлечение признаков (сейчас мы используем Resnet) и VGG, разметка последовательностей (LSTM) и декодирование (CTC). Конвейер обучения для распознавания — это модифицированная версия фреймворка deep-text-recognition-benchmark. (Спасибо @ku21fan из @clovaai) Этот репозиторий — настоящий самородок, заслуживающий большего признания.

Код поиска луча (beam search) основан на этом репозитории и его блоге. (Спасибо @githubharald)

Синтез данных основан на TextRecognitionDataGenerator. (Спасибо @Belval)

И хорошая статья о CTC от distill.pub здесь.

Хотите внести вклад?

Давайте вместе продвигать человечество вперёд, делая ИИ доступным каждому!

3 способа внести вклад:

Программист: Пожалуйста, отправляйте PR для небольших ошибок/улучшений. Для более крупных сначала обсудите с нами, открыв issue. Есть список возможных ошибок/улучшений, помеченных 'PR WELCOME'.

Пользователь: Расскажите нам, как EasyOCR приносит пользу вам/вашей организации, чтобы стимулировать дальнейшее развитие. Также публикуйте примеры ошибок в разделе Issue, чтобы помочь улучшить будущие модели.

Технический лидер/Гуру: Если вы нашли эту библиотеку полезной, пожалуйста, распространите информацию! (См. пост Янна ЛеКуна о EasyOCR)

Рекомендации по запросу нового языка

Чтобы запросить новый язык, нам нужно, чтобы вы отправили PR со следующими 2 файлами:

  1. В папке easyocr/character нам нужен файл 'yourlanguagecode_char.txt', содержащий список всех символов. Пожалуйста, посмотрите примеры формата в других файлах этой папки.
  2. В папке easyocr/dict нам нужен файл 'yourlanguagecode.txt', содержащий список слов на вашем языке. В среднем у нас около 30000 слов на язык, а для более популярных — более 50000 слов. Чем больше, тем лучше в этом файле.

Если в вашем языке есть уникальные особенности (например, 1. арабский: символы меняют форму при соединении друг с другом + написание справа налево 2. тайский: некоторые символы должны быть над линией, а некоторые — под ней), пожалуйста, просветите нас в меру своих возможностей и/или дайте полезные ссылки. Важно уделить внимание деталям, чтобы создать систему, которая действительно работает.

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

См. Список языков в разработке

Проблемы на GitHub

Из-за ограниченных ресурсов проблема, возраст которой превышает 6 месяцев, будет автоматически закрыта. Пожалуйста, откройте проблему заново, если она критична.

Деловые запросы

Для корпоративной поддержки Jaided AI предлагает полный спектр услуг для заказных OCR/AI-систем: от внедрения, обучения/дообучения до развертывания. Нажмите здесь, чтобы связаться с нами.

Скачать инструмент