Ultralytics YOLO26을 이용한 영역 내 객체 카운팅#
Ultralytics YOLO26의 RegionCounter solution은 비디오 프레임 전체에서 객체를 추적하고, 모든 프레임에서 바운딩 박스 중심이 사용자가 정의한 각 영역 내에 속하는 객체의 수를 셉니다. 각 영역은 실시간 카운트와 함께 프레임 위에 그려지므로, 단 하나의 Python 호출 또는 CLI 명령으로 매장 통로, 도로 차선 또는 생산 구역과 같은 여러 영역을 모니터링할 수 있습니다.
Watch: Object Counting in Different Regions using Ultralytics YOLO | Ultralytics Solutions
영역 카운팅을 사용하는 이유는 무엇인가요?#
- 한 번에 여러 구역 처리: 명명된 다각형 딕셔너리를 전달하면 각 구역이 프레임에 독립적으로 표시된 카운트를 얻게 되므로, 하나의 비디오 스트림으로 관심 있는 모든 영역을 커버할 수 있습니다.
- 내장된 추적 기능: 이 솔루션은 내부적으로 YOLO26 감지와 object tracking을 실행하므로, 별도의 추적 파이프라인을 연결할 필요가 없습니다.
- 프로그래밍 방식으로 읽을 수 있는 카운트: 처리된 모든 프레임은 대시보드, 경고 또는 로그에 사용할 수 있는 영역 카운트 딕셔너리가 포함된 결과 객체를 반환합니다.
실제 세계에서의 활용 사례#
| 소매 | 시장 거리 |
|---|---|
![]() | ![]() |
| 영역 내 Ultralytics YOLO 사람 카운팅 | 영역 내 Ultralytics YOLO 군중 카운팅 |
Ultralytics YOLO로 영역 내 객체를 카운팅하는 방법#
CLI 또는 Python에서 비디오 소스에 대해 RegionCounter 솔루션을 실행하십시오. 영역은 포인트 리스트(단일 구역)이거나 구역 이름과 포인트 리스트를 매핑하는 딕셔너리일 수 있습니다. 아래의 Python 예제는 두 개의 명명된 영역에서 객체를 카운트하고 처리된 프레임을 출력 비디오 파일로 저장합니다:
# Run a region counting example
yolo solutions region show=True
# Pass a source video
yolo solutions region source="path/to/video.mp4"
# Pass a custom region
yolo solutions region region="[(20, 400), (1080, 400), (1080, 360), (20, 360)]"RegionCounter() 인수#
다음은 RegionCounter 인수가 포함된 표입니다:
| 인수 | 유형 | 기본값 | 설명 |
|---|---|---|---|
model | str | None | Ultralytics YOLO 모델 파일 경로입니다. |
region | list 또는 dict | None | 관심 영역을 정의하는 포인트((x, y) 튜플 목록 또는 여러 영역에 대해 영역 이름을 포인트 목록에 매핑하는 사전(RegionCounter 전용)). None일 때, 영역이 필요한 솔루션은 미리 정의된 기본값으로 대체됩니다. |
RegionCounter 솔루션은 객체 추적 매개변수의 사용을 지원합니다:
| 인수 | 유형 | 기본값 | 설명 |
|---|---|---|---|
tracker | str | 'tracktrack.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 | 시각적 출력에서 각 탐지에 대한 레이블을 표시합니다. 탐지된 객체를 즉시 이해할 수 있도록 합니다. |
영역 카운팅 작동 방식#
RegionCounter solution은 전달하는 각 영역을 영역당 최소 3개의 점으로 이루어진 다각형으로 변환합니다. 단순한 점 목록은 Region#01이라는 단일 구역이 되며, 딕셔너리는 사용자 지정 구역 이름을 유지합니다. 각 구역은 Ultralytics 팔레트에서 고유한 색상으로 그려집니다. 그런 다음 모든 프레임은 다음 세 단계로 처리됩니다:
- YOLO26 추적은 프레임 내의 모든 객체를 탐지하고 추적합니다.
- 추적되는 각 객체에 대해 솔루션은 BBox 중심을 계산하고 어떤 영역 다각형 내에 포함되는지 확인합니다
- 각 영역의 카운트는 해당 중심에 표시되며, 다음 프레임 전에 카운트가 초기화됩니다
카운트가 매 프레임마다 재시작되므로, 영역에 표시되는 숫자는 누적 합계가 아니라 현재 해당 영역 내부에 있는 객체 수를 의미하는 현재 점유율입니다. 경계를 통과하는 객체를 누적하여 카운트하려면 대신 ObjectCounter solution을 사용하십시오.
또한 각 호출은 plot_im 속성에 주석이 추가된 프레임을 보유하고 region_counts 딕셔너리에 영역 이름과 해당 카운트를 매핑하는 결과 객체를 반환하므로, 해당 숫자를 사용자 애플리케이션 로직에 입력할 수 있습니다.
결론#
Ultralytics YOLO26 RegionCounter solution은 몇 줄의 코드로 필요한 만큼의 명명된 구역에서 실시간 객체 카운트를 모니터링합니다. 더 나아가려면 object counting으로 경계 통과를 카운트하거나, TrackZone으로 단일 구역 내의 객체를 추적하거나, 다른 Ultralytics Solutions을 살펴보십시오.
FAQ#
Ultralytics YOLO26에서 영역 내 객체 카운팅은 어떻게 작동하나요?#
Ultralytics YOLO26은 프레임의 모든 객체를 추적하고 바운딩 박스 중심이 사용자가 정의한 각 다각형 내부에 있는지 테스트하여 영역 내 객체를 카운트합니다. 영역에 표시되는 카운트는 누적 합계가 아니라 해당 프레임에 대한 현재 점유율입니다. 구성 옵션은 RegionCounter() Arguments 섹션에 나열되어 있습니다.
여러 영역에서 동시에 객체를 어떻게 카운트하나요?#
메인 예시에서와 같이 영역 이름을 포인트 목록에 매핑하는 딕셔너리로 region 인수를 전달합니다:
from ultralytics import solutions
region_points = {
"region-01": [(50, 50), (250, 50), (250, 250), (50, 250)],
"region-02": [(640, 640), (780, 640), (780, 720), (640, 720)],
}
regioncounter = solutions.RegionCounter(region=region_points, model="yolo26n.pt", show=True)각 명명된 구역은 고유한 색상과 독립적인 카운트로 그려집니다.
프로그래밍 방식으로 영역 카운트를 어떻게 얻나요?#
각 regioncounter(im0) 호출에 의해 반환된 객체는 영역 이름을 해당 카운트에 매핑하는 region_counts 딕셔너리를 포함하며, plot_im(주석이 추가된 프레임) 및 total_tracks(추적된 객체 수)과 함께 제공됩니다. 사용 가능한 모든 필드를 검사하려면 결과 객체를 출력하십시오.
영역 내에서 특정 객체 클래스만 카운트할 수 있나요?#
네. 유지할 클래스 인덱스와 함께 classes 인수를 전달하세요. 예를 들어 COCO 사전 학습된 모델로 사람만 카운트하려면 classes=[0]을 전달합니다. 트래킹 관련 인수 전체 목록은 RegionCounter() Arguments 섹션에 있습니다.
RegionCounter와 ObjectCounter의 차이점은 무엇인가요?#
RegionCounter은 현재 프레임의 각 다각형 구역 내부에 있는 객체 수를 보여주는 반면, ObjectCounter는 선 또는 영역 경계를 통과할 때 객체를 누적하여 카운트하며 안팎 합계를 추적합니다. 하나 이상의 구역의 실시간 점유율에는 RegionCounter를 사용하고 진입 및 진출 카운팅에는 ObjectCounter을 사용하십시오. 선 모양 영역은 ObjectCounter에서만 지원됩니다.

