Etude de cas : Table des matières 1. Qu'est-ce que YOLO et pourquoi est-il util

Etude de cas : Table des matières 1. Qu'est-ce que YOLO et pourquoi est-il utile ? 2. Comment fonctionne le cadre YOLO ? 3. Comment coder les boîtes englobantes ? 4. Intersection sur l'Union et la suppression non maximale 5. Boîtes d'ancrage 6. Combiner toutes les idées ci-dessus Qu'est-ce que YOLO et pourquoi est-il utile ? Les techniques de la famille R-CNN utilisent principalement les régions pour localiser les objets dans l'image. Le réseau n'examine pas l'image dans son intégralité, mais uniquement les parties de l'image qui ont le plus de chances de contenir un objet. Le cadre YOLO (You Only Look Once), quant à lui, traite la détection d'objets d'une manière différente. Il prend l'image entière en une seule fois et prédit les coordonnées des boîtes englobantes et les probabilités de classe pour ces boîtes. Le plus grand avantage de l'utilisation de YOLO est sa superbe vitesse - il est incroyablement rapide et peut traiter 45 images par seconde. YOLO comprend également la représentation généralisée des objets. Il s'agit de l'un des meilleurs algorithmes de détection d'objets et ses performances sont comparables à celles des algorithmes R-CNN. Dans les prochaines sections, nous allons apprendre les différentes techniques utilisées dans l'algorithme YOLO. Les explications suivantes sont inspirées du cours d'Andrew NG sur la détection d'objets qui m'a beaucoup aidé à comprendre le fonctionnement de YOLO. Comment fonctionne le cadre YOLO ? Maintenant que nous avons compris pourquoi YOLO est un cadre si utile, voyons comment il fonctionne réellement. Dans cette section, j'ai mentionné les étapes suivies par YOLO pour détecter des objets dans une image donnée. YOLO prend d'abord une image en entrée : Le cadre divise ensuite l'image d'entrée en grilles (disons une grille de 3 X 3) : La classification et la localisation des images sont appliquées sur chaque grille. YOLO prédit ensuite les boîtes englobantes et les probabilités de classe correspondantes pour les objets (s'il y en a, bien sûr). C'est assez simple, n'est-ce pas ? Décomposons chaque étape pour avoir une compréhension plus fine de ce que nous venons d'apprendre. Nous devons transmettre les données étiquetées au modèle afin de l'entraîner. Supposons que nous ayons divisé l'image en une grille de taille 3 X 3 et qu'il y ait un total de 3 classes dans lesquelles nous voulons que les objets soient classés. Disons que les classes sont respectivement piéton, voiture et moto. Ainsi, pour chaque cellule de la grille, l'étiquette y sera un vecteur à huit dimensions : Ici, pc définit si un objet est présent ou non dans la grille (c'est la probabilité) bx, by, bh, bw spécifient la boîte de délimitation si un objet est présent. c1, c2, c3 représentent les classes. Ainsi, si l'objet est une voiture, c2 sera égal à 1 et c1 et c3 seront égaux à 0, et ainsi de suite. Disons que nous sélectionnons la première grille de l'exemple ci-dessus : Comme il n'y a pas d'objet dans cette grille, pc sera égal à zéro et l'étiquette y pour cette grille sera : Ici, " ?" signifie que le contenu de bx, by, bh, bw, c1, c2 et c3 n'a pas d'importance puisqu'il n'y a pas d'objet dans la grille. Prenons une autre grille dans laquelle nous avons une voiture (c2 = 1) : Avant d'écrire l'étiquette y de cette grille, il est important de comprendre comment YOLO décide s'il y a effectivement un objet dans la grille. Dans l'image ci-dessus, il y a deux objets (deux voitures), donc YOLO va prendre le point médian de ces deux objets et ces objets seront assignés à la grille qui contient le point médian de ces objets. L'étiquette y pour la grille du centre gauche avec la voiture sera : Puisqu'il y a un objet dans cette grille, pc sera égal à 1. bx, by, bh, bw seront calculés par rapport à la cellule de grille particulière dont il est question. Puisque la voiture est la deuxième classe, c2 = 1 et c1 et c3 = 0. Ainsi, pour chacune des 9 grilles, nous aurons un vecteur de sortie à huit dimensions. Cette sortie aura une forme de 3 X 3 X 8. Nous avons donc maintenant une image d'entrée et le vecteur cible correspondant. En utilisant l'exemple ci-dessus (image d'entrée - 100 X 100 X 3, sortie - 3 X 3 X 8), notre modèle sera entraîné comme suit : Nous allons exécuter la propagation vers l'avant et vers l'arrière pour entraîner notre modèle. Pendant la phase de test, nous transmettons une image au modèle et exécutons la propagation vers l'avant jusqu'à ce que nous obtenions une sortie y. Afin de garder les choses simples, j'ai expliqué ceci en utilisant une grille de 3 X 3 ici, mais généralement dans les scénarios du monde réel, nous prenons des grilles plus grandes (peut-être 19 X 19). Même si un objet s'étend sur plus d'une grille, il ne sera affecté qu'à une seule grille dans laquelle se trouve son point central. On peut réduire les risques d'apparition de plusieurs objets dans une même cellule de grille en augmentant le nombre de grilles (19 X 19, par exemple). Comment coder les boîtes englobantes ? Comme je l'ai mentionné précédemment, bx, by, bh et bw sont calculés par rapport à la cellule de la grille avec laquelle nous travaillons. Comprenons ce concept à l'aide d'un exemple. Considérons la grille de centre-droit qui contient une voiture : Ainsi, bx, by, bh et bw seront calculés par rapport à cette grille uniquement. L'étiquette y de cette grille sera : pc = 1 puisqu'il y a un objet dans cette grille et puisque c'est une voiture, c2 = 1. Maintenant, voyons comment décider de bx, by, bh et bw. Dans YOLO, les coordonnées attribuées à toutes les grilles sont : bx, by sont les coordonnées x et y du point central de l'objet par rapport à cette grille. Dans ce cas, ce sera (environ) bx = 0,4 et by = 0,3 : bh est le rapport entre la hauteur de la boîte englobante (boîte rouge dans l'exemple ci-dessus) et la hauteur de la cellule de grille correspondante, qui dans notre cas est d'environ 0,9. Donc, bh = 0,9. bw est le rapport entre la largeur du rectangle englobant et la largeur de la cellule de la grille. Donc, bw = 0,5 (approximativement). L'étiquette y de cette grille sera : Notez que bx et by seront toujours compris entre 0 et 1, car le point médian sera toujours situé à l'intérieur de la grille. Alors que bh et bw peuvent être supérieurs à 1 dans le cas où les dimensions de la boîte englobante sont supérieures à celles de la grille. Dans la section suivante, nous examinerons d'autres idées qui peuvent potentiellement nous aider à améliorer encore les performances de cet algorithme. Intersection sur l'Union et la suppression non maximale Voici quelques éléments de réflexion : comment pouvons-nous décider si la boîte englobante prédite nous donne un bon (ou un mauvais) résultat ? C'est là que l'intersection sur l'union entre en jeu. Elle calcule l'intersection sur l'union de la boîte englobante réelle et de la boîte englobante prédite. Considérons les boites englobantes réelle et prédite d'une voiture, comme illustré ci-dessous : Ici, la boîte rouge est la boîte de délimitation réelle et la boîte bleue est la boîte prédite. Comment pouvons-nous décider s'il s'agit d'une bonne prédiction ou non ? IoU, ou Intersection over Union, calcule l'aire de l'intersection sur l'union de ces deux boîtes. Cette aire sera : IoU = Surface de l'intersection / Surface de l'union, c'est-à-dire IoU = Surface de la boîte jaune / Surface de la boîte verte Si IoU est supérieur à 0,5, nous pouvons dire que la prédiction est suffisamment bonne. 0,5 est un seuil arbitraire que nous avons pris ici, mais il peut être modifié en fonction de votre problème spécifique. Intuitivement, plus vous augmentez le seuil, plus les prédictions s'améliorent. Il existe une autre technique qui peut améliorer considérablement le rendement de YOLO : la suppression non maximale. L'un des problèmes les plus courants des algorithmes de détection d'objets est qu'au lieu de détecter un objet une seule fois, ils peuvent le détecter plusieurs fois. Prenons l'image ci-dessous : Ici, les voitures sont identifiées plus d'une fois. La technique de suppression non maximale nettoie tout cela de sorte que nous n'obtenions qu'une seule détection par objet. Voyons comment cette approche fonctionne. 1. Il regarde d'abord les probabilités associées à chaque détection et prend la plus grande. Dans l'image ci-dessus, 0,9 est la probabilité la plus élevée, donc la boîte avec une probabilité de 0,9 sera sélectionnée en premier : 2. Maintenant, il examine toutes les autres boîtes de l'image. Les boîtes qui ont des IoU élevés avec la boîte actuelle sont supprimées. Ainsi, les boîtes avec des probabilités de 0,6 et 0,7 seront supprimées dans notre exemple : 3. Après la suppression des cases, il sélectionne la case suivante parmi toutes les cases avec la plus grande probabilité, qui uploads/S4/ yolov-fr-docx-1.pdf

  • 44
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Fev 16, 2021
  • Catégorie Law / Droit
  • Langue French
  • Taille du fichier 0.3489MB