Ultralytics YOLO26を使用した物体カウント

物体カウントとは?

Open Object Counting In Colab

Ultralytics YOLO26を使用した物体カウントには、ビデオやカメラストリーム内の特定の物体を正確に識別してカウントすることが含まれます。YOLO26はリアルタイムアプリケーションに優れており、最先端のアルゴリズムとディープラーニング機能により、群衆分析や監視などのさまざまなシナリオで効率的かつ正確な物体カウントを提供します。



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

物体カウントの利点

  • リソースの最適化: 物体カウントは、正確なカウントを提供することで効率的なリソース管理を促進し、在庫管理のようなアプリケーションでのリソース割り当てを最適化します。
  • セキュリティの強化: 物体カウントは、エンティティを正確に追跡およびカウントすることでセキュリティと監視を強化し、事前の脅威検知を支援します。
  • 情報に基づいた意思決定: 物体カウントは意思決定に役立つ洞察を提供し、小売、交通管理、その他多くの分野でプロセスを最適化します。

実社会での応用例

物流水産養殖
Conveyor Belt Packets Counting Using Ultralytics YOLO26Fish Counting in Sea using 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引数は、2つの点(線用)または3つ以上の点を持つポリゴンを受け取ります。カウンタがエントリーとエグジットの発生場所を正確に把握できるように、接続する順序で座標を定義してください。

ObjectCounterの引数

ObjectCounterの引数を示す表を次に示します。

引数タイプデフォルト説明
modelstrNoneUltralytics YOLO モデルファイルへのパス。
show_inboolTrueビデオストリーム上にインカウントを表示するかどうかを制御するフラグ。
show_outboolTrueビデオストリーム上にアウトカウントを表示するかどうかを制御するフラグ。
regionlist'[(20, 400), (1260, 400)]'カウント対象となる領域を定義する点のリスト。

ObjectCounterソリューションでは、いくつかのtrack引数を使用できます。

引数タイプデフォルト説明
trackerstr'botsort.yaml'使用するトラッキングアルゴリズムを指定します(例:bytetrack.yamlbotsort.yaml)。
conffloat0.1検出の信頼度しきい値を設定します。低い値を指定するとより多くの物体をトラッキングできますが、偽陽性が含まれる可能性があります。
ioufloat0.7重なり合う検出結果をフィルタリングするためのIntersection over Union (IoU) しきい値を設定します。
classeslistNoneクラスインデックスで結果をフィルタリングします。例えば、classes=[0, 2, 3]と設定すると、指定されたクラスのみを追跡します。
verboseboolTrue追跡結果の表示を制御し、追跡された物体の視覚的出力を提供します。
devicestrNone推論用のデバイス(例:cpucuda:00など)を指定します。ユーザーはCPU、特定のGPU、またはその他の計算デバイスを選択してモデルを実行できます。

さらに、以下にリストされている視覚化引数もサポートされています。

引数タイプデフォルト説明
showboolFalseTrueの場合、注釈付き画像または動画をウィンドウに表示します。開発やテスト中に即座に視覚的フィードバックを得るのに役立ちます。
line_widthint or NoneNoneバウンディングボックスの線幅を指定します。Noneの場合、画像サイズに基づいて線幅が自動調整されます。明確化のための視覚的なカスタマイズが可能です。
show_confboolTrueラベルとともに、各検出結果の信頼度スコアを表示します。各検出に対するモデルの確信度を把握できます。
show_labelsboolTrue視覚的出力において、各検出結果にラベルを表示します。検出されたオブジェクトの即時理解を可能にします。

FAQ

Ultralytics YOLO26を使用してビデオ内の物体をカウントするにはどうすればよいですか?

Ultralytics YOLO26を使用してビデオ内の物体をカウントするには、次の手順に従います。

  1. 必要なライブラリ(cv2ultralytics)をインポートします。
  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ソリューションを確認してください。

物体カウントにUltralytics YOLO26を使用する利点は何ですか?

物体カウントにUltralytics YOLO26を使用すると、いくつかの利点があります。

  1. リソースの最適化: 正確なカウントを提供することで効率的なリソース管理を促進し、在庫管理などの業界でのリソース割り当ての最適化を支援します。
  2. セキュリティの強化: エンティティを正確に追跡およびカウントすることでセキュリティと監視を強化し、事前の脅威検知とセキュリティシステムを支援します。
  3. 情報に基づいた意思決定: 意思決定に役立つ洞察を提供し、小売、交通管理などのドメインでプロセスを最適化します。
  4. リアルタイム処理: 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]はクラス02の物体(例:COCOデータセットの人物と車)をカウントすることを意味します。クラスインデックスの詳細については、COCOデータセットのドキュメントを参照してください。

リアルタイムアプリケーションで他の物体検知モデルよりもYOLO26を使用すべき理由は何ですか?

Ultralytics YOLO26は、Faster R-CNN、SSD、および以前のYOLOバージョンなどの他の物体検知モデルと比較して、いくつかの利点を提供します。

  1. 速度と効率: YOLO26はリアルタイム処理能力を提供し、監視や自動運転など、高速な推論を必要とするアプリケーションに最適です。
  2. 精度: 物体検知および追跡タスクにおいて最先端の精度を提供し、誤検知を減らしてシステム全体の信頼性を向上させます。
  3. 統合の容易さ: YOLO26は、モバイルやエッジデバイスを含むさまざまなプラットフォームやデバイスとのシームレスな統合を提供し、これは最新のAIアプリケーションに不可欠です。
  4. 柔軟性: 物体検知、セグメンテーション、追跡などのさまざまなタスクをサポートし、特定のユースケースの要件を満たす設定可能なモデルを備えています。

その機能とパフォーマンスの比較については、Ultralytics YOLO26のドキュメントをご覧ください。

群衆分析や交通管理などの高度なアプリケーションにYOLO26を使用できますか?

はい、Ultralytics YOLO26は、リアルタイム検知能力、スケーラビリティ、統合の柔軟性により、群衆分析や交通管理などの高度なアプリケーションに最適です。その高度な機能により、動的な環境での高精度な物体追跡、カウント、および分類が可能になります。使用例は次のとおりです。

  • 群衆分析: 大規模な集会を監視および管理し、領域ベースのカウントで安全性を確保し、群衆の流れを最適化します。
  • 交通管理: 速度推定機能を使用して、リアルタイムで車両を追跡およびカウントし、交通パターンを分析して混雑を管理します。
  • 小売分析: 顧客の移動パターンや製品とのインタラクションを分析し、店舗レイアウトを最適化して顧客体験を向上させます。
  • 産業オートメーション: コンベアベルト上の製品をカウントし、品質管理と効率向上のために生産ラインを監視します。

より専門的なアプリケーションについては、現実世界のコンピュータビジョンの課題に対応するために設計された包括的なツールセットであるUltralytics Solutionsを検討してください。

コメント