infonebpress.

Отделяем факты от медийного шума

Колонку ведёт Денис Архипов

Поиск шрифта по картинке: почему нейросети путают похожие буквы

Сервис распознавания шрифта по скриншоту может показать несколько близких вариантов и уверенно поставить один из них на первое место.

Денис Архипов, Аналитик данных и фактчекер·Обновлено: 04 ноября 2026 г.·9 мин

Поиск шрифта по картинке: почему нейросети путают похожие буквы

Это полезная подсказка, но не доказательство: похожие гарнитуры дают похожие визуальные признаки, а JPEG-сжатие и низкое разрешение стирают именно те детали, по которым их можно различить.

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

Что именно ищет нейросеть

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

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

Архитектура Adobe DeepFont, опубликованная в 2015 году, стала одним из ранних заметных примеров такого подхода. В контролируемых условиях базовые академические модели VFR показывали точность попадания в Top-5 свыше 80%. Эта цифра относится к конкретной постановке задачи и подготовленным данным. Она не означает, что любой сервис распознавания шрифта онлайн с такой же точностью определит шрифт в случайном скриншоте из соцсети.

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

Результат поиска шрифта — это ранжированный список визуальных совпадений. Его место в списке само по себе ничего не говорит о происхождении изображения.

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

Почему гротески ставят алгоритмы в тупик

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

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

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

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

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

При проверке можно зафиксировать конкретные контрольные символы:

  • сравнить форму строчной a и g, если они есть в изображении;
  • посмотреть на цифры, особенно на 1, 4 и 7;
  • оценить окончания штрихов и ширину апертур — внутренних просветов у букв вроде c и e;
  • проверить, одинаково ли выглядят повторяющиеся символы в разных частях текста.

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

Сжатие, размытие и кернинг меняют картину

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

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

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

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

Перед тем как определить шрифт по скриншоту, полезно отделить проблему гарнитуры от проблемы изображения:

1. Найти версию с наибольшим разрешением. Лучше работать с исходной публикацией или файлом, а не с копией, пережатой в переписке.

2. Обрезать область с текстом, оставив несколько символов и немного свободного пространства вокруг. Слишком плотная обрезка может срезать части букв.

3. Проверить, не наклонён ли текст и не применено ли перспективное искажение. Если надпись находится на фотографии экрана или документа, её геометрия уже изменена.

4. Сравнить результат на нескольких фрагментах. Повторяющиеся буквы и разные типы символов дают больше материала, чем короткая надпись из однотипных вертикальных штрихов.

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

Слитные буквы и рукописные надписи

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

Особенно трудными бывают соседства, где буквы выступают вверх или вниз относительно строки. У символов b, d, h, k, l и t есть восходящие элементы; у g, j, p, q и y — нисходящие. На тесно набранном или сжатом изображении эти части могут пересекаться с соседними буквами, а разделение на отдельные знаки становится менее надёжным.

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

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

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

Каталог задаёт границы ответа

Крупные сервисы ищут совпадение в собственных коллекциях. Например, база WhatTheFont включает более 400 000 начертаний. Такой размер повышает шанс найти близкий вариант, но не гарантирует, что в каталоге есть точный первоисточник.

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

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

Есть и другая ловушка: похожий внешний вид не обязательно означает тот же шрифт. Гарнитура может быть создана на основе другой, вручную изменена или подменена близким бесплатным аналогом. Кроме того, в изображении могут использоваться Unicode-гомоглифы — символы из разных письменностей, которые выглядят сходно, — либо синтетическая надпись, стилизованная под текст. Визуальное сходство здесь не устанавливает техническую идентичность.

Поэтому фраза «сервис нашёл шрифт» слишком сильна. Точнее сказать: сервис предложил кандидата из своего каталога. Это полезная формулировка для заметки, расследования и внутренней проверки. Она сохраняет границу между тем, что система показала, и тем, что действительно удалось установить.

Ручная проверка: от кандидата к обоснованной версии

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

Рабочая последовательность может быть такой:

1. Сохраняем исходник. Фиксируем исходное изображение и не заменяем его обработанной копией. Если есть возможность скачать файл публикации, сохраняем и его.

2. Запускаем поиск на подходящем фрагменте. Берём участок с несколькими разными буквами. Если сервис позволяет уточнить символы, не подменяем ими всё содержимое: ошибка в распознавании текста способна направить поиск не туда.

3. Собираем несколько кандидатов. Смотрим на весь список, а не только на первую строку. Название в каталоге — стартовая точка для сравнения.

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

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

6. Записываем ограничения. Например: фрагмент мал, изображение сжато, в надписи нет различительных букв, а кириллический состав каталога неизвестен.

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

Шрифтовые сетки, или em-square, обычно задаются как 1000×1000 либо 2048×2048 единиц. Это внутренняя система координат, на которой строятся контуры глифов. Нейросеть, анализирующая сжатую картинку, видит уже не эти исходные координаты, а результат отображения на растровую сетку. Поэтому совпадение растровых силуэтов не всегда позволяет восстановить конкретный исходный файл шрифта.

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

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

Частые вопросы

Что на самом деле показывает сервис распознавания шрифта по картинке?
Сервис выдает ранжированный список визуальных совпадений из доступного каталога. Верхняя строка рейтинга означает лишь наибольшее сходство с образцом, но не устанавливает происхождение изображения или использованный файл шрифта.
Почему алгоритмы путают похожие буквы вроде O и 0 или I и l?
На маленьких или размытых изображениях мелкие детали стираются, и символы превращаются в универсальные геометрические формы. Если текст короткий, у системы не хватает данных для анализа, а ошибка на этапе распознавания отдельных знаков влияет на оценку всей надписи.
Как влияют сжатие и размытие на точность поиска шрифта?
JPEG-сжатие и шум разрушают тонкие штрихи, засечки и ширину апертур. Для нейросети это изменяет набор визуальных признаков, из-за чего она сопоставляет изображение с более общими похожими формами.
Почему результаты поиска по кириллическим надписям менее надежны?
Многие нейросети оптимизированы под латиницу, а точная статистика ошибок для редких кириллических гарнитур ограничена. При недостатке характерных форм алгоритму сложнее сделать точный выбор.
Можно ли использовать найденный шрифт как доказательство подлинности документа?
Нет, визуальное сходство не подтверждает подлинность. Гарнитуру можно заменить бесплатным аналогом, изменить в редакторе или использовать гомоглифы, поэтому поиск шрифта применяется только как вспомогательный признак.