Máscara de la serie DETR Frozen-DETR: segmentación de instancias de alta calidad con notas de lectura en papel de una GPU
- 1. Resumen
- 2. Introducción
- 3. Trabajo relacionado
- 4. Métodos de este artículo.
- 5. Comparación con SOTA
- 6. Experimento y análisis de ablación.
-
-
- Tamaño de salida de RoIAlign
- Época de entrenamiento
- fluctuación a gran escala
- Diseño de encabezado de máscara de instancia.
- Tamaño de Bach
- Índice de capa del mapa de características del codificador
- El impacto de la profundidad del codificador de funciones de imagen y el codificador de funciones de cuadro
- Afinando el efecto de DETR
- Resultados cualitativos
-
- 7. Conclusión
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.
- Dirección en papel: Mask Frozen-DETR: Segmentación de instancias de alta calidad con una GPU
- Dirección de código: versión arxiv no proporcionada
- Se espera que se presente en: una conferencia importante
- Ps: Notas de lectura para una publicación de blog cada semana en 2023. Más información útil en la página de inicio . Bienvenido a seguirme. Espero su participación entre los 5000 fanáticos ~
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.
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:
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 _yo∈Rre }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ónF∈Rdiecisé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}}C1∈Rdiecisé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}}mi∈R64HW× 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}H,W \mathsf{W}W,d \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}}METROyo∈RHW representa el último mapa de probabilidad de máscara predicho. La siguiente imagen muestra la hoja de ruta general:
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}}Ryo∈RHW × d,bi \mathbf{b}_ibyoIndica que según qi \mathbf{q}_iqyoCuadro delimitador previsto. Configuración predeterminada h = 32 \mathsf{h}=32h=32,w = 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
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 0− 4,β 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 0− 5 , 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:
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
4.3 Codificador de funciones de caja
La hoja de ruta del codificador de funciones de Box se muestra a continuación:
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}}F∈Rdiecisé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
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
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}}C1∈Rdiecisé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}GN和PWC onv \mathrm{PWConv}PWConv se refiere a regularización de grupo y convolución puntual respectivamente.
resultado
5. Comparación con SOTA
6. Experimento y análisis de ablación.
Tamaño de salida de RoIAlign
Época de entrenamiento
fluctuación a gran escala
Diseño de encabezado de máscara de instancia.
Tamaño de Bach
Índice de capa del mapa de características del codificador
El impacto de la profundidad del codificador de funciones de imagen y el codificador de funciones de cuadro
Afinando el efecto de DETR
Resultados cualitativos
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.