ça fait longtemps. À partir de la victoire écrasante de Hinton à l'ILSVRC par AlexNet en 2012, Deep Learning est entré sous les projecteurs dans le monde de la reconnaissance d'image.
Dans le monde de la détection d'objets, les modèles utilisant le Deep Learning sont actuellement les plus courants. Si vous regardez https://paperswithcode.com/sota/object-detection-on-coco,
Dans COCO test-dev, le modèle de pointe (SoTA) semble être EfficientDet-D7x. Il y a des dogmatismes et des préjugés, mais j'ai rassemblé sept articles à lire pour comprendre l'Efficient Det.
Je voudrais me concentrer sur la détection d'objets après le Deep Learning et l'écrire de manière aussi concise et fluide que possible.
Si vous ne connaissez pas la détection d'objet, veuillez regarder la vidéo ci-dessous. C'est une vidéo YOLOv2, mais c'est incroyablement cool.
https://youtu.be/VOC3huqHrss
Les détecteurs d'objets sont grossièrement classés en type à deux étages et type à un étage. En tant que connaissances préalables, je vais les présenter brièvement ici.
--Type à deux étages
Ci-dessous, je voudrais saisir les 7 sélections d'articles sur le sujet. Je vais les présenter dans l'ordre de celles de base.
Connu sous le nom de Faster R-CNN. Un article pionnier sur la détection d'objets par Deep Learning. Le créateur des détecteurs à deux étages.
Atteint une augmentation significative du temps d'inférence pour CNN régional (R-CNN) et Fast R-CNN. Réalisez de bout en bout.
--A obtenu SoTA à l'époque avec PASCAL VOC et MS COCO
―― Que dois-je faire pour le rendre encore plus rapide?
Connu sous le nom de YOLO. Un modèle de la même période que le Faster R-CNN. Le créateur des détecteurs à un étage. La vidéo présentée au début est de YOLO v2. Actuellement, l'auteur a changé, mais il a été publié jusqu'à la v5.
Bref, c'est rapide. (SoTA n'a pas été atteint en termes de précision) La détection en temps réel est possible avec Faster R-CNN, mais je pense que YOLO est la véritable détection en temps réel.
―― L'idée simple de se diviser en grilles S × S et de penser pour chaque grille. --Une structure de réseau qui effectue simultanément la «classification» et la «régression» en utilisant la dernière étape de la carte des caractéristiques.
--Achie 45 FPS, ce qui est beaucoup plus rapide que Faster R-CNN. (R-CNN plus rapide est 5FPS)
――Comment pouvez-vous améliorer la précision tout en maintenant la vitesse d'inférence?
Connu sous le nom de SSD. Comme YOLO, c'est un détecteur original à un étage.
Atteint 59 FPS tout en conservant la même précision que le type à deux étages.
--Utilisez une carte des caractéristiques hiérarchiques. L'ancre (appelée boîte par défaut dans l'article) est définie pour chaque carte des caractéristiques.
--A obtenu 74,3% mAP, 59 images par seconde en COV2007. (YOLO est 63,4% mAP, 45 FPS)
――Comment pouvez-vous mieux détecter les petits objets?
Connu sous le nom de FPN. La théorie derrière le BiFPN utilisé dans EfficientDet. Une nouvelle méthode d'extraction de fonctionnalités.
En utilisant des caractéristiques en forme de pyramide, il est facile de reconnaître des objets de différentes échelles.
――Comment pouvez-vous améliorer l'image sans perdre ses fonctionnalités?
Connu sous le nom de Retina Net. Introduit un nouveau concept appelé Focal Loss.
Si vous utilisez Anchor Box, etc., la classe d'arrière-plan augmentera inévitablement, et dans le passé, elle était résolue par Hard Negative Mining, etc., mais elle a été améliorée par une approche différente de changement de perte.
--Aucun.
Connu sous le nom d'EfficientNet. Sur les sept cette fois, seul cet article traite de la «classification» au lieu de la «détection». Annoncé par Google Brain. Adopté car il est utilisé pour l'épine dorsale d'EfficientDet.
Un endroit où une grande précision a été obtenue avec un nombre de paramètres considérablement plus petit qu'auparavant.
--Achieved SoTA avec 5 ensembles de données, y compris ImageNet.
--Aucun.
Connu sous le nom de Det efficace. Le dernier modèle de détection d'objets annoncé en 2020. Un modèle qui change le FPN de RetinaNet mentionné ci-dessus en BiFPN et change le backbone en EfficientNet.
Par rapport aux modèles existants qui ont le même degré de précision, EfficientDet a considérablement réduit le nombre de paramètres. De plus, le nombre d'opérations (FLOP) est petit.
--Proposition de BiFPN, une méthode pour mélanger avec succès des cartes de caractéristiques de plusieurs résolutions pour obtenir une pyramide de caractéristiques. --Introduction de paramètres qui mettent à l'échelle la capacité du réseau, comme EfficientNet, pour équilibrer les FLOP et la précision.
--Selon les résultats expérimentaux de l'article, l'évaluation des performances chez COCO a atteint le SoTA de 55,1%.
--Aucun.
Cela n'a rien à voir avec EfficientDet, mais je laisserai également l'édition supplémentaire. Si vous êtes intéressé, veuillez le lire.
Cette fois, j'ai brièvement écrit sur les points de l'article, mais je pense que cette compréhension s'approfondira si vous lisez l'article original sur cette base.
La mise en œuvre d'EfficientDet est ici. PyTorch: https://github.com/rwightman/efficientdet-pytorch TensorFlow: https://github.com/google/automl/tree/master/efficientdet (décrit dans l'article)
Merci d'avoir lu jusqu'au bout!
Recommended Posts