다음을 사용한 분석 Ultralytics YOLO11
소개
이 가이드에서는 선 그래프, 막대형 차트, 원형 차트의 세 가지 기본 데이터 시각화 유형에 대한 포괄적인 개요를 제공합니다. 각 섹션에는 Python 을 사용하여 이러한 시각화를 만드는 방법에 대한 단계별 지침과 코드 스니펫이 포함되어 있습니다.
Watch: Ultralytics | 선 그래프, 막대 그래프, 면적 및 파이 차트를 사용하여 분석 그래프를 생성하는 방법
시각적 샘플
선 그래프 | 막대 플롯 | 파이 차트 |
---|---|---|
![]() |
![]() |
![]() |
그래프가 중요한 이유
- 선 그래프는 장단기 변화를 추적하고 같은 기간 동안 여러 그룹의 변화를 비교하는 데 이상적입니다.
- 반면 막대형 막대그래프는 여러 카테고리의 수량을 비교하고 카테고리와 해당 수치 사이의 관계를 표시하는 데 적합합니다.
- 마지막으로 파이 차트는 카테고리 간의 비율을 설명하고 전체의 일부를 표시하는 데 효과적입니다.
Ultralytics YOLO 사용한 분석
yolo solutions analytics show=True
# Pass the source
yolo solutions analytics source="path/to/video.mp4"
# Generate the pie chart
yolo solutions analytics analytics_type="pie" show=True
# Generate the bar plots
yolo solutions analytics analytics_type="bar" show=True
# Generate the area plots
yolo solutions analytics analytics_type="area" show=True
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))
out = cv2.VideoWriter(
"analytics_output.avi",
cv2.VideoWriter_fourcc(*"MJPG"),
fps,
(1280, 720), # this is fixed
)
# Initialize analytics object
analytics = solutions.Analytics(
show=True, # display the output
analytics_type="line", # pass the analytics type, could be "pie", "bar" or "area".
model="yolo11n.pt", # path to the YOLO11 model file
# classes=[0, 2], # display analytics for specific detection classes
)
# Process video
frame_count = 0
while cap.isOpened():
success, im0 = cap.read()
if success:
frame_count += 1
results = analytics(im0, frame_count) # update analytics graph every frame
# print(results) # access the output
out.write(results.plot_im) # write the video file
else:
break
cap.release()
out.release()
cv2.destroyAllWindows() # destroy all opened windows
Analytics
인수
다음은 애널리틱스 인수를 요약한 표입니다:
인수 | 유형 | 기본값 | 설명 |
---|---|---|---|
model |
str |
None |
Ultralytics YOLO 모델 파일 경로. |
analytics_type |
str |
line |
그래프 유형, 즉., line , bar , area 또는 pie . |
또한 다양한 track
인수의 Analytics
솔루션입니다.
인수 | 유형 | 기본값 | 설명 |
---|---|---|---|
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 애널리틱스를 사용하여 라인 그래프를 만들려면 어떻게 해야 하나요?
Ultralytics YOLO11 애널리틱스를 사용하여 라인 그래프를 만들려면 다음 단계를 따르세요:
- YOLO11 모델을 로드하고 동영상 파일을 엽니다.
- 초기화
Analytics
클래스의 유형을 "line"으로 설정합니다. - 비디오 프레임을 반복하여 프레임당 개체 수와 같은 관련 데이터로 선 그래프를 업데이트합니다.
- 선 그래프가 표시된 출력 동영상을 저장합니다.
예시:
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
out = cv2.VideoWriter(
"ultralytics_analytics.avi",
cv2.VideoWriter_fourcc(*"MJPG"),
fps,
(1280, 720), # this is fixed
)
analytics = solutions.Analytics(
analytics_type="line",
show=True,
)
frame_count = 0
while cap.isOpened():
success, im0 = cap.read()
if success:
frame_count += 1
results = analytics(im0, frame_count) # update analytics graph every frame
out.write(results.plot_im) # write the video file
else:
break
cap.release()
out.release()
cv2.destroyAllWindows()
구성에 대한 자세한 내용은 Analytics
클래스를 방문하십시오. 다음을 사용한 분석 Ultralytics YOLO11 섹션으로 이동합니다.
막대형 차트 생성에 Ultralytics YOLO11 을 사용하면 어떤 이점이 있나요?
막대형 차트 생성에 Ultralytics YOLO11 을 사용하면 몇 가지 이점이 있습니다:
- 실시간 데이터 시각화: 개체 감지 결과를 막대형 차트에 원활하게 통합하여 동적으로 업데이트할 수 있습니다.
- 사용 편의성: 간단한 API와 함수로 데이터를 쉽게 구현하고 시각화할 수 있습니다.
- 사용자 지정: 제목, 라벨, 색상 등을 특정 요구사항에 맞게 사용자 지정하세요.
- 효율성: 대용량 데이터를 효율적으로 처리하고 동영상 처리 중에 실시간으로 플롯을 업데이트할 수 있습니다.
다음 예제를 사용하여 막대형 차트를 생성합니다:
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
out = cv2.VideoWriter(
"ultralytics_analytics.avi",
cv2.VideoWriter_fourcc(*"MJPG"),
fps,
(1280, 720), # this is fixed
)
analytics = solutions.Analytics(
analytics_type="bar",
show=True,
)
frame_count = 0
while cap.isOpened():
success, im0 = cap.read()
if success:
frame_count += 1
results = analytics(im0, frame_count) # update analytics graph every frame
out.write(results.plot_im) # write the video file
else:
break
cap.release()
out.release()
cv2.destroyAllWindows()
자세한 내용은 가이드의 막대형 차트 섹션을 참조하세요.
데이터 시각화 프로젝트에서 파이 차트를 만들 때 Ultralytics YOLO11 을 사용해야 하는 이유는 무엇인가요?
Ultralytics YOLO11 는 파이 차트를 만드는 데 탁월한 선택입니다:
- 객체 감지와 통합: 개체 감지 결과를 파이 차트에 직접 통합하여 즉각적인 인사이트를 얻을 수 있습니다.
- 사용자 친화적인 API: 최소한의 코드로 간편하게 설정하고 사용할 수 있습니다.
- 사용자 지정 가능: 색상, 라벨 등에 대한 다양한 사용자 지정 옵션이 있습니다.
- 실시간 업데이트: 실시간으로 데이터를 처리하고 시각화할 수 있어 동영상 분석 프로젝트에 이상적입니다.
다음은 간단한 예입니다:
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
out = cv2.VideoWriter(
"ultralytics_analytics.avi",
cv2.VideoWriter_fourcc(*"MJPG"),
fps,
(1280, 720), # this is fixed
)
analytics = solutions.Analytics(
analytics_type="pie",
show=True,
)
frame_count = 0
while cap.isOpened():
success, im0 = cap.read()
if success:
frame_count += 1
results = analytics(im0, frame_count) # update analytics graph every frame
out.write(results.plot_im) # write the video file
else:
break
cap.release()
out.release()
cv2.destroyAllWindows()
자세한 내용은 가이드의 파이 차트 섹션을 참조하세요.
Ultralytics YOLO11 을 사용하여 개체를 추적하고 비주얼리제이션을 동적으로 업데이트할 수 있나요?
예, Ultralytics YOLO11 을 사용하여 개체를 추적하고 시각화를 동적으로 업데이트할 수 있습니다. 여러 개체를 실시간으로 추적할 수 있으며 추적된 개체의 데이터를 기반으로 선 그래프, 막대형 차트, 원형 차트 등 다양한 시각화를 업데이트할 수 있습니다.
라인 그래프 추적 및 업데이트 예시:
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
out = cv2.VideoWriter(
"ultralytics_analytics.avi",
cv2.VideoWriter_fourcc(*"MJPG"),
fps,
(1280, 720), # this is fixed
)
analytics = solutions.Analytics(
analytics_type="line",
show=True,
)
frame_count = 0
while cap.isOpened():
success, im0 = cap.read()
if success:
frame_count += 1
results = analytics(im0, frame_count) # update analytics graph every frame
out.write(results.plot_im) # write the video file
else:
break
cap.release()
out.release()
cv2.destroyAllWindows()
전체 기능에 대해 자세히 알아보려면 추적 섹션을 참조하세요.
Ultralytics YOLO11 이 다른 객체 감지 솔루션과 다른 점은 무엇입니까? TensorFlow?
Ultralytics YOLO11 는 여러 가지 이유로 OpenCV나 TensorFlow 같은 다른 객체 감지 솔루션과 차별화됩니다:
- 최첨단 정확도: YOLO11 는 물체 감지, 세분화 및 분류 작업에서 뛰어난 정확도를 제공합니다.
- 사용 편의성: 사용자 친화적인 API를 통해 광범위한 코딩 없이도 빠르게 구현하고 통합할 수 있습니다.
- 실시간 성능: 실시간 애플리케이션에 적합한 고속 추론에 최적화되어 있습니다.
- 다양한 애플리케이션: 다중 객체 추적, 사용자 지정 모델 훈련, ONNX, TensorRT, CoreML 과 같은 다양한 형식으로 내보내기 등 다양한 작업을 지원합니다.
- 종합적인 문서: 모든 단계를 안내하는 방대한 문서와 블로그 리소스.
자세한 비교 및 사용 사례는 Ultralytics 블로그에서 확인할 수 있습니다.