Link to this sectionUltralytics YOLO26를 사용한 TrackZone#
Link to this sectionTrackZone이란 무엇인가요?#
TrackZone은 전체 프레임 대신 프레임 내 지정된 영역 안의 객체를 모니터링하는 데 특화되어 있습니다. Ultralytics YOLO26을 기반으로 구축되었으며, 비디오 및 실시간 카메라 피드 내에서 객체 탐지와 추적을 영역별로 통합합니다. YOLO26의 고급 알고리즘과 딥러닝 기술은 실시간 사용 사례에 완벽한 선택이며, 군중 모니터링이나 감시와 같은 애플리케이션에서 정확하고 효율적인 객체 추적을 제공합니다.
Watch: How to Track Objects in Region using Ultralytics YOLO26 | TrackZone 🚀
Link to this section영역 내 객체 추적(TrackZone)의 장점#
- 표적 분석: 특정 영역 내에서 객체를 추적하면 더 집중된 통찰력을 얻을 수 있어, 출입구나 제한 구역과 같은 관심 영역을 정밀하게 모니터링하고 분석할 수 있습니다.
- 다운스트림 워크로드 감소: TrackZone은 영역 밖의 객체를 무시함으로써 관련 없는 탐지 결과를 제거하여, 상위 로직에서 집계, 기록 또는 경고해야 할 객체 수를 줄여줍니다. 탐지는 영역을 작게 자르는 방식이 아니라 전체 크기의 마스킹된 프레임에서 여전히 수행되므로, 모델 추론 속도가 빨라지기보다는 더 깔끔하고 집중된 출력 결과를 얻을 수 있다는 이점이 있습니다.
- 보안 강화: 영역 기반 추적은 중요한 구역을 모니터링하여 이상 활동이나 보안 침해를 조기에 감지하도록 도움으로써 보안을 향상시킵니다.
- 확장 가능한 솔루션: 특정 영역에 집중할 수 있는 능력 덕분에 TrackZone은 소매점 공간에서 산업 현장에 이르기까지 다양한 시나리오에 맞게 조정 가능하며, 원활한 통합과 확장성을 보장합니다.
Link to this section실제 세계에서의 활용 사례#
| 농업 | 교통 |
|---|---|
| Ultralytics YOLO26을 사용한 현장 식물 추적 | Ultralytics YOLO26을 사용한 도로 위 차량 추적 |
# 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)]"TrackZone은 프레임의 어느 부분을 모니터링할지 파악하기 위해 region 리스트에 의존합니다. 관심 있는 물리적 영역(문, 게이트 등)에 맞게 다각형을 정의하고, 설정하는 동안 show=True를 활성화하여 오버레이가 비디오 피드와 일치하는지 확인하십시오.
region의 각 항목은 비디오 프레임 내의(x, y)픽셀 좌표입니다. 모니터링하려는 영역의 둘레를 따라 연결되어야 하는 순서대로 점들을 나열하십시오.- 좌표는 프레임 해상도에 종속되므로, 1280×720 피드용으로 설정된 영역은 640×480 피드와 일치하지 않습니다. 오버레이가 피드와 일치하는지 확인하기 위해 설정하는 동안
show=True를 유지하십시오. TrackZone은 점들을 볼록 껍질(convex hull)로 축소하므로, 오목한 형태는 모든 점을 포함하는 가장 작은 볼록 다각형으로 단순화됩니다. 오목한 모양이나 여러 개의 분리된 영역이 필요한 경우 대신 RegionCounter 솔루션을 사용하십시오.region을 완전히 생략하면[(75, 75), (565, 75), (565, 285), (75, 285)]의 기본 영역이 사용됩니다.
Link to this sectionTrackZone 인수#
다음은 TrackZone 인수에 관한 표입니다:
| 인수 | 유형 | 기본값 | 설명 |
|---|---|---|---|
model | str | None | Ultralytics YOLO 모델 파일 경로입니다. |
region | list 또는 dict | None | 관심 영역을 정의하는 점으로, (x, y) 튜플 리스트이거나 다중 영역(RegionCounter 전용)에 대해 영역 이름과 점 리스트를 매핑하는 딕셔너리입니다. None일 경우, 영역이 필요한 솔루션은 미리 정의된 기본값으로 대체됩니다. |
TrackZone 솔루션은 track 매개변수에 대한 지원을 포함합니다:
| 인수 | 유형 | 기본값 | 설명 |
|---|---|---|---|
tracker | str | 'botsort.yaml' | 사용할 추적 알고리즘을 지정합니다. 기본 옵션은 다음과 같습니다: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml. |
conf | float | 0.1 | 탐지에 대한 신뢰도 임계값을 설정합니다. 값이 낮을수록 더 많은 객체가 추적되지만 잘못된 긍정 탐지(false positives)가 포함될 수 있습니다. |
iou | float | 0.7 | 겹치는 탐지를 필터링하기 위한 Intersection over Union (IoU) 임계값을 설정합니다. |
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 | 시각적 출력에서 각 탐지에 대한 레이블을 표시합니다. 탐지된 객체를 즉시 이해할 수 있도록 합니다. |
Link to this section영역 내부의 객체 수 계산#
Every call to the tracker returns a SolutionResults object whose total_tracks attribute holds the number of objects currently tracked inside the zone. Read it on each frame to monitor live occupancy, for example to log how busy an entry point or restricted area is:
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"
region_points = [(150, 150), (1130, 150), (1130, 570), (150, 570)]
trackzone = solutions.TrackZone(show=False, region=region_points, model="yolo26n.pt")
while cap.isOpened():
success, im0 = cap.read()
if not success:
break
results = trackzone(im0)
print(f"Objects currently in zone: {results.total_tracks}") # live zone occupancy
cap.release()Link to this sectionFAQ#
Link to this sectionUltralytics YOLO26을 사용하여 비디오 프레임의 특정 영역이나 구역 내의 객체를 어떻게 추적하나요?#
Ultralytics YOLO26을 사용하면 비디오 프레임의 정의된 영역이나 구역 내에서 객체를 추적하는 것은 매우 간단합니다. 아래 제공된 명령어를 사용하여 추적을 시작하십시오. 이 접근 방식은 효율적인 분석과 정확한 결과를 보장하며, 보안, 군중 관리 또는 영역 추적이 필요한 모든 시나리오에 이상적입니다.
yolo solutions trackzone source="path/to/video.mp4" show=TrueLink to this sectionUltralytics 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))
video_writer = cv2.VideoWriter("trackzone_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
trackzone = solutions.TrackZone(
show=True, region=[(150, 150), (1130, 150), (1130, 570), (150, 570)], model="yolo26n.pt"
)
while cap.isOpened():
success, im0 = cap.read()
if not success:
break
results = trackzone(im0)
video_writer.write(results.plot_im)
cap.release()
video_writer.release()
cv2.destroyAllWindows()Link to this sectionUltralytics 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
)TrackZone은 점들을 볼록 껍질로 축소한다는 점을 기억하고, 모니터링하려는 영역의 둘레를 따라 순서대로 점들을 나열하십시오.
Link to this sectionObjectCounter나 RegionCounter 대신 언제 TrackZone을 사용해야 할까요?#
세 가지 솔루션 모두 영역과 함께 작동하지만, 각기 다른 질문에 대한 답을 제공합니다:
| 해결 방법 | 용도 | 일반적인 출력 |
|---|---|---|
| TrackZone | 단일 볼록 영역 내에서 객체를 추적하고 실시간 점유율 모니터링 | 영역에 대한 추적된 ID 및 total_tracks |
| ObjectCounter | 선을 교차하거나 영역을 진입 및 이탈하는 객체 수 계산 | 누적 진입 및 이탈 카운트 |
| RegionCounter | 하나 이상의 임의 영역(오목한 형태 포함) 내부의 객체 수 계산 | 영역별 객체 수 |
단일 영역 내에서 지속적인 추적이 필요할 때는 TrackZone을 선택하고, 여러 영역이나 오목한 모양이 필요한 경우에는 RegionCounter를 선택하십시오.