Оптическое распознавание си мволов (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 может сканировать цветной текст и фоны, хотя он наиболее эффективен при работе с комбинациями цветов с высоким контрастом, такими как черный текст на белом фоне. Если контраст между цветом текста и фона недостаточен, точность может снизиться.
Формат изображений PCL (Printer Command Language) не является отдельным форматом изображений, как JPEG или PNG, а скорее частью языка принтера PCL, разработанного компанией Hewlett-Packard (HP). PCL — это язык описания страниц (PDL), используемый для управления печатающими устройствами, и он широко поддерживается многими различными моделями принтеров. Он используется для передачи принтеру информации о том, как печатать документ, включая текст, шрифты, графику и изображения. Язык PCL используется для описания макета текста и графики на печатной странице и включает команды для управления графическим состоянием принтера и для растрирования (преобразования в пиксели) изображений.
PCL был впервые представлен в 1980-х годах и со временем развивался, было выпущено несколько версий. Наиболее распространенными версиями являются PCL 5, PCL 5e и PCL 6 (также известный как PCL XL). PCL 5 представил макросы, более крупные растровые шрифты и графические возможности. PCL 5e (расширенный) добавил двунаправленную связь между принтером и ПК, а также улучшил скорость печати и качество изображения. PCL 6, разработанный как эффективный протокол для сложной графики, использует сжатый протокол для передачи данных и оптимизирован для печати из графических пользовательских интерфейсов, таких как Windows.
В контексте PCL изображение представлено как шаблон точек, которые можно напечатать на бумаге. PCL использует комбинацию векторных команд и растровой графики для представления изображений. Векторные команды используются для рисования фигур и линий, а растровые — для более сложных изображений или фотографий. Когда принтер PCL получает документ, он обрабатывает эти команды для создания окончательного печатного вывода.
Растровые изображения в PCL определяются с помощью серии команд, которые задают разрешение, размер и кодировку данных изображения. Разрешение изображения PCL обычно указывается в точках на дюйм (DPI), что указывает, сколько точек принтер будет использовать для представления изображения на линейном дюйме бумаги. Размер изображения определяется количеством строк и столбцов точек.
PCL поддерживает несколько методов кодирования данных растровых изображений. Одним из распространенных методов является использование простого кодирования длин серий (RLE), которое сжимает данные изображения, заменяя последовательности одного и того же цвета одним значением и количеством. Это особенно эффективно для изображений с большими областями одного цвета. PCL также поддерживает более сложные схемы сжатия, такие как сжатие дельта-строк, которое кодирует только различия между соседними строками пикселей, и адаптивное сжатие, которое может переключаться между различными методами сжатия для разных частей изображения.
Чтобы включить изображение в документ PCL, данные изображения сначала должны быть преобразованы в формат PCL. Это включает растрирование изображения, то есть преобразование его из исходного формат а (например, JPEG или PNG) в сетку точек, которую принтер может понять. Затем растрированное изображение кодируется с использованием одного из поддерживаемых методов сжатия и встраивается в документ PCL с помощью соответствующих команд PCL.
Команды PCL для встраивания изображения включают команду «Enter Raster Mode», которая сигнализирует о начале растрового изображения, и команду «Raster Data Transfer», которая используется для отправки фактических данных изображения на принтер. Также есть команды для установки разрешения и глубины цвета изображения, а также для размещения изображения на странице.
Цвет в изображениях PCL обрабатывается с помощью цветовых палитр или прямой спецификации цвета. В цветовой палитре каждый цвет, используемый в изображении, определяется индексом в таблице значений цвета. Принтер использует эту таблицу для определения фактического цвета для печати каждой точки. Прямая спецификация цвета позволяет явно указать цвет каждой точки, обычно как комбинацию значений красного, зеленого и синего (RGB).
PCL также поддерживает полутоновый режим, который представляет собой технику, используемую для имитации различных оттенков цвета путем изменения шаблона точек. Полутоновый режим необходим, потому что большинство принтеров имеют ограниченное количество цветов, которые они могут печатать (часто только черный, голубой, пурпурный и желтый). Тщательно располагая точки этих основных цветов, можно имитировать широкий спектр оттенков и цветов. PCL использует несколько алгоритмов полутонового режима, включая упорядоченное дизеринг и диффузию ошибок, для достижения этого эффекта.
При печати документа, содержащего изображения PCL, драйвер принтера на компьютере преобразует документ в команды PCL, включая команды для любых встроенных изображений. Драйвер также обрабатывает любые необходимые преобразования цвета, например, преобразование цветов RGB в цветовое пространство, используемое принтером (обычно CMYK — голубой, пурпурный, желтый и черный). Полученный поток данных PCL затем отправляется на принтер для печати.
Одним из преимуществ PCL является его широкая поддержка на многих различных моделях и производителях принтеров. Это означает, что документы, отформатированные с помощью команд PCL, можно печ атать на самых разных принтерах без необходимости переформатирования или настройки для каждого принтера. Однако, поскольку PCL является языком относительно низкого уровня, создание документов PCL напрямую может быть сложным и требует хорошего понимания набора команд PCL.
По этой причине большинство пользователей никогда не будут напрямую взаимодействовать с командами PCL. Вместо этого они будут использовать драйвер принтера или программное приложение, которое может генерировать вывод PCL. Например, при печати из текстового процессора или графической программы приложение отправит документ драйверу принтера, который преобразует его в команды PCL для печати.
Несмотря на свой возраст, PCL по-прежнему используется сегодня из-за своей эффективности и надежности. Он особенно хорошо подходит для офисных сред, где принтеры используются совместно многими пользователями и где преобладает печать текста и простой графики. Поддержка PCL макросов и шрифтов также позволяет быстро печатать стандартные формы и документы с повторяющимися элементами.
Однако у PCL есть некоторые ограничения, особенно когда речь и дет о печати сложной графики или изображений с высоким разрешением. Хотя PCL 6 (PCL XL) был разработан для решения некоторых из этих проблем, он не так широко поддерживается, как более ранние версии PCL, и некоторые пользователи сообщали о проблемах совместимости с определенными принтерами. Кроме того, PCL не так подходит для печати из приложений, требующих точного контроля над макетом и качеством графики, таких как программное обеспечение для настольных издательских систем.
В заключение, формат изображений PCL является неотъемлемой частью языка принтера PCL, который на протяжении десятилетий был стандартом в индустрии печати. Его конструкция обеспечивает эффективную и надежную печать документов со встроенными изображениями на самых разных принтерах. Хотя это может быть не лучший выбор для высококачественной печати графики, его простота использования и поддержка различных задач печати делают его ценным инструментом для многих предприятий и частных лиц. Понимание технических аспектов PCL и того, как он обрабатывает изображения, может быть полезным для ИТ-специалистов, разработчиков программного обеспечения и всех, кто участвует в создании или обслуживании печатных документов.
Этот конвертер полностью работает в вашем браузере. Когда вы выбираете файл, он загружается в память и преобразуется в выбранный формат. Затем вы можете скачать преобразованный файл.
Преобразования начинаются мгновенно, и большинство файлов преобразуются за считанные секунды. Более крупные файлы могут занимать больше времени.
Ваши файлы никогда не загружаются на наши серверы. Они преобразуются в вашем браузере, а затем скачиваются. Мы никогда не видим ваши файлы.
Мы поддерживаем преобразование между всеми форматами изображений, включая JPEG, PNG, GIF, WebP, SVG, BMP, TIFF и другие.
Этот конвертер полностью бесплатен и всегда будет бесплатным. Поскольку он работает в вашем браузere, нам не нужно платить за серверы, поэтому мы не взимаем плату с вас.
Да! Вы можете преобразовать сколько угодно файлов одновременно. Просто выберите несколько файлов при их добавлении.