Link to this sectionUltralytics YOLO26을 활용한 분석#
Link to this section소개#
이 가이드는 데이터 시각화의 세 가지 기본 유형인 선 그래프, 막대 그래프, 원형 차트에 대한 포괄적인 개요를 제공합니다. 각 섹션에는 Python을 사용하여 이러한 시각화 자료를 만드는 방법에 대한 단계별 지침과 코드 스니펫이 포함되어 있습니다.
Watch: How to generate Analytical Graphs using Ultralytics | Line Graphs, Bar Plots, Area and Pie Charts
Link to this section시각적 샘플#
| 선 그래프 | 막대 그래프 | 원형 차트 |
|---|---|---|
![]() | ![]() | ![]() |
Link to this section그래프가 중요한 이유#
- 선 그래프는 짧은 기간과 긴 기간에 걸친 변화를 추적하고 동일한 기간 동안 여러 그룹의 변화를 비교하는 데 이상적입니다.
- 반면 막대 그래프는 서로 다른 범주 간의 수량을 비교하고 범주와 해당 수치 값 간의 관계를 보여주는 데 적합합니다.
- 마지막으로 원형 차트는 범주 간의 비율을 설명하고 전체의 부분을 보여주는 데 효과적입니다.
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=TrueLink to this sectionAnalytics 인수#
다음은 Analytics 인수를 요약한 표입니다:
| 인수 | 유형 | 기본값 | 설명 |
|---|---|---|---|
model | str | None | Ultralytics YOLO 모델 파일 경로입니다. |
analytics_type | str | 'line' | 그래프 유형으로, line(선형), bar(막대), area(영역), 또는 pie(원형)를 지원합니다. |
You can also leverage different track arguments in the Analytics solution.
| 인수 | 유형 | 기본값 | 설명 |
|---|---|---|---|
tracker | str | 'botsort.yaml' | 사용할 추적 알고리즘을 지정합니다. 기본 옵션은 다음과 같습니다: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml. |
conf | float | 0.1 | 탐지에 대한 신뢰도 임계값을 설정합니다. 값이 낮을수록 더 많은 객체가 추적되지만 잘못된 긍정 탐지(false positives)가 포함될 수 있습니다. |
iou | float | 0.7 | 겹치는 탐지를 필터링하기 위한 Intersection over Union (IoU) 임계값을 설정합니다. |
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일 경우, 선 굵기가 이미지 크기에 따라 자동으로 조정됩니다. 명확성을 위해 시각적 커스터마이징을 제공합니다. |
Link to this section결론#
언제, 어떻게 다양한 유형의 시각화 도구를 사용해야 하는지 이해하는 것은 효과적인 데이터 분석에 매우 중요합니다. 선 그래프, 막대 그래프, 원형 차트는 데이터의 이야기를 더 명확하고 효과적으로 전달하도록 돕는 기본적인 도구입니다. Ultralytics YOLO26 Analytics 솔루션은 객체 탐지 및 추적 결과로부터 이러한 시각화 자료를 생성하는 간소화된 방법을 제공하며, 이를 통해 시각 데이터에서 의미 있는 인사이트를 더 쉽게 추출할 수 있습니다.
Link to this sectionFAQ#
Link to this sectionUltralytics YOLO26 Analytics를 사용하여 선 그래프를 만들려면 어떻게 해야 합니까?#
Ultralytics YOLO26 Analytics를 사용하여 선 그래프를 만들려면 다음 단계를 따르십시오:
- YOLO26 모델을 로드하고 비디오 파일을 엽니다.
- 유형(type)을 "line"으로 설정하여
Analytics클래스를 초기화합니다. - 비디오 프레임을 반복하며 프레임당 객체 수와 같은 관련 데이터를 선 그래프에 업데이트합니다.
- 선 그래프가 표시된 결과 비디오를 저장합니다.
예시:
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 YOLO26을 활용한 분석 섹션을 방문하십시오.
Link to this sectionUltralytics YOLO26을 사용하여 막대 그래프를 생성하면 어떤 이점이 있습니까?#
Ultralytics YOLO26을 사용하여 막대 그래프를 생성하면 다음과 같은 여러 이점이 있습니다:
- 실시간 데이터 시각화: 객체 탐지 결과를 막대 그래프에 매끄럽게 통합하여 동적으로 업데이트합니다.
- 사용 편의성: 간단한 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()더 자세한 내용을 보려면 가이드의 막대 그래프 섹션을 방문하십시오.
Link to this section데이터 시각화 프로젝트에서 원형 차트를 만들기 위해 Ultralytics YOLO26을 사용해야 하는 이유는 무엇입니까?#
Ultralytics YOLO26은 다음과 같은 이유로 원형 차트를 만들기에 탁월한 선택입니다:
- 객체 탐지와의 통합: 객체 탐지 결과를 원형 차트에 직접 통합하여 즉각적인 인사이트를 얻을 수 있습니다.
- 사용자 친화적인 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()더 자세한 정보는 가이드의 원형 차트 섹션을 참조하십시오.
Link to this sectionUltralytics YOLO26을 사용하여 객체를 추적하고 시각화 자료를 동적으로 업데이트할 수 있습니까?#
네, Ultralytics YOLO26을 사용하여 객체를 추적하고 시각화 자료를 동적으로 업데이트할 수 있습니다. 실시간으로 여러 객체를 추적하는 기능을 지원하며, 추적된 객체의 데이터를 기반으로 선 그래프, 막대 그래프, 원형 차트와 같은 다양한 시각화 자료를 업데이트할 수 있습니다.
선 그래프 추적 및 업데이트 예시:
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()전체 기능에 대해 알아보려면 추적 섹션을 참조하십시오.
Link to this sectionUltralytics YOLO26은 OpenCV 및 TensorFlow와 같은 다른 객체 탐지 솔루션과 어떻게 다릅니까?#
Ultralytics YOLO26은 다음과 같은 여러 이유로 OpenCV 및 TensorFlow와 같은 다른 객체 탐지 솔루션과 차별화됩니다:
- 최첨단 정확도: YOLO26은 객체 탐지, 인스턴스 세그멘테이션, 시맨틱 세그멘테이션 및 분류 작업에서 탁월한 정확도를 제공합니다.
- 사용 편의성: 사용자 친화적인 API를 통해 복잡한 코딩 없이도 빠르게 구현하고 통합할 수 있습니다.
- 실시간 성능: 고속 추론에 최적화되어 실시간 애플리케이션에 적합합니다.
- 다양한 애플리케이션: 다중 객체 추적, 사용자 지정 모델 학습, ONNX, TensorRT, CoreML과 같은 다양한 형식으로의 내보내기를 포함한 여러 작업을 지원합니다.
- 포괄적인 문서: 사용자가 모든 단계를 안내받을 수 있는 광범위한 문서와 블로그 리소스를 제공합니다.
더 자세한 비교와 사용 사례는 Ultralytics 블로그에서 확인하십시오.


