Ultralytics YOLO27:

Ultralytics YOLO26 を使用して駐車管理システムを構築する#

駐車場管理システムとは?#

Ultralytics YOLO26で構築した駐車場管理システムは、車両をリアルタイムで検出して、どの駐車スペースが使用中または空いているかを追跡し、駐車場の利用状況をライブで報告します。YOLO26の物体検出とJSONで定義した駐車レイアウトを組み合わせることで、1つのビデオストリームまたはカメラ映像から駐車場全体を監視できます。



Watch: How to Build a Parking Management System with Ultralytics YOLO26 | Real-Time Spot Detection 🚗

駐車場管理システムのメリット#

  • 効率性: 駐車スペースの利用を最適化し、駐車場全体の混雑を緩和します。
  • 安全性とセキュリティ: 継続的な監視により、人や車両の安全性を高めます。
  • 排出量の削減: 交通の流れを管理して、駐車場内でのアイドリング時間と排出量を最小限に抑えます。

実際の用途#

駐車場管理システム駐車場管理システム
Ultralytics YOLO26を使用した駐車場の分析Ultralytics YOLO26を使用した駐車場の俯瞰表示
Ultralytics YOLO26を使用した駐車場管理の航空ビューUltralytics YOLO26を使用した駐車場管理のトップビュー

駐車場管理システムのコードワークフロー#

ポイントの選択が簡単になりました

駐車ポイントの選択は、駐車場管理システムにおける重要かつ複雑な作業です。Ultralyticsは、駐車場のエリアを定義できる「Parking slots annotator」ツールを提供することで、このプロセスを効率化します。定義したエリアは、後で追加処理に利用できます。

Step-1: 駐車場を管理したいビデオまたはカメラストリームからフレームをキャプチャします。

Step-2: 提供されているコードを使用してグラフィカルインターフェースを起動し、画像を選択して、マウスクリックで駐車領域の輪郭を描き、ポリゴンを作成します。

Ultralytics YOLOの駐車スロットアノテーター
`tkinter`のインストールに関する追加手順

通常、tkinterはPythonにあらかじめパッケージされています。ただし、含まれていない場合は、次の手順でインストールできます。

  • Linux: (Debian/Ubuntu): sudo apt install python3-tk
  • Fedora: sudo dnf install python3-tkinter
  • Arch: sudo pacman -S tk
  • Windows: Pythonを再インストールし、インストール中にOptional Featurestcl/tk and IDLEのチェックボックスを有効にします
  • MacOS: https://www.python.org/downloads/macos/からPythonを再インストールするか、brew install python-tkを使用します
from ultralytics import solutions

solutions.ParkingPtsSelection()

Step-3: ポリゴンで駐車エリアを定義したら、saveをクリックして、データを作業ディレクトリにbounding_boxes.jsonとして保存します。これは、下記の管理スクリプトが読み込むものと同じファイル名です。

Ultralytics YOLO26のポイント選択デモ

Step-4: 以下のコードで駐車場管理ソリューションを実行できます。

Ultralytics YOLOを使用した駐車場管理
import cv2

from ultralytics import solutions

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

# 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("parking management.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

# Initialize parking management object
parkingmanager = solutions.ParkingManagement(
    model="yolo26n.pt",  # path to model file
    json_file="bounding_boxes.json",  # path to parking annotations file
)

while cap.isOpened():
    ret, im0 = cap.read()
    if not ret:
        break

    results = parkingmanager(im0)

    # print(results)  # access the output

    video_writer.write(results.plot_im)  # write the processed frame.

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

ParkingManagementの引数#

以下にParkingManagementの引数を示します。

引数デフォルト説明
modelstrNoneUltralytics YOLOモデルファイルへのパスです。
json_filestrNoneすべての駐車座標データを含むJSONファイルへのパスです。
line_widthint2ソリューションが描画するボックス、キーポイント、カウントの線の太さです。
verboseboolTrue入力形状、クラス数、処理速度をフレームごとにログに記録する機能を有効にします。トラッキング処理自体は常にサイレントです。

ParkingManagementソリューションでは、複数のtrackパラメーターを使用できます。

引数デフォルト説明
trackerstr'botsort.yaml'使用するトラッキングアルゴリズムを指定します。組み込みオプション:botsort.yamlbytetrack.yamlocsort.yamldeepocsort.yamlfasttrack.yamltracktrack.yaml
conffloat0.25検出の信頼度しきい値を設定します。値を下げるとより多くのオブジェクトを追跡できますが、誤検出が含まれる可能性があります。
ioufloat0.7重複する検出結果をフィルタリングするためのIntersection over Union(IoU)しきい値を設定します。
classeslistNoneクラスインデックスで結果をフィルタリングします。たとえば、classes=[0, 2, 3]は指定されたクラスのみを追跡します。
devicestrNone推論に使用するデバイスを指定します(例:cpucuda:00)。CPU、特定のGPU、その他の計算デバイスから、モデルの実行に使用するものを選択できます。
imgszint or tuple640推論対象の画像サイズ:正方形の場合は整数、または (height, width) のペアです。形状はモデルのストライドに合わせて調整されます。
max_detint300トラッキング前にフレームごとに保持される検出の最大数。高密度なシーンにおいてソリューションが処理するオブジェクトの数を制限します。
quantizeint or strNone推論精度:PyTorchおよびTorchScriptモデルの場合は 16 (FP16)または 32 /未設定(FP32);その他のフォーマットは、その成果物とランタイムが選択する精度で計算を行います。非推奨となった half フラグに置き換わるものです。

さらに、次の可視化オプションがサポートされています。

引数デフォルト説明
showboolFalseTrueの場合、注釈付きの画像または動画をウィンドウに表示します。開発やテスト中の即時の視覚的フィードバックに役立ちます。

FAQ#

  • Ultralytics YOLO26は、駐車場システム向けに**リアルタイムの車両検出**と監視を提供します。これにより、駐車スペースの利用を最適化し、混雑を緩和し、継続的な監視によって安全性を高めます。ライブカメラ映像で実行することで、交通の流れの管理や車両のアイドリング時間の最小化にも役立ちます。完全なセットアップについては、駐車場管理のコードワークフローを参照してください。

  • スマートパーキングにUltralytics YOLO26を使用すると、次のような多くのメリットがあります。

    • 効率性: 駐車スペースの利用を最適化し、混雑を緩和します。
    • 安全性とセキュリティ: 監視を強化し、車両や歩行者の安全を確保します。
    • 環境への影響: 車両のアイドリング時間を最小限に抑えることで、排出量の削減に役立ちます。その他のメリットについては、駐車場管理システムのメリットのセクションをご覧ください。
  • Ultralytics YOLO26では、駐車スペースを簡単に定義できます。

    1. ビデオまたはカメラストリームからフレームをキャプチャします。
    2. 提供されているコードを使用してGUIを起動し、画像を選択してポリゴンを描画し、駐車スペースを定義します。
    3. ラベル付けしたデータをJSON形式で保存して、さらに処理できるようにします。詳しい手順については、上記のポイント選択セクションを確認してください。
  • 駐車場固有の設定として最も重要なのはjson_fileです。ポイントアノテーターで作成した駐車領域のJSONを指定することで、新しいレイアウトに合わせてソリューションを適応できます。その他の引数を使ってさらに調整することもできます。modelにカスタム学習した検出器を指定し、検出対象を特定の車両classesに限定し、confiouのしきい値を調整し、trackerを切り替え、line_widthでフレーム上のラベルと利用状況表示のサイズを変更し、推論のdeviceを選択できます。関連するゾーンベースの監視については、物体カウントガイドを参照してください。

  • Ultralytics YOLO26は、次のような駐車場管理のさまざまな実世界の用途で活用されています。

    • 駐車スペース検出: 空きスペースと使用中のスペースを正確に識別します。
    • 監視: リアルタイム監視によってセキュリティを強化します。
    • 交通の流れの管理: 効率的な交通処理により、アイドリング時間と混雑を削減します。これらの用途を紹介する画像は、実世界での応用例でご覧いただけます。

コメント