콘텐츠로 건너뛰기

트랙존 사용 Ultralytics YOLO11

콜랩에서 트랙존 열기

트랙존이란 무엇인가요?

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



Watch: Ultralytics YOLO11 사용하여 영역에서 개체를 추적하는 방법 | TrackZone 🚀

영역 내 오브젝트 추적의 장점(트랙존)

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

실제 애플리케이션

농업 교통편
다음을 사용하여 필드에서 식물 추적 Ultralytics YOLO11 다음을 사용하여 도로에서 차량 추적 Ultralytics YOLO11
다음을 사용하여 필드에서 식물 추적 Ultralytics YOLO11 다음을 사용하여 도로에서 차량 추적 Ultralytics YOLO11

Ultralytics YOLO 사용한 트랙존

# 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)] 계산 영역을 정의하는 포인트 목록입니다.

트랙존 솔루션은 다음을 지원합니다. 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를 클릭하면 이미지 크기에 따라 선 너비가 자동으로 조정됩니다. 선명도를 위한 시각적 사용자 지정 기능을 제공합니다.

자주 묻는 질문

Ultralytics YOLO11 을 사용하여 비디오 프레임의 특정 영역 또는 영역에 있는 객체를 추적하려면 어떻게 하나요?

Ultralytics YOLO11 을 사용하면 비디오 프레임의 정의된 영역 또는 영역에 있는 객체를 쉽게 추적할 수 있습니다. 아래 제공된 명령을 사용해 추적을 시작하기만 하면 됩니다. 이 접근 방식은 효율적인 분석과 정확한 결과를 보장하므로 감시, 군중 관리 또는 구역 추적이 필요한 모든 시나리오에 이상적입니다.

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

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

# 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 트랙존을 사용하여 비디오 처리를 위한 구역 지점을 구성하려면 어떻게 해야 하나요?

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
)
📅 3 개월 전에 생성됨 ✏️ 업데이트됨 5 일 전

댓글