「AidLuxをベースとした自動運転知能型早期警報アプリケーションソリューション」

YOLOP モデルを ONNX に変換する

ONNX は Open Neural Network Exchange の略称で、ONNX の仕様とコードは主に Microsoft、Amazon、Facebook、IBM などの企業によって共同開発され、オープンソース コードとして Github でホストされています。現在、ONNX モデルの読み込みを公式にサポートしているフレームワークには、Caffe2、PyTorch、MXNet、ML.NET、TensorRT、Microsoft CNTK が含まれており、TensorFlow も非公式に ONNX をサポートしています。
ここに画像の説明を挿入します

YOLOP エクスポート onnx モデル

コマンド
python3 export_onnx.py–height 640–width 640を実行します。実行が完了すると、正常に変換された onnx モデルのonnx 変換コア API
が Weights フォルダーに生成されます。

ここに画像の説明を挿入します

onnx モデルのエクスポート プロセス:

1. PyTorch モデルをロードします。モデル構造のみをロードすることを選択することもできますが、
モデル構造と重みをロードすることも選択できます。
2. PyTorch モデルの入力次元を定義します (
解像度 640x640 の 3 チャネル カラー イメージである (1,3,640,640) など)。
3. torch.onnx.export() 関数を使用して、オンエックス
モデル。
ここに画像の説明を挿入します

推論プロセス

1. モデルをロードします。
2. 入力ノード名と出力ノード名を取得します
。 3. (n, c, h, w) または
(n, h, w, c)などのデータを準備します
。 4. 推論を実行し、出力を取得します。
ここに画像の説明を挿入します

ONNX モデルの視覚化


Netron を使用して ONNX モデルを視覚化し、ネットワーク構造を確認し、
開発と展開を容易にするためにどのオペレータが使用されているかを確認します。Netron は、TensorFlow、PyTorch、ONNX、Keras、Caffe などの複数の深層学習フレームワークのモデル視覚化をサポートする、
軽量のクロスプラットフォーム モデル視覚化ツールです。視覚的なネットワーク構造、階層関係、出力サイズ、重量などの情報が提供され、モデルはマウスの移動やズームによって参照できます。Netron は、モデルの共有と通信を容易にするためのモデルのエクスポートとインポートもサポートしています







ここに画像の説明を挿入します

AidLux での YOLOP モデルの展開と適用

AidLux の概要


AidLux は、ARM ハードウェア上に構築され、革新的なクロス Android/Hongmeng+Linuxi 統合システム環境に基づいた
インテリジェントなモノのインターネット (AIoT) アプリケーション開発および展開プラットフォームです。
AidLux ソフトウェアは非常に使いやすく、
携帯電話、PAD、ARM 開発ボードなどのエッジ デバイスにインストールできます。さらに、AidLuxを使用した
開発プロセスでは、
エッジ デバイスでのローカル開発をサポートするだけでなく、
開発のための Web ブラウザーを介したエッジ デスクトップへのアクセスもサポートします。
AidLux は、すべての主要なアプリケーション ストアからダウンロードできます。右に示すように、モバイル アプリケーション ストアで
AidLux を検索し、ダウンロードしてインストールします。
ここに画像の説明を挿入します

AidLux: プログラミング インターフェース

AidLuxインターフェース紹介リンク
https://docs.aidlux.com/#/intro/ai/ai-aidlite
ここに画像の説明を挿入します

AidLux に接続する

携帯電話の Wi-Fi ネットワークをコンピュータのネットワークに接続し、携帯電話にインストールされている AidLuxa ソフトウェアを開き、最初の行の 2 番目の Cloud_ip をクリックすると、コンピュータでログインできる 1P URL が携帯電話にポップアップ表示されます
。コンピュータのブラウザでコンピュータ上で P を入力するだけで、携帯電話のシステムがコンピュータに投影され、
接続すると、携帯電話の計算能力を使用してモデル推論を実行できます。
ここに画像の説明を挿入します

プロジェクトをAidLuxにアップロードする

1. ファイル ブラウザをクリックしてファイル管理ページを開きます
。 2. ホーム フォルダーを見つけて、ダブルクリックしてフォルダーに入ります
。 3. 右上隅の上向き矢印「アップロード」をクリックし、フォルダーを選択して以前の YOLOP フォルダーをアップロードします。フォルダー内のホームに移動します。(フォルダーをディレクトリに直接ドラッグすることもできます。)
ここに画像の説明を挿入します

設置環境

1. ターミナルを開き、プロジェクト ディレクトリに切り替えます。
2. コマンド pip install-r required.txt を実行して、依存環境をインストールします
。 3. pytorch、torchvision、onnxruntime をインストールします。

pip install torch==1.8.1  torchvision==0.9.1 -i https://pypi.mirrors.ustc.edu.cn/simple/
pip install onnxruntime-i https://pypi.mirrors.ustc.edu.cn/simple/

他のパッケージが見つからない場合は、pip install を使用して直接インストールできます。
ここに画像の説明を挿入します

デモ.pyを実行する

推論の効果を検証するには、コマンド
python tools/demo.py --source inference/images を実行します。
実行時のエラー: module'cv2'has noattribute'_registerMatType'
。解決策: opencv-python および opencv-contrib-python をアンインストールします。下位バージョンのみをインストールしてください。

pip install opencv_python==4.5.4.60 -i https://pypi.mirrors.ustc.edu.cn/simple/

正常に実行されると、結果ファイルが inference/output フォルダーに保存され、このフォルダーに移動して推論結果を表示できます。
ここに画像の説明を挿入します

インテリジェント早期警告システムのコード演習

インテリジェントな早期警告

推論の効果を検証するには、コマンド
python tools/demo.py --source inference/images を実行します。
実行時のエラー: module'cv2'has noattribute'_registerMatType'
。解決策: opencv-.python、opencv-contrib- をアンインストールします。 python を選択し、下位バージョンのみをインストールします。

pip install opencv_python==4.5.4.60 -i https://pypi.mirrors.ustc.edu.cn/simple/

操作が成功すると、結果ファイルは推論/出力フォルダに保存されます。このフォルダに移動して推論結果を表示できます。インテリジェント早期警告システムには、ターゲット検出、走行可能領域検出、車線境界線検出の 3 つのタスクが含まれて
ここに画像の説明を挿入します

ます
。センサー: 前方監視カメラ
ターゲット検出タスク: 車両の検出
走行可能エリア検出: 主に走行可能
エリアを検出し、自動運転のための経路計画支援を提供車線検出:車載カメラを通じて車線を検出することを
目的とした環境認識アプリケーション

ここに画像の説明を挿入します
ここに画像の説明を挿入します
1. 入力:
ビデオ画像を入力として読み取り、画像サイズ 1920 1080
ここに画像の説明を挿入します
2. 前処理
2.1 入力サイズを 1920
1080 サイズ変更+padding? から 640 640
2.2 正規化
2.3 640
640 3->1 3 640 640
ここに画像の説明を挿入します
ここに画像の説明を挿入します
3. onnx を使用推論用のモデル、
モデルを読み取る -> データを準備する -> 推論し、
det_out、da_seg_out、ll_seg_out、shape を取得します: それぞれ: (1,n,6)(1,2,640,640)(1,2,640,640)
ここに画像の説明を挿入します
4. 後処理
4.1 は次のようになります。検出 これにより、走行可能領域検出結果と車線境界線検出結果が 1 枚の画像に統合され、色分けされます 4.2
検出されたフレーム番号、フレームレート、車両番号などの情報を画像上に表示
ここに画像の説明を挿入します
5. 出力
: 最終的な融合画像を取得し、ビデオとして保存します。画像サイズ、レート、エンコーディングは、元のビデオ サイズ、フレーム レート、エンコーディングになります。
ここに画像の説明を挿入します

アラートコード

forewarning.py はインテリジェントな警告コードです a.
コマンドを実行すると: python forewarning.py で中国語が表示されます。エラーが報告された場合は、次の解決策を参照してください。
エラー: OSError: リソースを開けません。中国語フォントがありません。
解決策: simsun をアップロードしてください。 .ttc を /usr /share/fonts/ フォルダーにコピーします (simsun.ttc は Baidu Cloud Disk に保存されています)
ここに画像の説明を挿入します

最終的な推論の過程と結果

推論結果はbステーションの動画の通りです:AidLuxをベースにした自動運転向けインテリジェント早期警報アプリケーションソリューション

おすすめ

転載: blog.csdn.net/heromps/article/details/131480638