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引数は、2つの点(線用)または3つ以上の点を持つポリゴンを受け入れます。カウント対象がどこで出入りするかをカウンターが正確に把握できるよう、接続する順番で座標を定義してください。

Link to this sectionObjectCounterの引数#

ObjectCounterの引数をまとめた表を以下に示します:

引数タイプデフォルト説明
modelstrNoneUltralytics YOLOモデルファイルへのパス。
show_inboolTrue動画ストリームに流入数を表示するかどうかを制御するフラグ。
show_outboolTrue動画ストリームに流出数を表示するかどうかを制御するフラグ。
regionlist'[(20, 400), (1260, 400)]'計数領域を定義する点のリスト。

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

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

さらに、以下に記載する可視化引数もサポートされています:

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

Link to this sectionよくある質問 (FAQ)#

Link to this sectionUltralytics 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ソリューションをご覧ください。

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. 精度 オブジェクト検出および追跡タスクにおいて最先端の精度を提供し、誤検知を減らしてシステム全体の信頼性を向上させます。
  3. 統合の容易さ: YOLO26は、モバイルやエッジデバイスを含む様々なプラットフォームやデバイスとのシームレスな統合を提供しており、これは現代のAIアプリケーションにとって重要です。
  4. 柔軟性: 特定のユースケースの要件を満たすために、構成可能なモデルを備えたオブジェクト検出、セグメンテーション、追跡などの様々なタスクをサポートします。

機能や性能比較の詳細については、Ultralytics YOLO26ドキュメントをご覧ください。

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

はい、Ultralytics YOLO26は、そのリアルタイム検出機能、スケーラビリティ、統合の柔軟性により、群衆分析や交通管理といった高度なアプリケーションに最適です。その高度な機能により、動的な環境においても高精度なオブジェクト追跡、カウント、分類が可能です。使用例は以下の通りです:

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

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

コメント