深層学習による亀裂の危険度分類のためのCNNモデル開発
【背景】
現在,我が国には2メートル以上の橋梁が約70万橋存在する.国土交通省の調査によると,2013年の時点では建築年数が50年以上を過ぎている橋梁が全体の約18%(約71,000橋)を占めており,以降増加の傾向にある.大半の橋梁はコンクリート部材が利用されており,その寿命は50年程度とされている.そのため,建築から50年以上を過ぎた橋梁は老朽化の影響により亀裂や風化などの損傷が見られるようになる.将来的には,2033年に全体の約67%(267,000橋)の橋梁が老朽化し,点検対象の構造物が増加すると推測されている.これらの点検を行い事前に損傷を発見する専門家が存在するが,前述したように老朽化した橋梁の増加に伴ってその人数が不足することが懸念されている.点検人数の不足により,点検作業の質が悪化し損傷の見落としが多くなり,最悪の場合その損傷による崩落等の事故が発生する危険性が高くなる.したがって,点検作業員による橋梁の点検作業を支援するシステムが今後必要となる.この点検支援システムに関連する開発では深層学習の技術が多く利用されており,様々な研究が進められている.
図1 築50年以上の橋梁の割合
【システムの全体構成】
本研究室では,図2に示すような構造ヘルスモニタリングシステムの開発が行われている.このシステムは,測定モジュール,損傷を撮影するカメラ,クラウドサーバーなどで構成されている.
測定モジュールは橋梁の表面に設置されおり,主に橋梁の振動を計測している.振動のフーリエスペクトルのデータを収集モジュールに送信している.送信されフーリエスペクトルは,収集モジュールからイーサネットを介してクラウドサーバーに送信される.クラウドサーバーは,日本全国の橋梁の計測データを管理しており,そのデータから橋梁の損傷を発見することが出来る.実際に,ウェブ上で橋梁の振動の波形とその橋梁の損傷同定の結果を確認できている.
さらに,橋梁の損傷部位の画像をカメラで撮影し,その画像から損傷の危険度の自動判定も行っている.損傷度の自動判定のために,クラウドサーバーはCNN(Convolution Neural Network)を用いたディープラーニングのシステムを兼ね備えている.
図2 システムの全体構成
亀裂画像データの収集
危険度の判定モデルを作成するにあたっては大量の画像データが必要となる.この収集作業には多くの時間と労力が求められる.そこで本研究では,画像から亀裂の可能性がある領域を検出する画像処理を行った.更に,この画像処理使用して検出領域に危険度を割り当てるGUIアプリケーションを作成した.このGUIアプリケーションを通して深層学習に必要なデータセットを作成するために必要な情報を内包したファイルを作成した.
図3 亀裂検出処理
亀裂データの拡張
今回収集したデータは,危険度ごとに枚数が異なる.深層学習では,クラス分類の場合,クラスごとのデータ数を均一にすることが望まれている.危険度ごとの画像データの数を均一にするために,アンダーサンプリングによりデータ数を調整した.アンダーサンプリングの結果,危険度ごと,604枚に調整され,全体で3020枚の画像を深層学習のデータセットとして使用した.深層学習で判定モデルを作成する上では,この枚数ではまだ不十分であるためデータ拡張をした.データ拡張をする上で,KerasのImageDataGeneratorクラスを利用しデータ拡張を行った.拡張の内容としては,180度以内の回転と上下左右の反転をしており,拡張による画像内のピクセルの空白を鏡面反射の様に折り返して埋めている.
実験したCNNモデル
本システムでは,既存のモデルにファインチューニングを施し,CNNモデルを作成した.ファインチューニングとは,別のタスクを学習したモデルに対し,その内部を一部変更して本来学習させたいタスクの学習を行う深層学習の手法である.本研究では,Kerasが提供している次の8種類のモデルによるファインチューニングを実行した.
- VGGNet
- MobileNet
- ResNet
- Inception
- InceptionResNet
- NASNet
- Xception
- DenseNet
図5 今回実験したCNNモデル構造の一例(VGGNet)
実験結果
表1に各モデルの評価結果を示す.正答率の平均が最も高いのはResNet50で88.04%だった.平均適合率が最低だったモデルはVGG16とVGG19であり,その他の指標においても20%前後と最低値を取った.その他のモデルにおいては平均適合率が70%以上と比較的高い評価値となっていた.最大適合率では,InceptionResNetV2が97.33%で最大となっており,その他のモデルもVGGモデルを除いては85%以上となっている.最小適合率では,Xceptionが82.65%で最大となっていた.その他のモデルの最小適合率は,最大適合率に対してその評価値の差が大きく見られた.また,各モデルにおいてXceptionのみ各評価値が80%を超えていた.
表1 CNNモデルの精度
発展研究~腐食判定とJetson Nanoへの実装~
発展研究として,ドローンとIoTゲートウェイとしてのJetson Nanoを活用したシステムを考える.システム構成を図4に示す.本システムは深層学習で学習した損傷検出AI を使用しており,AI と橋梁点検者の2回の診断によって橋梁点検が行われる.点検作業として,まず初めにドローンなどの遠隔操作可能な装置を通じて橋梁画像を撮影し,IoTゲートウェイへと送信する.IoTゲートウェイでは,損傷検出AI により撮影画像内の損傷検出が行われ,損傷が検出された画像について橋梁点検者のPC へと出力を行う.撮影画像は損傷検出AIの診断結果を基に損傷毎に分類された状態で出力が行われる.PCに送信された損傷画像を橋梁点検者が確認することで橋梁の損傷診断が行われる.このようにして,橋梁点検時の損傷判定を支援する.また,判定に使用された損傷の画像は専門家による正しい判定が行われた後に,専用のデータベースに蓄積され,モデルの再学習に使用される.
図5 ドローンを活用したAI損傷点検システム
腐食判定のCNNモデル
この研究では,亀裂の他に新たに腐食も判定するCNNモデルも考えた.考案したCNNモデルを図6に示す.
図6 腐食を判定するCNNモデル構成
腐食判定の結果
10 分割交差検証により作られた10 個のモデルの内の一つの学習過程を図7に示す.図7(a)は横軸がエポック数,縦軸が精度のグラフを示しており,Accuracyは試験データに対する精度,Validation Accuracy は検証データに対する精度を示している.図7(b)は横軸がエポック数,縦軸が損失関数のグラフを示している.Lossは試験データに対する損失,Validation Lossは検証データに対する損失を示している.
図7(a)より,エポック数が100 回以降について,検証データに対する精度が向上していないのに対して,試験データに対する精度は向上し続けていることが確認された.このことから,エポック数が100 回以降の学習は過学習になっている可能性が考えられる.一方,図7(b)では,試験データに対する損失関数の値は低下しているが,検証データに対する損失関数の値はあまり変化していないことが確認された.以上のことから本学習モデルの学習回数は100 回前後で十分であることが予想される.
図7 CNNモデルの精度と損失関数
10 分割交差検証により作成された10 個のモデルの内の一つの混同行列を図8に示す.
図8(a)は精度の混同行列を図8(b)は再現率の混同行列を示している.図8より,精度は平均で83.71[%],再現率は平均で83.15[%]であり,精度及び再現率が共に83[%]以上を達成していることが確認された.このように10 個のモデルを総合した結果,精度は平均で83.7[%]を達成していることが確認された.
図7 CNNモデルの精度と損失関数
IoTゲートウェイのJetson Nanoへの実装
Jetson Nanoを用いたIoTゲートウェイシステムの構成を図8 に示す.Jetson NanoにWeb カメラをUSB接続し,Webカメラの撮影映像を取り込み, モニタ上にWeb カメラの撮影映像が出力する.ユーザーは,モニタ画像を見て,現在の撮影画像を300×300[pixel]に切り取る. 切り取った画像が自動的に腐食検出AI に入力され,画像内の腐食検出が行われる.腐食が検出された場合,撮影画像を保存し,モニタ上に腐食判定結果を出力する.腐食検出時の出力の様子を図9 に示す.
図8 IoTゲートウェイの構成
図9 腐食の検出結果