編集

次の方法で共有


自律車両運用 (AVOps) ソリューションを作成する

Azure Machine Learning
Azure Data Factory
Azure Data Share
Azure Batch
GitHub

ソリューションのアイデア

この記事では、ソリューションのアイデアについて説明します。 クラウド アーキテクトは、このガイダンスを使用して、このアーキテクチャの一般的な実装の主要なコンポーネントを視覚化するのに役立ちます。 この記事は、ワークロードの特定の要件に合わせて適切に設計されたソリューションを設計するための出発点として使用します。

このアーキテクチャは、自動運転ソリューションを開発するためのガイダンスと推奨事項を提供します。

建築

AVOps アーキテクチャを示す図。

この記事のアーキテクチャ図を含む Visio ファイル をダウンロードします。

データフロー

  1. 測定データは、カメラ、レーダー、超音波、nsg、車両テレメトリなどのセンサーのデータ ストリームから取得されます。 車両内のデータロガーは、ロガー記憶装置に測定データを格納します。 その後、ロガー ストレージ データがランディング データ レイクにアップロードされます。 Azure Data Box や Azure Stack Edgeなどのサービス、または Azure ExpressRouteなどの専用接続 Azure にデータを取り込みます。

    測定データは、シミュレーションや他のソースからの合成データにすることもできます。 (MDF4、TDMS、rosbag は、測定用の一般的なデータ形式です)。DataOps ステージでは、取り込まれた測定値が処理されます。 チェックサムなどの検証とデータ品質チェックは、低品質のデータを削除するために実行されます。 このステージでは、体験版中にテスト ドライバーによって記録された生の情報メタデータが抽出されます。 このデータは、一元化されたメタデータ カタログに格納されます。 この情報は、ダウンストリーム プロセスが特定のシーンとシーケンスを識別するのに役立ちます。

  2. データは、Azure Data Factory 抽出、変換、読み込み (ETL) パイプラインによって処理されます。 出力は、azure Data Lakeに生データとバイナリ データ 格納されます。 メタデータは、Azure Cosmos DB格納されます。 シナリオによっては、Azure Data Explorer または Azure Cognitive Searchに送信される場合があります。

  3. 精度と信頼性を向上させるために、追加情報、分析情報、コンテキストがデータに追加されます。

  4. 抽出された測定データは、Azure Data Shareを介してラベル付けパートナー (人間がループ内) 提供されます。 サード パーティのパートナーは、別の Data Lake アカウントを使用して、自動ラベル付け、データの格納、およびアクセスを実行します。

  5. ラベル付けされたデータセットは、主に知覚とセンサーの融合モデルを作成するために、MLOps プロセス ダウンストリームにフローします。 これらのモデルは、自律走行車がシーン (車線変更、ブロックされた道路、歩行者、信号機、交通標識) を検出するために使用される機能を実行します。

  6. ValOps ステージでは、トレーニング済みのモデルがオープン ループおよびクローズド ループ テストによって検証されます。

  7. Azure Kubernetes Service で実行されている Foxgloveや Azure Container Instancesなどのツールは、取り込まれたデータと処理されたデータを視覚化します。

データ収集

データ収集は、自律車両運用 (AVOps) 主な 課題の 1 つです。 次の図は、オフラインおよびオンラインの車両データを収集してデータ レイクに格納する方法の例を示しています。

オフラインとオンラインのデータ収集を示す図。

DataOps

データ操作 (DataOps) は、データ操作の品質、速度、信頼性を向上させる一連のプラクティス、プロセス、およびツールです。 自動運転 (AD) の DataOps フローの目的は、車両の制御に使用されるデータが高品質で正確で信頼性の高いものになるようにすることです。 一貫した DataOps フローを使用することで、データ操作の速度と精度を向上させ、自律走行車を制御するためのより良い意思決定を行うことができます。

DataOps コンポーネント

  • Data Box は、収集された車両データを地域の運送業者を介して Azure に転送するために使用されます。
  • ExpressRoute は、プライベート接続を介してオンプレミス ネットワークを Microsoft クラウドに拡張します。
  • azure Data Lake Storage は、未加工や抽出などのステージに基づいてデータを格納します。
  • Azure Data Factory は、バッチ コンピューティング を介して ETL 実行し、データ移動とデータ変換を調整するためのデータドリブン ワークフローを作成します。
  • Azure Batch 、データ ラングリング、データのフィルター処理と準備、メタデータの抽出などのタスクに対して大規模なアプリケーションを実行します。
  • Azure Cosmos DB は、格納された測定値などのメタデータの結果を格納します。
  • Data Share は、ラベル付け企業などのパートナー組織とセキュリティを強化してデータを共有するために使用されます。
  • Azure Databricks には、エンタープライズ レベルのデータ ソリューションを大規模に維持するための一連のツールが用意されています。 これは、大量の車両データに対して長時間実行される操作に必要です。 データ エンジニアは、分析ワークベンチとして Azure Databricks を使用します。
  • Azure Synapse Analytics を すると、データ ウェアハウスやビッグ データ システム全体の分析情報を得る時間が短縮されます。
  • Azure Cognitive Search は、データ カタログ検索サービスを提供します。

MLOps

機械学習操作 (MLOps) には、次のものが含まれます。

  • DataOps パイプライン中にシーンを分類するための特徴抽出モデル (CLIP や YOLO など)。
  • 取り込まれた画像と、読み込まれた画像、およびレーダー データにラベルを付ける自動ラベル付けモデル。
  • 物体やシーンを検出するための知覚モデルとコンピューター ビジョン モデル。
  • センサー ストリームを組み合わせたセンサー 融合モデル。

知覚モデルは、このアーキテクチャの重要なコンポーネントです。 この Azure Machine Learning モデルは、検出されたシーンと抽出されたシーンを使用してオブジェクト検出モデルを生成します。

コンテナー化された機械学習モデルを、システム オン チップ (SoC) ハードウェアと検証/シミュレーション ソフトウェアで読み取ることができる形式に転送することは、MLOps パイプラインで行われます。 この手順では、SoC 製造元のサポートが必要です。

MLOps コンポーネント

  • Azure Machine Learning は、特徴抽出、自動ラベル付け、物体検出と分類、センサー融合などの機械学習アルゴリズムを開発するために使用されます。
  • Azure DevOps では、CI/CD、テスト、自動化などの DevOps タスクがサポートされます。
  • GitHub for enterprises は、CI/CD、テスト、自動化などの DevOps タスクに代わる選択肢です。
  • Azure Container Registry を使用すると、プライベート レジストリ内のコンテナー イメージと成果物をビルド、格納、および管理できます。

ValOps

検証操作 (ValOps) は、コストのかかる実際の環境テストを実行する前に、 マネージド シナリオを使用して、シミュレートされた環境で開発されたモデルをテストするプロセスです。 ValOps テストは、モデルが目的のパフォーマンス標準、精度基準、および安全要件を満たしていることを確認するのに役立ちます。 クラウドでの検証プロセスの目的は、自律走行車をライブ環境にデプロイする前に、潜在的な問題を特定して対処することです。 ValOps には次のものが含まれます。

  • シミュレーションの検証。 クラウドベースのシミュレーション(オープンループ および クローズドループテスト)環境では、自律車両モデルの仮想テストが可能になります。 このテストは大規模に実行され、実際のテストよりも安価です。
  • パフォーマンスの検証。 クラウドベースのインフラストラクチャでは、大規模なテストを実行して、自律走行車モデルのパフォーマンスを評価できます。 パフォーマンス検証には、ストレス テスト、ロード テスト、ベンチマークを含めることができます。

検証に ValOps を使用すると、クラウドベースのインフラストラクチャのスケーラビリティ、柔軟性、コスト効率を活用し、自律走行車モデルの市場投入までの時間を短縮できます。

オープン ループ テスト

再シミュレーション(センサー処理)は、自動運転機能のオープンループテストおよび検証システムです。 これは複雑なプロセスであり、安全性、データプライバシー、データのバージョン管理、監査に関する規制要件が存在する可能性があります。 クラウド内のグラフを介して、さまざまな自動車センサーから記録された生データを再シミュレーション処理します。 再シミュレーションでは、データ処理アルゴリズムが検証されるか、回帰が検出されます。 OEM は、現実世界の車両を表す有向非循環グラフでセンサーを結合します。

再シミュレーションは、大規模な並列コンピューティング ジョブです。 数万個のコアを使用して、数十から数百個のデータを処理します。 30 GB/秒を超える I/O スループットが必要です。 複数のセンサーからのデータは、車両が現実世界を移動したときに車両のコンピューター ビジョン システムが記録する内容のビューを表すデータセットに結合されます。 オープン ループ テストでは、リプレイとスコアリングを使用して、グラウンド トゥルースに対するアルゴリズムのパフォーマンスを検証します。 出力は、後でアルゴリズムトレーニングのためにワークフローで使用されます。

  • データセットは、生のセンサー データ (カメラ、blob、レーダー、超音波データなど) を収集するテストフリート車両から取得されます。
  • データ量は、カメラの解像度と車両のセンサーの数によって異なります。
  • 生データは、デバイスのさまざまなソフトウェア リリースに対して再処理されます。
  • 生センサー データは、センサー ソフトウェアのセンサー入力インターフェイスに送信されます。
  • 出力は以前のソフトウェア バージョンの出力と比較され、バグ修正や新しいオブジェクトの種類の検出などの新機能に対してチェックされます。
  • ジョブの 2 回目の再挿入は、モデルとソフトウェアの更新後に実行されます。
  • グラウンド トゥルース データは、結果を検証するために使用されます。
  • 結果はストレージに書き込まれ、視覚化のために Azure Data Explorer にオフロードされます。

閉ループテストとシミュレーション

自律走行車のクローズドループテストは、環境からのリアルタイムフィードバックを含めながら、車両の機能をテストするプロセスです。 車両のアクションは、事前にプログラムされた動作と発生する動的条件の両方に基づいており、それに応じてアクションを調整します。 閉ループ テストは、より複雑で現実的な環境で実行されます。 これは、予期しない状況にどのように対応するかなど、実際のシナリオを処理する車両の能力を評価するために使用されます。 クローズドループテストの目的は、車両がさまざまな条件下で安全かつ効果的に動作できることを確認し、必要に応じて制御アルゴリズムと意思決定プロセスを調整することです。

ValOps パイプラインは、クローズド ループ テスト、サード パーティ製シミュレーション、ISV アプリケーションを統合します。

シナリオ管理

ValOps ステージでは、実際のシナリオのカタログを使用して、自動運転ソリューションが自律走行車の動作をシミュレートする能力を検証します。 目的は、シナリオの一部であるルート ネットワークを、パブリックにアクセス可能で自由に利用できるデジタル マップから自動的に読み取ることで、シナリオ カタログの作成を高速化することです。 シナリオ管理にサードパーティ製ツールを使用するか、OpenDRIVE (xodr) 形式をサポートする CARLA などの軽量オープン ソース シミュレーターを使用します。 詳細については、「ScenarioRunner for CARLA」を参照してください。

ValOps コンポーネント

  • Azure Kubernetes Service は、Resin フレームワーク内でオープン ループ検証のために大規模なバッチ推論を実行します。 BlobFuse2 使用して測定ファイルにアクセスすることをお勧めします。 NFS を使用することもできますが、ユース ケースのパフォーマンスを評価する必要があります。
  • Azure Batch は、Resin フレームワーク内でオープン ループ検証のために大規模なバッチ推論を実行します。
  • Azure Data Explorer は、測定と KPI (つまり、再シミュレーションとジョブ実行) の分析サービスを提供します。

一元化された AVOps 関数

AVOps アーキテクチャは複雑であり、さまざまなサード パーティ、役割、開発ステージを含むので、適切なガバナンス モデルを実装することが重要です。

インフラストラクチャのプロビジョニング、コスト管理、メタデータとデータ カタログ、系列、オーケストレーションとイベントの全体的な処理などの機能を処理する一元化されたチームを作成することをお勧めします。 これらのサービスを一元化することは効率的であり、運用を簡素化します。

これらの責任を処理するには、一元化されたチームを使用することをお勧めします。

  • AVOps アーキテクチャの各領域とサブエリアで使用されるストレージやコンピューティングなどの標準サービスのテンプレートを含む ARM/Bicep テンプレートの提供
  • AVOps データ ループのイベント ドリブン オーケストレーションのための中央 Azure Service Bus/Azure Event Hubs インスタンスの実装
  • メタデータ カタログの所有権
  • すべての AVOps コンポーネントでエンドツーエンドの系列と追跡可能性を実現する機能

一元化された AVOps 関数を示す図。

シナリオの詳細

このアーキテクチャを使用して、Azure で自動運転ソリューションを構築できます。

潜在的なユース ケース

自動車メーカー、Tier 1 ベンダー、および自動運転ソリューションを開発する ISV。

考慮 事項

これらの考慮事項では、Azure Well-Architected Framework の柱を実装します。これは、ワークロードの品質を向上させるために使用できる一連の基本原則です。 詳細については、Microsoft Azure Well-Architected Frameworkの に関するページを参照してください。

安全

セキュリティは、意図的な攻撃や貴重なデータとシステムの悪用に対する保証を提供します。 詳細については、「セキュリティの柱の概要」を参照してください。

自動車 OEM とクラウド プロバイダーの間の責任の分担を理解することが重要です。 車両では、OEM はスタック全体を所有していますが、データがクラウドに移行すると、一部の責任はクラウド プロバイダーに転送されます。 Azure サービスとしてのプラットフォーム (PaaS) では、オペレーティング システムを含む物理スタックのセキュリティが強化されています。 インフラストラクチャ セキュリティ コンポーネントに加えて、次の機能強化を適用できます。 これらの機能強化により、Zero-Trust アプローチが可能になります。

コストの最適化

コストの最適化は、不要な経費を削減し、運用効率を向上させることです。 詳細については、「コスト最適化の柱の概要」を参照してください。

これらの戦略を使用して、自動運転ソリューションの開発に関連するコストを削減できます。

  • クラウド インフラストラクチャを最適化します。 クラウド インフラストラクチャの慎重な計画と管理は、コストの削減に役立ちます。 たとえば、コスト効率の高いインスタンスの種類とスケーリング インフラストラクチャを使用して、変化するワークロードに対応します。 Azure クラウド導入フレームワークののガイダンスに従ってください。
  • スポット仮想マシン使用します。 特定の期間内に処理を必要としない AVOps デプロイ内のワークロードを特定し、これらのワークロードにスポット仮想マシンを使用できます。 スポット仮想マシンを使用すると、未使用の Azure 容量を利用して大幅なコスト削減を実現できます。 Azure で容量が戻る必要がある場合、Azure インフラストラクチャによってスポット仮想マシンが削除されます。
  • 自動スケールを使用します。 自動スケーリングを使用すると、必要に応じてクラウド インフラストラクチャを自動的に調整できるため、手動による介入の必要性が減り、コストを削減できます。 詳細については、「のスケーリング 設計」を参照してください。
  • ストレージにホット層、クール層、アーカイブ層を使用することを検討してください。 ストレージは自動運転ソリューションでは大きなコストがかかる可能性があるため、コールド ストレージやアクセス頻度の低いストレージなど、コスト効率の高いストレージ オプションを選択する必要があります。 詳細については、「データ ライフサイクル管理」を参照してください。
  • コスト管理と最適化ツールを使用します。 Microsoft Cost Management には、未使用のリソースや使用率の低いリソースなど、コスト削減の領域を特定して対処するのに役立つツールが用意されています。
  • Azure サービスの使用を検討してください。 たとえば、azure Machine Learning を使用して、自動運転モデルを構築およびトレーニングできます。 これらのサービスを使用すると、社内インフラストラクチャの構築と保守よりもコスト効率が高くなります。
  • 共有リソースを使用します。 可能であれば、共有データベースや共有コンピューティング リソースなどの共有リソースを使用して、自動運転開発に関連するコストを削減できます。 このアーキテクチャ 一元化された関数は、たとえば、中央バス、イベント ハブ、メタデータ カタログを実装します。 Azure Data Share などのサービスも、この目標を達成するのに役立ちます。

貢献

この記事は Microsoft によって管理されています。 もともとは次の共同作成者によって作成されました。

主な作成者:

  • リアン松村 |シニア プログラム マネージャー
  • jochen Schroeer |リード アーキテクト (サービス ライン モビリティ)

その他の共同作成者:

非公開の LinkedIn プロファイルを表示するには、LinkedIn にサインインします。

次の手順

自動運転システム用の DataOps の開発の詳細については、以下を参照してください。

自律走行 のデータ運用

また、次の関連記事にも関心があります。