Object Re-identification (Re-ID)
La reidentificación de objetos (Re-ID) reconoce a una persona o vehículo en distintas cámaras, tras lapsos de tiempo y con oclusiones, comparando embeddings de apariencia.
La reidentificación de objetos (Re-ID) es una tarea de visión artificial que reconoce el mismo objeto cuando vuelve a aparecer en otra cámara, más tarde o después de quedar oculto. Mientras que la detección de objetos indica que hay una persona en una imagen, Re-ID determina si es la misma persona que pasó ante la cámara de la entrada diez minutos antes. Para ello, compara la apariencia, por ejemplo, los colores de la ropa, la forma del cuerpo, las bolsas que lleva o el color y los detalles del techo de un vehículo, lo que la convierte en la herramienta principal para vincular avistamientos en redes de cámaras cuyas vistas no se solapan. La Re-ID de personas y la Re-ID de vehículos son las modalidades más estudiadas.
Cómo funciona la reidentificación#
Un sistema de Re-ID convierte cada objeto detectado en un descriptor de apariencia compacto y compara esos descriptores:
- Detectar y recortar: Un detector encuentra a cada persona o vehículo, y recorta y cambia el tamaño de la imagen dentro de su cuadro delimitador.
- Codificar en una incrustación: Una red neuronal convolucional o un Transformer de visión transforma el recorte en un vector de unos cientos o miles de números que resume la apariencia del objeto.
- Comparar mediante similitud coseno: Se puntúa la incrustación de consulta frente a una galería de incrustaciones almacenadas y se ordena la galería de mayor a menor similitud; algunos sistemas utilizan en su lugar la distancia euclídea.
Un umbral aplicado a la mejor puntuación decide entonces si la consulta corresponde a una identidad conocida o a una nueva:
Los codificadores se entrenan con aprendizaje métrico para que las incrustaciones de una misma identidad se agrupen y las de identidades distintas se separen. Una receta habitual combina una función de pérdida de clasificación de identidad con una función de pérdida triplete, que acerca una imagen ancla a otra imagen de la misma identidad y la aleja de una imagen de otra identidad; para centrarse en las imágenes parecidas se utiliza la minería de negativos difíciles. La parte difícil es la invariancia: la misma persona debe producir incrustaciones cercanas con distintos puntos de vista, iluminación y resolución, y con oclusiones parciales.
Re-ID frente a seguimiento y reconocimiento facial#
A menudo se confunde Re-ID con dos tareas relacionadas:
- Seguimiento de objetos: Sigue objetos dentro de un vídeo prediciendo su movimiento, normalmente con un filtro de Kalman, y emparejando cuadros según su solapamiento entre fotogramas. Depende de la continuidad temporal, que se rompe cuando un objeto queda oculto durante mucho tiempo o sale del campo de visión; Re-ID recupera la identidad justo en esos casos.
- Reconocimiento facial: Identifica a una persona a partir de rasgos faciales que se mantienen estables durante años y requiere que el rostro sea visible. La Re-ID de personas funciona incluso si se las ve de espaldas y con baja resolución y, como depende en gran medida de la ropa, por lo general solo es válida durante unas horas o un día.
Re-ID en los rastreadores multiobjeto#
Desde DeepSORT, en 2017, muchos rastreadores de seguimiento multiobjeto (MOT) combinan incrustaciones de Re-ID con señales de movimiento, de modo que dos personas que se cruzan conservan sus propios ID y una persona que desaparece detrás de una columna recupera su ID anterior. En el modo de seguimiento de Ultralytics YOLO, los rastreadores BoT-SORT, Deep OC-SORT y TrackTrack aceptan with_reid: True y pueden cargar codificadores de Re-ID de YOLO26, desde yolo26n-reid.onnx hasta yolo26x-reid.onnx, que se descargan la primera vez que se usan:
from ultralytics import YOLO
from ultralytics.utils import YAML
from ultralytics.utils.checks import check_yaml
# Copy the default TrackTrack settings and enable Re-ID with a YOLO26 appearance encoder
cfg = YAML.load(check_yaml("tracktrack.yaml"))
cfg.update(with_reid=True, model="yolo26n-reid.onnx")
YAML.save("tracktrack_reid.yaml", cfg)
# Track people (class 0); appearance embeddings help restore IDs after occlusions
model = YOLO("yolo26n.pt")
source = "https://github.com/ultralytics/assets/releases/download/v0.0.0/decelera_portrait_min.mov"
identities = set()
for result in model.track(source, tracker="tracktrack_reid.yaml", classes=[0], stream=True):
if result.boxes.is_track:
identities.update(result.boxes.id.int().tolist())
print(f"Person identities assigned: {len(identities)}")Cada ID que el rastreador recupera tras una oclusión hace que el recuento impreso se acerque más al número real de personas del vídeo.
Aplicaciones en el mundo real#
- Analítica del comercio minorista: Vincular los avistamientos de un comprador entre las cámaras de los pasillos proporciona recorridos anónimos por toda la tienda, tiempos de permanencia y embudos de conversión.
- Gestión del tráfico: La Re-ID de vehículos vincula los avistamientos del mismo coche en distintas intersecciones para medir tiempos de viaje y flujos de origen y destino, incluso cuando no se pueden leer las matrículas.
- Deportes: La Re-ID de jugadores mantiene sus identidades cuando salen del encuadre de la retransmisión o se agrupan en una melé.
- Investigación de la fauna: La Re-ID de animales identifica cebras, ballenas o grandes felinos individuales por los patrones de su pelaje y las marcas de sus aletas en imágenes de cámaras trampa y drones.
Pruebas de referencia y métricas#
La Re-ID se evalúa como un problema de recuperación. La precisión de rango 1 es la proporción de consultas cuya imagen mejor clasificada en la galería muestra la identidad correcta, y la precisión media promedio (mAP) evalúa la posición de todas las coincidencias correctas en el conjunto de la galería. Market-1501, la prueba de referencia clásica para la Re-ID de personas, contiene 32.668 cuadros delimitadores de 1.501 personas captadas por seis cámaras en un campus universitario.










