Ultralytics YOLOv8 モデルは駐車場管理システムをよりスマートにします。駐車スペースをリアルタイムで管理する方法を学び、独自のスマートパーキングソリューションを作りましょう。
特に遅刻しそうなとき、駐車場を探してぐるぐる運転するのはストレスがたまるものだ。駐車場所を探す従来の方法は、面倒で時間がかかる。しかし、人工知能(AI)とコンピューター・ビジョンによって駆動される駐車場管理システムは、物事をよりシンプルにすることができる。駐車場の空き状況をより予測しやすくし、交通渋滞を減らすことができる。
この記事では、駐車場管理システムを人工知能とコンピューター・ビジョンでアップグレードする方法を学びます。また、ステップ・バイ・ステップのコーディング例で、コンピュータ・ビジョン対応の駐車場管理システムを作成するために Ultralytics YOLOv8モデルを使用して、コンピュータビジョン対応の駐車場管理システムを作成する方法をステップバイステップのコーディング例で説明します。さっそく始めましょう!
AIを活用したスマート駐車場管理システムについて説明する前に、従来の駐車場管理システムの問題点を見てみよう。
従来のシステムの大きな問題は、駐車場が混雑していることである。スペースを探す時間が無駄になるだけでなく、過密状態は過剰な燃料消費と大気汚染につながる。もうひとつの問題はドライバーのストレスだ。ある調査によると、約27%の人が駐車場探しに少なくとも30分は費やしている。また、43%の人が駐車場所をめぐって見知らぬ人と口論になったことがあると認めている。
AIと統合された駐車場は、従来の駐車場管理システムが抱える問題を解決することを目指している。Ultralytics YOLOv8 モデルのようなコンピュータ・ビジョン・モデルと高解像度カメラにより、駐車場を監視し、空き駐車スペースや占有駐車スペースの最新情報をリアルタイムで得ることができる。
どのように機能するのか? コンピュータ・ビジョン・モデルは、高解像度カメラからの映像を解析して車両を検出し、その動きを追跡し、利用可能な駐車スポットを特定することができる。Ultralytics YOLOv8 モデルは、物体検出や 物体追跡などのコンピュータビジョンタスクをサポートし、ビデオフィード内の車両を正確に識別・分類することができます。検出された車両の位置を事前に定義された駐車スペースと比較することで、システムは駐車スペースが埋まっているかどうかを判断することができる。
ビジョンベースのシステムから得られる駐車場の空き状況に関する情報は、さまざまなアプリケーションに統合・拡張することができる:
駐車場の空き状況を把握することは、多くのメリットをもたらす。リアルタイムで更新される情報は、ドライバーが空いているスペースに直接行くのに役立ち、交通の流れをスムーズにし、駐車場探しのストレスを軽減する。経営者にとっては、スペースがどのように利用されているかを理解することで、駐車場をよりよく管理し、リアルタイムのモニタリングでセキュリティを向上させ、あらゆるインシデントに迅速に対応することができる。
駐車場機能を自動化することで、手作業の必要性を減らし、コストを削減する。AIシステムを使えば、モバイルアプリやウェブアプリを通じて駐車場の予約が容易になり、ドライバーは空き状況の通知を受け取ることができるため、時間とコストの節約につながる。都市計画担当者はこのデータを使って、より良い道路レイアウトを設計し、効果的な駐車規制を実施し、都市をより効率的でナビゲートしやすくする新しい駐車場を開発することができる。
駐車場管理とその利点について理解したところで、ビジョンベースの駐車場管理システムを構築する方法について説明しよう。ここでは YOLOv8 モデルを使用して、車両を検出し、駐車スペースを監視し、稼働状況を判断します。
この例では、駐車場のビデオまたはカメラストリームを使用できます。この例でサポートされる最大画像サイズは1920 * 1080であることに注意してください。始める前に、このシステムは正確な車両検出と事前に定義された駐車スペース座標に依存していることを覚えておいてください。
カメラの較正と環境要因は、空間検出と占有状態の精度に影響する可能性があります。また、処理速度と精度は、GPU のパフォーマンスによって異なる場合があります。
ステップ1: Ultralytics パッケージのインストールから始めよう。コマンドプロンプトまたはターミナルを開き、以下のコマンドを実行する。
1<pre style="width: 75%;">
2<code>
3pip install ultralytics
4</code>
5</pre>
インストールプロセスの詳細な手順とベストプラクティスについては、Ultralytics インストールガイドを 参照してください。YOLOv8 に必要なパッケージのインストール中に問題が発生した場合は、よくある問題ガイドに解決策と役立つヒントが記載されています。
ステップ2:映像の中で興味のある場所をマークできるように、駐車スポットを事前に選択する必要があります。このコードを実行して、駐車スポットを事前に選択するためのユーザーインターフェイスを開きます。
1<pre style="width: 75%;">
2<code>
3from ultralytics import solutions
4solutions.ParkingPtsSelection()
5</code>
6</pre>
下の図のように、このコードを実行するとユーザー・インターフェースが開きます。駐車場の入力ビデオのフレームまたはスクリーンショットを撮ってアップロードしてください。駐車スポットの周りにバウンディングボックスを描画した後、保存オプションをクリックします。選択した駐車場情報は、「bounding_boxes.json」という名前のJSONファイルに保存されます。
ステップ3:さあ、駐車場管理のメインコードに飛び込みましょう。必要なライブラリをすべてインポートし、ステップ2で作成したJSONファイルを初期化することから始めます。
1<pre style="width: 75%;">
2<code>
3import cv2
4from ultralytics import solutions
5polygon_json_path = "bounding_boxes.json"
6</code>
7</pre>
ステップ4:入力ビデオファイルを読み込むVideoCaptureオブジェクトを作成し、ビデオファイルが正常に開かれることを確認する。
1<pre style="width: 75%;">
2<code>
3cap = cv2.VideoCapture("Path/to/video/file.mp4")
4assert cap.isOpened(), "Error reading video file"
5</code>
6</pre>
ステップ5:幅、高さ、フレーム/秒など、必要なビデオ・プロパティをすべて初期化する。
1<pre style="width: 75%;">
2<code>
3w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH,
4cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
5</code>
6</pre>
ステップ6:次に、VideoWriterオブジェクトを作成して、最終的に処理されたビデオファイルを保存します。
1<pre style="width: 75%;">
2<code>
3video_writer = cv2.VideoWriter("parking management.avi",
4cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
5</code>
6</pre>
ステップ7:ここで、駐車スポット検出のためのUltralytics YOLOv8 モデルで駐車管理システムを初期化する。
1<pre style="width: 80%;">
2<code>
3management = solutions.ParkingManagement(model_path="yolov8n.pt")
4</code>
5</pre>
ステップ8:次に、ビデオファイルを1フレームずつ処理していく。読み込まれたフレームがなければ、ループは切れる。
1<pre style="width: 75%;">
2<code>
3while cap.isOpened():
4 ret, im0 = cap.read()
5 if not ret:
6 break
7</code>
8</pre>
ステップ9:ループの中で、JSONファイルから事前に選択された駐車領域を抽出し、YOLOv8 モデルを使ってフレーム内のオブジェクトを追跡する。
1<pre style="width: 85%;">
2<code>
3json_data = management.parking_regions_extraction(polygon_json_path)
4results = management.model.track(im0, persist=True, show=False)
5</code>
6</pre>
ステップ10: このループの部分ではトラッキング結果を処理し、検出されたオブジェクトのバウンディングボックス座標とクラスラベルを取得します。
1<pre style="width: 75%;">
2<code>
3if results[0].boxes.id is not None:
4 boxes = results[0].boxes.xyxy.cpu().tolist()
5 clss = results[0].boxes.cls.cpu().tolist()
6 management.process_data(json_data, im0, boxes, clss)
7</code>
8</pre>
9
ステップ11:ループの最後の部分では、現在のフレームを注釈付きで表示し、処理されたフレームを出力ビデオファイル"parking management.avi "に書き込む。
1<pre style="width: 75%;">
2<code>
3management.display_frames(im0)
4video_writer.write(im0)
5</code>
6</pre>
ステップ12:最後に、VideoCaptureオブジェクトとVideoWriterオブジェクトを解放し、ウィンドウを破棄します。
1<pre style="width: 75%;">
2<code>
3cap.release()
4video_writer.release()
5cv2.destroyAllWindows()
6</code>
7</pre>
ステップ13:スクリプトを保存します。ターミナルまたはコマンドプロンプトで作業している場合は、次のコマンドを使用してスクリプトを実行します:
1<pre style="width: 75%;">
2<code>
3python your_script_name.py
4</code>
5</pre>
コードが正常に実行されると、出力ビデオファイルは次のようになります:
コードについてもっと知りたい方は、 Ultralytics' 公式ドキュメントを自由にチェックしてほしい。
インテリジェント・パーキング・システムは、ドライバーと企業の双方に多くの利点をもたらす。しかし、このようなソリューションを導入する前に考慮すべき課題もいくつかある。そのいくつかを見てみよう。
これからの革新的な駐車場管理は、AI、自動運転車、バーチャルリアリティなどの最先端技術を駆使して、駐車場全体の体験を向上させ、持続可能性をサポートすることにある。これらのシステムと統合されれば、自動運転車は人間の干渉を受けずに駐車場所までナビゲートし、駐車することができるようになる。これらのシステムは、企業がより多くの駐車場を満車にし、複数のアプリやウェブサイトでサービスを宣伝するのにも役立つ。また、駐車場を探して運転するドライバーから排出される二酸化炭素の数も減らすことができる。
AIモデル Ultralytics YOLOv8やコンピュータ・ビジョンが駐車場を変えます。 駐車場が一変し、駐車場を探し回る時間が劇的に短縮され、時間の節約と排気ガスの削減につながります。 これらのスマート駐車場管理システムは、混雑、違法駐車、ドライバーの不満といった一般的な問題に取り組む。初期投資はかかるが、長期的なメリットは大きい。スマートパーキングに投資することは、持続可能な都市を作り、誰にとってもスムーズな駐車体験を実現するための鍵となる。
AIについてもっと知りたいですか? 私たちのコミュニティとつながりましょう! GitHub リポジトリ では、 ヘルスケア や 農業などのさまざまな業界で AI を使用して革新的なソリューションを作成している方法の詳細をご覧ください。私たちと一緒に協力し、革新し、学びましょう!🚀