ディープラーニングを使用してビデオから車両速度を推定する

ディープラーニングを使用してビデオから車両速度を推定する

私が解決したい問題は、車にカメラが付いていて、車がどれくらいの速さで走っているのかを知りたいということです。当然ながら、スピードメーターは見ることができず、ビデオクリップそのものしか見ることができません。ここではディープラーニングの魔法が役立つはずです。

データ

2つの異なるビデオがあります。 1つはトレーニング用、もう1つはテスト用です。トレーニング ビデオには 20399 フレームがあり、テスト ビデオには 10797 フレームがあります。ビデオのダウンロードアドレス: https://github.com/commaai/speedchallenge。以下にいくつか例を挙げます。

ビデオのサンプル画像

トレーニング ビデオのラベルは .txt ファイルであり、各行は特定のフレームの速度に対応します。

方法

この問題の最も興味深い部分は、ニューラル ネットワークへの入力がどのようになるかという点です。静止画像だけでは速度を計算することは不可能です。効果的な方法は、2 つ以上の画像を積み重ねるか、LSTM や Transformer のように連続して積み重ねることです。もう 1 つはオプティカルフローを計算するもので、これを使用することにしました。

オプティカルフローとは何でしょうか? 基本的には、2 つの画像間の相対的な動きを示す各ピクセルのベクトルを計算する方法です。素晴らしいコンピューター愛好家向けビデオがあります: https://www.youtube.com/watch?v=4v_keMNROv4 で詳細を確認できます。オプティカルフローを計算するために使用できる「古典的な」コンピュータービジョンアルゴリズムがいくつかありますが、ディープラーニングははるかに改善されています (当然のことですが)。では、SOTA メソッドとは何か、paperswithcode で確認してみましょう。

RAFT は見た目も良く、PyTorch 実装も備えています。元のリポジトリをフォークして、少しシンプルにしました。研修や評価などは必要ありません。私はそれを推論のためだけに使います。

オプティカルフローの計算

推論のために、ネットワークは 2 つの画像を連結し、形状のテンソル (2、image_height、image_width) を予測します。前述したように、画像内の各ピクセルは 2 次元ベクトルに対応します。これらのファイルは実際のトレーニングで使用するため、.npy ファイルとして保存します。オプティカルフロー画像を想像すると次のようになります。

電車

私たちのトレーニングの目的を思い出してください:

オプティカルフロー → モデル → 車両速度推定

私が選んだモデルはEfficientNetです。スケーラビリティが高いのでとても気に入っています。選択できるバージョンは 8 つあり、最大のバージョンである EfficientNet-B7 は依然として非常に優れています。まずは B0 のような小型のモデルから始めて、すべてが正常に動作し、十分な性能の GPU がある場合は、より大きなモデルを選択できます。事前トレーニング済みのネットワーク モデルを簡単にロードするために使用する PyTorch ライブラリもあります: https://github.com/lukemelas/effecentnet-PyTorch [train.ipynb](https://github.com/sharifelfouly/vehicle-speed-estimate)を開くと、トレーニングがどのように機能するかを確認できます。

私の GPU には 6 GB のメモリしかないため、常に B0 から開始して B3 までスケールアップします。トレーニング後、次の結果が得られました (損失は平均二乗誤差です)。

トレーニング損失

検証損失

素晴らしい、すべて正常に動作しているようです。トレーニングと検証の両方の損失が減少しており、ネットワークは過剰適合していません。

結果は次のとおりです。

完璧ではありませんが、いくつかの用途はあります。

要約する

私は通常、機能エンジニアリングの大ファンではありませんが、この場合はかなりうまく機能していると思います。次のステップは、Transformer や LSTM のような、より順次的なものを試すことです。

<<:  AIの分野を深く探究しよう!新しい機能が次々と登場し、携帯電話で包括的なスマート体験を提供します

>>:  2020 年の人工知能におけるトップ 10 の技術進歩

ブログ    
ブログ    
ブログ    

推薦する

...

...

コストを 95% 削減した ChatGPT の代替品を作成しましょう! OpenAIのハードコアアップデートが来月リリースされ、ビジュアルAPIが登場

世界中の開発者は長い間、OpenAI モデルの価格に悩まされてきました。ロイター通信は、11月6日に...

OpenAIはGPT-3.5 Turbo、DALL-E、Whisper APIを完全に公開しました

OpenAIは7月10日、開発者のモデル処理効率向上を支援するため、GPT-3.5 Turbo、DA...

AI不正対策!ディープフェイク音声・動画検出技術がCESでデビュー、精度は90%以上

真実とは程遠いが、アメリカの消費者向けニュースおよびビジネスチャンネルCNBCのロゴ入りのビデオでは...

デジタル企業におけるロボティック・プロセス・オートメーション(RPA)技術の長所と短所

[[388106]]ロボティック プロセス オートメーション (RPA) テクノロジーは、一部の企業...

データ構造とアルゴリズムについて知っておくべき 50 のコード実装

今日、私は GitHub で非常に優れたプロジェクトを見つけました。現在、4700 以上のスターが付...

ビッグデータと人工知能の違いすら分からないのに、あなたはまだトップへの道を歩んでいる

ビッグデータと AI は公平に比較​​できるでしょうか? ある程度は公平ですが、まずはその違いを明確...

機械学習と古典的なアルゴリズムの概念をわかりやすい言葉で説明しました。初心者必読

データ分野では、多くの人が機械学習について語っていますが、それが何であるかを明確に説明できる人はごく...

自動運転の安全性の問題をどう解決するのか?まずは名前を変えてみましょう。

現在、新世代情報技術の急速な発展に伴い、自動運転をはじめとした新興産業がますます台頭しています。世界...

人工知能は大学のキャンパスにどのような変化をもたらしたのでしょうか?

[[279290]] [51CTO.com クイック翻訳] 大学はどのようにして、個人の教育キャリ...

データサイエンスの面接で知っておくべき 10 の機械学習の概念

この記事は公式アカウント「Reading the Core」(ID: AI_Discovery)から...

ほんの数行の Python コードで、将来の子供がどのような外見になるかを予測できますか?強力な人工知能

今回はBaidu Smart Cloudの顔認識機能とPythonを組み合わせて実験してみました。結...