Die Bildklassifizierung ist die Aufgabe , einem bestimmten Bild eine von zuvor bekannten Beschriftungen zuzuweisen. Zum Beispiel wissen Sie, dass Sie ein paar Fotos erhalten und jedes einzelne Bild genau eines von . Der Algorithmus sollte sagen, was das Foto zeigt.
Der Benchmark-Datensatz für die Bildklassifizierung ist ImageNet . Insbesondere Ihre groß angelegte Herausforderung zur visuellen Erkennung (LSVRC) . Es hat genau 1000 Klassen und eine riesige Menge an Trainingsdaten (ich denke, es gibt eine heruntergesampelte Version mit etwa 250 x 250 Pixel großen Bildern, aber viele Bilder scheinen von Flicker zu stammen).
Diese Herausforderung wird normalerweise mit CNNs (oder anderen neuronalen Netzen) gelöst.
Gibt es ein Papier, das einen Ansatz versucht, bei dem keine neuronalen Netze in LSVRC verwendet werden?
Um die Frage zu klären: Natürlich gibt es andere Klassifizierungsalgorithmen wie nächste Nachbarn oder SVMs. Ich bezweifle jedoch, dass sie überhaupt für so viele Klassen / so viele Daten funktionieren. Zumindest für NNs bin ich mir sicher, dass die Vorhersage extrem langsam sein würde; Für SVMs wäre sowohl die Anpassung als auch die Vorhersage viel zu langsam (?).k
quelle
Antworten:
Ein Teil des Problems bei der Beantwortung dieser Frage besteht darin, dass es tatsächlich zwei Fragen gibt. Der Erste:
Gibt es Bildklassifizierungsalgorithmen, die keine neuronalen Netze sind?
Ja, viele. Aber jetzt die eigentliche Frage:
Gibt es ein Papier, das einen Ansatz versucht, bei dem keine neuronalen Netze in LSVRC verwendet werden?
In Ihrer Frage schließen Sie Methoden wie kNN und SVM aufgrund der Geschwindigkeit aus. Bag of Words ist eine Methode, um dieses Problem zu lösen. MATLAB hat eine gute Demonstration ( http://www.mathworks.com/help/vision/examples/image-category-classification-using-bag-of-features.html ). Aber BoW enthält k-means Clustering, sodass es möglicherweise nicht Ihren Anforderungen entspricht.
Es gibt einige andere interessante Bildklassifizierungsmethoden wie die Texturanalyse. TA wird erforscht, um die Böswilligkeit von Krankheiten in medizinischen Bildern (wie Tumoren) zu klassifizieren. Hier ist ein Artikel, auf den häufig verwiesen wird: http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2701316/
Hier ist eine Übersicht über die Bildklassifizierung: http://www.tandfonline.com/doi/full/10.1080/01431160600746456
quelle
Sie können jeden Algorithmus verwenden, der die Dimensionalität Ihrer Daten verarbeiten kann, einschließlich SVM und K Nearest Neighbors. Die Leistung der am besten implementierten Algorithmen ist nahezu gleich, akzeptiert für CNN. Der Grund, warum CNN verwendet wird, liegt darin, dass es derzeit in Bezug auf Genauigkeit führend ist und dies seit mehreren Jahren.
quelle
Es gibt viele Algorithmen, mit denen Klassifizierungen durchgeführt werden können (viele bis zu dem Punkt, an dem es schwierig ist, alle zu erwähnen). Ich empfehle Ihnen, sich diese http://dlib.net/ml_guide.svg anzusehen
Die Entscheidung, welcher Algorithmus verwendet werden soll, hängt hauptsächlich von dem Problem ab, mit dem Sie arbeiten: 1. Die Anzahl der Klassen 2. Die Anzahl der Stichproben 3. Die Unterschiede innerhalb der Klassen und Ähnlichkeiten zwischen den Klassen 4. Datenungleichgewicht 5. Die Dimension Ihrer Funktion und viele andere Parameter
Im Allgemeinen ist CNN aus zwei Gründen sehr beliebt: Sie können bei sehr herausfordernden Problemen zu einer hohen Leistung führen und sind allgemeine Lösungen in dem Kontext, in dem Sie ihre Architekturen verstehen müssen, die Strategien und Tricks, um nur Schulungen durchzuführen, danach nicht müssen nichts ändern, keine Parameter zum Spielen.
quelle