Ultralytics YOLO11을 사용한 속도 추정 🚀
속도 추정이란 무엇입니까?
속도 추정은 주어진 컨텍스트 내에서 객체의 이동 속도를 계산하는 프로세스로, 컴퓨터 비전 애플리케이션에서 자주 사용됩니다. Ultralytics YOLO11을 사용하면 교통 모니터링 및 감시와 같은 작업에 중요한 거리 및 시간 데이터와 함께 객체 추적을 사용하여 객체의 속도를 계산할 수 있습니다. 속도 추정의 정확도는 다양한 애플리케이션의 효율성과 신뢰성에 직접적인 영향을 미치므로 지능형 시스템 및 실시간 의사 결정 프로세스의 발전에 핵심적인 요소입니다.
참고: Ultralytics YOLO11을 사용한 속도 추정
블로그 확인
속도 추정에 대한 더 자세한 내용은 다음 블로그 게시물을 확인하십시오. Ultralytics YOLO11 for Speed Estimation in Computer Vision Projects
속도 추정의 장점
- 효율적인 교통 제어: 정확한 속도 추정은 교통 흐름을 관리하고 안전을 강화하며 도로의 혼잡을 줄이는 데 도움이 됩니다.
- 정밀한 자율 주행: 자율 주행 자동차와 같은 자율 시스템에서 안정적인 속도 추정은 안전하고 정확한 차량 탐색을 보장합니다.
- 향상된 감시 보안: 감시 분석에서 속도 추정은 비정상적인 행동 또는 잠재적 위협을 식별하는 데 도움이 되어 보안 조치의 효과를 향상시킵니다.
실제 응용 프로그램
운송 | 운송 |
---|---|
![]() |
![]() |
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, TensorRT 및 CoreML과 같은 다양한 형식으로 내보내기를 지원하여 다른 ML 프레임워크와의 원활한 상호 운용성을 보장합니다.
YOLO11 모델을 ONNX 형식으로 내보내려면:
yolo export model=yolo11n.pt format=onnx
내보내기 가이드에서 모델 내보내기에 대해 자세히 알아보세요.
Ultralytics YOLO11을 사용한 속도 추정은 얼마나 정확합니까?
Ultralytics YOLO11을 사용한 속도 추정의 정확도는 객체 추적 품질, 비디오 해상도 및 프레임 속도, 환경 변수 등 여러 요인에 따라 달라집니다. 속도 추정기는 신뢰할 수 있는 추정치를 제공하지만 프레임 처리 속도 및 객체 가림의 차이로 인해 100% 정확하지 않을 수 있습니다.
참고: 항상 오차 범위를 고려하고 가능한 경우 실제 데이터로 추정치를 검증하십시오.
정확도 향상 팁은 다음을 확인하세요. 인수 SpeedEstimator
섹션.