Ultralytics YOLO26を使用したTrackZone
TrackZoneとは何ですか?
TrackZoneは、フレーム全体ではなく、フレーム内の指定された領域でオブジェクトを監視することに特化しています。Ultralytics YOLO26をベースにしており、ビデオやライブカメラフィードのゾーン内でオブジェクトのdetectとtrackを統合します。YOLO26の高度なアルゴリズムとディープラーニング技術により、リアルタイムのユースケースに最適な選択肢となり、群衆監視や監視などのアプリケーションで正確かつ効率的なオブジェクトtrackを提供します。
見る: Ultralytics YOLO26を使用して領域内のオブジェクトをtrackする方法 | TrackZone 🚀
ゾーン内のオブジェクト追跡(TrackZone)の利点
- 対象を絞った分析: 特定のゾーン内のオブジェクトを追跡することで、より焦点を絞った洞察が可能になり、 प्रवेशポイントや制限区域など、関心のある領域の正確な監視と分析が可能になります。
- 効率の向上: TrackZoneは、追跡範囲を定義されたゾーンに絞り込むことで、計算のオーバーヘッドを削減し、より高速な処理と最適なパフォーマンスを保証します。
- セキュリティの強化: ゾーン追跡は、重要な領域を監視することにより、監視を改善し、異常な活動やセキュリティ侵害の早期検出を支援します。
- スケーラブルなソリューション: 特定のゾーンに焦点を当てる機能により、TrackZoneは小売スペースから産業環境まで、さまざまなシナリオに適応でき、シームレスな統合とスケーラビリティを保証します。
現実世界のアプリケーション
| 農業 | 輸送 |
|---|---|
| Ultralytics YOLO26を使用した圃場での植物track | Ultralytics YOLO26を使用した道路上の車両track |
Ultralytics YOLOを使用したTrackZone
# 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 を設定中に有効にしておくことで、オーバーレイがビデオフィードと一致することを確認できます。
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="yolo26n.pt", # use any model that Ultralytics supports, e.g., 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.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 | 検出された各オブジェクトのラベルを視覚的な出力に表示します。検出されたオブジェクトをすぐに理解できます。 |
よくある質問
Ultralytics YOLO26を使用して、ビデオフレームの特定の領域またはゾーン内のオブジェクトをtrackするにはどうすればよいですか?
Ultralytics YOLO26を使用すると、ビデオフレームの定義された領域またはゾーン内のオブジェクトをtrackすることが簡単に行えます。以下のコマンドを使用するだけで、trackを開始できます。このアプローチは効率的な分析と正確な結果を保証し、監視、群衆管理、またはゾーンtrackを必要とするあらゆるシナリオに最適です。
yolo solutions trackzone source="path/to/video.mp4" show=True
Ultralytics YOLO26で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="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
)