Как отличить фотографию от текстового изображения - PullRequest
2 голосов
/ 29 июля 2011

Я пишу программу распознавания OCR.Он отлично работает с отсканированными текстами, однако есть две проблемы:

  1. Он дает ложные срабатывания на фотографиях (некоторые случайные тексты, такие как "bkigopes")
  2. Работает довольно медленно

Цель состоит в том, чтобы найти все изображения с текстом и извлечь этот текст.Итак, учитывая упомянутые проблемы, мне нужно быстро отказаться от фотографий.Я надеюсь, что есть некоторый математический (статистический) метод, такой как вычисление некоторых медианных чисел, который может легко определить цветное изображение без какой-либо очевидной структуры, как у отсканированного текста.

Такой метод / формулу не следует обманывать специальными изображениями, например текстом со скриншотами или страницами журнала с большим количеством текста и изображений внутри.Также не следует отбрасывать цветной текст (например, красный на желтом).

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

Ответы [ 3 ]

1 голос
/ 29 июля 2011

У меня нет предварительных знаний / опыта в этой области , но в качестве полного предположения:

Будет ли работать расчет энтропии?

Если что-то имеет высокую энтропию, то это может быть изображение; если низкий, это может быть что-то более похожее на текст.

Надеюсь, это немного поможет ...

0 голосов
/ 29 июля 2011

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

Теперь для фото теста. Подобно энтропийному подходу @ Mehrdad, вы можете попробовать сжатие для такой задачи. Различные алгоритмы сжатия работают по-разному, но алгоритм сжатия без потерь в стиле Лемпеля-Зива-Уэлча или эквивалентный алгоритм сжатия должен сжимать изображения текста больше, чем фотографии. Измерение разницы в размерах между несжатой и сжатой версиями позволило бы точно оценить энтропию. В конце концов, энтропия - это мера наилучшего сжатия без потерь. Немного эмпирической работы это может обеспечить достаточно надежный метод классификации.

0 голосов
/ 29 июля 2011

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

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

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

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

...