Ultralytics YOLO26을 사용한 속도 추정 🚀
속도 추정이란 무엇입니까?
속도 추정은 주어진 맥락에서 객체의 움직임 속도를 계산하는 과정으로, 종종 컴퓨터 비전 애플리케이션에 사용됩니다. Ultralytics YOLO26을 사용하면 이제 거리 및 시간 데이터와 함께 객체 tracking을 사용하여 객체의 속도를 계산할 수 있으며, 이는 교통 모니터링 및 감시와 같은 작업에 매우 중요합니다. 속도 추정의 accuracy는 다양한 애플리케이션의 효율성과 신뢰성에 직접적인 영향을 미치므로, 지능형 시스템 및 실시간 의사 결정 프로세스 발전에 있어 핵심 구성 요소입니다.
참고: Ultralytics YOLO26을 사용한 속도 추정
블로그 확인
속도 추정에 대한 더 깊은 통찰력을 얻으려면 다음 블로그 게시물을 확인하십시오: 컴퓨터 비전 프로젝트에서 속도 추정을 위한 Ultralytics YOLO
속도 추정의 장점
- 효율적인 교통 제어: 정확한 속도 추정은 교통 흐름을 관리하고 안전을 강화하며 도로의 혼잡을 줄이는 데 도움이 됩니다.
- 정밀한 자율 주행: 자율 주행 자동차와 같은 자율 시스템에서 안정적인 속도 추정은 안전하고 정확한 차량 탐색을 보장합니다.
- 향상된 감시 보안: 감시 분석에서 속도 추정은 비정상적인 행동 또는 잠재적 위협을 식별하는 데 도움이 되어 보안 조치의 효과를 향상시킵니다.
실제 응용 프로그램
| 운송 | 운송 |
|---|---|
![]() | ![]() |
| Ultralytics YOLO26을 사용한 도로에서의 속도 추정 | Ultralytics YOLO26을 사용한 교량에서의 속도 추정 |
속도는 추정치입니다
속도는 추정치이며 완전히 정확하지 않을 수 있습니다. 또한, 추정치는 카메라 사양 및 관련 요인에 따라 달라질 수 있습니다.
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="yolo26n.pt", # path to the YOLO26 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 | 속도/방향 계산을 위해 객체당 track할 최대 과거 지점. |
meter_per_pixel | float | 0.05 | 픽셀 거리를 실제 단위로 변환하는 데 사용되는 스케일링 요소입니다. |
max_speed | int | 120 | 시각적 오버레이의 최대 속도 제한(경고에 사용)입니다. |
에 지정되어 있습니다. SpeedEstimator 솔루션을 통해 다음을 사용할 수 있습니다. track 파라미터:
| 인수 | 유형 | 기본값 | 설명 |
|---|---|---|---|
tracker | str | 'botsort.yaml' | 사용할 추적 알고리즘을 지정합니다 (예: bytetrack.yaml 또는 botsort.yaml. |
conf | float | 0.1 | 검출에 대한 신뢰도 임계값을 설정합니다. 값이 낮을수록 더 많은 객체를 추적할 수 있지만 오탐지가 포함될 수 있습니다. |
iou | float | 0.7 | 중복되는 detect를 필터링하기 위한 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 | int or None | None | 경계 상자의 선 너비를 지정합니다. 만약 None, 선 너비는 이미지 크기에 따라 자동으로 조정됩니다. 명확성을 위해 시각적 사용자 정의를 제공합니다. |
show_conf | bool | True | 레이블과 함께 각 감지에 대한 신뢰도 점수를 표시합니다. 각 감지에 대한 모델의 확신에 대한 통찰력을 제공합니다. |
show_labels | bool | True | 시각적 출력에서 각 감지에 대한 레이블을 표시합니다. 감지된 객체에 대한 즉각적인 이해를 제공합니다. |
FAQ
Ultralytics YOLO26을 사용하여 객체 속도를 어떻게 추정하나요?
Ultralytics YOLO26으로 객체 속도를 추정하려면 객체 detect 및 track 기술을 결합해야 합니다. 먼저, YOLO26 모델을 사용하여 각 프레임에서 객체를 detect해야 합니다. 그런 다음, 시간 경과에 따른 객체의 움직임을 계산하기 위해 프레임 전체에서 이 객체들을 track합니다. 마지막으로, 프레임 간 객체가 이동한 거리와 프레임 속도를 사용하여 속도를 추정합니다.
예시:
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="yolo26n.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 YOLO26을 사용하는 이점은 무엇인가요?
Ultralytics YOLO26을 속도 추정에 활용하면 교통 관리에 상당한 이점을 제공합니다:
- 향상된 안전: 차량 속도를 정확하게 추정하여 과속을 detect하고 도로 안전을 개선합니다.
- 실시간 모니터링: YOLO26의 실시간 객체 detect 기능을 활용하여 교통 흐름 및 혼잡을 효과적으로 모니터링할 수 있습니다.
- 확장성: 에지 장치에서 서버에 이르기까지 다양한 하드웨어 설정에 모델을 배포하여 대규모 구현을 위한 유연하고 확장 가능한 솔루션을 보장합니다.
더 많은 애플리케이션은 속도 추정의 장점을 참조하십시오.
YOLO26은 TensorFlow 또는 PyTorch와 같은 다른 AI 프레임워크와 통합될 수 있나요?
네, YOLO26은 TensorFlow 및 PyTorch와 같은 다른 AI 프레임워크와 통합될 수 있습니다. Ultralytics는 YOLO26 모델을 ONNX, TensorRT, CoreML과 같은 다양한 형식으로 export하는 것을 지원하여 다른 ML 프레임워크와의 원활한 상호 운용성을 보장합니다.
YOLO26 모델을 ONNX 형식으로 export하려면:
yolo export model=yolo26n.pt format=onnx
내보내기 가이드에서 모델 내보내기에 대해 자세히 알아보세요.
Ultralytics YOLO26을 사용한 속도 추정은 얼마나 accurate한가요?
Ultralytics YOLO26을 사용한 속도 추정의 accuracy는 객체 tracking의 품질, 비디오의 해상도 및 프레임 속도, 환경 변수 등 여러 요인에 따라 달라집니다. 속도 추정기는 신뢰할 수 있는 추정치를 제공하지만, 프레임 처리 속도 및 객체 가림의 variance로 인해 100% accurate하지 않을 수 있습니다.
참고: 항상 오차 범위를 고려하고 가능한 경우 실제 데이터로 추정치를 검증하십시오.
정확도 향상 팁은 다음을 확인하세요. 인수 SpeedEstimator 섹션.

