Текст с картинки вытаскивают одним из трёх способов: встроенным средством системы, отдельной программой распознавания или онлайн-сервисом. Для снимка экрана и одной страницы хватает встроенных возможностей: в свежих версиях Windows инструмент для снимков экрана умеет выделять текст прямо на картинке и копировать его в буфер обмена, а системное приложение для просмотра фотографий подсвечивает текст на любом открытом изображении. Для пачки сканов и многостраничных документов нужна полноценная программа распознавания. Качество результата при этом определяется не программой, а исходной картинкой: кривой снимок при слабом свете не распознает ни одно средство.
Что уже есть в системе и как этим пользоваться
Начинать стоит с того, за что не нужно платить и что не нужно ставить.
Снимок экрана. Штатный инструмент для вырезания фрагмента экрана вызывается сочетанием клавиш и в свежих сборках системы имеет режим работы с текстом: после захвата картинки появляется кнопка с распознаванием, текст на изображении выделяется как обычный, его можно скопировать целиком или частями. Пункт этот за последние годы переезжал и менялся в названии, поэтому ищите по смыслу: значок со строчками текста или подпись про действия с текстом в панели инструментов поверх снимка.
Просмотр изображений. Системное приложение для фотографий тоже умеет находить текст на открытом файле. Откройте картинку, поищите в верхней панели кнопку, отвечающую за текст, и после её нажатия текст станет выделяемым.
Ввод рукописного и печатного текста через камеру. Если исходник существует только на бумаге, а сканера нет, снимок с телефона, переброшенный на компьютер, распознаётся теми же средствами.
Этих способов достаточно для типовой задачи: перенести абзац из скриншота в документ, вытащить номер и адрес с фотографии квитанции, скопировать код ошибки, который иначе пришлось бы перепечатывать вручную.
Когда встроенного мало и нужна отдельная программа
Отдельное средство распознавания оправдано в трёх случаях.
Первый - много страниц. Встроенные инструменты работают с одной картинкой за раз, а программа распознавания обрабатывает пачку файлов или многостраничный документ целиком и складывает результат в один файл.
Второй - нужна вёрстка. Если требуется не просто текст, а документ, где сохранены колонки, заголовки, списки и таблицы, специализированная программа справится, а встроенное средство отдаст сплошной поток строк.
Третий - нужен документ с текстовым слоем. Отсканированный документ - это картинка внутри файла, и по нему не работает поиск. Программы распознавания умеют добавлять невидимый текстовый слой поверх изображения: внешне страница выглядит как скан, но по ней ищется и из неё копируется. Для домашнего архива договоров и квитанций это самое полезное свойство.
Выбирать программу мы советуем по функциям, а не по обещаниям: поддержка нужных языков, пакетная обработка, сохранение в текстовый и в табличный формат, наличие ручной правки распознанного прямо в интерфейсе.
Как снять картинку, чтобы распознавание сработало
Это самая недооценённая часть работы. Разница между плохим и хорошим исходником даёт больший прирост точности, чем смена программы.
Что важно при съёмке или сканировании:
- Свет ровный и рассеянный. Прямая лампа сбоку даёт блики и тень от собственной руки, а по бликам текст не читается вовсе.
- Лист целиком в кадре и параллельно камере. Снятая под углом страница превращается в трапецию, и строки уезжают. Держите телефон ровно над листом, а не наискосок.
- Резкость. Нажали, дождались фокуса, потом снимали. Смазанный кадр не спасает никакая обработка.
- Разрешение достаточное, но без фанатизма. Для печатного текста обычного размера хватает сканирования в 300 точек на дюйм; больше редко даёт прирост точности, а вес файла растёт.
- Фон контрастный. Белый лист на белом столе распознаётся хуже, чем тот же лист на тёмной поверхности: границы страницы определяются увереннее.
Отдельно про сканер. Крышку прижимаем, страницу разглаживаем. Изогнутый разворот книги у корешка даёт искажение строк, и его лучше исправить сразу, прижав разворот, чем потом воевать с результатом.
Подготовка картинки перед распознаванием
Если исходник уже есть и переснять его нельзя, картинку стоит немного привести в порядок. Штатный редактор изображений в системе умеет всё, что нужно.
Обрежьте лишнее. Всё, что не текст - стол, пальцы, соседние страницы, - только сбивает разбиение на области.
Поверните ровно. Даже небольшой наклон в пару градусов заметно роняет точность, потому что распознавание ищет горизонтальные строки. В редакторе есть выравнивание с сеткой, по ней и ровняйте.
Поднимите контраст. Серый текст на сером фоне превращается в кашу, а после увеличения контраста и небольшого осветления фона становится читаемым. Не переусердствуйте: слишком сильный контраст съедает тонкие элементы букв.
Переведите в оттенки серого. Цвет распознаванию не помогает, а шум от цветной матрицы мешает.
Не увеличивайте маленькую картинку в надежде на чудо. Растягивание не добавляет деталей, оно их только размывает. Если текст на исходнике занимает несколько пикселей в высоту, распознать его не получится ничем.
Языки и смешанный текст
Точность сильно зависит от того, какой язык указан перед началом работы. Средство распознавания подбирает словарь и набор символов, и если ему сказали, что текст на одном языке, а он на другом, результат будет выглядеть как случайный набор букв.
Три типичные ситуации:
- Текст полностью на одном языке. Просто выберите нужный, и всё.
- Текст смешанный: русские предложения с латинскими терминами, адресами и обозначениями. Указывайте оба языка сразу, если средство это позволяет. Иначе латиница будет заменена на похожие по начертанию кириллические буквы, и получится текст, который выглядит правильно, но не ищется и не открывается по ссылке.
- Текст с большим количеством цифр: счета, накладные, таблицы показаний. Здесь стоит проверять результат особенно внимательно, потому что путаница между нулём и буквой «О», единицей и буквой «l», пятёркой и буквой «S» - самая частая ошибка из всех, а на числах она особенно опасна: опечатка в сумме не бросается в глаза при беглом чтении.
Таблицы, колонки и сложная вёрстка
Простой сплошной текст распознаётся почти без ошибок. Всё остальное требует внимания.
Таблицы - главная проблема. Средство должно понять, где границы ячеек, и часто ошибается: объединённые ячейки разбивает, пустые пропускает, из-за чего строки сдвигаются на столбец. Проверять таблицу после распознавания нужно построчно, сверяя хотя бы первую и последнюю колонку. Если таблица без линий разграфки, шансы на аккуратный результат заметно ниже: линии - главная подсказка для разбора структуры.
Две и три колонки на странице. Хорошая программа определит колонки и прочитает их по очереди, слабое средство склеит строки левой и правой колонки в одну фразу. Признак такой ошибки узнаваем: предложения обрываются на середине и продолжаются чем-то не связанным. Лечится разрезанием страницы на отдельные картинки по колонкам перед распознаванием.
Колонтитулы, номера страниц и подписи под картинками врезаются в основной текст в самых неудобных местах. При пакетной обработке большого документа это заметная часть работы по вычитке.
Куда сохранять и как вычитывать результат
Формат сохранения выбирайте под задачу, а не по привычке.
| Что нужно | В каком виде сохранять |
|---|---|
| Быстро перенести абзац | Прямо в буфер обмена |
| Отредактировать текст | Текстовый документ с сохранением вёрстки |
| Найти нужное в архиве сканов | Документ для чтения с текстовым слоем |
| Таблица с числами | Табличный формат для дальнейших расчётов |
| Только сам текст, без оформления | Простой текстовый файл |
Вычитывать результат нужно всегда, и делать это лучше не подряд, а по проверочным точкам: числа, имена собственные, адреса, единицы измерения, знаки переноса. Особенно коварны переносы: слово, разорванное между строками, часто распознаётся как два слова с дефисом посередине, и по такому тексту потом не работает поиск.
Полезный приём - прочитать распознанный текст вслух или включить озвучивание. Ошибки, которые глаз пропускает, на слух вылезают мгновенно.
Рукописный текст, старые документы и пределы возможного
Рукописный текст распознаётся значительно хуже печатного, и это ограничение принципиальное, а не вопрос выбора программы. Аккуратные печатные буквы в бланке ещё имеют шансы, связный почерк - редко. Если результат нужен точный, руками перепечатать обычно быстрее, чем править распознанное.
Старые документы с ятями, дореформенной орфографией, выцветшими чернилами и пятнами - отдельная и трудная задача. Тут помогает подготовка картинки: перевод в чёрно-белый с подбором порога, удаление фона, ручное выравнивание.
Печати, штампы и подписи поверх текста портят распознавание сильно. Если под печатью есть нужные слова, их придётся вводить руками.
Что не стоит загружать в онлайн-сервисы
Онлайн-распознавание удобно: ничего не нужно ставить, работает с любой машины. Но загруженная картинка уходит на чужой сервер, и что с ней там будет дальше, вы не контролируете.
Мы советуем держаться простого правила: паспорта, банковские карты, договоры с персональными данными, медицинские документы, платёжные квитанции с реквизитами - только локально, встроенными средствами или программой на своём компьютере. Скриншот с ошибкой, страница учебника, объявление, фотография меню - что угодно из этого можно распознавать где угодно.
Отдельно стоит проверять условия сервиса на предмет того, сколько он хранит загруженное. Бесплатные сервисы нередко оставляют файлы у себя на неопределённый срок, и удалить их потом невозможно.