콘텐츠로 건너뛰기

Ultralytics YOLO11을 사용하는 TrackZone

Colab에서 Open TrackZone 열기

TrackZone은 무엇입니까?

TrackZone은 전체 프레임 대신 프레임의 지정된 영역 내에서 객체를 모니터링하는 데 특화되어 있습니다. Ultralytics YOLO11을 기반으로 구축되었으며, 비디오 및 라이브 카메라 피드에 대해 특히 구역 내에서 객체 감지 및 추적을 통합합니다. YOLO11의 고급 알고리즘과 딥 러닝 기술은 실시간 사용 사례에 완벽한 선택이며, 군중 모니터링 및 감시와 같은 애플리케이션에서 정확하고 효율적인 객체 추적을 제공합니다.



참고: Ultralytics YOLO11을 사용하여 영역에서 객체를 추적하는 방법 | TrackZone 🚀

영역 내 객체 추적(TrackZone)의 장점

  • 타겟 분석: 특정 영역 내의 객체를 추적하면 더욱 집중적인 통찰력을 얻을 수 있어 진입 지점 또는 제한 구역과 같이 관심 영역에 대한 정확한 모니터링 및 분석이 가능합니다.
  • 향상된 효율성: TrackZone은 추적 범위를 정의된 영역으로 좁혀 계산 오버헤드를 줄여 더 빠른 처리와 최적의 성능을 보장합니다.
  • 향상된 보안: 구역 추적은 중요 영역을 모니터링하여 감시를 개선하고, 비정상적인 활동 또는 보안 침해를 조기에 감지하는 데 도움이 됩니다.
  • 확장 가능한 솔루션: 특정 영역에 집중할 수 있는 TrackZone의 기능은 소매 공간에서 산업 환경에 이르기까지 다양한 시나리오에 적용할 수 있어 원활한 통합과 확장성을 보장합니다.

실제 응용 프로그램

농업 운송
Ultralytics YOLO11을 사용한 필드 내 식물 추적 Ultralytics YOLO11을 사용한 도로의 차량 추적
Ultralytics YOLO11을 사용한 필드 내 식물 추적 Ultralytics YOLO11을 사용한 도로의 차량 추적

Ultralytics YOLO를 사용한 TrackZone

# Run a trackzone example
yolo solutions trackzone show=True

# Pass a source video
yolo solutions trackzone show=True source="path/to/video.mp4"

# Pass region coordinates
yolo solutions trackzone show=True region="[(150, 150), (1130, 150), (1130, 570), (150, 570)]"
import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"

# Define region points
region_points = [(150, 150), (1130, 150), (1130, 570), (150, 570)]

# 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("trackzone_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

# Init trackzone (object tracking in zones, not complete frame)
trackzone = solutions.TrackZone(
    show=True,  # display the output
    region=region_points,  # pass region points
    model="yolo11n.pt",  # use any model that Ultralytics support, i.e. YOLOv9, YOLOv10
    # line_width=2,  # adjust the line width for bounding boxes and text display
)

# Process video
while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        print("Video frame is empty or processing is complete.")
        break

    results = trackzone(im0)

    # print(results)  # access the output

    video_writer.write(results.plot_im)  # write the video file

cap.release()
video_writer.release()
cv2.destroyAllWindows()  # destroy all opened windows

TrackZone 인수

다음은 테이블에 TrackZone 인수입니다.

인수 유형 기본값 설명
model str None Ultralytics YOLO 모델 파일의 경로입니다.
region list '[(20, 400), (1260, 400)]' 계수 영역을 정의하는 점 목록입니다.

TrackZone 솔루션은 다음을 지원합니다. 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을 사용하면 비디오 프레임의 정의된 영역 또는 구역에서 객체를 간단하게 추적할 수 있습니다. 아래 제공된 명령을 사용하여 추적을 시작하기만 하면 됩니다. 이 접근 방식은 효율적인 분석과 정확한 결과를 보장하므로 감시, 군중 관리 또는 구역 추적이 필요한 모든 시나리오와 같은 애플리케이션에 이상적입니다.

yolo solutions trackzone source="path/to/video.mp4" show=True

Ultralytics YOLO11과 함께 python에서 TrackZone을 어떻게 사용합니까?

몇 줄의 코드만으로 특정 영역에서 객체 추적을 설정하여 프로젝트에 쉽게 통합할 수 있습니다.

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))

# Define region points
region_points = [(150, 150), (1130, 150), (1130, 570), (150, 570)]

# Video writer
video_writer = cv2.VideoWriter("object_counting_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

# Init trackzone (object tracking in zones, not complete frame)
trackzone = solutions.TrackZone(
    show=True,  # display the output
    region=region_points,  # pass region points
    model="yolo11n.pt",
)

# Process video
while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        print("Video frame is empty or video processing has been successfully completed.")
        break
    results = trackzone(im0)
    video_writer.write(results.plot_im)

cap.release()
video_writer.release()
cv2.destroyAllWindows()

Ultralytics TrackZone을 사용하여 비디오 처리를 위한 영역 지점을 어떻게 구성합니까?

Ultralytics TrackZone을 사용하여 비디오 처리를 위한 영역 지점을 구성하는 것은 간단하며 사용자 정의가 가능합니다. 모니터링하려는 영역을 정확하게 제어할 수 있도록 python 스크립트를 통해 영역을 직접 정의하고 조정할 수 있습니다.

# Define region points
region_points = [(150, 150), (1130, 150), (1130, 570), (150, 570)]

# Initialize trackzone
trackzone = solutions.TrackZone(
    show=True,  # display the output
    region=region_points,  # pass region points
)


📅 9개월 전에 생성됨 ✏️ 4개월 전에 업데이트됨

댓글