SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

ITエンジニアのためのスパースモデリング入門

スパースモデリングの画像処理への発展的な応用~欠損補間、異常検知、超解像

  • X ポスト
  • このエントリーをはてなブックマークに追加

超解像

 最後に、超解像についてです。高解像度画像を低解像度画像に一度変換すると、高周波成分が失われます。この失われた高周波成分は、低解像度画像のみからでは、原理上、復元することは不可能です。しかし、これを何とかして高周波成分を推定するというのが超解像です。

 多くの場合は、あらかじめ同じドメインの高解像度画像と低解像度画像の対のデータを大量に用意して、低解像度画像から高解像度画像への変換の規則を学習しておき、新たな低解像画像に対して高解像度画像に変換することで超解像を行います。ここでは、辞書学習を用いて、どのように低解像度画像から高解像度画像への変換を実現するかを説明します。

 まず、低解像度画像と高解像度画像の対のデータを用いて、低解像度辞書\(D_l\)と高解像度辞書\(D_h\)の二つを学習します。この二つの辞書がポイントで、低解像度画像のパッチを表現するときと、高解像度画像のパッチを表現するときは同じスパース表現となるように学習します。つまり、低解像度辞書の\(i\)番目と、高解像度辞書の\(i\)番目は対応しているということです。

辞書学習を用いた超解像の学習の様子
辞書学習を用いた超解像の学習の様子

 この学習された低解像度辞書\(D_l\)と高解像度辞書\(D_h\)を用いて、新たな低解像度画像が与えられたときに、高解像度画像を作り出します。処理の流れとしては、以下の図のようになります。

辞書学習を用いた超解像の推論の様子
辞書学習を用いた超解像の推論の様子

 まず、与えられた低解像度画像と低解像度辞書\(D_l\)を用いて、スパースコード\(X\)を求めます。低解像度と高解像度の辞書の順番は対応しているので、実は、低解像度辞書を高解像度辞書に入れ替えることによって、再構成画像を求めると高解像度画像を作り出すことができるのです。

 実際、芝生の画像を学習、推論した結果、超解像の結果は以下のようになりました。

辞書学習を用いた超解像の結果
辞書学習を用いた超解像の結果

 違いがわかりづらいかもしれませんが、低解像度画像では高周波成分がなくなっていることにより、若干ぼやけた画像になっています。一方、超解像画像の方では、エッジの成分などがより鮮明になっています。元の高解像度画像と、超解像画像でPSNR, SSIMを比較すると、\(PSNR: 23.141, SSIM: 0.802\)の結果が得られました。

さいごに

 本稿では、辞書学習の発展的な応用例として、画像の欠損補間、異常検知、超解像の三つの例を紹介しました。このように、辞書学習のアイデアは、さまざまなところに活用できます。

 ここで用いたソースコードについては、GitHubで公開しています。画像の欠損補間や超解像の詳しい理論やアルゴリズムなどに興味がある方は、ぜひ、『スパースモデリング ― l1 / l0 ノルム最小化の基礎理論と画像処理への応用 ―』の本も読んでみてください。

 次回は、本連載の最終回ということで、スパースモデリングの最近の学術分野におけるスパースモデリングの発展の様子、最新の手法を紹介する予定ですので、お楽しみに。

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
ITエンジニアのためのスパースモデリング入門連載記事一覧

もっと読む

この記事の著者

増井 隆治(株式会社HACARUS)(マスイ リュウジ)

 中学生の頃からプログラミングに興味を持ち、鈴鹿高専で情報学の基礎を学び、その後京都大学に編入し、より高度な数学を学ぶ。大学の実験で仲良くなった大関先生の紹介でハカルスでアルバイトを始める。3年間のアルバイトの後、2019年4月にハカルス初の新卒として入社。データサイエンティストの仕事に邁進している...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/12433 2020/06/22 11:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング