【YOLACT】 Interprétation du code

Code source: https://github.com/dbolya/yolact

num_class est la catégorie qui compte l'arrière-plan. Par exemple, si votre catégorie est une personne, n'oubliez pas que num_class doit être 2 à ce stade, car vous devez toujours compter l'arrière-plan.

Structure et sortie du réseau de YOLACT

Structure de base de YOLACT

 Parmi eux, _make_layer est le _make_layer dans le resnet101 régulier, comment fonctionner peut voir le code source https://github.com/dbolya/yolact

 

Le bleu clair est la carte des fonctionnalités qui sera utilisée plus tard.

Structure FOL de YOLACT

FPN sélectionne 1, 2 et 3 dans la structure de dorsale comme entrée pour obtenir une nouvelle sortie, qui est des triangles orange 0 à 4.

Proto structure de YOLACT

Prenez la sortie 0 dans FPN comme entrée de proto et obtenez finalement la sortie de proto (1, 138, 138, 32).

Structure pred_heads de YOLACT

Parmi eux, 3 signifie qu'il y a 3 anchor_box prédéfinis dans chaque position, puis toutes les cartes d'entités dans FPN sont exploitées pour obtenir la bbox, conf, mask, priors et proto correspondants.

Il existe également un segment de sortie, l'opération spécifique est illustrée dans la figure suivante:

Ainsi , le résumé de sortie, la formation du réseau preds il comprend:

'loc': décalage de prédiction de chaque boîte d'ancrage, la forme est (1, 19248, 4)

'conf': prédiction de catégorie pour chaque ancre, la forme est (1, 19248, num_class)

'masque': est le coefficient de masque indiqué dans le papier, la forme est (1, 19248, 32)

' priors ': coordonnées de l'ancre prédéfinies, la forme est (19248, 4)

'proto': carte d'entités de segmentation utilisée en conjonction avec le coefficient de masque, la forme est (1, 138, 138, 32)

'segm': obtenez une carte thermique de segmentation similaire, la forme est ici (1, num_class-1, 69, 69), j'estime que segm est utilisé pour faire converger rapidement le réseau.

Fonction de perte de YOLACT

La méthode d'appel spécifique est la classe NetLoss (nn.Module) dans train.py

self.criterion(self.net, preds, targets, masks, num_crowds)

Ensuite, introduisez ces paramètres:

net: est la structure du réseau ci-dessus.

preds: est un dictionnaire, la police rouge ci-dessus est le contenu du dictionnaire dans preds.

cibles: la forme générale est (lot, n, 5), lot est l'entrée de la taille de lot conventionnelle, n indique qu'il y a plusieurs objets cibles dans une image, les 4 premiers de 5 indiquent les coordonnées de l'objet cible et le cinquième nombre La catégorie de l'objet cible.

masques: la forme générale est (lot, n, 550, 550). Ce n n'est pas fixe. Le nombre d'objets cibles obtenus pour chaque image du lot est différent. Ce masque est le même que le maskrcnn.

num_crowds: (batch,) indique le degré de congestion, 0 indique aucune congestion, 1 indique une congestion, généralement 0.

 

Publié 190 articles originaux · loué 497 · 2,60 millions de vues +

Je suppose que tu aimes

Origine blog.csdn.net/u013066730/article/details/104049325
conseillé
Classement