Ultralytics YOLO26을 사용한 TrackZone
TrackZone은 무엇입니까?
TrackZone은 전체 프레임 대신 프레임의 지정된 영역 내에서 객체를 모니터링하는 데 특화되어 있습니다. Ultralytics YOLO26을 기반으로 구축되었으며, 비디오 및 라이브 카메라 피드의 구역 내에서 객체 detect 및 track을 통합합니다. YOLO26의 고급 알고리즘과 딥러닝 기술은 실시간 사용 사례에 완벽한 선택이며, 군중 모니터링 및 감시와 같은 애플리케이션에서 정밀하고 효율적인 객체 track을 제공합니다.
참고: Ultralytics YOLO26을 사용하여 영역에서 객체를 Track하는 방법 | TrackZone 🚀
영역 내 객체 추적(TrackZone)의 장점
- 타겟 분석: 특정 영역 내의 객체를 추적하면 더욱 집중적인 통찰력을 얻을 수 있어 진입 지점 또는 제한 구역과 같이 관심 영역에 대한 정확한 모니터링 및 분석이 가능합니다.
- 향상된 효율성: TrackZone은 추적 범위를 정의된 영역으로 좁혀 계산 오버헤드를 줄여 더 빠른 처리와 최적의 성능을 보장합니다.
- 향상된 보안: 구역 추적은 중요 영역을 모니터링하여 감시를 개선하고, 비정상적인 활동 또는 보안 침해를 조기에 감지하는 데 도움이 됩니다.
- 확장 가능한 솔루션: 특정 영역에 집중할 수 있는 TrackZone의 기능은 소매 공간에서 산업 환경에 이르기까지 다양한 시나리오에 적용할 수 있어 원활한 통합과 확장성을 보장합니다.
실제 응용 프로그램
| 농업 | 운송 |
|---|---|
| Ultralytics YOLO26을 사용한 밭에서의 식물 Track | Ultralytics YOLO26을 사용한 도로에서의 차량 Track |
Ultralytics YOLO를 사용한 TrackZone
# Run a trackzone example
yolo solutions trackzone show=True
# Pass a source video
yolo solutions trackzone source="path/to/video.mp4" show=True
# Pass region coordinates
yolo solutions trackzone show=True region="[(150, 150), (1130, 150), (1130, 570), (150, 570)]"
트랙존은 region 목록을 확인하여 프레임의 어느 부분을 모니터링할지 알 수 있습니다. 관심 있는 물리적 영역(문, 출입문 등)에 맞게 다각형을 정의하고 show=True 를 활성화하여 오버레이가 동영상 피드와 정렬되는지 확인할 수 있도록 구성합니다.
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="yolo26n.pt", # use any model that Ultralytics supports, e.g., 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.1 | 검출에 대한 신뢰도 임계값을 설정합니다. 값이 낮을수록 더 많은 객체를 추적할 수 있지만 오탐지가 포함될 수 있습니다. |
iou | float | 0.7 | 중복되는 detect를 필터링하기 위한 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 | int or None | None | 경계 상자의 선 너비를 지정합니다. 만약 None, 선 너비는 이미지 크기에 따라 자동으로 조정됩니다. 명확성을 위해 시각적 사용자 정의를 제공합니다. |
show_conf | bool | True | 레이블과 함께 각 감지에 대한 신뢰도 점수를 표시합니다. 각 감지에 대한 모델의 확신에 대한 통찰력을 제공합니다. |
show_labels | bool | True | 시각적 출력에서 각 감지에 대한 레이블을 표시합니다. 감지된 객체에 대한 즉각적인 이해를 제공합니다. |
FAQ
Ultralytics YOLO26을 사용하여 비디오 프레임의 특정 영역 또는 구역에서 객체를 어떻게 track하나요?
Ultralytics YOLO26을 사용하면 비디오 프레임의 정의된 영역 또는 구역에서 객체를 track하는 것이 간단합니다. 아래 제공된 명령을 사용하여 track을 시작하기만 하면 됩니다. 이 접근 방식은 효율적인 분석과 정확한 결과를 보장하므로 감시, 군중 관리 또는 구역별 track이 필요한 모든 시나리오에 이상적입니다.
yolo solutions trackzone source="path/to/video.mp4" show=True
Ultralytics YOLO26과 함께 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="yolo26n.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
)