Comment classifier des images sur une Raspberry pi 3? TensorFlow Lite

Bonjour à tous,

Dans mon précédent post, j’explique comment installer TensorFlow 2 sur Raspberry Pi (RPI).

Je me suis rendu compte qu’en fait, il suffit d’installer TensoFlow Lite pour faire de la classification d’image à partir de réseaux de neurones pré-entraînés.

L’avantage, c’est que l’installation est beaucoup plus « lite » et que c’est très simple.

Tout est expliqué (en Anglais), là : TensorFlow Lite Python classification example with Pi Camera .

Et l’installation de TensorFlow Lite est expliquée ici : Python quickstart .

Le seul « trick » que je pourrais ajouter, c’est que perso, ce coup là j’ai utilisé Miniconda pour me créer un environnement virtuel avec Python 3.6 . J’en parle un peu dans mon précédent post. Dans ce cas, « pip install numpy » (dans les requirements.txt) ne marche pas, alors que « conda install numpy » fonctionne.

On peut lancer le code pour la classification automatique d’image :

python3 classify_picamera.py --model /tmp/mobilenet_v1_1.0_224_quant.tflite --labels /tmp/labels_mobilenet_quant_v1_224.txt

C’est vraiment super !!!

Pour comprendre, TensorFlow Lite prend quelques centaines de millisecondes pour classifier une image provenant du flux vidéo, tandis que TensorFlow mettra plusieurs secondes. Cela est dû en partie au fait que le modèle Lite est quantifié sur 8 bits (sauf erreur de ma part). Au lieu de nombres à virgule flottante (float) codés sur 32 bits, on utilise des entiers sur 8 bits, ce qui réduit la taille (en octets) du modèle et surtout accélère considérablement le temps de calcul. Les résultats sont un peu moins précis en principe.

Voici une version un peu modifiée de la démo classify_image.py qui permet de classifier une seule image :

curl -O https://storage.googleapis.com/download.tensorflow.org/models/tflite/mobilenet_v1_1.0_224_quant_and_labels.zip
unzip mobilenet_v1_1.0_224_quant_and_labels.zip
python classify_image.py --model mobilenet_v1_1.0_224_quant.tflite --labels labels_mobilenet_quant_v1_224.txt --image monimage.jpg

Les deux premières lignes téléchargent et dé-zippent le modèle. « classify_picamera.py » est remplacé par « classify_image.py ». Notez l’option supplémentaire –image qui permet de fournir un fichier image au lieu d’utiliser la camera du RPI.

Et voilà!!!

Laisser un commentaire