
AI Devcon Intel 2019 - Munich
Le 23 janvier avait lieu l’AI DevCon d’intel à Munich. L’occasion pour Intel de représenter ses précédentes annonces dans le domaine de l’intelligence artificielle aussi bien matérielles que logiciel, Et oui Intel ne fait pas que du hardware et tient à le faire savoir.
La Keynote était faite par Remi El-Ouazzane VP d’Intel et Chief Operating Officer du groupe produit autour de l’AI chez Intel. Et ancien CEO de la société Movidius spécialisé dans les processeurs dédiés à l’IOT et la reconnaissance visuelle, les VPU. La société avait été racheté par Intel en 2016. Et pour la partie logicielle c’était Jason Knight qui faisait les annonces.
Coté hardware outre les nouvelles versions de Xeon, l’annonce intéressante était le Neural Compute Stick 2. Le NCS 2 est une clé USB qui contient un VPU dédié à la reconnaissance visuelle, et une puissance 1 Teraflop. Pour cette nouvelle génération il contient pour la première fois un « Neural Compute Engine » dédié au Deep Learning. Pour rendre n’importe quelle machine capable de faire du deep learning, une alternative aux puissances GPU. Surtout dans le domaine de l’IOT puisqu’on peut brancher le NCS 2 sur un Raspberry Pi et profiter de cette puissance.
Pour la partie logicielle on utilise l’OpenVino Toolkit, grosse boite à outil logicielle IA d’intel.
La promesse est également de pouvoir utiliser les frameworks populaires pour les réseaux de neurones tel que tensorflow ou Pytorch. Pour cela Intel propose le compilateur NGRAPH en opensource. L’idée derrière NGRAPH est d’être une couche supplémentaire d’abstraction et d’être une couche intermédiaire entre le modèle généré par le framework et le processeur cible CPU GPU VPU
Coté Cloud L’annonce était autour de NAUTA est une plateforme opensource pour le deep learning construite autour de Kubernetes et de Docker, déployable en théorie sur tout les clouds.
Coté software une autre annonce intéressante était le Neural Network Distiller, Pour Pytorch l’idée est de compresser le réseau de neurone pour réduire l’empreinte mémoire et réduire l’énergie utilisé (pour sauver la planète)
Pour conclure sur les conférences je vais utiliser la citation d'Edgar Degas vu dans la conférence sur le Neural Style Transfer d'oeuvre d'art en temps réel
"Art is not what you see but what you make others see" Le sujet sera l'occasion d'un long et futur article sur l'art et l'IA.
A l’Intel AI DevCon j’ai pu avoir un NCS 2. Tester comment se place le NCS 2 vis-à-vis de la concurrence. L’idée à l’air séduisante dans le monde de l’informatique embarqué de la robotique si on veut faire de l’IA il y a 3 options, embarquer une grosse machine avec un gros Cpu et un Gpu, ça va couter très cher et consommer d’énergie, ça n’est utilisable que pour un gros robot(humanoïde :) par exemple. Si on veut un petit device qui consomme peu d’énergie à priori la seule solution est le « cloud » et utiliser un service du type Azure Iot Edge et des services cloud pour déporter le traitement c’est une excellente solution mais parfois on a pas la possibilité d’avoir une connexion internet suffisamment fiable, ou tout simplement on veut pouvoir profiter des deux, par exemple une partie traitement qui doit toujours fonctionner même déconnecté et d’autre qu’on déporte dans le cloud.
Intel propose avec sa puce Myriad X d’avoir une puissance de traitement pour la reconnaissance visuelle. Le Ncs2 est une clé Usb qui contient cette puce pour le prototypage qu’on peut brancher en usb et utiliser directement sur une petite carte type raspberry pi avec un petit processeur.
Branchons le NCS2 sur un raspberry pi 3 et voyons si il tient ses promesses, est ce qu’on pourrait se passer de cloud pour de la reconnaissance visuelle et avoir l’équivalent de la puissance d’un laptop.
Il vous faut pour commencer un Raspberry pi et une caméra pi pour démarrer.
Sur le raspberry pi on utilise une sdcard comme stockage. La première étape est d’installer un Raspbian os (un linux debian adapté au rapsberry pi) Le plus simple pour ça est d’utiliser NOOBS un installateur simple pour pc/ mac qui vous formate correctement la Sdcard directement avec l’OS. J’ai installé la version non graphique de raspbian.
Etape suivante installer Openvino le toolkit Intel pour le NPC2 sur le raspberry. Pour cela connectons nous au terminal, soit vous branchez le raspberry pi directement sur un écran ou vous le branchez sur un réseau filaire et vous connecter en ssh au raspberry pi (mon option)
Télécharger le toolkit
wget https://download.01.org/openvinotoolkit/2018_R5/packages/l_openvino_toolkit_ie_p_2018.5.445.tgz
Décompresser l’archive
tar
-xf l_openvino_toolkit_ie_p_<version>.tgz
Modifier le script di’nstall avec le dossier local
sed
-i "s|<INSTALLDIR>|$(pwd)/inference_engine_vpu_arm|"
inference_engine_vpu_arm/bin/setupvars.sh
et exécuter ce script pour fixer les variables d’environnement
source
inference_engine_vpu_arm/bin/setupvars.sh
Les variables d’environnement sont supprimés à chaque redémarrage pensez à exécuter le script au démarrage
Autoriser l’usb
sudo
usermod
-a -G users
"$(whoami)"
sh inference_engine_vpu_arm/install_dependencies/install_NCS_udev_rules.sh
Le sdk openvino contient un exemple de détection de visage qu’on peut utiliser pour notre test :
Commençons par faire le build de l’exemple de détection d’objet.
cd inference_engine_vpu_arm/deployment_tools/inference_engine/samples
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-march=armv7-a"
make -j2 object_detection_sample_ssd
Télécharger les modèle préentrainés fourni
wget --no-check-certificate https://download.01.org/openvinotoolkit/2018_R4/open_model_zoo/face-detection-adas-0001/FP16/face-detection-adas-0001.bin
wget --no-check-certificate https://download.01.org/openvinotoolkit/2018_R4/open_model_zoo/face-detection-adas-0001/FP16/face-detection-adas-0001.xml
Prenez une photo avec la caméra ou récuperez une photo pour un test et tentez le test :
./armv7l/Release/object_detection_sample_ssd -m face-detection-adas-0001.xml -d MYRIAD -i <path_to_image>
Il est aussi possible d’utiliser la reconnaissance fourni par opencv avec des modèles préentrainé fourni également.
Les résultats sont plutôt bon et on arrive à des résultats en terme de puissance comparable pour de la reconnaissance de visage avec un laptop.