Détection et suivi robustes d'UAV par vision par ordinateur pilotée par IA
Résumé
Avec l'innovation technologique, la sécurité devient le plus grand défi à relever. L'accessibilité exponentiellement croissante des drones représente une grande menace pour la sécurité générale. L'utilisation des UAV a augmenté ces dernières années. Face aux enjeux de sécurité, une solution est proposée : d'abord détecter les UAV, puis suivre leur trajectoire.
Pour la détection d'objets, les algorithmes d'apprentissage profond de vision par ordinateur sont très efficaces. L'entrée est traitée par YOLO, un réseau neuronal utilisé pour la détection et le suivi d'objets en temps réel.
2.1 Comprendre le concept d'UAV
Comme l'indique le titre « Détection et suivi d'UAV par vision par ordinateur », UAV (Unmanned Aerial Vehicle - Véhicule Aérien Non Habité) est un aéronef sans pilote, contrôlable à distance ou par ordinateurs de bord. 
Les UAV peuvent servir à des fins bénéfiques : agriculture, recherche scientifique, prévision météorologique, livraison, opérations de sauvetage, santé. Ils peuvent aussi servir à des fins nuisibles : attaques, tirs de missiles, assassinats ciblés, etc.
2.2 Qu'est-ce que la vision par ordinateur ?
La vision par ordinateur est le domaine scientifique qui permet aux ordinateurs de voir, identifier et traiter les images comme le fait la vision humaine, et de fournir une sortie appropriée. La vision par ordinateur est utilisée dans presque tous les domaines :
- Détection d'objets, de visages
- Chirurgie robotique et diagnostic médical
- Traitement d'images
- Agriculture
- Technologie spatiale (le Rover Mars de la NASA inclut des capacités pour modéliser le terrain de la planète, détecter les obstacles sur son chemin, et assembler des images panoramiques)
Les applications de la vision par ordinateur sont illustrées dans la figure 1.4.
2.3 Qu'est-ce que la technique de traitement d'image ?
La technique de traitement d'image est utilisée par la vision par ordinateur pour effectuer différentes tâches. Les opérations effectuées et méthodes appliquées pour améliorer la qualité d'une image ou obtenir un résultat spécifique après l'obtention comme pile d'images est appelée traitement d'image.
Le traitement d'image est considéré comme l'un des domaines les plus dynamiques de la technologie de l'information aujourd'hui, avec des applications croissantes dans tous les secteurs d'activité. Applications du traitement d'image :
Cas d'usage du traitement d'image
Le traitement d'image peut être utilisé dans ces domaines :
- Robotique
- Médical
- Reconnaissance de formes
- Traitement vidéo
- Détection de visages
2.4 Exigences logicielles
- Anaconda
- Spyder
- Python
- Bibliothèque Open-CV
3. Algorithmes pour la détection d'objets
Beaucoup d'algorithmes existent pour la détection d'objets. En voici quelques-uns :
- VIOLA ET JONES
- Réseaux de neurones convolutifs (CNN)
- You Only Look Once (YOLO)
- Single Shot Detector (SSD)
- Region-based CNN (R-CNN)
Tableau 3.1 : Algorithmes de détection
| Algorithme | Description | Forces | Faiblesses |
|---|---|---|---|
| VIOLA ET JONES (L'algorithme Viola-Jones a été conçu par Paul Viola et Michael Jones en 2001) | Le but principal était la détection de visages et d'objets. Il peut détecter des objets en temps réel. L'algorithme examine des sous-régions plus petites de l'image et essaie de trouver des objets en recherchant des caractéristiques spéciales dans chaque sous-région. Viola et Jones utilise des caractéristiques de type Haar pour détecter les objets. |
|
|
| CNN (Réseaux de neurones convolutifs) Introduit par Kunihiko Fukushima en 1980 | Modèle hiérarchique biologiquement inspiré qui peut être entraîné pour effectuer une variété de détection, reconnaissance et segmentation. C'est un algorithme d'apprentissage profond qui prend des images en entrée, attribue des poids et biais apprenables aux objets présents dans l'image et différencie entre eux. |
|
|
| YOLO (You Only Look Once) | C'est un algorithme de détection en temps réel. Il applique un algorithme de réseau neuronal à l'image, la divise en grille S x S et crée une boîte englobante autour des images en prédisant les probabilités pour chaque boîte. Il utilise la régression. |
|
|
| SSD (Single Shot Detector) | Cette méthode ne prend qu'un seul passage pour détecter plusieurs objets, elle est très rapide. Conçue pour l'implémentation temps réel. Elle contient deux composants : backbone et tête SSD. |
|
|
Ici, l'algorithme de réseau neuronal YOLO sera utilisé. Cet algorithme est très rapide pour l'implémentation temps réel. Il utilise un réseau neuronal et divise l'image en grille S x S et crée une frontière autour de l'image pour prédire les possibilités pour chaque frontière. Les algorithmes de détection sont montrés dans le Tableau 4.4.
3.1 Algorithme pour le suivi
Après avoir détecté un objet, l'attention se porte sur le suivi. Si l'objet détecté est un cerf-volant ou un oiseau, il n'y a pas besoin de suivi, mais si c'est un drone, la cible est suivie.
Beaucoup d'algorithmes sont utilisés pour le suivi d'objets. Mais encore une fois, YOLO est utilisé pour le suivi car cet algorithme est rapide et précis et peut détecter et suivre jusqu'à ce que la cible sorte de la portée de la caméra.
4. Implémentation du design proposé
Voici l'implémentation du design proposé, dans laquelle toutes les étapes requises pour exécuter le projet sur le logiciel sont effectuées.
4.1 Étape initiale
- Le traitement d'image a besoin d'un bon CPU/GPU, choisissez CPU. Installez Anaconda depuis le site web. L'installation d'Anaconda est montrée dans la figure 4.1

- Après l'installation d'Anaconda Navigator, créez un environnement avec la boîte de dialogue d'environnement et sélectionnez la version Python.
- Après avoir créé l'environnement avec succès, l'étape suivante est d'installer Spyder car c'est facile à utiliser. Puis installez OpenCV via la commande
pip install cv2.
4.2 Préparation du jeu de données
- Collectez de nombreuses images de différents objets aériens : drones, oiseaux, avions, hélicoptères, cerfs-volants, ballons.
Note : Créer un jeu de données ne se limite pas à collecter des images. Il faut nommer les images et indiquer la position de ces objets spécifiques dans chaque image. Pour cela, un logiciel appelé LabelImg est utilisé, qui convertit les images en fichiers texte. Comme montré dans la figure 4.6.
- Une fois les fichiers Txt de tous les objets créés. Mettez toutes les images et fichiers texte dans un fichier zip. Nommez aussi le fichier pour les classes incluses.

4.3 Configuration de YOLO
Pour la configuration, suivez ces étapes :
- Installez darknet avec YOLO v3.
- Pour configurer YOLO, créez un dossier dans darknet/data incluant toutes les images et fichiers .txt du jeu de données précédemment créé.
- Pour créer un fichier de configuration personnalisé, faites les modifications requises dans le cfg de YOLO v3, en ajustant batch, subdivisions et max batches par rapport aux classes et steps.
- En entrant le nombre de classes, changez la couche convolutionnelle au-dessus de YOLO. Mettez aussi random à 1. Les paramètres cfg sont montrés dans le Tableau 4.1.
Tableau 4.1 : Paramètres CFG
| Nom | Description |
|---|---|
| Batch | Combien d'images et d'étiquettes sont utilisées dans le passage forward pour calculer un gradient et mettre à jour les poids via la rétropropagation. |
| Subdivisions | Le batch est subdivisé en nombreux « blocs ». Les images d'un bloc s'exécutent en parallèle. |
| Steps | 500,1000 : Ajuste le taux d'apprentissage après 500 et 1000 batches. |
| Layers (Filters) | Combien de noyaux convolutionnels sont dans une couche. |
| Layers (Random) | Mis dans les couches YOLO. Si mis à 1, fait de l'augmentation de données en redimensionnant les images à différentes tailles tous les quelques batches, utilisé pour généraliser sur les tailles d'objets. |
- Créez un dossier d'objets personnalisé via data/obj.names dans lequel tous les noms qu'on veut détecter (drones, UAVs, oiseaux, cerfs-volants, etc.) sont écrits.
- Dans obj.data, le nombre de classes, train.txt, valid, names, et dossier weights sont inclus et sauvegardés.

- Dans train.txt, toutes les données et noms des images sont sauvegardées.

4.4 Entraînement de YOLO sur votre jeu de données
L'entraînement de YOLO pour un jeu de données personnalisé se fait aussi via darknet. Clonez et activez darknet ainsi qu'OpenCV. En prenant le dossier ZIP, le fichier .cfg, .names, obj.data, et train.txt créés ci-dessus, configurez le réseau darknet pour l'entraînement de YOLO v3, en comptant les exécutions.
Après des milliers d'itérations qui peuvent prendre environ 2 heures selon la puissance de notre CPU, un jeu de données entraîné sera prêt à utiliser et intégrer à notre système, avec la perte moyenne indiquée.
4.5 Test du code sur entrée image et vidéo
Après l'entraînement de YOLO pour le jeu de données personnalisé, commencez à tester le code sur votre jeu de données entraîné appelé poids YOLO. Il a 4 classes dans ce cas.
Testez la détection YOLO sur différents. Les poids importants sont bons en termes de précision mais le traitement est un peu lent à cause des faibles images par seconde. Faites une vidéo d'UAV, d'oiseaux et donnez ces données en entrée au code. Tous les objets seront détectés et suivis avec succès avec les étiquettes données, fps et seuil.
Maintenant, le code peut être testé pour des scénarios temps réel via l'entrée temps réel de la webcam : changez la portée de votre caméra, faites voler votre UAV en enregistrant le résultat, vous verrez la sortie requise « Détection et Suivi d'UAV ».

Technologie industrielle
- Capteur de mouvement SmartThings par vision par ordinateur sur Raspberry Pi 3
- Intégration Microsoft Kinect avec Raspberry Pi pour détection humaine temps réel sur robot Sonbi
- Comment la vision robotique améliore l'automatisation : avantages clés et applications
- 4 avantages majeurs de la détection intelligente de fuites pour la sécurité des bâtiments et les économies
- Pourquoi la détection de fuites d'eau IoT de Biz4Intellia booste l'efficacité industrielle – 5 avantages clés
- Sept façons prouvées dont la vision par ordinateur booste l'efficacité et réduit les coûts
- Révolutionner l'Industrie 4.0 : Comment la Vision par Ordinateur Propulse la Fabrication Intelligente
- Drone haute altitude avancé pour surveillance météorologique précise
- Prévenir le gauchissement d'image induit par la chaleur dans les caméras vision ligne de balayage