Cálculo da distância utilizando Ultralytics YOLO11
O que é o cálculo da distância?
A medição da distância entre dois objectos é conhecida como cálculo de distância dentro de um determinado espaço. No caso do Ultralytics YOLO11o centróide da caixa delimitadora é utilizado para calcular a distância das caixas delimitadoras destacadas pelo utilizador.
Ver: Cálculo da distância utilizando Ultralytics YOLO11
Visuais
Cálculo da distância utilizando Ultralytics YOLO11 |
---|
Vantagens do cálculo da distância?
- Precisão de localização: Melhora o posicionamento espacial exato em tarefas de visão por computador.
- Estimativa de tamanho: Permite estimar o tamanho do objeto para uma melhor compreensĂŁo contextual.
Cálculo da distância
- Clique em quaisquer duas caixas delimitadoras com o botão esquerdo do rato para calcular a distância
Cálculo da distância utilizando YOLO11 Exemplo
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
- O clique com o botĂŁo direito do rato elimina todos os pontos desenhados
- O clique esquerdo do rato pode ser utilizado para desenhar pontos
A distância é estimada
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 |
Descrição |
---|---|---|---|
model |
str |
None |
Caminho para Ultralytics YOLO Modelo de ficheiro |
line_width |
int |
2 |
Espessura da linha para caixas delimitadoras. |
show |
bool |
False |
Sinalizador para controlar se o fluxo de vĂdeo deve ser apresentado. |
Argumentos model.track
Argumento | Tipo | Predefinição | Descrição |
---|---|---|---|
source |
str |
None |
Especifica o diretĂłrio de origem para imagens ou vĂdeos. Suporta caminhos de ficheiros e URLs. |
persist |
bool |
False |
Permite o rastreio persistente de objectos entre fotogramas, mantendo as IDs nas sequĂŞncias de vĂdeo. |
tracker |
str |
botsort.yaml |
Especifica o algoritmo de seguimento a utilizar, por exemplo, bytetrack.yaml ou botsort.yaml . |
conf |
float |
0.3 |
Define o limiar de confiança para as detecções; valores mais baixos permitem o seguimento de mais objectos, mas podem incluir falsos positivos. |
iou |
float |
0.5 |
Define o limiar de Intersecção sobre União (IoU) para filtrar detecções sobrepostas. |
classes |
list |
None |
Filtra os resultados por Ăndice de classe. Por exemplo, classes=[0, 2, 3] sĂł rastreia as classes especificadas. |
verbose |
bool |
True |
Controla a apresentação dos resultados do seguimento, fornecendo uma saĂda visual dos objectos seguidos. |
FAQ
Como calcular as distâncias entre objectos utilizando Ultralytics YOLO11 ?
Para calcular distâncias entre objectos utilizando Ultralytics YOLO11Para identificar os centróides da caixa delimitadora dos objectos detectados. Este processo envolve a inicialização do DistanceCalculation
classe de Ultralytics' solutions
e utilizando as saĂdas de rastreio do modelo para calcular as distâncias. Pode consultar a implementação na secção exemplo de cálculo de distância.
Quais são as vantagens de utilizar o cálculo de distâncias com Ultralytics YOLO11 ?
A utilização do cálculo da distância com Ultralytics YOLO11 oferece várias vantagens:
- Precisão de localização: Fornece um posicionamento espacial preciso para os objectos.
- Estimativa de tamanho: Ajuda a estimar tamanhos fĂsicos, contribuindo para uma melhor compreensĂŁo do contexto.
- Compreensão de cenas: Melhora a compreensão de cenas 3D, ajudando a melhorar a tomada de decisões em aplicações como a condução autónoma e a vigilância.
Posso efetuar o cálculo da distância em fluxos de vĂdeo em tempo real com Ultralytics YOLO11 ?
Sim, pode efetuar o cálculo da distância em fluxos de vĂdeo em tempo real com Ultralytics YOLO11 . O processo envolve a captura de fotogramas de vĂdeo utilizando OpenCV, a correr YOLO11 deteção de objectose utilizando o DistanceCalculation
para calcular as distâncias entre objectos em fotogramas sucessivos. Para uma implementação detalhada, consulte a classe exemplo de fluxo de vĂdeo.
Como é que elimino os pontos desenhados durante o cálculo da distância utilizando Ultralytics YOLO11 ?
Para apagar os pontos desenhados durante o cálculo da distância com Ultralytics YOLO11 , pode utilizar o botão direito do rato. Esta ação irá apagar todos os pontos que desenhou. Para mais detalhes, consulte a secção de notas sob o exemplo de cálculo de distância.
Quais sĂŁo os argumentos chave para inicializar a classe DistanceCalculation em Ultralytics YOLO11 ?
Os principais argumentos para inicializar o DistanceCalculation
classe em Ultralytics YOLO11 incluem:
model
: Caminho do ficheiro modelo.show
: Sinalizador para indicar se o fluxo de vĂdeo deve ser apresentado.line_width
: Espessura da caixa delimitadora e das linhas desenhadas na imagem.
Para uma lista exaustiva e valores por defeito, consulte os argumentos de DistanceCalculation.