# Detección de objetos

La detección de objetos es una tecnología de ordenador relacionada con la visión artificial y el procesamiento de imagen que trata de detectar casos de objetos semánticos de una cierta clase (como humanos, edificios, o coches) en vídeos e imágenes digitales. Los ámbitos mejor desarrollados de detección de objetos incluyen detección de caras y detección de personas, así como la conducción autónoma y la inspección de imágenes médicas. La detección de objetos tiene aplicaciones en muchas áreas de visión artificial, incluyendo recuperación de imágenes y video-vigilancia.

## Usos

La detección de objetos es el punto de partida para numerosas otras técnicas en visión artificial, tales como la segmentación de imágenes, el rastreo de objetos y la estimación de poses, así como para el reconocimiento y la identificación de objetos (p.ej. reconocimiento facial). Entre sus aplicaciones se cuentan la detección y el conteo de peatones, animales o vehículos, la detección de caras o de textos, por ejemplo, de placas de matrícula. Se utiliza igualmente en el análisis de imágenes aéreas o satelitales o de imagenología médica. Desempeña un importante papel en la navegación de drones y sistemas de armamentos. Se utiliza en la supervisión de animales y cultivos, así como igualmente en el monitoreo de fauna silvestre. Es también utilizada en seguimiento de objetos, por ejemplo siguiendo una pelota durante un partido de fútbol o siguiendo una persona en un vídeo.

## Métodos tradicionales
### Concepto

Cada clase de objeto tiene sus propias características especiales que ayuda en la clasificación de clase – por ejemplo todos los círculos son redondos. La detección de clase del objeto utiliza estas características especiales. Por ejemplo, cuándo se buscan círculos, se examinan los objetos que están a una distancia particular de un punto (el centro). De un modo parecido, cuándo se buscan cuadrados, se necesitan objetos que son perpendiculares en las esquinas y tienen lados con la misma longitud. Una aproximación similar se emplea para identificación facial donde ojos, nariz, y los labios pueden ser identificados, al igual que características como el color de piel y la distancia entre los ojos.
Los métodos tradicionales de detección tradicional de objetos en visión artificial utilizan características preparadas manualmente y a medida, así como algoritmos heurísticos para identificar objetos en imágenes. Buscan figuras, estructuras y otros patrones en pixeles de la imagen para identificar los potenciales objetos de un tipo determinado.

### Técnicas y algoritmos tradicionales

Los métodos tradicionales de detección de objetos se basan en la detección y extracción de características de una imagen digital.
Las características detectadas, áreas uniformes, aristas u otras estructuras, se analizan en su posición relativa para tratar de determinar si un lugar de la imagen representa cierto tipo específico de objeto con un grado relevante de probabilidad.
Alrededor del cambio de siglo se habían desarrollado algunas herramientas sofisticadas que ayudaban en la detección de objetos.
Scale-invariant feature transform (SIFT), de 1999, describe características locales de una imagen de un modo robusto, haciéndolas independientes de posibles variaciones de escala, orientación o iluminación.
El Detector Viola-Jones, de 2001, utilizó una serie de clasificadores simples de características basadas en la ondícula de Haar en la detección de caras.
El método Histogram of Oriented Gradients (HOG), de 2005, detecta objetos al contar instancias de gradientes de distintas orientaciones.
Deformable Part-based Model (DPM) fue la culminación de los métodos tradicionales de detección de objetos. Se trata de una extensión del HOG que organiza la búsqueda según la estrategia de "divide y vencerás".
Se trataba de métodos inflexibles y difíciles de emplear en tareas generales de detección de objetos.

## Métodos modernos de detección

A partir del año 2014, la detección de objetos - que había alcanzado una meseta en su desarrollo - experimentó una importante revitalización. Dado que las redes neuronales convolucionales se mostraron capaces de aprender representaciones robustas y de alto nivel de las características de una imagen, estas empezaron a usarse con éxito en la detección de objetos. Se aceleró notablemente el desarrollo de los métodos de detección.

### Métodos convolucionales de dos etapas

Region-based CNN (RCNN) y sus variantes
Los métodos de la familia RCNN inician su proceso con la extracción de proposiciones de regiones (rectángulos delimitadores como candidatos a objeto). Para cada proposición se extraen las características de la imagen en la región por medio de una red neuronal convolucional pre-entrenada. Finalmente se emplea un clasificador de tipo de las máquinas de vectores de soporte para predecir - con mayor o menor confiabilidad - la presencia de un objeto dentro de cada propuesta y reconocer la categoría de objeto de que se trata.
Spatial Pyramid Pooling Networks (SPPNet) permite trabajar con imágenes de tamaño variable, superando así la restricción del RCNN original que exigía un tamaño de imagen fijo para la extracción de características. Ahora estas características (features) se extraen de una vez para toda la imagen y luego generar representaciones de tamaño fijo para entrenar a los detectores, lo que evita recalcular repetidamente esas características.
Fast RCNN resulta de la combinación de las ventajas de RCNN y SPPNet, permitiendo entrenar simultáneamente un regresor de rectángulos delimitadores y un detector, lo que eleva considerablemente su velocidad de detección.
Faster RCNN fue el primer método detector de objetos con una velocidad cercana a lo que sería una aplicación de tiempo real. Esto se logra con la introducción de un llamado Region Proposal Network (RPN) (red de proposición de regiones) con muy bajo costo computacional. Además, en Faster RCNN las distintas componentes de software ya se han estructurado gradualmente en un marco de aprendizaje unificado e integral. Este método es, a su vez, base de una serie de variantes especializadas.
Feature Pyramid Networks (FPN) aprovecha las características de la imagen que se destilan en las capas inferiores de la red neuronal convolucional y las combina con los rectángulos delimitadores producidos por la capa superior, obteniendo así una gran versatilidad en el proceso simultáneo de objetos de una variedad amplia de escalas. Este método suele combinarse con Faster RCNN como base de los detectores de dos etapas más avanzados.
Mask RCNN se basa en Faster RCNN y lo extiende a la segmentación de imágenes, es decir, no solo detecta objetos en términos de un rectángulo delimitador, sino que a la vez marca su extensión a nivel de píxeles.

### Métodos convolucionales de una etapa

A diferencia de los métodos de dos etapas, que son capaces de lograr un alto grado de precisión, aunque a costa de una velocidad reducida y una complejidad enorme, los métodos de una sola etapa se caracterizan por su extrema rapidez y bajo consumo de recursos computacionales, aunque su desempeño sufre al intentar detectar un gran número de objetos densos y pequeños.
You Only Look Once (YOLO) fue el primer detector de una sola etapa y sus variantes siguen siendo extremadamente rápidas. Este método subdivide la imagen en regiones y procede a la predicción de rectángulos delimitadores, clases y confiabilidades en cada una de ellas al mismo tiempo.
Single Shot MultiBox Detector (SSD) se diferencia de los métodos anteriores por efectuar la detección de objetos a distintas escalas en distintas capas de la red, con lo que enfrenta los problemas de esta familia de métodos con situaciones de gran número denso de objetos pequeños.
RetinaNet es un método propuesto para superar la falta de precisión de los métodos de una sola etapa para objetos densos y pequeños. Al identificar el desequilibrio entre clases de primero y segundo plano como una de las causas de estas dificultades, lo enfrenta introduciendo un nuevo tipo de costo por "pérdida de foco", obligando al algoritmo a centrarse en ejemplos difíciles, muchas veces mal clasificados. De este modo RetinaNet logra acercarse a la precisión de los métodos de dos etapas, manteniendo al mismo tiempo la rapidez que caracteriza a aquellos de una sola etapa.
CornerNet es un método que - en lugar de postular una gran cantidad de regiones candidatas como los anteriores, lo que se asocia a desequilibrio de clases, un exceso de hiperparámetros de ajuste manual, así como demora en la convergencia - centra su atención en las coordenadas de las esquinas de los rectángulos delimitadores, detectándolas como puntos, para posteriormente proceder a derivar los correspondientes rectángulos delimitadores. Así logra superar en velocidad a la mayoría de los métodos de una sola etapa.
CenterNet también se basa en la detección de puntos, pero evita el post-procesamiento costoso requerido para la integración de varios puntos para formar un rectángulo delimitador. Este método considera un objeto como un único punto (su centro) y obtiene todos sus atributos (tamaño, orientación, ubicación, etc.) con referencia a ese punto central. Pese a su gran simplicidad, CenterNet logra un desempeño comparable a los mejores métodos de una sola etapa.

### Métodos basados en transformadores

El avenimiento de los transformadores ha revolucionado todo el campo del aprendizaje profundo y también - a partir de 2019 - el de la visión artificial, iniciando la era de los transformadores de visión. Se descartan aquí las redes convolucionales para asumir un enfoque basado en la atención, lo que permite procesar cada elemento de la imagen en todo su contexto.
Detection Transformer (DETR) y sus variantes
DETR asume la detección de objetos como un problema de predicción de conjuntos, sin emplear proposiciones de rectángulos delimitadores ni puntos de referencia. Realiza una predicción directa y en paralelo de todas las detecciones combinando una red neuronal convolucional pre-entrenada y de uso general, encargada del cálculo de características, con una arquitectura de transformador. A las detecciones fallidas se les asigna una clase "no es objeto". A las características de la imagen, obtenidas por la RNC, se les agrega información de posición para alimentar al codificador del transformador. Este produce representaciones contextuales. El decodificador del transformador se alimenta de estas últimas y genera un número fijo de detecciones, cada una con su rectángulo delimitador y su clase.
Deformable DETR es una variante que logra enfrentar las dificultades del DETR original con los objetos pequeños, así como la demora en su convergencia. Este método logra un desempeño a la altura de los mejores.
Efficient DETR se centra en el objetivo de aminorar el costo computacional de DETR. Esto se logra por medio de la optimización de la estructura del transformador y el empleo de mecanismos de consulta más eficientes.