¿Cómo funciona la detección de objetos?
Actualizado: 2026-09-30
La detección de objetos toma una foto y devuelve una lista: qué hay en ella y dónde está cada cosa. Por dentro es una búsqueda de rectángulos etiquetados, y cada comportamiento interesante —cajas duplicadas, una puntuación de confianza que cambia la respuesta, un modelo que ignora con total seguridad tu taza de café— se deriva de eso. Esta guía recorre el mecanismo: la representación por caja, las dos familias de detectores, qué es de verdad un número de confianza, la supresión de no máximos y por qué un conjunto de etiquetas fijo falla en silencio en cuanto te sales de él.
Detectar no es clasificar
Empieza por lo que hace un clasificador de imágenes. Le das una foto, mira la imagen entera y devuelve una sola respuesta: esto es un gato, o una playa, o una matrícula. Entra una imagen, sale una etiqueta. Incluso cuando te muestra las cinco opciones principales, las cinco compiten por describir la foto entera. Al clasificador se le plantea una pregunta sobre la imagen como un todo.
A un detector se le plantea otra cosa: para cada objeto de esta foto, qué es y dónde está. La salida no es una etiqueta sino una lista de detecciones, y cada entrada empareja una clase con una ubicación —normalmente un rectángulo— y una puntuación. Por eso la detección puede devolver cero entradas para un cielo despejado, una para un solo perro y una docena para una calle concurrida. Detectar no se limita a nombrar los objetos; también los señala.
Ese «dónde» extra es toda la dificultad. La clasificación puede tirar el layout: redimensionar la imagen, ignorar los bordes, importar solo el contenido global. La detección no. Un detector tiene que responder «qué» y «dónde» a la vez, y tiene que hacerlo para un número desconocido de objetos que pueden solaparse, estar a cualquier escala o aparecer en cualquier posición. Todo lo demás en esta guía —las dos familias, las cajas redundantes, los umbrales, los modos de fallo— es consecuencia de exigir una ubicación además de un nombre.
Un punto al que aferrarte, porque explica muchas sorpresas después: la salida de un detector va unida a los objetos, no a las categorías. Un clasificador siempre dice algo, porque «qué es esta foto» siempre tiene respuesta. Un detector puede decir honestamente nada, porque «dónde están los perros» puede no tener ubicaciones que devolver. La detección falla por silencio. La clasificación falla por equivocarse.
- Salida del clasificador: una etiqueta para toda la imagen.
- Salida del detector: una lista de entradas, cada una con una clase, una caja y una puntuación.
- Los dos comparten la extracción de características y difieren casi por completo en cómo se produce la ubicación.
La salida es una caja, y la caja es el problema
Cuando una guía dice «caja delimitadora» se refiere al rectángulo más pequeño alineado con los ejes que se dibuja alrededor de un objeto —borde superior, borde izquierdo, ancho, alto, sin rotación—. Es la representación de ubicación más barata que sigue siendo útil, y casi todos los detectores la producen, incluida la herramienta del navegador enlazada al final de esta guía.
En concreto, una detección es un puñado de números. La etiqueta es la clase que el modelo cree haber encontrado. La caja se guarda como cuatro números: o bien la esquina superior izquierda más el ancho y el alto, o bien el centro más el ancho y el alto. La puntuación es un solo número, normalmente entre 0 y 1. Esa es toda la estructura de datos, y cada detector existe para producir estos números.
La forma de la caja carga un supuesto oculto: que un objeto puede quedar encerrado por un rectángulo que no se inclina. Cuando ese supuesto se rompe, se rompe también la representación. Un gato hecho un ovillo redondo desperdicia la mayor parte de su caja en fondo; un objeto largo, fino y diagonal es casi todo espacio vacío. Y como un detector solo predice un rectángulo, no puede decirte dónde acaba de verdad el objeto dentro de él. Por eso «dónde» es más difícil que «qué»: te comprometes con una forma geométrica para una posición antes de haber encontrado el objeto, y es la razón exacta de que un detector no sea un segmentador.
Las dos familias de detectores
Todo detector tiene que decidir qué y dónde a la vez. Dos estrategias dominan el campo, y intercambian velocidad por precisión en direcciones opuestas. La diferencia no es de calidad; es dónde se responde la pregunta de la ubicación.
Detectores de dos etapas: encontrar regiones y luego etiquetarlas
Un detector de dos etapas divide el trabajo. Su primera etapa propone sitios que merecen una mirada: un conjunto de regiones candidatas que podrían contener algo. Su segunda etapa toma cada candidato por turno, decide si de verdad contiene un objeto, de qué clase, y ajusta la caja para que encaje mejor. Los miembros famosos de esta familia —R-CNN y sus descendientes, Fast y Faster R-CNN, Feature Pyramid Networks— difieren sobre todo en cómo se generan esas propuestas candidatas, desde un método de propuestas externo hasta una red de propuestas aprendida que vive dentro del backbone.
Como la segunda etapa examina un puñado de candidatos prometedores con toda la atención, los detectores de dos etapas suelen ser precisos, y históricamente lo han sido más con objetos pequeños o difíciles de distinguir. El coste es el tiempo: mirar dos veces cada candidato es lento por imagen. La estrategia además es fácil de enseñar: haz suposiciones sobre ubicaciones y luego comprueba cada suposición a fondo.
Detectores de una sola etapa: predecir cajas y clases en un paso
Un detector de una sola etapa no separa la ubicación de la clasificación. Trata la detección como predicción densa: pasa la imagen por un backbone una vez, y en cada ubicación de salida predice directamente un pequeño conjunto de cajas y una distribución sobre las clases. No hay un paso de «espera, mira esa región más de cerca»; todo sale de una sola pasada hacia adelante.
Eso los hace bastante más rápidos que los de dos etapas, por eso dominan el trabajo en tiempo real, y es lo que significa YOLO: You Only Look Once, una pasada sobre la imagen entera. La idea es la más fácil de enunciar: divide el mapa de características en una rejilla de celdas, y deja que cada celda proponga cajas para los objetos cuyo centro cae dentro de ella, con una puntuación de clase para cada caja. Un detector entrenado así nombra y localiza cada objeto en una sola pasada, sin ninguna etapa de propuestas en ningún punto. Como nunca se le pide reconsiderar una ubicación, el enfoque de una sola etapa ha sido históricamente más débil con objetos diminutos, donde los píxeles por objeto apenas codifican nada; una brecha que las variantes modernas cierran dedicando más esfuerzo al extremo de objetos pequeños del entrenamiento. El intercambio sigue ahí: una sola etapa para velocidad y simplicidad, dos etapas para una localización cuidadosa en casos difíciles.
Un tercer patrón, en términos simples
Los detectores basados en transformers que han aparecido más recientemente, incluido el modelo de estilo DETR que ejecuta la herramienta del navegador enlazada, rompen el marco de dos etapas / una etapa de forma útil. En lugar de generar cajas densas en ubicaciones de una rejilla y filtrarlas después, un pequeño conjunto de consultas aprendidas atiende cada una a la imagen entera y produce directamente una caja final. Como el modelo se entrenó para no predecir el mismo objeto dos veces, este estilo por lo general no necesita un paso aparte de filtrado de duplicados. Sigues eligiendo umbrales y conviviendo con un conjunto de etiquetas fijo, pero las propuestas y la eliminación de duplicados salen de un único sistema entrenado en vez de coserse al final.
Por qué un objeto recibe muchas cajas, y cómo se fusionan
Ejecuta un detector sobre la foto de una sola bicicleta y podrías obtener seis cajas que todas caen sobre ella, todas etiquetadas "bicycle", con bordes algo distintos y puntuaciones diferentes. Eso no es un fallo. Un detector no decide una vez dónde está un objeto; propone muchas cajas candidatas por toda la imagen y las puntúa, y un objeto bajo suficientes de esas candidatas atrae una multitud de coincidencias solapadas: cada celda de la rejilla que lo contiene, cada forma de anclaje que más o menos encaja, cada ubicación de características cuyo campo receptivo lo cubre. El sistema produce respuestas redundantes a propósito: se construyó para ser exhaustivo, y perderse del todo el objeto es peor que nombrarlo dos veces.
La supresión de no máximos, o NMS, es la limpieza. Aplicada a un montón de cajas etiquetadas funciona así: ordena todas las cajas por puntuación, toma la de mayor puntuación y la añade a la lista final, luego descarta cualquier caja restante de la misma clase que se solape con ella demasiado, medido por la intersección sobre unión, la fracción del área de las dos cajas que comparten. Repite: la siguiente caja superviviente de mayor puntuación se convierte en el nuevo elemento conservado y sus casi duplicados se podan, hasta que no queda nada. Lo que sobrevive es una caja por objeto, y es la candidata que más le gustó al modelo.
El umbral que decide «demasiado solapamiento» es una perilla de ajuste con consecuencias visibles. Ponlo de forma agresiva y objetos adyacentes de la misma clase se fusionan en una sola detección: dos coches uno al lado del otro vuelven como una caja ancha, porque el segundo se podó como «duplicado» del primero. Ponlo holgado y cada objeto conserva varias cajas solapadas. NMS es un trozo pequeño de lógica y una de las fuentes más comunes de salida extraña cuando está mal configurada. Una advertencia, porque sale con la herramienta enlazada: NMS es una regla que las familias de detectores clásicas enganchan tras la predicción; a un detector de estilo DETR se le describe generalmente como sustituto de ese filtrado posterior con una asignación aprendida que evita emitir los duplicados en absoluto.
Qué es una puntuación de confianza, y qué no es
Toda detección lleva una puntuación, normalmente escrita como un número entre 0 y 1 y mostrada como un porcentaje. Vale la pena ser directo sobre lo que es ese número: un valor aprendido que el modelo fue entrenado para emitir, alto cuando sus características parecen de un miembro de esta clase y bajo cuando no. Es una señal producida por la red, no una medida física, y no está calibrada para significar nada que puedas usar fuera del modelo que la emitió.
«No es una probabilidad» es la parte que la gente equivoca. Una caja puntuada 0.90 no significa «hay un 90% de probabilidad de que esto sea un perro». Una puntuación bien comportada se correlaciona con la realidad: números altos suelen ir con objetos reales, números bajos con ruido, pero correlación no es calibración. El 0.90 del mismo modelo significa algo distinto para "person" que para "toothbrush", porque las clases tienen distinto rango de apariencias y distinto número de ejemplos de entrenamiento. Para lo que una puntuación sirve legítimamente es para comparar dentro de un modelo en una pasada: esta caja es más probable un perro real que aquella, esta etiqueta gana a aquella para estos píxeles.
Como las puntuaciones son relativas, la pregunta práctica es dónde cortar. Todo detector muestra un umbral: conserva las detecciones cuya puntuación es igual o superior a él, descarta el resto. Digamos que una caja puntúa 0.58: sobrevive cuando el umbral se pone a 0.50 y desaparece cuando el umbral se sube a 0.60. Nada de la imagen cambió, y nada de la opinión del modelo sobre los píxeles cambió tampoco; solo se movió la regla de informe. Así que la misma imagen produce legítimamente listas de salida distintas en umbrales distintos, y eso no es que el modelo sea inconsistente. Eres tú decidiendo cuánto incertidumbre estás dispuesto a aceptar.
Los umbrales son donde la detección se encuentra con el coste real. Un sistema que pasa por alto un evento suele ser peor que uno que marca uno falso, así que pones el umbral bajo y limpias el ruido después; una línea que se detiene por un defecto fantasma cuesta dinero, así que lo pones alto y arriesgas un fallo raro. No hay un número «correcto» dentro del modelo: la confianza es una perilla, y el uso honesto es decidir de antemano qué lado de ese intercambio te duele menos.
El conjunto de etiquetas es fijo, y no puede decir «desconocido»
Un detector emite solo clases de una lista decidida durante el entrenamiento. El ejemplo canónico es COCO, un benchmark cuyo conjunto de etiquetas cubre 80 categorías cotidianas: personas, coches, animales, objetos comunes del hogar, y la mayoría de los detectores «generales» que te encuentras, incluida la herramienta del navegador al final de esta guía, llevan exactamente esa lista. No puedes preguntar a un modelo así por una categoría para la que nunca fue entrenado a reconocer; no tiene un hueco donde meter la respuesta.
Lo que pasa cuando le muestras algo fuera de la lista no es una negativa educada. No hay una salida «desconocido». Un detector solo puede hacer dos cosas: asignar una de sus etiquetas conocidas, o no devolver nada para esa región. Así que un objeto fuera del conjunto de etiquetas se absorbe en la categoría conocida que parece más cercana: un robot aspirador vuelve como "cat", un carrito de compra como "chair", un juguete de montar como "car". Nada se rompió y nada te avisó; el detector estiró la mano hacia la etiqueta más cercana que tenía y la usó sin pestañear. Ese es un modo de fallo sin señal de error, lo que lo hace peligroso de un modo en que el caso del objeto perdido no lo es.
El reverso es igual de engañoso. Un objeto que sí está en la lista pero se representa de forma extraña, un ángulo poco familiar, un color raro, una forma que el conjunto de entrenamiento infrautilizó, puede puntuar lo bastante bajo en todas las etiquetas conocidas como para desaparecer del todo. El silencio del detector no significa «aquí no hay nada»; significa «nada coincidió con ninguna etiqueta que yo conozca lo bastante como para informarla». Las 80 categorías son un vocabulario fijo, y todo lo que esté fuera se parafrasea a algo cercano o se deja sin decir.
Una consecuencia que conviene explicitar, porque sale constantemente: una etiqueta es una categoría, no una identidad. Un detector que encaja una caja sobre una figura y escribe "person" no ha reconocido a nadie: ha afirmado que los píxeles parecen de la clase "person". Si esa persona es alguien que conoces es un modelo aparte construido encima, y uno con consecuencias mucho más graves cuando falla.
Dónde la detección sufre
Una vez sabes cómo un detector forma su respuesta, sus debilidades dejan de ser misteriosas. Cada uno de los puntos siguientes rompe un supuesto concreto incrustado en el mecanismo, y por eso cada uno falla como falla.
Oclusión y puntos de vista inusuales
Un detector aprende qué pinta un objeto cuando la mayor parte de él es visible y en una pose típica. Cuando la parte visible se reduce, un coche medio escondido tras una columna, una cara de perfil, una persona vista solo desde los hombros, la evidencia en la imagen ya no se parece a los ejemplos de entrenamiento. Los ángulos inusuales son el mismo problema: una taza vista justo desde arriba tiene un borde ovalado y carece de asa, un portátil visto de lado es una cuña fina. El modelo vio sobre todo objetos de frente y bien encuadrados, así que es frágil en cuanto cambias la relación de la cámara con la cosa que mira.
Objetos diminutos y escenas abarrotadas
Los objetos pequeños imponen una restricción brutal: un ave lejana o una cara al otro de la calle ocupan un puñado de píxeles, y después de que la imagen pase por la pirámide de características de una red real, queda muy poco de eso. Los detectores pasan por alto con regularidad cosas perfectamente visibles para ti, sobre todo cuando la entrada se redujo de resolución; exactamente por eso la herramienta enlazada advierte de que los objetos pequeños desaparecen. Las multitudes son el fallo opuesto con la misma raíz: cuando muchos objetos de la misma clase están juntos, sus cajas candidatas se solapan mucho y NMS poda a los supervivientes como duplicados entre sí, colapsando una docena de peatones en dos cajas. Lo primero solo se arregla con más resolución de entrada; lo segundo, aflojando el umbral de solapamiento y aceptando más falsos positivos.
Reflejos y desajuste de resolución
Un reflejo puede producir un "car" real y bien formado en los píxeles sin ningún objeto físico detrás; el detector encuentra la apariencia y la informa, porque su trabajo es encontrar apariencias. El cristal de un espejo, una superficie brillante y un póster de un perro lo provocan todo. El caso más sutil es el desajuste de resolución: cada detector fue entrenado en un rango de tamaños de entrada, y darle una imagen lejos de ese rango, una foto enorme reducida drásticamente o una miniatura ampliada, cambia la huella de píxeles de cada objeto. Un modelo que aprendió que «un perro mide más o menos así de ancho de píxeles» deja de ver un perro a una décima parte de ese tamaño. Es el mismo mecanismo el que hace arriesgado reducir la resolución, y por eso los detectores suelen necesitar un paso de preprocessado acorde para siquiera comportarse.
Dónde se usa de verdad la detección
La detección se gana su sitio donde la pregunta es «está esa cosa ahí, y dónde» en vez de «qué es esta imagen». Las categorías de abajo se enuncian en general: describen para qué sirve el mecanismo, no el marketing de ningún producto.
Comercio e inventario: contar existencias en una estantería, comprobar una exhibición contra un plano, señalar huecos donde debería haber un producto, detectar artículos mal colocados. Una cámara apunta a la estantería y un modelo encuentra cada producto, así que puedes contarlos y localizarlos en lugar de solo clasificar la estantería como «casi llena».
Embalaje e inspección de calidad: un tapón que falta en una botella, un objeto en la cinta equivocada, una pieza colocada al revés. La pregunta de pasa-o-no-pasa versa sobre artículos concretos en posiciones concretas, y un clasificador obligado a describir la imagen entera no puede responderla.
Tráfico y conteo: detectar vehículos, medir el flujo desde una cámara fija, contar peatones, detectar colas en un cruce. La detección da las posiciones por objeto; suele añadirse un paso de seguimiento aparte cuando necesitas seguir el mismo objeto a través de fotogramas en vez de contarlo una vez.
Robótica y asistencia: un brazo robótico necesita la posición del objeto antes de poder agarrarlo, y una ayuda de navegación para una persona con discapacidad visual necesita decir «puerta más adelante». En ambos casos el valor está en la caja, no en la etiqueta. Cada una de estas aplicaciones comparte un requisito duro: el conjunto de etiquetas tiene que contener de verdad aquello que te importa, por la razón de la sección anterior.
Una demo de detección que puedes ejecutar en tu navegador
La página enlazada desde esta guía ejecuta el mecanismo en local. Le das una imagen, PNG, JPG o WebP, y descarga los pesos del modelo al usarla por primera vez, luego los reutiliza desde la caché de tu navegador. No se sube nada de tu foto; los píxeles se leen, se redimensionan y se pasan por el detector dentro de la pestaña, y la imagen anotada se dibuja sobre un lienzo en la página.
Por dentro ejecuta un detector de transformers de estilo DETR sobre las 80 categorías cotidianas de COCO, usando una copia cuantizada de los pesos lo bastante pequeña para enviarse a un navegador. Devuelve una detección por cada objeto que encuentra: una caja delimitadora dibujada sobre la imagen y una puntuación de confianza en la tabla de objetos detectados, y puedes descargar la imagen anotada. Filtra lo que muestra por el mismo tipo de umbral de puntuación descrito antes, así que subirlo quita las cajas de baja puntuación y bajarlo las devuelve.
Vale la pena explicitar los límites, porque «detección de objetos en tu navegador» invita a falsas expectativas. Maneja una imagen por vez. Reduce la resolución de tu imagen antes de la inferencia, que es exactamente el desajuste de resolución comentado arriba y la razón de que los objetos pequeños simplemente no aparezcan. Su conjunto de etiquetas es fijo en esas 80 categorías de COCO, así que no puede nombrar nada fuera de ellas. No identifica personas: una caja etiquetada "person" es una categoría, no el reconocimiento de nadie. No hay segmentación, ni máscara, ni seguimiento de vídeo, y no hay función de conteo más allá del número de filas de la tabla de objetos detectados. Trátala por lo que es: una demostración funcional de cajas, puntuaciones, umbrales y el mecanismo de una sola pasada, ejecutándose sobre tu propia copia del modelo, no un detector de producción, y no medirá su propia precisión.
Preguntas frecuentes
¿Cómo funciona la detección de objetos en términos simples?
Un detector mira una imagen y devuelve una lista. Por cada objeto que encontró da una etiqueta (qué es), una caja delimitadora (dónde está) y una puntuación (cuán fuerte coincidieron sus características con esa etiqueta). Por debajo, la red recorre la imagen, propone muchas cajas y clases candidatas, y un filtro se queda con las mejores. La diferencia clave con un clasificador es que un detector responde dónde están las cosas, no solo de qué trata la imagen.
¿Qué diferencia hay entre clasificar imágenes y detectar objetos?
La clasificación responde a una pregunta sobre la imagen entera y devuelve una etiqueta, o unas pocas ordenadas. La detección devuelve cero, una o muchas entradas, cada una uniendo una etiqueta a una región concreta. Así que la detección tiene que resolver la localización además del reconocimiento, manejar un número desconocido de objetos y convivir con una lista de categorías fija que o coincide o guarda silencio. La pieza compartida es la extracción de características; el «dónde» es todo lo demás.
¿Qué diferencia hay entre detección de objetos de una y de dos etapas?
Un detector de dos etapas primero propone regiones que podrían contener algo y solo entonces clasifica y refina cada candidato, lo cual es lento pero cuidadoso. Un detector de una etapa predice cajas y puntuaciones de clase en todas partes en una sola pasada, lo cual es rápido y más simple pero ha sido históricamente más débil con objetos diminutos. Los modelos de dos etapas ganan en la localización cuidadosa de casos difíciles; los de una etapa ganan donde importa la velocidad.
¿Cómo funciona la detección de objetos YOLO?
YOLO, abreviatura de You Only Look Once, es la familia de una sola etapa más conocida. Divide la imagen en una rejilla, y cada celda predice cajas y puntuaciones de clase para cualquier objeto cuyo centro cae dentro de ella, así que la imagen entera se localiza y se etiqueta en una sola pasada hacia adelante sin un paso aparte de propuestas de regiones. Existen muchas variantes con mecanismos internos bastante distintos, así que la idea de rejilla y predicción paralela es el hilo común, no la descripción de ninguna versión concreta.
¿Qué es una puntuación de confianza en la detección de objetos?
Una puntuación que el modelo fue entrenado a emitir junto a cada caja, normalmente mostrada entre 0 y 1. Dentro de un modelo es una comparación justa: esta caja es más probable un perro real que aquella. No es una probabilidad calibrada de acertar: 0.90 no significa una probabilidad de nueve sobre diez de etiqueta correcta, y el mismo número significa cosas distintas para clases comunes que para raras. Léela como la certeza relativa del modelo, nada más.
¿Por qué la misma imagen da resultados distintos en umbrales distintos?
Porque un umbral es tu regla de informe, no la opinión del modelo. Toda detección lleva una puntuación, y el umbral decide qué puntuaciones muestras de verdad. Una caja que puntúa 0.58 se conserva con un umbral de 0.50 y se descarta con uno de 0.60 sin que nada de la imagen cambie. Subir el umbral hace la salida más callada y pierde más; bajarlo saca más objetos y también más falsos. No hay un umbral correcto para todo uso.
¿Qué hace la supresión de no máximos?
Fusiona detecciones duplicadas en una. Un detector propone muchas cajas candidatas solapadas para el mismo objeto, así que NMS las ordena por puntuación, conserva la más alta y quita cualquier caja restante de la misma clase que se solape con ella más de una cantidad fijada, medida por la intersección sobre unión, la fracción del área de las dos cajas que comparten. Repite sobre lo que sobrevive. Ajustarla es un intercambio: un umbral de solapamiento estricto colapsa objetos adyacentes en una caja, uno holgado deja varias cajas solapadas por objeto.
¿Qué pasa cuando un objeto no está en el conjunto de etiquetas del detector?
Nada elegante. Un detector solo puede usar etiquetas de su lista fija de entrenamiento; no hay salida «desconocido». Un objeto poco familiar o se absorbe en la categoría conocida que parece más cercana, un robot aspirador pequeño etiquetado como "cat", o nunca aparece porque las puntuaciones de todos los candidatos se quedaron bajas. Esto es peligroso porque no hay un error que notar, y por eso los detectores generales entrenados en categorías cotidianas fallan en silencio con clases inusuales o raras.
¿Es lo mismo la detección de objetos que el reconocimiento facial o la segmentación?
No, y las diferencias importan. El reconocimiento facial identifica a una persona concreta a partir de una cara; la detección solo pone una caja etiquetada "person" donde los píxeles coinciden con esa clase, que es una categoría, no una identidad. La segmentación delinea los píxeles exactos de cada objeto; la detección solo dibuja un rectángulo, y por eso un detector que emite cajas no es un modelo que emite máscaras. El seguimiento es una tarea aparte que enlaza detecciones a través de fotogramas. Comparten un backbone pero son productos distintos.
¿El detector del navegador sube mi imagen, y funciona sin conexión?
Nunca sube la imagen: la detección funciona por completo en la pestaña, y solo el resultado anotado se queda en tu página. Pero no funciona sin conexión de entrada: los pesos del modelo se descargan en la primera ejecución y el navegador los reutiliza después, así que esa primera ejecución necesita conexión. Las ejecuciones siguientes suelen tomar de la caché, pero una caché no es una garantía; nada aquí promete que la página funcione sin conexión, sobre todo en una primera visita.