Detección de objetos Reconocer y gobernar. Parte 2


En una publicación anterior, comencé a comprender los modelos de detección de objetos en dos etapas y hablé sobre los más básicos y, en consecuencia, el primero de ellos: R-CNN . Hoy nos fijamos en otros modelos de esta familia: Fast R-CNN y Faster R-CNN . ¡Vamos!

R-cnn rápido


Dado que R-CNN es una red lenta y poco eficiente, los mismos autores propusieron una mejora en forma de una red R-CNN rápida .

El proceso de procesamiento de imágenes ha cambiado y se ve así:

  1. Extraer un mapa de atributos de imagen (no para cada hipótesis por separado, sino para toda la imagen);
  2. Búsqueda de hipótesis (similar a R-CNN basada en búsqueda selectiva);
  3. – .. ( );
  4. ( , SVM-).

RoI layer


En el concepto original de R-CNN, cada hipótesis propuesta se procesa individualmente utilizando CNN; este enfoque se ha convertido en una especie de cuello de botella. Para resolver este problema, se desarrolló una capa de Región de interés (RoI) . Esta capa le permite procesar una vez la imagen completa utilizando la red neuronal, recibiendo en la salida un mapa de características, que luego se utiliza para procesar cada hipótesis.

La tarea principal de la capa RoI es comparar las coordenadas de las hipótesis (coordenadas del cuadro delimitador) con las coordenadas correspondientes del mapa de características. Al hacer un "corte" del mapa de entidades, la capa RoI la alimenta a la entrada de la capa totalmente conectada para la determinación posterior de la clase y las correcciones a las coordenadas (consulte las siguientes secciones).

Surge una pregunta lógica: ¿cómo aplicar hipótesis de diferentes tamaños y relaciones de aspecto a la entrada de una capa totalmente conectada? Para esto, se necesita una capa RoI, que convierte la imagen con dimensionesIh×Iw de tamañoOh×Ow . Para hacer esto, debe dividir la imagen original en una cuadrícula de tamañoOh×Ow (tamaño de celda aproximadamente ) y de cada celda seleccione el número máximo. Supongamos que hay un mapa de características 5 × 5 y la hipótesis deseada en este mapa tiene coordenadas (1,1,4,5) (las dos primeras coordenadas son la esquina superior izquierda, las dos últimas son la inferior derecha). La capa posterior totalmente conectada espera una dimensión de 4 × 1 (es decir, una matriz alargada de 2 × 2). Luego dividimos la hipótesis en bloques desiguales de diferentes dimensiones (la etapa de Agrupación) y tomamos el número máximo en cada una de ellas (la etapa de Agrupación y, como resultado, la etapa de Salida).IhOh×IwOw




Por lo tanto, se hace posible procesar toda la imagen y luego trabajar con cada hipótesis sobre la base de un mapa de características.

Total:

  • Entrada: coordenadas de la hipótesis y un mapa de características de la imagen original;
  • Salida: representación vectorial de la hipótesis.

Capa totalmente conectada y sus salidas


En la versión anterior de R-CNN, se usaron clasificadores SVM separados, en la misma implementación se reemplazaron con una salida de dimensión SoftMax Nc+1. Se observa que la pérdida de precisión es inferior al 1%.

La salida de los regresores se procesa utilizando NMS (supresión no máxima).

Total:

  • Entrada: representación vectorial de la hipótesis;
  • Salida: probabilidades de hipótesis pertenecientes a clases y correcciones a las coordenadas del cuadro delimitador.

Pérdida de tareas múltiples


En el entrenamiento simultáneo de la red, se utiliza una función de pérdida especial para las tareas de retroceder el cuadro delimitador y la clasificación:

L(P,u,tu,v)=Lcls(P,u)+λ[u1]Lloc(tu,v)


Aquí:

  • λnecesario para ajustar el equilibrio entre las dos funciones (los autores utilizaronλ = 1);
  • ues la clase correcta;
  • Lclsson las funciones de error para la clasificaciónLcls(P,u)=logPu;
  • LlocSmoothL1- v=(vx,vy,vw,vh)tu=(txu,tyu,twu,thu):

    SmoothL1={12x2,if|x|<1|x|12,otherwise


    , xtiuvi. L1 L2 , x.



Para una mejor convergencia, los autores utilizaron el siguiente enfoque para la formación del lote:

  1. Se selecciona el número de hipótesis en el lote R.
  2. Seleccionado aleatoriamente Nimágenes.
  3. Para cada uno de Nimágenes tomadasRN hipótesis (es decir, de manera uniforme en cada imagen).

Al mismo tiempo, las hipótesis positivas (25% del lote completo) y negativas (75% del lote completo) se incluyen en R. Las hipótesis que se superponen con la ubicación correcta del objeto en más de 0.5 (IoU) se consideran positivas. Los negativos se toman de acuerdo con la regla de minería negativa dura: los casos más erróneos (aquellos con IoU en el rango [0.1,0.5).

Además, los autores sostienen que con los parámetrosN=2 yR=128 red aprende muchas veces más rápido que conN=128 yR=128 (es decir, una hipótesis de cada imagen).

R-cnn más rápido


Una mejora lógica adicional es una forma de eliminar la dependencia del algoritmo de búsqueda selectiva. Para hacer esto, representaremos todo el sistema como una composición de dos módulos: la definición de hipótesis y su procesamiento. El primer módulo se implementará utilizando la Red de Propuesta de Región (RPN) , y el segundo es similar a Fast R-CNN (comenzando con la capa RoI).

Por lo tanto, esta vez el proceso de trabajar con la imagen ha cambiado y ahora sucede de esta manera:

  1. Eliminar un mapa de características de imagen usando una red neuronal;
  2. Generación basada en el mapa obtenido de signos de hipótesis: determinación de coordenadas aproximadas y la presencia de un objeto de cualquier clase;
  3. Comparación de las coordenadas de hipótesis utilizando RoI con un mapa de características obtenido en el primer paso;
  4. Clasificación de hipótesis (ya para la definición de una clase particular) y refinamiento adicional de coordenadas (de hecho, puede no aplicarse).

La mejora principal ocurrió precisamente en el lugar donde se generaron las hipótesis; ahora para esto hay una pequeña red neuronal separada, que se llamó Red de Propuesta de Región .


Red de propuestas regionales


El objetivo final de este módulo es reemplazar completamente el algoritmo de búsqueda selectiva. Para una operación más rápida, se necesitan pesos comunes con una red que extraiga los atributos necesarios. Por lo tanto, la entrada RPN es un mapa de características obtenido después de esta red. Los autores del artículo original usan la red VGG16 para extraer características, cuyo resultado se considera la última capa convolucional: conv5_3. Dicha red tiene las siguientes características del campo receptivo :

  • Compresión efectiva (avances efectivos, S0): dieciséis
  • Tamaño de campo receptivo r0): 196

Esto significa que el mapa de características será 16 veces más pequeño que el tamaño de la imagen original (el número de canales es 512), y cada valor en sus celdas se ve afectado por los píxeles de la imagen original en un rectángulo de 196 × 196. Por lo tanto, resulta que si usa la entrada estándar VGG16 224 × 224, ¡casi toda la imagen afectará la formación del valor de la celda central del mapa de características (14.14)! Según el mapa de características recibido, RPN para cada celda producek hipótesis (en la implementación original k=9) diferentes tamaños y relaciones de aspecto. Entonces, para el tamaño estándar, ¡esto es 14 × 14 × 9 = 1764 hipótesis!

Según la imagen a continuación, consideramos el algoritmo del módulo RPN con más detalle (imagen en la que se puede hacer clic):


  1. Obtenga un mapa de características c×H16×W16del paso anterior
  2. 3×3 ( – ). , (P0=106, r0=228).

  • (i,j) c( 512).

  1. 1×1 c^( cc^):
    1. (cls) c^=2k– - ( 2 ).
    2. (reg) c^=4k– .

    , k×2y k×4. Así, obtenemos las matrices, dondei la línea corresponde a los valores para una hipótesis particular.

Surge una pregunta lógica: ¿cómo se pueden determinar las coordenadas absolutas de las hipótesis a partir del vector que ingresa a la capa reg? La respuesta es simple, de ninguna manera. Para la correcta determinación de las coordenadas, es necesario utilizar los llamados anclajes y correcciones a sus coordenadas.

Un ancla es un cuadrángulo de diferentes relaciones de aspecto (1: 1, 2: 1, 1: 2) y tamaños (128 × 128, 256 × 256, 512 × 512). El centro del ancla es el centro de la celda (i,j) signos de tarjeta. Entonces, por ejemplo, tomemos una celda (7,7), cuyo centro son los valores (7.5,7.5), que corresponde a las coordenadas (120,120) de la imagen original (16 × 7.5). Compare con estas coordenadas los rectángulos de tres relaciones de aspecto y tres tamaños (un total de 3 × 3 = 9). En el futuro, la capa de registro producirá ediciones apropiadas con respecto a estas coordenadas, ajustando así la ubicación y la forma del cuadro delimitador.

Total:

  • Entrada: mapa de características de la imagen original;
  • Salida: hipótesis que contienen un objeto.

Función de pérdida


Para el entrenamiento RPN, se utiliza la siguiente notación de clase:

  • Positivo son todos los anclajes que tienen una intersección (IoU) de más de 0.7 o que tienen la intersección más grande entre todos los anclajes (se aplica si no hay intersección de más de 0.7).
  • Negativos son todos los anclajes que tienen una intersección de menos de 0.3.
  • Todos los demás presentadores no participan en el entrenamiento (de hecho, son neutrales).

Entonces la clase pilos anclajes se otorgan de acuerdo con la siguiente regla:

pi={1ifIoU>0.70ifIoU<0.3nothingotherwise


Con tal notación, se minimiza la siguiente función:

L({pi},{ti})=1NclsiLcls(pi,pi)+λ1NlocipiLreg(ti,ti)


Aquí:

  • i- número de anclaje;
  • pi- la probabilidad de encontrar el objeto en iancla;
  • pi- el número de clase correcto (indicado arriba);
  • ti- 4 correcciones predichas a las coordenadas;
  • ti- correcciones esperadas (verdad del terreno) a las coordenadas;
  • Lcls(pi,pi)- pérdida binaria logarítmica;
  • Lreg(ti,ti)- SmoothL1 pérdida. Solo se activa sipi=1es decir si la hipótesis contiene al menos algún objeto;
  • {pi}y {ti}- salidas de los modelos de clasificación y regresión, respectivamente;
  • λ- coeficiente para ajustar el equilibrio entre clasificación y regresión.

Ambas partes de la pérdida combinada se normalizan a Nclsy Nlocrespectivamente. Los autores usaronNcls igual al tamaño del mini-lote (256), y Nlocigual al número de anclas.

Para regresar las correcciones al cuadro delimitador, los valores se inicializan y se calculan de la siguiente manera:

tx=(xxa)wa,tx=(xxa)wty=(yya)ha,ty=(yya)hatw=logwwa,tw=logwwath=loghha,th=loghha


aquí x, y, wy hindique el centro, el ancho y la altura del cuadro delimitador. Variablesx, xy xadenotar predicción, verdad fundamental y el significado de las anclas (para y, wy hsimilar).

El entrenamiento en la lista completa de anclas tendrá un sesgo hacia la clase negativa (hay muchas más hipótesis con esta clase). A este respecto, el mini lote se forma en una relación 1: 1 de anclajes positivos a negativos. Si no es posible encontrar el número apropiado de anclajes positivos, el mini lote se complementa con la ayuda de clases negativas.

Entrenamiento de red general


El objetivo principal es el uso conjunto de escalas entre los dos módulos; esto aumentará la velocidad del trabajo. Como es imposible (o bastante difícil) entrenar dos módulos independientes a la vez, los autores del artículo utilizan un enfoque iterativo:

  1. Red de entrenamiento RPN. Las capas convolucionales se inicializan con pesos previamente obtenidos durante el entrenamiento en ImageNet. Volveremos a capacitarnos en la tarea de definir regiones con cualquier clase (la especificación de la clase es parte de Fast R-CNN).
  2. Entrenamiento Rápido Red R-CNN. Como en el paso 1, inicializamos Fast R-CNN con los pesos obtenidos previamente durante el entrenamiento en ImageNet. Volvemos a entrenar usando hipótesis sobre objetos usando la red RPN entrenada en el ítem 1. Esta vez, la tarea del entrenamiento es aclarar las coordenadas y determinar la clase específica del objeto.
  3. Usando los pesos de la página 2, entrenamos solo la parte RPN (las capas que van a las redes RPN que pertenecen al extractor de características se congelan y no cambian en absoluto).
  4. Usando los pesos de la p. 3 (es decir, un RPN ya afinado), entrenamos las capas para Fast R-CNN (los pesos restantes, aquellos que van antes o relacionados con RPN, están congelados).

Con la ayuda de dicha capacitación iterativa, resulta que toda la red está construida en las mismas escalas. Puede continuar capacitando a la red sobre este principio, pero los autores señalan que no hay cambios importantes en las métricas.

Proceso de predicción


Cuando se usan redes neuronales para predicciones, la propagación de imágenes se ve así:

  1. La imagen ingresa a la entrada de la red neuronal, generando un mapa de características.
  2. Cada celda del mapa de características se procesa utilizando RPN, lo que da como resultado la corrección de la posición de los anclajes y la probabilidad de la presencia de un objeto de cualquier clase.
  3. Los cuadros predichos correspondientes se basan luego en el mapa de características y la capa RoI para el procesamiento posterior de la parte Fast R-CNN.
  4. En la salida, obtenemos una clase específica de objetos y su posición exacta en la imagen.

Resumen de diferencias


Aquí hay un breve resumen de los modelos entre ellos (las ideas básicas se heredan de los más jóvenes a los más viejos):

R-CNN:

  • Uso de la búsqueda selectiva como generador de hipótesis.
  • Usando SVM + Ridge para la clasificación y regresión de hipótesis (además, su operación paralela no es posible).
  • Ejecutar una red neuronal para procesar cada hipótesis individualmente.
  • Baja velocidad.

R-CNN rápido:

  • Se lanza una red neuronal solo una vez por imagen: todas las hipótesis se prueban en función de un mapa de características único.
  • Procesamiento inteligente de hipótesis de diferentes tamaños debido a la capa RoI.
  • Reemplazar SVN con una capa SoftMax.
  • La posibilidad de clasificación y regresión de trabajo paralelo.

R-CNN más rápido:

  • Generación de hipótesis utilizando un módulo especial diferenciable por separado.
  • Cambios en el procesamiento de imágenes asociados con el advenimiento del módulo RPN.
  • El más rápido de estos tres modelos.
  • Es uno de los más precisos hasta el día de hoy.

Conclusión


En conclusión, podemos decir que el desarrollo de R-CNN se movió de algoritmos dispares que resuelven un problema hacia una única solución de extremo a extremo. Esta combinación le permite hacer que casi cualquier enfoque sea más preciso y productivo, la detección de objetos no fue la excepción.

Bibliografía


  1. R. Girshick, J. Donahue, T. Darrell, and J. Malik. «Rich feature hierarchies for accurate object detection and semantic segmentation.» In CVPR, 2014. arXiv:1311.2524
  2. R. Girshick, J. Donahue, T. Darrell, and J. Malik. «Region-based convolutional networks for accurate object detection and segmentation.» TPAMI, 2015
  3. R. Girshick, «Fast R-CNN,» in IEEE International Conference on Computer Vision (ICCV), 2015.
  4. S. Ren, K. He, R. Girshick, and J. Sun, «Faster R-CNN: Towards real-time object detection with region proposal networks,» in Neural Information Processing Systems (NIPS), 2015.

All Articles