説明

画像合成プログラム

【課題】マーカーを用いることなく正確な合成画像を作成するプログラムを提供すること。
【解決手段】仮想物体の位置を3次元空間内の1つの基準面に限定し、撮影方向及び焦点距離をデジタルカメラの画像データから取得する。マーカーに替えて平面上の2点とその間の距離のデータを用いて基準面の正確な位置を決定する。仮想物体の位置及び方向については、サイズを決定する際の入力を利用し、また、ジェスチャ等によって変更することを可能とする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、写真画像と他の画像とを合成するプログラムに関するものである。
【背景技術】
【0002】
現実世界の画像(現実画像)に、その現実世界には存在しない他の画像(仮想画像)を合成した合成画像を表示する技術は、拡張現実(Augmented Reality)と呼ばれ、活用が期待されている。例えば、家具やインテリアを購入するに先立って、現実の室内の写真に購入しようとする家具又はインテリアの画像を合成して表示することにより、購入した場合の室内の状況を確認することができる。
【0003】
合成画像は、多くの場合に、現実画像としてカメラで撮影された空間(現実空間)に仮想の物体(仮想物体)を配置したものである。仮想物体の現実空間における位置及び方向を定めるために、「マーカー」と呼ばれる物体を含んで撮影を行い、撮影されたマーカーの画像に基づいて仮想物体の位置並びに方向を決定して合成する方法が広く知られている。例えば、特許文献1にかかる技術が開示されている。
【0004】
しかし、マーカーを用いる方法には、以下の問題があり、仮想現実の活用が困難であった。マーカーは、プログラムによって撮影された画像内からマーカーを発見することを容易にするための特徴的な図柄を含むものであり、多くのユーザにとってその入手が容易ではない。しかし、マーカーを用いることなく仮想物体の位置並びに方向、特に仮想物体の現実空間における位置を定めるプログラムは知られていなかった。
【0005】
実際、カメラで撮影された現実空間に仮想物体を配置した仮想画像を表示するアプリケーション・ソフトウェアがある。例えば非特許文献1に示されたものである。これらのアプリケーション・ソフトウェアにおいては、仮想物体の配置方向については一定の制限があるものの配置位置についてはユーザによる調整(仮想物体のサイズを調整することで、仮想物体の現実空間での奥行きを実質的に調整)に任せている。これに起因して、例えば、現実空間の室内には入らないような大きな家具(仮想物体)であっても奥行き(サイズ)の調整によってはそれが現実空間に納まった合成画像が作成されてしまう。家具の購入を検討しようとするユーザにとって好ましくない。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2003−256876号公報
【非特許文献】
【0007】
【非特許文献1】オフィス家具のレイアウトアプリ(https://www.kaunet.com/kaunet/pdf/20110107_iPhone_kaguap.pdf)
【非特許文献2】Tomas Akenine-Moller, Eric Haines:リアルタイムレンダリング 第2版(50-54ページ)
【発明の概要】
【発明が解決しようとする課題】
【0008】
解決しようとする課題は、特別なマーカーを用いることなく正確な合成画像を作成するプログラムを提供することである。
【課題を解決するための手段】
【0009】
仮想物体は、3次元ポリゴンや曲面のデータとして表されたもの(以下、このようなデータを「3DCG」(3-dimentional computer graphics)と言う。)であることが多い。この場合、仮想物体の位置並びに方向を決定するためには、以下の3つのことを行えばよい。
(1)仮想物体を現実空間に配置する基準面の向きを定める。基準面は現実空間における床や机などの水平面である。カメラの撮影方向が既知であれば計算することができる。(2)その基準面とカメラ(視点)からの距離を定める。(3)仮想物体を現実空間の基準面上の特定の位置に配置する(基準面の向きに合わせた方向で配置する)。
上記(1)についてはカメラの撮影方向が既知であれば計算することができる。(3)については画像を合成した後に調整することが可能であり、また、任意の物としても正しい合成画像が得られる。これらに対し、(2)についてはそれが正しくなければ、現実画像と仮想画像の大小比率の整合しない画像となってしまう。この意味において、(2)が重要である。
【0010】

本発明の画像合成プログラムは、
現実空間がカメラによって撮影された現実画像と、3次元形状データ(3DCG)として表された仮想物体を1つの投影方向から見た画像である仮想画像とを合成した合成画像を作成する画像合成プログラムであって、
前記合成画像は現実空間内の1つの水平面である基準面に前記仮想物体を置いた画像であり、
前記基準面に前記仮想物体を配置するための現実空間内の座標を計算する仮想物体配置手段を備え、
前記仮想物体配置手段は、前記現実画像に含まれている前記基準面上の2点である基準点の現実空間における2点間の距離(基準距離)に基づいて前記基準面のカメラ(視点)からの正確な位置を計算することを特徴とする。
現実画像は、現実空間を、カメラの撮影状態に基づいて射影した2次元画像である。多くの場合、仮想画像は3DCGとして表された仮想物体のものであり、合成画像は仮想画像と現実画像を重ね合わせたものである。ここで、現実空間の任意の位置に仮想物体を配置した合成画像を作成するためには、仮想物体の位置並びに方向を決定する必要がある。
このために、基準面のカメラ(視点)からの正確な位置(カメラ座標系による基準面を表す平面の式)を求める。
仮想物体を基準面上に配置することに限定するので、仮想物体の位置は平面上の移動、仮想物体の方向も平面上の1軸の回転のみに限定できるため画像を合成した後に調整することもできる。そこで、基準面と視点との距離の決定について検討する。基準面と視点との距離がわかれば、現実空間内の正しい位置に仮想物体を配置できるため、最終的に位置、向き、大きさの正しい仮想画像を表示できる。
【0011】

本発明の画像合成プログラムは、
現実画像内の2点を指定しその2点間の距離を入力させるサイズ指示手段を有し、
前記仮想物体配置手段は、その2点を前記基準点とし、前記サイズ指示手段によって入力された距離を前記基準距離とするものであることを特徴とする。
現実画像の中の基準面上にサイズが既知の物体(あるいは風景の一部)が撮影されていれば、その物体の映像(位置、サイズ、方向)によって基準点を定め、既知のサイズを基準距離とすることができる。しかし、そのような物体が撮影されていたとしてもサイズの値がプログラムの利用するデータとして保持されていない場合には、その物体の基準点とその距離をプログラムに入力する必要がある。サイズ指示手段は、この入力を行わせるものである。具体的には、例えば、画像上の2点を指定(マウスでクリック、タッチスクリーンをタップ等)し、その2点の間の距離を入力(入力用のウィンドウが表示されてそこにキーボード等で入力)する操作をユーザに行わせることでよい。
【0012】
本発明の画像合成プログラムは、
前記仮想物体配置手段は、前記基準点の前記現実画像における座標、前記基準距離及び前記現実画像を撮影した時の前記カメラの撮影方向に基づいて、前記仮想物体の現実空間における位置並びに方向を計算することを特徴とする。
仮想物体の現実空間における位置並びに方向を決定するため、従来のマーカーを用いる方法では、マーカーに少なくとも4点を表示し、相互の距離が分かっているそれらの点の現実画像内の座標から逆算して位置、方向及びサイズを決定していた。このためには、マーカー上の表示として、少なくとも4点を必要とした。仮想物体のカメラに対する相対的な3次元位置及びカメラの焦点距離(又はこれらと同等の情報)を求める必要があるからである。
しかし、(1)仮想物体の位置を3次元空間内の1つの水平面(基準面)に限定し、(2)カメラの撮影方向が既知であれば、基準面上の2つの基準点の現実画像における座標と基準距離のみによって仮想物体を配置する基準面の正確な位置と方向を決定することができる。
ここで、カメラの撮影方向は、デジタルカメラの画像データ(例えばExifフォーマットのもの)に含まれているものを使うこともでき、又は、各カメラの既知の値やカメラに備えられた重力センサ等のデバイスによる出力等を使うこともできる。2つの基準点及び基準距離がユーザによって入力される、或いは現実画像の中から基準点がプログラムによって認識され基準距離が既知であることのみによって、基準面の正確な位置を決定することができる。
基準面上に配置する仮想物体の位置及び方向については、ユーザの希望に合わせるものであるが、基準点が2つ(位置を指定する第1点と方向を指定する第2点)あるので、2つの基準点の座標に基づいて位置及び方向を決定することができる。ユーザは、基準点の指定において自己の希望を示すことができる。
本発明の画像合成プログラムは、以上のことを利用し、2つの基準点と基準距離のみをユーザに指定させて仮想画像の現実画像の中での位置、方向を決定する。ユーザによる指定の手間が小さいものである。
【0013】
本発明の画像合成プログラムは、
前記合成画像をタッチパネルスクリーンに表示し、前記タッチパネルスクリーンにおけるジェスチャに基づいて前記仮想物体の現実空間における位置並びに方向を変更する仮想画像移動手段を有することを特徴とする。
室内における家具の配置など、仮想物体を移動、回転させて比較検討したい場合が考えられる。合成画像をタッチパネルスクリーンに表示することにより、ユーザの直感に合わせた移動及び回転が容易に実現できる。
【0014】

本発明の画像合成プログラムは、
前記カメラがスマートフォンに付属するものであり、
前記タッチパネルスクリーンがそのスマートフォンに付属する画面であることを特徴とする。
タッチパネルスクリーンを備えた端末装置として、スマートフォンが広く用いられている。スマートフォンを活用して本発明の画像合成プログラムを広く活用できる。
【0015】
本発明の画像合成プログラムは、
前記現実画像が室内を撮影した写真であり、
前記仮想物体が家具、家電製品又はインテリア向け置物であることを特徴とする。
室内に家具又はインテリア向け置物を配置するアプリケーションは、本発明の画像合成プログラムを有効に活用するものである。
【0016】

本発明の画像合成プログラムは、
サーバにおいて動作し、
前記現実画像がインターネットを介してユーザから受信した画像であり、
前記仮想物体の3次元形状データがそのサーバに保存され、
合成された画像をインターネットを介してユーザの端末装置に表示することを特徴とする。
この構成によれば、本発明の画像合成プログラムをインターネットを介して広く活用することができる。
【発明の効果】
【0017】
本発明の画像合成プログラムは、マーカーを用いることなく仮想物体の位置並びに方向を決定する。2つの基準点を指定して基準距離を入力することで足るので、ユーザの操作が容易である。
【図面の簡単な説明】
【0018】
【図1】図1は、画像合成プログラムの原理を示す図である。
【図2】図2は、サイズ入力手段の画面の例を示す図である。
【図3】図3は、画像合成プログラムのフローの例を示す図である。
【図4】図4は、仮想物体の配置状態の例を示す図である。
【図5】図5は、ジェスチャ及びその処理の例を示す図である。
【図6】図6は、画像合成プログラムの構成の例を示す図である。
【発明を実施するための形態】
【0019】
以下に、本発明の実施例を示す。
【実施例1】
【0020】
本実施例は、本発明の画像合成プログラムの基本動作を示すものである。本実施例においては、現実画像はカメラで撮影された室内の画像であり、仮想物体は家具である。
【0021】
図1は、画像合成プログラムの原理を示す図である。
床面である基準面1を含む画像をカメラ2によって撮影する。カメラの横方向をx軸とし、縦方向をy軸とし、撮影方向をz軸とする座標を「カメラ座標」と言う。カメラの重力センサ等のデバイスにより図にNで示す重力方向が分かる。ベクトルNは単位ベクトル(長さが1のもの)とする。基準面1は床面であるので、重力方向はそれに垂直である。
撮影された現実画像は、カメラ3の後方にある撮像素子に投影されたものであるが、非特許文献2に示されるとおり、仮想スクリーン3上をカメラの前方に想定し、現実空間内の物が仮想スクリーン3に投射されたと考えてよい(仮想スクリーン3上に投射された画像と現実画像とは相似である。)。仮想スクリーン3は、カメラの撮影方向にカメラからdだけ離れた平面であり、カメラ座標でz=dで表される。ここで、dの値はカメラの焦点距離等によって定まるものであり、非特許文献2に記載の方法によりその値を求めることができる。以下、仮想スクリーン3に基づいて説明するが、現実画像と等価である。
【0022】
仮想スクリーン3上に、2つの基準点P及びQを設定する。基準点は、現実空間における基準面上の点P’及びQ’が撮影された点である。また、現実空間におけるP’とQ’との距離eを取得する。
基準点の設定及び距離eの取得は、サイズ既知の物体を撮影しその物体を画像認識することでも可能であるが、本実施例ではユーザが入力する。
ユーザは、コンピュータを用いて画像合成プログラムを起動し、撮影された現実画像データを画像合成プログラムに読み込ませる。画像合成プログラムが現実画像を表示する画面において、P及びQの点をマウスでクリックし、図2に示すウィンドウにおいて基準距離を入力する。図2は、サイズ入力手段の画面の例を示す図である。このように、サイズ既知の物体の2点を指定した場合には選択によって容易に基準距離を入力することができ、それ以外の場合には実際の距離を数値として入力することができる。
図3は、画像合成プログラムのフローの例を示す図である。上記は、図における「サイズ既知の画像があるか」の分岐においてNoでありその下にあるサイズ指示手段5の処理が行われたことになる。
サイズ指示手段5により、基準距離の値e及び基準点P並びにQのx座標並びにy座標が入力される。P及びQのカメラ座標は、x座標、y座標に加えて、z座標(値はdである)を持つ。以下この3次元の座標で表されるベクトル値を、P、Qで表す。
【数1】

【0023】
仮想物体配置手段6は、P、Q及びNに基づき、P’及びQ’を以下のとおりに求める。
カメラ座標の原点(レンズの位置)からNの方向に1だけ移動した平面(以下の数2で表される)と、カメラ座標の原点とP及びQとを結ぶ直線の交点P及びQを以下の数3の式で求める。
【数2】

【数3】

ここで、(P・N)及び(Q・N)は、P及びQとNとの内積である。
及びQに基づき、以下の数4の式により、P’及びQ’を求める。
【数4】


ここで、|P−Q|は、PとQとの距離である。
基準面は、
【数5】


として表される。基準面の正確な位置が求まる。ここで、|P’|,|P|は、ベクトルP’,Pの大きさである。
【0024】
仮想物体配置手段6は、P’及びQ’に基づいて、P’の位置を原点とし、P’からQ’に向かう方向をx’軸、P’から図の上方に向かう基準面の法線をy’軸、x’軸に垂直な基準面内の方向をz’軸とする現実座標を定める。x’軸、y’軸を表す現実座標系の単位ベクトル(U’、U’)は、カメラ座標で以下のとおりになる。z’軸は、x’軸及びy’軸に垂直な方向であるので、容易に計算できる。
【数6】

【0025】
仮想物体配置手段6は、3DCGで表された仮想物体を現実座標に配置する。ここで、仮想物体は、平面y’=0が基準面に置かれるときの底面であり、x’軸方向が幅方向、y’軸方向が高さ方向、z’軸方向が奥行方向であり、z’軸の負の側に正面が向いているように3DCGを構成しておく。また、仮想物体の底面の中の1点を現実座標の原点に合わせるものとして指定しておく。基準面に正しく置かれ、仮想スクリーン3に正面側が投影されるようにするためである。図4は、仮想物体の配置状態の例を示す図である。仮想物体4は、カメラ方向が正面になるように配置され、基準面に正しく置かれている。
なお、本実施例においてはP’を現実座標の原点としたが、他の位置(例えばP’とQ’の中点)を原点としてもよい。また、y’軸は図の上方に向かう基準面の法線でなければならないが、x’軸及びz’軸は本実施例と異なる方向としてもよい。要するに、仮想物体を配置する位置及び方向(基準面の法線方向を除く)についてはプログラムの設計により任意に定めてよい。
【0026】
画像合成プログラムは、現実座標をカメラ座標に変換し、仮想スクリーン3に投影する。
現実座標からカメラ座標への変換は、以下の計算により行われる。
x’軸、y’軸、z’軸の単位ベクトル(U’、U’、U’)をカメラ座標で表現した値を、
【数7】


とするとき、
【数8】


左辺のベクトルがカメラ座標、右辺のベクトルが現実座標である。
このカメラ座標(x、y、z)が、仮想スクリーン3上の(X,Y,d)に投影され仮想画像となる。3DCGのデータを一方向に投影した2次元画像を作成する方法については、既知のものを用いればよい。なお、X、Yは以下の計算で求めることができる。
【数9】

仮想スクリーン3に投影された画像が、合成画像となる。
【0027】
本実施例に示されるとおり、本発明の画像合成プログラムによれば、ユーザは2つの基準点と基準距離を入力することのみによって合成画像を得ることができる。2つの基準点の入力は、マウスのクリックでもよいし、タッチパネルスクリーンを用いる場合には画面のタップでもよく、或いは線分を描くジェスチャを用いて描かれた線分の始点と終点を基準点としてもよい。従来技術のようにマーカーを正確に置いて撮影する必要はない。
また、非特許文献1の技術と異なり、仮想物体が正しいサイズで現実画像に合成される。ユーザは、現実空間に仮想物体を置いた場合について、正確な把握が可能である。
【実施例2】
【0028】
本実施例は、本発明の画像合成プログラムによる合成画像をタッチパネルスクリーンに表示し、タッチパネルスクリーンにおけるジェスチャに基づいて合成画像の移動を行うものである。
【0029】
合成画像がタッチパネルスクリーンに表示されている。ユーザは、ジェスチャを用いて仮想物体の移動(位置の変更)又は回転(方向の変更)を行う。図5は、ジェスチャ及びその処理の例を示す図である。
(a)は移動を行うためのジェスチャであり、ジェスチャ8aは、1本の指で仮想物体をポイントし、希望の位置に動かすものである。
(b)は回転を行うためのジェスチャであり、ジェスチャ8bは、2本の指を仮想物体の周囲で旋回させるものである。
【0030】
ジェスチャを認識した画像合成プログラムは、以下の式により、仮想物体を配置する現実座標を変換する。なお、仮想物体をz’x’平面において移動、回転するものであり、y’座標はジェスチャの前後で同一である。
移動のジェスチャについては、(z’、x’)だけの移動(ジェスチャ8aの始点及び終点に対応する基準面上の2点の座標の差:基準面上の2点の座標は実施例1と同様に数3及び数4により計算できる)とすると、
【数10】

ここで、添字Oは移動前、添字Rは移動後を示す。
回転のジェスチャについては、θだけの回転(ジェスチャ8bの始点と終点の角度の差)とすると
【数11】


ここで、添字Oは回転前、添字Rは回転後を示す。(z’、x’)は、回転ジェスチャの中心点8cに対応する基準面上の点の座標である。
【0031】
画像合成プログラムは、移動・回転の後の現実座標の値に基づき、実施例1と同様に仮想物体を仮想スクリーンに投影して合成画像を得る。なお、ジェスチャの終了を待たず、ジェスチャに追随して合成画像を継続的に更新してもよい。
また、タッチスクリーンパネルを用いない場合には、ジェスチャによらずにマウスの操作により、ドラッグアンドドロップによって移動、所定のハンドルを動かして回転とすることができる。移動、回転のための具体的なユーザ操作は任意に設計できる。
【0032】
本実施例によれば、ユーザは、各種の仮想物体の配置についての合成画像を見ることができる。家具の購入前の検討を考えると、室内で最も気に入る配置の画像を見ることができる。
【実施例3】
【0033】
本実施例は、本発明の画像合成プログラムをサーバにおいて動作させるものである。
【0034】
図6は、画像合成プログラムの構成の例を示す図である。サーバ9とユーザ端末装置10は、インターネットを介して接続されている。サーバ9においては、画像合成プログラム11が動作し、仮想物体データ12が保存されている。ユーザ端末装置10においては、ブラウザ13が動作し、現実画像データ14が保存されており又は作成される。ユーザ端末装置10は、特別のプログラムやデータを持たず、パーソナルコンピュータ、カメラ付きのスマートフォン等の広く用いられているものでよい。
仮想物体データ12は、家具、家電製品又はインテリア向け置物のものである。サーバ9は、これらの物品を販売する者によって運営されている。
【0035】
パーソナルコンピュータであるユーザ端末装置10を使用するユーザは、ブラウザ13を立ち上げ、インターネットを介してサーバにアクセスする。ユーザは、デジタルカメラを用いて撮影した室内の写真(現実画像データ14)をユーザ端末装置10に保持しており、これを画像合成プログラム11に送信する。ここで、現実画像データ14はExifフォーマットであり、焦点距離及び撮影方向のデータを含む。
なお、スマートフォンであるユーザ端末装置10でも、写真を撮影し、焦点距離及び撮影方向のデータを含んでサーバに送信することができる。
【0036】
仮想物体データ12は複数の商品の3DCGを含んでおり、画像合成プログラム11は、図示しない画面においてブラウザ13にこれらを画像表示する。ユーザは、表示ざれた画像から合成画像に用いるものを選択する。
画像合成プログラム11は、現実画像をブラウザ13に表示する。ユーザは、表示された現実画像に対して基準点及び基準距離を入力する。
画像合成プログラム11は、実施例1と同様にして、選択された仮想物体を含む合成画像を作成し、これをブラウザ13に表示する。
この後、実施例2と同様にして仮想物体の移動・回転を行ってもよい。
【0037】
この実施例によれば、家具、家電製品又はインテリア向け置物を販売する者は、効果的に販売を促進することができる。
【産業上の利用可能性】
【0038】
マーカーを用いることなく正確な合成画像を作成するプログラムであり、多くの企業、特に家具販売業者による活用が期待できる。
【符号の説明】
【0039】
1 基準面
2 カメラ
3 仮想スクリーン
4 仮想物体
5 サイズ指示手段
6 仮想物体配置手段
7 ステップ
8 ジェスチャ
9 サーバ
10 ユーザ端末装置
11 画像合成プログラム
12 仮想物体データ
13 ブラウザ
14 現実画像データ

【特許請求の範囲】
【請求項1】
現実空間がカメラによって撮影された現実画像と、3次元形状データとして表された仮想物体を1つの投影方向から見た画像である仮想画像とを合成した合成画像を作成する画像合成プログラムであって、
前記合成画像は現実空間内の1つの水平面である基準面に前記仮想物体を置いた画像であり、
前記基準面に前記仮想物体を配置するための現実空間内の座標を計算する仮想物体配置手段を備え、
前記仮想物体配置手段は、前記現実画像に含まれている前記基準面上の2点である基準点の現実空間における2点間の距離(基準距離)に基づいて基準面の正確な位置を計算することを特徴とする、画像合成プログラム。
【請求項2】
現実画像内の2点を指定しその2点間の距離を入力させるサイズ指示手段を有し、
前記仮想物体配置手段は、その2点を前記基準点とし、前記サイズ指示手段によって入力された距離を前記基準距離とするものであることを特徴とする、請求項1に記載の画像合成プログラム。
【請求項3】
前記仮想物体配置手段は、前記基準点の前記現実画像における座標、前記基準距離及び前記現実画像を撮影した時の前記カメラの撮影方向に基づいて、前記仮想物体の現実空間における位置並びに方向を計算することを特徴とする、請求項1又は2に記載の画像合成プログラム。
【請求項4】
前記合成画像をタッチパネルスクリーンに表示し、前記タッチパネルスクリーンにおけるジェスチャに基づいて前記仮想物体の現実空間における位置並びに方向を変更する仮想画像移動手段を有することを特徴とする、請求項1〜3のいずれか1項に記載の画像合成プログラム。
【請求項5】
前記カメラがスマートフォンに付属するものであり、
前記タッチパネルスクリーンがそのスマートフォンに付属する画面であることを特徴とする、請求項4に記載の画像合成プログラム。
【請求項6】
前記現実画像が室内を撮影した写真であり、
前記仮想物体が家具、家電製品又はインテリア向け置物であることを特徴とする、請求項1〜5のいずれか1項に記載の画像合成プログラム。
【請求項7】
サーバにおいて動作し、
前記現実画像がインターネットを介してユーザから受信した画像であり、
前記仮想物体の3次元形状データがそのサーバに保存され、
合成された画像をインターネットを介してユーザの端末装置に表示することを特徴とする、請求項6に記載の画像合成プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2013−8257(P2013−8257A)
【公開日】平成25年1月10日(2013.1.10)
【国際特許分類】
【出願番号】特願2011−141346(P2011−141346)
【出願日】平成23年6月27日(2011.6.27)
【出願人】(596021562)株式会社セルシス (22)
【Fターム(参考)】