自動運転における3つの重要なタスクである「交通物体検出、運転可能エリアセグメンテーション、車線検出」においてSOTAを更新したHybridNetsを紹介します。
実際に動画から交通物体の検出、運転可能なエリアのセグメンテーション、車線の検出を試してみましょう。
Google colabを使用して簡単に実装することができますので、ぜひ最後までご覧ください。
今回の目標
・HybridNetsとは
・交通物体の検出、運転可能なエリアのセグメンテーション、車線の検出の実装
・首都高でのテスト結果
HybridNetsとは
HybridNetsは2022年3月に公開された、自動運転における3つの重要なタスクである「交通物体検出、運転可能エリアセグメンテーション、車線検出」のための、End-to-End認識ネットワークです。
同様のタスクであるYOLOPの性能を上回っており、SOTAを更新しています。
各種性能は表の通りです。
公式実装は以下のリンクからご確認いただけます。
HybridNetsの導入
以下、Google colab環境で進めていきます。
まずはGPUを使用できるように設定をします。
「ランタイムのタイプを変更」→「ハードウェアアクセラレータ」をGPUに変更
今回紹介するコードは以下のボタンからコピーして使用していただくことも可能です。
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を紹介しました。
こうしたモデルの精度が向上することで、自動運転の実現に近づきそうですね。