オープンイノベーションvol.44 【損傷個所を診るためのビューア"てんかく忍者QGISプラグイン"プロトタイプの出力結果を紹介します】

vol.44 【損傷個所を診るためのビューア

■経緯・背景

 

既存のてんかく忍者サービスで良く寄せられる声として「損傷個所の一覧だけを早く入手したい」といったものがあります。

通常のデータ処理フローでは、撮影→データ加工→YOLOによる損傷検出→検索・閲覧の流れでお客様による確認が1週間程度になってしまいますが、「今日撮影したら明日には直ぐに目視点検をしたいんだ!」というような日次のワークフローに適用できなかったんです。


AIによる損傷検出がニーズど真ん中のソリューションなのですが、人の目に代わって損傷を検出するAIを作る過程では、教師データの蓄積が必須であるため、「まずは損傷を目視確認できる画像を位置情報と共に蓄積し、損傷検出モデルを作りましょう!」という順番になっています。

しかし、おいしい果実を得るまでの長い試行錯誤が必要で、最終工程に近いところで、ようやく"損傷個所はココだ!"が現れてくるわけです。


そこで、今弊社で提供しているてんかく忍者サービスの工程に手を入れることで、翌日渡しが出来る手法を考えてみました。

従来の工程の組み換え

01_flow.png

 

既存のてんかく忍者でイケていない工程

  • 静止画の生成で時間がかかる
  • 大きなデータをクラウド~弊社間で転送するのに時間が掛かる

これらは高精細な画像を生成して、クラウド上で閲覧する仕組みである以上、宿命とも言える最大の弱点であり、今の手法を取る限り解決できない問題です。
今回の記事では、"てんかく忍者QGISプラグイン(仮)"がどのようにこれらの課題を解決し、どのようなアウトプットをお客様に提示できるのか?をご紹介していきます。


※ここでご紹介する"てんかく忍者QGISプラグイン"はプロトタイプを開発している段階であり、お客様にご提供できる姿にはなっていません。

それでも興味があるので使ってみたいと思われる方がいらっしゃいましたら、"こっそり"とご提供することも可能です。 末尾の問い合わせ先から私宛に問い合わせください。

 

■ニーズ

 

「損傷個所のみを素早く確認したい。(撮影の翌日に損傷個所の一覧を入手したい)」

 

■手順

 

  1.  YOLOで動画の損傷検出を実行します。※
  2.  動画の各フレームと位置(緯度経度、キロ程)を対応させます。
  3.  検出した損傷をスコア化、区分します。
  4.  スコアと区分によって情報を選別します。
  5.  損傷個所のみの一覧を生成、画像の確認をします。←今回紹介する部分

 

①~④は当社による仕込み作業、➄がお客様に提供される手段に相当します。
➄は、結果のExcel帳票と写真だけの提供も可能ですし、より高機能なQGISのプラグインでの提供も可能です。


今回は、「損傷個所の一覧だけを早期に提供して欲しい」の声に対応した➄の部分を中心にご紹介し、後に弊社による仕込みの部分である①~④のご紹介をしていきます。

 

■結論

まずは結論です。

撮影の翌日に損傷個所の一覧を提供することが可能です。※
Excel帳票の場合は、そのまま損傷個所がどこにどの程度あるのか?をキロ程が付与された状態でお届けできます。
QGISプラグインの場合は、アプリ起動から5分で任意条件で絞り込んだ損傷個所のリストを入手できます。
また少し時間を頂ければ、より詳細な情報をまとめた報告書のご提供も可能です。

 

■ポイント!

 

  • 動画を静止画に書き出さない→動画をそのままビューアで活用する
  • 損傷の情報が速く欲しい→動画による物体検出結果を処理の先頭で実施する 

■前提条件(良くお読みください)

 

  • GNSS-BeatBoxによる位置情報取得と動画への同期音声録音がされていること
  • YOLOによる損傷検出モデルがあること
  • 対応すべきキロ程(KP)のデータが整備されていること
  • インターネットで動画やGPXデータ、位置情報データベースの送受信が可能な環境があること
    (特に即時性を求める場合は、弊社とのインターネットVPN接続やNAS、データ加工PCの設置が必須条件) ・てんかく忍者のサービスを契約されていること

 

 

■出力される帳票の例(速報版)

KP順に整列し、損傷スコア、損傷レベル、画像リンクで損傷個所のみをリスト化したExcel帳票です。そのまま印刷して、目視点検の現場のチェックリストとして活用いただくイメージです。

静止画を事前に生成してあれば、帳票から写真の呼び出しも出来、現場に直行する前の予察も楽々です。

 

02_excel.png

 

特徴

・キロ程(KP)に割り当てられたYOLO損傷検出の結果、動画フレームとの整合
・GNSS受信情報(FIXモード、受信衛星数、精度情報)の記載
・YOLO損傷検出の生データと抽出情報 ・YOLO損傷検出結果から推定した損傷スコア値と損傷レベル区分
・静止画リンク
・利用者が任意に追記したコメント列

 

非表示列を再表示(すべての列を表示した例)
03_export_expand.png

参考情報、詳細情報は初期状態では非表示になっています。

すべての列を表示するとこのようになります。

 

KP、YOLO物体検出結果列、損傷スコア、損傷レベル、コメント
04_excel.png

YOLO物体検出の元データや、検出された主要なクラス、検出数などや、これらの情報を元に算出された損傷スコア、損傷レベルなど、状況を確認するための有益な情報と共に、コメント欄への記載などで、要注意箇所をマーキングできます。

 

■出力される報告書の例(詳細版)

全体傾向や中長期での経時変化の比較には、統計処理が有効です。

日常的な目視点検のチェックリストとしての活用だけでなく、全体を見た場合に、どのKP付近が安心でどのKP付近が要注意箇所なのかを、エヴィデンスを元に可視化します。既に現場のナレッジとして共有されている事項が、統計的にどのように表れるのかの確認にも使っていただけると思います。

 

特徴

 

・KPごとに集計した損傷スコアグラフ
・損傷レベルによるフィルタ絞り込み
・KPごと、YOLO検出クラス毎の検出数グラフ
・検出クラス間の共起グラフ
・推定される損傷スコア、損傷レベルと写真の確認

 

構成

 

・目次
・損傷スコアの傾向
・全体の損傷スコアグラフ(X軸:KP、Y軸:損傷スコア)
・損傷個所ワースト10(写真)
・全体表 ・1Km単位の損傷スコアグラフ、クラス毎検出数ヒートマップ
・1Km単位の表

 

目次ページ
05_index.png

ページ数が多いので、目次リンクページを用意しました。

 

グラフ:損傷スコア(全体)
06_damage_score_total.png

YOLOの検出結果を集計、カウントし算出した"損傷スコア"でざっくりと全体傾向を把握できます。損傷スコアは安全・安心側のマイナス値を青で、要確認箇所のプラス値を赤で表し、注意を促します。

本WEB記事中でも度々登場した、南阿蘇鉄道管理機構様の実データの場合は、PC枕木が連続するところが青のマイナス側で連続し、特定の区間で赤い部分の集中が見られました。人が"交換対象枕木"としてペンキでマークした部分で赤が出ている傾向を確認できました。

・参考:損傷スコアの算出方法(一例)

損傷スコアは、YOLOの各検出クラス毎に、検出数と出現頻度補正係数、検出の確からしさにそれぞれのクラスで設定した係数を掛け、出現した全クラスの和をもとめたものです。

画像一枚中で検出されている損傷個所を評価し、正常、損傷を数値で評価するために導入した指標です。

損傷スコア = Σ (検出数 * 出現頻度補正 * 確からしさ * 係数) 

・係数の例

YOLO検出クラス 係数 コメント
PC枕木 -2 対策済み(安全側)
合成枕木 -1 対策済み(安全側)
木枕木(正常) 0 通常
木枕木欠けあり(注意) +1 要注意(危険側)
木枕木交換対象(損傷) +2 アウト(危険側)

グラフ:損傷スコアの分散
07_damage_score_graph.png

前述の数式で算出した損傷スコアの統計値を表します。

偏りの傾向を見ることで、目視点検による人の感覚とマッチングさせていく必要があります。数式の見直しや係数の見直しの際には統計的に有意かどうか、各指標が独立しているかどうかなどを検討することになります。

この例では、0付近に急峻なピークがありますが、これは踏切、トンネル、遊間などのそれ自体は損傷有無に影響しないランドマークをすべて係数0としたため、数式で0をいくらかけても0なので多く出ています。

0を除けば安心側(マイナス)に傾いた、ほぼ正規分布となっており、統計的にも正しい結果と見做せると考えます。

 

写真:損傷ワースト10
08_10pics.png

損傷スコアの悪いものを10例写真で確認できます。

悪くないのに悪く出ていないか?正常なものが混じっていないか?人の感覚とのマッチングが悪ければ、指標そのものを見直す必要があります。

 

表:全体
09_list_total.png

全区間のデータ表です。損傷スコアはセル内グラフで値を大小を識別でき、損傷レベルセルを色分けすることで、一目で状態が分かるように工夫しています。

KP順に整然と並べられ、フィルタ機能を使うことで、例えば損傷レベルが"損傷""注意"のモノを抽出して最優先部分を確認したり、"優良""安定"の部分で対策済み区間のみを確認したり、または"観察"部分で細かな損傷を診ていくなどできます。

損傷スコア、損傷レベルの仮設定によって、目的に応じたデータの選別が可能になります。

 

KP1Km毎:YOLO検出クラス毎ヒートマップ&損傷スコアの分散
10_1kp_1.png

損傷スコア、損傷レベルといった推測値ではなく、具体的にYOLOの物体検出モデルがどこで何を検出したかの詳細を見るのであれば、YOLOクラス別のヒートマップが有効です。

どのクラスとどのクラスが同時に出現するか"共起※"の傾向からも状態を推測することが出来ます。

ここではクラスとして設定していませんが、例えば"噴泥"、"雑草"という検出クラスと、損傷枕木として検出される場所が一致している、遊間モデルで遊間の狭い・広いといった情報が、枕木の損傷と一致しているか、部分的にPC枕木に変更した部分で損傷の進行はしていないか?などです。

※クラス間の共起も別のグラフとテキスト情報として出力してありますので、必要であれば確認できます。

 

KP1Km毎:表
11_1kp_2.png

全域と同じく、全列のデータ表です。

シートをKP1Km単位で分割しているので、1Km分です。

 

損傷レベルでフィルタして写真を確認
12_check_image.png

最後に、全体のデータシートで、損傷レベル"損傷"のみをフィルタして、画像による確認をしている例です。

まとめ

緯度経度情の情報を1次元のKP(キロ程)で並べることと、YOLO損傷検出モデルが検出した損傷個所を、損傷スコア、損傷レベルとして数値化、ラベル化することで、どこを確認すべき、何を確認すべき・・を一覧化できました。

機械の目、機械の視覚神経で、すべての写真を確認し、数式で算出した"予兆"部分のみを人が目視確認するといった未来的なシナリオが、果たして実際の目視点検で効果を生み出せるのか?

「是非、弊社と実証しましょう!」

 

 

▼この記事を書いたひと

001@2x.png

R&Dセンター 松井 良行

R&Dセンター 技術戦略担当部長。コンピュータと共に35年。そしてこれからも!

 

お問い合わせ

ご意見・ご質問などお気軽にお問い合わせ下さい。
ナカシャクリエイテブ株式会社

●富士見事務所 TEL : 052-228-8744(交通部営業課) FAX : 052-323-3337(交通部共通)
〒460-0014 愛知県名古屋市中区富士見町13−22 ファミール富士見711  地図

PoCのお問い合わせ:交通部営業課
技術的なお問い合わせ:R&Dセンター

Email:メールでのお問い合わせ