Option SI en seconde

Intelligence artificielle avec le jetson nano

NVIDIA® Jetson Nano™ offre des capacités sans précédent à des millions de systèmes d’IA à hautes performances et basse consommation. Cette innovation technologique ouvre de nouvelles possibilités pour les applications embarquées de l’IoT dans des domaines comme les enregistreurs vidéo en réseau, les robots ou bien les passerelles domotiques intelligentes avec des capacités d’analyse avancées. 

Le kit Jetson Nano de NVIDIA offre des capacités sans précédent à des millions de systèmes d’intelligence artificielle à hautes performances et basse consommation. Cette innovation technologique ouvre de nouvelles possibilités pour les applications embarquées de l’IoT. Jetson Nano est la solution idéale pour les professionnels qui souhaitent se former à l’IA avec des paramètres réalistes et des projets prêts à l’essai.

Aux dimensions de 70 x 45 mm, le Jetson Nano n’en développe pas moins une performance de 472 Gflops suffisante pour exécuter des tâches IA dignes de ce nom, et ce dans une enveloppe thermique qui n’excède pas 5 watts.

Nous allons apprendre à utiliser le Jetson Nano dans le cadre de projets liés à l’intelligence artificielle tels que la reconnaissance d’image et le suivi de trajectoire sur une vidéo. Vous utiliserez le langage de programmation Python et des librairies spécialisées dans le deep learning comme Tensorflow, Keras, Numpy, …

#1. Prise en main du Jetson Nano et administration de son système d’exploitation Linux

Le module prend en charge le kit de développement JetPack qui intègre les bibliothèques d’accélération Nvidia Cuda-X ainsi qu’une pile IA complète avec bibliothèques pour l’apprentissage machine, la vision artificielle, les calculs graphiques et le traitement multimédia. JetPack dispose en outre d’un système d’exploitation Linux et des dernières versions en date des logiciels Cuda, cuDNN et TensorRT.

#2. Programmation de la caméra embarquée avec OpenCV

Les activités pratiques que nous allons mettre en œuvre par la suite vont consister à analyser des vidéos à l’aide d’une intelligence artificielle. Nous allons par conséquent dans cette troisième partie apprendre à programmer le Jetson nano pour acquérir un flux vidéo en provenance d’une caméra. Cette caméra pourra être connectée sur un port USB ou sur un port MIPI.

 

#3. IA et deep learning : Création d’un modèle simple de reconnaissance d’image avec Keras / Tensorflow

La reconnaissance d’image, sous-catégorie de la Computer Vision et de l’Intelligence Artificielle, représente un ensemble de méthodes de détection et d’analyse d’images pour permettre l’automatisation d’une tâche spécifique. Il s’agit d’une technologie qui est capable d’identifier des lieux, des personnes, des objets et plusieurs autres types d’éléments au sein d’une image et d’en tirer des conclusions en les analysant.

Cette partie a pour objectif d’introduire les concepts de base de l’utilisation de l’intelligence artificielle pour la reconnaissance d’images. Nous utiliserons plus spécifiquement les librairies Keras / Tensorflow qui sont parmi les plus utilisées dans le domaine. Nous allons introduire les concepts de dataset et d’entraînement d’un modèle.

Comme activité pratique, nous allons programmer une intelligence artificielle permettant de réaliser de la reconnaissance d’image. Pour cela, nous mettrons en œuvre des réseaux de convolutions pour traiter et analyser les images.

 

#4. Classification d’images à l’aide du deep learning avec le modèle ResNet

ResNet est une structure de réseau proposée par He Kaiming, Sun Jian et d’autres de Microsoft Research Asia en 2015, et a remporté la première place dans la tâche de classification ILSVRC-2015. Dans le même temps, il a remporté la première place dans les tâches de détection ImageNet, de localisation ImageNet, de détection COCO et de segmentation COCO.

Dans sa version la plus complexe, ce modèle est composé de 50 couches, et a la particularité d’introduire des connexions résiduelles. Contrairement aux réseaux de neurones convolutifs qui ont une architecture linéaire (un empilement de couches dont chaque sortie est uniquement connectée à la couche suivante), dans un réseau résiduel, la sortie des couches précédentes est reliée à la sortie de nouvelles couches pour les transmettre toutes les deux à la couche suivante

Nous allons programmer ce modèle dans le Jetson nano en Python afin de réaliser de la classification d’image : Savoir par exemple en temps réel si sur une vidéo un pouce est levé ou baissé !

 

#5. Suivi d’objets sur une vidéo en temps réel

La régression d’image va nous permettre de réaliser un suivi en temps réel d’un objet sur une vidéo. Dans l’exemple que nous allons programmer, nous suivrons une partie de notre visage, par exemple notre nez !

Le modèle que nous programmerons est basé sur le modèle ResNet, auquel nous intégrerons une surcouche spécialisée dans la détection de la cible à suivre.