VietOCR

VietOCR превращает сканы, фотографии страниц и графические PDF в редактируемый текст: пользователь открывает документ, выбирает язык распознавания, при необходимости обводит нужную область, выравнивает или очищает изображение и запускает OCR. Результат появляется рядом с оригиналом, поэтому его удобно сразу сверять, исправлять поиском и заменой, проверять словарём, объединять строки в абзацы и сохранять для дальнейшей работы. Для серийных задач предусмотрены обработка нескольких файлов, наблюдаемая папка и запуск из командной строки, а для PDF — получение текстового слоя и служебных форматов разметки.

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

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

Скачать VietOCR

Оценка 9.7 Рекомендуем
  • Редактирование PDF
  • Русский интерфейс
  • Просто новичкам
Скачать бесплатно на Windows
Лучшая альтернатива
VietOCR
Оценка 8.5
  • Требуется Java 17
  • Нет экспорта в DOCX
  • Сканер зависит от WIA/SANE
Скачать VietOCR
Загрузка начнётся после нажатия

Интерфейс и первый запуск распознавания

После открытия файла VietOCR показывает страницу слева, а правое поле оставляет свободным до запуска OCR. Такая компоновка рассчитана на постоянное сравнение: взгляд не приходится переносить между отдельным просмотрщиком и текстовым редактором. Разделитель между панелями можно использовать для изменения их ширины. Если документ состоит главным образом из мелкого шрифта, полезно расширить область изображения; при длительной вычитке, наоборот, больше места стоит отдать результату. Панель инструментов содержит не все команды, поэтому функции подготовки изображения, пакетной обработки и настройки движка нужно искать в меню Image, Format, Settings и Tools.

Открытие выполняется значком папки или соответствующей командой File. Поддерживается перетаскивание файлов в окно, а изображение из другого приложения можно вставить через буфер обмена. Для одностраничного теста достаточно загрузить PNG или TIFF, выбрать язык и нажать OCR. Если курсором заранее создан прямоугольник, движок обработает только эту область; без выделения разбирается вся страница. Текст появляется справа по мере завершения операции, а строка состояния сообщает, что распознавание закончено. Сразу после этого следует сохранить черновой результат, прежде чем применять массовые замены или объединение строк.

Кнопка OCR запускает тот же движок Tesseract, но итог зависит от нескольких параметров, которые интерфейс делает доступными без ручного составления команды. В списке OCR Language выбирается языковой набор, в поле PSM — способ сегментации страницы, Screenshot Mode помогает с низким разрешением, а Segmented Regions определяет работу с отмеченными зонами. Неправильное сочетание этих параметров часто выглядит как плохой OCR: одна колонка перемешивается с другой, заголовок попадает в середину абзаца или короткая строка вообще не распознаётся. Исправлять такие случаи лучше изменением сегментации и области, а не бесконечной повторной проверкой орфографии.

Главное окно VietOCR с двумя рабочими панелями

Какие файлы можно открыть

VietOCR принимает PDF и распространённые растровые форматы TIFF, JPEG, GIF, PNG и BMP. Для сканов предпочтительны PNG и TIFF, потому что они не добавляют блочные артефакты вокруг тонких штрихов букв. JPEG удобен для фотографий и небольшого размера файла, но повторное сохранение с сильным сжатием способно превратить точки, запятые и диакритические знаки в шум. BMP обычно сохраняет детали, однако занимает много места. GIF подходит для ограниченной палитры, но для серых полутонов и фотографий страницы менее практичен.

Многостраничный TIFF открывается как единый документ с переходом по страницам. Это удобно для архивов, полученных со сканера, где каждый лист уже собран в один контейнер. При работе с обычными изображениями можно выбрать несколько файлов; порядок следует проверить до запуска серии, особенно если имена вида page1, page2 и page10 сортируются системой не так, как ожидается. Для больших подборок полезно заранее использовать нумерацию с ведущими нулями: page001, page002 и далее. Тогда последовательность изображений и выходных текстов остаётся однозначной.

PDF обрабатывается иначе, чем готовый текстовый документ. Если внутри страницы уже есть текстовый слой, VietOCR всё равно ориентирован на визуальное представление и OCR-задачу, а не на редактирование объектов PDF. Для сканированного PDF это именно то, что требуется: страницы превращаются в изображения, затем распознаются. Для сложного файла с векторной графикой, прозрачностями или нестандартными шрифтами сначала стоит проверить несколько страниц, поскольку качество растеризации влияет на мелкие символы не меньше, чем настройки Tesseract.

Проверка изображения перед OCR

Информация о размерах и глубине цвета отображается в строке состояния. Нулевые значения означают, что изображение ещё не загружено; после открытия там видны ширина, высота и количество бит на пиксель. Для печатного текста хорошей отправной точкой служит скан 300 DPI в чёрно-белом режиме 1 bpp либо в градациях серого 8 bpp. Разрешение ниже 200 DPI часто делает тонкие элементы букв неустойчивыми, а увеличение выше 400 DPI само по себе не гарантирует прироста точности. Намного важнее резкость границ, ровный фон и отсутствие теней у корешка.

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

Навигация по страницам и масштаб

Навигационные стрелки и счётчик страницы позволяют перемещаться по многостраничному TIFF или PDF. Масштаб изменяется кнопками с лупой и колесом мыши с модификатором, а режим подгонки помогает увидеть страницу целиком. Масштаб влияет только на просмотр, а не на исходные пиксели, поэтому сильное увеличение не повышает точность OCR. Его задача — помочь заметить размытые знаки, неверно выбранную область или границу колонки. Перед распознаванием таблицы полезно приблизить её и убедиться, что линии не пересекают символы.

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

Поворот на 90 градусов полезен для страниц, попавших в сканер боком. Для небольшого наклона нужен deskew, то есть автоматическое выравнивание по строкам. Эти операции решают разные задачи: поворот меняет ориентацию целиком, а deskew компенсирует отклонение на несколько градусов. Если применить только deskew к странице, лежащей на боку, алгоритм не сможет восстановить нормальное направление. После любой геометрической операции следует проверить, не были ли обрезаны крайние буквы и номера страниц.

Выделение области распознавания

Прямоугольник выделения создаётся протягиванием мыши по изображению. Он ограничивает OCR конкретным фрагментом: абзацем, заголовком, колонкой, ячейкой таблицы или подписью. Это один из самых действенных способов повысить точность на сложной странице, потому что движку не приходится одновременно определять порядок чтения нескольких несвязанных блоков. Рамку лучше проводить с небольшим запасом вокруг букв, но не захватывать соседние колонки, рисунки и крупные поля. Слишком тесная рамка может отсечь выносные элементы и диакритику.

Для газеты или научной статьи с двумя колонками удобнее распознавать каждую колонку отдельно в правильном порядке. Сначала выделяется верхняя часть левой колонки, затем нижняя, после чего аналогично обрабатывается правая. Текст можно добавлять в правое поле последовательно, контролируя места соединения. Это медленнее автоматического разбора всей страницы, зато предотвращает чередование строк из разных колонок. Тот же принцип полезен для форм, где подписи полей и значения расположены рядом, а общий PSM воспринимает их как одну фразу.

Режим Segmented Regions предназначен для работы с несколькими отмеченными участками. Его стоит использовать, когда на странице есть устойчивый набор зон и требуется сохранить логический порядок. Перед запуском необходимо проверить, что рамки не перекрываются и перечислены в нужной последовательности. Если часть текста пропущена, проще удалить проблемную область и создать её заново, чем пытаться исправить смешанный результат. Для единичного абзаца обычного прямоугольника достаточно.

Распознавание выделенной области во VietOCR

Языки распознавания и папка tessdata

Список OCR Language формируется из файлов обученных данных Tesseract. Английский и вьетнамский наборы обычно присутствуют в поставке, а остальные языки добавляются в каталог tessdata. Имя файла соответствует коду языка, например eng для английского и vie для вьетнамского. После копирования нового файла программа должна увидеть его при следующем запуске или обновлении списка. Если язык не появляется, нужно проверить не только имя, но и то, что файл лежит именно в той папке tessdata, которую использует выбранный движок.

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

Файлы traineddata должны соответствовать поколению движка, с которым работает VietOCR. Старые пакеты для ранних выпусков Tesseract нельзя без проверки смешивать с современными данными. Признаки несовместимости — отсутствие языка в списке, сообщение об ошибке загрузки, пустой результат или аварийное завершение при старте OCR. Надёжная проверка состоит из одного чистого тестового изображения с несколькими строками. Если оно распознаётся, можно переходить к большому документу.

В Linux путь к данным иногда задаётся переменной TESSDATA_PREFIX. Она должна указывать на родительский каталог tessdata и в некоторых конфигурациях завершаться разделителем пути. Ошибка в одном уровне каталога приводит к тому, что движок сообщает о невозможности открыть обученные данные. На системах, где Tesseract установлен пакетным менеджером, данные часто находятся в системном каталоге, а VietOCR может использовать собственную папку. Следует выбрать один понятный вариант и не хранить разные копии одного языка в нескольких местах без необходимости.

Выбор языка OCR в интерфейсе VietOCR

Установка дополнительных языков

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

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

Режимы сегментации страницы PSM

PSM сообщает Tesseract, какую структуру ожидать от изображения. Автоматический режим подходит для обычной страницы, где движок должен сам найти блоки. Для одной сплошной колонки полезен режим единого блока текста; для отдельной строки — режим одной строки; для короткого слова или разреженных надписей нужны более узкие варианты. Если выбрать режим целой страницы для небольшого фрагмента, движок может решить, что текста недостаточно, или неверно определить порядок. И наоборот, режим одной строки на многоабзацной странице объединит несвязанные части.

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

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

Screenshot Mode для низкого разрешения

Screenshot Mode предназначен для снимков экрана и других изображений с низким эффективным DPI. Он масштабирует материал до уровня, более подходящего для OCR, ориентируясь на 300 DPI. Режим полезен, когда буквы выглядят чётко на мониторе, но их высота в пикселях слишком мала для уверенного распознавания. Он не восстанавливает детали, которых нет в исходнике, поэтому размытый скриншот после увеличения останется размытым. Зато чёткий интерфейсный текст или фрагмент электронного документа часто становится стабильнее.

Не следует оставлять Screenshot Mode включённым для каждого скана. Страница, уже полученная при 300–400 DPI, не нуждается в дополнительном увеличении; лишняя интерполяция увеличивает память и время, а края символов могут стать мягче. Проверить необходимость просто: сравнить результат одной и той же области с режимом и без него. Если различий нет, лучше сохранить исходный размер. Для серии скриншотов одинакового масштаба настройку можно оставить постоянной.

Подготовка изображения: поворот, выравнивание и обрезка

Меню Image содержит операции, которые следует применять до OCR. Поворот исправляет ориентацию, crop удаляет поля и посторонние объекты, deskew выравнивает строки, а удаление линий помогает формам и таблицам. Порядок имеет значение. Сначала исправляется грубый поворот, затем обрезаются лишние поля, после этого выполняется выравнивание и только потом фильтрация. Если сначала усилить контраст вместе с тёмной рамкой сканера, алгоритм может принять рамку за часть документа и неверно оценить наклон.

Deskew рассчитан на небольшой угол. После выравнивания вокруг страницы могут появиться треугольные поля, поэтому крайние строки следует осмотреть. Если исходник сильно искривлён у корешка, глобального угла недостаточно: строки в верхней и нижней части имеют разный наклон. Тогда страницу лучше переснять с прижатым листом либо распознавать отдельными зонами. Автоматическое выравнивание не заменяет геометрическую коррекцию перспективы фотографии.

Crop полезен не только для уменьшения файла. Белое поле с номером страницы, тёмная кромка, отверстия перфорации и соседняя страница создают ложные компоненты разметки. Обрезать нужно с запасом, сохраняя все выносные элементы букв и знаки препинания. Для партии одинаково отсканированных листов можно сначала проверить несколько крайних страниц: положение текста иногда смещается, и слишком жёсткая рамка, подходящая первой странице, отрежет строки на последней.

Фильтры, порог и удаление шума

Регулировки яркости, контраста, гаммы, резкости, сглаживания и порога применяются к трудным исходникам. Их цель — сделать символы устойчивыми, а не визуально эффектными. Слишком высокая резкость создаёт ореолы вокруг штрихов; сильное сглаживание соединяет соседние буквы; агрессивный порог уничтожает точки над буквами и тонкие засечки. Правильный способ — выбрать небольшой фрагмент с мелким текстом, менять один параметр и каждый раз сравнивать OCR. Одновременное изменение пяти ползунков не позволяет понять, что помогло.

Despeckle удаляет мелкие изолированные точки, характерные для старой бумаги и копий. Он особенно полезен, когда шум сопоставим по размеру с точкой или запятой, но здесь же возникает риск: чрезмерная очистка удалит настоящую пунктуацию и диакритику. Для вьетнамского текста это критично, поскольку знаки над и под буквами несут смысл. Лучше оставить немного шума и исправить редкие ошибки, чем получить внешне чистую страницу с систематически потерянными знаками.

Удаление линий помогает таблицам, анкетам и бланкам, где горизонтальные или вертикальные штрихи пересекают символы. После операции нужно проверить цифры 1, буквы l и I, дефисы и подчёркивания: длинные элементы могут быть приняты за линии. Если таблица содержит важную структуру, разумно сохранить две копии: очищенную для текста и исходную для визуальной сверки. VietOCR распознаёт символы, но не восстанавливает сложную табличную модель в виде готовой электронной таблицы.

Сканирование через VietOCR

Команда сканирования позволяет получить страницу от подключённого устройства и сразу перейти к OCR. В Windows взаимодействие основано на WIA, в Linux — на SANE. Поэтому видимость сканера в системной утилите ещё не всегда означает, что он появится в VietOCR: нужен подходящий драйвер и доступный интерфейс. Перед поиском ошибки в программе следует выполнить тестовый скан штатным средством WIA или командой SANE. Если устройство не работает там, настройка OCR не поможет.

Для текста рекомендуется 300 DPI, чёрно-белый режим 1 bpp или градации серого 8 bpp. Чёрно-белый режим даёт небольшой файл и резкие границы на чистой бумаге. Градации серого лучше сохраняют бледную печать, карандашные пометки и фон старых страниц. Цвет имеет смысл, когда оттенки помогают отделить текст от печатей или иллюстраций, но он увеличивает объём и редко улучшает обычный чёрный шрифт. Перед большой серией стоит отсканировать одну страницу в двух режимах и сравнить ошибки.

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

Если сканер не обнаружен в Windows, следует проверить службу WIA, разрядность драйвера и поддержку устройства. В Linux нужны пакеты SANE и права пользователя на доступ к USB-устройству; иногда помогает проверка через scanimage или графическую оболочку SANE. Ошибка доступа к устройству и ошибка OCR — разные этапы. Сначала необходимо получить корректное изображение, затем отдельно разбираться с языком и Tesseract.

Работа с PDF

VietOCR открывает PDF для распознавания страниц и предоставляет инструменты объединения, разделения и преобразования PDF в TIFF. Это полезно, когда большой файл вызывает нехватку памяти: его можно разделить на части, обработать по очереди и затем собрать результат по принятому рабочему процессу. Объединение помогает, если отдельные сканы нужно превратить в единый входной документ. Перед операцией необходимо сохранить оригиналы, потому что порядок страниц и ориентация легче проверить до пакетного OCR.

Поддержка растеризации PDF может зависеть от Ghostscript и доступности его общей библиотеки. В Windows библиотека должна находиться в пути поиска, в Linux — быть доступна как libgs. Признак проблемы — PDF не открывается, отображается пустая страница или появляется сообщение о невозможности загрузить библиотеку, тогда как PNG распознаётся нормально. В такой ситуации сначала проверяют установку Ghostscript и переменные среды, а не языковые данные.

Для результата доступны обычный PDF с распознанным содержимым и вариант text-only PDF, где акцент сделан на текстовом слое. При создании поискового PDF нужно открыть итог в независимом просмотрщике, попробовать выделить фразу, выполнить поиск и сверить несколько слов с изображением. Наличие файла ещё не подтверждает качество слоя: неверный порядок чтения, пропущенные страницы и ошибочные символы могут оставаться незаметными до поиска.

VietOCR не является редактором объектов PDF. Он не предназначен для изменения исходного шрифта, перестановки векторных элементов, редактирования формы или сохранения сложной верстки в DOCX. Его сильная сторона — получение текста и поискового слоя из визуальной страницы. Если после OCR нужно менять структуру PDF, объединять комментарии, переставлять блоки или править содержание как в офисном документе, результат передают в подходящий PDF-редактор или текстовый процессор.

Как избежать нехватки памяти

Большой PDF создаёт нагрузку не только количеством страниц, но и размером каждого растрового кадра. Цветная страница высокого разрешения может занимать в памяти во много раз больше, чем на диске. Если приложение замедляется или завершается при открытии, файл следует разделить на части, уменьшить избыточное разрешение или перевести чистые текстовые страницы в градации серого. Обрабатывать сотни страниц одним запуском удобно только после теста на типичном фрагменте.

Разделение лучше выполнять по логическим границам: главам, выпускам или пачкам одинакового объёма. Выходные имена должны сохранять порядок, например book_001_050, book_051_100. После OCR полезно вести контрольный список диапазонов. Такая дисциплина предотвращает пропуск части документа и дублирование страниц при последующей сборке.

Редактирование распознанного текста

Правое поле VietOCR позволяет исправлять результат непосредственно рядом с изображением. Это удобно для первичной вычитки: курсор ставится в подозрительное слово, а оригинал остаётся видимым слева. Размер панелей можно подстроить так, чтобы строка текста и соответствующая строка скана находились примерно на одном уровне. При длинной странице помогает увеличение изображения и последовательное движение сверху вниз.

Поиск и замена предназначены для повторяющихся ошибок. Например, если конкретный шрифт систематически превращает цифру 1 в латинскую l, можно найти типичный шаблон. Глобальная замена требует осторожности: та же последовательность может быть правильной в других словах. Сначала следует просмотреть все совпадения или применить замену к ограниченному фрагменту. Для сложных условий полезны регулярные выражения в пользовательской постобработке.

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

Удаление переносов строк

После OCR каждая строка скана часто становится отдельной строкой текста. Команда Remove Line Breaks объединяет их в абзацы. Применять её нужно после проверки структуры: заголовки, стихи, списки, адреса и таблицы требуют сохранения строк. Если удалить переносы во всём документе без разбора, заголовок сольётся с первым предложением, а пункты перечня превратятся в один абзац. Лучше обрабатывать выделенные участки или разделять типы содержимого.

Перенос слова в конце печатной строки — отдельная проблема. Простое удаление разрыва может оставить дефис там, где он был только типографическим, либо убрать настоящий дефис из сложного слова. Автоматическая постобработка помогает с распространёнными случаями, но имена, термины и коды следует сверять вручную. Для книжного текста разумно сначала объединить строки, затем искать слова с дефисом внутри предполагаемого абзаца.

Регистр и структура предложений

Change Case с вариантом Sentence case исправляет часть ошибок, когда внутри слова случайно появляется заглавная буква или предложение начинается со строчной. Команда ориентируется на пунктуацию и не понимает все особенности собственных имён. После применения нужно проверить аббревиатуры, инициалы, названия организаций, химические формулы и слова после двоеточия. Автоматическое изменение регистра экономит время на обычной прозе, но не заменяет редакторское решение.

Вьетнамская постобработка и пользовательские замены

Постобработка VietOCR создавалась с учётом типичных ошибок вьетнамского текста: неверного регистра, потерянной диакритики и подмены похожих знаков. Она применяется после работы Tesseract и не изменяет исходное изображение. Это важно понимать: плохая сегментация или размытая строка не исправятся словарным правилом. Сначала нужно получить максимально точный сырой результат, а затем использовать языковые коррекции.

Файл x.DangAmbigs.txt позволяет добавить собственную схему замен, где x — код языка. Файл сохраняется в UTF-8 и содержит пары, разделённые табуляцией. Поддерживаются простые и регулярные выражения. Простая замена подходит для устойчивой ошибочной последовательности, регулярная — для контекста, например цифры между буквами или лишних пробелов перед знаком препинания. Перед внедрением правила его следует проверить на копии текста, потому что слишком широкое выражение способно повредить сотни правильных мест.

Пользовательский набор правил полезен для однородной коллекции: одной газеты, машинописного архива, конкретного шрифта или формы. Ошибки в такой серии повторяются, и небольшая таблица замен значительно ускоряет вычитку. Переносить правила на другой источник без проверки нельзя. То, что исправляет газетный шрифт, может менять правильные слова в книге. Хорошая практика — хранить файл замен рядом с описанием коллекции и несколькими примерами до и после.

Настройки Tesseract и пользовательской постобработки

Проверка орфографии Hunspell

Встроенная проверка использует словари Hunspell. Для языка нужны файлы .aff и .dic в каталоге dict. Файл .dic содержит словарные основы, а .aff — правила образования форм и аффиксов. Если присутствует только один из пары, проверка не работает полноценно. Имена файлов должны соответствовать выбранной локали, а кодировка — ожиданиям словаря. После добавления словаря программу обычно перезапускают.

Пользовательский словарь user.dic хранится в UTF-8, по одному слову на строку. Туда разумно добавлять фамилии, географические названия, специальные термины и принятые сокращения. Не стоит добавлять слово только потому, что оно один раз появилось в OCR: сначала нужно убедиться, что это правильная форма, а не ошибка. Иначе словарь перестанет сигнализировать о той же подмене в будущих документах.

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

Пакетная обработка Bulk OCR

Меню настроек VietOCR

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

Для однородного массива следует заранее определить параметры: PSM, язык, deskew, удаление линий и переносов. Автоматическое включение всех улучшений редко полезно. Например, deskew оправдан для сканов из автоподатчика, но не нужен для ровных цифровых страниц; удаление линий помогает формам, но может повредить подчёркивания. Чем стабильнее источник, тем проще профиль обработки.

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

Наблюдаемая папка Watch

Watch Folder автоматизирует поток, в котором новые изображения регулярно появляются в одном каталоге. VietOCR отслеживает входную папку, запускает OCR и записывает результат в выходную. В настройках важно выбрать разные каталоги: если выход попадает обратно во вход, монитор может снова реагировать на созданные файлы. Желательно также использовать отдельную папку для успешно обработанных исходников или перемещать их после завершения.

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

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

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

VietOCR можно запускать через java -jar VietOCR.jar с входным и выходным файлом. Командный режим полезен для сценариев, планировщика и интеграции с другими инструментами. Основные параметры задают язык через -l, сегментацию через --psm и формат результата. Дополнительные переключатели включают постобработку, исправление регистра, deskew, удаление линий и переносов. Перед автоматизацией команду следует выполнить вручную на одном файле и проверить код возврата и результат.

Поддерживаются текст, hOCR, обычный PDF, text-only PDF, UNLV, box, ALTO, PAGE, TSV, lstmbox и wordstrbox. Эти форматы решают разные задачи. TXT удобен для чтения и поиска, hOCR хранит координаты в HTML-подобной разметке, TSV подходит для анализа таблицей, ALTO и PAGE применяются в цифровых библиотеках, box и LSTM-форматы нужны для обучения и контроля символов. Выбирать сложную разметку без дальнейшего потребителя бессмысленно: она труднее для ручного редактирования, чем обычный текст.

Имена путей с пробелами нужно заключать в кавычки. Выходной каталог должен существовать и быть доступен для записи. Если скрипт запускается из другой рабочей папки, относительные пути могут указывать не туда, куда ожидается. Для устойчивого задания лучше использовать абсолютные пути к JAR, входу, выходу и tessdata. Журнал стандартного вывода и ошибок следует сохранять, особенно при обработке ночью или на сервере.

Командный режим не отменяет требований к Java, нативным библиотекам и языковым данным. Успешный запуск окна не гарантирует, что планировщик видит ту же переменную PATH или TESSDATA_PREFIX. Служебная учётная запись может иметь другой домашний каталог и права. Поэтому автоматизацию проверяют именно под тем пользователем и в том окружении, где она будет работать.

Выбор выходного формата

ФорматДля чего использоватьЧто проверить
TextВычитка, поиск, импорт в текстовый процессорКодировку UTF-8 и переносы абзацев
PDFПоисковая копия сканированного документаПоиск, выделение и порядок страниц
hOCRКоординаты слов и последующая сборка макетаСогласованность размеров страницы
TSVАнализ слов, координат и уверенностиРазделитель и числовые поля
ALTO/PAGEАрхивные и библиотечные процессыСовместимость принимающей системы
Box/LSTM boxПодготовка и проверка обучающих данныхСоответствие символов изображениям

Практические сценарии

Результат OCR рядом с выделенными строками

Книга или подшивка

Для книги сначала оценивают типографику и качество на нескольких страницах. Развороты лучше разделить на отдельные страницы, чтобы порядок строк не перескакивал через корешок. Чистый чёрно-белый текст сканируют около 300 DPI, страницы выравнивают, поля обрезают с запасом. Если макет одноколоночный, выбирают режим единого блока; сноски и номера страниц при необходимости распознают отдельными зонами. После OCR объединяют строки в абзацы, но сохраняют разрывы у заголовков и стихов.

Книгу не стоит вычитывать только по итоговому TXT. Нужно сохранять связь с номерами страниц: отдельные файлы или явные разделители облегчают возврат к оригиналу. При поисковом PDF проверяют выборочное копирование текста в начале, середине и конце. Систематическую ошибку шрифта добавляют в отдельный файл замен, но правило тестируют на главе, а не на всей книге.

Счета, акты и формы

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

Если документы имеют одинаковый шаблон, координаты зон и порядок обработки можно стандартизировать. Однако даже небольшой сдвиг при сканировании способен сместить рамку. Перед серией нужно проверить несколько листов из разных пачек. Для автоматического извлечения полей VietOCR даёт текст и координатные форматы, но правила сопоставления полей с бизнес-системой строятся отдельно.

Снимок экрана и текст из приложения

Скриншот можно открыть файлом или вставить из буфера обмена. Затем включают Screenshot Mode, выделяют только текстовый фрагмент и выбирают язык. Элементы интерфейса, иконки и цветные панели лучше исключить рамкой. Если шрифт сглажен и имеет цветной фон, иногда помогает перевод в градации серого и умеренный контраст. Небольшие подписи распознаются стабильнее после масштабирования режимом снимка, но размытый кадр лучше переснять крупнее.

Многоязычный документ

Для страниц с двумя языками можно использовать комбинированный набор Tesseract, но результат следует сравнить с раздельной обработкой. Смешанный режим удобен, когда языки чередуются внутри абзаца. Если страницы разделены по языку или вставки имеют чёткие границы, отдельный OCR обычно проще контролировать. Особое внимание уделяют похожим символам разных алфавитов: латинская C и кириллическая С визуально одинаковы, но имеют разные коды Unicode.

Как повысить точность

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

  • Используйте PNG или несжатый TIFF для чистых сканов и избегайте повторного JPEG-сжатия.
  • Держите разрешение печатного текста примерно в диапазоне 200–400 DPI, обычно около 300 DPI.
  • Исправляйте поворот и небольшой наклон до распознавания.
  • Выбирайте только языки, реально присутствующие на странице.
  • Ограничивайте область, если макет содержит несколько колонок, рисунки или поля формы.
  • Сравнивайте два подходящих PSM на типичной странице, а не на случайном фрагменте.
  • Проверяйте результат до массового удаления переносов и замен.
  • Сверяйте имена, числа и смысловые подмены с изображением независимо от словаря.

Для оценки полезно подготовить эталонный отрывок, набранный вручную. Сравнение с ним показывает не только субъективное впечатление, но и повторяющиеся подмены. Необязательно вычислять сложную метрику: список десяти наиболее частых ошибок уже подсказывает, нужен ли другой traineddata, очистка линий или пользовательская замена. Эталон должен включать обычный текст, цифры, пунктуацию и характерные буквы языка.

Производительность и большие серии

Время OCR растёт с количеством пикселей, числом языков и сложностью сегментации. Цветной скан 600 DPI обрабатывается заметно тяжелее, чем серый 300 DPI, даже если визуальная точность одинакова. Поэтому перед серией следует выбирать минимальное разрешение, сохраняющее детали. Screenshot Mode и другие операции масштабирования также увеличивают объём данных.

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

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

Ошибки запуска и Java 17

Диалог перезапуска VietOCR после изменения настроек

Если VietOCR не открывается, первым делом проверяют командой java -version, что доступна Java 17 и запускается именно нужная среда. На системе может быть несколько Java, а двойной щелчок и терминал используют разные ассоциации. Запуск через java -jar VietOCR.jar показывает сообщение об ошибке, которое иначе скрывается. Путь к JAR следует заключить в кавычки, если в нём есть пробелы.

Сообщение UnsupportedClassVersionError означает, что программа собрана для более новой Java, чем найденная среда. Решение — установить Java 17 или изменить PATH так, чтобы первой находилась подходящая java. Ошибка Unable to access jarfile указывает на неверный путь или рабочий каталог. Сообщение no main manifest attribute обычно означает повреждённый или не тот JAR.

На Windows нативные компоненты Tesseract могут требовать Microsoft Visual C++ 2015–2022 Redistributable. Если отсутствует VCRUNTIME140.dll или похожая библиотека, нужно установить официальный пакет соответствующей архитектуры, а не скачивать отдельную DLL с постороннего сайта. После установки систему или приложение перезапускают и повторяют тест на одном PNG.

Ошибки Tesseract и языковых данных

Выбор расположения Tesseract в VietOCR

Ошибка Error opening data file или Failed loading language почти всегда связана с tessdata. Проверяют наличие traineddata, точное имя кода, права чтения и путь TESSDATA_PREFIX. Если путь задаётся в настройках VietOCR, он должен вести к ожидаемому каталогу движка. Несколько копий Tesseract усложняют диагностику: командная строка может использовать один набор, а VietOCR — другой.

Пустой результат без явной ошибки бывает при неверном PSM, слишком маленьком тексте, белых буквах на прозрачном фоне или выделении пустой области. Следует отключить выделение, выбрать автоматический PSM, перевести изображение на белый фон и проверить язык. Если тестовый чёрный текст на белом PNG распознаётся, проблема находится в конкретном исходнике, а не в установке.

Набор бессмысленных символов при визуально хорошем скане указывает на неправильный язык или смешение алфавитов. Для кириллицы нужно выбрать соответствующий traineddata, для вьетнамского — vie. Если документ использует редкий исторический шрифт, базовая модель может систематически ошибаться; фильтры не заменят подходящие обученные данные.

Ошибки PDF и Ghostscript

Когда изображения открываются, а PDF нет, проверяют Ghostscript. Общая библиотека должна находиться в системном пути: gsdll64.dll в Windows или libgs.so в Linux. Установка командной утилиты без доступной общей библиотеки может быть недостаточной. После изменения PATH или LD_LIBRARY_PATH VietOCR нужно перезапустить, потому что процесс читает окружение при старте.

Повреждённый PDF, пароль или нестандартная структура также могут мешать растеризации. Файл следует открыть в независимом просмотрщике и сохранить копию, если это допустимо. Для диагностики можно преобразовать несколько страниц в PNG другим доверенным средством и проверить OCR. Если PNG работает, проблема отделена от распознавания.

Чёрные страницы или неверные цвета иногда возникают из-за прозрачностей и цветовых профилей. Преобразование PDF в TIFF или PNG с подходящим разрешением даёт более предсказуемый вход. Однако повторное преобразование не должно снижать качество: следует избегать JPEG внутри цепочки и проверить мелкий текст при 100-процентном масштабе.

Ошибки сканера WIA и SANE

В Windows сначала проверяют, что устройство доступно через системное сканирование WIA. Некоторые драйверы предоставляют только TWAIN, тогда как VietOCR ожидает WIA. Установка универсального драйвера производителя или включение службы Windows Image Acquisition часто решает проблему. Разрядность приложения и драйвера должна быть совместима.

В Linux команда scanimage -L помогает понять, видит ли SANE устройство. Если список пуст, нужно настраивать backend, USB-права или сетевой адрес сканера. Если устройство видно только с правами администратора, постоянный запуск VietOCR с такими правами не является хорошим решением; следует исправить правила доступа. После получения тестового изображения через SANE интеграцию проверяют снова.

Кодировка и сохранение текста

Результат следует сохранять в Unicode, предпочтительно UTF-8. Это особенно важно для вьетнамской диакритики, кириллицы, греческого и смешанных документов. Если другой редактор показывает квадраты или вопросительные знаки, сначала проверяют кодировку открытия, а не повторяют OCR. Символы могли быть сохранены правильно, но интерпретированы как однобайтная кодировка.

При передаче TXT в старую систему нужно заранее согласовать окончания строк и наличие BOM. VietOCR ориентирован на корректный Unicode-текст, а ограничения целевой программы решаются при экспорте или конвертации копии. Оригинальный UTF-8-файл лучше хранить неизменным, чтобы не потерять символы при возврате.

Сравнение VietOCR с аналогами

Прямые аналоги различаются не столько движком — многие используют Tesseract, — сколько рабочим процессом. VietOCR сочетает просмотр изображения, выделение зон, текстовое поле, постобработку, словари, пакетный режим и несколько координатных форматов. Другие решения могут быть сильнее в сканировании, создании PDF/A, сохранении макета или автоматизации. Выбор зависит от того, нужен ли редактируемый текст, поисковый PDF, графический интерфейс или командный конвейер.

ПрограммаЛучше подходит дляГлавное ограничение
VietOCRРаспознавание изображений и PDF с вычиткой рядом с оригиналомНет прямого экспорта в DOCX с сохранением макета
PDF CommanderРедактирование, сборка и повседневная работа с PDFДля глубокого OCR-конвейера меньше специализированных форматов
NAPS2Сканирование, организация страниц и создание поисковых PDFТекстовая вычитка не является центральным рабочим режимом
gImageReaderРучные и автоматические зоны, plain text и hOCRДоступность сборок зависит от операционной системы
OCRmyPDFМассовое добавление текстового слоя и PDF/A в сценарияхОсновная работа выполняется через командную строку
TesseractИнтеграция OCR в собственные скрипты и приложенияНе содержит собственного графического интерфейса

VietOCR стоит выбирать, когда важно видеть страницу и текст одновременно, вручную ограничивать зоны и сразу исправлять результат. NAPS2 удобнее, если задача начинается со сканера и заканчивается организованным поисковым PDF. gImageReader близок по идее и особенно полезен пользователям его поддерживаемых сред. OCRmyPDF лучше вписывается в серверную обработку PDF и архивный конвейер. Чистый Tesseract подходит разработчикам и администраторам, которым оболочка не нужна. PDF Commander рационален, когда после распознавания основной объём работы связан с редактированием и сборкой PDF, а не с настройкой OCR-моделей.

Как выбрать настройки для типичного документа

ИсходникРекомендуемый стартЧто изменить при ошибке
Чистая книжная страница300 DPI, grayscale или B/W, одна колонкаВыделить полосу набора и проверить deskew
Газета в две колонкиАвтоанализ или отдельные зоныРаспознавать колонки по очереди
Форма с линиямиЗоны полей, PSM строки, копия без линийУменьшить удаление линий и проверить цифры
СкриншотScreenshot Mode и узкая областьСнять кадр крупнее, повысить контраст умеренно
Фотография страницыОбрезка, поворот, deskew, grayscaleИсправить перспективу вне программы или делить на зоны
Большой PDFТест трёх страниц, затем частиСнизить разрешение и разделить диапазоны
Смешанные языкиТолько нужные traineddataРазделить области или страницы по языкам

Таблица задаёт отправную точку, а не универсальный профиль. Одинаковые 300 DPI могут означать резкий типографский скан и размытую фотографию. Поэтому каждая новая коллекция должна пройти небольшой тест. Сохранять настройки стоит только после того, как проверены обычная страница, сложная страница и крайний случай.

Контроль качества после OCR

Проверка должна отвечать на три вопроса: все ли страницы обработаны, сохранён ли порядок чтения и насколько точны символы. Сначала сравнивают количество входов и выходов. Затем проверяют структуру на страницах с колонками, сносками и таблицами. Наконец, вычитывают содержимое. Если сразу начать исправлять отдельные буквы, можно не заметить пропущенную страницу или переставленный абзац.

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

Поисковый PDF проверяют не только визуально. Нужно найти фразу, скопировать её, убедиться в правильной последовательности и посмотреть, соответствует ли выделение строкам. Если текстовый слой смещён, поиск может работать, но копирование будет неудобным. Для архивного проекта полезно открыть результат в двух разных просмотрщиках.

Безопасный рабочий регламент

Исходные сканы необходимо хранить отдельно и не перезаписывать фильтрами. Для каждого этапа создают понятные каталоги: original, prepared, ocr_raw и corrected. Имена сохраняют номер страницы или исходного файла. Такой порядок позволяет повторить OCR с другой моделью, не возвращаясь к сканеру, и сравнить результаты.

Настройки и словари также являются частью проекта. Рядом с результатом полезно сохранить код языка, PSM, применённые фильтры, файл DangAmbigs и пользовательский словарь. Для одноразового письма это избыточно, а для сотен страниц предотвращает ситуацию, когда качество невозможно воспроизвести после перерыва.

Автоматический конвейер должен прекращать обработку или помещать файл в отдельную папку при ошибке, а не молча создавать пустой TXT. Минимальная проверка — ненулевой размер результата и наличие ожидаемого числа файлов. Для форм можно дополнительно проверять регулярным выражением дату или номер. Эти проверки не заменяют вычитку, но быстро обнаруживают технический сбой.

Что VietOCR не делает автоматически

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

Постобработка не гарантирует безошибочность. Она исправляет известные шаблоны, тогда как смысловые подмены могут выглядеть грамматически правильно. Юридические документы, медицинские записи, финансовые суммы и цитаты проверяются по оригиналу. Чем выше цена ошибки, тем более формальной должна быть процедура двойной вычитки.

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

Координатные результаты и сохранение структуры

Обычный TXT передаёт символы и переносы, но не знает, где слово находилось на странице. Когда координаты важны, следует выбирать hOCR, TSV, ALTO или PAGE. hOCR хранит блоки и слова в разметке с геометрией; TSV представляет каждую единицу строкой с уровнями страницы, блока, абзаца, строки и слова; ALTO и PAGE описывают макет в XML. Эти данные подходят для поисковых индексов, цифровых библиотек и последующей визуализации, но требуют программной обработки.

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

TSV удобен для диагностики: в нём можно найти слова с низкой уверенностью и направить их на ручную проверку. Однако показатель уверенности не является вероятностью безошибочности. Короткое неверное слово может получить высокий балл, а редкое правильное имя — низкий. Порог используется как фильтр внимания, а окончательное решение принимается по изображению.

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

Таблицы, формулы и декоративная верстка

Таблица представляет для OCR две разные задачи: распознать символы и восстановить отношения между ячейками. VietOCR хорошо помогает с первой, особенно после удаления мешающих линий и обработки зон, но не выдаёт готовую сетку электронной таблицы. Для простой таблицы можно распознавать строки по очереди и разделять значения табуляцией вручную. Для сложной структуры с объединёнными ячейками лучше сохранить исходное изображение и использовать отдельный инструмент извлечения таблиц.

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

Иллюстрации, диаграммы и декоративные рамки могут нарушить порядок чтения. Автоматический PSM иногда связывает подпись с соседним абзацем или вставляет текст с оси графика в середину страницы. Решение — отдельные зоны: основной текст распознаётся первым, подпись — второй, а мелкие метки диаграммы при необходимости обрабатываются отдельно. Порядок добавления результата должен соответствовать логике документа.

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

Буфер обмена и быстрые фрагменты

Вставка изображения из буфера обмена сокращает путь для небольших задач. Пользователь делает снимок области в другой программе, копирует его и вставляет в VietOCR, затем выбирает язык и зону. Этот способ удобен для текста из недоступного для копирования окна, удалённого рабочего стола или отдельной части PDF. Перед OCR полезно убедиться, что буфер содержит именно изображение, а не ссылку или объект другого типа.

Для повторяющихся фрагментов лучше сохранять изображения на диск, а не полагаться только на буфер. Файл даёт имя, дату, возможность повторного OCR и связь с исправленным текстом. Буфер подходит для одноразового извлечения нескольких строк; архивная или исследовательская работа требует воспроизводимого исходника.

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

Поиск и замена без повреждения текста

Массовые исправления следует делить на безопасные и контекстные. Удаление двойных пробелов обычно безопасно, а замена l на 1 — контекстна, потому что оба символа встречаются правильно. Для контекстной операции используют границы слова, соседние цифры или конкретный шаблон. После каждой группы замен сохраняют отдельную копию и просматривают несколько случайных срабатываний.

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

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

Перенос текста в другие программы

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

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

Если конечная цель — поиск по архиву, необязательно создавать единый огромный документ. Отдельные UTF-8-файлы с понятными именами часто индексируются надёжнее и сохраняют связь со страницами. Для публикации или чтения их можно объединить позже. Поисковый PDF, TXT и координатный формат не исключают друг друга: один набор сканов способен иметь несколько производных результатов для разных задач.

Подготовка повторяемого проекта

Для длительной работы полезен небольшой паспорт настроек: тип источника, разрешение, цветовой режим, язык, PSM, операции подготовки, формат выхода и правила постобработки. Он не относится к интерфейсу VietOCR, но позволяет воспроизвести результат и объяснить расхождения между партиями. Паспорт обновляют только после теста, а не в середине серии без отметки.

Контрольный набор из пяти–десяти страниц должен включать обычную полосу, мелкий шрифт, таблицу, иллюстрацию и повреждённый лист. После изменения traineddata, Java, Ghostscript или фильтров этот набор распознают заново и сравнивают. Так техническое улучшение на чистой странице не маскирует ухудшение на сложных.

Структура каталогов должна исключать случайную повторную обработку. Вход Watch, выход текста, ошибки и готовые исходники размещают отдельно. Скрипты не должны удалять оригинал сразу после OCR; перемещение выполняют только после проверки результата. Резервная копия особенно важна для материалов, которые невозможно пересканировать.

Имена файлов лучше строить из стабильного идентификатора и номера страницы, а не из свободного заголовка. Допустимый пример логики — collection_000123_page_004. Такой шаблон сортируется, не зависит от языка интерфейса и связывает изображение с TXT, TSV и PDF. При переименовании нужно обновлять все производные файлы одинаково.

Итоговый порядок работы

  • Сделайте копию исходника и проверьте, открывается ли он без ошибок.
  • Оцените ориентацию, резкость, поля, фон и реальное разрешение текста.
  • Исправьте поворот, небольшой наклон и лишние поля; фильтры применяйте умеренно.
  • Выберите нужный traineddata и подходящий PSM.
  • Для сложного макета создайте область или несколько зон в порядке чтения.
  • Распознайте тестовую страницу и сравните результат с оригиналом.
  • Сохраните сырой текст до массовой постобработки.
  • Уберите лишние переносы только там, где строки образуют абзацы.
  • Примените словарь и проверенные пользовательские замены.
  • Сверьте числа, имена, смысловые слова и структуру страниц вручную.
  • Для серии зафиксируйте настройки, имена и контроль количества файлов.
  • Проверьте итоговый TXT или PDF в независимой программе.

VietOCR наиболее полезен в дисциплинированном процессе, где изображение и текст постоянно сравниваются. Выделение областей, выбор PSM, Screenshot Mode, подготовка изображения, Hunspell, пользовательские замены и пакетные режимы решают разные части задачи; включать их следует по причине, а не все сразу. Когда вход подготовлен, язык выбран правильно, а результат проходит структурную и смысловую проверку, программа позволяет превратить большие коллекции сканов в пригодный для поиска и редактирования материал без ручного перенабора каждой строки.