コンテンツへスキップ

Ultralytics YOLOv8 🚀を使った駐車場管理

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

による駐車場管理 Ultralytics YOLOv8YOLOv8 、リアルタイムで車両を検知し、駐車場の稼働状況を把握することで、駐車場管理を改善することができます。

駐車場管理システムの利点

  • 効率:駐車場管理は駐車スペースの利用を最適化し、混雑を緩和する。
  • 安全性とセキュリティ YOLOv8 を利用した駐車場管理は、監視とセキュリティ対策により、人と車の両方の安全性を向上させる。
  • 排出ガスの削減:YOLOv8 を利用した駐車場管理は、交通の流れを管理し、駐車場でのアイドル時間と排出ガスを最小限に抑える。

実世界での応用

駐車場管理システム 駐車場管理システム
駐車場分析Ultralytics YOLOv8 駐車場管理トップビューUltralytics YOLOv8
駐車場管理Ultralytics YOLOv8 駐車場管理 トップビューUltralytics YOLOv8

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

ポイントの選択

ポイント選択が簡単に

Ultralytics 、駐車場エリアを定義できるツールを提供することで、このプロセスを合理化し、後で追加処理に利用することができます。

  • 駐車場を管理したいビデオまたはカメラのストリームからフレームをキャプチャします。
  • 提供されたコードを使用してグラフィカル・インターフェースを起動し、画像を選択してマウス・クリックで駐車領域のアウトライン化を開始し、ポリゴンを作成することができます。

画像サイズ

最大画像サイズ1920 * 1080対応

from ultralytics.solutions.parking_management import ParkingPtsSelection, tk
root = tk.Tk()
ParkingPtsSelection(root)
root.mainloop()
  • 駐車エリアをポリゴンで定義したら save をクリックすると、作業ディレクトリにデータの入ったJSONファイルが保存される。

Ultralytics YOLOv8 ポイント選択デモ

Python 駐車場管理規定

YOLOv8 例

import cv2
from ultralytics.solutions.parking_management import ParkingManagement

# Path to json file, that created with above point selection app
polygon_json_path = "bounding_boxes.json"

# Video capture
cap = cv2.VideoCapture("Path/to/video/file.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
video_writer = cv2.VideoWriter("parking management.avi", 
                                cv2.VideoWriter_fourcc(*'mp4v'), fps, (w, h))

# Initialize parking management object
management = ParkingManagement(model_path="yolov8n.pt")

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

    json_data = management.parking_regions_extraction(polygon_json_path)
    results = management.model.track(im0, persist=True, show=False)

    if results[0].boxes.id is not None:
        boxes = results[0].boxes.xyxy.cpu().tolist()
        clss = results[0].boxes.cls.cpu().tolist()
        management.process_data(json_data, im0, boxes, clss)

    management.display_frames(im0)
    video_writer.write(im0)

cap.release()
video_writer.release()
cv2.destroyAllWindows()

オプションの引数 ParkingManagement()

名称 タイプ デフォルト 説明
occupied_region_color RGB Color (0, 255, 0) 駐車スペース占有地域の色
available_region_color RGB Color (0, 0, 255) 駐車スペースあり 地域色
margin int 10 複数のクラス数のテキスト表示のギャップ
txt_color RGB Color (255, 255, 255) オブジェクト・カウント・テキストの前景色
bg_color RGB Color (255, 255, 255) テキストの背景色の後ろの長方形

論争 model.track

名称 タイプ デフォルト 説明
source im0 None 画像またはビデオのソース・ディレクトリ
persist bool False フレーム間のトラックの持続
tracker str botsort.yaml トラッキングメソッド「bytetrack」または「botsort
conf float 0.3 信頼閾値
iou float 0.5 借用書のしきい値
classes list None つまり、class=0、またはclass=[0,2,3]。
verbose bool True 物体追跡結果を表示する


作成 2024-04-29 更新 2024-05-01
著者RizwanMunawar(2)

コメント