[PYTHON] _1e jour jusqu'à ce qu'une bonne précision soit obtenue par la classification des feuilles

Les débutants en analyse de données ont décidé d'essayer la classification des feuilles de Kaggle. (https://www.kaggle.com/c/leaf-classification/data)

Comprenez d'abord le problème

problème

** La classification de 99 classes ** est effectuée à partir de ** 192 quantités de caractéristiques ** (margin1 ~ 64, shape1 ~ 64, texture1 ~ 64).

base de données

+1584 images + fonctionnalités

Ce que j'ai pensé, ce que j'ai pensé

** N'y a-t-il pas une petite quantité de données d'entraînement 10 pour chaque donnée? ** **

→ Il semble bon d'essayer d'augmenter le jeu de données en se déplaçant en parallèle. Écrivons le code et voyons à quoi cela ressemble de déplacer celui avec la même étiquette.

samelabel_leaf.py


lst = [0,316,905,1001,1124,1158,1269,1319,1449, 1503]#Index des images avec la même étiquette
for i,j in enumerate(lst):
    plt.subplot(2,5,i+1)
    plt.xticks([])
    plt.yticks([])
    plt.imshow(images[j], "gray")
スクリーンショット 2017-07-07 22.52.22.png

C'est presque la même orientation, donc ce n'est peut-être pas une bonne idée de trop la faire pivoter. Je pense qu'il serait préférable de zoomer et dézoomer avec parcimonie.

** Qu'entendez-vous par 192 «fonctionnalités»? ** **

→ Je ne comprends pas la signification de la marge, de la forme et de la texture, alors je vais chercher.

[Papier PLANT_LEAF_CLASSIFICATION](https://www.researchgate.net/profile/Charles_Mallah/publication/266632357_Plant_Leaf_Classification_using_Probabilistic_Integration_of_Shape_Texture_and_Margin_Features/cfa47072f.

3.2 Leaves «Il est important de classer un large éventail de classes dans quelques exemples de ce problème. 』
Apparemment, moins est intentionnel.

4.1 Leaf Shape Feature "Domaine bidimensionnel, ou données unidimensionnelles représentant une église. CCDC est un descripteur de forme invariant d'échelle, de mouvement parallèle et de rotation. Enfin, le vecteur est mis à l'échelle à une taille appropriée afin qu'il ait le même nombre d'éléments afin que le temps de calcul puisse être raccourci. 』
Je ne sais pas ce que c'est,

Le centre de gravité de la forme $ \ bar {x}, \ bar {y} $,

\bar{x}=\frac{\sum_{i=1}^{s}x_i}{s}, \bar{y}=\frac{\sum_{i=1}^{s}y_i}{s}

Comme

d_i = \sqrt{(x_i-\bar{x})^{2}+(y_i-\bar{y})^{2}}

d_i^{'}=\frac{d_i}{\sum_{i=1}^{s}d_i}

Si vous y réfléchissez, il semble que la moyenne du centre de gravité soit prise pour montrer le degré de distance par rapport au centre de gravité global.

4.2 Leaf Texture Feature "Pour chaque image, ** 1024 petites fenêtres sont sélectionnées au hasard **. Appliquez-leur un ** filtre de Gabor invariant en rotation **. En modifiant l'écart type du centre de gravité du filtre, ** 5 filtres d'échelle différents ** sont créés. Chaque filtre est réduit avec chaque fenêtre et les ** 4 caractéristiques ** de ce filtre sont calculées. Après cela, chacun des vecteurs de caractéristiques 1024x20 est attribué à 64 vecteurs. Un histogramme est construit à partir des 1024 vecteurs attribués et 64 vecteurs de caractéristiques sont donnés. 』
Peut-être que les petites fenêtres sont de petits éléments tels que 5x5 découpés dans l'image, mais ** je ne savais pas ce que cela signifiait. ** **

4.3 Leaf Margin Feature "Tout d'abord, ** appliquez un filtre médian à l'image feuille binaire pour lisser l'image **. Cela permet de représenter le contour entier par m points, et pour chacun de ces ** points, les points correspondants sur le contour d'origine sont calculés. ** **

  1. ** Taille **: distance signée entre le point de marge lissé et le point original correspondant
  2. ** Gradient **: différence signée entre le point actuel et le point suivant
  3. ** Courbure **: Angle au point actuel entre le point précédent et le point suivant Deux caractéristiques positives et négatives pour chacune génèrent six discripteurs de caractéristiques pour chaque fenêtre. Le vecteur de caractéristiques de la fenêtre de marge est utilisé pour générer 64 entités de la même manière que 4.2. 』\

En d'autres termes d61e0c76dd87fe4126a47b5dfe250193.jpg C'est comme ça.

Peut-être est-il possible de reconnaître le contour par lissage et, par conséquent, la marge peut être reconnue.

** Il y a beaucoup de données avec différents rapports hauteur / largeur, que dois-je faire avec cela? ** **

→ J'ai pensé à deux choses.

Dans le premier cas, ** par exemple, les données d'une image allongée sont susceptibles d'être reconnues comme une feuille ronde **, la seconde semble donc être meilleure.

** L'image n'est-elle pas grande? ** **

Je pense que cela peut être résolu en le rendant plus petit. Même si Mnist est classé en 10 classes, il est 28x28 et ** assez précis **, il semble donc normal de le réduire dans une certaine mesure. → Il semble que cela puisse être envisagé en expérimentant différentes tailles.

** Alors implémentons-le à partir de demain. ** **

Recommended Posts

_1e jour jusqu'à ce qu'une bonne précision soit obtenue par la classification des feuilles
_ 2ème jour jusqu'à ce qu'une bonne précision soit obtenue par la classification des feuilles
_ 3ème jour jusqu'à ce qu'une bonne précision soit obtenue par classification des feuilles