Meet YOLO26: next-gen vision AI.

Link to this sectionUltralytics YOLO26を使用したTrackZone#

Link to this sectionTrackZoneとは何ですか?#

Open TrackZone In Colab

TrackZoneは、フレーム全体ではなく、指定されたエリア内のオブジェクト監視に特化しています。Ultralytics YOLO26を基盤とし、ビデオやライブカメラフィードの特定のゾーン内での物体検出とトラッキングを統合します。YOLO26の高度なアルゴリズムとディープラーニング技術は、群衆モニタリングや監視などのアプリケーションで、正確かつ効率的なオブジェクトトラッキングを実現し、リアルタイムのユースケースに最適です。



Watch: How to Track Objects in Region using Ultralytics YOLO26 | TrackZone 🚀

Link to this sectionゾーン内オブジェクト追跡(TrackZone)の利点#

  • ターゲット分析: 特定のゾーン内でオブジェクトを追跡することで、より焦点を絞ったインサイトが得られ、入口や制限区域など、関心のある領域の正確な監視と分析が可能になります。
  • ダウンストリームの負荷軽減: TrackZoneはゾーン外のオブジェクトを無視することで無関係な検出結果を除去し、その上で構築するロジックにおいてカウント、ログ記録、アラートが必要なオブジェクトの数を減らします。検出はゾーンの狭いクロップではなく、フルサイズのマスクされたフレームに対して実行されるため、モデルの推論速度が向上するのではなく、よりクリーンで焦点の絞られた出力が得られることが利点となります。
  • セキュリティの強化: ゾーンベースの追跡は、重要な領域を監視することでサーベイランスを改善し、異常な活動やセキュリティ侵害の早期検知を支援します。
  • スケーラブルなソリューション: 特定のゾーンに集中できるため、TrackZoneは小売スペースから産業環境まで、さまざまなシナリオに適応可能であり、シームレスな統合とスケーラビリティを保証します。

Link to this section現実世界の応用例#

農業交通
Ultralytics YOLO26を使用したフィールドでの植物追跡Ultralytics YOLO26を使用した道路上での車両追跡
Ultralytics YOLO26を使用したフィールドでの植物追跡Ultralytics YOLO26を使用した道路上での車両追跡
Ultralytics YOLOを使用したTrackZone
# Run a trackzone example
yolo solutions trackzone show=True

# Pass a source video
yolo solutions trackzone source="path/to/video.mp4" show=True

# Pass region coordinates
yolo solutions trackzone show=True region="[(150, 150), (1130, 150), (1130, 570), (150, 570)]"

TrackZoneは、フレームのどの部分を監視するかを判断するためにregionリストに依存します。ドアやゲートなど、関心のある物理的なゾーンに合わせてポリゴンを定義し、設定中にshow=Trueを有効にすることで、オーバーレイがビデオフィードと一致しているか確認してください。

トラッキングゾーンの定義
  • regionの各エントリは、ビデオフレーム内の(x, y)ピクセル座標です。監視したいエリアの周囲に沿って、接続すべき順番でポイントをリストしてください。
  • 座標はフレーム解像度に依存するため、1280×720フィード用に調整された領域は640×480のフィードと一致しません。設定中はshow=Trueに維持して、オーバーレイがフィードと一致していることを確認してください。
  • TrackZoneはポイントを凸包に縮小するため、凹状の形状は、すべての点を含む最小の凸多角形に単純化されます。凹状の形状や複数の個別のエリアには、代わりにRegionCounterソリューションを使用してください。
  • regionを完全に省略した場合、デフォルトのゾーン[(75, 75), (565, 75), (565, 285), (75, 285)]が使用されます。

Link to this sectionTrackZoneの引数#

TrackZoneの引数を示すテーブルは以下の通りです:

引数タイプデフォルト説明
modelstrNoneUltralytics YOLOモデルファイルへのパス。
regionlist または dictNone関心領域を定義するポイントです。(x, y) タプルのリスト、または(RegionCounter の場合のみ)領域名をポイントリストにマッピングする辞書のいずれかです。None の場合、領域を必要とするソリューションは定義済みのデフォルトにフォールバックします。

TrackZoneソリューションには、trackパラメータのサポートが含まれています:

引数タイプデフォルト説明
trackerstr'botsort.yaml'使用するトラッキングアルゴリズムを指定します。組み込みのオプションは、botsort.yamlbytetrack.yamlocsort.yamldeepocsort.yamlfasttrack.yamltracktrack.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ゾーン内のオブジェクトをカウントする#

トラッカーへの呼び出しは毎回、SolutionResultsオブジェクトを返します。このオブジェクトのtotal_tracks属性には、現在ゾーン内でトラッキングされているオブジェクトの数が保持されます。これを各フレームで読み取ることで、例えばエントリーポイントや制限エリアの混雑状況をライブで監視し、ログに記録することができます。

import cv2

from ultralytics import solutions

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

region_points = [(150, 150), (1130, 150), (1130, 570), (150, 570)]
trackzone = solutions.TrackZone(show=False, region=region_points, model="yolo26n.pt")

while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        break
    results = trackzone(im0)
    print(f"Objects currently in zone: {results.total_tracks}")  # live zone occupancy

cap.release()

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

Link to this sectionUltralytics YOLO26を使用して、ビデオフレームの特定の領域やゾーンでオブジェクトを追跡するにはどうすればよいですか?#

Ultralytics YOLO26を使用すれば、ビデオフレームの定義された領域やゾーン内でのオブジェクト追跡は簡単です。以下に提供するコマンドを使用して追跡を開始してください。このアプローチにより、効率的な分析と正確な結果が保証され、サーベイランス、群衆管理、またはゾーン追跡が必要なあらゆるシナリオに最適です。

yolo solutions trackzone source="path/to/video.mp4" show=True

Link to this sectionUltralytics YOLO26をPythonで使用してTrackZoneを利用するにはどうすればよいですか?#

わずか数行のコードで特定のゾーンにおけるオブジェクト追跡を設定できるため、プロジェクトへの統合が容易になります。

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
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("trackzone_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

trackzone = solutions.TrackZone(
    show=True, region=[(150, 150), (1130, 150), (1130, 570), (150, 570)], model="yolo26n.pt"
)

while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        break
    results = trackzone(im0)
    video_writer.write(results.plot_im)

cap.release()
video_writer.release()
cv2.destroyAllWindows()

Link to this sectionUltralytics TrackZoneを使用してビデオ処理用のゾーンポイントを設定するにはどうすればよいですか?#

Ultralytics TrackZoneでのビデオ処理用ゾーンポイントの設定はシンプルでカスタマイズ可能です。Pythonスクリプトを通じて直接ゾーンを定義および調整できるため、監視したいエリアを正確に制御できます。

# Define region points
region_points = [(150, 150), (1130, 150), (1130, 570), (150, 570)]

# Initialize trackzone
trackzone = solutions.TrackZone(
    show=True,  # display the output
    region=region_points,  # pass region points
)

TrackZoneはポイントを凸包に縮小することを念頭に置き、監視したいエリアの周囲に沿って順番にリストしてください。

Link to this sectionObjectCounterやRegionCounterではなく、TrackZoneを使うべきなのはどのような場合ですか?#

これら3つのソリューションはすべて領域を扱いますが、それぞれ異なる問いに答えるものです:

解決策用途一般的な出力
TrackZone単一の凸状ゾーン内でのオブジェクトトラッキングおよびライブ占有状況の監視トラッキングされたIDとゾーン内のtotal_tracks
ObjectCounter境界線を横切る、または領域に出入りするオブジェクトのカウント累積の入場数および退場数
RegionCounter1つ以上の任意の(非凸状を含む)領域内のオブジェクトカウント領域ごとのオブジェクト数

1つのエリア内での継続的なトラッキングが必要な場合はTrackZoneを、複数のゾーンや非凸状の形状が必要な場合はRegionCounterを選択してください。

コメント