2018年1月24日 更新

スパースモデリング ~少量データから画像を復元~

matlab のコードをもとに,スパースモデリングとは何かについて説明します.今回はスパースモデリングの説明です.

283 view お気に入り 0

スパースモデリングは「魔法の技術」とさえ呼ばれています.比較的新しい技術で,これからの画像処理には欠かせない技術となるのではないかと考えられます.

スパースモデリングの特筆すべき特徴として 少ないデータから情報を知る技術 であることがあげられます.

Wikipedia には以下のような記述がありました.

>スパースモデリング(英語: Sparse modeling、スパース sparse とは「すかすか」、「少ない」を意味する)または疎性モデリングとは、少ない情報から全体像を的確にあぶり出す科学的モデリング.

>圧縮センシングの一技法で膨大なビッグデータを解析して大量のデータに埋もれて見えにくくなってしまう有為な情報を抽出したり、法則性を導き出したり、断片的なデータを補完して実状に忠実に再現する.地球科学、MRIや天文学を含む多くの分野で高分解能化に使用される. 医用画像に関しての応用は、2002年頃に筑波大学の工藤博幸らのグループによる先駆的研究があり、2007年のカリフォルニア大学バークレー校准教授のMichael Lustigらのグループによる研究を契機として急速に広がった.

こんなときどうする・・・?

例を挙げて説明しましょう.

以下のように一部が欠損してしまった画像があるとします.

このとき欠損した部分を何かしらで埋めたいのですが,あなたはどうしますか?

もちろんありもしないデータを作ることはどんな技術でも不可能です.しかし,不可能な場合でも 「ある程度想像できそうかどうか」に注目して画像を見てみてください.

 (4490)

一部が欠損してしまいました.どうしましょう
もちろんこんなのは不可能ですね.様々なパターンがありそうです.
想像にまかせて書くしかないですね.

では次はどうでしょうか.

 (4492)

一部が欠損してしまいました.どうしましょう.

確かにこの場所に何があるか,この写真からは分かるはずもありません.しかし隣接した画素が焦げ茶色をしているので,ここも焦げ茶色で塗りつぶせば・・・?


実はもともとの画像は以下のようでした.予想通りでしたね.

 (4494)

同じ様な色で塗ればもともとの画像に似た画像を得ることができそうですね.

スパースモデリングの「ココロ」とそれに隠された数学

今回の例は少し極端すぎたかもしれません.もちろんカメラでこのように一部が欠損したデータを得ることは無理ですし,一部が欠損したデータを復元したいという要求もあまりないと思います.

しかし今回確認したかったのは, 同一の物体・物質であれば画素値も大体似ているだろう!という直観です.

一番目の画像はいろんな物が込み入っているため,想像するのは無理だった.二番目の画像は欠損が背景で,大体同じような色で塗りつぶされていると解釈できるから,何となく想像することが可能だった.


これをどうやって数学的に表現するかが鍵になります.

スパースモデリングの式について説明しましょう.式で表すと以下のようになります.

\begin{align} F = |d-Ax|^2 + \lambda|\nabla x| \rightarrow {\rm min} \end{align}

  • $F$: 評価関数
  • $d$: 観測データ.今回の場合は画像ですね.
  • $A$: 変換行列.どのようにしてデータを得られたかによって,この行列は変わります.
  • $x$: 復元したいデータ.今回の場合は画像です.
  • $\nabla$: 微分を表す演算子です.今回の場合,$x$は画像なので,二方向の微分を意味します.

一つ目の項は観測データとの二乗誤差を計算する項であり,様々なところでよく見ると思います.

では二つ目の項は?

これはL1ノルム(絶対値ノルム)と呼ばれており, ここにスパースモデリングの工夫が隠されています!

L1 ノルムについて

以下の記事に書かれていますので,ご覧ください.ここではこの項がもたらす結果だけ述べます.

L1 ノルムは, 解がスパース,つまりほとんどが0である部分にだけ値を持つような解を作ることが知られています.

今回,L1ノルムで計算しているのは $|\nabla x|$ です.これは画像の輝度値の変化に対応することは先ほど確認しました.

第二項目を加えることで, $|\nabla x|$に多くの$0$を作ることができます

これにより画像の輝度値の変化が少ない画像が作られるわけです!!

均一な部分はより均一になるような効果が働きます.

様々な物体があるような画像ではあまり使えませんが,現実的な問題では,均一な物質,物体を画像化したいような要求は多いと思います.
 (4501)

次回

matlab のコードを用いて,スパースモデリングがどのように機能するのか確認します. 制約項がどのように働くのか.次回お楽しみに!

15 件

関連する記事 こんな記事も人気です♪

点像分布関数の話

点像分布関数の話

光学系を理解するうえで前提として知っておいた方が良い内容
Yoshiyuki Arai | 464 view
VR解剖アプリを作る その1 ~CTスキャンの結果から3Dデータを得る~

VR解剖アプリを作る その1 ~CTスキャンの結果から3Dデータを得る~

VR解剖アプリを作る連載物です。今回はOsiriXというソフトを使ってCTのデータから3Dデータを作成しました。
山田涼太 | 1,686 view
ImageJ Plugin で数値計算をしてみる #5

ImageJ Plugin で数値計算をしてみる #5

非情報科学研究者 (特に生物系研究者) が ImageJ plugin を作るために超えるべき壁やTipsをまとめます。今回は、面積の平均値や中央値、分散を出力するためのコードをご紹介します。
湖城 恵 | 1,692 view
医療×人工知能の最前線を追え‼ 「人工知能エンジニアMeetUp!#4〜AI医療画像診断支援 & RSNA報告会〜 」のまとめ。Part 1

医療×人工知能の最前線を追え‼ 「人工知能エンジニアMeetUp!#4〜AI医療画像診断支援 & RSNA報告会〜 」のまとめ。Part 1

今回の記事は、12月22日に行われたLPixel主催MeetUpについてです! この記事はLPixelインターンの北村が担当しています。
北村 旭 | 1,828 view
医療×人工知能の最前線を追え‼ 「人工知能エンジニアMeetUp!#4〜AI医療画像診断支援 & RSNA報告会〜 」のまとめ。Part 2

医療×人工知能の最前線を追え‼ 「人工知能エンジニアMeetUp!#4〜AI医療画像診断支援 & RSNA報告会〜 」のまとめ。Part 2

今回の記事は、前回投稿したLPixel主催MeetUp記事のPart2です!医師である龍さんと講演後の懇親会の様子を振り返ってみようと思います。 この記事はLpixelインターンの北村が担当しています。
北村 旭 | 2,297 view

この記事のキーワード

この記事のキュレーター

三好 裕之 三好 裕之