Ultralytics YOLO를 사용한 특정 영역 내 객체 계수 🚀

영역 내 객체 계수란 무엇입니까?

Object counting in regions with Ultralytics YOLO26 involves precisely determining the number of objects within specified areas using advanced computer vision. This approach is valuable for optimizing processes, enhancing security, and improving efficiency in various applications.



Watch: Object Counting in Different Regions using Ultralytics YOLO26 | Ultralytics Solutions 🚀

영역 내 객체 계수의 장점

  • 정밀도 및 정확도: 고급 컴퓨터 비전을 통한 영역 내 객체 계수는 수동 계수와 관련된 오류를 최소화하면서 정확하고 정밀한 결과를 보장합니다.
  • 효율성 개선: 자동화된 객체 계수는 운영 효율성을 높이고 실시간 결과를 제공하며 다양한 애플리케이션 전반에서 프로세스를 간소화합니다.
  • 범용성 및 애플리케이션: 영역 내 객체 계수의 범용성은 제조, 감시, 교통 모니터링 등 다양한 분야에 적용할 수 있게 하며, 널리 활용되고 효과적인 성능을 발휘하도록 합니다.

실제 세계에서의 활용 사례

소매시장 거리
Ultralytics YOLO26을 사용한 영역별 사람 계수Ultralytics YOLO26을 사용한 영역별 군중 계수
Ultralytics YOLO26을 사용한 영역별 사람 계수Ultralytics YOLO26을 사용한 영역별 군중 계수

사용 예시

Ultralytics YOLO를 사용한 영역 계수
 import cv2

 from ultralytics import solutions

 cap = cv2.VideoCapture("path/to/video.mp4")
 assert cap.isOpened(), "Error reading video file"

 # Pass region as list
 # region_points = [(20, 400), (1080, 400), (1080, 360), (20, 360)]

 # Pass region as dictionary
 region_points = {
     "region-01": [(50, 50), (250, 50), (250, 250), (50, 250)],
     "region-02": [(640, 640), (780, 640), (780, 720), (640, 720)],
 }

 # 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("region_counting.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

 # Initialize region counter object
 regioncounter = solutions.RegionCounter(
     show=True,  # display the frame
     region=region_points,  # pass region points
     model="yolo26n.pt",  # model for counting in regions, e.g., yolo26s.pt
 )

 # Process video
 while cap.isOpened():
     success, im0 = cap.read()

     if not success:
         print("Video frame is empty or processing is complete.")
         break

     results = regioncounter(im0)

     # print(results)  # access the output

     video_writer.write(results.plot_im)

 cap.release()
 video_writer.release()
 cv2.destroyAllWindows()  # destroy all opened windows
Ultralytics 예제 코드

Ultralytics 영역 계수 모듈은 예제 섹션에서 확인할 수 있습니다. 이 예제를 통해 코드를 살펴보고 특정 사용 사례에 맞게 수정할 수 있습니다.

RegionCounter 인수

다음은 RegionCounter 인수에 대한 표입니다:

인수(Argument)유형(Type)기본값(Default)설명
modelstrNoneUltralytics YOLO 모델 파일 경로입니다.
regionlist'[(20, 400), (1260, 400)]'계수 영역을 정의하는 점들의 목록입니다.

RegionCounter 솔루션은 객체 추적 매개변수를 사용할 수 있도록 합니다:

인수(Argument)유형(Type)기본값(Default)설명
trackerstr'botsort.yaml'사용할 추적 알고리즘을 지정합니다. 예: bytetrack.yaml 또는 botsort.yaml.
conffloat0.1탐지에 대한 신뢰도 임계값을 설정합니다. 낮은 값을 사용할수록 더 많은 객체가 추적되지만 오탐지가 포함될 수 있습니다.
ioufloat0.7중복 탐지를 필터링하기 위한 Intersection over Union (IoU) 임계값을 설정합니다.
classeslistNone클래스 인덱스별로 결과를 필터링합니다. 예를 들어, classes=[0, 2, 3]은 지정된 클래스만 추적합니다.
verboseboolTrue추적 결과 표시를 제어하여 추적된 객체의 시각적 출력을 제공합니다.
devicestrNone추론을 위한 장치(예: cpu, cuda:0 또는 0)를 지정합니다. 모델 실행을 위해 CPU, 특정 GPU 또는 기타 컴퓨팅 장치 중 하나를 선택할 수 있습니다.

또한, 다음과 같은 시각화 설정을 지원합니다:

인수(Argument)유형(Type)기본값(Default)설명
showboolFalseTrue인 경우 주석이 달린 이미지나 비디오를 창에 표시합니다. 개발 또는 테스트 중 즉각적인 시각적 피드백을 얻는 데 유용합니다.
line_widthint or NoneNone바운딩 박스의 선 두께를 지정합니다. None인 경우 이미지 크기에 따라 선 두께가 자동으로 조정됩니다. 명확성을 위한 시각적 사용자 정의를 제공합니다.
show_confboolTrue레이블과 함께 각 탐지에 대한 신뢰도 점수를 표시합니다. 각 탐지에 대한 모델의 확신 수준을 알 수 있습니다.
show_labelsboolTrue시각적 출력에서 각 탐지에 대한 레이블을 표시합니다. 탐지된 객체를 즉시 이해할 수 있게 합니다.

FAQ

Ultralytics YOLO26을 사용하여 지정된 영역에서 객체를 계수하는 것은 무엇입니까?

Ultralytics YOLO26을 사용하여 지정된 영역 내 객체를 계수하는 작업은 고급 컴퓨터 비전을 통해 정의된 영역 내의 객체를 감지하고 집계하는 것입니다. 이 정밀한 방법은 제조, 감시, 교통 모니터링과 같은 다양한 애플리케이션 전반에서 효율성과 정확도를 향상시킵니다.

Ultralytics YOLO26으로 영역 기반 객체 계수 스크립트를 어떻게 실행합니까?

Ultralytics YOLO26에서 객체 계수를 실행하려면 다음 단계를 따르십시오:

  1. Ultralytics 저장소를 복제하고 해당 디렉토리로 이동합니다:

    git clone https://github.com/ultralytics/ultralytics
    cd ultralytics/examples/YOLOv8-Region-Counter
  2. 영역 계수 스크립트를 실행합니다:

    python yolov8_region_counter.py --source "path/to/video.mp4" --save-img

더 많은 옵션을 보려면 사용 예제 섹션을 방문하십시오.

영역 내 객체 계수를 위해 Ultralytics YOLO26을 사용해야 하는 이유는 무엇입니까?

영역 내 객체 계수에 Ultralytics YOLO26을 사용하면 다음과 같은 여러 이점이 있습니다:

  1. 실시간 처리: YOLO26의 아키텍처는 빠른 추론을 가능하게 하여 즉각적인 계수 결과가 필요한 애플리케이션에 이상적입니다.
  2. 유연한 영역 정의: 이 솔루션을 사용하면 특정 모니터링 요구 사항에 맞게 다각형, 직사각형 또는 선으로 여러 사용자 지정 영역을 정의할 수 있습니다.
  3. 다중 클래스 지원: 동일한 영역 내에서 다양한 유형의 객체를 동시에 계수하여 종합적인 분석을 제공합니다.
  4. 통합 기능: Ultralytics Python API 또는 명령줄 인터페이스를 통해 기존 시스템과 쉽게 통합할 수 있습니다.

더 자세한 이점은 장점 섹션에서 확인하십시오.

영역 내 객체 계수의 실제 응용 사례에는 어떤 것이 있습니까?

Ultralytics YOLO26을 사용한 객체 계수는 수많은 실제 시나리오에 적용할 수 있습니다:

  • 소매 분석: 매장 구역별 고객 수를 계산하여 레이아웃과 인력을 최적화합니다.
  • 교통 관리: 특정 도로 구간이나 교차로에서의 차량 흐름을 모니터링합니다.
  • 제조: 다양한 생산 구역을 이동하는 제품을 추적합니다.
  • 창고 운영: 지정된 보관 구역의 재고 품목을 계산합니다.
  • 공공 안전: 행사 중 특정 구역의 군중 밀도를 모니터링합니다.

실제 응용 사례 섹션에서 더 많은 예제를 살펴보고, 추가적인 구역 기반 모니터링 기능을 보려면 TrackZone 솔루션을 확인하십시오.

댓글