Las Redes Neuronales Convolucionales basadas en regiones (R-CNN) son una familia de modelos de aprendizaje automático para visión por computadora, específicamente para la detección y localización de objetos. El objetivo original de R-CNN era tomar una imagen de entrada y producir un conjunto de cuadros delimitadores como salida, donde cada cuadro delimitador contiene un objeto y también la categoría (por ejemplo, coche o peatón) del objeto. En general, las arquitecturas R-CNN realizan una búsqueda selectiva sobre los mapas de características generados por una CNN.
R-CNN se ha extendido para realizar otras tareas de visión por computadora, como el seguimiento de objetos desde una cámara montada en un dron, la localización de texto en una imagen y la habilitación de la detección de objetos en Google Lens. Mask R-CNN es también una de las siete tareas en el MLPerf Training Benchmark, una competición para acelerar el entrenamiento de redes neuronales.
Historia
El desarrollo de R-CNN ha visto varias versiones clave. La R-CNN original se introdujo en noviembre de 2013, seguida de Fast R-CNN en abril de 2015 y Faster R-CNN en junio de 2015. Mask R-CNN llegó en marzo de 2017, extendiendo el marco a la segmentación de instancias. En diciembre de 2017, se propuso Cascade R-CNN, que entrena con umbrales crecientes de Intersección sobre Unión (IoU, también conocido como índice de Jaccard), haciendo que cada etapa sea más selectiva frente a falsos positivos cercanos. En junio de 2019, Mesh R-CNN añadió la capacidad de generar una malla 3D a partir de una imagen 2D.
Arquitectura
La familia R-CNN comparte una arquitectura común basada en propuestas de regiones y extracción de características convolucionales. La idea central es generar regiones candidatas de objetos, extraer características usando una CNN y clasificar cada región.
Búsqueda selectiva
Dada una imagen (o un mapa de características similar a una imagen), la búsqueda selectiva (también llamada agrupación jerárquica) primero segmenta la imagen usando el algoritmo de Felzenszwalb y Huttenlocher (2004). Luego fusiona iterativamente regiones vecinas similares basándose en la compatibilidad de color, textura, tamaño y forma, produciendo un conjunto de hipótesis de ubicación de objetos. El algoritmo procede de la siguiente manera:
- Segmentar la imagen en regiones iniciales R = {r1, ..., rn}.
- Inicializar un conjunto de similitudes S = ∅.
- Para cada par de regiones vecinas (ri, rj), calcular la similitud s(ri, rj) y añadirla a S.
- Mientras S no esté vacío:
- Obtener la mayor similitud s(ri, rj) = max(S).
- Fusionar las regiones correspondientes rt = ri ∪ rj.
- Eliminar de S las similitudes que involucran a ri y rj.
- Calcular las similitudes entre rt y sus vecinos, y añadirlas a S.
- Añadir rt a R.
- Extraer los cuadros de ubicación de objetos L de todas las regiones en R.
R-CNN
Con la R-CNN original, la predicción sigue un proceso de dos pasos. Un paso de preprocesamiento de búsqueda selectiva genera un gran conjunto de objetos candidatos (típicamente hasta 2000), conocidos como regiones de interés (ROI). Estas se envían a una CNN, que predice una puntuación de clase de objeto y una estimación del cuadro delimitador de forma independiente para cada ROI. Es importante destacar que las ROI se filtran intensamente para eliminar candidatos excesivos. El filtrado comienza eliminando las ROI asignadas a la categoría de fondo, una categoría especializada puntuada por la CNN junto con otras categorías. Las ROI restantes a menudo sufren una duplicación intensa, ya que múltiples ROI que cubren el mismo objeto se asignan todas a categorías que no son de fondo. Esto se resuelve mediante un paso heurístico de supresión no máxima (NMS).
Fast R-CNN
Mientras que la R-CNN original calculaba de forma independiente las características de la red neuronal en cada una de hasta dos mil regiones de interés, Fast R-CNN ejecuta la red neuronal una sola vez sobre toda la imagen. Al final de la red hay un módulo ROIPooling, que extrae cada ROI del tensor de salida de la red, lo reforma y lo clasifica. Al igual que en la R-CNN original, Fast R-CNN utiliza la búsqueda selectiva para generar sus propuestas de regiones.
Faster R-CNN
Faster R-CNN integra la generación de ROI dentro de la propia red neuronal, eliminando la necesidad de la búsqueda selectiva externa. Esto hace que el modelo sea completamente entrenable de extremo a extremo y significativamente más rápido.
Mask R-CNN
Mientras que las versiones anteriores se centraban en la detección de objetos, Mask R-CNN añade la segmentación de instancias, produciendo una máscara de segmentación para cada objeto detectado. Mask R-CNN también reemplazó ROIPooling con un nuevo método llamado ROIAlign, que puede representar fracciones de un píxel, mejorando la precisión de la localización.
Aplicaciones e impacto
Los modelos R-CNN han sido ampliamente adoptados en aplicaciones de visión por computadora, incluyendo la conducción autónoma, la vigilancia y la búsqueda de imágenes. La arquitectura ha influido en modelos posteriores de detección de objetos y sigue siendo un concepto fundamental en el aprendizaje profundo para la visión. El benchmark MLPerf incluye Mask R-CNN como una tarea estándar para evaluar el rendimiento del entrenamiento, destacando su importancia práctica.
Véase también
Referencias
- Girshick, R., Donahue, J., Darrell, T., & Malik, J. (2014). Rich feature hierarchies for accurate object detection and semantic segmentation. CVPR.
- Girshick, R. (2015). Fast R-CNN. ICCV.
- Ren, S., He, K., Girshick, R., & Sun, J. (2015). Faster R-CNN: Towards real-time object detection with region proposal networks. NeurIPS.
- He, K., Gkioxari, G., Dollár, P., & Girshick, R. (2017). Mask R-CNN. ICCV.
Lecturas adicionales
- Parthasarathy, Dhruv (2017-04-27). "A Brief History of CNNs in Image Segmentation: From R-CNN to Mask R-CNN". Medium. Recuperado el 2024-09-11.