다음을 사용하여 거리 계산 Ultralytics YOLO11
거리 계산이란 무엇인가요?
두 물체 사이의 간격을 측정하는 것을 지정된 공간 내에서 거리 계산이라고 합니다. 의 경우 Ultralytics YOLO11의 경우 사용자가 강조 표시한 경계 상자의 거리를 계산하기 위해 경계 상자 중심이 사용됩니다.
Watch: 다음을 사용하여 거리 계산 Ultralytics YOLO11
비주얼
다음을 사용하여 거리 계산 Ultralytics YOLO11 |
---|
![]() |
거리 계산의 장점은?
- 현지화 정밀도: 컴퓨터 비전 작업에서 정확한 공간 위치 파악을 향상시킵니다.
- 크기 추정: 더 나은 컨텍스트 이해를 위해 개체 크기를 추정할 수 있습니다.
- 장면 이해: 자율 주행 차량 및 감시 시스템과 같은 애플리케이션에서 더 나은 의사 결정을 내릴 수 있도록 3D 장면 이해도를 개선합니다.
- 충돌 방지: 시스템이 움직이는 물체 사이의 거리를 모니터링하여 잠재적인 충돌을 감지할 수 있도록 합니다.
- 공간 분석: 모니터링되는 환경 내에서 객체 관계 및 상호 작용을 쉽게 분석할 수 있습니다.
거리 계산
- 마우스 왼쪽 버튼으로 두 개의 경계 상자를 클릭하여 거리를 계산합니다.
- 마우스 오른쪽 클릭하면 그려진 모든 점이 삭제됩니다.
- 마우스 왼쪽 클릭으로 점을 그릴 수 있습니다.
거리는 추정치입니다.
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.
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()
인수
다음은 표입니다. DistanceCalculation
인수를 사용합니다:
인수 | 유형 | 기본값 | 설명 |
---|---|---|---|
model |
str |
None |
Ultralytics YOLO 모델 파일 경로. |
또한 다양한 track
인수의 DistanceCalculation
솔루션입니다.
인수 | 유형 | 기본값 | 설명 |
---|---|---|---|
tracker |
str |
'botsort.yaml' |
사용할 추적 알고리즘을 지정합니다(예, bytetrack.yaml 또는 botsort.yaml . |
conf |
float |
0.3 |
탐지 신뢰 임계값을 설정합니다. 값이 낮을수록 더 많은 개체를 추적할 수 있지만 오탐이 포함될 수 있습니다. |
iou |
float |
0.5 |
중복 감지를 필터링하기 위한 IoU( Intersection over Union ) 임계값을 설정합니다. |
classes |
list |
None |
클래스 인덱스별로 결과를 필터링합니다. 예를 들어 classes=[0, 2, 3] 지정된 클래스만 추적합니다. |
verbose |
bool |
True |
추적 결과의 표시를 제어하여 추적된 개체의 시각적 출력을 제공합니다. |
device |
str |
None |
추론할 장치를 지정합니다(예, cpu , cuda:0 또는 0 ). 사용자가 모델 실행을 위해 CPU, 특정 GPU, 또는 기타 컴퓨팅 장치 중에서 선택할 수 있습니다. |
또한 다음과 같은 시각화 인수를 사용할 수 있습니다:
인수 | 유형 | 기본값 | 설명 |
---|---|---|---|
show |
bool |
False |
만약 True 를 클릭하면 주석이 달린 이미지 또는 동영상이 창에 표시됩니다. 개발 또는 테스트 중에 즉각적인 시각적 피드백을 받을 때 유용합니다. |
line_width |
None or int |
None |
경계 상자의 선 너비를 지정합니다. 만약 None 를 클릭하면 이미지 크기에 따라 선 너비가 자동으로 조정됩니다. 선명도를 위한 시각적 사용자 지정 기능을 제공합니다. |
구현 세부 정보
그리고 DistanceCalculation
클래스는 비디오 프레임에서 오브젝트를 추적하고 선택한 경계 상자의 중심 사이의 유클리드 거리를 계산하는 방식으로 작동합니다. 두 개체를 클릭하면 솔루션이 표시됩니다:
- 선택한 경계 상자의 중심(중심점)을 추출합니다.
- 이 구심점 사이의 유클리드 거리를 픽셀 단위로 계산합니다.
- 개체 사이의 연결 선으로 프레임에 거리를 표시합니다.
이 구현은 mouse_event_for_distance
메서드를 사용하여 마우스 상호작용을 처리하여 사용자가 필요에 따라 개체를 선택하고 선택을 취소할 수 있습니다. 그리고 process
메서드는 프레임 단위 처리, 객체 추적 및 거리 계산을 처리합니다.
애플리케이션
YOLO11 이용한 거리 계산은 실용적으로 다양하게 활용됩니다:
- 리테일 분석: 상품에 대한 고객 근접성 측정 및 매장 레이아웃 효과 분석
- 산업 안전: 작업자와 기계 사이의 안전 거리 모니터링
- 교통 관리: 차량 간격 분석 및 꼬리물기 감지
- 스포츠 분석: 선수, 공, 주요 필드 위치 사이의 거리를 계산합니다.
- 의료 서비스: 대기 공간에서 적절한 거리 유지 및 환자 움직임 모니터링
- 로봇 공학: 로봇이 장애물 및 사람과의 적절한 거리를 유지하도록 지원
자주 묻는 질문
Ultralytics YOLO11 을 사용하여 객체 간 거리를 계산하려면 어떻게 하나요?
다음을 사용하여 개체 간 거리를 계산하려면 Ultralytics YOLO11를 사용하여 감지된 객체의 경계 상자 중심을 식별해야 합니다. 이 프로세스에는 DistanceCalculation
클래스에서 Ultralytics' solutions
모듈을 호출하고 모델의 추적 출력을 사용하여 거리를 계산합니다.
Ultralytics YOLO11 으로 거리 계산을 사용하면 어떤 이점이 있나요?
Ultralytics YOLO11 으로 거리 계산을 사용하면 몇 가지 장점이 있습니다:
- 현지화 정밀도: 객체에 정확한 공간 위치를 제공합니다.
- 크기 추정: 물리적 크기를 추정하여 맥락을 더 잘 이해할 수 있도록 도와줍니다.
- 장면 이해: 3D 장면 이해도를 향상시켜 자율 주행 및 감시와 같은 애플리케이션에서 더 나은 의사 결정을 내릴 수 있도록 지원합니다.
- 실시간 처리: 즉석에서 계산을 수행하므로 라이브 비디오 분석에 적합합니다.
- 통합 기능: 물체 추적 및 속도 추정과 같은 다른 YOLO11 솔루션과 원활하게 작동합니다.
Ultralytics YOLO11 으로 실시간 동영상 스트림에서 거리 계산을 수행할 수 있나요?
예, Ultralytics YOLO11 을 사용하여 실시간 동영상 스트림에서 거리 계산을 수행할 수 있습니다. 이 과정에는 다음을 사용하여 비디오 프레임을 캡처하는 것이 포함됩니다. OpenCV실행 중 YOLO11 물체 감지를 사용하여 DistanceCalculation
클래스를 사용하여 연속 프레임에서 오브젝트 간의 거리를 계산할 수 있습니다. 자세한 구현 방법은 비디오 스트림 예시.
Ultralytics YOLO11 을 사용하여 거리 계산 중에 그려진 포인트를 삭제하려면 어떻게 하나요?
Ultralytics YOLO11 으로 거리 계산 중에 그려진 점을 삭제하려면 마우스 오른쪽 버튼을 클릭하면 됩니다. 이 작업을 수행하면 그려진 모든 점이 지워집니다. 자세한 내용은 거리 계산 예제 아래의 참고 섹션을 참조하세요.
Ultralytics YOLO11 에서 DistanceCalculation 클래스를 초기화하기 위한 주요 인수는 무엇입니까?
초기화를 위한 주요 인수는 DistanceCalculation
클래스 Ultralytics YOLO11 포함:
model
: YOLO11 모델 파일의 경로입니다.tracker
: 사용할 추적 알고리즘(기본값은 'botsort.yaml').conf
: 탐지 신뢰도 임계값.show
: 출력을 표시하는 플래그입니다.
전체 목록과 기본값은 DistanceCalculation의 인수를 참조하세요.