• Aucun résultat trouvé

R´ eseau neuronal convolutif (CNN)

Au lieu de la texture, dans cette partie c’est les images enti`eres des traverses qui sont donn´ees en entr´e `a un R´eseau neuronal convolutif (CNN) afin de les cat´egoriser en trois classes comme avant. Figure 3.9 montre les diff´erentes couches du CNN utilis´e qui est similaire au LeNet5 (Lecun et al., 1998) dans la Figure 3.10, dans le sens o`u on a deux couches convolutionnelles suivies de deux couches compl`etement connect´ees (denses). Le subsampling (map-pooling) vient au milieu de ces deux blocs, et deux couches DropOut viennent aussi s’ajouter avant les couches denses afin d’´eviter de faire du surapprentissage. Comme dans la plupart des probl`emes de classification, softmax a ´et´e utilis´ee comme fonction d’activation de la couche de sortie pour retourner la probabilit´e d’appartenance `a chacune des trois classes,

Chapter 3. Classification des traverses

et la cross-entropy comme fonction de coˆut (loss function) qui ´evalue l’erreur pour mettre `a jour les poids du mod`ele `a chaque it´eration.

3.3.1 Jeu de donn´ ees

Ce r´eseau est assez simple et est d’ailleurs fournie avec les Exemples de Keras (2020) o`u il est test´e sur la base de chiffres manuscrits MNIST. Dans le cas des traverses, la taille de l’image d’entr´ee dans le r´eseau a ´et´e chang´ee `a (20 x 140), et d’un autre cˆot´e la base d’apprentissage a ´et´e construite en redimensionnant les traverses extraites pr´ec´edemment et en les convertissant en niveaux de gris. Puisque on a en notre possession un nombre tr`es limit´e d’exemples (15 traverses par classe, 45 au total), la base d’apprentissage a dˆu ˆetre augment´ee en temps r´eel avec des images g´en´er´ees par transformations lin´eaires effectu´ees sur les images d’origine.

3.3.2 R´ esultats

Le CNN a ´et´e entrain´e pendant 100 it´erations (epochs), sur 10 batchs de 10 exemples chacun `a chaque it´eration. Figure 3.11 montre l’´evolution de l’accuracy et de la fonction de perte `a chaque it´eration sur les donn´ees d’apprentissage et de test (appel´e validation dans le graphe). Si on se concentre sur l’accuracy, on voit sur la base de test qu’elle oscille entre 0.6 et un peu plus de 0.7 qui est inf´erieure `a la valeur de cette mˆeme m´etrique sur la base d’apprentissage, et donc un risque de surapprentissage n’est pas `a ´ecarter. Par ailleurs, la valeur de l’accuracy du CNN est donc inf´erieure

`

a celle du SVM entrain´e auparavant sur la texture obtenue `a partir de la GLCM, et dont l’apprentissage a aussi pris moins de temps.

Chapter 3. Classification des traverses

Figure 3.9: Architecture du CNN utilis´e pour la classification des images de tra-verses.

Chapter 3. Classification des traverses

Figure 3.10: Architecture du r´eseau LeNet5 (Lecun et al., 1998).

Chapter 3. Classification des traverses

(a)

(b)

Figure 3.11: ´Evolution sur la base d’entrainement et de test (validation) de (a) l’accuracy (b) l’erreur calcul´ee avec la fonction de perte.

Chapter 4 Conclusion

4.1 Impl´ ementation

L’application d´evelopp´ee (Figure 4.1) repose principalement sur le wrapper Python d’OpenCV, en plus de NumPy/SciPy, pour les op´erations de traitement d’images, mis `a part l’extraction de la texture (GLCM et Gabor) qui a ´et´e effectu´ee avec Scikit-image. Lorsqu’il y a lieu de tracer des courbes, celles-ci sont faites avec matplotlib.

L’interface graphique a ´et´e d´evelopp´ee avec la biblioth`eque Tkinter qui est fournie directement avec Python. Scikit-learn est aussi utilis´ee, plus sp´ecifiquement pour son impl´ementation de K-means et des SVM, et enfin la partie CNN est impl´ement´ee avec Keras.

4.2 Perspectives

Dans l’avenir, il faudrait construire une base d’apprentissage d’au moins une cen-taine, voir des milliers, de traverses dans chaque classe afin d’´eviter le surappren-tissage. De plus, il faudrait aussi identifier une architecture de r´eseau plus com-plexe et plus adapt´ee `a ce probl`eme de classification, puisque une accuracy autour des 60%-70% n’est pas un bon r´esultat pour un CNN. Par exemple, le r´eseaux de neurones compl`etement convolutif, U-Net, qui a donn´e de bons r´esultats lors de la segmentation d’images m´edicales microscopiques pourrait ˆetre test´e. Plusieurs

Chapter 4. Conclusion

Figure 4.1: Interface graphique de l’application d´evelopp´ee.

Figure 4.2: Architecture d’un r´eseau U-Net (Ronneberger et al., 2015).

impl´ementations de U-Net sont disponibles, dont une avec Keras sur Github (Zhix-uhao, 2019). L’architecture d’un r´eseau U-Net est montr´ee dans la Figure 4.2.

Bibliography

Exemples de Keras (2020). Classification of the MNIST dataset using a basic CNN with Keras.

https://keras.io/examples/mnist_cnn/. [Online; accessed 26-Jan-2020].

Exemples de Scikit-image (2020). Classification of image patches using GLCM Texture Features.

https://scikit-image.org/docs/dev/auto_examples/features_detection/

plot_glcm.html. [Online; accessed 26-Jan-2020].

Gibert, X., Patel, V. M., and Chellappa, R. (2015). Material classification and semantic segmentation of railway track images with deep convolutional neural networks.2015 IEEE International Conference on Image Processing (ICIP), pages 621–625.

Gibert, X., Patel, V. M., and Chellappa, R. (2016). Deep multitask learning for rail-way track inspection. IEEE Transactions on Intelligent Transportation Systems, 18(1):153–164.

Hall-Beyer, M. (2017). GLCM texture: a tutorial v. 3.0 March 2017.

https://prism.ucalgary.ca/handle/1880/51900. [Online; accessed 26-Jan-2020].

Haralick, R. M., Shanmugam, K., and Dinstein, I. (1973). Textural features for image classification.IEEE Transactions on Systems, Man, and Cybernetics, SMC-3(6):610–621.

Bibliography

Karakose, M., Yaman, O., Baygin, M., Murat, K., and Akin, E. (2017). A new computer vision based method for rail track detection and fault diagnosis in rail-ways. International Journal of Mechanical Engineering and Robotics Research, 6(1):22–17.

Lecun, Y., Bottou, L., Bengio, Y., and Haffner, P. (1998). Gradient-based learning applied to document recognition. Proceedings of the IEEE, 86(11):2278–2324.

Li, Y., Trinh, H., Haas, N., Otto, C., and Pankanti, S. (2013). Rail component detection, optimization, and assessment for automatic rail track inspection. IEEE Transactions on Intelligent Transportation Systems, 15(2):760–770.

Min, Y., Xiao, B., Dang, J., Yue, B., and Cheng, T. (2018). Real time detection system for rail surface defects based on machine vision. EURASIP Journal on Image and Video Processing, 2018(1):3.

Resendiz, E., Hart, J. M., and Ahuja, N. (2013). Automated visual inspection of rail-road tracks. IEEE transactions on intelligent transportation systems, 14(2):751–

760.

Ronneberger, O., Fischer, P., and Brox, T. (2015). U-net: Convolutional networks for biomedical image segmentation. International Conference on Medical image computing and computer-assisted intervention, pages 234–241.

Singh, A. K., Swarup, A., Agarwal, A., and Singh, D. (2017). Vision based rail track extraction and monitoring through drone imagery. ICT Express.

Singh, M., Singh, S., Jaiswal, J., and Hempshall, J. (2006). Autonomous rail track inspection using vision based system. 2006 IEEE International Conference on Computational Intelligence for Homeland Security and Personal Safety, pages 56–

59.

Ta¸stimur, C., Karak¨ose, M., Akın, E., and Aydın, ˙I. (2016). Rail defect detec-tion with real time image processing technique. 2016 IEEE 14th International Conference on Industrial Informatics (INDIN), pages 411–415.

Bibliography

Wu, Y., Qin, Y., Wang, Z., and Jia, L. (2018). A uav-based visual inspection method for rail surface defects. Applied Sciences, 8(7):1028.

Zhixuhao (2019). Implementation of U-Net using Keras.

https://github.com/zhixuhao/unet. [Online; accessed 17-Jan-2020].

Documents relatifs