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を有効にして、オーバーレイがビデオフィードと一致しているかを確認できるようにしてください。
TrackZoneの引数
TrackZoneの引数一覧は以下の通りです。
| 引数 | タイプ | デフォルト | 説明 |
|---|---|---|---|
model | str | None | Ultralytics YOLO モデルファイルへのパス。 |
region | list | '[(20, 400), (1260, 400)]' | カウント対象となる領域を定義する点のリスト。 |
TrackZoneソリューションにはtrackパラメータのサポートが含まれています。
| 引数 | タイプ | デフォルト | 説明 |
|---|---|---|---|
tracker | str | 'botsort.yaml' | 使用するトラッキングアルゴリズムを指定します(例:bytetrack.yamlやbotsort.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 | 視覚的出力において、各検出結果にラベルを表示します。検出されたオブジェクトの即時理解を可能にします。 |
FAQ
Ultralytics YOLO26を使用して、ビデオフレームの特定のエリアやゾーン内のオブジェクトを追跡するにはどうすればよいですか?
Ultralytics YOLO26を使用すれば、ビデオフレームの定義されたエリアやゾーン内のオブジェクト追跡は簡単です。以下に示すコマンドを使用して追跡を開始するだけです。このアプローチにより、効率的な分析と正確な結果が保証され、監視、群衆管理、またはゾーンベースの追跡を必要とするあらゆるシナリオに最適です。
yolo solutions trackzone source="path/to/video.mp4" show=TruePythonでUltralytics YOLO26を使用して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))
# Define region points
region_points = [(150, 150), (1130, 150), (1130, 570), (150, 570)]
# Video writer
video_writer = cv2.VideoWriter("object_counting_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
# Init trackzone (object tracking in zones, not complete frame)
trackzone = solutions.TrackZone(
show=True, # display the output
region=region_points, # pass region points
model="yolo26n.pt",
)
# Process video
while cap.isOpened():
success, im0 = cap.read()
if not success:
print("Video frame is empty or video processing has been successfully completed.")
break
results = trackzone(im0)
video_writer.write(results.plot_im)
cap.release()
video_writer.release()
cv2.destroyAllWindows()Ultralytics 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
)