Detección de objetos

Detección de objetos ha recorrido un largo camino. Desde técnicas triviales de visión por computadora para la detección de objetos hasta detectores de objetos avanzados, estas mejoras han sido asombrosas. Las redes neuronales convolucionales (CNN) han jugado un papel muy importante en esta revolución. Queremos que nuestro detector sea lo más preciso posible y, al mismo tiempo, lo suficientemente rápido para funcionar en tiempo real. Existe una compensación entre estos dos aspectos y la mayoría de los detectores solo han funcionado bien en una métrica, ya sea precisión o velocidad. En general, se ha descubierto que los detectores más precisos son más intensivos en computación, lo que no es un escenario ideal, especialmente cuando buscamos modelos cada vez más eficientes.

¿Por qué hablamos de eficiencia?

Una pregunta natural que viene a la mente es por qué estamos interesados ​​en la eficiencia en este momento. ¿No deberíamos preocuparnos más por la precisión de los detectores? Después de todo, conocemos técnicas como Global Filter Pruning que se pueden usar para comprimir modelos grandes.

Bueno, el argumento es completamente válido. Aunque puede comprimir modelos más grandes mediante la poda, este es un proceso de varios pasos y siempre habrá alguna caída en la precisión, por pequeña que sea. Las mejoras de los detectores en los últimos años han sido incrementales y aún no hemos explorado el camino del diseño de detectores de objetos eficientes desde cero. Dado que EfficientNets ha demostrado cómo escalar las CNN, tiene sentido avanzar en la investigación en la misma dirección para los detectores de objetos, ya que en aplicaciones del mundo real como la robótica y los automóviles autónomos, el tamaño del modelo, las huellas de memoria y la latencia se vuelven muy importante. para implementar el modelo.

Este trabajo tiene tres contribuciones principales:

BiFPN: una red de características bidireccional ponderada para una fusión de características multiescala fácil y rápida.

Escalado compuesto: un nuevo método que escala principalmente la red troncal, la red de características, la red de caja/clase y la resolución juntas.

Eficiente: Una nueva línea de detectores con precisión y eficiencia significativamente mejoradas en una amplia gama de limitaciones de recursos.

El objetivo del documento es construir una arquitectura de detección escalable con mayor precisión y mejor eficiencia bajo una amplia gama de limitaciones de recursos (por ejemplo, de 3B a 300B FLOPS). Se busca abordar dos desafíos principales:

Fusión de características multiescala eficiente: Feature Pyramid Networks (FPN) se ha convertido de facto en la fusión de características multiescala. Algunos de los detectores que utilizan FPN son RetinaNet, PANet, NAS-FPN, etc. La mayoría de las estrategias de fusión adoptadas en estas redes no consideran la importancia de los filtros en fusión. Los suman indistintamente. Intuitivamente, no todas las entidades contribuyen por igual a las entidades de salida. Por lo tanto, se necesita una mejor estrategia para la fusión multinivel.

Escalado del modelo: La mayoría de los trabajos anteriores tienden a escalar la red troncal para mejorar la precisión. Los autores observaron que la escala de las redes de características y las redes de predicción de caja/clase también es fundamental al considerar la precisión y la eficiencia. Inspirándose en el escalado compuesto de EfficientNets, los autores propusieron un método de escalado compuesto para detectores de objetos que escala de forma conjunta la resolución/profundidad/ancho para todas las redes troncales, redes de características, clases de red de cuadro/predicción.

Analicemos ahora cada uno de estos puntos en detalle para comprender mejor lo que se está haciendo en el periódico.

Red piramidal de funciones (FPN)

Antes de discutir BiFPN, es importante revisar la idea de FPN y discutir las ventajas y desventajas de este enfoque. Aunque FPN no es algo nuevo, la idea de usar pirámides jerárquicas de varios niveles inherentes de mapas de características en CNN profunda se introdujo por primera vez en 2017 en este documento.

Características de la red piramidal

¡Wow wow! Esperar. Antes de hablar de FPN, ¿puede explicar por qué es necesario? ¿Por qué deberíamos combinar funciones?

Gran pregunta. Uno de los problemas más difíciles cuando se trata de la detección de objetos es detectar objetos a diferentes escalas en diferentes escenas. Anteriormente, las personas combinaban pirámides de imágenes seleccionadas (funciones basadas en pirámides de imágenes) para resolver este problema. Estas pirámides no varían en escala en el sentido de que cambiar la escala de un objeto se compensa cambiando su nivel en la pirámide. Intuitivamente, esta característica permite que el modelo detecte objetos en una amplia gama de escalas al escanear el modelo en ambas posiciones y niveles de la pirámide. Aunque funciona bien, es muy costoso desde el punto de vista computacional y solo se puede usar en el momento de la prueba, lo que genera una falta de coincidencia entre los procedimientos de capacitación y prueba.

Solo un idiota haría pirámides de imágenes en 2019. ¿Dónde está mi CNN?

Por otro lado, las CNN, además de poder representar semántica de alto nivel, también son más resistentes a la variación de escala, lo que facilita el reconocimiento de características calculadas en una única escala de entrada. Si bien las CNN son robustas y brindan características semánticas altas, la detección a partir de una única escala de entrada no es lo suficientemente buena. Una de las cosas más dulces de CNN es que diferentes capas calculan mapas en diferentes niveles y escalas. (Para una mejor imagen de esto, mire el lado izquierdo de la Figura 1.) Esta jerarquía de elementos en la red tiene su propia forma piramidal de varios niveles.

¡Ja! ¡Lo sabía! CNN es amor. Proporcionan una solución más simple. Así que ahora tienes tu llamada pirámide de funciones. Problema resuelto, ¿verdad?

Aunque tenemos una pirámide de características, todos los mapas de características en esta pirámide están a diferentes escalas y tienen enormes brechas semánticas causadas por diferentes profundidades de capa en la red. Los mapas de alta resolución tienen características de bajo nivel que perjudican su capacidad de representación para el reconocimiento de objetos.

Mmm. Ahora veo el problema. Los mapas de alta resolución en CNN tienen características semánticas bajas, mientras que los mapas de baja resolución tienen características semánticas altas, y necesitamos que ambos realicen una detección sólida a diferentes escalas.

¡Exactamente! Los FPN logran esto combinando una ruta de abajo hacia arriba con una ruta de arriba hacia abajo usando conexiones laterales. Brevemente, las características de alto nivel primero se vuelven a muestrear y luego se combinan con las características de bajo nivel mediante una unión lateral, que es esencialmente una convolución 1×1 seguida de una suma. Si desea profundizar en más detalles, consulte el documento.

Si los FPN hacen lo que se debe hacer, entonces, ¿qué diablos es BiFPN y por qué lo necesitamos?

¡¡BiFPN es la respuesta!!

Si estamos hablando de modificar FPN, seguramente debe haber algunas desventajas al usarlos directamente. Tomemos un ejemplo para elaborar.

Un FPN convencional agrega características de varios niveles de arriba a abajo. El problema con el FPN convencional es que está limitado por el flujo de información unidireccional (de arriba hacia abajo). Para resolver este problema, PANet agrega otra red de agregación de rutas de abajo hacia arriba. Además, hay muchos artículos, por ejemplo, NAS-FPN, que también estudiaron las conexiones cruzadas para capturar una mejor semántica.

[post_relacionado id=»1427″]

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll al inicio