
こんにちは、ハカルス 東京R&Dセンター所属のエッジ・エバンジェリスト 田胡治之です。
今回はスパースモデリングの技術を活用しつつ、日本の伝統和紙の「鶴」柄でスクラッチ検出を行ってみたのでそちらを紹介します。
エッジでのAI学習が実用的でなかった理由
近年さまざまな企業でディープラーニングの導入・普及が進んでいます。
しかし大きく分けて二つの課題が残っており、まず一つ目は学習段階で膨大な学習データの準備が必要なこと、そしてもう一つは学習段階でバックプロパゲーションなどの膨大な演算が必要なことです。
後者はクラウドに置かれた演算能力の高いGPU付きサーバーで行われ、消費電力も多く必要だったため、エッジ機器で学習を行うことは現実的ではありませんでした。
スパースモデリングとは?
一方で、少量のデータから特徴を抽出し、学習と推論を行える技術があります。
それが今回紹介するスパースモデリング。
そもそもスパースとは、英語で「すかすか」という意味。スパースモデリングは、あらゆるものごとに含まれる本質的な情報はごくわずか=すかすかであるという仮定(スパース性)に基づき、入力から出力に対して「どこが本当に必要な情報なのか」を見極め、抽出します。
スパースモデリングでは、「データ間の関係性を特定する」ことができます。出力を行うとき、スパースモデリングでは入力となるデータそのものに注目するのではなく、入力と出力の関係性を洗い出す。そのデータ同士の関係性に注目することで、入力データ自体の多寡や質は関係なくなり、結果的に必要なデータは少量で済みます。スパースモデリングは機械学習のカテゴリ unsupervised learning 手法の一つでもあります。
一般的に、十分にデータとアノテーションが準備できるような応用 (例:自動運転向けの物体検知など) ではディープラーニングが高性能を発揮する一方で、スパースモデリングはデータを大量に集められない、解釈性の重要度が高いといったユースケースでその適用領域を広げています。
スパースモデリングと深層学習の比較
スパースモデリングは時系列などの一次元データ、画像などの二次元データを取り扱えます。
画像応用では欠損補間、欠陥検査(異常検知)、超解像などがあります。太陽電池パネル検査において欠陥画像を検出する課題に、従来の機械学習手法とスパースモデリング手法の比較を以下に示します。
学習データ量(画像枚数)については、深層学習に比べスパースモデリングでは一桁少ないデータ量で精度は同等以上の90% を得ることができます。また学習時間も19秒で桁違いに短縮することができます。
スパースモデリングが得意なアプリケーション
スパースモデリングは学習段階で入力データから本当に必要なデータ特徴を抜き出すため、学習データが少なくても動作します。産業界の製造現場の外見検査を例にとると、正常データは大量にあるが不良データがとても少ないケースが多くあります。スパースモデリングはこの状況にもフィットさせることができます。
スパースモデリングはモデル作成の計算量が少ないためエッジで推論のみならず、実用的な時間で学習も可能となります。
ハカルスはエッジで学習と推論を行うことを「True Edge」と呼んでいます。
学習データをエッジで行うことでデータを外部(例えばクラウド上のサーバー)に送る必要がなく、データセキュリティの懸念が少ないのが特徴です。
エッジでスパースモデリングを行うのに適した機器としてCongatec and Hacarus AI kit が挙げられます。
Congatec Box-PC と Hacarus AI kit から構成され、動作検証されています。また1Hacarus AI kit は外観検査ソフトウェア SPECTRO COREを含みます。
スパースモデリングの学習と推論
スパースモデリングを使った外観検査の全体フローは以下の通りであり、この例ではパンチングメタルに乗ったネジを異物として検出することを目的しています。
最初にパンチングメタル良品画像を準備、またカメラ撮像時の対象位置ズレを考慮し視野の少し異なる学習画像を数枚~数十枚準備することが推奨されます。
学習フェーズで、この学習画像を学習アルゴリズムに入力して学習を行わせAIモデルを生成します。
検査対象が変化しなければAIモデルは一度作ればよいでしょう。推論フェーズではネジの乗った推論画像とAIモデルを推論アルゴリズムに入力し推論を行わせます。
推論結果として異物の位置を赤い枠で囲い推論画像に、オーバーレイした画像が出力されます。
最初に学習画像をパッチと呼ばれる小領域に分解、次に辞書学習アルゴリズムがパッチを分析して特徴的な画像パターンを抽出します。この例ではパンチングメタルの穴のパターンが64種類抽出されました。
それぞれを基底と呼び、64基底をまとめたものがAIモデル(学習済辞書とも呼ばれる)なのです。
次に推論フェーズ詳細を説明します。
最初に推論画像(A)を学習フェーズと同じ大きさのパッチに分解させます。
分解されたパッチ毎にAIモデルの基底を選びブレンドして、パッチをもっともよく表す組合せを求めます。この処理を全てのパッチについて行って繋ぎ合わせるとAIモデルを使った近似画像がでます。
それを再構成画像(B)と呼び、この中で学習画像と近い画像特徴、この例では規則的な穴のパターンがある場所は推論画像(A)とよく似ています。
それに対して学習画像に含まれない画像特徴をもつ場所、即ちネジが置かれた場所はAIモデルに含まれている基底ではうまく表現できません。その場所では再構成画像と推論画像の間に差が生じ異物が検出できます。
異物検出画像(C)の赤い場所が異物の位置を示しています。
スパースモデリングを使った外観検査適用例
日本和紙の伝統模様である、飛ぶ鶴画像(画像サイズ 640pixel x 480pixel )を使って、スクラッチ検出実験を行いました。
【学習】
深層学習で必要な学習画像枚数に比べ1桁以上も少ない、13枚の正常画像を使って学習を行いました。
これがスパースモデリング手法の大きな特長のひとつ。13枚の画像間で飛ぶ鶴の模様は同じですが画像中の鶴の位置が少しずつ異なります。
この理由はAIモデルに位置不変性(translation invariance)を持たせるためです。
【欠陥検出例】
左下の鶴にスクラッチが一部重なっています。右側の推論結果画像ではスクラッチが異物として検出され、赤い枠で囲まれています。
推論は成功しました。AIモデルは鶴の形を学習済のため、スクラッチによる鶴の形の変化を敏感に検出しています。
【学習画像サイズと学習時間】
以下は飛ぶ鶴の模様に対する学習画像サイズと学習時間のグラフです。
学習画像13枚、画像サイズ 1280pixel x960pixel の場合、学習時間はわずか約16秒。これは深層学習の学習時間に比べ桁違いに短いと言えます。また画像サイズが小さくなるに従い、学習時間はほぼリニアに減少していきます。
【推論画像サイズと推論時間】
画像サイズ 1280pixel x960pixel の推論画像一枚あたり、学習時間はわずか約0.6秒と短く、こちらも画像サイズが小さくなるに従って学習時間はほぼリニアに減少し、 480pixel x360pixel では0.1秒以下になります。
【検出精度】
ハカルス 社外観検査ソフトウェア SPECTRO を用いて、別の産業用画像のデータ 100 枚に対して評価を行いました。
精度 96%、適合率 100%、再現率 95.65% と良好な結果を示しています。グラフ内の異常度スコア (ANOMALY SCORE) は 0から1 の値をとる SPECTRO 内部の指標で、スコアが高いほど異常度が高い事を示しています。
グラフは横軸に異常度、縦軸に全体に占める累積割合を示すしており、赤線のグラフをみると異常度が 0.133 付近で不良品全体をカバーできていることがわかります。
おわりに
今回はスパースモデリングと深層学習の比較、スパースモデリングが得意なアプリケーション、スパースモデリングの学習と推論の仕組みをご紹介しました。
スパースモデリングを使った外観検査プログラム SPECTRO CORE を使って日本和紙の伝統模様「飛ぶ鶴」のスクラッチ検出は良好に行え、また精度・適合率・再現率も高いという結果となりました。
筆者プロフィール
株式会社Hacarus
東京R&Dセンター エッジ・エバンジェリスト 田胡治之
慶応義塾大学工学部 修士課程修了。1977年に東京芝浦電気株式会社の半導体事業部に入社。Sony PlayStation2のCPUであるEmotion Engine、およびPlayStation3のCPUであるCELLプロセッサーの設計開発に携わる。
2012年から台湾(財)工業技術研究院にて,ウェアラブル向けSoC設計技術の研究、エッジAIの研究に従事する。
2019年9月よりハカルス入社。現在は2020年10月に開設した東京R&DセンターにてエッジAIの技術情報発信と顧客開拓を担当。