昨今の我々は、テレビやパソコン、スマートフォンにタブレットPCなど、様々な「画面付き」デバイスを用いるようになっています。これらのデバイスにはすべて画面を映し出す「ディスプレイ」が付属しているわけですが、各デバイスにおいてサイズやアスペクト比(幅と高さの比率)はそれぞれ異なります。また、高解像度ディスプレイの普及により、同じディスプレイサイズの中でも解像度が異なることもあります(例:ディスプレイサイズが同じでも、そこに表示されている映像があるディスプレイでは480×680画素で、ある別のディスプレイでは960×1360画素(前者の縦横2倍)である場合など)。

こうした様々な(バラバラな)表示サイズを持つ各デバイスの普及により問題となるのが、「コンテンツを全画面表示にした場合、元のアスペクト比に対してディスプレイにおける表示されるアスペクト比が異なる」点です。例えばそういったコンテンツの例としては、単純な一枚の画像をはじめ、テレビ番組や映画などの動画コンテンツ、Webサイトに電子書籍、電子漫画などがあると思います。このうち、Webサイトや電子書籍の場合は、それぞれ文字の表示方法を制御するHTMLやEPUBといった仕組みが存在しており、それらの仕組みが画面のアスペクト比を変える場合の文字や画像のレイアウトやサイズ変更を担当します。

一方、画像や動画をディスプレイに全画面表示する時には、画像や動画そのものの「アスペクト比(縦と横の長さの比率)」を変更することになります。しかし、単純に元画像の縦の長さと横の長さを変えて表示しただけだと、元の画像で映っている人物や建物などの縦横比が変更されてしまい、撮影した実世界の縦横比が失われた不自然な画像になってしまいます。

このように、元の画像の比率を拡大縮小して表示する時に、自然な画像の見え方を保ったままの画像のリサイズを実現するのが、今回から紹介していく「リターゲティング」という技術です。また、リターゲティングは、既に解説を行った「インペインティング(画像の欠損領域の自動修復)」とも連携して使われる技術です。拡大縮小とここまでは言っていましたが、リターゲティングは元画像を「縮小」する時に自然にリサイズするための技術です。つまり、高画質の元画像を用意しておき、それをリターゲティングすることで各ディスプレイ用の画像に縮小するという流れを捉えておいてください。

リターゲティングは、以下の動画のように、縮小後に残っていなくてもよいピクセルを削除しながら縦横の幅を減らして、かつ残ったピクセルをうまく再配置していくことにより、元画像の自然さを保ったままの縮小画像を作成してくれるという仕組みです。

動画:Image Resizing by Seam Carving

リターゲティング処理では画像を縮小する際に、元画像のままのアスペクト比や見え方を保ちたい「重要な領域」を先に自動/手動で求めておき、縮小後の画像でもそれらの重要領域だけは元画像の見え方を保持させるような処理が行われます。以下の図に、典型的なリターゲッティング後の結果画像とその元画像示しておきますので、どのような画像になるのかを確かめてみてください。

リターゲティングの結果例

それでは、ここからは、まずはリターゲティング処理全体の概要をみていくことにします。

リターゲティング処理の概要

典型的なリターゲティング処理では、以下の図のような2段階の処理を行います。まず、リターゲティング処理後に比率が変わって欲しくない、元画像中の重要領域を示す「重要度マップ」を、なんらかの方法で自動作成します。そして、その作成した重要度マップに従って、重要度の高い領域は元画像の縦横比に保ったまま画像全体の縦横比を変える「リターゲティング処理」を行います。この図では例として、後半のリターゲティング処理が、今回紹介する手法の1つである「シーム・カービング」の場合の処理手順を示しています。

リターゲティング処理の構成(シーム・カービングの場合)

今回は、自動作成を行う重要度マップとして以下の3つの手法を紹介し、その後で自動作成では重要度マップ上に不足している「主観性」を補完する処理についても紹介します。

  1. 低レベル特徴量による顕著性マップ
  2. エッジマップ
  3. 物体性マップ

また、リターゲティング処理として、以下の3つの手法を紹介します。

  1. シーム・カービング(離散的処理)
  2. 変形ベースの手法 (連続的処理)
  3. パッチベースの手法

代表的な手法は、(1)の「シーム・カービング」です。これは、重要度マップ上の重要度のピクセルをつないだ「シーム(つなぎ目)」を用いてリターゲティング処理をピクセル単位で行うという「離散的な処理」による手法です。一方、(2)の変形ベースの手法を用いると、グリッド区分ごとに元画像から出力画像への変形を連続関数的に行う事ができます。また、以前紹介したインペインティング処理と統合したい場合には、すでに紹介したパッチマッチなどを用いる(3)の「パッチベースの手法」も有効です。

次回以降は、各手法の詳細を説明していきたいと思います。