Как я могу проверить, является ли JPEG фото (или, скорее, логотип) - PullRequest
2 голосов
/ 26 июля 2011

Я извлекаю все изображения из заданных файлов PDF (содержащих обзоры недвижимости), используя инструмент pdfimages в качестве jpegs. Теперь я хочу автоматически различать фотографии и другие картинки, например логотип брокера. Как мне это сделать?

  • Существует ли открытый инструмент, который может различать фотографии и рисунки / рисунки линий и т. Д., Как это делает поиск изображений в Google?
  • Есть ли открытый инструмент, который дает мне количество цветов, используемых для данного JPEG?

Я знаю, что это будет нести определенную неопределенность, но это нормально.

Ответы [ 3 ]

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

Вы можете решить вашу проблему в два этапа: (1) извлечь некоторую информацию из изображения и (2) обучить классификатор, который может различать два типа изображений:

1 - Извлечение функции

На этом шаге вам нужно написать программу / функцию, которая принимает изображение в качестве входных данных и возвращает числовой вектор для описания его визуальной информации.Как указывает Коан в своем ответе, распределение цвета содержит много полезной информации.Поэтому я бы попробовал следующие меры: * Гистограмма каждого цветового канала (красный, зеленый, синий), так как это базовое описание цветового распределения изображения;* Среднее значение, стандартное отклонение и другие статистические моменты каждой гистограммы.Это должно дать вам информацию о том, как цвета распределяются на изображении.Для рисунка, такого как логотип, распределение цвета должно значительно отличаться от фотографии;* Дескрипторы Фурье .На рисунке вы, вероятно, найдете много граней, тогда как на фотографии этого не ожидается.С помощью дескрипторов Фурье вы можете получить такую ​​информацию.

2 - Классификация

На этом шаге вы обучите некоторый классификатор.В основном, получите набор изображений и пометьте каждое из них вручную как рисунок или фотографию.Кроме того, используйте функцию извлечения, написанную на шаге 1, для извлечения векторов из каждого изображения.Это будет ваш тренировочный набор .Учебный комплект будет использоваться в качестве входных данных для обучения классификатора.Как прокомментировал Нейл Н, нейронная сеть может быть излишней (или, может быть, нет?), Но вы можете использовать множество классификаторов (например, k-NN , SVM , деревья решений ).Вам не нужно реализовывать классификатор самостоятельно, поскольку вы можете использовать программное обеспечение для машинного обучения, такое как Weka .

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

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

Я бы посмотрел на распределение цвета.В случае градиентов цвета, вероятно, будут плотно упакованы или «слишком» равномерно распределены.В качестве альтернативы вы можете посмотреть распределение частот изображения.

0 голосов
/ 20 июня 2013

Более простое решение - автоматически отправить изображение в Google Поиск изображений с включенным параметром "похожие изображения", и посмотреть, отправляет ли Google в первую очередь PNG результаты или JPEG результаты.

...