Comprensión de la red SCNN: comprensión de las escenas de tráfico

Nombre del artículo: Spatial As Deep: Spatial CNN for Traffic Scene Understanding
Dirección de descarga del artículo: https://arxiv.org/abs/1712.06080
Dirección del código de GitHub: https://github.com/XingangPan/SCNN



0 Prefacio

La red neuronal convolucional espacial (SCNN) se propuso en el documento "Spatial As Deep: Spatial CNN for Traffic Scene Understanding" publicado por la Universidad China de Hong Kong y Shangtang Technology Group Co., Ltd. en AAAI2018 en 2017. CNN espacial se utiliza principalmente para hacer frente a las tareas 自动驾驶领域中感知任务en 车道线检测. El código implementado en la tesis se modifica principalmente de resnet. Por lo tanto, debe tener una comprensión básica de resnet. SCNN puede lograr una propagación de información espacial explícita y eficiente entre neuronas en la misma capa de CNN. Funciona bien en los casos en que los objetos tienen antecedentes de forma fuertes, como la propiedad continua larga y delgada de las líneas de carril. SCNN tiene una gran robustez. En escenas normales, llenas de gente, nocturnas, sin líneas de carril, sombras, flechas, reflejos, curvas y cruces de caminos, ha logrado una alta precisión de reconocimiento de líneas de carril.

La Tabla 3 del documento original muestra la diferencia entre CNN tradicional y SCNN:
(a) es el modelo tradicional, (b) es la
inserte la descripción de la imagen aquí
comparación de detección del modelo SCNN de varios modelos de detección de línea de carril en varios escenarios:
inserte la descripción de la imagen aquí


1 pregunta impulsada

La conducción autónoma ha recibido mucha atención tanto en la academia como en la industria en los últimos años. Una de las tareas más desafiantes para la conducción autónoma son las tareas de visión artificial como 交通场景理解y 车道检测. 语义分割1. La detección de carril ayuda a guiar el vehículo y puede usarse en sistemas de asistencia al conductor (Urmson et al. 2008) 2. Mientras que la segmentación semántica proporciona ubicaciones más detalladas sobre los objetos circundantes, como vehículos o peatones.

问题1: En aplicaciones prácticas, estas tareas pueden ser muy desafiantes considerando muchos escenarios severos, incluidas condiciones climáticas adversas, penumbra o deslumbramiento, etc. Las redes CNN tradicionales existentes no pueden manejar bien estos escenarios extremos, y la precisión de detección de objetos semánticos con antecedentes de forma fuerte para la oclusión pero cohesión de apariencia débil en las imágenes no es alta. Por ejemplo, líneas de carril cubiertas, postes, etc. Todos son previos de forma fuertes típicos pero cohesión de apariencia débil (la forma tiene un conocimiento previo muy fuerte, tenemos una suposición previa fuerte sobre su forma, pero su color, textura, etc. no son sexo muy cohesivo). Es fácil para el ojo y el cerebro humanos discernir objetos en una imagen en función de su conocimiento previo e información contextual, pero los algoritmos existentes aún no han alcanzado los estándares aceptados por la industria.
问题2Otro desafío en la comprensión de la escena del tráfico es el bajo rendimiento de la detección de la escena para la detección de líneas de carril al subir y bajar una pendiente .

解决方案:
Para resolver el problema 1 anterior, este artículo propone una CNN espacial (Spatial CNN, SCNN), que es una extensión de una red neuronal convolucional profunda a un nivel espacial rico. En una CNN capa por capa, una capa convolucional recibe la entrada de la capa anterior, aplica una operación convolucional y una activación no lineal, y envía el resultado a la siguiente capa. Este proceso se realiza secuencialmente. De manera similar, SCNN considera las filas o columnas de los mapas de características como capas y realiza secuencialmente operaciones de convolución, activación no lineal y suma para formar una red neuronal profunda. De esta manera, la información puede ser 同层的神经元transmitida entre. Es especialmente útil para objetos estructurados como carriles, postes o camiones ocluidos, ya que la información espacial puede mejorarse mediante la propagación entre capas. En el caso de objetos discontinuos o caóticos, SCNN puede mantener bien la suavidad y la continuidad de las líneas de carril y los postes.
inserte la descripción de la imagen aquí

2. Trabajo relacionado

Para la detección de carriles, la mayoría de los algoritmos existentes se basan en características de bajo nivel construidas a mano (Aly 2008; Son et al. 2015; Jung, Youn y Sull 2016), que limitan la capacidad de hacer frente a condiciones adversas . Solo Huval y otros (2015) hicieron el primer intento de adoptar el aprendizaje profundo en la detección de carriles, pero sin un conjunto de datos grande y general . En términos de segmentación semántica, los métodos basados ​​en CNN se han generalizado y han logrado un gran éxito (Long, Shelhamer y Darrell 2015; Chen et al. 2017).

Hay algunos otros intentos de explotar la información espacial en las redes neuronales. Visin y otros (2015) y Bell y otros (2016) usan redes neuronales recurrentes para pasar información a lo largo de cada fila o columna, por lo que en una capa RNN, cada ubicación de píxel solo puede recibir información de la misma fila o columna. Liang y otros (2016a; 2016b) propusieron variantes de LSTM para explotar la información contextual en el análisis de objetos semánticos, pero tales modelos son computacionalmente costosos . Los investigadores también han intentado combinar CNN con modelos gráficos como MRF o CRF, donde el paso de mensajes se logra a través de convoluciones con núcleos grandes (Liu et al. 2015; Tompson et al. 2014; Chu et al. 2016). En comparación con los métodos anteriores, SCNN tiene los siguientes tres 优点:
(1) En comparación con MRF/CRF denso tradicional, SCNN utiliza el paso de mensajes secuenciales para mejorar en gran medida la eficiencia computacional (para tratar con modelos tradicionales) (2)
con residuos El mensaje se pasa en forma de , lo que hace que SCNN sea fácil de entrenar. (Hacer frente a modelos variantes de LSTM)

OS : Es comprender la forma de pensar y las soluciones de resolución de problemas del trabajo de los predecesores, descubrir los problemas que no pueden resolverse mediante su investigación y conducir a soluciones a los problemas de este documento.

3 Contribuciones de este artículo (puntos de innovación)

3.1 Conjunto de datos de detección de carril (conjunto de datos de detección de línea de carril)

En este documento, presentamos un conjunto de datos desafiante a gran escala para la detección de carriles de tráfico. Además, ninguno de estos conjuntos de datos anota las marcas de carril que están ocluidas o no se ven debido a la abrasión, mientras que el escaneo de marcas de carril puede ser inferido por humanos y es de gran valor en aplicaciones reales.

En este documento, se presenta un conjunto de datos desafiante a gran escala para la detección de carriles de tráfico. El conjunto de datos actual es demasiado pequeño o tiene una sola escena y tramos de carretera con poco tráfico, que son propensos a modelar tramos de carretera cerrados e inadecuados.

La Fig. 2 (a) muestra algunos ejemplos, que comprenden escenas urbanas, rurales y de carretera. Como una de las ciudades más grandes y concurridas del mundo, Beijing ofrece muchos escenarios de tráfico desafiantes para la detección de carriles.

La Figura 2(a) muestra algunos ejemplos, que incluyen escenarios urbanos, rurales y viales. Como una de las ciudades más grandes y congestionadas del mundo, Beijing ofrece muchos escenarios de tráfico desafiantes para la detección de carriles.
inserte la descripción de la imagen aquí

Para cada cuadro, anotamos manualmente los carriles de tráfico
con splines cúbicos. Como se mencionó anteriormente, en muchos casos
las marcas de los carriles están tapadas por vehículos o no se ven. En aplicaciones reales,
es importante que los algoritmos de detección de carriles puedan
estimar las posiciones de los carriles a partir del contexto, incluso en estos
escenarios desafiantes que ocurren con frecuencia. Por lo tanto, para estos
casos aún anotamos los carriles según el contexto, como
se muestra en la Fig. 2 (a) (2)(4). También esperamos que nuestro algoritmo
pueda distinguir barreras en el camino, como la de la Fig. 2
(a) (1). Por lo tanto, los carriles del otro lado de la barrera no están
anotados. En este artículo centramos nuestra atención en la detec-
ción de cuatro marcas de carril, a las que se presta más atención
en aplicaciones reales. No se anotan otras marcas de carril.

Para cada cuadro, anotamos manualmente los carriles de tráfico utilizando splines cúbicos. Como se mencionó anteriormente, hay muchas situaciones en las que los vehículos ocultan o son invisibles para las marcas de los carriles. En aplicaciones prácticas, es importante que los algoritmos de detección de carriles puedan estimar las posiciones de los carriles a partir del contexto, incluso en estos escenarios a menudo desafiantes. Por lo tanto, para estos casos, seguimos anotando las líneas de los carriles según el contexto, como se muestra en la Fig. 2 (a)(2)(4). También queremos que nuestro algoritmo distinga los obstáculos en la carretera, como en la Figura 2(a)(1), para que el carril del otro lado del obstáculo no esté marcado. En este artículo, nos enfocamos en la detección de marcas de cuatro carriles, que es la más preocupante en aplicaciones prácticas. Otras marcas de carril no están marcadas.

3.2 SCNN

Para aprender de manera más eficiente la relación espacial y la previa suave y continua de las marcas de carril u otro objeto estructurado en el escenario de conducción, proponemos Spatial CNN. Tenga en cuenta que aquí 'espacial' no es lo mismo que en 'convolución espacial', sino que denota la propagación de información espacial a través de una estructura CNN especialmente diseñada.

Las CNN espaciales se proponen para mejorar la eficiencia del aprendizaje de información previa fluida y continua sobre relaciones espaciales en escenas de conducción, así como líneas de carril u otros objetos estructurados. Lo que se requiere 注意es que "espacial" aquí no es lo mismo que "convolución espacial", sino que se refiere a la propagación de información espacial a través de una estructura CNN especialmente diseñada.
inserte la descripción de la imagen aquí

Como se muestra en el módulo 'SCNN D' de la Fig. 3 (b), considerando un SCNN aplicado en un tensor 3-D de tamaño C × H × W, donde C, H y W indican el número de canales, filas, y columnas respectivamente. El tensor se dividiría en H segmentos, y el primer segmento se enviaría a una capa de convolución con C núcleos de tamaño C×w, donde w es el ancho del núcleo. En una CNN tradicional, la salida de una capa de convolución luego se alimenta a la siguiente capa, mientras que aquí la salida se agrega al siguiente segmento para proporcionar un nuevo segmento. El nuevo segmento se envía a la siguiente capa de convolución y este proceso continuará hasta que se actualice el último segmento.

Como se muestra en el módulo 'SCNN D' de la Figura 3 (b), considere aplicar SCNN en un tensor 3-D de tamaño C × H × W, donde C, H, W indican el número de canales, filas, columnas, respectivamente número. El tensor se divide en H segmentos, y el primer segmento se introduce en una capa convolucional con C núcleos de tamaño C × w, donde w es el ancho del núcleo. En una
CNN tradicional, la salida de una capa convolucional luego se alimenta a la siguiente capa, mientras que aquí la salida se agrega al siguiente segmento para proporcionar un nuevo segmento. Luego, el nuevo segmento se envía a la siguiente capa convolucional y el proceso continúa hasta que se actualiza el último segmento.

Específicamente, supongamos que tenemos un tensor kernel K tridimensional con el elemento K i,j,k que denota el peso entre un elemento en el canal i del último segmento y un elemento en el canal j del segmento actual, con un desplazamiento de k columnas entre dos elementos. También denote el elemento del tensor X tridimensional de entrada como X i,j,k , donde i, j y k indican índices de canal, fila y columna respectivamente. Luego, el cálculo directo de SCNN es:
inserte la descripción de la imagen aquí
donde f es una función de activación no lineal como ReLU. La X con superíndice ` denota el elemento que ha sido actualizado.
Tenga en cuenta que los pesos del kernel de convolución se comparten en todos los segmentos, por lo que SCNN es una especie de red neuronal recurrente.
También tenga en cuenta que SCNN tiene direcciones. En la Fig. 3 (b), los cuatro módulos 'SCNN' con el sufijo 'D', 'U', 'R', 'L' denotan SCNN
es decir, hacia abajo, hacia arriba, hacia la derecha y hacia la izquierda, respectivamente.
.

La imagen de arriba muestra el cálculo directo de SCNN. donde f es una función de activación no lineal como ReLU. Una X 0 en superíndice indica un elemento actualizado. Cabe señalar que el peso del kernel de convolución está en todos los segmentos 共享, por lo que SCNN es una red neuronal recurrente. Tenga en cuenta también que SCNN 有方向. En la Fig. 3(b), los cuatro módulos 'SCNN' con los sufijos 'D', 'U', 'R', 'L' indican SCNN hacia abajo, hacia arriba, hacia la derecha y hacia la izquierda, respectivamente.


Resumir

Lo anterior es el resumen del artículo de SCNN de hoy, seguido de la implementación del código GitHub y el análisis del código modelo + código de entrenamiento.

Supongo que te gusta

Origin blog.csdn.net/qq_45973897/article/details/129612453
Recomendado
Clasificación