アダコテック技術ブログ

株式会社アダコテックの技術ブログです。

CHLAC特徴の可視化~特徴空間で動画の変化を人の目で追えるか?~

はじめに

こんにちは。この度、株式会社アダコテックでサマーインターンシップに参加いたしました羽田和也です。大学では主に画像認識に関する研究を行っており、アダコテックの異常検知ソフトウェアに興味があったので参加しました。今回はサマーインターンシップで行ったCHLACの特徴量検出について説明していきます。

HLACとは?

CHLACとはHLACに時間の次元を加えて、画像の縦と横、時間の3次元による差分から対象の動きを認識する手法ですそもそもHLACは、画像を縦と横の2次元の情報としてとらえ、そこから図1のHLAC特徴量のマスクパターンで画像を認識していきます。

図1.HLAC特徴量のマスクパターン

HLACに関しては下記のブログを参考にしてください。

techblog.adacotech.co.jp

CHLACとは

 HLACは画像を認識対象としていましたが、CHLACでは時間の次元が加わるため動画を解析することが可能です。また、解析対象が動画となったことにより、マスクパターンは25次元から251次元に拡張します(図2)。

図2. CHLACの251次元の特徴量

CHLACは動画から特徴量を得ることができるため、不審動作や異常動作を検知するのに使用されることがあります。実際にCHLACでの特徴量検出を試したので詳しく説明していきます。(基本原理の説明はこちらのブログをご覧ください!)

techblog.adacotech.co.jp

ハンドジェスチャの特徴量可視化

解析対象

 今回は、まず自分の指で図形を描く動画を撮影して、その動画に対して解析を行いました。描いた図形は図2に示す6種類です。また、学習データには四角形を描く動画を使用しました。

図2. 解析対象となるハンドジェスチャ

ハンドジェスチャにHLACを用いた研究としては下記の論文があります。

インタラクションシステムのための高精度な3次元ハンドジェスチャ認識手法 | CiNii Research

ヒートマップによる可視化

 まずは各データのCHLAC特徴量251次元分の時系列情報をヒートマップにしました(図3)。縦軸: マスクパターン(feature_ID)、横軸: フレーム(frame_num)、色: CHLAC特徴量の大きさで、寒色系は特徴量が小さく、暖色系は特徴量が大きいことを示しています。ぱっと見ではマスクパターンの数が多いため、反応が高いマスクパターンがどんなパターンであるかが分からないことと、他のデータとの比較しにくい点があるため、別の可視化方法を検討します。

図3.CHLAC特徴量251次元分の時系列情報のヒートマップ

マスクパターンごとでの時系列による可視化

 次に、図4のようにマスクパターンごとに縦軸: 各CHLAC特徴量の合計、横軸: フレーム(frame_num)で可視化を行いました。時系列において各フレームの画像に対してどのときにそのCHLAC特徴量が反応しているかがわかり、各画像の上部には該当するマスクパターンを表示しています。今回の解析対象においては周期的な動きが多いのでID133のような動きが一定周期で表れていることはわかり、特徴が捉えられているとはわかります。しかし、この可視化では他のマスクパターンとの比較が難しく動画の特徴を捉えられてるとは言えないため、さらに別の可視化を検討してみます。

図4.CHLAC特徴量の時系列情報のグラフ

元動画とマスクパターンとヒートマップの可視化

 図3のヒートマップ、図4の時系列の可視化それぞれのメリット、デメリットを解消するために、元動画の特定のフレームの1.フレーム差分画像、2.スコアが高い3つのマスクパターン、3.ヒートマップを同時に表示させることを考えます。フレーム差分とはフレームが異なるときの画素の違いを2値画像で表したものを追加することで、特徴量算出に用いた元動画の動きをユーザーが直感的に理解することができるようになります。最終的に図5のように左上にはフレーム差分画像、右側にはヒートマップ、左下にスコアが高い上位3位のCHLAC特徴量のマスクパターンが表示されるようにしました。

図5.①フレーム差分画像、②スコアが高い3つのマスクパターン、③ヒートマップ
各動きに反応するマスクパターンごとの特徴量の解析

 作成した可視化を用いて考察を行います。6種類の動きのうち、3の∞を描く動きに注目します。おおまかに図6に示す通り4つの動きで表されるため、各動きに対してスコアが高くなると予想されるマスクパターンの一部は、斜め方向に動く特徴を捉えられている考えられるため図7のようになると推測しました。

図6.∞の動きの分解

 

図7.各動きに反応するマスクパターンの予想

 図7で予想したマスクパターンの特徴量の動きを、横軸: FrameID、縦軸: 異常値スコアのグラフ上でまとめて表示し

図8.各動きのときにスコアが高くなったマスクパターン

 図8に示す通り、完全に同じではありませんがおおよそ想定通りの結果になりました。一致しなかった理由として、指の動きのみを追っているわけではなく腕の差分も動画差分として特徴量に含まれていることと考えられます。そのため、予想よりも横成分の差分のマスクパターンの特徴量が大きくなっていることがわかります。

 以上の結果から、仮に予測と異なった際でも特徴空間の可視化を行うことで解釈ができる可能性があることが示唆できたと思います。10日間のインターンではこの他にNゲージ(鉄道模型)の動画に関しての実験も行い、考察を行いました。

おわりに

CHLACを使えると予想した場面

 インターンの実験を通して、下記の場面ではCHLACを用いることが可能ではないかと予想しました。

  • 麻雀やトランプゲームでのイカサマ防止
  • 火事、崖崩れ、雪崩の早期発見

まず、麻雀やトランプゲームでは牌やトランプの取り方に大きな個人差はないと思われるため、CHLACを用いれば、ある程度のイカサマを防止することができると考えました。次に、火事や雪崩などの事故や事件の早期発見が可能ではないかと考えました。例えば、火の消し忘れによる火事の予防は「火がついているときに近くに人間がいない」ことを認識することができれば予防が可能ではないかと思います。また、崖崩れや雪崩には予兆があるようなので、それらを検知した場合に異常を知らせるように学習すれば、被害を最小限にとどめることができるのではないかと考えました。

 

インターンシップを通して

 今回のインターンシップでは、異常検知などに使用されるCHLACについて調べていきました。最初はCHLACがどういうアルゴリズムで異常検知できるのか不明でしたが、自分の手で実装することと多くの社員の方の説明のおかげで、おおまかな仕様を理解することができました。CHLACを使用することで、完全に人間が監視映像を見る必要がなくなる未来を実感できました。また、自分の勉強不足と能力不足で困っていた時、メンターの方のサポートがあり非常に心強かったです。10日間ありがとうございました!