Ultralytics YOLO27:
Get Started

Ultralytics YOLO26で駐車場管理システムを構築する#

駐車場管理システムとは何ですか?#

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



視聴: Ultralytics YOLO26 で駐車場管理システムを構築する方法 | リアルタイム駐車枠検出 🚗

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

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

実際の活用例#

駐車場管理システム駐車場管理システム
Ultralytics YOLO26による駐車場分析Ultralytics YOLO26による駐車場管理の俯瞰図
Ultralytics YOLO26による駐車場管理の空撮ビューUltralytics YOLO26による駐車場管理のトップビュー

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

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

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

ステップ1: 駐車場を管理する動画またはカメラストリームからフレームをキャプチャします。

ステップ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 Features の tcl/tk and IDLE チェックボックスをオンにします
  • MacOS: https://www.python.org/downloads/macos/ または brew install python-tk からPythonを再インストールします
from ultralytics import solutions

solutions.ParkingPtsSelection()

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

Ultralytics YOLO26のポイント選択デモ

ステップ4: 以下のコードを使って、駐車場管理ソリューションを実行できるようになりました。

Ultralytics YOLOによる駐車場管理
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))
video_writer = cv2.VideoWriter("parking management.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

# 駐車場管理オブジェクトを初期化
parkingmanager = solutions.ParkingManagement(
    model="yolo26n.pt",  # モデルファイルへのパス
    json_file="bounding_boxes.json",  # 駐車場アノテーションファイルへのパス
)

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

    results = parkingmanager(im0)

    # print(results)  # 出力にアクセス

    video_writer.write(results.plot_im)  # 処理済みフレームを書き込みます。

cap.release()
video_writer.release()
cv2.destroyAllWindows()  # 開いているすべてのウィンドウを破棄

ParkingManagementの引数#

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

引数種類デフォルト説明
modelstrNoneUltralytics YOLOモデルファイルへのパスです。
json_filestrNoneすべての駐車座標データを含むJSONファイルへのパスです。
line_widthint2Solutionが描画するボックス、キーポイント、カウント表示の線幅です。
verboseboolTrue各フレームの入力shape、クラス数、処理速度を記録するSolutionのログを有効にします。トラッキング呼び出し自体は常にログを出力しません。

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

引数種類デフォルト説明
trackerstr'tracktrack.yaml'使用するトラッキングアルゴリズムを指定します。組み込みのオプション:botsort.yaml、bytetrack.yaml、ocsort.yaml、deepocsort.yaml、fasttrack.yaml、tracktrack.yaml。
conffloat0.25検出の信頼度しきい値を設定します。値を低くすると、より多くの物体を追跡できますが、誤検出が含まれる可能性があります。
ioufloat0.7重複する検出をフィルタリングするためのIntersection over Union(IoU)しきい値を設定します。
classeslistNoneクラスインデックスで結果をフィルタリングします。たとえば、classes=[0, 2, 3]を指定すると、指定したクラスのみを追跡します。
devicestrNone推論に使用するデバイスを指定します(例:cpu、cuda:0、0)。モデル実行に使用するCPU、特定のGPU、その他の計算デバイスを選択できます。
imgszint or tuple640推論時の入力画像サイズです。正方形の場合は整数、または(height, width)のペアを指定します。形状はモデルのストライドに合わせて調整されます。
max_detint300トラッキング前にフレームごとに保持する検出の最大数です。混雑したシーンでソリューションが処理する物体数を制限します。
quantizeint or strNone推論精度:PyTorchおよびTorchScriptモデルでは16(FP16)または32/未設定(FP32)を使用します。他の形式では、アーティファクトとランタイムで選択された精度で計算されます。非推奨のhalfフラグに代わるものです。

さらに、次の可視化オプションにも対応しています。

引数種類デフォルト説明
showboolFalseTrueの場合、注釈付き画像または動画をウィンドウに表示します。開発やテスト中にすぐ視覚的なフィードバックを得るのに便利です。

よくある質問#

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

  • スマート駐車場にUltralytics YOLO26を使用すると、多くのメリットが得られます。

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

    1. 動画またはカメラストリームからフレームをキャプチャします。
    2. 提供されているコードを使って画像を選択するGUIを起動し、ポリゴンを描いて駐車スペースを定義します。
    3. ラベル付けしたデータをJSON形式で保存し、後続の処理に利用します。詳しい手順については、上記のポイント選択セクションをご確認ください。
  • 駐車場ごとの設定で最も重要なのは json_file です。ポイントアノテーターで作成した駐車領域のJSONファイルを指定すると、新しいレイアウトに合わせてソリューションを調整できます。さらに、その他の引数を使ってカスタマイズできます。model にカスタムトレーニング済みの検出器を指定する、検出対象を特定の車両 classes に限定する、conf と iou のしきい値を調整する、tracker を切り替える、line_width でフレーム上のラベルと占有状況の表示を拡大縮小する、または推論 device を選択できます。ゾーンベースの関連モニタリングについては、オブジェクトカウントガイドをご覧ください。

  • Ultralytics YOLO26は、駐車場管理に関するさまざまな実環境のアプリケーションで活用されています。具体例は次のとおりです。

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

コメント