Máscara de la serie DETR Frozen-DETR: segmentación de instancias de alta calidad con notas de lectura en papel de una GPU


escribir delante

  ¡Lo más destacado de este artículo es, obviamente, que puede ejecutarse con una sola GPU! Vale la pena aprender la forma en que se concibe este tema.

1. Resumen

  Este artículo tiene como objetivo estudiar el establecimiento de un segmentador de instancias, Mask Frozen-
DETR, que requiere un tiempo de entrenamiento y GPU mínimos, y puede convertir cualquier modelo de detección de objetos basado en DETR en un modelo de segmentación de instancias. El método propuesto solo necesita entrenar una red de máscaras liviana adicional para predecir máscaras de instancia dentro del cuadro delimitador a través de un detector de objetos congelado basado en DETR. Funciona muy bien en el conjunto de datos COCO y solo requiere una tarjeta V100 16G para el entrenamiento.

Insertar descripción de la imagen aquí

2. Introducción

  Primero, señalamos la dificultad de la segmentación de instancias, algunos métodos recientes: Cascade Mask R-CNN, Mask DINO. Estos métodos suelen utilizar ResNet-50 y Swin-L como columna vertebral y requieren mucho tiempo de GPU para entrenarse.
  Este artículo muestra que los modelos de detección de objetos basados ​​en DETR existentes se pueden transformar en modelos de segmentación de instancias. Tome H \mathcal{H}Tomando H -DETR y DINO-DETR como ejemplos, se proponen dos innovaciones: diseñar una red de segmentación de instancias liviana para utilizar de manera efectiva la salida del detector de objetivos DETR congelado; y demostrar la efectividad del método propuesto en este artículo bajo diferentes modelos a escala.

3. Trabajo relacionado

Detección de objetivos

  La detección de objetos es un campo de investigación básico que implica mucho trabajo: Faster R-CNN, Cascade R-CNN, YOLO, DETR, Deformable DETR, DINO-DETR, H \mathcal{H }H -DETR. El método de este artículo se basa en estos métodos basados ​​en DETR, logrando un rendimiento SOTA y 10 veces la velocidad de entrenamiento.

división de instancias

  El método de segmentación de instancias inicial se basa en la serie R-CNN, con la idea de detectar primero y luego segmentar. Por ejemplo, Máscara R-CNN, Casacde Máscara R-CNN, HTC. Algunos métodos tienen un diseño relativamente simple: SOLO, QueryInst. Existen algunos métodos basados ​​en DETR: MaskFormer, Mask2Former, Mask-DINO. También existen métodos basados ​​en la segmentación de instancias 3D, como SPFormer.

conversar

  La mayoría de los modelos de segmentación de instancias no utilizan los pesos de los modelos de detección de objetos fuera de línea y, por lo tanto, requieren una gran cantidad de tiempo de entrenamiento. El método de este artículo adopta un modelo congelado basado en DETR e introduce un cabezal de segmentación de instancias liviano. La siguiente figura es una comparación de algunos métodos:

Insertar descripción de la imagen aquí

4. Métodos de este artículo.

4.1 Configuración de referencia

  Utilice H\mathcal{H}H -DETR+ResNet50 como línea base y reportaH \mathcal{H}Rendimiento comparativo de H -DETR+Swin-L y DINO-DETR+FocalNet-L. H\mathcal{H}El modelo H -DETR+ResNet50 se entrena previamente en el conjunto de datos Object365 y luego se ajusta en el conjunto de datos COCO.
  En primer lugar, en función de las puntuaciones de consulta generadas por la última capa del decodificador Transformer del modelo de detección de objetivos, se seleccionan las ~100 consultas de objetivos principales para la predicción de máscara. Entonces estas consultas{ qi ∣ qi ∈ R d } i = 1 N \{ { \mathbf{q}_i|\mathbf{q}_i\in\mathbb{R}^\mathsf{d}\}}_{ i =1}^N{ qyo∣q _yoRre }yo = 1nortecon 1/4 1/4Característica de imagen F ⁡ ∈ RHW 16 × d {\operatorname*{F}}\in\mathbb{R}^{\frac{\mathsf{H}\mathsf{W}}{16} a 1/4 originalde la resoluciónFRdieciséisHW× d相乘,得到实例分割 máscaras:
F = C 1 + interpolar ( E ) M i = interpolar ( remodelar ( Sigmoide ( qi F ⊤ ) ) ) \begin{aligned} \text{F}& =\mathrm{C }_1+\text{interpolar}(\mathbf{E}) \\ \mathrm{M}_{i}& =\text{interpolar}(\text{reformar}(\text{Sigmoide}(\mathbf{q} _i\mathbf{F}^\top))) \end{alineado}FMETROyo=C1+interpolar ( mi )=interpolar ( remodelar ( sigmoide ( qyoF )) )
其中C 1 ∈ RHW 16 × d \mathrm{C}_1\in\mathbb{R}^{\frac{\mathsf{H}\mathsf{W}}{16}\times\mathsf{d}}C1RdieciséisHW× d representa el mapa de características generado por Backbone en la primera etapa,E ∈ RHW 64 × d \mathbf{E}\in\mathbb{R}^{\frac{\mathsf{H}\mathsf{W}}{64 }\ veces\mathsf{d}}miR64HW× d representa 1/8 1/8de la salida del codificador del transformadorMapa de características con una resolución original de 1/8 . H\mathsf{H}HW \mathsf{W}Wd \mathsf{d}d representa la altura, el ancho y las dimensiones ocultas de la imagen de entrada, respectivamente. M yo ∈ RHW \mathrm{M}_{i}\in\mathbb{R}^{\mathsf{H}\mathsf{W}}METROyoRHW representa el último mapa de probabilidad de máscara predicho. La siguiente imagen muestra la hoja de ruta general:

Insertar descripción de la imagen aquí
  A continuación, se calcula la puntuación de confianza para reflejar la calidad de la máscara:
si = ci × suma ( M i [ M i > 0,5 ] ) suma ( [ M i > 0,5 ] ) \mathrm{s}_{i}=c_ {i }\times\frac{\mathrm{suma}(\mathbf{M}_{i}[\mathbf{M}_{i}>0.5])}{\mathrm{suma}([\mathbf{M }_ {i}>0.5])}syo=Cyo×suma ([ Myo>0,5 ])suma ( Myo[ myo>0.5 ] )Entre ellos ci c_iCyoRepresenta la iithLa puntuación de clasificación de una consulta de destino.
  A continuación, se utiliza RoIAlign dentro de los cuadros delimitadores previstos para agregar los mapas de características regionales utilizados para el posicionamiento:
R i = reshape ( R o IA lign ( reshape ( F ) , bi ) ) \mathbf{R}_i=\mathrm{reshape} (\mathrm{RoIAlign}(\mathrm{reshape}(\mathbf{F}),\mathbf{b}_i))Ryo=remodelar ( RoIAlign ( reformar ( F ) ,byo))其中R i ∈ RHW × d \mathbf{R}_i\in\mathbb{R}^{\mathsf{H}\mathsf{W}\times\mathsf{d}}RyoRHW × dbi \mathbf{b}_ibyoIndica que según qi \mathbf{q}_iqyoCuadro delimitador previsto. Configuración predeterminada h = 32 \mathsf{h}=32h=32w = 32 \mathsf{w}=32w=32。之后计算实例分割 máscara:
M ir = pegar ( interpolar ( remodelar ( Sigmoide ( qi R i ⊤ ) ) ) ) \mathbf{M}_i^r=\text{pegar}(\text{interpolar}(\text {reformar}(\text{Sigmoide}(\mathbf{q}_i\mathbf{R}_i^\top))))METROir=pegar ( interpolar ( remodelar ( sigmoide ( qyoRi)))) Primero deforme y escale las máscaras del área predicha al tamaño de la imagen original y péguelas en una máscara vacía. También basado en M ir \mathbf{M}_i^rde manera similarMETROirpara calcular la puntuación de confianza.

resultado

Insertar descripción de la imagen aquí
  De acuerdo con los experimentos de referencia en la tabla anterior, se muestra que el rendimiento del modelo se puede mejorar desde tres aspectos: el diseño del codificador de funciones de imagen, el diseño del codificador de funciones de área de cuadro y el diseño de la función de consulta. codificador.
  A continuación, en el experimento de ablación, se congeló toda la red de detectores de objetivos y solo se ajustaron los parámetros adicionales introducidos, entrenándose durante aproximadamente 6 épocas.

Configuración experimental

   Optimizador AdamW, tasa de aprendizaje inicial 1,5 × 1 0 − 4 1,5\times10^{-4}1.5×1 04β 1 = 0,9 \beta_1 =0,9b1=0,9β2 = 0,999 \beta_2 =0,999b2=0,999 , caída de peso5 × 1 0 − 5 5\times10^{-5}5×1 05 , entrene el modelo 88500 veces, es decir, 6 épocas, y la tasa de aprendizaje disminuye en un 10% en 0,9 y 0,95 iteraciones. Los pasos de preprocesamiento de datos son los mismos que los de Deformable DETR, Batch_size 8, todos los experimentos se realizan en una sola tarjeta V100 16G y los indicadores de evaluación son COCO: AP, AP 50, AP75,APS,AM,Al.

4.2 Codificador de funciones de imagen

  Primero, se integra un codificador de características de imagen entrenable para convertir el mapa de características de la imagen en un espacio de características más adecuado, por ejemplo, máscaras de segmentación. La siguiente figura muestra la hoja de ruta general:

Insertar descripción de la imagen aquí
  Como se muestra en la figura anterior, aplique el codificador de características de imagen al mapa de características E \mathbf{E} en el codificador TransformerE中:
F = C 1 + interpolar ( F e ( E ) ) \mathrm{F}=\mathrm{C}_1+\text{interpolar}(\mathcal{F}_e(\mathrm{E}))F=C1+interpolar ( Fe( E )) Entre ellos,F e \mathcal{F}_eFeRepresenta un codificador de características de imagen que tiene como objetivo refinar los mapas de características de imagen de todas las consultas de destino simultáneamente. Su estructura consta de tres tipos de convolución o bloques Transformer.

Bloque codificador deformable

  El diseño del codificador deformable de múltiples escalas se utiliza para apilar bloques de codificadores deformables de múltiples escalas para mejorar el mapa de características de múltiples escalas: E
= [E 1, E 2, E 3, E 4] F e (E) = MultiScaleDeformable E nc ( ∣ E 1 , E 2 , E 3 , E 4 ∣ ) \begin{aligned} \text{E}& =[\mathbf{E}_1,\mathbf{E}_2,\mathbf{E}_3, \mathbf{E}_4 ] \\ \mathcal{F}_e(\mathbf{E})& =\text{MultiScaleDeformable}\mathrm{Enc}(|\mathbf{E}_1,\mathbf{E}_2, \mathbf{E}_3 ,\mathbf{E}_4|) \end{alineado}miFe( E )=[ mi1,mi2,mi3,mi4]=Enc multiescala deformable ( E1,mi2,mi3,mi4 )mi 1 \mathbf{E} _1mi1, mi 2 \mathbf{E}_2mi2, mi 3 \mathbf{E}_3mi3, mi 4 \mathbf{E}_4mi4Representa los mapas de características de diferentes escalas del codificador Transformer en el detector de objetos, respectivamente. Cada codificador deformable de múltiples escalas sigue el diseño de MSDeformAttn → LayerNorm → FFN → LayerNorm, y FFN adopta el diseño de Linear → GELU → Linear.

Bloque codificador Swin Transformer

  Siguiendo el diseño de Swin Transformer, aplique múltiples bloques Swin Transformer apilados al mapa de características de mayor resolución E 1 \mathbf{E}_1mi1Ej:
F e ( E 1 ) = SwinTransform E nc ( E ​​​​1 ) \mathcal{F}_e(\mathbf{E}_1)=\text{SwinTransform}\mathrm{Enc}(\mathbf{E}_1 )Fe( mi1)=Enc SwinTransformer ( E1) Cada bloque Swin Transformer sigue la ruta de LayerNorm → W-MSA → LayerNorm → FFN. W-MSA representa la operación de autoatención de múltiples cabezales de ventana corrediza.

Bloque codificador ConvNext

  Aplique el bloque codificador ConvNext en el mapa de características del codificador Transformer:
F e ( E 1 ) = ConvNextBlock ( E 1 ) \mathcal{F}_e(\mathbf{E}_1)=\text{ConvNextBlock}(\mathbf{E} _1)Fe( mi1)=ConvNextBlock ( E1) Cada bloque ConvNext sigue la ruta de DWC → LayerNorm → FFN. DWC representa un núcleo de convolución a gran escala7 × 7 7\times77×Convolución en profundidad de 7 .

resultado

Insertar descripción de la imagen aquí

4.3 Codificador de funciones de caja

  La hoja de ruta del codificador de funciones de Box se muestra a continuación:

Insertar descripción de la imagen aquí
Como se muestra en la figura anterior, en R i \mathbf{R}_iRyoSimplemente agregue una capa de transformador adicional en:
R i = F b ( R i ) \mathbf{R}_i=\mathcal{F}_b(\mathbf{R}_i)Ryo=Fsegundo( r.yo) De manera similar al codificador de características de imagen, estudie el impacto de diferentes estructuras de codificador de características de caja en el rendimiento del modelo.

mapeador de canales

  Utilice el asignador de canales como una capa lineal simple para reducir F ∈ RHW 16 × d \mathbf{F}\in{\mathbb{R}}^{\frac{\mathsf{HW}}{16}\times\mathsf { d}}FRdieciséisHW× d dimensiones del canal de características y aplique el codificador de características de la región del cuadro en el mapa de características actualizado.

resultado

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

4.4 Codificador de funciones de consulta

Atención objeto a objeto

  La proximidad de los objetos entre sí puede hacer que varias instancias estén en el mismo cuadro delimitador, por lo que se agrega atención de objeto a objeto para ayudar a la consulta de objetos a distinguirlos entre sí. Específicamente, el mecanismo de atención de múltiples cabezas se utiliza para procesar consultas:
[ q 1 , q 2 , ⋯ , q N ] = SelfAttention ( [ q 1 , q 2 , ⋯ , q N ] ) [\mathbf{q}_1, \ mathbf{q}_2,\cdots,\mathbf{q}_N]=\text{SelfAttention}([\mathbf{q}_1,\mathbf{q}_2,\cdots,\mathbf{q}_N])[ q1,q2,,qnorte]=Autoatención ([ q1,q2,,qnorte])

Atención de caja a objeto

  En los detectores de objetos congelados basados ​​en DETR, las consultas de objetos se utilizan para realizar la detección de objetos y procesar todas las características de la imagen en lugar de características regionales individuales. Así, se introduce la atención Box-to-object para transformar las consultas en consultas adaptadas a la tarea de segmentación:
qi = CrossAttention ( qi , R i ) \mathbf{q}_i=\text{CrossAttention}(\mathbf{q}_i,\ matemáticasbf {R}_i)qyo=Atención cruzada ( qyo,Ryo) donde las consultas de destino se actualizan haciendo referencia a las características del área del cuadro.

FFN

  FFN también puede tener una función auxiliar en el ajuste de la representación de consultas de objetos.

resultado

Insertar descripción de la imagen aquí
  Conclusión: simplemente utilice el diseño de atención de caja a objeto.

4.5 Otras mejoras

Pérdida de máscara en píxeles muestreados

  En el proceso de cálculo de la pérdida final se introduce la pérdida de máscara del punto de muestreo. Específicamente, considere NNN puntos, tasa de sobremuestreok ( k > 1 ) k~(k>1)k ( k >1 ) , frecuencia de muestreoβ ( β ∈ [ 0 , 1 ] ) \beta~(\beta\in[0,1])segundo ( segundo [ 0 ,1 ]) . Muestra aleatoriamente k N kNde la máscara de salidak N puntos y seleccione aleatoriamenteβ N \beta Npuntos βN . Luego muestree aleatoriamente otros( 1 − β ) N (1-\beta) N( 1β ) N puntos, calcula esteNNUna pérdida de N puntos.

Puntuación de máscara

  Dado que la puntuación de clasificación generada por DETR congelado no puede reflejar la calidad de la máscara de segmentación, se introduce la puntuación de máscara para ajustar la puntuación de clasificación. Específicamente, el cabezal de puntuación de máscara toma las características de la máscara y del área del cuadro como entrada para predecir las puntuaciones de IoU de las máscaras de salida y GT:
ioui = MLP (Flatten (C onv (C at (M i, R i))))) \ mathrm{iou}_i=\mathrm{MLP}(\mathrm{Flatten}(\mathrm{Conv}(\mathrm{Cat}(\mathbf{M}_i,\mathbf{R}_i))))yo tuyo=MLP ( Aplanar ( Conv ( Gato ( Myo,Ryo)))) Entre ellos, Cat, Conv y MLP representan operaciones de empalme, capas convolucionales y perceptrones multicapa, respectivamente. La puntuación iou predicha por el encabezado de puntuación de la máscara se utiliza para ajustar la puntuación de clasificación:
si = ciioui \mathrm{s}_i=\mathrm{c}_i\mathrm{i}\mathrm{o}\mathrm{u}_isyo=Cyoyo tuyodentro si s_isyoes la puntuación de confianza de la máscara de salida.

Estructura del cuello para características de la columna vertebral.

  Característica C 1 ∈ RHW 16 × d \mathbf{C}_1\in\mathbb{R}^{\frac{\mathsf{HW}}{16}\times\mathsf{d}}C1RdieciséisHW× d puede no contener suficiente información semántica. Entonces se introduce un bloque de cuello simple para codificar información semántica en un mapa de características de alta resoluciónC 1 \mathbf{C}_1C1:
C 1 = GN ( PWC onv ( C 1 ) ) \mathbf{C}_1=\mathrm{GN}(\mathrm{PWConv}(\mathbf{C}_1))C1=GN ( PWConv ( C1)) dondeGN \mathrm{GN}GNPWC onv \mathrm{PWConv}PWConv se refiere a regularización de grupo y convolución puntual respectivamente.

resultado

Insertar descripción de la imagen aquí

5. Comparación con SOTA

Insertar descripción de la imagen aquí

6. Experimento y análisis de ablación.

Tamaño de salida de RoIAlign

Insertar descripción de la imagen aquí

Época de entrenamiento

Insertar descripción de la imagen aquí

fluctuación a gran escala

Insertar descripción de la imagen aquí

Diseño de encabezado de máscara de instancia.

Insertar descripción de la imagen aquí

Tamaño de Bach

Insertar descripción de la imagen aquí

Índice de capa del mapa de características del codificador

Insertar descripción de la imagen aquí

El impacto de la profundidad del codificador de funciones de imagen y el codificador de funciones de cuadro

Insertar descripción de la imagen aquí

Afinando el efecto de DETR

Insertar descripción de la imagen aquí

Resultados cualitativos

Insertar descripción de la imagen aquí

7. Conclusión

  Este artículo muestra en detalle cómo convertir un modelo de detección de objetos basado en DETR fuera de línea en un modelo de segmentación de instancias con un tiempo y costo de capacitación mínimos. Los experimentos demuestran que es muy eficaz.

escribe en la parte de atrás

  Después de posponer las cosas durante tanto tiempo, finalmente terminé de escribir esta publicación de blog. La idea del artículo es aprovechar la idea de Parámetro-Eficiencia e introducir nuevas estructuras para afinar el modelo original, que es algo. Especialmente los experimentos son muy abundantes. También hay desventajas: la figura 1 no se cita en el artículo, hay muchos experimentos de ablación y no es necesario separarlos todos, y varios se pueden fusionar.

Supongo que te gusta

Origin blog.csdn.net/qq_38929105/article/details/132496782
Recomendado
Clasificación