« 人工知能で白黒画像の彩色 | トップページ | 人工知能による深度画像の推定 »

人工知能で手ブレ画像の修復

2017/02/08

今回は,石畑研究室4年のA君が行ったブレ画像の修復です.
手ぶれなどでぼやけてしまった画像を修復してみようというもので,昔から多くの研究がされています.
ニューラルネトワークを使用したものも,すでに何件か発表されています.
先行研究の方法はかなり複雑なので,やはりそれを真似してもう少し簡単にしてみることに挑戦します.


前回同様,研究室に私が撮った写真がいっぱいあるのでそれをデータとして利用しました.
入力データは,カラー画像を白黒画像に変換して使用します.
手ぶれ画像は,1枚の画像を手ぶれ方向に少しずつずらした画像を合成して作成します.
例えば,横にぶれた画像なら,横方向に1画素ずらした画像,2画素ずらした画像,...
を作り全部を合成する感じです.

人工知能(ニューラルネットワーク)には,作ったブレ画像を入力として与えて,ブレていない画像を出力
させます.

Kernelnasi


出力してきたデータを元の正解画像と比較して,訓練を進めます.
この辺は,前回の白黒画像への色付けと同じです.
白黒写真の色付け同様,とりあえず簡単なニューラルネットワークで実験しました.

上手くいかないと報告してきたので見てみると,
おお!!ダメダメだ.
左側が,ブラす前の元画像,真ん中がブラした画像,右がニューラルネットで復元してみた画像です.
ブラす方向と量を3通り変えたものを表示しています.

Bl1

そこで,ネットワークを2つに分けてみたらとアドバイスしました.
1つ目のネットワークは,ブレ画像からブレた方向と量(図ではカーネルと書いています)を推定するもの.
もう1つは,ブレ画像とブレた方向と量を入力して,ブレを戻すものです.
それぞれ,別々に訓練して,あとでつなぎ合わせる作戦です.

Kernelari


やってみた結果が以下です.
左が入力のブレ画像,右がブレた方向と量の正解を教えた時の復元画像,
真ん中がブレた方向と量を入力画像から推定し,それを使って復元したものです.
少しは良くなりました.

Bl2


もう少し性能が良く無いと使え無いですね.
世の中では,画像の中の細かい情報を抽出してブレを戻したり,複数のブレ画像を使って
戻す方法などが研究されています.
来年度の学生にさらに研究を引き継いで欲しいところです.

« 人工知能で白黒画像の彩色 | トップページ | 人工知能による深度画像の推定 »