Ultralytics YOLO11을 사용하는 TrackZone
TrackZone은 무엇입니까?
TrackZone은 전체 프레임 대신 프레임의 지정된 영역 내에서 객체를 모니터링하는 데 특화되어 있습니다. Ultralytics YOLO11을 기반으로 구축되었으며, 비디오 및 라이브 카메라 피드에 대해 특히 구역 내에서 객체 감지 및 추적을 통합합니다. YOLO11의 고급 알고리즘과 딥 러닝 기술은 실시간 사용 사례에 완벽한 선택이며, 군중 모니터링 및 감시와 같은 애플리케이션에서 정확하고 효율적인 객체 추적을 제공합니다.
참고: Ultralytics YOLO11을 사용하여 영역에서 객체를 추적하는 방법 | TrackZone 🚀
영역 내 객체 추적(TrackZone)의 장점
- 타겟 분석: 특정 영역 내의 객체를 추적하면 더욱 집중적인 통찰력을 얻을 수 있어 진입 지점 또는 제한 구역과 같이 관심 영역에 대한 정확한 모니터링 및 분석이 가능합니다.
- 향상된 효율성: TrackZone은 추적 범위를 정의된 영역으로 좁혀 계산 오버헤드를 줄여 더 빠른 처리와 최적의 성능을 보장합니다.
- 향상된 보안: 구역 추적은 중요 영역을 모니터링하여 감시를 개선하고, 비정상적인 활동 또는 보안 침해를 조기에 감지하는 데 도움이 됩니다.
- 확장 가능한 솔루션: 특정 영역에 집중할 수 있는 TrackZone의 기능은 소매 공간에서 산업 환경에 이르기까지 다양한 시나리오에 적용할 수 있어 원활한 통합과 확장성을 보장합니다.
실제 응용 프로그램
농업 | 운송 |
---|---|
![]() |
![]() |
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
)