Cálculo de distancias mediante Ultralytics YOLO11
¿Qué es el cálculo de distancias?
La medición de la distancia entre dos objetos se conoce como cálculo de distancias dentro de un espacio determinado. En el caso de Ultralytics YOLO11se emplea el centroide del cuadro delimitador para calcular la distancia de los cuadros delimitadores resaltados por el usuario.
Observa: Cálculo de distancias mediante Ultralytics YOLO11
Visuales
Cálculo de distancias mediante Ultralytics YOLO11 |
---|
![]() |
¿Ventajas del cálculo de distancias?
- Precisión de localización: Mejora la precisión del posicionamiento espacial en tareas de visión por ordenador.
- Estimación del tamaño: Permite estimar el tamaño del objeto para una mejor comprensión contextual.
- Comprensión de escenas: Mejora la comprensión de escenas 3D para una mejor toma de decisiones en aplicaciones como vehículos autónomos y sistemas de vigilancia.
- Prevención de colisiones: Permite a los sistemas detectar posibles colisiones controlando las distancias entre objetos en movimiento.
- Análisis espacial: Facilita el análisis de las relaciones e interacciones de los objetos en el entorno supervisado.
Cálculo de la distancia
- Haga clic con el botón izquierdo del ratón en dos cuadros delimitadores cualesquiera para calcular la distancia.
- El botón derecho del ratón borrará todos los puntos dibujados
- Con el botón izquierdo del ratón se pueden dibujar puntos
La distancia es una estimación
Distance will be an estimate and may not be fully accurate, as it is calculated using 2-dimensional data,
which lacks information about the object's depth.
Cálculo de distancias con Ultralytics YOLO
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"
# Video writer
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
video_writer = cv2.VideoWriter("distance_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
# Initialize distance calculation object
distancecalculator = solutions.DistanceCalculation(
model="yolo11n.pt", # path to the YOLO11 model file.
show=True, # display the output
)
# Process video
while cap.isOpened():
success, im0 = cap.read()
if not success:
print("Video frame is empty or processing is complete.")
break
results = distancecalculator(im0)
print(results) # access the output
video_writer.write(results.plot_im) # write the processed frame.
cap.release()
video_writer.release()
cv2.destroyAllWindows() # destroy all opened windows
DistanceCalculation()
Argumentos
Aquí tiene una tabla con los DistanceCalculation
argumentos:
Argumento | Tipo | Por defecto | Descripción |
---|---|---|---|
model |
str |
None |
Ruta al archivo del modeloYOLO Ultralytics . |
También puede utilizar varios track
argumentos en el DistanceCalculation
solución.
Argumento | Tipo | Por defecto | Descripción |
---|---|---|---|
tracker |
str |
'botsort.yaml' |
Especifica el algoritmo de seguimiento a utilizar, por ejemplo, bytetrack.yaml o botsort.yaml . |
conf |
float |
0.3 |
Establece el umbral de confianza para las detecciones; los valores más bajos permiten rastrear más objetos pero pueden incluir falsos positivos. |
iou |
float |
0.5 |
Establece el umbral de intersección sobre unión (IoU) para filtrar las detecciones solapadas. |
classes |
list |
None |
Filtra los resultados por índice de clase. Por ejemplo, classes=[0, 2, 3] sólo rastrea las clases especificadas. |
verbose |
bool |
True |
Controla la visualización de los resultados del rastreo, proporcionando una salida visual de los objetos rastreados. |
device |
str |
None |
Especifica el dispositivo para la inferencia (por ejemplo, cpu , cuda:0 o 0 ). Permite a los usuarios seleccionar entre CPU, un GPU específico u otros dispositivos de cálculo para la ejecución del modelo. |
Además, dispone de los siguientes argumentos de visualización:
Argumento | Tipo | Por defecto | Descripción |
---|---|---|---|
show |
bool |
False |
Si True muestra las imágenes o vídeos anotados en una ventana. Resulta útil para obtener información visual inmediata durante el desarrollo o las pruebas. |
line_width |
None or int |
None |
Especifica el ancho de línea de los cuadros delimitadores. Si None El ancho de línea se ajusta automáticamente en función del tamaño de la imagen. Proporciona personalización visual para mayor claridad. |
Detalles de la aplicación
En DistanceCalculation
funciona rastreando objetos a través de fotogramas de vídeo y calculando la distancia euclidiana entre los centroides de los cuadros delimitadores seleccionados. Al hacer clic en dos objetos, la solución:
- Extrae los centroides (puntos centrales) de los cuadros delimitadores seleccionados.
- Calcula la distancia euclidiana entre estos centroides en píxeles
- Muestra la distancia en el marco con una línea de conexión entre los objetos
La aplicación utiliza el mouse_event_for_distance
para manejar las interacciones del ratón, permitiendo a los usuarios seleccionar objetos y borrar selecciones según sea necesario. La página process
se encarga del procesamiento fotograma a fotograma, del seguimiento de los objetos y del cálculo de las distancias.
Aplicaciones
El cálculo de distancias con YOLO11 tiene numerosas aplicaciones prácticas:
- Análisis del comercio minorista: Mida la proximidad de los clientes a los productos y analice la eficacia de la distribución de la tienda.
- Seguridad industrial: Supervise las distancias de seguridad entre los trabajadores y la maquinaria
- Gestión del tráfico: Analiza la distancia entre vehículos y detecta los rebufos
- Análisis deportivo: Calcula las distancias entre los jugadores, el balón y las posiciones clave del campo.
- Asistencia sanitaria: Garantizar el distanciamiento adecuado en las zonas de espera y vigilar el movimiento de los pacientes.
- Robótica: Permitir que los robots mantengan las distancias adecuadas con los obstáculos y las personas.
PREGUNTAS FRECUENTES
¿Cómo puedo calcular distancias entre objetos utilizando Ultralytics YOLO11 ?
Para calcular distancias entre objetos utilizando Ultralytics YOLO11es necesario identificar los centroides de los recuadros delimitadores de los objetos detectados. Este proceso implica inicializar el DistanceCalculation
de Ultralytics' solutions
y utilizando los resultados de seguimiento del modelo para calcular las distancias.
¿Cuáles son las ventajas de utilizar el cálculo de distancias con Ultralytics YOLO11 ?
Utilizar el cálculo de distancias con Ultralytics YOLO11 ofrece varias ventajas:
- Precisión de localización: Proporciona un posicionamiento espacial preciso de los objetos.
- Estimación del tamaño: Ayuda a estimar tamaños físicos, contribuyendo a una mejor comprensión contextual.
- Comprensión de escenas: Mejora la comprensión de escenas 3D, lo que contribuye a mejorar la toma de decisiones en aplicaciones como la conducción autónoma y la vigilancia.
- Procesamiento en tiempo real: Realiza cálculos sobre la marcha, lo que lo hace idóneo para el análisis de vídeo en directo.
- Capacidades de integración: Funciona a la perfección con otras soluciones de YOLO11 como el seguimiento de objetos y la estimación de la velocidad.
¿Puedo realizar cálculos de distancia en secuencias de vídeo en tiempo real con Ultralytics YOLO11 ?
Sí, puede realizar cálculos de distancia en secuencias de vídeo en tiempo real con Ultralytics YOLO11 . El proceso consiste en capturar fotogramas de vídeo utilizando OpenCVcorriendo YOLO11 detección de objetosy utilizando el DistanceCalculation
para calcular distancias entre objetos en fotogramas sucesivos. Para una implementación detallada, véase la ejemplo de flujo de vídeo.
¿Cómo puedo borrar los puntos dibujados durante el cálculo de la distancia utilizando Ultralytics YOLO11 ?
Para borrar los puntos dibujados durante el cálculo de la distancia con Ultralytics YOLO11 , puede utilizar el botón derecho del ratón. Esta acción borrará todos los puntos que haya dibujado. Para más detalles, consulte la sección de notas bajo el ejemplo de cálculo de distancia.
¿Cuáles son los argumentos clave para inicializar la clase DistanceCalculation en Ultralytics YOLO11 ?
Los argumentos clave para inicializar el DistanceCalculation
clase en Ultralytics YOLO11 incluyen:
model
: Ruta al archivo del modelo YOLO11 .tracker
: Algoritmo de seguimiento a utilizar (por defecto es 'botsort.yaml').conf
: Umbral de confianza para las detecciones.show
: Bandera para mostrar la salida.
Para obtener una lista exhaustiva y los valores por defecto, consulte los argumentos de DistanceCalculation.