Оптическое распознавание символов (OCR) преобразует изображения текста — сканы, фотографии со смартфона, PDF-файлы — в машиночитаемые строки и, все чаще, в структурированные данные. Современное OCR — это конвейер, который очищает изображение, находит текст, читает его и экспортирует богатые метаданные, чтобы последующие системы могли искать, индексировать или извлекать поля. Два широко используемых стандарта вывода: hOCR, микроформат HTML для текста и макета, и ALTO XML, схема, ориентированная на библиотеки/архивы; оба сохраняют позиции, порядок чтения и другие подсказки макета и поддерживаются популярными движками, такими как Tesseract.
Предварительная обработка. Качество OCR начинается с очистки изображения: преобразования в оттенки серого, удаления шума, пороговой обработки (бинаризации) и выравнивания. Канонические учебные пособия по OpenCV охватывают глобальную, адаптивную и пороговую обработку Оцу — основные методы для документов с неравномерным освещением или бимодальными гистограммами. Когда освещение меняется в пределах страницы (подумайте о снимках с телефона), адаптивные методы часто превосходят один глобальный порог; Оцу автоматически выбирает порог, анализируя гистограмму. Коррекция наклона не менее важна: выравнивание н а основе преобразования Хафа (преобразование Хафа для линий) в паре с бинаризацией Оцу является распространенным и эффективным рецептом в производственных конвейерах предварительной обработки.
Обнаружение и распознавание. OCR обычно делится на обнаружение текста (где находится текст?) и распознавание текста (что он говорит?). В естественных сценах и многих сканах полностью сверточные детекторы, такие как EAST , эффективно предсказывают четырехугольники на уровне слов или строк без тяжелых этапов предложения и реализованы в общих наборах инструментов (например, учебное пособие по обнаружению текста в OpenCV). На сложных страницах (газеты, формы, книги) важны сегментация строк/областей и определение порядка чтения:Kraken реализует традиционную сегментацию зон/строк и нейронную сегментацию базовой линии с явной поддержкой различных письменностей и направлений (слева направо/справа налево/вертикально).
Модели распознавания. Классическая рабочая лошадка с открытым исходным кодом Tesseract (с открытым исходным кодом от Google, с корнями в HP) эволюционировала от классификатора символов до распознавателя последовательностей на основе LSTM и может выдавать PDF с возможностью поиска, выходные данные, дружественные к hOCR/ALTO, и многое другое из командной строки. Современные распознаватели полагаются на моделирование последовательностей без предварительно сегментированных символов. Коннективистская временная классификация (CTC) остается основополагающей, изучая выравнивания между последовательностями входных признаков и строками выходных меток; она широко используется в конвейерах для распознавания рукописного ввода и текста на сцене.
В последние несколько лет трансформеры изменили OCR. TrOCR ис пользует кодировщик Vision Transformer и декодер Text Transformer, обученный на больших синтетических корпусах, а затем доработанный на реальных данных, с высокой производительностью на тестах печатного, рукописного и сценического текста (см. также документацию Hugging Face). Параллельно некоторые системы обходят OCR для последующего понимания: Donut (Document Understanding Transformer) — это кодировщик-декодер без OCR, который напрямую выводит структурированные ответы (например, JSON «ключ-значение») из изображений документов (репозиторий, карточка модели), избегая накопления ошибок, когда отдельный шаг OCR передает данные в систему извлечения информации.
Если вам нужно готовое решение для чтения текста на многих языках, EasyOCR предлагает простой API с более чем 80 языковыми моделями, возвращающий рамки, текст и достоверность — у добно для прототипов и нелатинских письменностей. Для исторических документов Kraken отличается сегментацией базовой линии и порядком чтения с учетом письменности; для гибкого обучения на уровне строк Calamari основан на наследии Ocropy (Ocropy) с распознавателями (multi-)LSTM+CTC и CLI для тонкой настройки пользовательских моделей.
Обобщение зависит от данных. Для рукописного ввода база данных рукописного ввода IAM предоставляет разнообразные по авторам английские предложения для обучения и оценки; это давний эталонный набор для распознавания строк и слов. Для текста на сцене COCO-Text наложил обширные аннотации на MS-COCO с метками для печатного/рукописного, разборчивого/неразборчивого, письменности и полных транскрипций (см. также оригинальную страницу проекта). Эта область также в значительной степени зависит от синтетического предварительного обучения: SynthText in the Wild визуализирует текст на фотографиях с реалистичной геометрией и освещением, предоставляя огромные объемы данных для предварительного обучения детекторов и распознавателей (ссылка на код и данные).
Соревнования под эгидой ICDAR’s Robust Reading сохраняют обоснованность оценки. Последние задачи подчеркивают сквозное обнаружение/чтение и включают связывание слов во фразы, с официальным кодом, сообщающим точность/полноту/F-меру, пересечение над объединением (IoU) и метрики расстояния редактирования на уровне символов, что отражает то, что должны отслеживать практики.
OCR редко заканчивается простым текстом. Архивы и цифровые библиотеки предпочитают ALTO XML , потому что он кодирует физический макет (блоки/строки/слова с координатами) вместе с содержимым, и он хорошо сочетается с упаковкой METS. Микроформат hOCR , напротив, встраивает ту же идею в HTML/CSS, используя классы, такие как ocr_line и ocrx_word, что упрощает отображение, редактирование и преобразование с помощью веб-инструментов. Tesseract предоставляет оба варианта, например, генерируя hOCR или PDF с возможностью поиска прямо из командной строки (руководство по выводу PDF); оболочки Python, такие как pytesseract , добавляют удобства. Существуют преобразователи для перевода между hOCR и ALTO, когда в репозиториях есть фиксированные стандарты приема — см. этот тщательно подобранный список инструментов для формата файлов OCR.
Самая сильная тенденция — это конвергенция: обнаружение, распознавание, языковое моделирование и даже декодирование для конкретных задач объединяются в единые стеки трансформеров. Предварительное обучение на больших синтетических корпусах остается мультипликатором силы. Модели без OCR будут агрессивно конкурировать везде, где целью являются структурированные выходные данные, а не дословные транскрипции. Ожидайте также гибридных развертываний: легкий детектор плюс распознаватель в стиле TrOCR для длинного текста и модель в стиле Donut для форм и квитанций.
Tesseract (GitHub) · Документация Tesseract · Спецификация hOCR · Фон ALTO · Детектор EAST · Обнаружение текста OpenCV · TrOCR · Donut · COCO-Text · SynthText · Kraken · Calamari OCR · ICDAR RRC · pytesseract · Рукописный ввод IAM · Инструменты формата файлов OCR · EasyOCR
Оптическое распознавание символов (OCR) - это технология, используемая для преобразования различных типов документов, таких как отсканированные бумажные документы, PDF-файлы или изображения, снятые цифровой камерой, в данные, которые можно редактировать и искать.
OCR сканирует входное изображение или документ, разбирает изображение на отдельные символы, а затем сравнивает каждый символ с базой данных форм символов, используя распознавание по образцу или распознавание по признакам.
OCR используется в различных отраслях и приложениях, включая цифровизацию печатных документов, использование услуг перевода текста в речь, автоматизацию процесса ввода данных и помощь людям с нарушениями зрения в более качественном взаимодействии с текстом.
Несмотря на значительные усовершенствования технологии OCR, она не абсолютно надежна. Точность может варьироваться в зависимости от качества исходного документа и конкретных характеристик используемого ПО OCR.
Хотя OCR в основном предназначен для распознавания печатного текста, некоторые продвинутые системы OCR также могут распознавать чистописание. Однако точность распознавания рукописного текста обычно ниже из-за вариативности индивидуальных стилей письма.
Да, многие программы OCR могут распознавать множество языков. Однако следует убедиться, что используемое вами программное обеспечение поддерживает конкретный язык.
OCR - это аббревиатура от Optical Character Recognition (оптическое распознавание символов), которое используется для распознавания печатного текста, в то время как ICR, или Intelligent Character Recognition (интеллектуальное распознавание символов), это более продвинутая технология, которая используется для распознавания рукописного тек ста.
OCR наиболее эффективен при обработке четких, легко читаемых шрифтов и стандартных размеров текста. Хотя он способен распознавать различные шрифты и размеры, его точность может снизиться при обработке нестандартных шрифтов или очень мелкого текста.
У OCR может быть проблемы при обработке документов с низким разрешением, сложных шрифтов, текста с плохим качеством печати, рукописного текста или документов, где текст плохо сочетается с фоном. Кроме того, хотя OCR может распознавать многие языки, он может не покрывать все языки идеально.
Да, OCR может сканировать цветной текст и фоны, хотя он наиболее эффективен при работе с комбинациями цветов с высоким контрастом, такими как черный текст на белом фоне. Если контраст между цветом текста и фона недостаточен, точность может снизиться.
Формат PBM (Portable Bitmap) — один из самых простых и ранних форматов графических файлов, используемых для хранения монохромных изображений. Он является частью пакета Netpbm, который также включает PGM (Portable GrayMap) для изображений в оттенках серого и PPM (Portable PixMap) для цветных изображений. Формат PBM разработан так, чтобы его было чрезвычайно легко читать и записывать в программе, а также чтобы он был понятным и однозначным. Он не предназначен для использования в качестве отдельного формата, а скорее как наименьший общий знаменатель для преобразования между различными форматами изображений.
Формат PBM поддерживает только черно-белые (1-битные) изображения. Каждый пиксель на изображении представлен одним битом — 0 для белого и 1 для черного. Простота формата позволяет легко манипулировать им с помощью основных инструментов редактирования текста или языков программирования без необходимости использования специализированных библиотек обработки изображений. Одн ако эта простота также означает, что файлы PBM могут быть больше, чем более сложные форматы, такие как JPEG или PNG, которые используют алгоритмы сжатия для уменьшения размера файла.
Существует две разновидности формата PBM: формат ASCII (обычный), известный как P1, и двоичный (необработанный) формат, известный как P4. Формат ASCII доступен для чтения человеком и может быть создан или отредактирован с помощью простого текстового редактора. Двоичный формат не доступен для чтения человеком, но он более экономичен с точки зрения пространства и быстрее для чтения и записи программами. Несмотря на различия в хранении, оба формата представляют один и тот же тип данных изображения и могут быть преобразованы друг в друга без потери информации.
Структура файла PBM в формате ASCII начинается с двухбайтового магического числа, которое идентифицирует тип файла. Для формата PBM ASCII это «P1». За магическим числом следует пробел (пробелы, табуляции, CR, LF), а затем спецификация ширины, которая представляет собой количество столбцов на изображении, за которой следует еще один пробел, а затем спецификация высоты, которая представляет собой количество строк на изображении. После спецификации высоты следует еще один пробел, а затем начинаются данные пикселей.
Данные пикселей в файле ASCII PBM состоят из серии «0» и «1», где каждый «0» представляет белый пиксель, а каждый «1» представляет черный пиксель. Пиксели расположены в строках, причем каждая строка пикселей находится на новой строке. Пробелы допускаются в любом месте данных пикселей, кроме двухсимвольной последовательности (они не допускаются между двумя символами последовательности). Конец файла достигается после чтения width*height битов.
Напротив, двоичный формат PBM начинается с магического числа «P4» вместо «P1». После магического числа формат файла такой же, как и в версии ASCII, пока не начнутся данные пикселей. Двоичные данные пикселей упаковываются в байты, причем самый старший бит (MSB) каждого байта представляет самый левый пиксель, а каждая строка пикселей дополняется по мере необходимости, чтобы заполнить последний байт. Дополнительные биты не имеют значения, и их значения игнорируются.
Двоичный формат более экономичен с точки зрения пространства, поскольку он использует полный байт для представления восьми пикселей, в отличие от формата ASCII, который использует не менее восьми байтов (один символ на пиксель плюс пробел). Однако двоичный формат не доступен для чтения человеком и требует программы, которая понимает формат PBM, для отображения или редактирования изображения.
Программное создание файла PBM относительно просто. На языке программирования, таком как C, можно открыть файл в режиме записи, вывести соответствующее магическое число, записать ширину и высоту в виде чисел ASCII, разделенных пробелами, а затем вывести данные пикселей. Для ASCII PBM данные пикселей можно записать в виде серии «0» и «1» с соответствующими переходами на новую строку. Для двоичного PBM данные пикселей должны быть упакованы в байты и записаны в файл в двоичном режиме.
Чтение файла PBM также несложно. Программа считывает магическое число, чтобы определить формат, пропускает пробелы, считывает ширину и высоту, пропускает еще пробелы, а затем считывает данные пикселей. Для ASCII PBM программа может считывать символы по одному и интерпретировать их как значения пикселей. Для двоичного PBM программа должн а считывать байты и распаковывать их в отдельные биты, чтобы получить значения пикселей.
Формат PBM не поддерживает никакой формы сжатия или кодирования, что означает, что размер файла прямо пропорционален количеству пикселей на изображении. Это может привести к очень большим файлам для изображений с высоким разрешением. Однако простота формата делает его идеальным для изучения обработки изображений, для использования в ситуациях, когда точность изображения важнее размера файла, или для использования в качестве промежуточного формата в процессах преобразования изображений.
Одним из преимуществ формата PBM является его простота и легкость манипулирования. Например, чтобы инвертировать изображение PBM (превратить все черные пиксели в белые и наоборот), можно просто заменить все «0» на «1», а все «1» на «0» в данных пикселей. Это можно сделать с помощью простого сценария или программы обработки текста. Аналогичным образом, другие основные операции с изображениями, такие как поворот или зеркальное отображение, могут быть реализованы с помощью простых алгоритмов.
Несмотря на свою простоту, формат PBM не широко используется для общего хранения или обмена изображениями. Это в первую очередь связано с отсутствием сжатия, что делает его неэффективным для хранения больших изображений или для использования в Интернете, где пропускная способность может быть проблемой. Более современные форматы, такие как JPEG, PNG и GIF, предлагают различные формы сжатия и лучше подходят для этих целей. Однако формат PBM все еще используется в некоторых контекстах, особенно для простой графики в разработке программного обеспечения и в качестве учебного пособия по концепциям обработки изображений.
Пакет Netpbm, который включает формат PBM, предоставляет набор инструментов для манипулирования файлами PBM, PGM и PPM. Эти инструменты позволяют преобразовывать форматы Netpbm в другие популярные форматы изображений и обратно, а также выполнять основные операции обработки изображений, такие как масштабирование, обрезка и манипулирование цветом. Пакет разработан так, чтобы быть легко расширяемым, с простым интерфейсом для добавления новых функций.
В заключение, формат изображений PBM — это простой, бесхитростный формат файлов для х ранения монохромных растровых изображений. Его простота делает его легким для понимания и манипулирования, что может быть полезно в образовательных целях или для простых задач обработки изображений. Хотя он не подходит для всех приложений из-за отсутствия сжатия и в результате больших размеров файлов, он остается полезным форматом в тех конкретных контекстах, где его преимущества наиболее выгодны. Формат PBM, наряду с остальной частью пакета Netpbm, по-прежнему является ценным инструментом для тех, кто работает с базовой обработкой изображений и преобразованием форматов.
Этот конвертер полностью работает в вашем браузере. Когда вы выбираете файл, он загружается в память и преобразуется в выбранный формат. Затем вы можете скачать преобразованный файл.
Преобразования начинаются мгновенно, и большинство файлов преобразуются за считанные секунды. Более крупные файлы могут занимать больше времени.
Ваши файлы никогда не загружаются на наши серверы. Они преобразуются в вашем браузере, а затем скачиваются. Мы никогда не видим ваши файлы.
Мы поддерживаем преобразование между всеми форматами изображений, включая JPEG, PNG, GIF, WebP, SVG, BMP, TIFF и другие.
Этот конвертер полностью бесплатен и всегда будет бесплатным. Поскольку он работает в вашем браузere, нам не нужно платить за серверы, поэтому мы не взимаем плату с вас.
Да! Вы можете преобразовать сколько угодно файлов одновременно. Просто выберите несколько файлов при их добавлении.