Meet YOLO26: next-gen vision AI.

Link to this sectionUltralytics YOLO26을 이용한 객체 카운팅#

Link to this section객체 카운팅이란 무엇인가요?#

Open Object Counting In Colab

Ultralytics YOLO26을 사용한 객체 카운팅은 비디오 및 카메라 스트림 내 특정 객체를 정확하게 식별하고 개수를 세는 작업을 포함합니다. YOLO26은 최첨단 알고리즘과 딥러닝 기능을 바탕으로 실시간 애플리케이션에서 뛰어난 성능을 발휘하며, 군중 분석이나 감시와 같은 다양한 시나리오에서 효율적이고 정밀한 객체 카운팅을 제공합니다.



Watch: How to Perform Real-Time Object Counting with Ultralytics YOLO26 🚀

Link to this section객체 카운팅의 이점#

  • 자원 최적화: 객체 카운팅은 정확한 수치를 제공하여 효율적인 자원 관리를 용이하게 하며, 재고 관리와 같은 애플리케이션에서 자원 배분을 최적화합니다.
  • 보안 강화: 객체 카운팅은 엔티티를 정확하게 추적하고 카운팅함으로써 보안 및 감시 기능을 강화하며, 사전 예방적인 위협 탐지를 지원합니다.
  • 정보에 입각한 의사결정: 객체 카운팅은 의사결정을 위한 귀중한 인사이트를 제공하여 소매업, 교통 관리 및 기타 다양한 분야의 프로세스를 최적화합니다.

Link to this section실제 세계에서의 활용 사례#

물류양식업
Ultralytics YOLO26을 이용한 컨베이어 벨트 패키지 카운팅Ultralytics YOLO26을 이용한 해양 어류 카운팅
Ultralytics YOLO26을 이용한 컨베이어 벨트 패키지 카운팅Ultralytics YOLO26을 이용한 해양 어류 카운팅
Ultralytics YOLO를 이용한 객체 카운팅
# 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 인수는 두 점(선인 경우) 또는 세 점 이상의 다각형을 허용합니다. 카운터가 진입 및 이탈 지점을 정확히 인식할 수 있도록 연결 순서대로 좌표를 정의하십시오.

Link to this sectionObjectCounter 인수#

ObjectCounter 인수를 정리한 표입니다:

인수유형기본값설명
modelstrNoneUltralytics YOLO 모델 파일 경로입니다.
show_inboolTrue비디오 스트림에 유입(in) 카운트를 표시할지 여부를 제어하는 플래그입니다.
show_outboolTrue비디오 스트림에 유출(out) 카운트를 표시할지 여부를 제어하는 플래그입니다.
regionlist'[(20, 400), (1260, 400)]'카운팅 영역을 정의하는 포인트들의 목록입니다.

ObjectCounter 솔루션은 여러 track 인수의 사용을 허용합니다:

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

또한 아래 나열된 시각화 인수가 지원됩니다:

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

Link to this sectionFAQ#

Link to this sectionUltralytics YOLO26을 사용하여 비디오에서 객체를 어떻게 카운팅하나요?#

Ultralytics YOLO26을 사용하여 비디오에서 객체를 카운팅하려면 다음 단계를 따르십시오:

  1. 필요한 라이브러리(cv2, ultralytics)를 가져옵니다.
  2. 카운팅 영역(예: 다각형, 선 등)을 정의합니다.
  3. 비디오 캡처를 설정하고 객체 카운터를 초기화합니다.
  4. 각 프레임을 처리하여 객체를 추적하고 정의된 영역 내에서 카운트합니다.

영역 내 카운팅에 대한 간단한 예제는 다음과 같습니다:

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 솔루션을 확인하십시오.

Link to this section객체 카운팅에 Ultralytics YOLO26을 사용할 때의 장점은 무엇인가요?#

객체 카운팅에 Ultralytics YOLO26을 사용하면 여러 이점이 있습니다:

  1. 자원 최적화: 정확한 수치를 제공하여 효율적인 자원 관리를 용이하게 하며, 재고 관리와 같은 산업에서 자원 배분을 최적화하는 데 도움이 됩니다.
  2. 보안 강화: 엔티티를 정확하게 추적하고 카운팅하여 보안 및 감시 기능을 강화하며, 사전 예방적 위협 탐지 및 보안 시스템을 지원합니다.
  3. 정보에 입각한 의사결정: 의사결정을 위한 귀중한 인사이트를 제공하여 소매, 교통 관리 등 다양한 분야의 프로세스를 최적화합니다.
  4. 실시간 처리: YOLO26의 아키텍처는 실시간 추론을 가능하게 하여 실시간 비디오 스트림 및 시간에 민감한 애플리케이션에 적합합니다.

구현 예시 및 실용적인 애플리케이션은 특정 구역 내 객체 추적을 위한 TrackZone 솔루션을 확인하십시오.

Link to this sectionUltralytics 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]는 클래스 02(예: COCO 데이터셋의 사람 및 자동차)에 해당하는 객체를 카운트함을 의미합니다. 클래스 인덱스에 대한 자세한 정보는 COCO 데이터셋 문서에서 확인할 수 있습니다.

Link to this section실시간 애플리케이션을 위해 다른 객체 탐지 모델보다 YOLO26을 사용해야 하는 이유는 무엇인가요?#

Ultralytics YOLO26은 Faster R-CNN, SSD 및 이전 YOLO 버전과 같은 다른 객체 탐지 모델에 비해 다음과 같은 여러 장점을 제공합니다:

  1. 속도 및 효율성: YOLO26은 실시간 처리 기능을 제공하여 감시 및 자율 주행과 같이 고속 추론이 필요한 애플리케이션에 이상적입니다.
  2. 정확도: 객체 탐지 및 추적 작업에서 최첨단 정확도를 제공하여 오탐지(false positive) 수를 줄이고 전체 시스템 안정성을 향상시킵니다.
  3. 통합 용이성: YOLO26은 모바일 및 엣지 디바이스를 포함한 다양한 플랫폼 및 장치와 원활하게 통합되며, 이는 현대 AI 애플리케이션에 매우 중요합니다.
  4. 유연성: 객체 탐지, 세그멘테이션, 추적과 같은 다양한 작업을 지원하며 특정 사용 사례 요구 사항을 충족하도록 모델을 구성할 수 있습니다.

기능 및 성능 비교에 대한 자세한 내용은 Ultralytics YOLO26 문서를 확인하십시오.

Link to this section군중 분석이나 교통 관리와 같은 고급 애플리케이션에 YOLO26을 사용할 수 있나요?#

네, Ultralytics YOLO26은 실시간 탐지 기능, 확장성 및 통합 유연성 덕분에 군중 분석 및 교통 관리와 같은 고급 애플리케이션에 완벽하게 적합합니다. 고급 기능은 동적 환경에서 높은 정확도로 객체를 추적, 카운팅 및 분류할 수 있게 합니다. 사용 사례 예시는 다음과 같습니다:

  • 군중 분석: 대규모 모임을 모니터링 및 관리하고, 영역 기반 카운팅을 통해 안전을 확보하고 군중 흐름을 최적화합니다.
  • 교통 관리: 속도 추정 기능을 통해 실시간으로 차량을 추적 및 카운팅하고, 교통 패턴을 분석하며 정체를 관리합니다.
  • 소매 분석: 고객의 이동 패턴과 제품 상호작용을 분석하여 매장 레이아웃을 최적화하고 고객 경험을 개선합니다.
  • 산업 자동화: 컨베이어 벨트 위의 제품을 카운팅하고 생산 라인을 모니터링하여 품질 관리 및 효율성을 개선합니다.

더 전문적인 애플리케이션의 경우, 실제 컴퓨터 비전 문제를 해결하기 위해 설계된 포괄적인 도구 모음인 Ultralytics 솔루션을 확인하십시오.

댓글