Только печатный текст. Важнее всего выбор языка; при первом запуске скачиваются движок распознавания и его модель, дальше инструмент работает без сети.
Что делает этот инструмент
Перетащите фото документа, скриншот, отсканированную страницу или снимок вывески, и текст из них появится рядом с изображением как обычный выделяемый текст. Доступно двенадцать языков: английский, китайский упрощённый и традиционный, японский, корейский, испанский, французский, немецкий, португальский, русский, итальянский и вьетнамский. Английский всегда распознаётся вместе с выбранным языком, поэтому договор на русском с английскими названиями и цифрами читается как один документ. У каждого изображения свой язык и своё редактируемое поле результата, так что отдельные символы можно поправить перед копированием.
Распознают два движка, выбор зависит от языка. Английский, упрощённый китайский, испанский, французский, немецкий, португальский и итальянский читает PP-OCRv6 от PaddleOCR: одна сеть находит каждую строку текста, вторая читает строки по одной, обе модели вместе занимают 6,3 МБ. Традиционный китайский, японский, корейский, русский и вьетнамский читает Tesseract, потому что в наборе символов этой модели PP-OCR нет каны, хангыля и кириллицы, а многих распространённых традиционных иероглифов не хватает. Оба движка работают в фоновом потоке браузера, скачиваются один раз и потом берутся из кэша. Само изображение не покидает устройство, что важно для паспортов, договоров и медицинских документов.
Как пользоваться
Добавьте, перетащите или вставьте изображения. Под каждым изображением выберите язык текста, это главный фактор точности, и нажмите «Распознать»; при первом запуске ещё загружается движок. Чтобы сравнить, смените язык и нажмите «Распознать» снова. Исправьте результат прямо в поле, затем скопируйте или скачайте его как .txt. Когда изображений два и больше, внизу появляются «Скопировать весь текст» и «Скачать всё одним .txt».
Для английского, упрощённого китайского, испанского, французского, немецкого, португальского и итальянского наведение на строку результата подсвечивает её рамку на изображении, а щелчок по рамке на изображении выделяет эту строку. Строки собираются по наклону страницы, а страница в две колонки читается по колонкам. «Сохранять переносы» повторяет строки оригинала; «Склеить в абзацы» превращает их в сплошной текст для вставки в документ. Если документ пришёл в PDF, сначала пропустите его через PDF в изображения и отправьте страницы сюда одним щелчком. Кривые фото читаются лучше после Поворота изображения и Обрезки изображения.
Частые сложности
OCR читает печатный текст; рукописный, декоративные шрифты и надписи на пёстром фоне выходят мусором, и никакой браузерный инструмент этого не изменит. Точность зависит прежде всего от снимка: заполните кадр страницей, держите её ровно и плоско, снимайте при хорошем равномерном свете, избегайте теней и бликов и не уменьшайте изображение перед перетаскиванием — 12-мегапиксельная фотография листа A4 идеальна, миниатюра в 600 пикселей безнадёжна. Вторая частая причина бессмыслицы — неверный язык: японская страница, прочитанная как китайская, или французская как английская, даёт правдоподобный на вид мусор.
Таблицы превращаются в строки текста без сетки. Числа с небольшим количеством текста вокруг (счета, показания счётчиков) читаются хорошо, но их всегда стоит проверить: 6 и 8 похожи и для машины. При первом использовании на устройстве загружаются движок и языковая модель, поэтому один раз нужен интернет; дальше инструмент работает офлайн. Большие пакеты на телефоне могут обрабатываться медленно, несколько секунд на страницу считается нормой.
Как текст распознаётся
PP-OCR работает в два прохода. Небольшая сеть обнаружения отмечает пиксели, относящиеся к тексту, и каждая отмеченная область превращается в наклонный прямоугольник, поэтому даже фото, снятое на несколько градусов криво, даёт ровные строки. Каждую строку вырезают, масштабируют до высоты 48 пикселей и читают сетью распознавания, которая знает 6905 символов: упрощённый китайский, латиницу с диакритикой, цифры и знаки препинания. Затем строки расставляются в порядке чтения. Ряды строятся по наклону всей страницы, пустой вертикальный промежуток с длинными строками по обе стороны считается границей колонок, а заметно увеличенный по сравнению с обычным межстрочный промежуток становится разрывом абзаца.
Перед сменой движка мы прогнали оба на 28 тестовых изображениях: 13 чисто отрисованных текстов, те же изображения, уменьшенные, повёрнутые на 2,5°, с шумом и сохранённые в JPEG низкого качества, и две полные страницы A4. На китайском средняя доля ошибок в символах снизилась с 18,6 % у Tesseract до 1,3 % у PP-OCR, а на «фотоподобных» вариантах с 22,2 % до 2,0 %. Белый заголовок на оранжевом градиенте Tesseract вернул пустым, а PP-OCR прочитал полностью верно. Чистый английский, французский, немецкий и испанский оба прочитали почти без ошибок. На нашей тестовой машине в однопоточном WebAssembly скриншот распознаётся за 0,3–0,7 секунды, плотная страница A4 за 6–8 секунд. Tesseract, который по-прежнему читает остальные пять языков, это LSTM-сеть, обученная отдельно для каждого языка; модели взяты из набора tessdata_best и квантованы до 8-битных целых, а перед чтением изображение переводится в оттенки серого и увеличивается примерно до 2000 пикселей.
Когда это нужно
Скопировать абзац со скриншота, который вам прислали. Превратить сфотографированную доску, слайд или страницу книги в заметки. Достать текст из отсканированного письма или старого PDF, состоящего из одних картинок. Вытащить адрес, номер заказа или серийный номер со снимка. Оцифровать чеки и счета для бухгалтерии. Прочитать меню, вывеску или этикетку на чужом письме, чтобы вставить текст в переводчик.
Цепочка на этом сайте такая: при необходимости повернуть и обрезать снимок, распознать текст здесь, а для PDF сначала пройти через PDF в изображения. Документ, собранный из фотографий, можно затем сложить через изображения в PDF, когда текст уже проверен.
Частые вопросы
Загружаются ли мои изображения на сервер?
Нет. Распознавание идёт в браузере, в зависимости от языка с помощью PP-OCR или Tesseract, оба скомпилированы в WebAssembly. Изображение не покидает устройство. Движок и модель скачиваются один раз и кэшируются, после этого инструмент работает без сети.
Какие языки поддерживаются?
Русский, английский, упрощённый и традиционный китайский, японский, корейский, испанский, французский, немецкий, португальский, итальянский и вьетнамский. Азиатские языки можно сочетать с английским за один проход.
Читает ли он рукописный текст?
Нет — только печатный. Рукописный текст, декоративные шрифты и надписи поверх пёстрого фона надёжно не читает ни этот инструмент, ни любой другой браузерный OCR.
Как повысить точность?
Выберите правильный язык, снимайте резко, при ровном свете, без перекоса и в полном разрешении, и обрежьте кадр по тексту. Мелкие и размытые изображения увеличиваются автоматически, но резкости им это не добавит.
Можно ли распознать PDF?
Переведите его страницы инструментом «PDF в изображения» и отправьте их сюда: каждая страница станет отдельным блоком текста, доступным для правки.