콘텐츠로 건너뛰기

Ultralytics YOLO26을 사용한 거리 계산

거리 계산이란 무엇입니까?

두 객체 사이의 간격을 측정하는 것을 특정 공간 내에서의 거리 계산이라고 합니다. Ultralytics YOLO26의 경우, 사용자가 강조 표시한 바운딩 박스의 거리를 계산하기 위해 바운딩 박스 중심점이 사용됩니다.



참고: 픽셀 단위의 Ultralytics YOLO 감지된 물체 사이의 거리를 추정하는 방법 🚀

비주얼 자료

Ultralytics YOLO26을 사용한 거리 계산
Ultralytics YOLO26 거리 계산

거리 계산의 장점

  • 지역화 정밀도: 컴퓨터 비전 작업에서 정확한 공간 포지셔닝을 향상시킵니다.
  • 크기 추정: 더 나은 상황 이해를 위해 객체 크기를 추정할 수 있습니다.
  • 장면 이해: 자율 주행 차량 및 감시 시스템과 같은 애플리케이션에서 더 나은 의사 결정을 위해 3D 장면 이해도를 향상시킵니다.
  • 충돌 회피: 움직이는 객체 간의 거리를 모니터링하여 잠재적인 충돌을 detect하도록 시스템을 지원합니다.
  • 공간 분석: 모니터링 환경 내에서 객체 관계 및 상호 작용 분석을 용이하게 합니다.
거리 계산
  • 마우스 왼쪽 버튼으로 두 개의 경계 상자를 클릭하여 거리를 계산합니다.
  • 마우스 오른쪽 버튼을 사용하여 그려진 모든 점을 삭제합니다.
  • 프레임의 아무 곳이나 마우스 왼쪽 버튼으로 클릭하여 새 포인트를 추가합니다.
거리는 추정치입니다

거리는 추정치이며 2D 데이터를 사용하여 계산되므로 완전히 정확하지 않을 수 있습니다, 깊이 정보가 부족한 2D 데이터를 사용하여 계산되기 때문에 정확하지 않을 수 있습니다.

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="yolo26n.pt",  # path to the YOLO26 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() 인수

다음은 테이블에 DistanceCalculation 인수입니다.

인수유형기본값설명
modelstrNoneUltralytics YOLO 모델 파일의 경로입니다.

다양한 방법을 활용할 수도 있습니다. track 다음의 인수들 DistanceCalculation 솔루션.

인수유형기본값설명
trackerstr'botsort.yaml'사용할 추적 알고리즘을 지정합니다 (예: bytetrack.yaml 또는 botsort.yaml.
conffloat0.1검출에 대한 신뢰도 임계값을 설정합니다. 값이 낮을수록 더 많은 객체를 추적할 수 있지만 오탐지가 포함될 수 있습니다.
ioufloat0.7중복되는 detect를 필터링하기 위한 IoU(Intersection over Union) 임계값을 설정합니다.
classeslistNone클래스 인덱스별로 결과를 필터링합니다. 예를 들어, classes=[0, 2, 3] 지정된 클래스만 추적합니다.
verboseboolTrue추적 결과 표시를 제어하여 추적된 객체의 시각적 출력을 제공합니다.
devicestrNone추론을 위한 장치를 지정합니다 (예: cpu, cuda:0 또는 0). 사용자는 모델 실행을 위해 CPU, 특정 GPU 또는 기타 컴퓨팅 장치 중에서 선택할 수 있습니다.

또한 다음과 같은 시각화 인수를 사용할 수 있습니다:

인수유형기본값설명
showboolFalse만약 True, 어노테이션이 적용된 이미지나 비디오를 창에 표시합니다. 개발 또는 테스트 중 즉각적인 시각적 피드백에 유용합니다.
line_widthint or NoneNone경계 상자의 선 너비를 지정합니다. 만약 None, 선 너비는 이미지 크기에 따라 자동으로 조정됩니다. 명확성을 위해 시각적 사용자 정의를 제공합니다.
show_confboolTrue레이블과 함께 각 감지에 대한 신뢰도 점수를 표시합니다. 각 감지에 대한 모델의 확신에 대한 통찰력을 제공합니다.
show_labelsboolTrue시각적 출력에서 각 감지에 대한 레이블을 표시합니다. 감지된 객체에 대한 즉각적인 이해를 제공합니다.

구현 세부 정보

에 지정되어 있습니다. DistanceCalculation 클래스는 비디오 프레임에서 객체를 추적하고 선택한 경계 상자의 중심 사이의 유클리드 거리를 계산하여 작동합니다. 두 객체를 클릭하면 솔루션:

  1. 선택한 경계 상자의 중심점(중심점)을 추출합니다.
  2. 이러한 중심 사이의 유클리드 거리를 픽셀 단위로 계산합니다.
  3. 객체 사이를 연결하는 선과 함께 프레임에 거리를 표시합니다.

이 구현에서는 다음을 사용합니다. mouse_event_for_distance 메서드는 마우스 상호 작용을 처리하여 사용자가 필요에 따라 객체를 선택하고 선택을 취소할 수 있도록 합니다. 해당 process 메서드는 프레임별 처리, 객체 추적 및 거리 계산을 처리합니다.

응용 분야

YOLO26을 이용한 거리 계산은 다양한 실제 적용 사례를 가집니다:

  • 소매 분석: 제품에 대한 고객 근접성을 측정하고 매장 레이아웃 효율성을 분석합니다.
  • 산업 안전: 작업자와 기계 사이의 안전 거리를 모니터링합니다.
  • 교통 관리: 차량 간격 분석 및 꼬리 물기(tailgating) detect
  • 스포츠 분석: 선수, 공 및 주요 필드 위치 간의 거리를 계산합니다.
  • 헬스케어: 대기 구역에서 적절한 거리 두기를 보장하고 환자 이동을 모니터링합니다.
  • 로보틱스: 로봇이 장애물과 사람으로부터 적절한 거리를 유지할 수 있도록 합니다.

FAQ

Ultralytics YOLO26을 사용하여 객체 간 거리를 어떻게 계산하나요?

다음을 사용하여 객체 간의 거리를 계산하려면 Ultralytics YOLO26, 감지된 객체의 경계 상자 중심을 식별해야 합니다. 이 프로세스에는 다음을 초기화하는 작업이 포함됩니다. DistanceCalculation Ultralytics' 클래스 위치 solutions 모듈과 모델의 추적 출력을 사용하여 거리를 계산합니다.

Ultralytics YOLO26으로 거리 계산을 사용하면 어떤 이점이 있나요?

Ultralytics YOLO26을 사용한 거리 계산은 몇 가지 장점을 제공합니다:

  • 지역화 정밀도: 객체에 대한 정확한 공간 포지셔닝을 제공합니다.
  • 크기 추정: 물리적 크기를 추정하는 데 도움이 되어 더 나은 상황 이해에 기여합니다.
  • 장면 이해: 3D 장면 이해도를 향상시켜 자율 주행 및 감시와 같은 애플리케이션에서 향상된 의사 결정을 지원합니다.
  • 실시간 처리: 즉석에서 계산을 수행하므로 라이브 비디오 분석에 적합합니다.
  • 통합 기능: 객체 track속도 추정과 같은 다른 YOLO26 솔루션과 원활하게 작동합니다.

Ultralytics YOLO26으로 실시간 비디오 스트림에서 거리 계산을 수행할 수 있나요?

네, Ultralytics YOLO26으로 실시간 비디오 스트림에서 거리 계산을 수행할 수 있습니다. 이 과정은 다음을 사용하여 비디오 프레임을 캡처하는 것을 포함합니다. OpenCV, YOLO26 실행 객체 감지, 사용하는 DistanceCalculation 클래스는 연속 프레임에서 객체 간의 거리를 계산합니다. 자세한 구현은 다음을 참조하십시오. 비디오 스트림 예시.

Ultralytics YOLO26을 사용하여 거리 계산 중 그려진 점들을 어떻게 삭제하나요?

Ultralytics YOLO26으로 거리 계산 중 그려진 점들을 삭제하려면 마우스 오른쪽 클릭을 사용할 수 있습니다. 이 동작은 그려진 모든 점들을 지울 것입니다. 더 자세한 내용은 거리 계산 예시 아래의 참고 섹션을 참조하십시오.

Ultralytics YOLO26에서 DistanceCalculation 클래스를 초기화하기 위한 주요 인수는 무엇인가요?

초기화를 위한 주요 인수 DistanceCalculation Ultralytics YOLO26의 클래스는 다음을 포함합니다:

  • model: YOLO26 모델 파일 경로.
  • tracker: 사용할 추적 알고리즘입니다(기본값은 'botsort.yaml').
  • conf: 검출에 대한 신뢰도 임계값입니다.
  • show: 출력을 표시하는 플래그입니다.

전체 목록 및 기본값은 DistanceCalculation 인수를 참조하십시오.



5; 2 년 전에 생성됨 ✏️ 7 전에 업데이트됨
glenn-jocherRizwanMunawarRizwanMunawarMatthewNoycepderrengerUltralyticsAssistantjk4eIvorZhu331AyushExel

댓글