Resumen de puntos clave de DETR (DEtection TRansformer)

Escrito al
frente, DETR se traduce como transformador de detección , que es la abreviatura de Transformadores de detección. Este es el que será un gran éxito en 2017.La estructura transformadora se introdujo por primera vez en el campo de la detección de objetivos.El modelo es el primer trabajo del modelo transformador que ingresa al campo de la detección de objetivos . Utilizando el mecanismo de autoatención de la estructura del transformador para codificar cada objetivo, basándose en su paralelismo, DETR construyó unde extremo a extremomodelo de detección y evita varios tipos de operaciones redundantes en modelos anteriores, simplificando el problema de detección de objetivos .
Enlace al artículo original.
El vídeo de referencia está aquí
. Una revisión de la estructura del transformador está aquí: (1) Explicación detallada de Transformer, el más pequeño de la historia ; (2) Explicación detallada de la autoatención y la atención de múltiples cabezales en Transformer. ;
el código fuente oficial está aquí https://github.com/facebookresearch/detr

Insertar descripción de la imagen aquí


1. Características del modelo

Una de las características más importantes del modelo DETR es que está realmente implementado en el modelo de detección de objetivos.de extremo a extremo: DETR no genera anclajes y no tiene NMS para filtrar resultados redundantes de baja calidad al final de la fase de inferencia . No introduce ningún conocimiento previo artificial, lo que simplifica la canalización del modelo . Otra característica de DETR es queIntroducir transformerestructuraCombinado con información global a través de esta estructura , el resultado final de la predicción colectiva se genera en paralelo considerando la relación entre objetivos .


2. Estructura DETR

Insertar descripción de la imagen aquí

1. columna vertebral

La columna vertebral de la versión básica de DETR utiliza ResNet-50 previamente entrenado en torchvision y congela los parámetros de la capa BN durante el entrenamiento . Supongamos que la dimensión img de entrada es (3, H, W), después de pasar por la columna vertebralse convierte en (2048, H 32 {\frac {H} {32}}32h, W 32 {\frac {W} {32}}32W). Además, en la etapa experimental posterior, el artículo también utilizó ResNet-101 y la versión mejorada DC5. Puede ver el artículo original en esta parte.

2. transformadores

Insertar descripción de la imagen aquí

Antes de pasarlo al codificador, es necesario realizar algún procesamiento en los datos de la red troncal: (1) Debido a transformerla sobrecarga computacional, el canal se reduce de 2048 a 256 mediante una convolución 1x1. (2) Convertir a entrada de secuencia, aplanar es (256, H 32 ∗ W 32 {\frac {H}{32}} * {\frac {W}{32}}32h32W), la longitud de un vector es 256. Para conocer los parámetros específicos del módulo, consulte el código fuente oficial de DETR.

(1) codificador

El bloque codificador básicamente sigue la estructura del documento La atención es todo lo que necesita , y la codificación de posición utiliza una codificación de posición modificada, al igual que ViT . La estructura de cada bloque codificador es como se muestra en la figura anterior. La parte total del codificador está apilada por N bloques codificadores . La entrada del primer bloque es la entrada de secuencia después de la corrección troncal. Los bloques posteriores utilizan la salida del bloque anterior como entrada. La salida final es la misma que la dimensión de entrada. Igual . Si no tiene claras transformerlas partes, puede revisar los puntos de conocimiento correspondientes al principio de este artículo.

(2) decodificador

La entrada del bloque decodificador es object queries, tenga en cuenta que esta es unaAprendibleLos parámetros de entrada de la secuencia de, en el artículo, la dimensión es (100, 256), la secuencia consta de 100 vectores, cada vector tiene 256 de largo. Como se muestra en la figura, el bloque decodificador generalmente se ajusta a transformerla estructura clásica y contiene dos bloques de atención de múltiples cabezales. Esto es transformerdiferente del original. No se usa atención de múltiples cabezales enmascarada . La razón es que el de aquí se usa para procesa datos de imagen y no es autorregresivo. Modelo, requiere salida paralela. El primer bloque de atención de múltiples cabezales se usa simplemente object queriescomo entrada y codificación de posición, y el segundo bloque de atención de múltiples cabezales usa la entrada de la capa superior y la salida final del codificador como entrada, más object queriesla codificación de posición Q y la posición modificada utilizada. en el codificador se codifica en codificación de posición K, como se muestra en la figura anterior. Este es un enfoque muy cruel, el propósito es fortalecer continuamente el modelo para aprender la relación entre la información global y las vistas de destino. La parte del decodificador está apilada por M bloques decodificadores. La dimensión de salida finalobject queries de la parte del decodificador es la misma que .

3. FFN

Insertar descripción de la imagen aquí
FFNs es Feed Forward Networks , que se utiliza para completar la tarea de predicción de clasificación + bbox en los datos generados por la estructura del transformador . Dos cabezas FFNcompartidotransformerProducción.

  • La clase de clasificación FFN utiliza una capa lineal simple y acepta entradas dimensionales (100, 256).Genera un vector de (100, C + 1) dimensiones, C + 1 es el número de " número de categorías de conjuntos de datos + fondo "
  • El FFN predicho por bbox utiliza un MLP de tres capas, que acepta (100, 256) entrada de dimensión y el cambio de dimensión es (100, 256) >> (100, 512) >> (100, 4). Las dos primeras capas se calculan seguidas de la función de activación ReLU , y la última capa se calcula seguida de la función sigmoidea . finalmenteLas dimensiones de salida son (100, 4), que representa las 4 coordenadas bbox (x, y, w, h) del objetivo.

4. PD: con respecto a la configuración del número de consultas de objetos en el decodificador

En el documento, la dimensión de las consultas de objetos se establece en100. El motivo para establecer este número es: el número de objetivos (muestras positivas) en cada imagen en el conjunto de datos COCO es mucho menor que 100. DETR genera un conjunto de resultados con 100 elementos en cada imagen, y el conjunto incluye el fondo (negativo muestra).


3. Cálculo de la función de pérdida

Durante la fase de formación, DETR haDos tipos de pérdidas: (1) La pérdida en la etapa de coincidencia del gráfico bipartito se utiliza para determinar la coincidencia óptima. (2) Pérdida del modelo en condiciones de coincidencia óptima.

1. Coincidencia de gráficos bipartitos

Sabemos que DETR genera un conjunto que contiene N = 100 objetivos de predicción cada vez. Dado que el número de elementos en el conjunto GT es menor que N, usamos ϕ \phiϕComplete el número de elementos del conjunto GT hasta N. Entonces, el número total de coincidencias de gráficos bipartitos entre el conjunto de predicción y el conjunto GT esANN A_{N}^{N}Anortenorte, nuestro conjunto de todas las coincidencias se establece en Σ N \Sigma_{N}Snorte. Lo que tenemos que hacer es encontrar esta coincidencia óptima y la fórmula se muestra en la siguiente figura.

σ ^ = argmin σ ∈ Σ N ∑ i NL coincidencia ( yi , y ^ σ ( i ) ) \hat{\sigma} = \mathop{arg ​​min}\limits_{\sigma \in \Sigma_{N}} \sum_ {i}^{N} L_{match}(y_{i}, \hat{y}_{\sigma(i)})pag^=σ Σnortear g min _inortelmate t c h( yyo,y^σ ( yo ))

σ ^ \sombrero{\sigma}pag^ es la coincidencia óptima,yi y_{i}yyoy ^ σ ( i ) \hat{y}_{\sigma(i)}y^σ ( yo )representan el valor GT y el valor previsto respectivamente.
Algunos estudios previos, incluido este artículo, utilizaronalgoritmo húngaroHungarian algorithmpara calcular la coincidencia óptima.

2. Cálculo de pérdidas después de casar

Con la coincidencia óptima σ ^ \hat{\sigma}pagDespués de ^ , es necesario calcular la pérdida del modelo, la fórmula es la siguiente.

LH ungariano ( y , y ^ ) = ∑ i = 1 N [ − log p ^ σ ^ ( i ) ( ci ) + 1 { ci ≠ ϕ } L caja ( bi , b ^ σ ^ ( i ) ) ] L_ { Húngaro}(y, \hat{y}) = \sum_{i=1}^{N} [-log \; \hat{p}_{\hat{\sigma}(i)}(c_{i}) + \mathbb{1}_{\{c_{i} \ne \phi\}} L_{box}(b_ {i}, \sombrero{b}_{\sombrero{\sigma}(i)})]lhúngaro _ _ _ _ _ _( y ,y^)=yo = 1norte[ l o gpag^pag^ (yo)( cyo)+1{ cyo= ϕ }lcaja o x( segundoyo,b^pag^ (yo))]

L caja ( bi , b ^ σ ^ ( i ) ) = λ iou L iou ( bi , b ^ σ ^ ( i ) ) + λ L 1 ∣ ∣ bi − b ^ σ ^ ( i ) ∣ ∣ 1 L_ {caja }(b_{i}, \hat{b}_{\hat{\sigma}(i)}) = \lambda_{iou}L_{iou}(b_{i}, \hat{b}_{\hat {\sigma}(i)}) + \lambda_{L1} {||b_{i} - \hat{b}_{\hat{\sigma}(i)}||}_{1}lcaja o x( segundoyo,b^pag^ (yo))=yoyo o tulyo o tu( segundoyo,b^pag^ (yo))+yoL 1∣∣ segundoyob^pag^ (yo)∣∣1

Entre ellos yi = (ci, bi) y_{i} = (c_{i}, b_{i})yyo=( cyo,byo) , que representan respectivamente la categoría GT y los parámetros bbox {x, y, w, h}; en la coincidencia óptimaσ ^ \hat{\sigma}pag^ A continuación, las puntuaciones de categoría previstas y los parámetros de bbox sonp ^ σ ^ ( i ) ( ci ) \hat{p}_{\hat{\sigma}(i)}(c_{i})pag^pag^ (yo)( cyo)b ^ σ ^ ( i ) \hat{b}_{\hat{\sigma}}(i)b^pag^( yo ) ;λ iou \lambda_{iou}yoyo o tuλ L 1 \lambda_{L1}yoL 1son hiperparámetros que se utilizan para ajustar los pesos.


4. Rendimiento del modelo

Rendimiento del modelo
La primera columna horizontal en la figura anterior es el modelo entrenado con un ciclo de iteración de 3x en Detectron2; la segunda columna horizontal es el modelo "refinado Faster R-CNN" que usa GIoU y entrenado con un ciclo de iteración de 9x; la tercera columna horizontal es DETR.

Se puede ver que cuando las cantidades de la red troncal y de los parámetros son similares ,El efecto de DETR es equivalente al de Faster R-CNN después de un ajuste fino.(Parte resaltada en la imagen de arriba), DETR es incluso mejor que Faster R-CNN en rendimiento de detección de objetivos medianos y grandes. El autor atribuye esto a la transformerestructura; al mismo tiempo, también se puede ver que DETR es derrotado por Faster. R-CNN en rendimiento de detección de objetivos pequeños.


5. experimento de ablación

Insertar descripción de la imagen aquí

En el artículo DETR, el autor también realizó muchos trabajos relacionados con el modelo.experimento de ablación. La siguiente es una breve introducción a estos experimentos de ablación realizados en algunos artículos. Encuentre las respuestas en los artículos originales para obtener detalles específicos.

  • El impacto de la cantidad de capas de codificador en el modelo : el codificador juega un papel crucial en la división de instancias de destino , por lo que la cantidad de capas de codificador no puede ser demasiado pequeña, de lo contrario conducirá a una disminución en el AP final. Consulte la tabla 2 a continuación.

  • El impacto del número de capas del decodificador en el modelo : el decodificador utiliza la información de destino inicialmente dividida globalmente por el codificador para obtener resultados de inferencia en ciertas ubicaciones de la instancia de destino. Muy pocas capas de decodificador no son suficientes para soportar la relación cruzada entre los objetivos de cálculo del modelo , lo que resulta en una disminución en el rendimiento general del modelo. Consulte las figuras 4 y 6 a continuación.

  • La importancia del FFN interno : El FFN interno es en realidad una capa convolucional 1X1. Tras eliminarlos por completo, el modelo AP cayó 2,3 puntos. Entonces la FFN interna es importante.

  • La importancia de la codificación posicional (dos codificaciones posicionales) : Hay dos codificaciones posicionales en DETR, a saber, " para entrada de codificador y decodificadorspatial positional encodings " y " para decodificador aprendibleobject queries ". El artículo lleva a cabo experimentos de ablación sobre el tiempo de aplicación y los métodos de la codificación de dos posiciones anterior. Consulte la tabla 3 a continuación.

  • El impacto de la función de pérdida en el modelo : La línea base de la función de pérdida en el documento consta de tres partes: 1. Pérdida de clase de clasificación, 2. Pérdida de distancia L1 de bbox, 3. Pérdida de bbox GIoU. El artículo realiza experimentos de ablación en las dos últimas partes para demostrar la superioridad de la línea de base, es decir, los tres elementos son indispensables. Consulte la tabla 4 a continuación.

Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí

Además, el documento también proporciona una introducción más detallada al modelo DETR en el apéndice, que tiene 6 páginas.

Supongo que te gusta

Origin blog.csdn.net/qq_39592053/article/details/128008673
Recomendado
Clasificación