DddDOcr — это совместная работа автора и kerlomz. Он генерирует большие пакеты случайных данных и проводит глубокое обучение сети. Он не предназначен для какого-либо производителя кода проверки. Эффект от использования этой библиотеки полностью зависит от метафизики. идентифицируемый.
DddDOcr, концепция минимальной зависимости, минимизирует пользовательскую настройку и затраты на использование, надеясь обеспечить комфорт каждому тестировщику.
Адрес проекта: Нажмите здесь, чтобы отправить
Простая в использовании универсальная библиотека Python для распознавания капчи.
Изучите документацию по этому проекту »
· Сообщать об ошибках · Предлагать новые функции
Спонсорские партнеры
Руководство по началу работы
Экологическая поддержка
Этапы установки
Описание каталога файлов
Базовая поддержка проекта
Используйте документацию
Базовая способность распознавания OCR
Возможность обнаружения целей
Обнаружение слайдера
Выходные данные вероятности OCR
Импорт пользовательской модели обучения OCR
контроль версий
Связанные рекомендуемые статьи или проекты
автор
Пожертвовать
Звездная история
Спонсорские партнеры | Причины рекомендации | |
---|---|---|
ДаCaptcha | Код подтверждения Google reCaptcha/код подтверждения hCaptcha/код подтверждения funCaptcha. Идентификационный интерфейс коммерческого уровня. Нажмите меня прямо на VIP4. | |
супер орел | Ведущая в мире компания по интеллектуальной классификации и распознаванию изображений, безопасная, точная, эффективная, стабильная и открытая, с сильной технической командой и командой проверки, которая поддерживает большой параллелизм. 7*24-часовое управление ходом выполнения работ | |
Маления | Платформа прокси-IP-шлюза Malenia корпоративного уровня/программное обеспечение для распределения IP-прокси | |
Нимбус VPS | Скидка 50% на первый месяц регистрации | Чжэцзянский узел, низкая цена и большая пропускная способность, 100M, 30 юаней в месяц |
система | Процессор | графический процессор | Максимальная поддерживаемая версия py | Примечание |
---|---|---|---|---|
Windows 64 бит | √ | √ | 3.12 | В некоторых версиях Windows необходимо установить библиотеку времени выполнения vc. |
Windows 32-битная | × | × | - | |
Linux64/ARM64 | √ | √ | 3.12 | |
Линукс 32 | × | × | - | |
Макос X64 | √ | √ | 3.12 | M1/M2/M3...номер чипа №67 |
я установить из pypi.
pip install dddddocr
ii. Установить из исходного кода.
git-клон https://github.com/sml2h3/dddddocr.gitcd ddddocr настройка Python.py
Пожалуйста, не импортируйте ddddocr непосредственно в корневой каталог проекта dddddocr . Убедитесь, что имя каталога вашего проекта разработки не dddddocr. Это простой здравый смысл.
например:
ddddocr ├── MANIFEST.in ├── LICENSE ├── README.md ├── /ddddocr/ │ │── __init__.py 主代码库文件 │ │── common.onnx 新ocr模型 │ │── common_det.onnx 目标检测模型 │ │── common_old.onnx 老ocr模型 │ │── logo.png │ │── README.md │ │── requirements.txt ├── logo.png └── setup.py
Этот проект основан на результатах обучения dddd_trainer. Базовая платформа обучения — pytorch. Основная идея dddddocr основана на onnxruntime. Поэтому максимальная совместимость и поддержка версий Python в этом проекте в основном зависят от onnxruntime.
В основном он используется для идентификации отдельных строк текста, то есть текстовая часть занимает основную часть изображения, например, общие английские и числовые коды проверки и т. д. Этот проект может распознавать китайский, английский (случайный регистр или регистр, установив диапазон результатов), цифры и некоторые специальные символы.
# example.pyimport ddddocrocr = ddddocr.DdddOcr()image = open("example.jpg", "rb").read()result = ocr.classification(image)print(result)
В эту библиотеку встроены два набора моделей OCR. По умолчанию они не переключаются автоматически. Вам необходимо переключаться между параметрами при инициализации ddddocr.
# example.pyimport ddddocrocr = ddddocr.DdddOcr(beta=True) # Переключение на второй набор моделей распознавания image = open("example.jpg", "rb").read()result = ocr.classification(image)print ( результат)
Советы по поддержке распознавания некоторых прозрачных черных изображений формата PNG: метод classification
использует параметр png_fix
, значение по умолчанию — False.
ocr.classification(изображение, png_fix=True)
Уведомление
Ранее я обнаружил, что многие люди любят повторно инициализировать ddddocr каждый раз, когда распознается OCR, то есть каждый раз выполнять ocr = ddddocr.DdddOcr()
. Вообще говоря, его нужно инициализировать только один раз, потому что каждая инициализация. и первая скорость распознавания после инициализации очень низкая.
Справочный пример изображения
Включая, помимо прочего, следующие изображения
В основном она используется для быстрого определения возможного положения целевого объекта на изображении. Поскольку обнаруженная цель не обязательно является текстом, эта функция предоставляет только положение цели в bbox (при обнаружении цели мы обычно используем bbox (ограничивающая рамка, аббревиатура). bbox) для описания целевой позиции. bbox — это прямоугольный блок, который можно определить по координатам осей x и y верхнего левого угла прямоугольника и координатам осей x и y нижнего правого угла.
Если во время использования нет необходимости вызывать функцию ocr, вы можете отключить функцию ocr, передав при инициализации параметр ocr=False
. Чтобы включить обнаружение цели, необходимо передать параметр det=True
import ddddocrimport cv2det = ddddocr.DdddOcr(det=True)with open("test.jpg", 'rb') as f:image = f.read()bboxes = det.detection(image)print(bboxes)im = cv2 .imread("test.jpg") для bbox в bboxes:x1, y1, x2, y2 = bboxim = cv2.rectangle(im, (x1, y1), (x2, y2), цвет=(0, 0, 255), толщина=2)cv2.imwrite("result.jpg", im)
Справочный пример изображения
Включая, помимо прочего, следующие изображения
Функция обнаружения слайдера в этом проекте не реализована с помощью распознавания ИИ, а реализована встроенным алгоритмом opencv. Это может быть не так удобно для пользователей, которые делают снимки экрана. Если во время использования нет необходимости вызывать функцию ocr или функцию обнаружения цели, вы можете отключить функцию ocr или det=False
ocr=False
во время инициализации. отключить функцию обнаружения цели.
Эта функция имеет две встроенные реализации алгоритма, которые подходят для двух разных ситуаций. Подробную информацию см. в следующих инструкциях.
Алгоритм 1.
Принцип алгоритма 1 заключается в вычислении соответствующей позиции ямы на фоновом изображении через край изображения слайдера. Изображение слайдера и фоновое изображение могут быть получены соответственно. Изображение слайдера представляет собой прозрачное фоновое изображение.
Слайдерная диаграмма
Фоновое изображение
det = dddddocr.DdddOcr(det=False, ocr=False) с open('target.png', 'rb') как f:target_bytes = f.read() с open('background.png', 'rb') как f:background_bytes = f.read() res = det.slide_match(target_bytes, background_bytes) print(res)
Поскольку у ползунковой диаграммы может быть проблема с прозрачной границей, результаты вычислений могут быть неточными. Чтобы исправить bbox, вам необходимо самостоятельно оценить ширину прозрачной границы ползунковой диаграммы.
Совет: Если у слайдера не слишком много фона, вы можете добавить параметр simple_target, который обычно представляет собой изображение в формате jpg или bmp.
слайд = dddddocr.DddDOcr(det=False, ocr=False) с open('target.jpg', 'rb') как f:target_bytes = f.read() с open('background.jpg', 'rb') как f:background_bytes = f.read() res = слайд.slide_match(target_bytes, background_bytes, simple_target=True) печать (рез)
Алгоритм 2.
Алгоритм 2 заключается в определении положения целевой ямы ползунка путем сравнения различий между двумя изображениями.
Обратитесь к рисунку А, полному изображению с тенью целевой ямы.
Эталонное изображение b, полное изображение
слайд = dddddocr.DddDOcr(det=False, ocr=False)с open('bg.jpg', 'rb') как f:target_bytes = f.read() с open('fullpage.jpg', 'rb') как f:background_bytes = f.read() img = cv2.imread("bg.jpg") res = слайд.slide_comparison(target_bytes, background_bytes)print(res)
Чтобы обеспечить более гибкий контроль результатов OCR и ограничение объема, проект поддерживает ограничение объема результатов OCR.
Вы можете передать probability=True
при вызове метода classification
. В это время метод classification
будет возвращать вероятность всей таблицы символов. Конечно, вы также можете установить диапазон выходных символов с помощью метода set_ranges
чтобы ограничить возвращаемые значения. результаты.
Ⅰ Метод set_ranges
ограничивает количество возвращаемых символов.
Этот метод принимает 1 параметр. Если входные данные имеют тип int, это ограничение встроенного набора символов, а если тип строки является пользовательским набором символов,
Если это тип int, обратитесь к следующей таблице.
Значение параметра | значение |
---|---|
0 | Чистое целое число 0–9 |
1 | Чистый строчный английский az |
2 | Чистый английский в верхнем регистре AZ |
3 | Английский нижний регистр az + Английский верхний регистр AZ |
4 | Строчные буквы английского az + целое число 0–9 |
5 | Прописные буквы английского алфавита AZ + целое число 0–9 |
6 | Английский нижний регистр az + английский AZ верхнего регистра + целое число 0–9 |
7 | Библиотека символов по умолчанию – английский нижний регистр az – английский верхний регистр AZ – целые числа 0–9 |
Если это строковый тип, передайте текст, не содержащий пробелов. Каждый символ в нем является кандидатом на слово, например: "0123456789+-x/=""
import ddddocrocr = ddddocr.DddDOcr()image = open("test.jpg", "rb").read()ocr.set_ranges("0123456789+-x/=")result = ocr.classification(image, Вероятность=True )s = ""для i в результате['вероятность']:s += результат['кодовые наборы'][i.index(max(i))]печать(и)
Этот проект поддерживает импорт настроенных обученных моделей из dddd_trainer. Справочный код импорта:
import ddddocrocr = ddddocr.DddDOcr(det=False, ocr=False, import_onnx_path="myproject_0.984375_139_13000_2022-02-26-15-34-13.onnx", charsets_path="charsets.json") с open('test.jpg ', 'rb') как f:image_bytes = f.read()res = ocr.classification(image_bytes)print(res)
Этот проект использует Git для управления версиями. Вы можете увидеть доступные на данный момент версии в репозитории.
Принесите своего младшего брата OCR, комплексное решение для локального получения кодов проверки сети с использованием чистого VBA.
dddddocr ржавчина версия
Модифицированная версия капчи-киллера
Обучение буквенно-цифровой модели CAPTCHA и определение вызовов развертывания с помощью ddddocr
...
Добро пожаловать, чтобы отправить больше отличных случаев или учебных пособий. Вы можете напрямую создать новый заголовок проблемы, начинающийся с [Отправка], и прикрепить ссылку на общедоступный сайт учебных пособий. Я выберу отображение файла ознакомительных сведений на основе содержания статьи, которое относительно нестандартно. повторяется или имеет ключевое содержание. Спасибо всем, друзья~.
Если у вас слишком много друзей, возможно, вы не сможете пройти. Если у вас возникнут вопросы, вы можете пообщаться в теме.
Этот проект лицензируется по лицензии MIT, подробности см. в разделе «ЛИЦЕНЗИЯ».