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.
Cálculo de la distancia
- Haga clic con el botón izquierdo del ratón en dos cuadros delimitadores cualesquiera para calcular la distancia.
Cálculo de distancias mediante YOLO11 Ejemplo
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("Path/to/video/file.mp4")
assert cap.isOpened(), "Error reading video file"
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
video_writer = cv2.VideoWriter("distance_calculation.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
# Init distance-calculation obj
distance = solutions.DistanceCalculation(model="yolo11n.pt", show=True)
# Process video
while cap.isOpened():
success, im0 = cap.read()
if not success:
print("Video frame is empty or video processing has been successfully completed.")
break
im0 = distance.calculate(im0)
video_writer.write(im0)
cap.release()
video_writer.release()
cv2.destroyAllWindows()
Nota
- 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.
Argumentos DistanceCalculation()
Name |
Type |
Default |
Descripción |
---|---|---|---|
model |
str |
None |
Ruta de acceso al archivo del modelo Ultralytics YOLO |
line_width |
int |
2 |
Grosor de línea de los cuadros delimitadores. |
show |
bool |
False |
Indicador para controlar si se muestra el flujo de vídeo. |
Argumentos model.track
Argumento | Tipo | Por defecto | Descripción |
---|---|---|---|
source |
str |
None |
Especifica el directorio de origen de las imágenes o vídeos. Admite rutas de archivo y URL. |
persist |
bool |
False |
Permite el seguimiento persistente de objetos entre fotogramas, manteniendo los ID en todas las secuencias de vídeo. |
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. |
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 las salidas de seguimiento del modelo para calcular las distancias. Puede consultar la implementación en la página ejemplo de cálculo de distancia.
¿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.
¿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 del fichero modelo.show
: Bandera para indicar si se debe mostrar el flujo de vídeo.line_width
: Grosor del cuadro delimitador y de las líneas dibujadas en la imagen.
Para obtener una lista exhaustiva y los valores por defecto, consulte los argumentos de DistanceCalculation.