コンテンツにスキップ

Ultralytics YOLO11を使用したTrackZone

ColabでTrackZoneを開く

TrackZoneとは何ですか?

TrackZoneは、フレーム全体ではなく、フレームの指定された領域内のオブジェクトの監視を専門としています。Ultralytics YOLO11上に構築されており、ビデオおよびライブカメラフィード用に、ゾーン内でのオブジェクト検出と追跡を特に統合します。YOLO11の高度なアルゴリズムと深層学習テクノロジーにより、群集監視や監視などのアプリケーションで、正確かつ効率的なオブジェクト追跡を提供する、リアルタイムのユースケースに最適です。



見る: 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 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 None or int None バウンディングボックスの線の太さを指定します。もし None場合、線の太さは画像サイズに基づいて自動的に調整されます。明確にするための視覚的なカスタマイズを提供します。
show_conf bool True ラベルとともに、検出ごとの信頼度スコアを表示します。各検出に対するモデルの確実性についての洞察が得られます。
show_labels bool True 検出された各オブジェクトのラベルを視覚的な出力に表示します。検出されたオブジェクトをすぐに理解できます。

よくある質問

Ultralytics YOLO11 を使用して、ビデオフレームの特定の領域またはゾーン内のオブジェクトを追跡するにはどうすればよいですか?

Ultralytics YOLO11を使用すると、ビデオフレームの定義されたエリアまたはゾーン内のオブジェクトの追跡は簡単です。以下のコマンドを使用して、追跡を開始するだけです。このアプローチにより、効率的な分析と正確な結果が保証され、監視、群集管理、またはゾーン追跡を必要とするあらゆるシナリオなどのアプリケーションに最適です。

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

Ultralytics YOLO11 で 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))

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


📅 9か月前に作成 ✏️ 4か月前に更新

コメント