DESCRIPCIÓN
UN MÉTODO Y SISTEMA IMPLEMENTADOS POR ORDENADOR PARA
DETECTAR OBJETOS PEQUEÑOS EN UNA IMAGEN USANDO REDES
NEURONALES CONVOLUCIONALES
CAMPO
La presente divulgación está comprendida en el campo del análisis de imágenes, y más particularmente, en el campo de métodos y sistemas para detectar objetos pequeños en una imagen.
ANTECEDENTES
La detección de objetos ha experimentado un enorme progreso a través de las redes neuronales convolucionales (CNN) profundas. Los enfoques iniciales combinaron métodos de propuesta de región basándose en diferentes técnicas con las redes convolucionales profundas que extraían automáticamente características muy profundas a partir de esas regiones y, finalmente, generaban un cuadro delimitador y la correspondiente categoría de objeto. Las soluciones actuales integran la extracción de características, la propuesta de región y el cuadro delimitador y la categoría de objeto en la CNN, en algunos casos con una arquitectura completamente convolucional.
Las aplicaciones como detectar y evitar a bordo de vehículos aéreos no tripulados (UAV) o vigilancia de vídeo a través de áreas amplias demandan detecciones tempranas de objetos de interés para actuar rápidamente. Esto significa detectar un objeto tan lejos como sea posible, y, por lo tanto, tan pequeño como sea posible. Los detectores de objeto de CNN recientes proporcionan alta precisión a través de una amplia gama de escalas, desde 32 x 32 píxeles hasta el tamaño de la imagen. Sin embargo, no hay CNN específicas centradas en objetivos pequeños. De manera cualitativa, en la presente divulgación la expresión "objetivos pequeños" (u "objetos pequeños") hace referencia a estos objetos sin indicios visuales para asignarlos a una categoría o subcategoría; de manera cuantitativa, los "objetivos pequeños" (u "objetos pequeños") hace referencia a objetos en una imagen que tiene un tamaño con un número total de píxeles iguales o por debajo de 256 píxeles cuadrados (por ejemplo, de 16 x 16 píxeles, de 25 x 10 píxeles).
La mayoría de las CNN del estado de la técnica para detección de objetos no son adecuadas para la detección de tales objetos pequeños, puesto que tanto la propuesta de región, la regresión de cuadro delimitador y la clasificación final toman los mapas de características generados en las últimas capas convolucionales como entradas. Estos
mapas de características tienen una resolución mucho inferior que la imagen de entrada, en la mayoría de los casos las reducciones en la resolución son de hasta 16 veces. Por lo tanto, muchos objetos pequeños se representan en los últimos mapas de características en únicamente un píxel, lo que hace una clasificación y regresión de cuadro delimitador muy difícil, si no imposible.
Una solución sencilla para la detección de objetos pequeño sería modificar una CNN del estado de la técnica que mantuviera la resolución de la imagen inicial en todos los mapas de características. Por supuesto, este enfoque no es viable puesto que, debido al tamaño de la red, no se adaptaría en una GPU (Unidad de Procesamiento de Gráficos) y, también, el paso de reenvío sería muy lento.
Los detectores de objetos modernos están basados en las CNN [2]. Faster-R-CNN [3] se ha convertido en un hito en las CNN para la detección de objetos gracias a la inclusión de un mecanismo de atención visual a través de la denominada Red de Propuesta de Región (RPN). En Faster-R-CNN la imagen de entrada pasa a través de un número de capas convolucionales para la extracción de características hasta la RPN. La RPN está basada en anclas, que son regiones predefinidas de diferentes tamaños y relaciones de aspecto para hacer frente a múltiples escalas. Las anclas están centradas en la ventana deslizante y, para cada posición y ancla, se genera un vector de características de longitud fija con un conjunto de capas convolucionales. La salida de la RPN son las coordenadas de los cuadros delimitadores y sus correspondientes clases, en concreto, objeto y fondo. Finalmente, dada la salida de la RPN y el último mapa de características de la red de extractor de características, se determina el cuadro delimitador y la clase del objeto a través de una red de clasificación completamente conectada.
La Faster-R-CNN existente no es adecuada para la detección de objetos pequeños debido a dos razones. En primer lugar, los tamaños de las anclas predefinidas son muy grandes para objetos pequeños. En segundo lugar, y más importante, el avance efectivo global, el subescalado de la imagen de entrada con respecto al mapa de características que es la entrada a la RPN, es de 16, que significa que se representa un objeto de 16 x 16 mediante solamente un píxel en ese mapa de características. La detección de objetos pequeños requiere un avance efectivo global más preciso en Faster-R-CNN. Esto conduce a un aumento muy alto de memoria, haciendo la implementación imposible para las GPU actuales.
En [4], se presenta un enfoque completamente convolucional para la detección de objetos, denominado Red Convolucional Completamente basada en Región (R-FCN). La diferencia principal con Faster-R-CNN es que la R-FCN genera k x k x (C 1) mapas de
características en la última capa convolucional, en lugar de únicamente uno. Estos mapas son sensibles a la posición, es decir, cada uno de los k x k x (C 1) mapas corresponde con una parte de un objeto de una de las C categorías de objecto (+1 para el fondo). Sin embargo, esto limita la aplicabilidad de la arquitectura de R-FCN a la detección de objetos pequeños, ya que es muy difícil distinguir sus partes.
La capacidad de tratar con objetos de diferentes tamaños en Faster-R-CNN y R-FCN está limitada a unas muy pocas escalas producidas con las anclas. Por lo tanto, las CNN más recientes para la detección de objetos abordan la emisión de la invarianza de escala y detección de objetos pequeños a través de soluciones más elaboradas.
Li et al. [5] introduce una Red Adversarial Generativa Perceptual para la detección de objetos pequeños. El objetivo es mejorar la representación de objetos pequeños para que sea similar a la de los grandes. Esto se hace mirando las correlaciones estructurales de los objetos a diferentes escalas. Este enfoque tiene dos redes. En primer lugar, la red de generador transforma las características pobres originales de objetos pequeños a unos altamente discriminativos. A continuación, la red de discriminador estima la probabilidad de que la representación de entrada pertenezca a un objeto grande real y, finalmente, clasifica la propuesta y ejecuta la regresión del cuadro delimitador. La propuesta se ha probado con dos conjuntos de datos: (i) signos de tráfico del conjunto de datos Tsinghua-Tencent 100k [6], donde consideran como objetos pequeños aquellos con un área por debajo de 32 x 32 píxeles; (ii) peatones por encima de 50 píxeles de alto de la prueba de rendimiento de Caltech [7].
En [8] se presenta un enfoque para la detección de logo de compañía. Este enfoque está basado en Faster-RCNN. Ya que los logos aparecen normalmente como objetos pequeños, Eggert et al. presenta una arquitectura con tres RPN para detectar objetos de diferentes tamaños. Por ejemplo, la RPN después de conv3 tiene anclas para longitudes laterales por debajo de 45 px. Tanto las RPN como la clasificación final y la regresión de cuadro delimitador reciben como entradas la combinación de los mapas de características de las últimas tres convoluciones: los mapas de características de alto nivel se escalan de manera ascendente a través de interpolación bilineal y a continuación se suman con los mapas de nivel inferior. Esta propuesta se validó en el conjunto de datos de FlickrLogos.
También, en [9] se propone una arquitectura con varias RPN. Cada RPN está en un ramal diferente de la red. Las RPN menos profundas son adecuadas para objetos pequeños, mientras que las más profundas son apropiadas para objetivos mayores. Para tener un agrupamiento de RoI (Región de Interés) más informativo, principalmente para objetos pequeños, la CNN aplica submuestreo al último mapa de características de cada
uno de los ramales de la red. En la evaluación experimental los objetos más pequeños varían desde 25 a 50 píxeles de altura.
Yang etal. [10] separa la detección de objetos de diferentes tamaños en diferentes ramales. Su propuesta se basa en una agrupación dependiente de la escala, la agrupación para objetos más pequeños usa únicamente los mapas de características menos profundos, y, también, en clasificadores de rechazo de cascadas por capas en varios ramales para los diferentes tamaños de objeto. Este enfoque considera objetos menores que 64 píxeles de altura como objetivos pequeños.
En [11] los autores proponen una CNN en la que se sobremuestrean los mapas de características más profundos y se combinan con mapas de características menos profundos. La detección de objeto se basa en estos mapas de características combinados: los menos profundos para objetos pequeños y los más profundos para objetos más grandes.
Todos los enfoques anteriores están basados en imágenes sencillas. En [12] la detección de objetos voladores de una única cámara en movimiento se implementa teniendo en cuenta cubos de imágenes espacio-temporales. Esta propuesta tiene dos componentes principales, compensación de movimiento y detección de objeto, ambos basados en CNN. La compensación de movimiento toma como entrada el parche de imagen y devuelve el desplazamiento necesario para centrar el objeto en el parche. La CNN para detección de objetos recibe los cubos de imagen espacio-temporales de movimiento compensado, y devuelve si hay o no un objeto.
La presente divulgación introduce una nueva arquitectura de CNN para detección de objetos pequeños que resuelve los problemas anteriormente mencionados, permitiendo la detección de objetivos pequeños iguales o por debajo de 256 píxeles cuadrados. Esto hace una gran diferencia con el documento anterior de las técnicas anteriores, ya que, en primer lugar, los objetos de interés no presentan indicios visuales definitivos para clasificarles en una categoría y, en segundo lugar, los tamaños de los objetivos considerados en la presente divulgación son significativamente más pequeños que aquellos considerados en los documentos de las técnicas anteriores, lo que hace la detección de objetos más difícil. Para detectar tales objetos pequeños, el avance efectivo global debe ser bajo, lo que requiere una nueva arquitectura para mantener una sobrecarga de memoria razonable. Además, la solución propuesta es un detector de objetos de imagen y, como tal, no presenta información temporal como los detectores de objetos de vídeo informados en [12] y [13].
Referencias
[1] J. Redmon, A. Farhadi, Yolo9000: Better, faster, stronger, IEEE Conference on Computer Vision and Pattern Recognition (CVPR) (2017) 6517-6525.
[2] J. Huang, V. Rathod, C. Sun, M. Zhu, A. Korattikara, A. Fathi, I. Fischer,Z. Wojna, Y. Song, S. Guadarrama, et al., Speed/accuracy trade-offs for modern convolutional object detectors, in: IEEE Computer Vision and Pattern Recognition (CVPR), 2017.
[3] S. Ren, K. He, R. Girshick, J. Sun, Faster r-cnn: Towards real-time object detection with region proposal networks, in: Advances in Neural Information Processing Systems (NIPS), 2015, págs. 91-99.
[4] J. Dai, Y. Li, K. He, J. Sun, R-fcn: Object detection via region-based fully convolutional networks, in: Advances in Neural Information Processing Systems (NIPS), 2016, págs. 379-387.
[5] J. Li, X. Liang, Y. Wei, T. Xu, J. Feng, S. Yan, Perceptual generative adversarial networks for small object detection, in: IEEE Computer Vision and Pattern Recognition (CVPR), 2017.
[6] Z. Zhu, D. Liang, S. Zhang, X. Huang, B. Li, S. Hu, Traffic-sign detection and classification in the wild, in: IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2016, págs. 2110-2118.
[7] P. Dollar, C. Wojek, B. Schiele, P. Perona, Pedestrian detection: An evaluation of the state of the art, IEEE Transactions on Pattern Analysis and Machine Intelligence 34 (4) (2012) 743-761.
[8] C. Eggert, D. Zecha, S. Brehm, R. Lienhart, Improving small object proposals for company logo detection, in: ACM on International Conference on Multimedia Retrieval, ACM, 2017, págs. 167-174.
[9] Z. Cai, Q. Fan, R. S. Feris, N. Vasconcelos, A uniffied multi-scale deep convolutional neural network for fast object detection, in: European Conference on Computer Vision (ECCV), Springer, 2016, págs. 354-370.
[10] F. Yang, W. Choi, Y. Lin, Exploit all the layers: Fast and accurate cnn object detector with scale dependent pooling and cascaded rejection classifiers, in: IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2016, págs. 2129 2137.
[11] T.-Y. Lin, P. Doll_ar, R. Girshick, K. He, B. Hariharan, S. Belongie, Feature pyramid networks for object detection, in: IEEE Computer Vision and Pattern Recognition (CVPR), Vol. 1, 2017, pág. 4.
[12] A. Rozantsev, V. Lepetit, P. Fua, Detecting flying objects using a single moving camera, IEEE Transactions on Pattern Analysis and Machine Intelligence 39 (5) (2017) 879-892.
[13] C. Feichtenhofer, A. Pinz, A. Zisserman, Detect to track and track to detect, in: IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2017, págs.
3038-3046.
[14] K. He, X. Zhang, S. Ren, J. Sun, Deep residual learning for image recognition, in: IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2016, págs. 770-778.
[15] K. Simonyan, A. Zisserman, Very deep convolutional networks for largescale image recognition, in: International Conference on Learning Representations, 2015.
[16] M. D. Zeiler, R. Fergus, Visualizing and understanding convolutional networks, in: European Conference on Computer Vision (ECCV), Springer,2014, págs.
818-833.
[17] V. Nair, G. E. Hinton, Rectified linear units improve restricted boltzmann machines, in: 27th International Conference on Machine Learning (ICML), 2010, págs.
807-814.
[18] M. Everingham, L. Van Gool, C. K. Williams, J. Winn, A. Zisserman, The pascal visual object classes (voc) challenge, International Journal of Computer Vision 88 (2) (2010) 303-338.
[19] T.-Y. Lin, M. Maire, S. Belongie, J. Hays, P. Perona, D. Ramanan, P. Dollár, C. L. Zitnick, Microsoft coco: Common objects in context, in: European Conference on Computer Vision (ECCV), Springer, 2014, págs. 740-755.
[20] Y. LeCun, B. Boser, J. S. Denker, D. Henderson, R. E. Howard, W. Hubbard, L. D. Jackel, Backpropagation applied to handwritten zip code recognition, Neural Computation 1 (4) (1989) 541-551.
[21] W. Luo, Y. Li, R. Urtasun, R. Zemel, Understanding the e_ective receptive field in deep convolutional neural networks, in: Advances in Neural Information Processing Systems (NIPS), 2016, págs. 4898-4906.
[22] S. Gidaris, N. Komodakis, Object detection via a multi-region and semantic segmentation-aware cnn model, in: IEEE International Conference on Computer Vision (ICCV), 2015, págs. 1134-1142.
[23] Y. Jia, E. Shelhamer, J. Donahue, S. Karayev, J. Long, R. Girshick, S. Guadarrama, T. Darrell, Caffe: Convolutional architecture for fast feature embedding, in: 22nd ACM International Conference on Multimedia, ACM, 2014, págs. 675-678.
Sumario
La presente divulgación introduce una nueva arquitectura de CNN para detección de objetos pequeños. La arquitectura de CNN propuesta tiene un tamaño que es significativamente menor que sus partes opuestas para la misma resolución del último mapa de características. La presente invención considera la hipótesis de que, después de unas pocas capas convolucionales, el mapa de características contiene suficiente información para decidir qué regiones de la imagen contienen objetos candidatos, pero no hay suficientes datos para clasificar la región o para realizar regresión de cuadro delimitador.
Dado un mapa de características intermedio, la presente invención aplica un componente novedoso, denominado Red de Contexto de Región (RCN), que es un filtro que permite seleccionar las regiones más prometedoras, todas las cuales con el mismo tamaño, del mapa de características, evitando el procesamiento de las áreas restantes de la imagen. La RCN finaliza con una Capa de Recogida (RCL) de RoI (Región de Interés), que crea un nuevo y reducido mapa de características filtradas disponiendo todas las regiones seleccionadas por la RCN. Por lo tanto, la sobrecarga de la memoria de los mapas de características después de la RCN es mucho menor, pero con la misma resolución espacial, ya que la reducción en tamaño es debido al borrado de las regiones menos prometedores con objetos pequeños. Finalmente, la presente invención aplica una red de propuesta de región (RPN) al último mapa de características filtrado, clasifica las regiones y realiza regresión de cuadro delimitador.
De acuerdo con un aspecto de la presente invención, se proporciona un método implementado por ordenador para detectar objetos pequeños en una imagen usando redes neuronales convolucionales. El método comprende las siguientes etapas:
- Aplicar una o más operaciones convolucionales a una imagen de entrada para obtener un primer conjunto de capas convolucionales y un mapa de características de entrada que corresponde al último bloque convolucional de dicho primer conjunto.
- Analizar el mapa de características de entrada para determinar un primer conjunto de regiones candidatas que contiene objetos candidatos.
- Disponer el primer conjunto de regiones candidatas para formar un mapa de características reducido.
- Aplicar una o más operaciones convolucionales al mapa de características reducido para obtener un segundo conjunto de capas convolucionales y un mapa de características de salida que corresponde al último bloque
convolucional de dicho segundo conjunto.
- Aplicar una red de propuesta de región al mapa de características de salida para obtener un segundo conjunto de regiones candidatas que contiene objetos candidatos.
- Clasificar y aplicar una regresión de cuadro delimitador a cada región candidata del segundo conjunto para obtener, para cada región candidata, una puntuación de clase como un objeto candidato y un cuadro delimitador en la imagen de entrada.
En una realización, el primer conjunto de regiones candidatas se determina aplicando una primera operación convolucional al mapa de características de entrada para obtener una capa convolucional intermedia y un mapa de características intermedio asociado; aplicando una segunda operación convolucional al mapa de características intermedio para obtener un mapa de características de clase que incluye puntuaciones de clase como objetos candidatos; y seleccionando un número determinado de regiones en el mapa de características de entrada de acuerdo con las puntuaciones de clase como objetos candidatos del mapa de características de clase, en donde el primer conjunto de regiones candidatas incluye las regiones seleccionadas.
La etapa de disposición del primer conjunto de regiones candidatas para formar un mapa de características reducido puede comprender concatenar las regiones candidatas y añadir un relleno 0 de inter-región entre regiones candidatas adyacentes.
El método puede comprender también una etapa de preprocesamiento en donde el número y el tamaño de las anclas usadas en la red de propuesta de región se aprenden automáticamente a través de k-medias aplicadas a un conjunto de entrenamiento de cuadros de verdad terreno. El número de anclas se obtiene preferentemente de manera automática realizando unas k-medias interactivas con un número creciente de núcleos hasta que la relación de IoU inter-núcleos máxima alcanza un cierto umbral.
De acuerdo con un aspecto adicional de la presente invención se proporciona un detector de objetos de imagen basándose en redes neuronales convolucionales. El detector de objetos de imagen comprende:
- Un módulo extractor de característica configurado para aplicar una o más operaciones convolucionales a una imagen de entrada para obtener un primer conjunto de capas convolucionales y un mapa de características de entrada que corresponde al último bloque convolucional de dicho primer conjunto; y configurado para aplicar una o más operaciones convolucionales a un mapa de características reducido para obtener un segundo conjunto de capas
convolucionales y un mapa de características de salida que corresponde al último bloque convolucional de dicho segundo conjunto.
- Un módulo de red de contexto de región configurado para analizar el mapa de características de entrada para determinar un primer conjunto de regiones candidatas que contiene objetos candidatos.
- Un módulo de capa de recogida de RoI configurado para disponer el primer conjunto de regiones candidatas para formar el mapa de características reducido.
- Un módulo de red de propuesta de región configurado para obtener, a partir del mapa de características de salida, un segundo conjunto de regiones candidatas que contiene objetos candidatos;
- Un módulo clasificador configurado para clasificar y aplicar regresión de cuadro delimitador a cada región candidata del segundo conjunto para obtener, para cada región candidata, una puntuación de clase como un objeto candidato y un cuadro delimitador en la imagen de entrada.
De acuerdo con una realización, el módulo de red de contexto de región está configurado para aplicar una primera operación convolucional al mapa de características de entrada para obtener una capa convolucional intermedia y un mapa de características intermedio asociado; aplicar una segunda operación convolucional al mapa de características intermedio para obtener un mapa de características de clase que incluye puntuaciones de clase como objetos candidatos; y seleccionar un número determinado de regiones en el mapa de características de entrada de acuerdo con las puntuaciones de clase como objetos candidatos del mapa de características de clase, en donde el primer conjunto de regiones candidatas incluye las regiones seleccionadas.
El módulo de capa de recogida de RoI está configurado preferentemente para formar el mapa de características reducido concatenando las regiones candidatas y añadiendo un relleno 0 de inter-región entre regiones candidatas adyacentes. El detector de objetos de imagen puede implementarse, por ejemplo, en un procesador o una GPU.
La presente invención también se refiere a un sistema de detección de objetos para detectar objetos pequeños en una imagen usando redes neuronales convolucionales. El sistema de detección de objetos comprende un detector de objetos de imagen como se ha definido previamente y una cámara configurada para capturar una imagen de entrada.
De acuerdo con un aspecto adicional más de la presente invención se proporciona un vehículo que comprende un sistema de detección de objetos como se ha definido previamente y un módulo de decisión configurado para determinar, basándose en la
detección de objeto realizada por el sistema de detección de objetos, al menos una acción para su ejecución por uno o más sistemas de vehículo del vehículo. El vehículo puede ser, por ejemplo, un vehículo aéreo no tripulado.
De acuerdo con otro aspecto de la presente invención se proporciona un sistema de vigilancia de espacio aéreo que comprende un sistema de detección de objetos como se ha definido previamente, en donde la cámara del sistema de detección de objetos está montada en una ubicación terrestre y está configurada para monitorizar una región de espacio aéreo; y un módulo de decisión configurado para determinar, basándose en la detección de objeto realizada por el sistema de detección de objetos, al menos una acción para su ejecución.
De acuerdo con otro aspecto más de la presente invención se proporciona un sistema de vigilancia terrestre que comprende un sistema de detección de objetos como se ha definido previamente, en donde el sistema de detección de objetos está instalado en una plataforma o vehículo aéreo y la cámara del sistema de detección de objetos está configurada para monitorizar una región terrestre; y un módulo de decisión configurado para determinar, basándose en la detección de objeto realizada por el sistema de detección de objetos, al menos una acción para su ejecución.
De acuerdo con otro aspecto de la presente invención se proporciona un sistema de detección y evitación instalado a bordo de un vehículo, que comprende un sistema de detección de objetos como se ha definido previamente, en donde la cámara del sistema de detección de objetos está configurada para monitorizar una región delante del vehículo; y un módulo de decisión configurado para determinar, basándose en la detección de objeto realizada por el sistema de detección de objetos, al menos una acción para evitar colisiones potenciales.
La invención también se refiere a un producto de programa informático para detectar objetos pequeños en una imagen usando redes neuronales convolucionales, que comprende al menos un medio de almacenamiento legible por ordenador que tiene registrado en el mismo instrucciones de código informático que, cuando se ejecutan por un procesador, hacen que el procesador realice el método como se ha definido previamente.
Las contribuciones principales de la presente invención son:
- Una nueva CNN para detección de objetos pequeños que puede funcionar con mapas de características de alta resolución en las capas más profundas mientras que tiene un tamaño que es significativamente inferior al de otras CNN. La presente invención se basa en un componente novedoso, RCN, que selecciona
las regiones más prometedoras de la imagen y genera un mapa de características nuevo y filtrado con estas áreas. Por lo tanto, los mapas de características filtrados pueden mantener la misma resolución pero con una sobrecarga de memoria inferior y una tasa de fotogramas superior. - La presente invención usa una RPN que funciona con anclas, en donde puede seleccionarse automáticamente el número y tamaños de las anclas usando un algoritmo novedoso basado en k-medias. La definición automática de las anclas con k-medias mejora el enfoque heurístico clásico.
La red completamente convolucional (CNN) de la presente invención se centra en objetivos pequeños iguales o por debajo de 256 píxeles cuadrados. Incluye un mecanismo de atención temprana visual, RCN, para elegir las regiones más prometedoras con objetos pequeños y su contexto. RCN permite funcionar con mapas de características con alta resolución pero con un uso de memoria reducido, ya que las regiones con objetos menos probables se borran de los mapas de características filtrados. Los mapas de características filtrados, que contienen únicamente las regiones más probables con objetos pequeños, se reenvían a través de la red hasta la red de propuesta de región (RPN) final, y a continuación se clasifican. La RCN es clave para aumentar la precisión de la ubicación a través de resolución espacial más precisa debido a avances efectivos globales más precisos, sobrecarga de memoria menor y tasas de fotogramas superiores.
Los resultados experimentales a través de bases de datos de objetos pequeños muestran que la presente invención mejora la precisión promedio (AP@:5) del mejor enfoque del estado de la técnica para detección de objetivo pequeño del 52,7 % al 60,1 %.
BREVE DESCRIPCIÓN DE LOS DIBUJOS
Se describen brevemente a continuación una serie de dibujos que ayudan a entender mejor la invención y que están expresamente relacionados con una realización de dicha invención, presentados como un ejemplo no limitante de la misma.
La Figura 1 muestra la estructura de un detector de objetos de CNN de acuerdo con la técnica anterior.
La Figura 2 representa las etapas realizadas por un detector de objetos de CNN de acuerdo con la presente invención.
La Figura 3 representa la arquitectura de RCN de la presente invención.
La Figura 4 muestra algunos ejemplos de los mapas de características obtenidos por la RCN.
La Figura 5 es un diagrama esquemático de un detector de objetos de imagen de acuerdo con una realización de la presente invención.
La Figura 6 representa un vehículo con el detector de objetos de imagen instalado a bordo.
La Figura 7 representa las etapas realizadas por el detector de objetos de imagen de acuerdo con una realización de la invención.
La Figura 8 representa las etapas realizadas por un conjunto de bloques residuales a partir de convoluciones tempranas o tardías del detector de objetos de imagen para extraer características del mapa de características de entrada.
La Figura 9 muestra una realización del detector de objetos de imagen de la Figura 5 aplicado a vigilancia de espacio aéreo.
La Figura 10 representa, de acuerdo con otra realización, el detector de objetos de imagen de la Figura 5 aplicado a vigilancia terrestre desde una posición aérea.
La Figura 11 representa, de acuerdo con otra realización más, el detector de objetos de imagen de la Figura 5 aplicado para aplicaciones de detección y evitación. DESCRIPCIÓN DETALLADA
La presente divulgación hace referencia a un sistema y un método implementado por ordenador para detectar objetos en una imagen usando redes neuronales convolucionales.
La Figura 1 representa esquemáticamente, de acuerdo con la técnica anterior, la estructura interna de un objeto detector usando redes neuronales convolucionales, el detector de objetos de CNN 100, que recibe y procesa una imagen de entrada 102 para obtener una clasificación de objeto en la imagen de entrada 104, detectando de esta manera la presencia de objetos en la imagen de entrada 102.
Un extractor de característica 110 del detector de objetos de CNN 100 aplica secuencialmente N operaciones convolucionales sucesivas (111, 113, 115), obteniendo para cada operación convolucional una capa convolucional y los mapas de características asociados (112, 114, 116) que se usarán todos en la siguiente operación convolucional. Una red de propuesta de región (RPN) 120, como se ha descrito en la técnica anterior (véase por ejemplo [3]), se aplica a continuación a los últimos mapas de características 116 obtenidos por el extractor de característica 110. Un clasificador 130 recibe la salida de la RPN 120 y los últimos mapas de características 116 del extractor de característica 110 para determinar la clasificación de objeto en la imagen de entrada 104, que incluye la clase del objeto, usando una red de clasificación completamente conectada. Junto con la clasificación, se realiza también una regresión de cuadro delimitador para obtener el cuadro delimitador en la imagen de entrada 102 para las regiones detectadas como objetos.
El sistema de la presente invención es una red completamente convolucional que detecta objetos pequeños. El sistema únicamente considera regiones de los mapas de características que contienen objetos muy probables, borrando aquellas regiones de los mapas de características con objetos menos probables y creando mapas de características filtrados con la misma resolución pero menores requisitos de memoria. De esta manera, el sistema funciona con mapas de características de alta resolución mientras mantiene una sobrecarga de memoria baja.
La Figura 2 representa esquemáticamente el método realizado por un detector de objetos de CNN, de acuerdo con una realización de la presente invención, para detectar objetos pequeños en una imagen de entrada usando redes neuronales convolucionales. El método 200 comprende recibir una imagen de entrada 102 y aplicar una o más operaciones convolucionales (convoluciones tempranas 210) a la imagen de entrada 102 para obtener un primer conjunto de capas convolucionales 212. En el ejemplo de la Figura 2 el primer conjunto de capas convolucionales 212 está formado por dos bloques convolucionales (214, 216). El último mapa de características del bloque convolucional 216 de dicho primer conjunto 212 es un mapa de características de entrada 302 para las operaciones convolucionales aplicadas en la siguiente etapa del proceso (mostrada en más detalle en la Figura 3), denominada como red de contexto de región (RCN) 220 en la Figura 2. La RCN 220 analiza el mapa de características de entrada 302 para determinar un primer conjunto de regiones candidatas 222 en el mapa de características de entrada 302 que contiene objetos candidatos.
El primer conjunto de regiones candidatas 222 están dispuestas para formar un mapa de características reducido 228 (capa de recogida de RoI). Una o más operaciones convolucionales (convoluciones tardías 230) se aplican a continuación al mapa de características reducido 228 para obtener un segundo conjunto de capas convolucionales 232. En la realización mostrada en la Figura 2 el segundo conjunto de capas convolucionales 232 comprende dos bloques convolucionales (234, 236). El último mapa de características del último bloque convolucional 236 de dicho segundo conjunto 232 es un mapa de características de salida de las convoluciones tardías 230.
Una red de propuesta de región (RPN) 240 se aplica a continuación a dicho mapa de características de salida para obtener un segundo conjunto de regiones candidatas 242 (por ejemplo j regiones candidatas) en el mapa de características de salida que contiene objetos candidatos. Un clasificador 250 clasifica y aplica regresión de cuadro delimitador a cada región candidata del segundo conjunto 242 para obtener, para cada región candidata, una puntuación de clase como un objeto candidato y un cuadro delimitador en
la imagen de entrada 102. En una realización, cada una de las regiones candidatas 242 seleccionadas puede convertirse en primer lugar, antes de la clasificación y regresión de cuadro delimitador, a un mapa de características de tamaño fijo, obteniendo j mapas de características de tamaño fijo 248 (capas de agrupación de Rol).
La Figura 3 representa en más detalle, de acuerdo con una realización, el proceso de RCN 220 para obtener el primer conjunto de regiones candidatas 222 en el mapa de características de entrada 302. La RCN 220 recibe el mapa de características de entrada 302 y aplica una primera operación convolucional al mapa de características de entrada 302 para obtener una capa convolucional intermedia 224 y un mapa de características intermedio asociado. La primera operación convolucional es una convolución que usa un tamaño de núcleo fijo que actúa como una ventana de deslizamiento de tamaño fijo 304 que mapea el mapa de características de entrada 302. En la realización de la Figura 3, la primera operación convolucional es una convolución con un tamaño de núcleo de 3x3 y 128 filtros (es decir una convolución de 3x3 128-d).
La RCN 220 aplica una segunda operación convolucional al mapa de características intermedio para obtener un mapa de características de clase 226 (rcn-clscapa) que incluye puntuaciones de clase como objetos candidatos. En la realización de la Figura 3, la segunda operación convolucional es una convolución con un tamaño de núcleo de 1x1 y 2 filtros (es decir una convolución de 1x1 2-d). La RCN 220 forma el primer conjunto de regiones candidatas 222 seleccionando un número determinado de regiones en el mapa de características de entrada de acuerdo con las puntuaciones como objetos candidatos del mapa de características de clase 226 (por ejemplo, seleccionando las primeras n regiones con la puntuación más alta).
De acuerdo con la realización de la Figura 3, el primer conjunto de regiones candidatas 222 está dispuesto para formar un mapa de características reducido 228 (capa de recogida de Rol, RCL) concatenando las regiones candidatas 222 y añadiendo un relleno 0 de inter-región (mostrado como huecos en la Figura) entre regiones candidatas 222. La Figura 4 representa un ejemplo ilustrativo del mapa de características reducido 228 (capa de recogida de Rol) para una imagen de entrada particular 102. La Figura 4 muestra únicamente 4 filtros, del total de 256 filtros usados en el ejemplo, de la entrada de RCN (es decir el mapa de características de entrada 302), y únicamente 7 filtros (una fila para cada filtro) de un total de 256 de la salida de capa de recogida de Rol (es decir el mapa de características reducido 228).
La Figura 5 es un diagrama esquemático que muestra los componentes de un detector de objetos de imagen 500 basándose en redes neuronales convolucionales (es
decir, el detector de objetos de CNN) de acuerdo con una realización de la presente invención. El detector de objetos de imagen 500 de la presente invención es un sistema (o parte de un sistema) para detectar objetos pequeños en una imagen usando redes neuronales convolucionales. El sistema puede implementarse en un dispositivo de procesamiento que incluye un procesador, una GPU o una combinación de los mismos (o cualquier otra clase de dispositivo de procesamiento de datos) y un medio legible por ordenador que tiene codificado en el mismo instrucciones ejecutables por ordenador para hacer que el procesador/GPU ejecute el método para detectar objetos pequeños en una imagen usando redes neuronales convolucionales como se ha descrito anteriormente.
El detector de objetos de imagen 500 comprende un módulo extractor de característica 510, un módulo de red de contexto de región 520, un módulo de capa de recogida de región de interés (RoI) 530, un módulo de red de propuesta de región 540 y un módulo clasificador 550.
El módulo extractor de característica 510 está configurado para aplicar una o más operaciones convolucionales 210 (convoluciones tempranas) a una imagen de entrada 102 para obtener un primer conjunto de capas convolucionales 212 y un mapa de características de entrada 302 que corresponde al último bloque convolucional 216 del primer conjunto de capas convolucionales 212.
El módulo de red de contexto de región 520 analiza el mapa de características de entrada 302, buscando y determinando las regiones más prometedoras que contienen objetos candidatos (es decir, un primer conjunto de regiones candidatas 222). Las regiones se definen como áreas de la imagen que pueden contener objetos junto con su contexto. El módulo de red de contexto de región 520 asigna a cada región una puntuación, y las regiones puntuadas más altas (primer conjunto de regiones candidatas 222) se pasan a un módulo de capa de recogida de RoI 530, en la etapa final de la RCN.
El módulo de red de contexto de región 520 evita el reenvío de las regiones de la imagen de entrada con objetos menos probables a las capas convolucionales más profundas, ahorrando memoria y aumentando la tasa de fotogramas. El ahorro de memoria es clave para aumentar la resolución espacial a través de avances efectivos globales más precisos a través de capas convolucionales, obligatorio para no perder la ubicación espacial de objetos pequeños.
El módulo de red de contexto de región 520 selecciona las regiones candidatas más probables con uno o más objetos pequeños junto con su contexto, y las devuelve como un conjunto de regiones disjuntas. Como en esta etapa el objetivo es no obtener una ubicación de objeto precisa, ni un enfoque de regresión de cuadro, no son necesarios ni
un conjunto de anclas con diferentes escalas ni relaciones de aspecto. Una única ancla de un tamaño dado es suficiente para devolver las regiones candidatas más probables con objetos pequeños. El módulo de red de contexto de región 520 aplica en primer lugar un filtro convolucional de 3 x 3 a cada ventana del mapa de características de entrada 302, generando una capa intermedia 128-d con ReLU (Unidad Lineal Rectificada) [17] a continuación. Esta estructura alimenta una capa de cuadro-clasificación (rcn-cls-capa) representada por una capa 1 x 1 convolucional 2-d ("fg", es decir, objeto, y "bg", es decir no objeto) que puntúa regiones obtenidas con ventanas de deslizamiento a través de la última convolución temprana (es decir, el mapa de características de entrada 302).
Para verificar que el ancla es un candidato positivo o uno negativo en cada región de ventana de deslizamiento durante la fase de entrenamiento de la RCN, las verdades de terreno de los objetos crecen proporcionalmente en todas las direcciones hasta que equivalen al tamaño definido del ancla. A continuación, estas anclas que tienen un solapamiento considerable con la tabla de terreno modificada (mayor que 0,7 por defecto) se asignan como etiquetas positivas, dejando negativas aquellas regiones que apenas tienen un solapamiento (menor que 0,3 por defecto). Como es habitual, el solapamiento se mide por la relación de intersección sobre unión (IoU). La puntuación de la objetividad de las regiones candidatas en
RCN se minimiza a través de:
clasificador de objeto/no objeto
donde pi es la probabilidad prevista de que el ancla de orden i sea un objeto en un mini-lote de RCN, y p t* es la etiqueta de verdad terreno adaptada. El término
normaliza la ecuación y hace referencia al tamaño del mini-lote de RCN. Lcis es una pérdida softmax sobre las categorías de objeto o no objeto.
RCN 220 finaliza con la denominada capa de recogida de RoI (RCL) (Figura 3), implementada mediante el módulo de capa de recogida de RoI 530, que está configurado para disponer el primer conjunto de regiones candidatas 222 para formar un mapa de características reducido 228. El módulo de capa de recogida de RoI 530 toma como entrada el mapa de características generado por la última convolución temprana y las propuestas con puntuación más alta de la RCN para devolver un único mapa de características filtrado (mapa de características reducido 228) con la misma información que la del mapa de características de entrada 302, pero únicamente para el conjunto de regiones seleccionadas. Las convoluciones sucesivas con filtros mayores que 1x1
afectarán las salidas de las regiones vecinas. Para resolver este problema, el módulo de capa de recogida de RoI 530 añade un relleno 0 de inter-región, mostrado mediante los huecos entre las regiones en la Figura 3.
Con esta configuración, las dimensiones de la salida del mapa de características se obtienen como sigue:
anchura altura
(2) donde n es el número de regiones de RCN, rw y rh son las dimensiones de las regiones en el mapa de características de entrada de RCL y pd es el tamaño del relleno 0 entre regiones. Por ejemplo, una imagen de entrada de 1280x720 tiene un mapa de características de entrada de RCL de 320x180, y la RCL de salida genera un mapa de características de 649x12: 50 regiones de tamaño 48x48 en la imagen de entrada -12x12 en el mapa de características de entrada de RCL para avance 4- con 1 píxel de relleno 0 en el ejemplo; es decir una reducción de 7,4 veces de uso de memoria de GPU (86,5 % memoria ahorrada).
El módulo extractor de característica 510 también aplica una o más operaciones convolucionales 230 (convoluciones tardías) al mapa de características reducido 228 para obtener un segundo conjunto de capas convolucionales 232 y un mapa de características de salida 502 que corresponde al último bloque convolucional 236 de dicho segundo conjunto 232. Las convoluciones tardías 230 actúan en el primer conjunto de regiones candidatas 222 obtenidas por el módulo de red de contexto de región 520 independientemente debido al relleno 0 inter-región visualizado como huecos entre las diferentes regiones candidatas en la Figura 3.
El módulo extractor de característica 510 puede ser cualquiera de las soluciones más amplias del estado de la técnica halladas en la bibliografía, por ejemplo ResNet [14], VGG [15], ZF [16], etc. Se usa preferentemente ResNet-50, puesto que proporciona una buena compensación entre precisión, velocidad y consumo de memoria de GPU [14].
El módulo de red de propuesta de región (RPN) 540 está configurado para obtener, usando el mapa de características de salida 502, un segundo conjunto de regiones candidatas 242 que contiene objetos candidatos. El módulo de RPN 540 realiza una regresión de delimitación inicial y clasificación como objeto (fg) y fondo (bg) [3], que se perfeccionan finalmente en la etapa de clasificación.
El módulo de RPN 540 está basado en la RPN presentada en [3], pero incluyendo un conjunto de modificaciones para tratar con el hecho de que las coordenadas de su mapa de características de entrada no corresponden con aquellas de la imagen de entrada, es
decir, la entrada de RPN contiene regiones no ordenadas. Para mapear las regiones en la imagen de entrada a la función de entrenamiento de RPN, que está basada en la IoU entre anclas y la verdad terreno, el módulo de red de contexto de región 520 pasa las 4 coordenadas de cada región como un parámetro al módulo de RPN 540 para generar las anclas con relación a estas regiones. Finalmente, la salida de la regresión de cuadro delimitador se transforma a las coordenadas de imagen de entrada.
Los enfoques que se basan en las RPN definen el número de anclas y sus tamaños heurísticamente. En la presente invención, tanto el número y el tamaño de las anclas se aprenden a través de k-medias (es decir inicialización de anclas automáticas mediante kmedias). Este enfoque puede adoptarse mediante cualquier otra red de detección de objeto con anclas, por ejemplo Faster-R-CNN, independientemente del tamaño objetivo de los objetos. El procedimiento de aprendizaje de ancla de k-medias se implementa como una etapa de preprocesamiento. k-medias se aplica al conjunto de entrenamiento de altura y anchura de cuadros de verdad terreno. Para obtener el número de núcleos, que será el número de anclas, se realiza unas k-medias interactivas con un número creciente de núcleos hasta que la IoU inter-núcleos máxima supere un cierto umbral. En una realización, el umbral se establece a 0,5, que es el valor usado en repositorios bien conocidos, como PASCAL VOC [18] o MS COCO [19], para comprobar si una detección es positiva o negativa con respecto a una verdad terreno. Una contribución similar se definió en [1], donde un algoritmo de k-medias selecciona el tamaño de las anclas de acuerdo con el conjunto de datos, pero donde la selección del número de anclas se hace manualmente, visualizando la mejor compensación entre el número de anclas y la intersección promedio entre estas con los objetos del conjunto de datos. El presente enfoque hace la selección de anclas completamente automática.
El módulo clasificador 550 está configurado para clasificar y aplicar una regresión de cuadro delimitador a cada región candidata del segundo conjunto de regiones candidatas 242 para obtener, para cada región candidata, una puntuación de clase 552 como un objeto candidato y un cuadro delimitador 554 en la imagen de entrada 102.
La Figura 6 representa una realización de ejemplo del detector de objetos de imagen 500 instalado a bordo de un vehículo 600, tal como un barco, un coche, una aeronave, un vehículo aéreo no tripulado o un dron. En particular, el vehículo 600 incluye un sistema de detección de objetos 610 para detectar objetos pequeños en una imagen usando redes neuronales convolucionales, en donde el sistema de detección de objetos 610 comprende una cámara 612 (el término "cámara" incluye cualquier dispositivo que pueda obtener una imagen o un conjunto de imágenes, tal como una cámara convencional
o una cámara de vídeo) configurada para capturar una imagen de entrada 102, y el detector de objetos de imagen 500 como se ha descrito anteriormente en la Figura 5. En este ejemplo, el detector de objetos de imagen 500 está implementado en un procesador o una GPU 614.
El vehículo 600 puede comprender también un módulo de decisión 620 que recibe la salida del sistema de detección de objetos (las puntuaciones de clase 552 y los cuadros delimitadores 554 para las regiones candidatas seleccionadas en la imagen de entrada 102), y determina, basándose en los objetos detectados en la imagen de entrada 102, una o más acciones 622 para ejecutarse por uno o más sistemas de vehículo 630 (por ejemplo, el sistema de comunicaciones 632, el sistema de navegación 634 con sensores a bordo 635, el sistema de propulsión 638) del vehículo 600.
Por ejemplo, como se muestra en la realización de la Figura 6, la acción puede enviarse al sistema de navegación 634 (línea continua) y/o al sistema de comunicaciones 632 (línea discontinua). En el primer caso, la acción puede incluir, como un ejemplo, guiar al vehículo hacia uno de los objetos detectados pequeños, dependiendo de la puntuación de clase obtenida para dicho objeto o del tamaño del cuadro delimitador. Esto podría ser el caso, por ejemplo:
- Cuando el cuadro delimitador es tan pequeño que se requiere que el vehículo 600 confirme la puntuación de clase 552 asignada a la región acercándose.
- Cuando la puntuación de clase asignada es de una relevancia particular para el vehículo. Por ejemplo, si el vehículo 600 es un dron que patrulla un área geográfica segura vasta, tal como las fronteras entre países, y está mirando personas que invaden esa área geográfica segura.
En este primer caso, el sistema de navegación 634 recibe una instrucción de desplazamiento 624 para moverse hacia una ubicación determinada (por ejemplo, un objeto detectado) y calcula una trayectoria actualizada, que se ejecuta mediante el sistema de propulsión 638 (por ejemplo, motores, etc.) del vehículo 630.
En el segundo caso, las acciones 622 pueden incluir informar los objetos detectados 626 a una entidad externa, tal como un servidor, usando el sistema de comunicaciones 632 del vehículo 600.
La Figura 7 representa las etapas realizadas por un detector de objetos de imagen 500 de acuerdo con una realización de ejemplo de la invención (esto es simplemente un ejemplo, pueden emplearse diferentes parámetros en otras realizaciones):
- Entrada: el detector de objetos de imagen 500 toma una imagen o un fotograma de vídeo como una imagen de entrada 102. La imagen de entrada se escala a
resolución de HD, 1280x720x3 (anchura x altura x número de canales de color de RGB), manteniendo su relación de anchura y altura.
- Convoluciones tempranas 210: Este conjunto está compuesto por una primera capa convolucional 710, una capa de agrupación máxima 712 y un segundo bloque residual 714.
• Primera capa convolucional 710: obtiene la imagen de entrada y aplica un tamaño de núcleo de 7x7 con avance 2, relleno 3 y 64 filtros. Esta operación divide por la mitad la anchura y altura, devolviendo un mapa de características de 640x360x64.
• La capa de agrupación máxima 712: transforma el mapa de características de 640x360x64 en un mapa de características de 320x180x64 a través de una operación de agrupación máxima con un tamaño de núcleo de 3x3 y avance 2. A partir de este punto hasta el final, el detector de objetos de imagen 500 mantiene la resolución actual, es decir, una resolución cuatro veces menor que el de la imagen de entrada original.
• El segundo bloque residual 714: el bloque residual (la Figura 8 representa las etapas realizadas por un conjunto de bloques residuales [14] para extraer características del mapa de características de entrada ) compuesto por tres bloques que aumenta el número de filtros de 64 a 256, devolviendo un mapa de características de 320x180x256 (es decir, el mapa de características de entrada 302 en la Figura 3).
- Red de Contexto de Región (RCN) 220: La RCN 220 consiste en dos capas convolucionales (convolución de RCN 720 y convolución de puntuación de clase de RCN 722) y una capa para la propuesta de regiones (capa de propuesta de RCN 724).
• Convolución de RCN 720: aplica un tamaño de núcleo de 3x3 (avance 1, relleno 1) que actúa como una ventana de deslizamiento 3x3, mapeando la información de mapa de características de entrada 302 en una salida 128-d (320x180x128).
• Convolución de puntuación de clase de RCN 722: una convolución de 1x1 que aprende las características necesarias para diferenciar entre el objeto o no objeto de regiones en cada ubicación de ventana de deslizamiento (2-d). Cada unidad del mapa de características decide si el ancla centrada en esa unidad contiene o no un objeto. Esto se hace
comparando los valores de activación de las dos unidades en la misma ubicación espacial: uno de ellos aprende la puntuación del primer plano y el otro la puntuación del fondo. Devuelve un mapa de características de 320x180x2.
• Capa de propuesta de RCN 724: una capa personalizada que obtiene la puntuación de clase (objeto o no objeto) de la convolución de puntuación de clase de RCN 722, calcula sus coordenadas de regiones en el tamaño de imagen de entrada y devuelve un primer conjunto de regiones candidatas 222 que es más probable que contengan un objeto (50x4 rcnrois, donde 50 es el número de regiones y 4 son las coordenadas para cada región).
- Capa de recogida de RoI (RCL) 228: RCL 228 es otra capa personalizada que obtiene el primer conjunto de regiones candidatas 222 (rcn rois) de la capa de propuesta de RCN 724 y la información de mapa de características del segundo bloque residual 714 (mapa de características de entrada 302). Con ambas entradas, obtiene la información del mapa de características del segundo bloque residual 714, pero únicamente dentro de las regiones seleccionadas. A continuación, concatena esta información en un nuevo mapa de características de salida de tamaño RCLtamaño salida. Las convoluciones sucesivas con filtros mayores que 1x1 afectarán las salidas de las regiones vecinas. Para resolver este problema, RCL añade un relleno 0 de inter-región. Para este ejemplo, si tomamos las 50 regiones más probables superiores con un tamaño de región de 48x48 píxeles (12x12 en el mapa de características del segundo bloque residual 714) y 1 píxel de relleno 0, el tamaño de mapa de características de salida es 649x12x256.
- Convoluciones tardías 230: Este conjunto está compuesto por dos bloques residuales (tercer bloque residual 730 y cuarto bloque residual 732, obtenidos de acuerdo con el diagrama de flujo de la Figura 8).
• Tercer bloque residual 730: compuesto por cuatro bloques que toman como entrada la salida del RCL 228 y aumentan el número de filtros de 256 a 512, devolviendo un mapa de características de 649x12x512. Dentro del bloque residual y después de cada convolución de 3x3, se aplica relleno de recogida de restauración (véase la Figura 8), una capa auxiliar que restaura el relleno entre regiones a cero.
• Cuarto bloque residual 732: el bloque residual compuesto por seis bloques que aumenta el número de filtros de 512 a 1024, devolviendo un
mapa de características de 649x12x1024. Como en el caso anterior, se aplica relleno de recogida de restauración.
- Red de propuesta de región (RPN) 240: RPN 240 consiste en tres capas convolucionales (convolución de RPN 740, convolución de puntuación de clase de RPN 744 y convolución de regresión de cuadro delimitador de RPN 746) y una capa para la propuesta de regiones (capa de propuesta de RPN 748).
• Convolución de RPN 740: aplica un tamaño de núcleo de 3x3 (avance 1, relleno 1) que actúa como una ubicación de ventana de deslizamiento de 3x3 que mapea la información de mapa de características de entrada en una salida 256-d (649x12x256). Después de esta operación, una capa auxiliar (relleno de recogida de eliminación 742) elimina el relleno 0 entre regiones puesto que no hay más de 3x3 convoluciones que vayan a aplicarse en ellas, devolviendo un mapa de características de 600x12x256.
• Convolución de puntuación de clase de RPN 744: una convolución de 1x1 que aprende las características necesarias para diferenciar entre un objeto o no objeto en cada ubicación de ventana de deslizamiento y para cada ancla definida (6-d puesto que se usan 3 anclas). Devuelve un mapa de características de 600x12x6.
• Convolución de regresión de cuadro delimitador de RPN 746: una convolución de 1x1 que aprende las características necesarias para aplicar regresión a cada una de las cuatro coordenadas de cada ancla en cada ubicación de ventana de deslizamiento (12-d puesto que se usan 3 anclas). Devuelve un mapa de características de 600x12x12.
• Capa de propuesta de RPN 748: una capa personalizada que obtiene el primer conjunto de regiones candidatas 222 (rcnrois) de la capa de propuesta de RCN 724, las puntuaciones de clase (objeto o no objeto) para cada ancla de la convolución de puntuación de clase de RPN 744 y las coordenadas para cada ancla de la convolución de regresión de cuadro delimitador de RPN 746. Con el primer conjunto de regiones candidatas 222 (rcn rois), mapea las ubicaciones de ventana de deslizamiento para cada ancla a las coordenadas de estas regiones en la imagen de entrada original. A continuación, ordena aquellas que es más probable que contengan un objeto mediante las puntuaciones de la convolución de puntuación de clase de RPN 744. Para todas ellas, se aplican los valores
de regresión aprendidos mediante la convolución de regresión de cuadro delimitador de RPN 746, obteniendo las N regiones finales superiores (en el ejemplo N=300) en la imagen de entrada original (rois). Además, la capa de propuesta de RPN 748 también devuelve las coordenadas de las 300 regiones relativas a la entrada de RPN, es decir el mapa no ordenado de regiones (scaledrois), el segundo conjunto de regiones candidatas 242 en la Figura 2.
- Capa de agrupación de RoI 248: esta capa toma la información de mapa de características del cuarto bloque residual 732 (es decir, el mapa de características de salida 502) y el mapa no ordenado 300 de regiones scaled rois (es decir el segundo conjunto de regiones candidatas 242). El relleno de recogida de eliminación de capa auxiliar elimina el relleno 0 entre regiones en el mapa de características del cuarto bloque residual 732 de modo que el tamaño es 600x12x12. A continuación, la capa de agrupación de RoI 248 obtiene la información del mapa de características del cuarto bloque residual 732, pero únicamente dentro de las regiones seleccionadas, y lo convierte en un mapa de características de tamaño fijo (14x14x1024). También, las 300 regiones avanzan a la siguiente etapa.
- Clasificador 250: Cada región de interés de la capa de agrupación de RoI 248 se clasifica independientemente mediante el último bloque residual (quinto bloque residual 750, Figura 8) y una agrupación promedio 752.
• Quinto bloque residual 750: bloque residual compuesto por los tres bloques. El primero divide por la mitad la anchura y la altura entre 2. Además, el bloque aumenta el número de filtros de 1024 a 2048, devolviendo un mapa de características de 7x7x2048.
• Agrupación promedio 752: una agrupación promedio con tamaño de núcleo de 7x7 reduce la dimensión a 1x1x2048, lista para clasificarse mediante capas completamente conectadas.
- Función de decisión 760: para cada región de interés, la decisión final se toma basándose en dos capas completamente conectadas que transforman el conjunto de 1x1x2048 de entrada en la categoría del objeto (capa completamente conectada de puntuación de clase 762) y su correspondiente regresión de cuadro delimitador (capa completamente conectada de regresión de cuadro delimitador 764). Por otra parte, el valor obtenido mediante la capa completamente conectada de puntuación de clase 762 pasa a través de una función Softmax 766 para normalizar la
puntuación en el intervalo [0, 1] y, por otra parte, una función de transformación 768 aplica la regresión de cuadro delimitador a las rois con relación a la imagen de entrada original obtenida de la capa de propuesta de RPN 748. Esto devuelve la puntuación de clase final 552 y el cuadro delimitador 554 para cada región de interés.
Con respecto al entrenamiento del sistema, como todas las capas aprendibles son convolucionales y compartidas, tanto la red que actúa como una red troncal (ResNet- 50) como los dos módulos de la red (módulo de RCN 520 y módulo de RPN 540) pueden entrenarse extremo a extremo mediante retropropagación y descenso de gradiente estocástico (SGD) [20]. En una realización, se ha seleccionado el entrenamiento conjunto aproximado [3].
El módulo de RCN 540 se entrena de una manera similar al módulo de RPN 540, excepto la regresión de cuadro delimitador, que no existe en RCN. El hecho de que RCL mantenga el mismo número de salida de imágenes por mini-lote que el de las imágenes de entrada, hace el resto del entrenamiento idéntico a otras redes de RPN como Faster-R-CNN. La inicialización de las anclas por k-medias no afecta el entrenamiento, puesto que se realiza previamente al entrenamiento. De la misma manera que la RPN, el módulo de RCN 520 obtiene su mini-lote de una única imagen seleccionando anclas positivas y negativas. El mini-lote usado dentro de la RCN son 64 ejemplos que intentan mantener cada vez que sea posible una relación de 1:1 de etiquetas positivas y negativas. El tamaño del ancha se obtiene estimando el campo receptivo eficaz (ERF) que, en la práctica, sigue una distribución gaussiana [21], por lo que la mitad del campo receptivo teórico de las convoluciones entre RCN y RPN se selecciona como ERF. Para eliminar las regiones solapantes de aquellas propuestas por la RCN, se aplica una supresión no máxima agresiva con un umbral bajo (0,3) sobre las 2.000 mejores propuestas antes de la RCL, dando como resultado un número bajo de regiones dispersadas, alrededor de 200 de media. En la prueba, pasamos a través de la RCN aquellas regiones con confianza superior a 0,3, hasta un máximo de 50 regiones.
RCN y RCL pueden integrarse en cualquier estructura convolucional de detección de objetos simplemente adaptando el correspondiente método de propuesta de región para funcionar con regiones no ordenadas. En una realización, el método se ha implementado a través de Faster-R-CNN. Los híper-parámetros para entrenamiento y prueba son los mismos que aquellos usados en Faster-R-CNN. El módulo de RPN 540 se coloca entre las capas convolucionales del cuarto bloque residual 732 y el quinto bloque residual 732, como se hace en [14] para Faster-R-CNN. Finalmente, en prueba, se aplica un esquema
de voto de cuadro después de la supresión no máxima [22]. En esta implementación, se usa la estructura Caffe [23].
Las Figuras 9, 10 y 11 representan varias posibles aplicaciones del método y el detector de objetos de imagen de la presente invención. Sin embargo, se observa que la presente invención podría aplicarse a muchos otros escenarios de caso real. Entre los diferentes casos de uso previstos para la invención propuesta, se destacan los siguientes:
- Vigilancia de espacio aéreo.
- Vigilancia terrestre de una posición aérea.
- Detección y evitación.
Se representa el primer caso de uso de vigilancia de espacio aéreo en la Figura 9. El sistema de vigilancia del espacio aéreo 900 de la Figura 9 comprende una cámara 912 (implementada en este ejemplo como una cámara de vídeo) ubicada en la tierra 902, montada en un poste o en una plataforma en movimiento terrestre. La cámara 912 está apuntando hacia el cielo, ya sea en una dirección vertical u oblicua. La cámara 912 monitoriza una región de espacio aéreo determinada 903. La región de espacio aéreo 903 monitorizada puede ser una región estática, si la posición y la orientación de la cámara están fijas, o una región dinámica, si la posición, orientación y /o ampliación de la cámara 912 cambian dinámicamente.
El flujo de vídeo (secuencia de imágenes de entrada 102) obtenido mediante la cámara 912 se envía a un procesador 914 para análisis adicional para detectar todos aquellos objetos voladores 904 (por ejemplo, un dron en el ejemplo de la Figura 9) que aparecen en el campo de visión 906 de la cámara 912 y se representan en la imagen de entrada 102 como objetos pequeños 908 (con un tamaño de hasta 16x16 píxeles). Para este fin, el procesador 14 implementa el detector de objetos de imagen 500 de la Figura 5. El procesador 914 puede colocarse junto con la cámara 912 (es decir, localmente) o de manera remota, por ejemplo en un centro de datos remoto. En el último caso, las imágenes de entrada 102 se transmiten al procesador 900 usando una conexión de datos de banda ancha, tal como internet. La cámara 912 y el detector de objetos de imagen 500 implementados mediante el procesador 914 forman un sistema de detección de objetos 910 a cargo de la monitorización del espacio aéreo y de la detección, en tiempo real, de cualquier tipo de objetos voladores 904 (tal como una aeronave, por ejemplo drones, dirigibles, paracaidistas o incluso meteoritos).
El sistema de vigilancia del espacio aéreo 900 es útil en escenarios donde la monitorización del espacio aéreo por razones de seguridad y/o protección es crítico, tales como aeropuertos (para detectar objetos voladores que pueden plantear un peligro
potencial para la aviación comercial o militar), plantas nucleares, centros de transporte, instalaciones gubernamentales, estadios de fútbol y cualesquiera otras infraestructuras críticas.
La detección de objetos pequeños realizada por el sistema de vigilancia del espacio aéreo 900 se lleva a cabo tan pronto como sea posible (es decir cada vez que aparece el objeto volador 904 en el campo de visión 906 de la cámara 912, a pesar de su tamaño), para tomar las acciones de contingencia requeridas. El sistema de vigilancia del espacio aéreo 900 puede incluir opcionalmente un módulo de decisión 920 para determinar una o más acciones 922 que van a llevarse a cabo, basándose en la detección del objeto realizada por el sistema de detección de objetos 910. Las acciones 922 pueden incluir, por ejemplo, neutralizar un dron que vuela en el espacio aéreo cerca de un aeropuerto, enviar un mensaje de alarma, etc. El sistema de vigilancia del espacio aéreo 900 puede comprender también medios (no mostrados en la Figura) para ejecutar las acciones 922 determinadas por el módulo de decisión 920. Por ejemplo, si la acción que va a tomarse es neutralizar un dron detectado, el sistema de vigilancia del espacio aéreo 900 puede incluir un lanzador de misiles para destruir el dron.
La Figura 10 representa el detector de objetos de imagen 500 aplicado a vigilancia terrestre desde posiciones aéreas (por ejemplo desde vehículos o plataformas aéreas). En este caso, el sistema de vigilancia terrestre 1000 comprende una cámara 1012 (por ejemplo una cámara de vídeo) montada en un vehículo aéreo 1001 (por ejemplo, un dron), que apunta hacia abajo hacia la tierra 1002, ya sea en una dirección vertical u oblicua, para monitorizar una región de tierra 1003. El flujo de vídeo capturado por la cámara 1012 se envía a un procesador 1014 (ya sea a bordo del vehículo aéreo 1001 o ubicado de manera remota en una instalación en tierra) encargado de analizar las imágenes de entrada 102 para detectar objetos terrestres pequeños estáticos o en movimiento 1004 (por ejemplo, personas, como se representa en el ejemplo de la Figura 10) en la tierra 1002 (tierra, mar, río, laguna, etc.) que aparecen en el campo de visión 1006 de la cámara 1012 y se representan en la imagen de entrada 102 como objetos pequeños 1008 (con un tamaño de hasta 16x16 píxeles). El sistema de vigilancia terrestre 1000 puede aplicarse en diferentes escenarios de vigilancia aéreos, tales como:
- Búsqueda y rescate, por ejemplo en entornos marítimos, para ubicar barcos o personas en el mar; en entornos de tierra, para detectar excursionistas (los objetos terrestres pequeños 1004 en el ejemplo de la Figura 10) que se pierden.
- Aplicaciones de seguridad, para detectar objetivos específicos (por ejemplo, vehículos o personas) que se acercan a un área protegida dada (por ejemplo en
aplicaciones de Seguridad Nacional: inmigrantes ilegales que se acercan a una frontera).
- Vigilancia de tráfico, para detectar vehículos, atascos de tráfico y otros eventos relacionados con la gestión de tráfico.
La cámara 1012 y el detector de objetos de imagen 500 implementados mediante el procesador 1014 forman un sistema de detección de objetos 1010 encargado de monitorizar la región terrestre 1003 y detectan, en tiempo real, cualquier clase de objetos terrestres 1004 (por ejemplo, personas).
El sistema de vigilancia terrestre 1000 puede incluir también un módulo de decisión 1020 para determinar una o más acciones 1022 que van a realizarse basándose en la detección del objeto realizada por el sistema de detección de objetos 1010. Las acciones 1022 pueden incluir, entre otras, enviar un mensaje a una estación remota que informa acerca de los objetos detectados. El sistema de vigilancia terrestre 1000 puede comprender también medios (no mostrados en la figura) para ejecutar las acciones 1022.
En la realización de la Figura 11, se representa una aplicación del detector de objetos de imagen 500 para evitar colisiones (es decir, aplicaciones de detección y evitación). Esta es una aplicación útil particular para el vehículo 600 de la Figura 6. En esta realización, el sistema de detección y evitación 1100 comprende una cámara 1112 (por ejemplo una cámara de vídeo) montada a bordo de un vehículo 1101, tal como la aeronave representada en la Figura 11 o cualquier otro tipo de vehículo (por ejemplo un coche autónomo, un dron, etc.). La cámara 1112 está apuntando hacia delante, en la dirección de movimiento del vehículo 1101, ya sea en una dirección horizontal o ligeramente en una oblicua, hacia una región dinámica 1103 (en la realización, una región de espacio aéreo). El flujo de vídeo de la cámara 1112 se analiza mediante un procesador a bordo 1114, para detectar otros objetos voladores pequeños 1104 que aparecen en el campo de visión 1106 de la cámara 612, representados en la imagen de entrada 102 como objetos pequeños 1108 con un tamaño de hasta 16x16 píxeles, y que pueden implicar un obstáculo potencial para el vehículo aéreo 600.
La cámara 1112 y el detector de objetos de imagen 500 implementados mediante el procesador 1114 forman un sistema de detección de objetos encargado de la monitorización de la región de espacio aéreo 1103 y de la detección, en tiempo real, de cualquier clase de objetos voladores 1104 (por ejemplo drones, pájaros).
El sistema de detección y evitación 1100 comprende un módulo de decisión 1120 que determina una o más acciones 1122 que van a realizarse basándose en los objetos voladores 1104 detectados por el sistema de detección de objetos. Las acciones 1122
determinadas por el módulo de decisión 1120 tienen como objetivo evitar una colisión contra los objetos voladores detectados 1104. Por ejemplo, puede calcularse una nueva trayectoria mediante el módulo de decisión 1120 para su ejecución por el vehículo 1101 (por ejemplo, por el FMS de una aeronave o mediante un módulo de navegación autónomo de un dron). Un vehículo 1101 que comprende el sistema de detección y evitación 1100 puede también ser parte de la invención, comprendiendo el vehículo medios para ejecutar las acciones 1122 para evitar la colisión.
La detección de objetos pequeños realizada por el sistema de detección y evitación 1100 se realiza tan pronto como sea posible (es decir cada vez que el objeto volador 1104 aparezca en el campo de visión 1106 de la cámara 1112, a pesar de su tamaño), para tomar las acciones de contingencia requeridas para evitar colisiones potenciales.
Es importante destacar que el método y detector de objetos de imagen 500 de la presente invención son especialmente ventajosos, cuando se comparan con la técnica anterior, para detectar objetos pequeños (iguales o por debajo de 16x16 píxeles) en una imagen. Sin embargo, la invención puede aplicarse también para detectar objetos más grandes (es decir, por encima de 16x16 píxeles) en una imagen.