Ultralytics YOLO26を使用したTrackZone#
TrackZoneとは何ですか?#
TrackZoneは、フレーム全体ではなく、フレーム内の指定された領域内のオブジェクトのモニタリングに特化しています。Ultralytics YOLO26をベースにしており、動画やライブカメラフィード内のゾーン特化型オブジェクト検出とトラッキングを統合します。YOLO26の高度なアルゴリズムとディープラーニング技術により、リアルタイム用途に最適な選択肢となっており、群衆監視やセキュリティ監視などのアプリケーションにおいて、正確かつ効率的なオブジェクトトラッキングを提供します。
Watch: How to Track Objects in Region using Ultralytics YOLO26 | TrackZone 🚀
ゾーン内オブジェクト追跡(TrackZone)の利点#
- ターゲット分析: 特定のゾーン内でオブジェクトを追跡することで、より焦点を絞ったインサイトが得られ、入口や制限区域など、関心のある領域の正確な監視と分析が可能になります。
- ダウンストリームの負荷軽減: TrackZoneはゾーン外のオブジェクトを無視することで無関係な検出結果を除去し、その上で構築するロジックにおいてカウント、ログ記録、アラートが必要なオブジェクトの数を減らします。検出はゾーンの狭いクロップではなく、フルサイズのマスクされたフレームに対して実行されるため、モデルの推論速度が向上するのではなく、よりクリーンで焦点の絞られた出力が得られることが利点となります。
- セキュリティの強化: ゾーンベースの追跡は、重要な領域を監視することでサーベイランスを改善し、異常な活動やセキュリティ侵害の早期検知を支援します。
- スケーラブルなソリューション: 特定のゾーンに集中できるため、TrackZoneは小売スペースから産業環境まで、さまざまなシナリオに適応可能であり、シームレスな統合とスケーラビリティを保証します。
現実世界の応用例#
| 農業 | 交通 |
|---|---|
![]() | ![]() |
| Ultralytics YOLO26を使用したフィールドでの植物追跡 | Ultralytics YOLO26を使用した道路上での車両追跡 |
# 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)]のデフォルトゾーンが使用されます。
TrackZoneの引数#
以下はTrackZoneの引数を示す表です。
| 引数 | タイプ | デフォルト | 説明 |
|---|---|---|---|
model | str | None | Ultralytics YOLOモデルファイルへのパス。 |
region | list または dict | None | 関心領域を定義するポイント。(x, y) タプルのリスト、または複数領域の領域名をポイントリストにマッピングする辞書(RegionCounter のみ)のいずれかを指定します。None の場合、領域を必要とするソリューションは事前定義されたデフォルトにフォールバックします。 |
line_width | int | 2 | ソリューションが描画するボックス、キーポイント、およびカウントの線の太さ。 |
verbose | bool | True | 入力形状、クラス数、および処理速度のフレームごとのログ出力をソリューションで有効にします。トラッキング呼び出し自体は常にサイレントです。 |
TrackZoneソリューションには、trackパラメータのサポートが含まれています。
| 引数 | タイプ | デフォルト | 説明 |
|---|---|---|---|
tracker | str | 'botsort.yaml' | 使用するトラッキングアルゴリズムを指定します。ビルトインオプション: botsort.yaml、bytetrack.yaml、ocsort.yaml、deepocsort.yaml、fasttrack.yaml、tracktrack.yaml。 |
conf | float | 0.25 | 検出の信頼度しきい値を設定します。低い値を設定するとより多くの物体を追跡できますが、誤検知が含まれる可能性があります。 |
iou | float | 0.7 | 重なり合う検出をフィルタリングするためのIntersection over Union (IoU) 閾値を設定します。 |
classes | list | None | クラスインデックスによって結果をフィルターします。たとえば、classes=[0, 2, 3]は指定されたクラスのみを追跡します。 |
device | str | None | 推論用のデバイスを指定します(例: cpu、cuda:0、または0)。ユーザーはモデルの実行にCPU、特定のGPU、またはその他の計算デバイスを選択できます。 |
さらに、以下の可視化オプションも利用可能です:
| 引数 | タイプ | デフォルト | 説明 |
|---|---|---|---|
show | bool | False | True の場合、注釈付きの画像または動画をウィンドウに表示します。開発やテスト中の即座な視覚的フィードバックに役立ちます。 |
show_conf | bool | True | 各検出の信頼度スコアをラベルと一緒に表示します。各検出に対するモデルの確信度を把握できます。 |
show_labels | bool | True | 視覚的出力において各検出のラベルを表示します。検出されたオブジェクトを即座に理解するのに役立ちます。 |
ゾーン内のオブジェクトをカウントする#
トラッカーへのすべての呼び出しは、ゾーン内で現在追跡されているオブジェクトの数を保持するtotal_tracks属性を持つSolutionResultsオブジェクトを返します。例えば、エントリーポイントや制限区域の混雑度を記録するために、ライブ占有率を監視するためにフレームごとにこれを読み取ります。
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()よくある質問 (FAQ)#
Ultralytics YOLO26を使用すれば、ビデオフレームの定義された領域やゾーン内でのオブジェクト追跡は簡単です。以下に提供するコマンドを使用して追跡を開始してください。このアプローチにより、効率的な分析と正確な結果が保証され、サーベイランス、群衆管理、またはゾーン追跡が必要なあらゆるシナリオに最適です。
yolo solutions trackzone source="path/to/video.mp4" show=Trueわずか数行のコードで特定のゾーンにおけるオブジェクト追跡を設定できるため、プロジェクトへの統合が容易になります。
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()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はポイントを凸包に縮小するため、監視したいエリアの周囲に沿った順番でリストアップしてください。これら3つのソリューションはすべて領域を扱いますが、それぞれ異なる問いに答えるものです:
解決策 用途 一般的な出力 TrackZone 単一の凸状ゾーン内でのオブジェクトトラッキングおよびライブ占有状況の監視 追跡されたIDとゾーンの total_tracksObjectCounter 境界線を横切る、または領域に出入りするオブジェクトのカウント 累積の入場数および退場数 RegionCounter 1つ以上の任意の(非凸状を含む)領域内のオブジェクトカウント 領域ごとのオブジェクト数 1つのエリア内で継続的なトラッキングを行いたい場合はTrackZoneを選択し、複数のゾーンや非凸形状が必要な場合はRegionCounterを選択してください。

