Link to this sectionUltralytics YOLO26を使用したTrackZone#
Link to this sectionTrackZoneとは何ですか?#
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を使用した道路上での車両追跡 |
# 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の引数を示すテーブルは以下の通りです:
| 引数 | タイプ | デフォルト | 説明 |
|---|---|---|---|
model | str | None | Ultralytics YOLOモデルファイルへのパス。 |
region | list または dict | None | 関心領域を定義するポイントです。(x, y) タプルのリスト、または(RegionCounter の場合のみ)領域名をポイントリストにマッピングする辞書のいずれかです。None の場合、領域を必要とするソリューションは定義済みのデフォルトにフォールバックします。 |
TrackZoneソリューションには、trackパラメータのサポートが含まれています:
| 引数 | タイプ | デフォルト | 説明 |
|---|---|---|---|
tracker | str | 'botsort.yaml' | 使用するトラッキングアルゴリズムを指定します。組み込みのオプションは、botsort.yaml、bytetrack.yaml、ocsort.yaml、deepocsort.yaml、fasttrack.yaml、tracktrack.yamlです。 |
conf | float | 0.1 | 検出の信頼度しきい値を設定します。低い値を設定するとより多くの物体を追跡できますが、誤検知が含まれる可能性があります。 |
iou | float | 0.7 | 重なり合う検出をフィルタリングするためのIntersection over Union(IoU)しきい値を設定します。 |
classes | list | None | クラスインデックスで結果をフィルタリングします。例えば、classes=[0, 2, 3]と設定すると、指定されたクラスのみを追跡します。 |
verbose | bool | True | 追跡結果の表示を制御し、追跡された物体の視覚的な出力を行います。 |
device | str | None | 推論に使用するデバイスを指定します(例:cpu、cuda:0、または 0)。CPU、特定のGPU、その他の演算デバイスをモデル実行用に選択できます。 |
さらに、以下の可視化オプションも利用可能です:
| 引数 | タイプ | デフォルト | 説明 |
|---|---|---|---|
show | bool | False | Trueの場合、注釈付きの画像や動画をウィンドウに表示します。開発やテスト中の即時的な視覚フィードバックに役立ちます。 |
line_width | int or None | None | バウンディングボックスの線の太さを指定します。Noneの場合、線の太さは画像サイズに基づいて自動的に調整されます。明瞭さのための視覚的なカスタマイズが可能です。 |
show_conf | bool | True | 各検出の信頼度スコアをラベルと一緒に表示します。各検出に対するモデルの確信度を把握できます。 |
show_labels | bool | True | 視覚的出力において各検出のラベルを表示します。検出されたオブジェクトを即座に理解するのに役立ちます。 |
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=TrueLink 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 | 境界線を横切る、または領域に出入りするオブジェクトのカウント | 累積の入場数および退場数 |
| RegionCounter | 1つ以上の任意の(非凸状を含む)領域内のオブジェクトカウント | 領域ごとのオブジェクト数 |
1つのエリア内での継続的なトラッキングが必要な場合はTrackZoneを、複数のゾーンや非凸状の形状が必要な場合はRegionCounterを選択してください。