Классификация изображений - обнаружение изображения похоже на мультфильм

1068
quack quixote

У меня есть большое количество миниатюрных изображений в формате jpeg размером от 120x90 до 320x240, и я хотел бы классифицировать их как реальные или как мультфильм.

Есть ли приложения, которые будут иметь возможности классификации мультфильмов?

Это приложение должно работать в Linux и должно брать путь к изображению в командной строке и возвращать 0 или 1 (echo $?).

4
Что именно вы после? Программа, которая позволит вам помечать изображения вручную, или программа, которая автоматически помечает картинки как мультфильмы или в реальной жизни? Кроме того, какая операционная система? Josh Hunt 14 лет назад 2
Я отредактировал свое представление, чтобы включить ответы на ваши вопросы. 14 лет назад 0
Я думаю, что вы должны быть более конкретными о том, что вы подразумеваете под "мультфильм как". Если это линейные рисунки со сплошной заливкой, это очень просто. Если они содержат затенение, становится намного сложнее. rjmunro 13 лет назад 0

2 ответа на вопрос

1
DaveParillo

Я думаю, что вы могли бы сделать что-то подобное с Imagemagick . Он имеет функции квантования изображения и анализа гистограмм, которые вам, вероятно, понадобятся для реальной обработки.

Самое простое, что нужно сделать, - это подсчитать количество уникальных цветов на каждой картинке - в мультфильмах должно быть меньше фотографий. Это может работать как есть, если ваше пространство поиска довольно простое. то есть дифференцируя простые мультфильмы, формируйте цветные фотографии. Если у вас есть «модные» мультфильмы, возможно, вам придется добавить дополнительные проверки. Я добавил дополнительное эхо для цветового пространства RGB против серого перед проверкой каждого изображения.

Более сложный тест может включать проверку гистограммы, как общей, так и в RGB-пространстве каждого изображения.

#!/bin/bash  for i in `ls *.jpg` do echo "$i is `convert $i -format \"%[colorspace]\" info:`" x=`convert $i -unique-colors txt:- | wc -l`  if [ $x -le 512 ]; then echo "$i is cartoon like ($x)" elif [ $x -le 1024 ]; then echo "$i is a bw photo ($x)" else echo "$i is real life-like ($x)" fi done 

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

"в мультфильмах должно быть меньше фотографий" ... не всегда так, подумайте о цветовых градиентах. я попытался бы использовать edge-Detecor (Google Sobel, Laplace и т. д.) .. и затем использовать эту информацию, чтобы решить, является ли это мультфильм или нет. на реальных фотографиях, как правило, гораздо больше шума в таких «крайних изображениях» http://en.wikipedia.org/wiki/Sobel_operator akira 14 лет назад 1
Я согласен, именно поэтому я предвосхитил это «самой простой вещью». Не имея информации о том, на что были похожи эти мультфильмы, я выбрал самое простое, что могло бы сработать. DaveParillo 14 лет назад 0
Эта тема специально обсуждается на веб-сайте imagemagick: http://www.imagemagick.org/Usage/compare/#animation. Описан план решения, но не конкретный пример. Может быть, я напишу одну сегодня вечером ... DaveParillo 14 лет назад 0
0
david

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

Вы можете пойти в школу и использовать ЧЕЛОВЕЧЕСКИЕ ВЫЧИСЛЕНИЯ .

Похожие вопросы