自動運転における3つの重要なタスクである「交通物体検出、運転可能エリアセグメンテーション、車線検出」においてSOTAを更新したHybridNetsを紹介します。

実際に動画から交通物体の検出、運転可能なエリアのセグメンテーション、車線の検出を試してみましょう。

Google colabを使用して簡単に実装することができますので、ぜひ最後までご覧ください。

今回の目標

・HybridNetsとは

・交通物体の検出、運転可能なエリアのセグメンテーション、車線の検出の実装

・首都高でのテスト結果

HybridNetsとは

HybridNetsは2022年3月に公開された、自動運転における3つの重要なタスクである「交通物体検出、運転可能エリアセグメンテーション、車線検出」のための、End-to-End認識ネットワークです。

同様のタスクであるYOLOPの性能を上回っており、SOTAを更新しています。

各種性能は表の通りです。

引用:https://github.com/datvuthanh/HybridNets
引用:https://github.com/datvuthanh/HybridNets
引用:https://github.com/datvuthanh/HybridNets

公式実装は以下のリンクからご確認いただけます。

HybridNetsの導入

以下、Google colab環境で進めていきます。

まずはGPUを使用できるように設定をします。

「ランタイムのタイプを変更」→「ハードウェアアクセラレータ」をGPUに変更

今回紹介するコードは以下のボタンからコピーして使用していただくことも可能です。

Open In Colab

from google.colab import drive
drive.mount('/content/drive')
%cd ./drive/MyDrive

公式よりcloneしてきます。

!git clone https://github.com/datvuthanh/HybridNets
%cd HybridNets
!pip install -r requirements.txt
!pip install --upgrade --no-cache-dir gdown albumentations opencv-python

以上で導入が完了しました。

サンプル動画でデモ

学習済モデルのダウンロード

まずは学習済モデルをダウンロードしましょう。

「weights」というフォルダを作成して、そこにモデルをダウンロードします。

## Download end-to-end weights
!mkdir weights
!curl -L -o weights/hybridnets.pth https://github.com/datvuthanh/HybridNets/releases/download/v1.0/hybridnets.pth

サンプル動画でテスト

動画が用意されていますので、コードを実行してみましょう。

先ほどダウンロードしたモデルを使用して、テストを実行します。

!python hybridnets_test_videos.py -w weights/hybridnets.pth --source demo/video --output demo_result

結果が「demo_result」に保存されました。

首都高動画でテスト

最後にオリジナル動画でテストしましょう。

今回は首都高の動画で試してみます。

「demo/demo_videoというフォルダを作成して、動画をアップします。

先ほどと同様に実行してみましょう。

# 動画のテスト
# 「HybridNets/demo/demo_image」フォルダを作成後に動画をアップする

!python hybridnets_test_videos.py -w weights/hybridnets.pth --source demo/demo_video --output demo_result

テスト結果の動画は以下の通りとなりました。

首都高の動画でも検出ができていることがわかりました。

日本国内の道路でも問題なく使用できそうですね。

まとめ

最後までご覧いただきありがとうございました。

今回は自動運転における3つの重要なタスクである「交通物体検出、運転可能エリアセグメンテーション、車線検出」においてSOTAを更新したHybridNetsを紹介しました。

こうしたモデルの精度が向上することで、自動運転の実現に近づきそうですね。

コメントを残す