belun.app Блог

Распознать текст с картинки онлайн — бесплатный OCR

Нажмите, чтобы выбрать изображение — или перетащите его сюда, или нажмите Ctrl+V

JPG, PNG, WebP, GIF, BMP, AVIF · до 25 страниц за раз · распознаётся в браузере, не загружается на сервер

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

Какой точности ждать

Точность по символам почти целиком зависит от того, сколько пикселей приходится на букву и насколько чисто она отделяется от фона. Вот диапазоны, в которые обычно попадает движок LSTM Tesseract, и во что каждый из них обходится при вычитке.

Источник Обычная точность Что это значит на практике
Скан печатной страницы, 300 dpi 98–99% Ошибка раз в две-три строки
Резкое фото книги, ровно и при свете 95–98% Несколько слов на абзац надо глянуть
Скриншот при масштабе 2× или на retina-экране 95–99% Обычно чисто, слабое место — пунктуация
Скриншот интерфейса с кеглем 11 px при 100% 70–90% Лечится увеличением или повторным снимком
Выцветший чек на термобумаге 60–85% Суммы и даты приходится проверять вручную
Снимок под углом или в тени 50–80% Проще переснять страницу фронтально
Рукописный курсив почти ноль Модель на этом не обучалась

Какую вёрстку выбрать

Эта настройка — режим сегментации страницы Tesseract, и именно она меняет результат сильнее всего. «Автоматически» запускает полный анализ вёрстки: для документа это правильно, а для скриншота с шестью словами — нет. Там Tesseract ищет колонки, которых не существует, и выбрасывает текст.

Вариант PSM Tesseract Для чего
Автоматически 3 Книжные страницы, письма, статьи — всё страничное
Разреженный текст 11 Скриншоты приложений, окна ошибок, вывески, мемы
Один блок 6 Обрезанный абзац, цитата, фрагмент кода
Одна колонка 4 Чеки, счета, узкая колонка с разным кеглем
Одна строка 7 Серийный номер, автомобильный номер, заголовок

Если результат неверный

  • Не вернулось вообще ничего. Переключите вёрстку на «Разреженный текст». В автоматическом режиме Tesseract может решить, что весь скриншот — это картинка, и вернуть пустую строку.
  • Буквы верные, а диакритики нет. Загружен не тот язык. В английских traineddata нет модели для ä, ş или я, поэтому движок подставляет ближайшую знакомую латинскую форму.
  • Случайная пунктуация между буквами. Это артефакты JPEG по краям глифов. Включите «Поднять контраст», а если оригинал ещё под рукой — сохраните его в PNG вместо повторного пересжатия в JPEG.
  • Скриншот из тёмной темы не читается. Включите инверсию. Инструмент пытается угадать это по первой картинке, но угадывает только один раз.
  • 0 и O, 1 и l перепутаны. В многих шрифтах без засечек эти пары выглядят одинаково, и без словарного слова рядом модели не на что опереться. Серийные номера и коды проверяйте всегда.
  • Колонки перемешались. Обрежьте страницу по одной колонке и распознайте их по отдельности. Анализ вёрстки в две колонки ломается, когда средник узкий или текст с перекосом.

Как это работает

  1. 1
    Добавьте изображение Нажмите на область загрузки, перетащите файлы или просто нажмите Ctrl+V, чтобы вставить скриншот из буфера обмена. Подойдут JPG, PNG, WebP, GIF, BMP и AVIF, за один раз можно поставить в очередь до 25 страниц.
  2. 2
    Выберите язык Нужен язык текста на картинке, а не язык интерфейса — именно под него загружается модель распознавания. Если на странице два языка, добавьте второй: русский документ с английскими названиями читается заметно лучше как rus+eng.
  3. 3
    Укажите вёрстку Для обычной страницы оставьте «Автоматически». Для скриншотов, интерфейсов и подписей, разбросанных по картинке, выберите «Разреженный текст», для одной строки крупного шрифта — «Одна строка», для узкой колонки — «Одна колонка».
  4. 4
    Распознайте и причешите Нажмите «Распознать текст» и дождитесь полосы прогресса. Когда всё готово, переключатель «Склеить перенесённые строки» соберёт построчный вывод в абзацы — после этого скопируйте результат или скачайте файлом .txt.

Изображения остаются на вашем компьютере

Фотография декодируется и распознаётся внутри этой вкладки — она не загружается на сервер, и удалять у нас нечего. Честная оговорка: при первом запуске браузер скачивает с CDN jsDelivr сам движок (примерно 3 МБ WebAssembly) и языковые данные (5–15 МБ на язык), а дальше берёт их из кэша. То есть первое распознавание требует интернета, после этого инструмент работает и без сети. Сами изображения и текст в запросы не попадают никогда.

Часто задаваемые вопросы

Моё изображение куда-нибудь загружается?
Нет. Файл декодирует ваш браузер, а читает его Tesseract, собранный в WebAssembly и работающий в отдельном потоке этой вкладки. Запроса на загрузку нет, временной копии на сервере нет, удалять потом тоже нечего. Единственный сетевой трафик — разовая загрузка движка и языковых данных с jsDelivr: это публичные статические файлы, и о вашей картинке они ничего не сообщают.
Насколько точно работает OCR в браузере?
На чистом скане печатного текста в 300 dpi движок LSTM Tesseract даёт около 98–99% верных символов — это одна ошибка на две-три строки. Резкая фотография книжной страницы с телефона обычно 95–98%. Снимок под углом при слабом свете или скриншот интерфейса с кеглем 11 px может провалиться ниже 85%, а это уже тот случай, когда правка выходит дольше, чем перепечатать вручную. После каждого запуска инструмент показывает среднюю уверенность, так что вы знаете, с чем имеете дело, до того как начнёте доверять тексту.
Распознаёт ли он рукописный текст?
Нет, на это рассчитывать не стоит. Tesseract обучался на печатных шрифтах, и в стандартных файлах traineddata модели рукописного ввода просто нет. Очень аккуратные печатные заглавные иногда проходят; обычный курсив возвращается шумом. Если нужен рукописный текст, придётся идти в облачный сервис, обученный на нём, — а это значит загрузить изображение, то есть ровно то, чего этот инструмент и позволяет избежать.
Почему из скриншота получается бессмыслица?
Почти всегда потому, что текст слишком мелкий в пикселях. Tesseract рассчитывает на заглавную букву высотой около 30 px, а скриншот веб-страницы при масштабе 100% даёт ему примерно 11. Инструмент уже увеличивает всё, у чего короткая сторона меньше 1400 px, и это решает большую часть проблемы — но лучший результат даёт скриншот, снятый при масштабе браузера 200% или на экране с высокой плотностью точек. Ещё два приёма: переключите вёрстку на «Разреженный текст» и включите инверсию, если текст светлый на тёмном.
Почему после каждой строки стоит перенос?
Потому что OCR именно это и видит: по строке текста на каждую строку страницы, без всякого понимания, какие переносы поставил автор, а какие просто пришлись на правое поле. Включите «Склеить перенесённые строки». Строка приклеивается к следующей, если она не кончилась точкой, двоеточием или закрывающей кавычкой и если следующая не начинается с маркера или номера, — так абзацы снова текут, а списки сохраняют вид. Вторую половину задачи решает «Убрать переносы»: слово, разорванное как «распозна-» / «вание», собирается обратно.
Можно ли распознать PDF?
Напрямую нет — инструмент принимает изображения. Для сканированного PDF сначала отрендерите страницы в PNG и перетащите их сюда: за раз помещается 25 штук, и на выходе получится один текстовый файл с заголовком на каждую страницу. Если же в PDF уже есть текстовый слой (а он есть почти во всём, что вышло из Word, браузера или бухгалтерской программы), OCR вообще не нужен: выделите текст и скопируйте или воспользуйтесь извлечением текста из PDF — это и точнее, и мгновенно.
Какие языки он понимает?
Тридцать четыре, среди них русский, украинский, английский, немецкий, французский, испанский, итальянский, португальский, польский, чешский, турецкий, греческий, арабский, иврит, хинди, тайский, вьетнамский, китайский (упрощённый), японский и корейский. Любые два можно включить одновременно. Но за совмещение приходится платить точностью по каждому: у модели на каждом символе больше вариантов выбора, — поэтому второй язык стоит добавлять только если на странице действительно два.
Есть ли ограничение на число страниц или размер файла?
25 изображений за один проход, и это ограничение по памяти, а не по вашему аккаунту: каждая страница хранится во вкладке как декодированные пиксели. Суточной квоты нет, ограничения на размер файла — тоже, кроме того, что способен декодировать браузер. Всё, что больше 3500 px по длинной стороне, перед распознаванием уменьшается до этого размера: дальше Tesseract только замедляется, точнее не становится.
Что означает цифра уверенности?
Это собственная средняя уверенность Tesseract по словам страницы, от 0 до 100, взвешенная здесь по объёму полученного текста. Выше 88 результат обычно можно брать, пробежав глазами. От 75 до 88 проверяйте в первую очередь цифры и имена собственные: именно там модели меньше всего помогает языковой контекст, так что сумма в счёте или фамилия ошибаются гораздо чаще обычного слова. Ниже 75 считайте результат черновиком и перечитывайте каждую строку.
Сохраняется ли структура таблицы?
Частично. Сохранение пробелов между словами включено, поэтому колонки чека или простой таблицы в выводе обычно остаются визуально выровненными и видно, где были строки. Чего не будет — настоящей таблицы: ни ячеек, ни табуляции, ни CSV. Tesseract умеет отдавать разметку hOCR с рамками каждого слова, но превратить её обратно в строки и столбцы — отдельная задача, которую ни один бесплатный инструмент толком не решает.

Из блога

Почему OCR выдаёт мусор и как это исправить Разрешение, контраст и режим сегментации страницы — три настройки, от которых зависит, получите вы чистый текст или шум. Читать статью →

Похожие инструменты