콘텐츠로 건너뛰기

다음을 사용한 분석 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 애널리틱스를 사용하여 라인 그래프를 만들려면 다음 단계를 따르세요:

  1. YOLO11 모델을 로드하고 동영상 파일을 엽니다.
  2. 초기화 Analytics 클래스의 유형을 "line"으로 설정합니다.
  3. 비디오 프레임을 반복하여 프레임당 개체 수와 같은 관련 데이터로 선 그래프를 업데이트합니다.
  4. 선 그래프가 표시된 출력 동영상을 저장합니다.

예시:

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 을 사용하면 몇 가지 이점이 있습니다:

  1. 실시간 데이터 시각화: 개체 감지 결과를 막대형 차트에 원활하게 통합하여 동적으로 업데이트할 수 있습니다.
  2. 사용 편의성: 간단한 API와 함수로 데이터를 쉽게 구현하고 시각화할 수 있습니다.
  3. 사용자 지정: 제목, 라벨, 색상 등을 특정 요구사항에 맞게 사용자 지정하세요.
  4. 효율성: 대용량 데이터를 효율적으로 처리하고 동영상 처리 중에 실시간으로 플롯을 업데이트할 수 있습니다.

다음 예제를 사용하여 막대형 차트를 생성합니다:

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 는 파이 차트를 만드는 데 탁월한 선택입니다:

  1. 객체 감지와 통합: 개체 감지 결과를 파이 차트에 직접 통합하여 즉각적인 인사이트를 얻을 수 있습니다.
  2. 사용자 친화적인 API: 최소한의 코드로 간편하게 설정하고 사용할 수 있습니다.
  3. 사용자 지정 가능: 색상, 라벨 등에 대한 다양한 사용자 지정 옵션이 있습니다.
  4. 실시간 업데이트: 실시간으로 데이터를 처리하고 시각화할 수 있어 동영상 분석 프로젝트에 이상적입니다.

다음은 간단한 예입니다:

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 같은 다른 객체 감지 솔루션과 차별화됩니다:

  1. 최첨단 정확도: YOLO11 는 물체 감지, 세분화 및 분류 작업에서 뛰어난 정확도를 제공합니다.
  2. 사용 편의성: 사용자 친화적인 API를 통해 광범위한 코딩 없이도 빠르게 구현하고 통합할 수 있습니다.
  3. 실시간 성능: 실시간 애플리케이션에 적합한 고속 추론에 최적화되어 있습니다.
  4. 다양한 애플리케이션: 다중 객체 추적, 사용자 지정 모델 훈련, ONNX, TensorRT, CoreML 과 같은 다양한 형식으로 내보내기 등 다양한 작업을 지원합니다.
  5. 종합적인 문서: 모든 단계를 안내하는 방대한 문서와 블로그 리소스.

자세한 비교 및 사용 사례는 Ultralytics 블로그에서 확인할 수 있습니다.

10개월 전 생성됨 ✏️ 5 일 전 업데이트 됨

댓글