災害被害評価アプリの開発とデモ
目次
- はじめに
- プロジェクトの背景
- 問題の提起
- アプリの開発理念
- アプリの機能とデモ
- モデルの構築とトレーニング
- モデルの評価と可視化
- アプリの展望と課題
- 学びと次のステップ
- おわりに
AWS災害応答アカウントのプロジェクト:地震被害の画像分類
🌍 ハンディング・フェイズでの参加チームの代表として、AWS災害応答アカウントについてお話しします。このプロジェクトは、ミル・アントワンとジミー・バリスムによる学習体験として開発されました。私たちは、ソーシャルメディアとGoogleからの画像を使用して、地震による被害の程度をユーザーが評価できる画像分類器を開発しました。
はじめに
2010年、ハイチは壊滅的な地震に襲われました。ハイチ政府の推計によれば、25万戸の住宅と3万軒の商業ビルが崩壊または重大な損壊を受けました。2021年には、ハイチでも130,000軒以上の住宅と60の医療施設が損傷または破壊されました。2015年には、ネパールも地震に見舞われ、2016年にはクアッターも地震に襲われました。
私たちは2010年のハイチ地震に遭遇した経験から、自然災害で自宅を失った方々の痛みを理解しています。私たちの経験から着想を得て、ハッカソンで次のような疑問が浮かびました。「災害の被災地域で個々の家屋、学校、橋の被害の程度を正確かつ効率的に判断する方法は何か?」
災害中および災害後の被害評価は、人道支援団体にとって核心的な活動です。これらの評価は、災害中に情報を公開したり、救助チームに正確な情報を提供したりするために使用されます。災害の場合、財務への影響と復旧コストを評価するために不可欠です。しかし、調査による被害評価を効果的に実施することは、多くの組織にとって課題となっています。そのため、数週間から数カ月かかり、物流的に困難です。
プロジェクトの背景
この問題に対する解決策として、私たちのチームは、訓練とデプロイが可能なプルーフ・オブ・コンセプトとしての画像分類器を提案しました。私たちのアプリでは、ユーザーが建物の画像をロードし、画像内の被害の程度を分類できるように設計しました。現在では、ハッキングフェイススペースでアプリをホストしています。
アプリを使用すると、画像をアップロードし、画像内の被害の方向を表示することができます。モデルに基づいて画像が分類され、被害の程度を「重度」「軽度」「なし」「被害なし」のいずれかで表示されます。画像内の被害の重度は、その画像に示されている物理的な破壊の範囲を示しています。モデルは、ハイチ、エクアドル、ネパール、Googleの画像データを使用して訓練されました。
問題の提起
私たちは、画像分類モデルを構築する際、いくつかの課題に直面しました。まず、データの品質に問題がありました。ラベリングのエラーやバランスの取れていないデータセット、不完全なデータなどがありました。また、ラベリングの観点からも、被害の程度を「重度」「軽度」「なし」という言葉で正確に分類することは、人間にとって難しい課題でした。
さらに、このタスクは建設の種類に依存し、国によって異なるため、複雑であることもわかりました。被害の程度は、都市部にあるか、農村地域にあるか、先進国や中所得国にあるかなどによっても異なります。これらの要素は、学習モデルに影響を与えます。私たちは、特定のシナリオのために国ごとにモデルを訓練する方が良いことに気付きました。
アプリの機能とデモ
私たちのアプリは、被害の程度を分類するだけでなく、ユーザーがアップロードした画像をもとに被害の方向を表示する機能も備えています。アプリはハッキングフェイススペースで実行され、ノートブックからも利用できます。
また、実験の追跡にはWeight and Biasを使用しました。私たちは、私たち自身で記録したすべてのログをWeight and Biasに送信し、異なる実験を比較することができました。異なるモデル(VGG-16、MobileNet、EfficientNetなど)、学習率、データセットの比較なども行いました。
モデルの構築とトレーニング
モデルを構築するためには、Salesmaker Studio Labを使用しました。Labに入ると、好みのコンピュータタイプ(推奨はGPU)を選択し、リポジトリをクローンします。その後、依存関係をインストールして環境を構築します。モデルのトレーニングには、クラウン・イネストを使用しました。
トレーニングのためには、まずデータをダウンロードし、データが格納されているディレクトリのパスをCSVファイルとして変換します。次に、データをTensorFlowデータセットとして読み込み、EfficientNetを使用したモデルを構築しました。
トレーニングは、複数のパラメータを指定することができる実験を行いました。これには、自然災害の種類、学習エポックの数、学習率、使用するデータの割合などが含まれます。モデルはoutputsフォルダに保存されます。
評価では、最新のデータセットに対して89%の精度を達成しました。また、真の被害レベルと予測されたレベルを比較する可視化も行いました。
アプリの展望と課題
私たちのアプリにはまだ改善の余地があります。次のステップとして、スマートフォンアプリの構築とデプロイを予定しています。また、モデルに年齢に基づく解決策を追加し、データの再評価と追加の収集を行う予定です。
私たちのプロジェクトには、2017年に行われた「Social Media Imagery Dataに基づく被害評価」の先行研究が基になっています。そのデータセットを使用し、モデルの改善に取り組みました。
学びと次のステップ
このプロジェクトを通じて私たちは多くのことを学びました。モデル中心のアプローチからデータ中心のアプローチに移行することが最良であることや、ディープラーニングコードのトラブルシューティング方法が通常のソフトウェアコードと異なることなどを学びました。また、Pythonの依存関係を管理・整理する方法や、Weight and Biasを使用して実験を追跡する経験も良かったです。
次はどうするか?私たちは、スマートフォンアプリを構築してデプロイし、モデルをテストする予定です。現在のモデルに加えて、年齢に基づく解決策を追加します。また、データセットの見直しと追加の収集も行う予定です。
おわりに
ハッカソンに参加できたことを光栄に思います。このプロジェクトが災害被害の評価に役立ち、より効率的な災害応答を実現する手助けになることを願っています。
【リソース】