Como una de las principales aplicaciones de la visión por computadora, la detección de objetos es cada vez más importante en escenarios que requieren alta precisión pero tienen recursos informáticos limitados, como la robótica y los automóviles sin conductor. Desafortunadamente, muchos detectores modernos de alta precisión no cumplen con estas limitaciones. Más importante aún, las aplicaciones de detección de objetos del mundo real se ejecutan en diferentes plataformas, que a menudo requieren diferentes recursos.
Entonces, la pregunta natural es cómo diseñar detectores de objetos precisos y eficientes que también puedan adaptarse a una amplia gama de limitaciones de recursos.
EfficientDet: Detección de objetos escalable y eficiente, adoptado en CVPR 2020, presenta una nueva familia de detectores de objetos escalables y eficientes. Sobre la base de trabajos anteriores sobre el escalado de redes neuronales (EfficientNet) e incorporando una nueva red funcional bidireccional (BiFPN) y nuevas reglas de escalado, EfficientDet logra una precisión moderna mientras que 9 veces más pequeño y utiliza significativamente menos computación que los detectores modernos conocidos. La siguiente figura muestra la arquitectura de red general de los modelos.
Optimización de la arquitectura del modelo
La idea detrás de EfficientDet surge de un esfuerzo por encontrar soluciones para mejorar la eficiencia computacional mediante el examen sistemático de modelos de detección de última generación anteriores. En general, los detectores de objetos tienen tres componentes principales: una columna vertebral que extrae características de una imagen determinada; una red de objetos que toma múltiples niveles de funciones de la columna vertebral como entrada y genera una lista de funciones combinadas que representan características características de la imagen; y una red final de clase / caja que utiliza funciones combinadas para predecir la clase y ubicación de cada objeto.
Después de revisar las opciones de diseño para estos componentes, identificamos varias optimizaciones clave para mejorar el rendimiento y la eficiencia. Los detectores anteriores utilizan principalmente ResNets, ResNeXt o AmoebaNet como backbones, que son menos potentes o tienen menor eficiencia que EfficientNets. Con la implementación inicial de la red troncal EfficientNet, se puede lograr mucha más eficiencia. Por ejemplo, comenzando con una línea de base RetinaNet que utiliza una red troncal ResNet-50, nuestro estudio de ablación muestra que simplemente reemplazar ResNet-50 con EfficientNet-B3 puede mejorar la precisión en un 3% y reducir los cálculos en un 20%. Otra optimización es mejorar la eficiencia de las redes funcionales. Si bien la mayoría de los detectores anteriores simplemente usan la red piramidal de enlace descendente (FPN), encontramos que el FPN descendente está inherentemente limitado a un flujo de información unidireccional. Los FPN alternativos como PANet agregan aguas arriba adicionales a costa de cálculos adicionales.
Los intentos recientes de utilizar la búsqueda de arquitectura neuronal (NAS) han descubierto una arquitectura NAS-FPN más compleja. Sin embargo, si bien esta estructura de red es efectiva, también es irregular y está altamente optimizada para una tarea específica, lo que dificulta la adaptación a otras tareas. Para solucionar estos problemas, proponemos una nueva red de funciones bidireccionales BiFPN, que implementa la idea de combinar funciones multicapa de FPN / PANet / NAS-FPN, que permite que la información se transmita tanto de arriba a abajo como de abajo a arriba. utilizando conexiones regulares y efectivas.
Para mejorar aún más la eficiencia, proponemos una nueva técnica de síntesis rápida normalizada. Los enfoques tradicionales generalmente tratan todas las entradas a FPN de la misma manera, incluso con diferentes resoluciones. Sin embargo, observamos que las características de entrada con diferentes resoluciones a menudo contribuyen de manera desigual a las funciones de salida. Por lo tanto, agregamos un peso adicional a cada función de entrada y dejamos que la red aprenda la importancia de cada una. También reemplazaremos todas las circunvoluciones regulares con circunvoluciones menos costosas y profundamente separables. Con esta optimización, nuestro BiFPN mejora aún más la precisión en un 4% al tiempo que reduce los costos computacionales en un 50%.
La tercera optimización implica lograr el mejor compromiso entre precisión y eficiencia bajo diversas limitaciones de recursos. Nuestro trabajo anterior ha demostrado que el escalado conjunto de la profundidad, el ancho y la resolución de una red puede mejorar significativamente el rendimiento del reconocimiento de imágenes. Inspirándonos en esta idea, proponemos un nuevo método de escalado compuesto para detectores de objetos que aumenta colectivamente la resolución / profundidad / ancho. Cada componente de la red, es decir, la red principal, el objeto y la red predictiva de bloques / clases, tendrá un factor de escala complejo que controla todas las dimensiones de escala utilizando reglas heurísticas. Este enfoque facilita la determinación de cómo escalar el modelo mediante el cálculo de un factor de escala para una restricción de recursos de destino determinada.
Al combinar la nueva red troncal y BiFPN, primero diseñamos una pequeña línea de base EfficientDet-D0 y luego aplicamos una escala compuesta para obtener EfficientDet-D1 a D7. Cada modelo en serie tiene un costo computacional más alto, que cubre una amplia gama de limitaciones de recursos desde 3 mil millones de FLOP hasta 300 mil millones de FLOPS, y proporciona una mayor precisión.
Modelo de desempeño
Evaluación de EfficientDet en el conjunto de datos COCO, un conjunto de datos de referencia ampliamente utilizado para la detección de objetos. EfficientDet-D7 logra una precisión promedio (mAP) de 52,2, que es 1,5 puntos más alta que el modelo moderno anterior, utilizando 4 veces menos parámetros y 9,4 veces menos cálculos
También comparamos el tamaño de los parámetros y la latencia de CPU / GPU entre EfficientDet y modelos anteriores. Con restricciones de precisión similares, los modelos EfficientDet se ejecutan de 2 a 4 veces más rápido en la GPU y de 5 a 11 veces más rápido en el procesador que otros detectores. Si bien los modelos EfficientDet están destinados principalmente a la detección de objetos, también probamos su eficacia en otras tareas como la segmentación semántica. Para realizar tareas de segmentación, modificamos ligeramente EfficientDet-D4 reemplazando la cabeza de detección y la pérdida y pérdida de carga mientras se mantiene la misma columna vertebral escalada y BiFPN. Comparamos este modelo con modelos de segmentación modernos anteriores para Pascal VOC 2012, un conjunto de datos de pruebas de segmentación ampliamente utilizado.
Dado su rendimiento excepcional, se espera que EfficientDet sirva como una nueva base para la investigación futura de detección de objetos y potencialmente haga que los modelos de detección de objetos de alta precisión sean útiles en muchas aplicaciones del mundo real. Así que abrí todos los puntos de interrupción del código y el modelo preentrenado en Github.com.