Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Technologie industrielle

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. Détection et suivi robustes d UAV par vision par ordinateur pilotée par IA

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 :

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 :

2.4 Exigences logicielles

3. Algorithmes pour la détection d'objets

Beaucoup d'algorithmes existent pour la détection d'objets. En voici quelques-uns :

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.
  1. Robuste
  2. Taux de détection très élevé
  3. Utilise différents classifieurs examinant chacun une portion différente de l'image
  4. Rapide
  5. Bon pour détecter les bords et lignes
  1. Ne peut pas détecter les visages inclinés ou tournés
  2. Sensible aux conditions d'éclairage
  3. Ne peut pas détecter les objets en mouvement
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.
  1. Détermine les caractéristiques par entraînement (donc plus grand degré de liberté)
  2. Utilise une classification unique qui examine l'image entière
  3. Applique des opérations matricielles
  4. Précis
  1. Grand jeu de données requis
  2. Coûteux
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.
  1. Peut détecter plusieurs objets dans la même image
  2. Exécution en temps réel
  3. Ultra rapide
  4. Haute performance
  5. Pas d'erreurs de fond
  1. Détecte un seul objet par cellule de grille
  2. Favorise la performance sur la précision
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.
  1. Temps de calcul plus élevé
  2. Haute précision
  3. Compromis exactitude/vitesse modéré
  1. Performant pour gros objets mais baisse pour petits objets
  2. Détection bout en bout, trop lente
  3. Coûteuse en calcul

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

  1. 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 Détection et suivi robustes d UAV par vision par ordinateur pilotée par IA
  2. 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.
  3. 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. Détection et suivi robustes d UAV par vision par ordinateur pilotée par IA

4.2 Préparation du jeu de données

  1. 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.

  1. 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.

Détection et suivi robustes d UAV par vision par ordinateur pilotée par IA

4.3 Configuration de YOLO

Pour la configuration, suivez ces étapes :

  1. Installez darknet avec YOLO v3.
  2. 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éé.
  3. 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.
  4. 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.
  1. 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.
  2. Dans obj.data, le nombre de classes, train.txt, valid, names, et dossier weights sont inclus et sauvegardés. Détection et suivi robustes d UAV par vision par ordinateur pilotée par IA
  3. Dans train.txt, toutes les données et noms des images sont sauvegardées. Détection et suivi robustes d UAV par vision par ordinateur pilotée par IA

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 ».

Détection et suivi robustes d UAV par vision par ordinateur pilotée par IA

Technologie industrielle

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