Link to this sectionUltralytics YOLO26을 이용한 영역 내 객체 카운팅#
The RegionCounter solution in Ultralytics YOLO26 tracks objects across video frames and, on every frame, counts the objects whose bounding-box center falls inside each region you define. Each region is drawn on the frame with its own live count, so you can monitor several zones, such as store aisles, road lanes, or production areas, with a single Python call or CLI command.
Watch: Object Counting in Different Regions using Ultralytics YOLO | Ultralytics Solutions
Link to this section영역 카운팅을 사용하는 이유는 무엇인가요?#
- 한 번에 여러 구역 처리: 명명된 다각형 딕셔너리를 전달하면 각 구역이 프레임에 독립적으로 표시된 카운트를 얻게 되므로, 하나의 비디오 스트림으로 관심 있는 모든 영역을 커버할 수 있습니다.
- 추적 기능 내장: 이 솔루션은 YOLO26 탐지와 객체 추적을 내부적으로 실행하므로 별도의 추적 파이프라인을 연결할 필요가 없습니다.
- 프로그래밍 방식으로 읽을 수 있는 카운트: 처리된 모든 프레임은 대시보드, 경고 또는 로그에 사용할 수 있는 영역 카운트 딕셔너리가 포함된 결과 객체를 반환합니다.
Link to this section실제 세계에서의 활용 사례#
| 소매 | 시장 거리 |
|---|---|
![]() | ![]() |
| 영역 내 Ultralytics YOLO 사람 카운팅 | 영역 내 Ultralytics YOLO 군중 카운팅 |
Link to this sectionUltralytics 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)]"Link to this sectionRegionCounter() 인수#
RegionCounter 인수에 대한 테이블은 다음과 같습니다:
| 인수 | 유형 | 기본값 | 설명 |
|---|---|---|---|
model | str | None | Ultralytics YOLO 모델 파일 경로입니다. |
region | list 또는 dict | None | 관심 영역을 정의하는 점으로, (x, y) 튜플 리스트이거나 다중 영역(RegionCounter 전용)에 대해 영역 이름과 점 리스트를 매핑하는 딕셔너리입니다. None일 경우, 영역이 필요한 솔루션은 미리 정의된 기본값으로 대체됩니다. |
RegionCounter 솔루션은 객체 추적 매개변수 사용을 지원합니다:
| 인수 | 유형 | 기본값 | 설명 |
|---|---|---|---|
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영역 카운팅 작동 방식#
RegionCounter 솔루션은 전달된 각 영역을 최소 3개 이상의 포인트로 구성된 다각형으로 변환합니다. 일반 포인트 리스트는 Region#01이라는 단일 구역이 되며, 딕셔너리는 사용자가 지정한 구역 이름을 유지합니다. 각 구역은 Ultralytics 팔레트에서 고유한 색상으로 그려집니다. 그런 다음 모든 프레임은 다음 세 단계로 처리됩니다:
- YOLO26 추적은 프레임 내의 모든 객체를 탐지하고 추적합니다.
- 추적되는 각 객체에 대해 솔루션은 BBox 중심을 계산하고 어떤 영역 다각형 내에 포함되는지 확인합니다
- 각 영역의 카운트는 해당 중심에 표시되며, 다음 프레임 전에 카운트가 초기화됩니다
카운트는 프레임마다 재시작되므로 영역에 표시된 숫자는 현재 점유 상태를 의미하며, 누적 합계가 아닌 바로 지금 영역 내에 있는 객체 수를 나타냅니다. 경계를 넘는 객체를 누적하여 카운트하려면 대신 ObjectCounter 솔루션을 사용하십시오.
각 호출은 또한 plot_im 속성에 주석이 달린 프레임이 포함되어 있고 region_counts 딕셔너리가 영역 이름을 카운트와 매핑하는 결과 객체를 반환하므로, 이를 자신의 애플리케이션 로직에 활용할 수 있습니다.
Link to this section결론#
Ultralytics YOLO26 RegionCounter 솔루션은 몇 줄의 코드로 필요한 만큼의 명명된 구역에서 실시간 객체 카운트를 모니터링합니다. 더 나아가려면 객체 카운팅을 통해 경계 통과를 카운트하거나, TrackZone으로 단일 구역 내의 객체를 추적하거나, 다른 Ultralytics 솔루션을 살펴보십시오.
Link to this sectionFAQ#
Link to this sectionUltralytics YOLO26에서 영역 내 객체 카운팅은 어떻게 작동하나요?#
Ultralytics YOLO26은 프레임 내의 모든 객체를 추적하고 BBox 중심이 사용자가 정의한 각 다각형 내부에 있는지 테스트하여 영역 내 객체를 카운트합니다. 영역에 표시되는 카운트는 누적 합계가 아닌 해당 프레임에 대한 현재 점유 상태입니다. 구성 옵션은 RegionCounter() 인수 섹션에 나열되어 있습니다.
Link to this section여러 영역에서 동시에 객체를 어떻게 카운트하나요?#
Pass the region argument as a dictionary that maps zone names to point lists, as in the main example:
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)각 명명된 구역은 고유한 색상과 독립적인 카운트로 그려집니다.
Link to this section프로그래밍 방식으로 영역 카운트를 어떻게 얻나요?#
각 regioncounter(im0) 호출에서 반환되는 객체는 영역 이름을 카운트와 매핑하는 region_counts 딕셔너리를 포함하며, plot_im(주석이 달린 프레임)과 total_tracks(추적된 객체 수)를 함께 제공합니다. 결과 객체를 출력하여 사용 가능한 모든 필드를 확인하십시오.
Link to this section영역 내에서 특정 객체 클래스만 카운트할 수 있나요?#
네. 유지하려는 클래스 인덱스와 함께 classes 인수를 전달하십시오. 예를 들어 classes=[0]을 사용하면 COCO 사전 학습 모델로 사람만 카운트할 수 있습니다. 추적 관련 인수의 전체 목록은 RegionCounter() 인수 섹션에 있습니다.
Link to this sectionRegionCounter와 ObjectCounter의 차이점은 무엇인가요?#
RegionCounter는 현재 프레임에서 각 다각형 구역 내에 있는 객체 수를 보여주는 반면, ObjectCounter는 선이나 영역 경계를 넘는 객체를 누적하여 카운트하며 출입 총계를 추적합니다. 하나 이상의 구역에 대한 실시간 점유 상태를 파악하려면 RegionCounter를 사용하고, 입출입 카운팅을 위해서는 ObjectCounter를 사용하십시오. 선 모양의 영역은 ObjectCounter에서만 지원됩니다.

