La classification des images consiste à attribuer l'un desétiquettes précédemment connues pour une image donnée. Par exemple, vous savez que vous recevrez quelques photos et chaque image a exactement l'une desen elle. L'algorithme devrait dire ce que la photo montre.
L'ensemble de données de référence pour la classification des images est ImageNet ; surtout ton défi de reconnaissance visuelle à grande échelle (LSVRC) . Il a exactement 1000 classes et une énorme quantité de données d'entraînement (je pense qu'il existe une version sous-échantillonnée avec environ 250 images x 250 pixels, mais de nombreuses images semblent provenir de Flicker).
Ce défi est généralement résolu avec les CNN (ou d'autres réseaux de neurones).
Existe-t-il un article qui tente une approche qui n'utilise pas les réseaux de neurones dans LSVRC?
Pour clarifier la question: bien sûr, il existe d'autres algorithmes de classification comme voisins les plus proches ou SVM. Cependant, je doute qu'ils fonctionnent du tout pour autant de classes / autant de données. Au moins pour-NNs je suis sûr que la prédiction serait extrêmement lente; pour les SVM, je suppose que l'ajustement et la prédiction seraient beaucoup trop lents (?).
la source
Réponses:
Une partie du problème avec la réponse à cette question est qu'il y a en fait deux questions. La première:
Existe-t-il des algorithmes de classification d'images qui ne sont pas des réseaux de neurones?
Oui beaucoup. Mais maintenant, la question en fait:
Existe-t-il un article qui tente une approche qui n'utilise pas les réseaux de neurones dans LSVRC?
Dans votre question, vous excluez des méthodes telles que kNN et SVM en raison de la vitesse. Sac de mots est une méthode utilisée pour résoudre ce problème. MATLAB a une bonne démonstration ( http://www.mathworks.com/help/vision/examples/image-category-classification-using-bag-of-features.html ). Mais BoW intègre le clustering k-means, ce qui peut ne pas correspondre à vos besoins.
Il existe d'autres méthodes de classification d'images intéressantes telles que l'analyse de texture. L'AT est recherchée comme moyen de classer la malveillance de la maladie dans les images médicales (telles que les tumeurs). Voici un article couramment référencé: http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2701316/
Voici un aperçu de la classification des images: http://www.tandfonline.com/doi/full/10.1080/01431160600746456
la source
Vous pouvez utiliser n'importe quel algorithme capable de gérer la dimensionnalité de vos données, y compris SVM et K Nearest Neighbors. Les performances des meilleurs algorithmes implémentés sont presque les mêmes, acceptez pour CNN. La raison pour laquelle CNN est utilisé est qu'il est actuellement le leader en matière de précision, et ce depuis plusieurs années.
la source
Il existe de nombreux algorithmes qui peuvent être utilisés pour effectuer des classifications (beaucoup au point qu'il est difficile de les mentionner tous). Je vous suggère de consulter ce http://dlib.net/ml_guide.svg
Le choix de l'algorithme à utiliser est fonction du problème avec lequel vous travaillez, principalement: 1. Le nombre de classes 2. Le nombre d'échantillons 3. Les variations au sein des classes et les similitudes entre les classes 4. Le déséquilibre des données 5. La dimension de votre fonctionnalité Et de nombreux autres paramètres
En général, CNN est très populaire pour deux raisons: ils peuvent conduire à des performances élevées dans des problèmes très difficiles et ce sont des solutions générales dans le contexte dont vous avez besoin pour comprendre leurs architectures, les stratégies et les astuces pour effectuer la formation uniquement, après quoi vous ne le faites pas besoin de changer quoi que ce soit, pas de paramètres pour jouer avec.
la source