Segmentación de imágenes: Fast-SCNN: red de segmentación semántica rápida (arXiv 2019)

Descargo de responsabilidad: esta traducción es sólo un registro de estudio personal.

Información del artículo

Resumen

  El marco codificador-decodificador es un marco de última generación para la segmentación de imágenes semánticas fuera de línea. La informática en tiempo real está ganando popularidad con el auge de los sistemas autónomos. En este artículo, presentamos la red neuronal convolucional de segmentación rápida (Fast-SCNN), un modelo de segmentación semántica en tiempo real para datos de imágenes de alta resolución (1024 × 2048 px), adecuado para una segmentación eficiente en dispositivos integrados con poca memoria. Sobre la base de los dos métodos de rama de segmentación rápida existentes, presentamos nuestro módulo de "reducción de resolución aprendida", que calcula simultáneamente características de bajo nivel para múltiples ramas de resolución. Nuestra red combina detalles espaciales de alta resolución con características profundas extraídas de baja resolución, lo que produce una precisión promedio de relación de intersección sobre unión del 68,0 % en paisajes urbanos a 123,5 fotogramas por segundo. También mostramos que la formación previa a gran escala es innecesaria. Validamos exhaustivamente nuestra métrica en experimentos con el entrenamiento previo de ImageNet y los datos aproximadamente etiquetados de Cityscapes. Finalmente, demostramos un cálculo más rápido con resultados competitivos en entradas submuestreadas sin ninguna modificación de la red.

1. Introducción

  La segmentación semántica rápida es especialmente importante en aplicaciones en tiempo real, donde las entradas se analizan rápidamente para facilitar interacciones receptivas con el entorno. Debido al creciente interés en los sistemas autónomos y la robótica, está claro que el estudio de la segmentación semántica en tiempo real ha ganado recientemente una enorme popularidad [21, 34, 17, 25, 36, 20]. Destacamos que, de hecho, a menudo es necesario un rendimiento más rápido que el tiempo real, ya que el etiquetado semántico a menudo solo se utiliza como un paso de preprocesamiento para otras tareas en las que el tiempo es crítico. Además, la segmentación semántica en tiempo real en dispositivos integrados (sin acceso a GPU potentes) permite muchas aplicaciones adicionales, como la realidad aumentada para dispositivos portátiles. Observamos que en la literatura, la segmentación semántica generalmente se aborda mediante redes neuronales convolucionales profundas (DCNN) con un marco codificador-decodificador [29, 2], mientras que muchas implementaciones eficientes en tiempo de ejecución adoptan arquitecturas de dos o múltiples ramas [21, 34, 17]. generalmente

  • Un campo receptivo más amplio es importante para aprender correlaciones complejas (es decir, contexto global) entre clases objetivo,

  • El detalle espacial en la imagen es necesario para preservar los límites del objeto y

  • Se necesita un diseño específico para equilibrar la velocidad y la precisión (en lugar de reorientar las DCNN de clasificación).

  Específicamente, en una red de dos ramas, la rama más profunda se usa para capturar el contexto global a baja resolución, mientras que la rama menos profunda se configura para aprender detalles espaciales con resolución de entrada completa. El resultado final de la segmentación semántica se obtiene fusionando los dos. Es importante destacar que, dado que el costo computacional de las redes más profundas se puede superar con tamaños de entrada más pequeños y la ejecución de resolución completa se utiliza solo para unas pocas capas, se puede lograr rendimiento en tiempo real en las GPU modernas. En comparación con el marco codificador-decodificador, en el enfoque de dos ramas, las convoluciones iniciales de diferentes resoluciones no se comparten. Vale la pena señalar aquí que Guided Upsampling Network (GUN) [17] y Image Cascade Network (ICNet) [36] solo comparten pesos entre las primeras capas, pero no cálculos.

  En este trabajo, proponemos Fast-SCNN de red neuronal convolucional segmentacional rápida, una configuración de dos ramas de última generación [21, 34, 17, 36] con el marco codificador-decodificador clásico [29, 2] para un algoritmo de segmentación semántica en tiempo real (Fig. 1). Con base en las observaciones [35, 19] sobre la capa DCNN inicial que extrae características de bajo nivel, compartimos el cálculo de la capa inicial en el enfoque de dos ramas. A esta técnica la llamamos aprendizaje de reducción de resolución. El efecto es similar a omitir conexiones en modelos de codificador-decodificador, pero los omisiones se usan solo una vez para mantener la eficiencia del tiempo de ejecución y los módulos se mantienen superficiales para garantizar un intercambio eficiente de funciones. Finalmente, nuestro Fast-SCNN emplea convoluciones separables en profundidad eficientes [30, 10] y bloques residuales inversos [28].

inserte la descripción de la imagen aquí

Figura 1. Fast-SCNN comparte cálculo entre dos ramas (codificadores) para construir más de una red de segmentación semántica en tiempo real.

  Aplicado a paisajes urbanos [6], Fast SCNN produce una relación de intersección-unión promedio de 68,0% (mIoU), que es dos veces más rápido que BiSeNet de última generación (71,4% mIoU) [34].

  Aunque utilizamos 1,11 millones de parámetros, la mayoría de los métodos de segmentación fuera de línea (como DeepLab [4] y PSPNet [37]) y algunos algoritmos en tiempo real (como GUN [17] e ICNet [36]) requieren mucho más que eso. La capacidad del modelo de Fast-SCNN es particularmente baja. Las razones son dos: (i) una menor memoria permite la ejecución en dispositivos integrados y (ii) se espera una mejor generalización. En particular, a menudo se sugiere el entrenamiento previo en ImageNet [27] para mejorar la precisión y la generalización [37]. En nuestro trabajo, investigamos el impacto del entrenamiento previo en SCNN rápidos de baja capacidad. Contrariamente a la tendencia de las redes de alta capacidad, encontramos que el entrenamiento previo o los datos de entrenamiento adicionales etiquetados de forma aproximada (+0,5 % mIoU en paisajes urbanos [6]) solo producen mejoras insignificantes en los resultados. En resumen, nuestras aportaciones son:

  1. Presentamos Fast-SCNN, un algoritmo de segmentación semántica en tiempo real (123,5 fps) competitivo (68,0 %) y superior para imágenes de alta resolución (1024 × 2048 px).

  2. Adaptamos las conexiones de omisión populares en las DCNN fuera de línea y proponemos un módulo de reducción de resolución de aprendizaje superficial para una extracción rápida y eficiente de características de bajo nivel de múltiples ramas.

  3. Diseñamos específicamente Fast SCNN para que sea de baja capacidad y verificamos empíricamente que el entrenamiento que se ejecuta durante más épocas tiene el mismo éxito que el entrenamiento con preentrenamiento de ImageNet o con datos generales adicionales en nuestra red de pequeña capacidad.

  Además, submuestreamos los datos de entrada utilizando Fast-SCNN, logrando un rendimiento de última generación sin necesidad de rediseñar la red.

2. Trabajo relacionado

  Discutimos y comparamos marcos para la segmentación de imágenes semánticas, con un enfoque especial en la ejecución en tiempo real con bajos requisitos de energía y memoria [2, 20, 21, 36, 34, 17, 25, 18].

2.1 Bases de la segmentación semántica

  Las DCNN de última generación para segmentación semántica combinan dos módulos independientes: codificador y decodificador. El módulo codificador utiliza una combinación de operaciones de convolución y agrupación para extraer características DCNN. El módulo decodificador recupera detalles espaciales de características de subresolución y predice etiquetas de objetos (es decir, segmentación semántica) [29, 2]. Lo más común es que los codificadores se adapten a métodos DCNN de clasificación simples como VGG [31] o ResNet [9]. En la segmentación semántica, se eliminan las capas completamente conectadas.

  La fundamental red totalmente convolucional (FCN) [29] sienta las bases para la mayoría de las arquitecturas de segmentación modernas. Específicamente, FCN emplea VGG [31] como codificador combinado con conexiones de salto de capas inferiores para muestreo ascendente bilineal para recuperar detalles espaciales. U-Net [26] explota aún más los detalles espaciales utilizando conexiones de salto densas.

  Más tarde, inspirados en el contexto global a nivel de imagen anterior a DCNN [13, 16], el módulo Pyramid Pooling de PSPNet [37] y el Shrinking Space Pyramid Pooling (ASPP) de DeepLab [4] se utilizan para codificar y explotar el contexto global a nivel de imagen anterior a DCNN [13, 16]. contexto.

  Otras arquitecturas competitivas de segmentación de bases utilizan campos aleatorios condicionales (CRF) [38, 3] o redes neuronales recurrentes [32, 38]. Sin embargo, ninguno de ellos se ejecuta en tiempo real.

  De manera similar a la detección de objetos [23, 24, 15], la velocidad se convierte en un factor importante en el diseño de sistemas de segmentación de imágenes [21, 34, 17, 25, 36, 20]. SegNet [2] introduce un modelo conjunto codificador-decodificador basado en FCN, convirtiéndose en uno de los primeros modelos de segmentación eficiente. Siguiendo a SegNet, ENet [20] también diseña un codificador-decodificador con menos capas para reducir el costo computacional.

  Más recientemente, se han introducido sistemas de dos y múltiples ramas. ICNet [36], ContextNet [21], BiSeNet [34] y GUN [17] aprenden el contexto global con entradas de resolución reducida en la rama profunda, mientras aprenden límites a resolución completa en la rama poco profunda.

  Sin embargo, la segmentación semántica en tiempo real de última generación sigue siendo un desafío y generalmente requiere GPU de alta gama. Inspirándose en dos métodos de ramificación, Fast-SCNN incorpora una ruta de red poco profunda compartida para codificar detalles mientras aprende de manera eficiente el contexto a baja resolución (Fig. 2).

2.2 Eficiencia de DCNN

  Las técnicas comunes para DCNN eficientes se pueden agrupar en cuatro categorías:

  Convoluciones separables en profundidad : MobileNet [10] descompone las convoluciones estándar en convoluciones en profundidad y convoluciones de 1 × 1 punto, denominadas colectivamente convoluciones separables en profundidad. Esta factorización reduce las operaciones de punto flotante y los parámetros de convolución, reduciendo así el costo computacional y los requisitos de memoria del modelo.

  Rediseño eficiente de DCNN : Chollet [5] diseñó la red Xception utilizando convoluciones eficientes separables en profundidad. MobleNet-V2 propone un bloque residual de cuello de botella inverso [28] para construir una DCNN eficiente para tareas de clasificación. ContextNet [21] utiliza bloques residuales de cuello de botella inversos para diseñar redes de doble rama para una segmentación semántica eficiente en tiempo real. De manera similar, [34, 17, 36] proponen redes de segmentación de múltiples ramas para lograr un rendimiento en tiempo real.

  Cuantización de red : dado que la multiplicación de punto flotante es costosa en comparación con las operaciones enteras o binarias, se pueden utilizar técnicas de cuantificación para filtros y activaciones DCNN para reducir aún más el tiempo de ejecución [11, 22, 33].

  Compresión de red : la poda se utiliza para reducir el tamaño de las redes previamente entrenadas, lo que da como resultado un tiempo de ejecución más rápido, conjuntos de parámetros más pequeños y una menor huella de memoria [21, 8, 14].

  Fast-SCNN se basa en gran medida en convoluciones separables en profundidad y bloques de cuellos de botella residuales [28]. Además, presentamos un modelo de doble rama que incorpora nuestro módulo de aprendizaje para reducir la resolución, lo que permite la extracción de características compartidas en múltiples niveles de resolución (Fig. 2). Tenga en cuenta que aunque las capas iniciales de múltiples ramas extraen características similares [35, 19], los métodos comunes de dos ramas no aprovechan esto. La cuantificación y la compresión de la red se pueden aplicar de forma ortogonal y se dejan para trabajos futuros.

inserte la descripción de la imagen aquí

Figura 2: Comparación esquemática de Fast-SCNN con codificador-decodificador y dos arquitecturas de rama. El codificador-decodificador emplea múltiples conexiones de salto en muchas resoluciones, generalmente producidas por bloques convolucionales en profundidad. Dos métodos de rama explotan características globales de baja resolución y detalles espaciales poco profundos. Fast-SCNN codifica simultáneamente los detalles espaciales del contexto global y la capa inicial en nuestro aprendizaje para reducir la resolución del módulo.

2.3 Preentrenamiento de tareas auxiliares

  En general, se acepta que la capacitación previa en tareas auxiliares puede mejorar la precisión del sistema. Trabajos anteriores sobre detección de objetos [7] y segmentación semántica [4, 37] han demostrado esto en el entrenamiento previo en ImageNet [27]. Siguiendo esta tendencia, otros métodos de segmentación semántica eficientes en tiempo real también se entrenan previamente en ImageNet [36, 34, 17]. Sin embargo, no está claro si es necesaria una formación previa en redes de baja capacidad. Fast-SCNN está especialmente diseñado para baja capacidad. En nuestros experimentos, mostramos que las redes pequeñas no se benefician significativamente del entrenamiento previo. Por el contrario, un aumento agresivo de los datos y más épocas proporcionaron resultados similares.

3. Fast-SCNN propuesto

  Fast-SCNN está inspirado en arquitecturas de dos ramas [21, 34, 17] y redes de codificador-decodificador con conexiones de salto [29, 26]. Tenga en cuenta que las primeras capas suelen extraer características de bajo nivel. Nuestra reinterpretación de las conexiones omitidas como un módulo de aprendizaje reducido nos permite fusionar ideas clave de ambos marcos y nos permite construir un modelo de segmentación semántica rápido. La Figura 1 y la Tabla 1 muestran el diseño de Fast-SCNN. A continuación, analizamos nuestra motivación y describimos nuestros componentes básicos con más detalle.

inserte la descripción de la imagen aquí

Tabla 1. Fast-SCNN utiliza convolución estándar (Conv2D), convolución separable en profundidad (DSConv), bloque de cuello de botella residual inverso (cuello de botella), módulo de agrupación piramidal (PPM) y bloque de módulo de fusión de características (FFM). Los parámetros t, c, n y s denotan el factor de expansión del bloque de cuello de botella, el número de canales de salida, el número de veces que se repite el bloque y el parámetro de zancada aplicado a la primera secuencia de bloques repetidos. Las líneas horizontales separan los módulos: reducción de resolución de aprendizaje, extractor de características globales, fusión de características y clasificador (de arriba a abajo).

3.1 Motivación

  Los métodos actuales de segmentación semántica de última generación que operan en tiempo real se basan en redes con dos ramas, cada una operando a un nivel de resolución diferente [21, 34, 17]. Aprenden información global a partir de una versión de baja resolución de la imagen de entrada y emplean una red poco profunda con resolución de entrada completa para mejorar la precisión de los resultados de la segmentación. Dado que la resolución de entrada y la profundidad de la red son los principales factores del tiempo de ejecución, estos dos métodos de ramificación permiten el cálculo en tiempo real.

  Es bien sabido que las primeras capas de DCNN extraen características de bajo nivel, como bordes y esquinas [35, 19]. Por lo tanto, en lugar de un enfoque de dos ramas con cálculos separados, introducimos el aprendizaje en la reducción de resolución, que comparte el cálculo de características entre las ramas de bajo y alto nivel en un bloque de red poco profundo.

3.2 Arquitectura de red

  Nuestro Fast-SCNN utiliza un módulo de reducción de resolución aprendido, un extractor de características globales aproximado, un módulo de fusión de características y un clasificador estándar. Todos los módulos se construyen utilizando convoluciones separables en profundidad, que se han convertido en componentes clave de muchas arquitecturas DCNN eficientes [5, 10, 21].

inserte la descripción de la imagen aquí

Tabla 2. El bloque residual de cuello de botella transfiere la entrada del canal c al canal c' con un factor de expansión t. Tenga en cuenta que la última convolución puntual no utiliza la f no lineal. La entrada tiene altura h, ancho w y x/s representa el tamaño del núcleo y la zancada de la capa.

3.2.1 Aprender a reducir la resolución

  En nuestro módulo de reducción de resolución aprendido, utilizamos tres capas. Solo se emplean tres capas para garantizar que el intercambio de funciones de bajo nivel sea efectivo y se implemente de manera eficiente. La primera capa es una capa convolucional estándar (Conv2D) y las dos capas restantes son capas convolucionales separables en profundidad (DSConv). Aquí enfatizamos que, aunque DSConv es más eficiente computacionalmente, usamos Conv2D porque la imagen de entrada tiene solo tres canales, lo que hace que la ventaja computacional de DSConv sea insignificante en esta etapa.

  Las tres capas de nuestro módulo de reducción de resolución aprendido utilizan stride 2, seguido de normalización por lotes [12] y ReLU. El tamaño del núcleo espacial de las capas convolucional y de profundidad es 3 × 3. Siguiendo [5, 28, 21], omitimos la no linealidad entre la convolución en profundidad y la convolución puntual.

3.2.2 Extractor de funciones globales

  El módulo de extracción de características globales tiene como objetivo capturar el contexto global para la segmentación de imágenes. A diferencia de los métodos comunes de dos ramas que operan en una versión de baja resolución de la imagen de entrada, nuestro módulo toma directamente la salida aprendida como un módulo reducido (cuya resolución es 1 8 \frac{1}{8} de la imagen de entrada original) .81). La estructura detallada de este módulo se muestra en la Tabla 1. Utilizamos el bloque residual de cuello de botella eficiente introducido por MobileNet-V2 [28] (Tabla 2). En particular, utilizamos conexiones residuales para bloques residuales de cuello de botella cuando los tamaños de entrada y salida son los mismos. Nuestro bloque de cuello de botella utiliza una convolución separable en profundidad eficiente, que reduce la cantidad de parámetros y operaciones de punto flotante. Además, al final se agrega un módulo de agrupación piramidal (PPM) [37] para agregar información contextual basada en diferentes regiones.

3.2.3 Módulo de fusión de características

  Al igual que ICNet [36] y ContextNet [21], preferimos simplemente agregar funciones para garantizar la eficiencia. Alternativamente, se pueden emplear módulos de fusión de características más sofisticados (como [34]) para lograr una mayor precisión a costa del rendimiento del tiempo de ejecución. Los detalles del módulo de fusión de funciones se muestran en la Tabla 3.

inserte la descripción de la imagen aquí

Tabla 3. Módulo Feature Fusion (FFM) de Fast-SCNN. Tenga en cuenta que la convolución puntual tiene la salida deseada y no utiliza la f no lineal. Después de agregar características, se utiliza una f no lineal.

3.2.4 Clasificadores

  En el clasificador, utilizamos dos convoluciones separables en profundidad (DSConv) y una convolución puntual (Conv2D). Descubrimos que agregar varias capas después del módulo de fusión de características mejora la precisión. Los detalles del módulo clasificador se muestran en la Tabla 1.

  Softmax se utiliza durante el entrenamiento porque utiliza gradientes decentes. Durante la inferencia, podemos reemplazar el costoso cálculo de softmax con argmax ya que ambas funciones aumentan monótonamente. Denotamos esta opción como Fast-SCNN cls(clasificación). Por otro lado, si se requiere un modelo probabilístico estándar basado en DCNN, se utiliza softmax, denominado prob(probabilidad) Fast-SCNN.

3.3 Comparación con tecnologías existentes

  Nuestro modelo está inspirado en el marco de dos ramas e incorpora ideas del enfoque codificador-descodificador (Fig. 2).

3.3.1 Relación con el modelo de dos ramas

  Los modelos en tiempo real de última generación (ContextNet [21], BiSeNet [34] y GUN [17]) utilizan dos redes de sucursales. Nuestro módulo de aprendizaje reducido es equivalente a su ruta espacial, ya que es poco profundo, se aprende a resolución completa y se utiliza para el módulo de fusión de características (Fig. 1).

  Nuestro módulo de extracción de características global es equivalente a la rama más profunda de baja resolución de este método. En cambio, nuestro extractor de características global comparte sus cálculos para las primeras capas con el módulo de reducción de resolución aprendido. Al compartir capas, no solo reducimos la complejidad computacional de la extracción de características, sino que también reducimos el tamaño de entrada requerido, ya que Fast-SCNN usa 1 8 \frac{1}{8}81resolución en lugar de 1 4 \frac{1}{4}41resolución para la extracción global de características.

3.3.2 Relación con el modelo codificador-decodificador

  El Fast-SCNN propuesto puede verse como un caso especial de marcos codificadores-decodificadores como FCN [29] o U-Net [26]. Sin embargo, a diferencia de las múltiples conexiones de salto en FCN y las conexiones de salto densas en U-Net, Fast-SCNN utiliza solo una única conexión de salto para reducir el cálculo y la memoria.

  De acuerdo con [35], que aboga por compartir funciones solo en las primeras capas de una DCNN, localizamos conexiones de salto en las primeras etapas de la red. Por el contrario, la técnica anterior suele emplear módulos más profundos en cada resolución antes de aplicar conexiones de salto.

4. Experimentar

  Evaluamos nuestra red neuronal convolucional de segmentación rápida (Fast-SCNN) propuesta en el conjunto de validación del conjunto de datos de Cityscapes [6] e informamos su rendimiento en el conjunto de pruebas de Cityscapes (es decir, el servidor de referencia de Cityscabes).

4.1 Detalles de implementación

  Cuando se trata de DCNN eficientes, los detalles de implementación son tan importantes como la teoría. Por lo tanto, aquí describimos detalladamente nuestra configuración. Realizamos experimentos en la plataforma de aprendizaje automático TensorFlow utilizando Python. Nuestros experimentos se realizan en estaciones de trabajo con GPU Nvidia Titan X (Maxwell) o Nvidia Titan Xp (Pascal), CUDA 9.0 y CuDNN v7. La evaluación del tiempo de ejecución se realiza en un único subproceso de CPU y una GPU para medir el tiempo de inferencia directa. Grabamos utilizando 100 fotogramas e informamos un promedio de mediciones de 100 fotogramas por segundo (fps).

  Utilizamos el descenso de gradiente estocástico (SGD) con un impulso de 0,9 y un tamaño de lote de 12. Inspirándonos en [4, 37, 10], utilizamos una tasa de aprendizaje "poli" con una tasa de aprendizaje base de 0,045 y una potencia de 0,9. De manera similar a MobileNet-V2, encontramos que ℓ 2 \ell2La regularización ℓ 2 es innecesaria en convoluciones profundas, para otras capasℓ 2 \ell22 es 0,00004. Dado que los datos de entrenamiento para la segmentación semántica son limitados, aplicamos varias técnicas de aumento de datos: cambio de tamaño aleatorio entre 0,5 y 2, traducción/recorte, volteo horizontal, ruido y brillo del canal de color. Nuestro modelo está entrenado con pérdida de entropía cruzada. Nos resulta beneficioso aprender una pérdida auxiliar hasta el final de la reducción de resolución y un módulo de extracción de características global con un peso de 0,4.

  La normalización por lotes [12] se utiliza antes de cada función no lineal. El abandono solo se usa en la última capa antes de la capa softmax. A diferencia de MobileNet [10] y ContextNet [21], encontramos que Fast-SCNN se entrena más rápido con ReLU y logra una precisión ligeramente mayor que ReLU6, incluso con las convoluciones separables en profundidad que utilizamos en todo el modelo.

  Descubrimos que el rendimiento de las DCNN se puede mejorar entrenando para un mayor número de iteraciones; por lo tanto, a menos que se indique lo contrario, entrenamos nuestros modelos para 1000 épocas utilizando el conjunto de datos Cityescapes [6]. Vale la pena señalar aquí que la capacidad de Fast-SCNN es intencionalmente muy baja ya que utilizamos 1,11 millones de parámetros. Más adelante mostramos que las técnicas agresivas de aumento de datos hacen que el sobreajuste sea menos probable.

inserte la descripción de la imagen aquí

Tabla 4. Clase y categoría mIoU del Fast-SCNN propuesto en comparación con otros métodos de segmentación semántica de última generación en el conjunto de pruebas de Cityscapes. El número de parámetros está en millones.

inserte la descripción de la imagen aquí

Tabla 5. Tiempo de ejecución de TensorFlow (fps) en Nvidia Titan X (Maxwell, 3072 núcleos CUDA) [1]. Los métodos con "*" indican resultados en Nvidia Titan Xp (Pascal, 3840 núcleos CUDA). Se muestran dos versiones de Fast-SCNN: salida softmax (nuestro problema) y salida de etiqueta de destino (nuestro cls).

4.2 Evaluación de paisajes urbanos

  Evaluamos nuestra propuesta Fast-SCNN sobre paisajes urbanos, el conjunto de datos más grande disponible públicamente sobre vías urbanas [6]. Este conjunto de datos contiene un conjunto diverso de imágenes de alta resolución (1024×2048px) tomadas de 50 ciudades diferentes de Europa. Dispone de 5000 imágenes de alta calidad de etiqueta: 2975 para entrenamiento, 500 para validación y 1525 para prueba. Se encuentran disponibles etiquetas para conjuntos de capacitación y validación, y los resultados de las pruebas se pueden evaluar en el servidor de evaluación. Además, hay 20.000 imágenes con anotaciones débiles (etiquetas burdas) disponibles para entrenamiento. Informamos resultados únicamente para datos finos y gruesos etiquetados finamente. Cityscapes proporciona 30 etiquetas de clases, mientras que solo se utilizan 19 clases para la evaluación. A continuación se informa el valor medio de la relación de intersección sobre unión (mIoU) y el tiempo de inferencia de la red.

  Evaluamos el rendimiento general en el conjunto de pruebas de paisajes urbanos [6]. El Fast-SCNN propuesto es comparable a otros métodos de segmentación semántica en tiempo real de última generación (ContextNet[21], BiSeNet[34], GUN[17], ENet[20] e ICNet[36]) y fuera de línea. Los métodos (PSPNet[37] y La comparación entre DeepLab-V2[4]) se muestran en la Tabla 4. Fast-SCNN alcanza el 68,0 % de mIoU, ligeramente por debajo de BiSeNet (71,5 %) y GUN (70,4 %). ContextNet logró sólo el 66,1%.

  La Tabla 5 compara el tiempo de ejecución a diferentes resoluciones. Aquí, BiSeNet (57,3 fps) y GUN (33,3 fps) son significativamente más lentos que Fast-SCNN (123,5 fps). Fast-SCNN también es significativamente más rápido en Nvidia Titan X (Maxwell) en comparación con ContextNet (41,9 fps). Por lo tanto, llegamos a la conclusión de que Fast-SCNN mejora significativamente el tiempo de ejecución de última generación con una pequeña pérdida de precisión. En este punto, enfatizamos que nuestro modelo está diseñado para dispositivos integrados con poca memoria. Fast-SCNN utiliza 1,11 millones de parámetros, lo que es cinco veces menos que los 5,8 millones de parámetros del competidor BiSeNet.

  Finalmente, ponemos a cero la contribución de las conexiones omitidas y medimos el rendimiento de Fast-SCNN. El mIoU del conjunto de validación se reduce del 69,22% al 64,30%. Los resultados cualitativos se muestran en la Figura 3. Como era de esperar, Fast-SCNN se beneficia de las conexiones omitidas, especialmente alrededor de límites y objetos de tamaño pequeño.

inserte la descripción de la imagen aquí

Tabla 6. Categoría mIoU para diferentes configuraciones de Fast-SCNN en el conjunto de validación de paisajes urbanos.

4.3 Preentrenamiento y datos débilmente etiquetados

  Las DCNN de alta capacidad, como R-CNN [7] y PSPNet [37], han demostrado que el entrenamiento previo con diferentes tareas auxiliares puede mejorar el rendimiento. Dado que diseñamos Fast-SCNN específicamente para que tenga baja capacidad, ahora deseamos probar el rendimiento con y sin entrenamiento previo, y con y sin datos adicionales débilmente etiquetados. Hasta donde sabemos, la importancia del entrenamiento previo y los datos adicionales débilmente etiquetados en DCNN de baja capacidad no se ha estudiado antes. Los resultados se muestran en la Tabla 6.

  Entrenamos previamente Fast-SCNN en ImageNet [27] reemplazando el módulo de fusión de características con agrupación promedio, y el módulo de clasificación ahora solo tiene una capa softmax. Fast-SCNN logra una precisión del 60,71 % entre los 1 primeros y del 83,0 % entre los 5 primeros en el conjunto de validación de ImageNet. Este resultado sugiere que la capacidad de Fast-SCNN es insuficiente para lograr un rendimiento comparable (>70% top-1) al de la mayoría de las DCNN estándar en ImageNet [10, 28]. En el conjunto de validación de Cityscapes, la precisión de Fast-SCNN con preentrenamiento de ImageNet produce 69,15% mIoU, que es solo un 0,53% mayor que Fast-SCNN sin preentrenamiento. Por lo tanto, llegamos a la conclusión de que el entrenamiento previo de ImageNet no puede lograr mejoras significativas en Fast-SCNN.

inserte la descripción de la imagen aquí

Figura 3. Visualización de los resultados de la segmentación Fast-SCNN. Primera columna: imagen RGB de entrada; segunda columna: salida de Fast-SCNN; última columna: salida de Fast-SCNN después de poner a cero las contribuciones de las conexiones de omisión. En todos los resultados, Fast-SCNN se beneficia de omitir conexiones, especialmente en límites y objetos de pequeño tamaño.

  Dado que la superposición entre las vías urbanas de Cityscapes y las tareas de clasificación de ImageNet es limitada, es razonable suponer que Fast-SCNN puede no beneficiarse debido a la capacidad limitada de ambos dominios. Por lo tanto, ahora incorporamos las 20.000 imágenes adicionales con etiquetas aproximadas proporcionadas por Cityscapes, ya que estas imágenes provienen de dominios similares. Sin embargo, Fast-SCNN entrenado con datos de entrenamiento aproximados (con o sin ImageNet) funciona de manera similar y solo mejora ligeramente con respecto al Fast-SCNN original sin entrenamiento previo. Tenga en cuenta que los pequeños cambios son triviales y se deben a la inicialización aleatoria de la DCNN.

  Vale la pena señalar aquí que el manejo de la tarea auxiliar no es trivial ya que requiere modificaciones en la arquitectura de la red. Además, las limitaciones de licencia y la falta de recursos limitan aún más esta configuración. Estos costos se ahorran porque demostramos que ni el entrenamiento previo de ImageNet ni los datos débilmente etiquetados benefician significativamente a nuestra DCNN de baja capacidad. La Figura 4 muestra las curvas de entrenamiento. Fast-SCNN entrenado con datos aproximados es más lento en términos de iteraciones debido a la mala calidad de las etiquetas. Ambas versiones previamente entrenadas de ImageNet funcionan mejor en épocas anteriores (hasta 400 épocas solo para el conjunto de entrenamiento y 100 épocas cuando se entrena con datos adicionales etiquetados de forma aproximada). Esto significa que cuando entrenamos el modelo desde cero, solo necesitamos entrenar el modelo por más tiempo para lograr una precisión similar.

inserte la descripción de la imagen aquí

Figura 4. Curvas de entrenamiento en Paisajes Urbanos. Se muestran la precisión de la iteración (arriba) y la precisión de la época (abajo). Las líneas discontinuas representan el entrenamiento previo de ImageNet para Fast-SCNN.

4.4 Resolución de entrada más baja

  Dado que estamos interesados ​​en dispositivos integrados que pueden no tener entrada de resolución completa o acceso a una GPU potente, concluimos nuestra evaluación investigando el rendimiento con resoluciones de entrada de mitad y cuarto (Tabla 7).

  A un cuarto de resolución, Fast-SCNN logra una precisión del 51,9% a 485,4 fotogramas/s, lo que mejora significativamente mIoU en un 40,7% en MiniNet (anónimo) a 250 fotogramas/s [6]. A la mitad de la resolución, se puede lograr un 62,8 % de mIoU a 285,8 fotogramas por segundo. Destacamos que, sin modificaciones, Fast-SCNN es directamente aplicable a resoluciones de entrada más bajas, lo que lo hace muy adecuado para dispositivos integrados.

inserte la descripción de la imagen aquí

Figura 5. Resultados cualitativos de Fast-SCNN en el conjunto de validación Cityscapes [6]. Primera columna: imagen RGB de entrada; segunda columna: etiqueta de verdad del terreno; última columna: salida Fast-SCNN. Fast-SCNN logra un 68,0% de mIOU a nivel de clase y un 84,7% de mIOU a nivel de categoría.

inserte la descripción de la imagen aquí

Tabla 7. Tiempo de ejecución y precisión de Fast-SCNN en diferentes resoluciones de entrada en el conjunto de pruebas Cityscapes [6].

5. Conclusión

  Proponemos una red de segmentación rápida para la comprensión de la escena en tiempo real como se describe anteriormente. El costo computacional de compartir la red de múltiples sucursales genera eficiencias en tiempo de ejecución. En experimentos, nuestras conexiones de salto han demostrado ser beneficiosas para recuperar detalles espaciales. También mostramos que, para redes de baja capacidad, el preentrenamiento a gran escala del modelo en tareas auxiliares adicionales es innecesario si el tiempo de entrenamiento es lo suficientemente largo.

Referencias

[1] M. Abadi y et. Alabama. TensorFlow: aprendizaje automático a gran escala en sistemas heterogéneos, 2015. 6
[2] V. Badrinarayanan, A. Kendall y R. Cipolla. SegNet: una arquitectura de codificador-decodificador convolucional profunda para la segmentación de imágenes. TPAMI, 2017. 1, 2, 6
[3] L.-C. Chen, G. Papandreou, I. Kokkinos, K. Murphy y AL Yuille. Segmentación de imágenes semánticas con redes convolucionales profundas y crfs completamente conectados, 2014. 2
[4] L.-C. Chen, G. Papandreou, I. Kokkinos, K. Murphy y AL Yuille. DeepLab: segmentación de imágenes semánticas con redes convolucionales profundas, convolución atroz y CRF totalmente conectados. arXiv:1606.00915 [cs], 2016. 2, 3, 5, 6
[5] F. Chollet. Xception: aprendizaje profundo con convoluciones separables en profundidad. arXiv:1610.02357 [cs], 2016. 3, 4
[6] M. Cordts, M. Omran, S. Ramos, T. Rehfeld, M. Enzweiler, R. Benenson, U. Franke, S. Roth y B. Schiele. El conjunto de datos de paisajes urbanos para la comprensión semántica de la escena urbana. En CVPR, 2016. 2, 5, 6, 8
[7] R. Girshick, J. Donahue, T. Darrell y J. Malik. Jerarquías de funciones ricas para una detección precisa de objetos y segmentación semántica, 2013. 3, 6
[8] S. Han, H. Mao y WJ Dally. Compresión profunda: compresión de redes neuronales profundas con poda, cuantificación entrenada y codificación Huffman. En ICLR, 2016. 3
[9] K. He, X. Zhang, S. Ren y J. Sun. Aprendizaje residual profundo para el reconocimiento de imágenes. arXiv:1512.03385 [cs], 2015.2
[10] A. Howard, M. Zhu, B. Chen, D. Kalenichenko, W. Wang, T. Weyand, M. Andreetto y H. Adam. MobileNets: redes neuronales convolucionales eficientes para aplicaciones de visión móvil. arXiv:1704.04861 [cs], 2017. 2, 3, 4, 5, 6
[11] I. Hubara, M. Courbariaux, D. Soudry, R. El-Yaniv e Y. Bengio. Redes neuronales binarizadas. En NIPS. 2016. 3
[12] S. Ioffe y C. Szegedy. Normalización de lotes: acelerar el entrenamiento profundo de la red reduciendo el cambio de covariables interno. arXiv:1502.03167 [cs], 2015. 4, 5
[13] S. Lazebnik, C. Schmid y J. Ponce. Más allá de un montón de características: Coincidencia de pirámides espaciales para reconocer categorías de escenas naturales. En CVPR, volumen 2, páginas 2169–2178, 2006. 2
[14] H. Li, A. Kadav, I. Durdanovic, H. Samet y HP Graf.Pruning Filters for Efficient ConvNets. En ICLR, 2017.3
[15] W. Liu, D. Anguelov, D. Erhan, C. Szegedy, S. Reed, C.-Y. Fu y AC Berg. Ssd: Detector multibox de disparo único. 2015. 2
[16] A. Lucchi, Y. Li, XB Bosch, K. Smith y P. Fua. ¿Son realmente necesarias las restricciones espaciales y globales para la segmentación? En ICCV, 2011. 2
[17] D. Mazzini. Red de muestreo guiado para segmentación semántica en tiempo real. En BMVC, 2018. 1, 2, 3, 4, 5, 6
[18] S. Mehta, M. Rastegari, A. Caspi, L. Shapiro y H. Hajishirzi. ESPNet: Pirámide espacial eficiente de convoluciones dilatadas para segmentación semántica. arXiv:1803.06815 [cs], 2018. 2
[19] C. Olah, A. Mordvintsev y L. Schubert. Visualización de características. Destilar, 2017. 1, 3, 4
[20] A. Paszke, A. Chaurasia, S. Kim y E. Culurciello. ENet: una arquitectura de red neuronal profunda para la segmentación semántica en tiempo real. arXiv:1606.02147 [cs], 2016. 1, 2, 3, 6
[21] R. Poudel, U. Bonde, S. Liwicki y S. Zach. Contextnet: exploración del contexto y los detalles para la segmentación semántica en tiempo real. En BMVC, 2018. 1, 2, 3, 4, 5, 6
[22] M. Rastegari, V. Ordóñez, J. Redmon y A. Farhadi. XNOR-Net: Clasificación de ImageNet mediante redes neuronales convolucionales binarias. En ECCV, 2016. 3
[23] J. Redmon, S. Divvala, R. Girshick y A. Farhadi. Solo miras una vez: Detección de objetos unificada y en tiempo real. En CVPR, 2016. 2
[24] J. Redmon y A. Farhadi. Yolo9000: Mejor, más rápido, más fuerte, 2016. 2
[25] E. Romera, JM ´Alvarez, LM Bergasa y R. Arroyo. ERFNet: ConvNet factorizada residual eficiente para segmentación semántica en tiempo real. Transacciones IEEE sobre sistemas de transporte inteligentes, 2018. 1, 2, 6
[26] O. Ronneberger, P. Fischer y T. Brox. U-Net: Redes convolucionales para la segmentación de imágenes biomédicas. En MICCAI, 2015. 2, 3, 5
[27] O. Russakovsky, J. Deng, H. Su, J. Krause, S. Satheesh, S. Ma, Z. Huang, A. Karpathy, A. Khosla, M .Bernstein, A. Berg y L. Fei-Fei. Desafío de reconocimiento visual a gran escala de ImageNet. Revista Internacional de Visión por Computadora (IJCV), 2015. 2, 3, 6
[28] M. Sandler, A. Howard, M. Zhu, A. Zhmoginov y L.-C. Chen. Residuos invertidos y cuellos de botella lineales: redes móviles para clasificación, detección y segmentación. arXiv:1801.04381 ​​[cs], 2018. 2, 3, 4, 6
[29] E. Shelhamer, J. Long y T. Darrell. Redes totalmente convolucionales para segmentación semántica. PAMI, 2016. 1, 2, 3, 5
[30] L. Sifre. Dispersión de movimiento rígido para clasificación de imágenes. Tesis doctoral, 2014. 2
[31] K. Simonyan y A. Zisserman. Redes convolucionales muy profundas para reconocimiento de imágenes a gran escala. CoRR, abs/1409.1556, 2014. 2
[32] F. Visin, M. Ciccone, A. Romero, K. Kastner, K. Cho, Y. Bengio, M. Matteucci y A. Courville. Reseg: un modelo basado en redes neuronales recurrentes para la segmentación semántica, 2015. 2
[33] S. Wu, G. Li, F. Chen y L. Shi. Entrenamiento e inferencia con números enteros en redes neuronales profundas. En ICLR, 2018. 3
[34] C. Yu, J. Wang, C. Peng, C. Gao, G. Yu y N. Sang. Bisenet: Red de segmentación bilateral para segmentación semántica en tiempo real. En ECCV, 2018. 1, 2, 3, 4, 5, 6
[35] MD Zeiler y R. Fergus. Visualización y comprensión de redes convolucionales. En ECCV, 2014. 1, 3, 4, 5
[36] H. Zhao, X. Qi, X. Shen, J. Shi y J. Jia. ICNet para segmentación semántica en tiempo real de imágenes de alta resolución. En ECCV, 2018. 1, 2, 3, 4, 6
[37] H. Zhao, J. Shi, X. Qi, X. Wang y J. Jia. Red de análisis de escenas piramidales. En CVPR, 2017. 2, 3, 4, 5, 6
[38] S. Zheng, S. Jayasumana, B. Romera-Paredes, V. Vineet, Z. Su, D. Du, C. Huang y PHS Torr. Campos aleatorios condicionales como redes neuronales recurrentes. En ICCV, diciembre de 2015. 2

Supongo que te gusta

Origin blog.csdn.net/i6101206007/article/details/132098913
Recomendado
Clasificación