Bildklassifizierung - Das Erkennen eines Bildes ist wie ein Cartoon

1409
quack quixote

Ich habe eine große Anzahl von JPEG-Miniaturbildern in der Größe von 120x90 bis 320x240, und ich möchte sie entweder als reales Leben oder als Cartoon klassifizieren.

Gibt es Anwendungen, die über Cartoon-Klassifizierungsfunktionen verfügen?

Diese Anwendung sollte unter Linux funktionieren und einen Imagepfad in der Befehlszeile annehmen und entweder 0 oder 1 (echo $?) Zurückgeben.

4
Was genau willst du? Ein Programm, mit dem Sie Bilder manuell markieren können, oder ein Programm, das Bilder automatisch als Karikatur oder reales Tag kennzeichnet? Welches Betriebssystem? Josh Hunt vor 15 Jahren 2
Ich habe meinen Beitrag so bearbeitet, dass er Antworten auf Ihre Fragen enthält. vor 15 Jahren 0
Ich denke, Sie müssen genauer spezifizieren, was Sie mit "Cartoon like" meinen. Wenn es sich um Strichzeichnungen mit ausgefüllten Füllungen handelt, ist dies sehr einfach. Wenn sie Schattierungen enthalten, wird es viel schwieriger. rjmunro vor 13 Jahren 0

2 Antworten auf die Frage

1
DaveParillo

Ich denke, man könnte so etwas mit Imagemagick machen . Es verfügt über Funktionen zur Bildquantisierung und Histogrammanalyse, die Sie wahrscheinlich benötigen, um eine echte Behandlung zu erhalten.

Am einfachsten ist es, die Anzahl der einzigartigen Farben in jedem Bild zu zählen - Karikaturen sollten im Allgemeinen weniger als Fotos enthalten. Dies kann so funktionieren, wenn Ihr Suchraum recht einfach ist. dh die Unterscheidung einfacher Cartoons bildet Farbfotos. Wenn Sie "ausgefallene" Cartoons haben, müssen Sie möglicherweise zusätzliche Schecks hinzufügen. Ich habe vor dem Überprüfen jedes Bildes ein zusätzliches Echo für den Farbraum RGB vs. Grau hinzugefügt.

Bei einem anspruchsvolleren Test kann das Histogramm entweder insgesamt oder im RGB-Bereich jedes Bildes überprüft werden.

#!/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 

Die Hauptkomplikation besteht darin, komplexe Computeranimationen von Schwarzweißfotos zu trennen. Ein Schwarzweiß-Foto kann relativ wenige eindeutige Farben enthalten, während ein hochentwickelter Wagen aufgrund von computergestützter Schattierung Tausende von Bildern aufweisen kann. Möglicherweise müssen Sie mit den Schwellenwerten für 'X' experimentieren, je nachdem, wie Ihre Bilder aussehen.

"Cartoons sollten im Allgemeinen weniger als Fotos haben" .. nicht immer wahr, denken Sie an Farbverläufe. Ich würde versuchen, einen Edge-Detecor (Google Sobel, Laplace usw.) zu verwenden .. und dann diese Informationen verwenden, um zu entscheiden, ob es sich um einen Cartoon handelt oder nicht. Bilder aus dem echten Leben neigen dazu, in solchen "Randbildern" viel mehr Rauschen zu sehen http://de.wikipedia.org/wiki/Sobel_operator akira vor 15 Jahren 1
Ich stimme zu, deshalb habe ich es mit "der einfachsten Sache" begonnen. Da ich keine Informationen darüber hatte, wie diese Cartoons waren, ging ich mit der einfachsten Sache, die gerade funktionieren könnte. DaveParillo vor 15 Jahren 0
Dieses Thema wird speziell auf der imagemagick-Website behandelt: http://www.imagemagick.org/Usage/compare/#animation. Eine Übersicht über eine Lösung wird beschrieben, jedoch kein konkretes Beispiel. Vielleicht schreibe ich heute Abend eine ... DaveParillo vor 15 Jahren 0
0
david

Vorausgesetzt, Sie haben Bilder, die Sie Schulkindern zeigen können, und es gibt viele Cartoons.

Sie können zu einer Schule gehen und MENSCHEN-COMPUTING verwenden .