콘텐츠로 건너뛰기

Ultralytics YOLO11을 사용한 속도 추정 🚀

속도 추정이란 무엇입니까?

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



참고: Ultralytics YOLO11을 사용한 속도 추정

블로그 확인

속도 추정에 대한 더 자세한 내용은 다음 블로그 게시물을 확인하십시오. Ultralytics YOLO11 for Speed Estimation in Computer Vision Projects

속도 추정의 장점

  • 효율적인 교통 제어: 정확한 속도 추정은 교통 흐름을 관리하고 안전을 강화하며 도로의 혼잡을 줄이는 데 도움이 됩니다.
  • 정밀한 자율 주행: 자율 주행 자동차와 같은 자율 시스템에서 안정적인 속도 추정은 안전하고 정확한 차량 탐색을 보장합니다.
  • 향상된 감시 보안: 감시 분석에서 속도 추정은 비정상적인 행동 또는 잠재적 위협을 식별하는 데 도움이 되어 보안 조치의 효과를 향상시킵니다.

실제 응용 프로그램

운송 운송
Ultralytics YOLO11을 사용한 도로에서의 속도 추정 Ultralytics YOLO11을 사용한 교량에서의 속도 추정
Ultralytics YOLO11을 사용한 도로에서의 속도 추정 Ultralytics YOLO11을 사용한 교량에서의 속도 추정
속도는 추정치입니다

속도는 추정치이며 완전히 정확하지 않을 수 있습니다. 또한, 추정치는 카메라 사양 및 관련 요인에 따라 달라질 수 있습니다.

Ultralytics YOLO를 사용한 속도 추정

# Run a speed example
yolo solutions speed show=True

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

# Adjust meter per pixel value based on camera configuration
yolo solutions speed meter_per_pixel=0.05
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))

# Initialize speed estimation object
speedestimator = solutions.SpeedEstimator(
    show=True,  # display the output
    model="yolo11n.pt",  # path to the YOLO11 model file.
    fps=fps,  # adjust speed based on frame per second
    # max_speed=120,  # cap speed to a max value (km/h) to avoid outliers
    # max_hist=5,  # minimum frames object tracked before computing speed
    # meter_per_pixel=0.05,  # highly depends on the camera configuration
    # 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 모델 파일의 경로입니다.
fps float 30.0 속도 계산에 사용되는 초당 프레임 수입니다.
max_hist int 5 속도/방향 계산을 위해 객체당 추적할 최대 과거 포인트 수입니다.
meter_per_pixel float 0.05 픽셀 거리를 실제 단위로 변환하는 데 사용되는 스케일링 요소입니다.
max_speed int 120 시각적 오버레이의 최대 속도 제한(경고에 사용)입니다.

에 지정되어 있습니다. 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, 선 너비는 이미지 크기에 따라 자동으로 조정됩니다. 명확성을 위해 시각적 사용자 정의를 제공합니다.
show_conf bool True 레이블과 함께 각 감지에 대한 신뢰도 점수를 표시합니다. 각 감지에 대한 모델의 확신에 대한 통찰력을 제공합니다.
show_labels bool True 시각적 출력에서 각 감지에 대한 레이블을 표시합니다. 감지된 객체에 대한 즉각적인 이해를 제공합니다.

FAQ

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(
    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을 TensorFlow 또는 PyTorch와 같은 다른 AI 프레임워크와 통합할 수 있습니까?

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

YOLO11 모델을 ONNX 형식으로 내보내려면:

yolo export model=yolo11n.pt format=onnx

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

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

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

참고: 항상 오차 범위를 고려하고 가능한 경우 실제 데이터로 추정치를 검증하십시오.

정확도 향상 팁은 다음을 확인하세요. 인수 SpeedEstimator 섹션.



📅 1년 전에 생성됨 ✏️ 1개월 전에 업데이트됨

댓글