En tant que l'une des principales applications de la vision par ordinateur, la détection d'objets devient de plus en plus importante dans des scénarios nécessitant une haute précision mais disposant de ressources informatiques limitées, tels que la robotique et les voitures sans conducteur. Malheureusement, de nombreux détecteurs modernes de haute précision ne répondent pas à ces limitations. Plus important encore, les applications de détection d'objets du monde réel s'exécutent sur différentes plates-formes, qui nécessitent souvent des ressources différentes.
La question naturelle est donc de savoir comment concevoir des détecteurs d'objets précis et efficaces qui peuvent également s'adapter à un large éventail de contraintes de ressources ?
EfficientDet: Scalable and Efficient Object Detection, adopté au CVPR 2020, introduit une nouvelle famille de détecteurs d'objets évolutifs et efficaces. S'appuyant sur des travaux antérieurs sur la mise à l'échelle des réseaux de neurones (EfficientNet) et incorporant un nouveau réseau fonctionnel bidirectionnel (BiFPN) et de nouvelles règles de mise à l'échelle, EfficientDet atteint une précision moderne tout en étant 9 fois plus petit et utilise beaucoup moins de calculs que les détecteurs modernes connus. La figure suivante montre l'architecture réseau générale des modèles.
Optimiser l'architecture du modèle
L'idée derrière EfficientDet découle d'un effort visant à trouver des solutions pour améliorer l'efficacité des calculs en examinant systématiquement les modèles de détection de pointe précédents. En général, les détecteurs d'objets ont trois composants principaux: une épine dorsale qui extrait les caractéristiques d'une image donnée; un réseau d'objets qui prend en entrée plusieurs niveaux de fonctions de la dorsale et génère une liste de fonctions combinées qui représentent les caractéristiques caractéristiques de l'image; et un réseau final classe/boîte qui utilise des fonctions combinées pour prédire la classe et l'emplacement de chaque objet.
Après avoir examiné les options de conception de ces composants, nous avons identifié plusieurs optimisations clés pour améliorer les performances et l'efficacité. Les détecteurs précédents utilisaient principalement ResNets, ResNeXt ou AmoebaNet comme backbones, qui sont soit moins puissants, soit moins efficaces que les EfficientNets. Avec la mise en œuvre initiale de la dorsale EfficientNet, une efficacité bien supérieure peut être atteinte. Par exemple, en commençant par une ligne de base RetinaNet qui utilise une dorsale ResNet-50, notre étude d'ablation montre que le simple remplacement de ResNet-50 par EfficientNet-B3 peut améliorer la précision de 3 % tout en réduisant les calculs de 20 %. Une autre optimisation consiste à améliorer l'efficacité des réseaux fonctionnels. Alors que la plupart des détecteurs précédents utilisent simplement le Downlink Pyramid Network (FPN), nous constatons que le FPN en aval est intrinsèquement limité à un flux d'informations à sens unique. Les FPN alternatifs tels que PANet ajoutent un montant supplémentaire en amont au prix de calculs supplémentaires.
Des tentatives récentes d'utilisation de la recherche d'architecture neuronale (NAS) ont découvert une architecture NAS-FPN plus complexe. Cependant, si cette structure de réseau est efficace, elle est également irrégulière et hautement optimisée pour une tâche spécifique, ce qui rend difficile l'adaptation à d'autres tâches. Pour résoudre ces problèmes, nous proposons un nouveau réseau de fonctions bidirectionnelles BiFPN, qui met en œuvre l'idée de combiner des fonctions multicouches de FPN / PANet / NAS-FPN, ce qui permet de transmettre des informations à la fois de haut en bas et de bas en haut. en utilisant des connexions régulières et efficaces.
Pour améliorer encore l'efficacité, nous proposons une nouvelle technique de synthèse normalisée rapide. Les approches traditionnelles traitent généralement toutes les entrées du FPN de la même manière, même à des résolutions différentes. Cependant, nous observons que les caractéristiques d'entrée avec des résolutions différentes contribuent souvent de manière inégale aux fonctions de sortie. Ainsi, nous ajoutons un poids supplémentaire à chaque fonction d'entrée et laissons le réseau apprendre l'importance de chacune. Nous remplacerons également toutes les circonvolutions régulières par des circonvolutions moins chères et profondément séparables. Avec cette optimisation, notre BiFPN améliore encore la précision de 4 % tout en réduisant les coûts de calcul de 50 %.
La troisième optimisation consiste à atteindre le meilleur compromis entre précision et efficacité sous diverses contraintes de ressources. Nos travaux antérieurs ont montré que la co-échelle de la profondeur, de la largeur et de la résolution d'un réseau peut améliorer considérablement les performances de reconnaissance d'images. Inspirés par cette idée, nous proposons une nouvelle méthode de mise à l'échelle composite pour les détecteurs d'objets qui augmente collectivement la résolution/profondeur/largeur. Chaque composant de réseau, c'est-à-dire réseau fédérateur, objet et bloc/classe, aura un facteur de mise à l'échelle complexe qui contrôle toutes les dimensions de mise à l'échelle à l'aide de règles heuristiques. Cette approche permet de déterminer facilement comment mettre à l'échelle le modèle en calculant un facteur d'échelle pour une contrainte de ressource cible donnée.
En combinant le nouveau backbone et BiFPN, nous concevons d'abord une petite ligne de base EfficientDet-D0, puis appliquons une mise à l'échelle composée pour obtenir EfficientDet-D1 à D7. Chaque modèle en série a un coût de calcul plus élevé, couvrant un large éventail de contraintes de ressources allant de 3 milliards de FLOP à 300 milliards de FLOPS, et offre une plus grande précision.
Modèle performant
Évaluer EfficientDet sur le jeu de données COCO, un jeu de données de référence largement utilisé pour la détection d'objets. EfficientDet-D7 atteint une précision moyenne moyenne (mAP) de 52,2, soit 1,5 point de plus que le modèle moderne précédent, en utilisant 4 fois moins de paramètres et 9,4 fois moins de calculs
Nous avons également comparé la taille des paramètres et la latence CPU/GPU entre EfficientDet et les modèles précédents. Avec des contraintes de précision similaires, les modèles EfficientDet fonctionnent 2 à 4 fois plus vite sur le GPU et 5 à 11 fois plus vite sur le processeur que les autres détecteurs. Alors que les modèles EfficientDet sont principalement destinés à la détection d'objets, nous testons également leur efficacité dans d'autres tâches telles que la segmentation sémantique. Pour effectuer des tâches de segmentation, nous modifions légèrement EfficientDet-D4 en remplaçant la tête de détection et les pertes et pertes de charge tout en conservant la même épine dorsale à l'échelle et le même BiFPN. Nous comparons ce modèle aux précédents modèles de segmentation modernes pour Pascal VOC 2012, un ensemble de données de test de segmentation largement utilisé.
Compte tenu de leurs performances exceptionnelles, EfficientDet devrait servir de nouvelle base pour les futures recherches sur la détection d'objets et potentiellement rendre des modèles de détection d'objets très précis utiles dans de nombreuses applications du monde réel. J'ai donc ouvert tous les points d'arrêt du code et du modèle pré-entraîné sur Github.com.