트랙존 사용 Ultralytics YOLO11
트랙존이란 무엇인가요?
TrackZone은 전체 프레임이 아닌 프레임의 지정된 영역 내의 객체를 모니터링하는 데 특화되어 있습니다. 기반 Ultralytics YOLO11을 기반으로 비디오 및 라이브 카메라 피드의 특정 영역 내에서 객체 감지 및 추적을 통합합니다. YOLO11 의 고급 알고리즘과 딥 러닝 기술은 군중 모니터링 및 감시와 같은 애플리케이션에서 정확하고 효율적인 객체 추적을 제공하여 실시간 사용 사례에 완벽한 선택입니다.
Watch: Ultralytics YOLO11 사용하여 영역에서 개체를 추적하는 방법 | TrackZone 🚀
영역 내 오브젝트 추적의 장점(트랙존)
- 타겟 분석: 특정 영역 내의 개체를 추적하면 진입 지점이나 제한 구역과 같은 관심 영역을 정밀하게 모니터링하고 분석할 수 있어 보다 집중적인 인사이트를 얻을 수 있습니다.
- 효율성 향상: TrackZone은 추적 범위를 정의된 영역으로 좁혀서 계산 오버헤드를 줄임으로써 더 빠른 처리와 최적의 성능을 보장합니다.
- 보안 강화: 구역 추적은 중요 영역을 모니터링하여 비정상적인 활동이나 보안 침해를 조기에 발견할 수 있도록 지원함으로써 감시를 개선합니다.
- 확장 가능한 솔루션: 특정 구역에 집중할 수 있는 기능으로 소매 공간부터 산업 환경에 이르기까지 다양한 시나리오에 적용할 수 있어 원활한 통합과 확장성을 보장하는 TrackZone입니다.
실제 애플리케이션
농업 | 교통편 |
---|---|
![]() |
![]() |
다음을 사용하여 필드에서 식물 추적 Ultralytics YOLO11 | 다음을 사용하여 도로에서 차량 추적 Ultralytics YOLO11 |
Ultralytics YOLO 사용한 트랙존
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 을 사용하면 비디오 프레임의 정의된 영역 또는 영역에 있는 객체를 쉽게 추적할 수 있습니다. 아래 제공된 명령을 사용해 추적을 시작하기만 하면 됩니다. 이 접근 방식은 효율적인 분석과 정확한 결과를 보장하므로 감시, 군중 관리 또는 구역 추적이 필요한 모든 시나리오에 이상적입니다.
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
)