Ultralytics YOLO26를 이용한 객체 카운팅
객체 카운팅이란 무엇입니까?
Ultralytics YOLO26를 이용한 객체 카운팅은 비디오와 카메라 스트림에서 특정 객체를 정확하게 식별하고 개수를 세는 작업을 포함합니다. YOLO26은 최첨단 알고리즘과 딥러닝 기능을 통해 군중 분석 및 보안 감시와 같은 다양한 시나리오에서 효율적이고 정밀한 객체 카운팅을 제공하며 실시간 애플리케이션에 탁월합니다.
Watch: How to Perform Real-Time Object Counting with Ultralytics YOLO26 🚀
객체 카운팅의 이점
- 자원 최적화: 객체 카운팅은 정확한 수치를 제공하여 효율적인 자원 관리를 촉진하며, 재고 관리와 같은 애플리케이션에서 자원 배분을 최적화합니다.
- 보안 강화: 객체 카운팅은 엔티티를 정확하게 추적하고 카운트하여 보안 및 감시를 강화하며, 선제적인 위협 탐지에 도움을 줍니다.
- 정보 기반 의사 결정: 객체 카운팅은 의사 결정을 위한 귀중한 인사이트를 제공하여 소매업, 교통 관리 및 기타 여러 분야의 프로세스를 최적화합니다.
실제 세계에서의 활용 사례
| 물류 | 양식업 |
|---|---|
![]() | ![]() |
| Ultralytics YOLO26을 이용한 컨베이어 벨트 패킷 카운팅 | Ultralytics YOLO26을 이용한 해상 물고기 카운팅 |
# Run a counting example
yolo solutions count show=True
# Pass a source video
yolo solutions count source="path/to/video.mp4"
# Pass region coordinates
yolo solutions count region="[(20, 400), (1080, 400), (1080, 360), (20, 360)]"region 인수는 두 개의 점(선인 경우) 또는 세 개 이상의 점으로 구성된 다각형을 허용합니다. 카운터가 항목의 진입 및 퇴출 지점을 정확하게 파악할 수 있도록 연결할 순서대로 좌표를 정의하십시오.
ObjectCounter 인수
다음은 ObjectCounter 인수를 나열한 표입니다:
| 인수(Argument) | 유형(Type) | 기본값(Default) | 설명 |
|---|---|---|---|
model | str | None | Ultralytics YOLO 모델 파일 경로입니다. |
show_in | bool | True | 비디오 스트림에 유입(in) 계수를 표시할지 여부를 제어하는 플래그입니다. |
show_out | bool | True | 비디오 스트림에 유출(out) 계수를 표시할지 여부를 제어하는 플래그입니다. |
region | list | '[(20, 400), (1260, 400)]' | 계수 영역을 정의하는 점들의 목록입니다. |
ObjectCounter 솔루션은 여러 track 인수의 사용을 지원합니다:
| 인수(Argument) | 유형(Type) | 기본값(Default) | 설명 |
|---|---|---|---|
tracker | str | 'botsort.yaml' | 사용할 추적 알고리즘을 지정합니다. 예: bytetrack.yaml 또는 botsort.yaml. |
conf | float | 0.1 | 탐지에 대한 신뢰도 임계값을 설정합니다. 낮은 값을 사용할수록 더 많은 객체가 추적되지만 오탐지가 포함될 수 있습니다. |
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 또는 기타 컴퓨팅 장치 중 하나를 선택할 수 있습니다. |
또한, 아래 나열된 시각화 인수가 지원됩니다:
| 인수(Argument) | 유형(Type) | 기본값(Default) | 설명 |
|---|---|---|---|
show | bool | False | True인 경우 주석이 달린 이미지나 비디오를 창에 표시합니다. 개발 또는 테스트 중 즉각적인 시각적 피드백을 얻는 데 유용합니다. |
line_width | int or None | None | 바운딩 박스의 선 두께를 지정합니다. None인 경우 이미지 크기에 따라 선 두께가 자동으로 조정됩니다. 명확성을 위한 시각적 사용자 정의를 제공합니다. |
show_conf | bool | True | 레이블과 함께 각 탐지에 대한 신뢰도 점수를 표시합니다. 각 탐지에 대한 모델의 확신 수준을 알 수 있습니다. |
show_labels | bool | True | 시각적 출력에서 각 탐지에 대한 레이블을 표시합니다. 탐지된 객체를 즉시 이해할 수 있게 합니다. |
FAQ
Ultralytics YOLO26을 사용하여 비디오에서 객체를 어떻게 카운트합니까?
Ultralytics YOLO26을 사용하여 비디오에서 객체를 카운트하려면 다음 단계를 따르십시오:
- 필요한 라이브러리(
cv2,ultralytics)를 가져옵니다. - 카운팅 영역(예: 다각형, 선 등)을 정의합니다.
- 비디오 캡처를 설정하고 객체 카운터를 초기화합니다.
- 각 프레임을 처리하여 객체를 추적하고 정의된 영역 내에서 개수를 셉니다.
다음은 영역 내 카운팅을 위한 간단한 예제입니다:
import cv2
from ultralytics import solutions
def count_objects_in_region(video_path, output_video_path, model_path):
"""Count objects in a specific region within a video."""
cap = cv2.VideoCapture(video_path)
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(output_video_path, cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
region_points = [(20, 400), (1080, 400), (1080, 360), (20, 360)]
counter = solutions.ObjectCounter(show=True, region=region_points, model=model_path)
while cap.isOpened():
success, im0 = cap.read()
if not success:
print("Video frame is empty or processing is complete.")
break
results = counter(im0)
video_writer.write(results.plot_im)
cap.release()
video_writer.release()
cv2.destroyAllWindows()
count_objects_in_region("path/to/video.mp4", "output_video.avi", "yolo26n.pt")더 고급 구성 및 옵션을 보려면 여러 영역에서 동시에 객체를 카운트하는 RegionCounter 솔루션을 확인하십시오.
Ultralytics YOLO26을 객체 카운팅에 사용할 때의 장점은 무엇입니까?
객체 카운팅에 Ultralytics YOLO26을 사용하면 다음과 같은 몇 가지 장점이 있습니다:
- 자원 최적화: 정확한 수치를 제공하여 효율적인 자원 관리를 촉진하며, 재고 관리와 같은 산업에서 자원 배분을 최적화하는 데 도움을 줍니다.
- 보안 강화: 엔티티를 정확하게 추적하고 카운트하여 보안 및 감시를 강화하며, 선제적인 위협 탐지 및 보안 시스템에 도움을 줍니다.
- 정보 기반 의사 결정: 의사 결정을 위한 귀중한 인사이트를 제공하며 소매업, 교통 관리 등과 같은 분야의 프로세스를 최적화합니다.
- 실시간 처리: YOLO26의 아키텍처는 실시간 추론을 가능하게 하여 라이브 비디오 스트림 및 시간에 민감한 애플리케이션에 적합합니다.
구현 예제 및 실제 애플리케이션에 대해서는 특정 영역에서 객체를 추적하는 TrackZone 솔루션을 살펴보십시오.
Ultralytics YOLO26을 사용하여 특정 클래스의 객체를 어떻게 카운트할 수 있습니까?
Ultralytics YOLO26을 사용하여 특정 클래스의 객체를 카운트하려면 추적 단계 중에 관심 있는 클래스를 지정해야 합니다. 다음은 Python 예제입니다:
import cv2
from ultralytics import solutions
def count_specific_classes(video_path, output_video_path, model_path, classes_to_count):
"""Count specific classes of objects in a video."""
cap = cv2.VideoCapture(video_path)
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(output_video_path, cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
line_points = [(20, 400), (1080, 400)]
counter = solutions.ObjectCounter(show=True, region=line_points, model=model_path, classes=classes_to_count)
while cap.isOpened():
success, im0 = cap.read()
if not success:
print("Video frame is empty or processing is complete.")
break
results = counter(im0)
video_writer.write(results.plot_im)
cap.release()
video_writer.release()
cv2.destroyAllWindows()
count_specific_classes("path/to/video.mp4", "output_specific_classes.avi", "yolo26n.pt", [0, 2])이 예제에서 classes_to_count=[0, 2]는 클래스 0과 2(예: COCO 데이터셋의 사람과 자동차)를 카운트한다는 의미입니다. 클래스 인덱스에 대한 자세한 정보는 COCO 데이터셋 문서에서 찾을 수 있습니다.
실시간 애플리케이션을 위해 다른 객체 탐지 모델 대신 YOLO26을 사용해야 하는 이유는 무엇입니까?
Ultralytics YOLO26은 Faster R-CNN, SSD 및 이전 YOLO 버전과 같은 다른 객체 탐지 모델보다 몇 가지 장점을 제공합니다:
- 속도 및 효율성: YOLO26은 실시간 처리 기능을 제공하므로 보안 및 자율 주행과 같이 고속 추론이 필요한 애플리케이션에 이상적입니다.
- 정확도: 객체 탐지 및 추적 작업에 있어 최첨단 정확도를 제공하여 오탐지 수를 줄이고 전반적인 시스템 신뢰성을 향상시킵니다.
- 통합 용이성: YOLO26은 모바일 및 에지 디바이스를 포함한 다양한 플랫폼 및 디바이스와 원활하게 통합되며, 이는 현대 AI 애플리케이션에 매우 중요합니다.
- 유연성: 특정 사용 사례 요구 사항을 충족하기 위해 구성 가능한 모델을 통해 객체 탐지, 세그멘테이션, 추적과 같은 다양한 작업을 지원합니다.
기능 및 성능 비교에 대한 자세한 내용은 Ultralytics YOLO26 문서를 확인하십시오.
군중 분석 및 교통 관리와 같은 고급 애플리케이션에 YOLO26을 사용할 수 있습니까?
네, Ultralytics YOLO26은 실시간 탐지 기능, 확장성, 통합 유연성 덕분에 군중 분석 및 교통 관리와 같은 고급 애플리케이션에 완벽하게 적합합니다. 고급 기능은 동적 환경에서 높은 정확도의 객체 추적, 카운팅 및 분류를 가능하게 합니다. 예시 사용 사례는 다음과 같습니다:
- 군중 분석: 대규모 모임을 모니터링 및 관리하고, 영역 기반 카운팅을 통해 안전을 보장하고 군중 흐름을 최적화합니다.
- 교통 관리: 속도 추정 기능을 사용하여 차량을 추적 및 카운트하고, 교통 패턴을 분석하며, 정체를 실시간으로 관리합니다.
- 소매 분석: 고객 이동 패턴 및 제품 상호 작용을 분석하여 매장 레이아웃을 최적화하고 고객 경험을 개선합니다.
- 산업 자동화: 컨베이어 벨트 위의 제품을 카운트하고 품질 관리 및 효율성 개선을 위해 생산 라인을 모니터링합니다.
더 전문화된 애플리케이션을 위해서는 실제 컴퓨터 비전 문제를 해결하도록 설계된 포괄적인 도구 세트인 Ultralytics 솔루션을 살펴보십시오.

