TelloHand
De la Vue à l'Action
Lors de mes études à l'ITI "Enrico Medi", j'ai développé TelloHand, un système permettant de contrôler un drone DJI Tello par vision par ordinateur. À travers un pipeline Python reliant la caméra du drone au dispositif de traitement, j'ai implémenté le contrôle de vol basé sur la reconnaissance gestuelle. L'objectif principal était d'optimiser les algorithmes de Computer Vision et de réduire la latence pour assurer des commandes en temps réel.
Architecture Technique
Le DJI Tello expose un flux vidéo UDP et accepte des commandes textuelles, nécessitant une architecture logicielle hautement efficace pour traduire les entrées visuelles en commandes de vol.
Développement du Pipeline
Le pipeline logiciel intercepte et décode le flux vidéo H.264 du drone via Wi-Fi. Pour le suivi des mains, j'ai intégré la bibliothèque MediaPipe de Google, utilisant de son inférence optimisée pour le CPU. J'ai implémenté une logique géométrique pour interpréter les points clés des doigts, les traduisant en commandes spécifiques à 30 images par seconde pour assurer une réponse fluide.
Gestion de la Latence
Dans les systèmes en temps réel, la latence compromet la sécurité des vols. Pour minimiser les délais, j'ai optimisé le tampon d'images et implémenté une architecture multi-thread, réduisant efficacement le décalage d'entrée à presque zéro grâce à un code Python et OpenCV optimisé.
References
Voici le code source du projet :
https://github.com/kairosci/tello-hand