2:入力画像が2枚以上(動画)場合

一方、入力画像が2枚以上の場合、つまりカメラか撮影対象が移動する動画の場合での超解像画像と入力画像の位置合わせを考えてみましょう。これは劣化関数でのM(モーション)に対応する処理です。

例えば歩道から車を真横から撮影して、動画中に左から右へ向かう車の平行移動が生じたとします。この動画中のある1フレーム(リファレンスフレーム)を超解像したい時に必要なのは、2フレーム間のチラシの平行移動量です。平行移動量がわかっていれば、その移動量をもとに各フレームをずらすことができます。これにより、例えばリファレンスフレームの解像度を縦横2倍にしたい時に、リファレンスフレームには存在していない画素を、平行移動量を元に他のフレームから平行移動分動いた時のフレームから拝借して用いることができます。逆に、平行移動量が正しく計算できていないと、不自然な画素値で足りない画素を補間することになり、超解像画像が不自然になってしまいます。

図:入力画像2枚の場合の画像レジストレーション

今の例では単純な横方向の平行移動の場合の補間の話でしたが、撮影対象にはそれ以外にもいろいろな変形・移動が生じます。例えば回転したり、奥や手前に移動したり、移動しなくてもグニャグニャと歪んで変形したりもするわけです。また、対象物体が動く場合もあれば、スポーツ映像のようにカメラ自身が頻繁に動く映像でも同様に変形が発生します。つまり、動画の超解像では撮影対称の中でどういう移動・変形が行ったかを推定する必要があり、このフレーム間の移動量・変形量を推定することを、超解像では俗に「モーション推定」と呼びます。

このモーション推定に用いるのも画像レジストレーションです。画像レジストレーションは、「2枚の画像間での一番適切な2次元での移量動・変形量を推定し、片方画像の座標系へ各画像を変形して位置合わせできるように各画素の対応づけを求める」という処理です。すなわち、ある画像が他の目標画像に対して「どれだけ平行移動したか、回転移動したか、奥や手前に移動したか、どの程度歪みが生じたか」などの「2次元幾何的な各画素の移動度」を求めることができます。

図:モーション推定での各画素値による補間

画像レジストレーションはStructure From Motionの時にも登場した「特徴点」を各画像から求めて、それら特徴点同士の対応(あるフレームにおいての特徴点が、別のフレームでのどの特徴点と同じものであるかの対応)を元に、それらの対応での移動量から、画像全体での移動量を求めます。各画素すべての対応全部を使ってモーションを推定してもよいのですが、これだと計算コストが高いので、特徴点のみの対応を計算してそれを元にモーションを推定することが多いです。

画像レジストレーションにより低解像度から目標の高解像度画像への各画素の移動度が求めることができるので(入力動画の低解像度画像同士の移動度を求めるわけではないことに注意)、入力動画には存在しなくて新たに挿入するピクセル値や、同じく入力動画には存在しなかった新たなフレームを自然な移動度により補間する事が可能になります(上記図のモーション推定での各画素値による補間を参照)。ちなみに、元の低解像度の画像にはない位置に画素と画素の間に画素(ピクセル)をあてはめていくこのような処理は「サブピクセル推定」と呼ばれます。

このように超解像では動画中に生じる対象の移動量を画像レジスレーションによるモーション推定で算出し、その移動量を元に各フレームの画素値をずらして合成する形で高解像度映像を作ることが普通です(あらかじめ作っておいたデータベースの知識を利用して、一枚の入力画像だけから超解像を行う技術も存在しますが、今回は触れません)。入力画像が一枚の静止画だと、高解像度画像中で元の画像では存在しなかった座標の画素をすべて補間することになるので、それらの値の予測が大変になります。逆に言うとモーション推定がうまくできれば補間する値はうまく割り当てやすいので、動画による超解像は移動量が上手く計算できればできるほど綺麗な映像を楽につくりやすいという仕組みになっています。

モーション推定では、回転や平行移動にアフィン変換など、色々な変形を全て同時に予測した場合、

  • 画像レジストレーションによる位置合わせが難しくなり失敗が多くなる
  • 計算コストが高くなりリアルタイム処理が難しくなる

といったように、計算に不利な点が出てくるので、どれか1つのモーションのみを仮定して推定することが多いです。例えば「平行移動」のモーションだけを仮定したり、「アフィン変換」のモーションだけを仮定して、その1種類のモーションを推定することが通例です。

今回は詳細の説明を割愛しますが、モーション推定での画像レジストレーションには「オプティカルフロー(Optical Flow)」という技術が用いられることも多いです。 オプティカルフローの仕組みは他の動画関連の技術で用いられる技術で、他の技術で登場した際に別途詳しく紹介する予定です。