Implémentez la suppression non maximale utilisée pour la détection d'objets.
Sont présentés ici l'intersection sur union et la suppression non maximale utilisée dans Computer Vision: Object Detection Part2-Single Shot Multi Detector.
Non Maximum Suppression (NMS) Dans la détection d'objet, comme le montre la figure ci-dessous, plusieurs régions candidates qui sont supposées avoir un objet peuvent être obtenues pour un objet reconnu.
La partie entourée par le rectangle coloré pointe vers la zone candidate et l'affichage en haut à gauche de chaque zone candidate montre la catégorie et la certitude des objets existant dans la zone candidate.
La suppression non maximale est un processus qui veut conserver uniquement les zones candidates avec la plus grande certitude parmi les multiples zones candidates obtenues, c'est-à-dire supprime celles qui ne sont pas les maximums.
Maintenant que l'objectif de réduire les zones candidates a été décidé, réfléchissons à la manière d'y parvenir.
Intersection over Union (IoU) La suppression non maximale effectue un traitement de seuil basé sur Intersection over Union (IoU), qui est un indice pour quantifier le degré de chevauchement, entre la région candidate avec la certitude d'objet maximale et d'autres régions candidates.
Compte tenu des deux zones candidates comme indiqué dans la figure ci-dessous, l'IoU peut être calculée à partir de la formule suivante.
IoU = \frac{a \cap b}{a \cup b}
$ A \ cap b $ et $ a \ cup b $, qui sont les symboles utilisés dans la théorie des ensembles, représentent respectivement les zones colorées dans la figure ci-dessous. Lors de la mise en œuvre, calculez l'IoU en trouvant la surface de chaque zone candidate, la partie commune et la surface totale.
IoU prend une valeur de [0, 1], plus le chevauchement est grand, plus la valeur est proche de 1, et plus le chevauchement est petit, plus la valeur IoU est petite. Par conséquent, définissez le seuil à l'avance et supprimez la zone candidate avec une IoU supérieure au seuil. Si la valeur IoU est inférieure au seuil, on considère qu'un autre objet est détecté et la zone candidate est laissée.
・ Processeur Intel (R) Core (TM) i7-6700 4,00 GHz
・ Windows 10 Professionnel 1909 ・ Python 3.6.6 ・ Numpy 1.17.3 ・ Opencv-contrib-python 4.1.2.30
Le programme implémenté est publié sur GitHub.
non_maximum_suppression.py
Lorsque le seuil a été défini sur 0,1 et exécuté, le grand nombre de zones candidates initialement affichées a été réduit à un.
Computer Vision : Object Detection Part2 - Single Shot Multi Detector
Tatsuya Harada. «Reconnaissance d'image de la série professionnelle Machine Learning», Kodansha, 2017.
Recommended Posts