ドローン映像×AI解析によるインフラ点検プラットフォーム開発ユースケース

プロジェクト背景
全国の橋梁・トンネル・高架下など、老朽化が進むインフラ点検を効率化するため、ドローン映像とAI画像解析を組み合わせたプラットフォームの開発を行いました。従来は作業員が現地まで足を運び、目視や手作業でひび割れや腐食を確認していましたが、危険を伴う作業や点検頻度の低さによる見逃しリスクが課題でした。そこで、ドローンによる高解像度映像をクラウドへアップロードし、AIで損傷箇所を自動検出・分類するワークフローを構築。発注検討時には「ドローン飛行〜解析〜レポート生成」までの要件を細分化し、受託開発会社への相見積もり資料として活用できるよう整備しました。
■主要KPI
-
点検対象箇所カバレッジ率90%以上
-
AI解析による誤検出率10%以下
-
点検工数削減50%以上
システム設計とアーキテクチャ
プラットフォームは大きく「データ収集層」「映像処理層」「AI解析層」「可視化・レポート層」の4層で構成します。
-
データ収集層:DJI SDK対応のドローンでGCS(Ground Control Station)から飛行プランを管理し、撮影映像をRTMP経由でエッジゲートウェイへストリーム転送。またはMicroSDカード経由でフル映像をエッジサーバへアップロード。
-
映像処理層:エッジサーバ上でFFmpegを使った解像度変換・フレーム分割を実行し、1秒間に1フレームを解析用に切り出し。処理後のフレームはKafkaトピックへ送信し、バッチ・ストリーム処理をサポート。
-
AI解析層:フレームごとにTensorFlow Serving上の物体検出モデル(RetinaNetベース)とセマンティックセグメンテーションモデルを連携。橋梁のひび割れ、剥離、腐食などを物理的特徴ごとにラベル化し、座標情報付きでPostgreSQL+PostGISへ格納。
-
可視化・レポート層:React製Webアプリで地図上に検出結果をピン表示し、クリックで該当フレームの高解像度画像をポップアップ。検査レポートはPDF自動生成ライブラリ(pdfkit)で出力し、メールやSlack通知を介して関係者へ配信します。
データパイプラインとスケーラビリティ
点検対象が全国各地に点在するため、エッジゲートウェイは軽量コンテナ(Docker)で構築し、ロードバランサー配下にオートスケール可能な設計を採用。KafkaクラスターはAWS MSK(Managed Streaming for Kafka)上に構築し、解析処理はKubernetesクラスターのHorizontal Pod Autoscalerで負荷に応じて自動拡張します。これにより、ピーク時のフレーム処理スループットを毎秒100フレーム以上に維持しつつ、常時はコスト最適化モードでリソースを抑えることが可能です。
また、映像データの永続ストレージはS3互換オブジェクトストレージを採用し、Lifecycleルールで90日を過ぎた未参照データをGlacierへアーカイブ。アーカイブからの復元時にはAthenaでのオンデマンドクエリが可能となり、長期保管とコスト削減の両立を実現しています。
AIモデル開発と検証フロー
損傷検出モデルの高精度化には、現地から収集した1000件以上のアノテーション済フレームを用意し、物体検出モデルとセグメンテーションモデルを個別にチューニング。学習はGPUクラスタ(NVIDIA V100×4)で行い、ハイパーパラメータ最適化にはOptunaを利用。最終的にAP(Average Precision)で85%以上、IoU(Intersection over Union)0.6以上を達成しました。
モデル検証フローとして、テストデータセットをあらかじめK-fold分割し、継続的インテグレーション環境(GitHub Actions+self-hosted GPU Runner)での再学習と評価を自動化。また、現地検証用にブラウザでモデルを軽量動作させるONNX変換モデルも同梱し、飛行前にタブレット端末上での簡易点検支援が可能です。
フロントエンド機能とUX改善
ユーザーインターフェースはReact+TypeScriptで構築し、地図コンポーネントにはMapbox GL JSを採用。損傷箇所のピンにはSeverity(深刻度)を示すカラーグラデーションを適用し、一目で優先度判断ができるように設計しました。さらに、フィルタ機能で「ひび割れのみ」「腐食のみ」「撮影日」で絞り込み、複数フレームのスライドショー再生も可能です。
UX改善では、ユーザーテストのフィードバックをもとに、検出結果の誤検出・見逃しをユーザーが手動でフィードバックできるインタラクションを追加。フィードバックデータはAIモデル再学習用の追加アノテーションとして活用し、継続的な精度向上につなげます。
開発フローとプロジェクト管理
プロジェクトはスクラム開発で進行し、二週間スプリントで以下を実施しました。
-
Sprint1:エッジゲートウェイPoC(ドローン映像受信・フレーム切り出し)
-
Sprint2:Kafkaパイプライン構築と簡易解析モデル導入
-
Sprint3:高精度AIモデル学習&Servingコンテナ化
-
Sprint4:Webアプリ基本画面実装(マップ表示・ピンプロット)
-
Sprint5:レポート自動生成機能とUXフィードバック機能追加
-
Sprint6:可観測性・モニタリング設定、負荷試験
JIRAでユーザーストーリーとタスクを管理し、Confluenceで設計ドキュメントを共有。GitHub PRベースでコードレビューを実施し、CI/CDはGitHub Actionsでユニットテスト・E2Eテスト(Cypress)を自動化しました。
テスト戦略と品質保証
本プラットフォームでは、映像処理からAI解析、可視化/レポート生成まで多層のコンポーネントが連携するため、各層での品質保証が不可欠です。ユニットテストでは、エッジゲートウェイのフレーム分割ロジックやKafkaプロデューサー呼び出しをNode.jsのjest+supertestで検証し、想定外の映像フォーマットやネットワーク断発時のリトライ動作を網羅的にチェックします。AI解析層ではTensorFlow ServingのREST APIをモック化し、特定の入力フレームに対してラベル付け精度やレスポンスタイムがSLOを満たすかをpytest+requestsで自動検証します。
統合テストでは、Docker Compose上にエッジゲートウェイ、Kafka、TensorFlow Serving、PostgreSQLを立ち上げ、サンプル映像を投入してバッチ処理から可視化Webアプリまでの一連フローをE2Eテストフレームワーク(Cypress+Playwright)で自動化。地図表示やピン表示、PDFレポートの内容までHTML DOMとPDFのテキスト抽出テストで確認し、誤検出の有無やレポートレイアウトの崩れを検出します。さらに、継続的インテグレーション(GitHub Actions)では、Nightlyビルドで1,000フレームを用いた負荷テスト(k6)を実行し、「分析レイテンシ99パーセンタイル3秒以下」「エラー率0.1%以下」の基準をクリアしなければマージできないGatekeeperを構築しています。
モニタリングとアラート設計
本番環境では、各コンポーネントの健全性をリアルタイムに把握できる可観測性を整備しました。エッジゲートウェイやAI解析APIにはOpenTelemetryを組み込み、フレーム受信~解析完了までの分散トレースをJaegerに送信。KafkaのLag、解析APIのレイテンシ、PostGISへの書き込み時間などをPrometheus Exporterでメトリクス化し、Grafanaダッシュボードに集約します。
アラート設計では、以下の条件をAlertmanagerで設定し、Slack #infra-alerts チャンネルおよびPagerDutyへ通知します。
-
KafkaコンシューマLagが5000メッセージ超過(点検データ滞留)
-
AI解析APIの95パーセンタイルレイテンシが5秒超過
-
PostGIS書き込みエラー率が1%超過
-
Webアプリの首画面ロード時間が2秒超過
これにより、異常発生から15分以内に担当チームが対応を開始できる運用体制を実現しています。
セキュリティ対策
インフラ点検データは企業の重要資産情報を含むため、全体にわたりセキュリティを強化しました。エッジゲートウェイではTLS1.2以上によるRTMP/HTTPS通信を強制し、認証にはmTLSによるドローン及びオペレータ端末の証明書管理を採用。Kafka連携にはSASL_SSLを設定し、クラスタ間通信を暗号化。
AI解析APIと可視化Webアプリ間の通信もJWTトークンベースの認可を実装し、トークンは短時間有効かつRefreshトークンによる自動更新を可能にしました。また、Webアプリ側ではContent Security Policy(CSP)で外部スクリプト実行を制限し、地図タイル読み込み元やPDF生成スクリプト以外を厳格にブロック。バッチ映像アップロード機能にはウイルススキャンを組み込み、不正ファイル流入を防止しています。
パフォーマンス最適化
高解像度映像を多地点から連続的に取り込む環境下でもスループットを維持するため、以下の最適化を施しました。
-
エッジ側フレーム分割はネイティブFFmpegのライブラリ呼び出しに変更し、CPU使用率を従来比30%削減。
-
Kafkaプロデューサーはバッチ送信に切り替え、1件ずつの送信オーバーヘッドを排除。
-
TensorFlowモデルはTensorRT最適化バージョンを用意し、推論時間を50%改善。
-
Webアプリでは地図タイル描画にWebGLを活用し、ピンプロット数が1万件超でもフレームレート60fpsを維持。
-
PDFレポート生成はNode.jsのworker_threadsを活用し、非同期並列処理で1レポート生成時間を従来比40%短縮しました。
これらによりピーク時でも点検対象200拠点/日を処理できる性能を確保しています。
運用保守とRunbook整備
稼働後はSREチームがオンコール体制で24×7監視を行います。Confluence上に次のようなRunbookを整備し、平均MTTRを2時間から1時間へ短縮しました。
-
エッジゲートウェイ停止:AWS ECSタスク再起動 → CloudWatch Logs でエラー原因特定
-
Kafka Brokerダウン:MSKクラスタ自動フェイルオーバー確認 → 必要に応じてBroker再構築
-
AI解析API異常:GPUノードの状態確認 → Docker Swarmサービス再デプロイ
-
Webアプリ404エラー:Nginx設定・Service Workerキャッシュクリア → 新規デプロイ
-
データ同期遅延:PostGISレプリケーションLag確認 → Vacuum/Analyze実行
四半期ごとにChaos Engineering演習を実施し、上記Runbookの有効性を検証。Blameless Postmortemで改善ポイントをJIRAチケット化し、Runbookへ即時反映するPDCAを回しています。
コストシミュレーションと予算管理
本プラットフォーム導入にかかる初期費用を以下のように試算しました。
-
要件定義・現地調査:300万円
-
エッジゲートウェイ開発:400万円
-
データパイプライン構築(Kafka/MSK):300万円
-
AIモデル開発・最適化:500万円
-
Webアプリ開発・UX改善:300万円
-
テスト自動化・CI/CD整備:200万円
-
モニタリング・Runbook整備:200万円
合計:約2,200万円
ランニングコストは、AWSインフラ(MSK/EKS/S3)月額約30万~50万円、ドローン運行/GCS利用料月額10万~20万円、モニタリングツール月額5万~10万円を含め、年間約600万~900万円を見込んでいます。AWS BudgetsおよびCloudWatchアラームを連携し、予算が80%を超えた時点でSlack通知を発信し、コストオーバーランを未然に防止します。
システム開発会社選びのポイント
ドローン映像×AI解析プラットフォームの受託先選定では、下記の観点で要件定義書とWBSを共有し、見積もり比較を行ってください。
-
エッジシステム開発実績:DJI SDK連携、RTMP/Dockerコンテナ運用経験
-
Kafka/ストリーム処理:AWS MSKまたは自前Kafkaクラスタ運用ノウハウ
-
AIモデル構築力:TensorFlow Serving+TensorRT最適化経験
-
フロントエンド開発:Mapbox/Reactでの大規模マッピング実績
-
CI/CD+テスト自動化:GitHub Actions+Cypress+k6豊富な導入事例
-
SRE/運用:Chaos Engineering実績とRunbook整備ノウハウ
相場感は、小規模(1,800万~2,500万円)、中規模(2,800万~4,000万円)、大規模(4,500万~6,500万円)を目安に、固定価格型と時間単価型の両面で条件を比較し、コスト効果の高いパートナーを選定してください。
まとめ
本ユースケースでは、ドローン映像の高スループット収集からAI解析、可視化、レポート自動生成までを統合したインフラ点検プラットフォームの開発ノートを紹介しました。要件定義、システム設計、AIモデル開発、開発フロー、テスト戦略、モニタリング、セキュリティ、パフォーマンス最適化、運用保守、コスト試算、開発会社選びのポイントまで網羅的に解説。まずはPoCで技術検証を行い、複数社の見積もり比較を通じて最適な受託先と共に本格導入を進めてください。見積もり依頼はこちらからどうぞ。