コンテンツへスキップ

トラックゾーンUltralytics YOLO11

ColabでTrackZoneを開く

TrackZoneとは?

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



見るんだ: Ultralytics YOLO11 使用したリージョン内のオブジェクトのトラッキング方法 🚀 TrackZone

ゾーン内物体追跡(TrackZone)の利点

  • ターゲット分析:特定のゾーン内の物体を追跡することで、より焦点を絞った洞察が可能になり、入口や制限区域など、関心のあるエリアの正確な監視と分析が可能になります。
  • 効率性の向上:トラッキング範囲を定義されたゾーンに絞ることで、TrackZoneは計算オーバーヘッドを削減し、より高速な処理と最適なパフォーマンスを保証します。
  • セキュリティ強化:ゾーン追跡は、重要なエリアを監視することで監視を強化し、異常な活動やセキュリティ侵害の早期発見に役立ちます。
  • スケーラブルなソリューション:TrackZoneは、特定のゾーンに焦点を当てることができるため、小売スペースから産業環境まで、さまざまなシナリオに適応し、シームレスな統合と拡張性を保証します。

実世界での応用

農業 交通
フィールドでの植物追跡Ultralytics YOLO11 車両追跡Ultralytics YOLO11
フィールドでの植物追跡Ultralytics YOLO11 車両追跡Ultralytics YOLO11

Ultralytics YOLO使用したTrackZone

# Run a trackzone example
yolo solutions trackzone show=True

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

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

from ultralytics import solutions

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

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

# Video writer
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))

# Init trackzone (object tracking in zones, not complete frame)
trackzone = solutions.TrackZone(
    show=True,  # display the output
    region=region_points,  # pass region points
    model="yolo11n.pt",  # use any model that Ultralytics support, i.e. YOLOv9, YOLOv10
    # line_width=2,  # adjust the line width for bounding boxes and text display
)

# Process video
while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        print("Video frame is empty or processing is complete.")
        break

    results = trackzone(im0)

    # print(results)  # access the output

    video_writer.write(results.plot_im)  # write the video file

cap.release()
video_writer.release()
cv2.destroyAllWindows()  # destroy all opened windows

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.3 検出の信頼しきい値を設定します。低い値ではより多くのオブジェクトを追跡できますが、誤検出を含む可能性があります。
iou float 0.5 重複検出をフィルタリングするためのIoU(Intersection over Union)しきい値を設定します。
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 None or int None バウンディングボックスの線幅を指定します。もし None線幅は画像サイズに応じて自動的に調整されます。視覚的にわかりやすくカスタマイズできます。

よくあるご質問

Ultralytics YOLO11 を使って、ビデオフレームの特定のエリアやゾーン内のオブジェクトを追跡するには?

Ultralytics YOLO11 を使えば、ビデオフレームの定義されたエリアやゾーン内のオブジェクトを簡単にトラッキングすることができます。トラッキングを開始するには、以下のコマンドを使用します。このアプローチは、効率的な分析と正確な結果を保証し、監視、群衆管理、またはゾーントラッキングを必要とするシナリオなどのアプリケーションに最適です。

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

Ultralytics YOLO11 で、TrackZoneをPython で使用するにはどうすればいいですか?

わずか数行のコードで、特定のゾーンにオブジェクト・トラッキングを設定することができ、プロジェクトに簡単に組み込むことができます。

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="yolo11n.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
)
📅作成:3ヶ月前 ✏️更新 5日前

コメント