콘텐츠로 건너뛰기

Ultralytics YOLO11 🚀을 사용한 속도 추정

속도 추정이란 무엇인가요?

속도 추정이란 주어진 상황에서 물체의 이동 속도를 계산하는 프로세스로, 컴퓨터 비전 애플리케이션에서 자주 사용됩니다. 사용 Ultralytics YOLO11 를 사용하면 이제 거리 및 시간 데이터와 함께 객체 추적을 사용하여 교통 모니터링 및 감시와 같은 작업에 필수적인 객체의 속도를 계산할 수 있습니다. 속도 추정의 정확성은 다양한 애플리케이션의 효율성과 신뢰성에 직접적인 영향을 미치므로 지능형 시스템과 실시간 의사 결정 프로세스를 발전시키는 데 핵심적인 요소입니다.



Watch: 다음을 사용하여 속도 추정 Ultralytics YOLO11

블로그 확인

속도 추정에 대한 자세한 내용은 블로그 게시물( Ultralytics YOLO11 컴퓨터 비전 프로젝트의 속도 추정)을 확인하세요.

속도 예측의 장점

  • 효율적인 교통 통제: 정확한 속도 예측은 교통 흐름을 관리하고 안전을 강화하며 도로의 혼잡을 줄이는 데 도움이 됩니다.
  • 정밀한 자율주행 내비게이션: 자율주행차와 같은 자율 주행 시스템에서 신뢰할 수 있는 속도 예측은 안전하고 정확한 차량 내비게이션을 보장합니다.
  • 강화된 보안 감시: 감시 분석의 속도 추정 기능은 비정상적인 행동이나 잠재적 위협을 식별하여 보안 조치의 효과를 개선하는 데 도움이 됩니다.

실제 애플리케이션

교통편 교통편
다음을 사용하여 도로에서 속도 추정 Ultralytics YOLO11 다음을 사용하여 브리지에서 속도 추정 Ultralytics YOLO11
다음을 사용하여 도로에서 속도 추정 Ultralytics YOLO11 다음을 사용하여 브리지에서 속도 추정 Ultralytics YOLO11
속도는 추정치입니다.

속도는 추정치이며 완전히 정확하지 않을 수 있습니다. 또한 GPU 속도와 환경 요인에 따라 추정치가 달라질 수 있습니다.

Ultralytics YOLO 사용한 속도 예측

# Run a speed example
yolo solutions speed show=True

# Pass a source video
yolo solutions speed source="path/to/video.mp4"

# Pass region coordinates
yolo solutions speed region="[(20, 400), (1080, 400), (1080, 360), (20, 360)]"
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("speed_management.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

# speed region points
speed_region = [(20, 400), (1080, 400), (1080, 360), (20, 360)]

# Initialize speed estimation object
speedestimator = solutions.SpeedEstimator(
    show=True,  # display the output
    model="yolo11n.pt",  # path to the YOLO11 model file.
    region=speed_region,  # pass region points
    # classes=[0, 2],  # estimate speed of specific classes.
    # line_width=2,  # adjust the line width for bounding boxes
)

# Process video
while cap.isOpened():
    success, im0 = cap.read()

    if not success:
        print("Video frame is empty or processing is complete.")
        break

    results = speedestimator(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

SpeedEstimator 인수

다음은 표입니다. SpeedEstimator 인수를 사용합니다:

인수 유형 기본값 설명
model str None Ultralytics YOLO 모델 파일 경로.
region list [(20, 400), (1260, 400)] 계산 영역을 정의하는 포인트 목록입니다.

그리고 SpeedEstimator 솔루션을 사용하면 track 매개변수:

인수 유형 기본값 설명
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를 클릭하면 이미지 크기에 따라 선 너비가 자동으로 조정됩니다. 선명도를 위한 시각적 사용자 지정 기능을 제공합니다.

자주 묻는 질문

Ultralytics YOLO11 을 사용하여 객체 속도를 추정하려면 어떻게 하나요?

Ultralytics YOLO11 으로 물체 속도를 추정하려면 물체 감지 및 추적 기술을 결합해야 합니다. 먼저 YOLO11 모델을 사용하여 각 프레임에서 물체를 감지해야 합니다. 그런 다음 여러 프레임에 걸쳐 이러한 객체를 추적하여 시간 경과에 따른 객체의 움직임을 계산합니다. 마지막으로 프레임 간에 물체가 이동한 거리와 프레임 속도를 사용하여 물체의 속도를 추정합니다.

예시:

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
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("speed_estimation.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

# Initialize SpeedEstimator
speedestimator = solutions.SpeedEstimator(
    region=[(0, 360), (1280, 360)],
    model="yolo11n.pt",
    show=True,
)

while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        break
    results = speedestimator(im0)
    video_writer.write(results.plot_im)

cap.release()
video_writer.release()
cv2.destroyAllWindows()

자세한 내용은 공식 블로그 게시물을 참조하세요.

트래픽 관리에서 속도 예측을 위해 Ultralytics YOLO11 을 사용하면 어떤 이점이 있나요?

속도 예측에 Ultralytics YOLO11 을 사용하면 트래픽 관리에 상당한 이점이 있습니다:

  • 향상된 안전성: 차량 속도를 정확하게 예측하여 과속을 감지하고 도로 안전을 개선합니다.
  • 실시간 모니터링: YOLO11 의 실시간 물체 감지 기능을 활용하여 교통 흐름과 혼잡을 효과적으로 모니터링하세요.
  • 확장성: 엣지 디바이스에서 서버에 이르기까지 다양한 하드웨어 설정에 모델을 배포하여 대규모 구현을 위한 유연하고 확장 가능한 솔루션을 보장합니다.

더 많은 애플리케이션에 대한 자세한 내용은 속도 추정의 장점을 참조하세요.

YOLO11 를 다음과 같은 다른 AI 프레임워크와 통합할 수 있습니까? TensorFlow 또는 PyTorch?

예, YOLO11 TensorFlow 및 PyTorch 같은 다른 AI 프레임워크와 통합할 수 있습니다. Ultralytics YOLO11 모델을 다음과 같은 다양한 형식으로 내보낼 수 있도록 지원합니다. ONNX, TensorRTCoreML을 지원하여 다른 ML 프레임워크와의 원활한 상호 운용성을 보장합니다.

YOLO11 모델을 ONNX 형식으로 내보내려면 다음과 같이 하세요:

yolo export --weights yolo11n.pt --include onnx

내보내기 가이드에서 모델 내보내기에 대해 자세히 알아보세요.

Ultralytics YOLO11 을 사용한 속도 예측은 얼마나 정확합니까?

Ultralytics YOLO11 을 사용한 속도 추정 정확도는 객체 추적의 품질, 동영상의 해상도 및 프레임 속도, 환경 변수 등 여러 요인에 따라 달라집니다. 속도 추정기는 신뢰할 수 있는 추정치를 제공하지만 프레임 처리 속도와 오브젝트 오클루전의 차이로 인해 100% 정확하지 않을 수 있습니다.

참고: 항상 오차 범위를 고려하고 가능하면 실측 데이터로 추정치를 검증하세요.

추가 정확도 향상 팁을 확인하려면 인수 SpeedEstimator 섹션.

📅1 년 전 생성됨 ✏️ 업데이트됨 5 일 전

댓글