skip to Main Content
Hyperspectral Imaging And Sparse Modeling – Practical Experiments

こんにちは、HACARUSデータサイエンティストの増井です。
今回は、HACARUSで注目しているHyperspectral Imageへのスパースモデリング の適用可能性について紹介しようと思います。

Hyperspectral Image

まずはじめに、そもそもHyperspectral Image (HSI) とは何なのかということから紹介しようと思います。普段、私たちに馴染みのあるカメラはRGBカメラと呼ばれるもので、光の三原色である赤、緑、青の波長ごとにセンシングをして撮像しています。基本的には赤、緑、青をうまく混ぜ合わせることで、人間が見た時に自然な画像を作り出すことが可能になっています。

今回紹介するHSIは、赤、緑、青だけでなく、高度な分光技術によって、さらに細かい波長ごとに撮像した画像のことをいいます。最近では、波長方向に数百の解像度を持つHSIカメラも登場しています。

HSIカメラを使うと、人間には区別することが難しいものでも判別することが可能になります。例えば、塩、砂糖、小麦粉の判別であったり、農場の航空写真から、どの作物を育てているかを判別することが可能になります。HSIカメラの導入が期待される分野としては、食品加工時の異物検査などはもちろんのこと、最近では医療分野での応用にも注目されています。

Hyperspectral Image と スパースモデリング

2020年05月17日に Hyperspectral Image Classification Based on Sparse Modeling of Spectral Blocksという論文が公開されました。この論文では、スパースモデリング の辞書学習という手法をうまく用いることで、HSIに何が写っているかを高速に、高精度で分類することを可能にしたという論文です。HSI画像は波長方向に高い解像度を持つので、普通のRGB画像と比べて高次元のデータであるといえます。一般的に高次元のデータに対して分類問題を解こうとすると十分なデータ量を用意しなければ過学習を起こしてしまいます。しかし、スパースモデリング をうまく活用して本質的な特徴量を抽出することで過学習を防ぐことが可能となります。実際、農場の航空写真から農作物を判別する例では、既存のSVMの手法が Accuracy: 80% 程度であるのに対して、スパースモデリングを用いることで、100% に近い性能を達成しました。

この論文を弊社のデータサイエンティスト数名で調査、実装、再現実験を行った結果が以下の通りです。図の一番左は農場の航空画像を作物ごとに色分けした様子です。ここから、ランダムに 10% の画素を訓練データとして使用して、残りの 90% を推論するというタスクを行なっています。SVMを用いた教師あり学習では、Accuracy が 80.188% であったのに対して、スパースモデリング を用いた手法は 96.518% を達成しています。このように、スパースモデリング をうまく活用することで、少量の高次元データに対しても過学習を防ぐことができて性能を大幅に改善することができました。

 

実データでの検証

HACARUSでは、このスパースモデリング ベースのアルゴリズムに改良を重ね、実データに対して、どこまで性能を発揮するかの検証を行いました。今回は、AVALDATA社の近赤外Hyperspectralカメラをお借りして、実際にデータを撮影させてもらい、実験した結果を紹介しようと思います。

次の画像をご覧ください。京都の銘菓である八ッ橋が写っています。左上と右上の八ッ橋は異なるメーカーによる別の八ッ橋が写っており、下のものは生八ッ橋が写っています。今回は、これを元にピクセル単位でどの八ッ橋かを見分けることができるかを、RGBとHSIで比較実験をしました。

 

 

まず、以下のように、画像の一部を使って訓練データを作成します。各八ッ橋と背景から合計460点のみ抽出し、これを使って学習を行います。RGB、HSIともに同じ箇所を訓練データとして、残りの画素に対して推論を行います。

 

RGBに対して分類を行なった結果と、HSIに対して分類を行なった結果は次のとおりです。RGBでは、光の影響などによって誤分類がかなり発生し、生八ッ橋かそうでないかの分類もうまくできていません。一方で、HSIの結果を見ると、全ての八ッ橋をうまく分類できているということがわかります。ただし、八ッ橋の縁の部分に関しては誤分類が発生しているようです。この原因としては、対象物と照明との角度が変わると反射波の成分も微妙に変化し、他のところと少し異なったデータが得られるからだということでした。基本的には、このような部分に対しては別の処理を行うか、境界付近のデータも訓練データに含めるという対策が有効そうです。

このように、人間の目でも判別が難しいような例であっても、HSIという技術を使うことで、違いを見破ることができるということがわかりました。また、HSIの高次元データをうまく扱うためにスパースモデリングが有効であるということもわかりました。今回、HACARUSではHSIをより身近に感じてもらうために、撮影させていいただいたデータを全て、オープンデータとして公開することに決めました。興味がある方は, こちらのリンクより、実際にHSIデータを触ってみて、何ができるか試してみることをオススメします。また、HSIに関する相談であったり、データセットを分析して何か面白い結果が得られたりしたら、気軽に以下のリンクよりご連絡いただければと思います。

お問い合わせ