Prérequis Système et Environnement
L'installation du toolkit OpenVINO nécessite un environnement de développement structuré. Bien que plusieurs distributions soient supportées, cette procédure cible spécifiquement CentOS 7 pour sa stabilité dans les environnements de production.
Gestion des dépendances logicielles
Avant tout téléchargement, assurez-vous que l'environnement de base est configuré. Sur CentOS 7, il peut arriver qu'une erreur de conflit se produise lors de la gestion des paquets EFI :
Ceci indique une collision entre le gestionnaire de mise à jour UEFI et le chargeur de démarrage GRUB. Résolvez ce problème en excluant temporairement le paquet fwupdate-efi ou en priorisant grub2-common selon votre politique de sécurité.
Le toolkit se compose généralement de plusieurs modules : l'inference engine, l'optimiseur de modèles et les modèles pré-entraînés.
- Récupération des archives : Obtenez les outils de déploiement via l'accélérateur matériel (NCS2) ou directement depuis la plateforme officielle Intel. Ne pas utiliser de liens non vérifiés.
- Installation : Une fois les fichiers récupérés dans un répertoire temporaire, décompressez-les vers le dossier d'installation principal.
Configuration des Variables d'Environnement
Pour accéder aux binaires et scripts sans spécifier les chemins absolus à chaque commande, configurez le profil utilisateur. Cette étape remplace la modification directe de .bashrc par des commandes claires.
Ajouter au PATH pour accéder aux outils globaux
export PATH=$PATH:$INTEL_SDK_HOME/deployment_tools/model_optimizer export PATH=$PATH:$INTEL_SDK_HOME/deployment_tools/inference_engine/deployment_tools/tools/bin
Pointeur vers les modèles intégrés
export MZOOPATH=$INTEL_SDK_HOME/deployment_tools/intel_models
</div>### Accès à la documentation locale
Pour visualiser la documentation technique hors ligne, lancer un serveur HTTP simple :
<div class="code-block">```
cd $INTEL_SDK_HOME/deployment_tools/documentation
python3 -m http.server 9000
Il est recommandé de compiler les échantillons de code fournis afin de s'assurer que les bibliothèques fonctionnent correctement avec votre architecture matérielle (CPU, GPU, NCS).
Lancer la compilation
./build_samples.sh cmake . --config Release
Configurer le chemin binaire après construction
export SAMPLE_BIN=$HOME/inference_engine_samples_build/intel64/Release
</div>Gestion des Modèles (Model Downloader & Optimizer)
------------------------------------------------------
Les réseaux de neurones doivent être convertis dans le format XLA (.xml/.bin) avant l'inférence. Utilisons les utilitaires officiels.
### Extraction et Conversion d'un Modèle AlexNet
<div class="code-block">```
# Télécharger les paramètres du modèle alexnet
python3 downloader.py --name alexnet
# Naviguer vers le modèle récupéré
cd classification/alexnet/caffe
# Convertir le modèle en format optimisé
python3 mo.py --input_model alexnet.caffemodel --data_type FP32
Une fois l'infrastructure prête, lancez les applications de démonstration pour valider le flux de travail. Ces exemples utilisent des jeux de données publics.
1. Classification d'Images
Identification du contenu visuel dans une image statique.
Path vers le modèle généré précédemment
MODEL_XML=./alexnet.xml
Exécution sur CPU
$SAMPLE_BIN/classification_sample
-i sample_cat.jpg
-m $MODEL_XML
-nt 5
</div>### 2. Caméra Barrière de Sécurité
Détection de plaques et attribution de propriétés véhicules. Voici une configuration unifiée utilisant plusieurs modules simultanément :
<div class="code-block">```
security_barrier_camera_demo \
-i road_traffic_img.png \
-m vehicle-license-plate-detection-barrier-0106.xml \
-m_va vehicle-attributes-recognition-barrier-0039.xml \
-m_lpr license-plate-recognition-barrier-0001.xml \
-d GPU
Utilisation d'API asynchrones pour améliorer les performances vidéo.
Plus rapide pour des objets précis
object_detection_demo
-i person_detect.png
-m person-detection-retail-0013.xml
-d CPU
</div>### 4. Estimation de Posture Humaine
Analyse des points clés corporels sur une séquence vidéo.
<div class="code-block">```
human_pose_estimation_demo \
-i ~/obama.mp4 \
-m human-pose-estimation-0001.xml \
-d CPU
Module multicanal pour augmenter la robustesse de la détection faciale.
Application d'un style artistique sur une image source.
Utilisation de l'extension GNA (Graph Neural Network Acceleration) pour la reconnaissance vocale Kaldi.
mo.py --framework kaldi --input_model wsj*.nnet --counts wsj*.counts
speech_sample
-d GNA_AUTO
-bs 2
-i dev93_10.ark
-m wsj_dnn5b.xml
-o scores.ark
</div>### 8. Vérification de la Précision (Validation App)
Pour valider la précision globale sur un jeu de test comme PASCAL VOC :
<div class="code-block">```
git clone -b ssd https://github.com/weiliu89/caffe.git
cd caffe
# Préparation des données
wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtest_06-Nov-2007.tar
tar -xvf VOCtest_06-Nov-2007.tar
# Adaptation du Makefile pour HDF5
sed -i 's/hdf5_hl hdf5/hdf5_serial_hl hdf5_serial/' Makefile
sed -i 's/PYTHON_INCLUDE/PYTHON_INCLUDE \/usr\/local\/include/g' Makefile.config
Pour les déploiements hybrides, l'accélération matérielle peut être exposée via AWS Greengrass. Ceci permet d'exécuter des fonctions serverless sur l'appareil Edge tout en utilisant les capacités d'inférence locale.
Notes Finale
Assurez-vous toujours de vérifier la compatibilité matérielle (CPU, iGPU, vGPU, Mobileye EyeQ) avant d'initialiser le pipeline d'inférence. Les performances varient considérablement selon le backend sélectionné (MKL-DNN, OCL, SYCL, etc.).