【YOLACT】 Interpretación del código

Código fuente: https://github.com/dbolya/yolact

num_class es la categoría que cuenta el fondo. Por ejemplo, si su categoría es una persona, recuerde que num_class debería ser 2 en este momento, porque aún necesita contar el fondo.

Estructura de red y salida de YOLACT

Estructura de la columna vertebral de YOLACT

 Entre ellos, _make_layer es el _make_layer en el resnet101 regular, cómo operar puede ver el código fuente https://github.com/dbolya/yolact

 

El azul claro es el mapa de características que se utilizará más adelante.

Estructura FOL de YOLACT

FPN selecciona 1, 2 y 3 en la estructura de la red troncal como entrada para obtener una nueva salida, que son los triángulos naranjas 0 a 4.

Estructura prototipo de YOLACT

Tome la salida 0 en FPN como la entrada de proto, y finalmente obtenga la salida de proto (1, 138, 138, 32).

Estructura pred_heads de YOLACT

Entre ellos, 3 significa que hay 3 cuadros de anclaje preestablecidos en cada posición, y luego todos los mapas de características en FPN se operan para obtener el bbox, conf, mask, priors y proto correspondientes.

También hay un segmento de salida, la operación específica se muestra en la siguiente figura:

En resumen, los resultados de producción durante el entrenamiento de la red incluyen:

'loc': desplazamiento de predicción de cada caja de anclaje, la forma es (1, 19248, 4)

'conf': predicción de categoría para cada caja de anclaje, la forma es (1, 19248, num_class)

'máscara': es el coeficiente de máscara señalado en el papel, la forma es (1, 19248, 32)

'priors': coordenadas predeterminadas de anchorbox, la forma es (19248, 4)

'proto': mapa de características de segmentación utilizado junto con el coeficiente de máscara, la forma es (1, 138, 138, 32)

'segm': obtenga un mapa de calor de segmentación similar, la forma aquí es (1, num_class-1, 69, 69), calculo que segm se usa para hacer que la red converja rápidamente.

Función de pérdida de YOLACT

El método de llamada específico es la clase NetLoss (nn.Module) en train.py

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

Luego, introduzca estos parámetros:

net: es la estructura de red anterior.

preds: es un diccionario, la fuente roja de arriba es el contenido del diccionario en preds.

objetivos: la forma general es (lote, n, 5), el lote es la entrada del tamaño de lote convencional, n indica que hay varios objetos objetivo en una imagen, los primeros 4 de 5 indican las coordenadas del objeto objetivo y el quinto número La categoría del objeto de destino.

máscaras: la forma general es (lote, n, 550, 550). Esta n no es fija. El número de objetos de destino obtenidos para cada imagen en el lote es diferente. Esta máscara es la misma que la máscara.

num_crowds: (lote,) indica el grado de congestión, 0 indica que no hay congestión, 1 indica congestión, generalmente 0.

 

190 artículos originales publicados · elogiados 497 · 2.60 millones de visitas +

Supongo que te gusta

Origin blog.csdn.net/u013066730/article/details/104049325
Recomendado
Clasificación