Amazon Web Services ブログ
ドローンとAIを活用した風力発電所のメンテナンスの自動化
この記事は、「Automating Wind Farm Maintenance Using Drones and AI」を翻訳したものです。
はじめに
風力タービンのメンテナンスは、高額でハイリスクな作業です。ニュースサイトの最近の分析によると、風力発電所のオーナーは、10年間で400億ドル以上を運用・保守に費やすと予想されています。また、別の最近の研究 では、従来のロープを使った検査の代わりにドローンを使った検査を行うことで、運用コストを70%削減し、さらにダウンタイムによる収益の損失を最大90%減少させることができるとしています。
このブログ記事では、ドローン、機械学習(ML)、モノのインターネット(IoT)をエッジとクラウドで活用することで、タービンのメンテナンスをより安全に、よりコストを抑えて行う方法を紹介します。まず、機械学習モデルをクラウド上で学習させ、タービンブレード上の腐食、摩耗、アイシングなどの危険を検出しました。機械学習部分の詳細は、前回のブログ記事でご紹介しています。このモデルをエッジに展開することで、より安全で迅速な検査を実現します。また、クラウドへの継続的な接続を必要とせず、オフラインでも動作します。ユニークなのは、Amazon Augmented AI を通じて、カスタムアラートや条件に基づいて調査結果に関与できる既存のメンテナンスチームを組み込むことができることです。この方法では、専門家があなたから指定された通りにレビューを行うというように、機械学習モデルを継続的な学習プロセスの中に組み込むことができます。このブログ記事は、re:Invent 2020 のビルダー・フェア・プロジェクト「Automating Wind Turbine Maintenance Using Drones and AI」の続きになります。
ソリューション
概要
このソリューションは、AWSマネージドサービスを使用して、お客様の運用オーバーヘッドを最小限に抑えます。また、AWSサーバーレス技術を多用し、ゼロからピークレベルまで自動的にスケールアップするとともに、リソースを余分にプロビジョニングすることがないため、コストを削減することができます。また、このソリューションは、人間によるレビューのワークフローを含め、完全に自動化されています。使用したAWSサービスとその理由は以下の通りです;
- AWS Lambda:サーバーレスのコンピュートサービスであり、あらゆるビジネスロジックを実装します。
- Amazon EventBridge:サーバーレスのイベントバスソリューションであり、エッジとクラウドの間でMLモデルを同期させるためのメンテナンス間隔などを含めたイベントやスケジューリングの管理を行います。
- Amazon SNS:フルマネージドのメッセージングサービスであり、本プロセスでは、現場やオフィスにいるチーム(図1ではField Teams)とのアプリ・人(Application-to-Person)間のコミュニケーションを行います。今回は、Amazon SNSでアプリ・アプリ間(application-to-application)の通信を使用する必要はありませんでした。このサービスでは、他のサービスから直接通信を行うものと、ビジネスロジックが必要な場合に Lambda 関数経由で通信を行うものがあります。
- Amazon S3:オブジェクトストレージで、画像や機械学習モデルのような重要なデータを保存します。
- Amazon SageMaker:機械学習サービスで、このソリューションにおいて、機械学習技術の中心的存在です。今回は、学習画像に迅速にラベル付けする Amazon SageMaker Ground Truth や人によるレビュー処理を導入する Amazon Augmented AI などの Amazon SageMaker の様々な機能 を採用しています。また機械学習のエッジ推論処理を最適化する Amazon SageMaker Neo や効率的にエッジのMLモデルの管理や監視を行う Amazon SageMaker Edge Manager も利用しています。
- AWS IoT Greengrass:IoT用のオープンソースのエッジランタイムとクラウドサービスで、機械学習のエッジ推論の中心に位置づけられます。
- AWS IoT Core:何十億ものデバイスを安全かつ確実に接続するためのサービスで、AWSとエッジデバイス間のメッセージをルーティングします。今回の場合、デバイスは風力発電機です。
- AWS IoT SiteWise:産業機器からのデータを大規模に収集、保存、整理、監視するマネージドサービスで、今回は風力発電機の監視で利用されています。
- AWS IoT Analytics:大量のIoTデータに対して高度な分析を行うフルマネージドサービスで、今回は風力発電機から送られてくるテレメトリーデータをもとに分析作業を行います。
- AWS IoT Events:複雑なイベント監視アプリケーションを構築するためのサービスで、監視対象となる風力発電機に起こりうる故障やメンテナンスパターンの検出に使用されます。
- Amazon QuickSight:スケーラブルでサーバーレス、組み込み可能な、MLを搭載したビジネス・インテリジェンス(BI)サービスで、風力タービンの監視から機械学習モデルの動作まで、ビジネス・インテリジェンスの目的で採用されています。
図 1 – ソリューションのアーキテクチャ (クリックすると拡大できます)
構築手順
図1 に示したアーキテクチャの手順を、AI/MLとIoTの2つに分類しました。
AI/ML の導入手順
この機械学習パートの手順は、最初の機械学習のトレーニング実行を開始するステップ-0から始まります。ステップ-0は1回限りの処理になるので、”0 “を割り当てました。
0-a. 最初に図1の Image Pool という Amazon S3 に、参考となる風力タービンの写真や風力タービンの不具合画像をアップロードします。これらの写真は、最初の Ground Truth のラベル付けになります。一般的に、お客様は過去に収集された画像データベースを使用しますが、これは信頼性の高いモデルを学習するのに十分すぎるほどです。詳細は、こちらのブログ投稿をご覧ください。
0-b. Amazon SageMaker Ground Truth を利用して、アップロードされた Ground Truth用のイメージにラベル付けします。Amazon SageMaker Ground Truth は、ラベリングを実施するのに AI/ML 専門家の知識を必要としないユーザーフレンドリなユーザーインターフェースを持っています。また必要に応じて自分独自のユーザーインターフェースを構築することも可能です。当社の提案では、既存の専門家チームがラベリングのための作業も担います。しかし、Amazon Mechanical Turk やサードパーティのベンダ管理の作業員を利用することも可能です。
- Amazon SageMakerはAmazon SageMaker Ground Truthとネイティブに連携しているため、Amazon SageMaker Ground Truthのプロセスで構築された結果のマニフェストファイルを使用することができます。SageMaker で利用可能な画像分類、オブジェクト検出、またはセマンティックセグメンテーションアルゴリズムを使用します。これらのアルゴリズムについては、以前のブログ記事で説明しています。なお、Amazon Rekognitionのモデルは、本日時点ではAWS IoT Greengrassに展開できません。したがって、エッジで推論を行うためには、Amazon SageMakerを使用する必要があります。
- トレーニングされたモデルファイルは、Amazon S3バケット(ML model)に保存されます。このモデルは、Amazon SageMaker Neo によって使用され、ハードウェアに最適化されたモデル にコンパイルしてデプロイします(例:我々のケースではNvidia)。コンパイルされたモデルは、エッジデバイスでのモデル管理用に Amazon SageMaker Edge Manager によってパッケージ化されます。
- Amazon SageMaker Edge Managerは、AWS IoT Greengrass V2と統合されていて、モデルとEdge Manager Agent のデプロイメントとメンテナンスを容易にします。そして、エージェントを使用してデバイスの予測を行います。SageMaker Edge ManagerをGreengrassのコアデバイスで使用するという手順に従います。
- 今回のユースケースでは Nvidia Jetson nano board に AWS IoT Greengrass V2をインストールしています。AWS IoT Greengrassは複数のプロセスを提供します。まず風力タービンからのテレメトリーデータを収集し、それを一括してクラウドに送信することが可能です(図1のステップ-11経由)。そして、ローカルのLambda関数を実行できるローカルデバイスシャドウ機能で、ゲートウェイをオフラインモードで動作させることができます。これは、インターネット接続が充分満たされない遠隔地の風力発電所では特に重要です。最後に、SageMaker Edge Manager エージェントを利用した AWS IoT Greengrass では、Assessment at Edge というローカルのAWS Lambda関数を通じて、ドローンから収集した画像に推論を行い、潜在的な問題を検出することもできます。
図 2. re:Invent 2020 builder fair ビデオ の中のシーンより抜粋:(a) 風力タービンの前を飛行するドローン、(b) Amazon SageMaker により腐食と認識された箇所を茶色で表現した腐食箇所の例
- AWS Lambda関数「Assessment at the Edge」を利用し、望ましい条件に適合しているかどうか、人による評価プロセスを実行します。例えば、このLambda関数を使用してオブジェクト分類の信頼度を評価し、その信頼度が非常に低かったり、または検出結果が重要な場合、Lambda関数は人間の作業員による評価プロセスを起動することができます。AWS IoT Greengrass により Amazon S3 Images Pool のバケットに画像を安全にアップロードしたときに、Amazon S3 イベント通知が呼び出されます。
- Amazon S3のイベント通知は、Augmented AIと呼ばれる AWS Lambda 関数を起動し、Amazon Augmented AI Human Loop を開始します。専門家チームのために、カスタムの人的レビューのタスクテンプレートを作成することができます。チームは、ドローンで実行されたエッジでの推論をレビューできるようになります。
- これにより Amazon Augmented AI ループが組み込まれ、エッジでの推論結果と実際の画像をレビューすることができます。このステップはカスタマイズ可能ですが、少なくても専門家チームはエッジ上で実行したMLモデルの推論結果を受け入れて、それを置き換えることができるということを想定しています。これは人間というプレイヤーも処理プロセスに含まれていることで、システム全体の信頼性をさらに向上しています。その一方で、専門家チームにはすべての推論が通知されるわけではありません。なぜなら初期のビジネスロジックでは、専門家によるレビューが必要な推論結果がフィルタリングされるからです。
Augmented AIワークフローの良い点は、人間のレビュー結果に基づいてMLモデルを自動的に再トレーニングすることです(ステップ-1)。そのためMLモデルは、人間の専門家から時と共に学び続けることができます。新たにトレーニングされたモデルは、ステップ2−3を経て、再びエッジにデプロイされます。この再トレーニングプロセスは、すべてのレビュー後毎に実行する必要はありません。AWS Lambdaを介したビジネスロジック(我々の場合は、図1の Lambda関数「Assessment on the Cloud 」)は、適切なバッチサイズまで達した後、または Amazon EventBridge によってスケジュールされたメンテナンス周期の毎に、再トレーニングをスケジュールすることができます。一方で、ステップ1−3とステップ5−6は、継続的な学習ループと呼ばれる繰り返しループを形成しています。このアーキテクチャでは、クラウドを介して人のレビュアーから継続的な学習を行い、それをエッジに同期して戻すことができます。
- Amazon EventBridgeと合わせて、クラウド上の Lambda 関数の評価は人のレビューの判断に基づいてアクションを起こすことができます。
- 1つの可能なアクションとして、図1のようにメッセージを Amazon Simple Notification Service のトピックに公開することです。
- その場合、現場のチームの携帯端末に通知が届きます。
IoT の導入手順
本ソリューションのエッジの IoT部分に焦点を当てたいと思います。この処理は連続しているので、ステップ11で番号付けを続けます。
- AWS IoT Greengrassは、風力発電所のテレメトリデータをAWS IoT Coreに送り、そこから様々なユースケースに合わせて複数のサービスにデータを振り分けます。このデータには、タービンから読み取った発電量(kWh)、毎分の回転数(rpm)、トルク(Nm)などが含まれています。
- AWS IoT Coreのルールエンジンは、タービン用の検出モデルを構築するために、データを AWS IoT Eventsに送り、様々なエラー状態を検知して、Amazon SNSを介してメンテナンス担当者にアラート通知することができます。これらの手順で検出モデルを構築することができます。
- タービンのデータは、マネージドウェブアプリケーションとしてポータルを提供するAWS IoT SiteWiseの機能である AWS IoT SiteWise Monitor にも送信されます。この分野の専門家は、発電管理者が風力タービンを監視するためにこのポータルを使用してデータを様々な軸で分析する運用ダッシュボードを構築することができます。
- 最終的にデータを AWS IoT Analytics に送り、バッチ分析を行います。このステップの出力は Amazon QuickSight によるビジネス・インテリジェンス・レポートの構築に使用されます。
まとめ
今回の投稿では、AWSサービスを利用して風力発電機の外観検査を自動化するソリューションを提案しました。このソリューションは、AWSのIoT、AI/ML技術を活用したサーバーレスアーキテクチャを持ち、ドローンによるエッジでの画像ベースの検査を採用しています。このソリューションは完全な自動化を実現する一方で、必要に応じて既存の専門家である従業員を検査プロセス全体に組み込んでいます。機械学習モデルは、継続的な学習ループを通じて、人間のレビュアーから学習を継続します。学習されたモデルは、エッジに戻されます。さらにこのソリューションは、AWS IoT Greengrassを使ってオフラインモードでも動作します。
本ブログは、ソリューションアーキテクトの丹羽が翻訳しました。原文はこちらです