(57)【特許請求の範囲】
【請求項１】
個人のグループの画像をキャプチャする、電子デバイス中の方法であって、
前記グループの第１の部分の第１の画像をキャプチャすることと、
第２の画像のライブプレビューを前記電子デバイスのディスプレイ上に生成することと、前記第２の画像が前記グループの第２の部分を備え、
前記第２の画像の前記ライブプレビュー上に前記第１の画像の少なくとも一部分を重畳することと、ここにおいて、前記第１の画像と前記第２の画像の前記ライブプレビューとの一方または両方が、第１の画像と前記ライブプレビューの両方が少なくとも部分的に見えるように、一定のレベルの透過性を割り当てられる、
前記第１の画像と前記第２の画像の前記ライブプレビューとの相対位置決めに関するユーザ入力を受け取ることと、前記ユーザ入力が、前記第２の画像の前記ライブプレビューに対する新規の位置への、前記第２の画像の前記ライブプレビュー上に重畳された前記第１の画像の前記少なくとも一部分の再配置を規定する、
前記グループの前記第２の部分の前記第２の画像をキャプチャすることと、
前記ユーザ入力に少なくとも部分的に基づいて前記第１の画像と前記第２の画像とを最終的な張合せ画像になるように張り合わせることと、前記最終的な画像が、前記グループの前記第１の部分と前記グループの前記第２の部分とを備える、
を備える、方法。
【請求項２】
前記第２の画像の前記ライブプレビュー上に前記第１の画像の少なくとも一部分を重畳することが、
前記第２の画像にあるレベルの透過性を割り当てることと、
前景位置に前記第２の画像を割り当てることと、
背景位置に前記第１の画像を割り当てることと
を備える、請求項１に記載の方法。
【請求項３】
前記電子デバイスの前記ディスプレイがタッチセンシティブディスプレイスクリーンを備える、請求項１に記載の方法。
【請求項４】
ユーザに前記最終的な張合せ画像のプレビューを表示することをさらに備える、請求項１に記載の方法。
【請求項５】
前記第１の画像と前記第２の画像との相対位置決めに関する更新されたユーザ入力を受け取ることと、
前記更新されたユーザ入力に少なくとも部分的に基づいて前記第１の画像と前記第２の画像とを張り合わせることと
をさらに備える、請求項４に記載の方法。
【請求項６】
前記張り合わせることは、複数の継目ラインと前記複数の継目ラインの各々に対応するエネルギーレベルとを評価することと、最低のエネルギーレベルを有する継目ラインを選択することとを備える、請求項１に記載の方法。
【請求項７】
継目ラインの位置に関するユーザ入力を受け取ることをさらに備え、ここにおいて、前記継目ラインが前記第２の画像に前記第１の画像を張り合わせるための境界を決定する、請求項１に記載の方法。
【請求項８】
個人のグループの第１の部分の第１の画像と前記グループの第２の部分の第２の画像とをキャプチャするように構成された画像センサと、
前記第２の画像のライブプレビューを表示するように構成されたディスプレイと、前記ディスプレイは、前記第２の画像の前記ライブプレビュー上に重畳された前記第１の画像の少なくとも一部分を表示するようにさらに構成され、ここにおいて、前記第１の画像と前記第２の画像の前記ライブプレビューとの一方または両方が、第１の画像と前記ライブプレビューの両方が少なくとも部分的に見えるように、一定のレベルの透過性を割り当てられる、
前記第２の画像の前記ライブプレビューと前記第１の画像の前記少なくとも一部分との相対位置決めに関するユーザ入力を受け取るように構成されたユーザ入力モジュールと、前記ユーザ入力が、前記第２の画像の前記ライブプレビューに対する新規の位置への、前記第２の画像の前記ライブプレビュー上に重畳された前記第１の画像の前記少なくとも一部分の再配置を規定する、
前記ユーザ入力に少なくとも部分的に基づいて前記第１の画像と前記第２の画像とを最終的な画像になるように張り合わせるように構成された画像張合せモジュールと、前記最終的な画像が、前記グループの前記第１の部分と前記グループの前記第２の部分とを備える、
を備える、画像キャプチャデバイス。
【請求項９】
前記ディスプレイが、前記第１の画像のライブプレビュー上に前記グループの前記第２の部分のために確保されたスペースの指示を表示するようにさらに構成される、請求項８に記載の画像キャプチャデバイス。
【請求項１０】
前記ディスプレイがタッチセンシティブディスプレイである、請求項８に記載の画像キャプチャデバイス。
【請求項１１】
ユーザインターフェースをさらに備え、ここにおいて、前記ユーザインターフェースが前記タッチセンシティブディスプレイを備える、請求項１０に記載の画像キャプチャデバイス。
【請求項１２】
前記ディスプレイが、前記第１の画像と前記第２の画像とを張り合わせる前に、前記最終的な画像のプレビューを表示するようにさらに構成される、請求項８に記載の画像キャプチャデバイス。
【請求項１３】
前記ディスプレイ上の前記第１の画像と、前記第２の画像の前記ライブプレビューと、前記第２の画像との表示を管理するように構成されたユーザインターフェース制御モジュールをさらに備える、請求項８に記載の画像キャプチャデバイス。
【請求項１４】
前記ユーザインターフェース制御モジュールが、前記第１の画像と前記第２の画像の前記ライブプレビューとの一方にあるレベルの透過性を割り当てるように構成された透過性モジュールをさらに備える、請求項１３に記載の画像キャプチャデバイス。
【請求項１５】
前記第１の画像と前記第２の画像との重複領域に低エネルギー継目ラインを配置するように構成された継目ライン生成モジュールをさらに備える、請求項８に記載のデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]本明細書で開示するシステムおよび方法は、一般に、画像張合せに関し、より詳細には、複数のキャプチャ画像から単一のグループ画像を生成することに関する。
【背景技術】
【０００２】
[0002]デジタル撮像機能は、デジタルカメラ、タブレットコンピュータ、およびモバイルフォンを含む、広範囲のデバイスに組み込まれてきた。デジタル撮像デバイスおよび画像キャプチャシステムは、静止画像またはビデオをキャプチャするデバイスを含む、１つまたは複数のデジタル画像をキャプチャすることができる任意のタイプのデバイスを指し得る。
【０００３】
[0003]デジタル処理技術と撮像デバイスとの統合は、写真生成物を使用するのをより強力でより容易にし、小型デバイスが画像データをキャプチャし拡張するのを可能にした。たとえば、デジタル撮像デバイスは、セグメント化されたパノラマまたは高解像度の画像を生成するために複数の写真画像を重複する領域（overlapping fields）と組み合わせるプロセスである、画像張合せを採用し得る。一般にコンピュータソフトウェアの使用を介して実行されるが、大部分の画像張合せを行うための方法は、２つ以上の画像のエッジを整合させ、エッジの重複領域を決定し、重複領域に基づいて画像を組み合わせ、たとえばパノラマにする。いくつかのデジタル撮像デバイスは、これらの写真を内部で張り合わせることができるが、いくつかの画像張合せ技法は、別のコンピューティングデバイス上で実行される。
【０００４】
[0004]別の例として、デジタル撮像デバイスは、第１の画像のオブジェクトまたは一部分を第２の画像のシーンに組み入れるプロセスである、画像合成を採用し得る。このタイプの動作は、デジタル画像を修正、修復、または変更するのに、およびモンタージュ写真を生成するのに有用である。画像合成は、通常、ユーザによる第１の画像からのオブジェクトまたは一部分の選択を必要とし、従来の画像編集ソフトウェアの様々なツールへの精通を必要とする時間がかかるプロセスであり得る。必然的に、通常、編集された領域と元の画像の残りとの間に継目（seams）がもたらされることを含む、いくつかの問題が生じる。
【０００５】
[0005]デジタルカメラなどの画像キャプチャデバイスの１つの一般的な使用法は、人々のグループの画像をキャプチャすることである。しかしながら、撮影者は、グループの一員であることが多く、したがって、グループおよび撮影者は、撮影者が画像に含まれることを望む場合がある。これに対する１つの解決策は、グループ内にいない別の人に撮影を頼むことである。しかしながら、撮影者の役を務めることが可能な他の人が常にいるとは限らない。グループ画像中に撮影者を含める問題の別の解決策は、画像をキャプチャするためにカメラのセルフタイマー機能を使用し、撮影ショットを設定した後に撮影者がグループに加わる時間を与えることである。しかしながら、セルフタイマーの使用は、一般に、近接する物体上でカメラのバランスをとる必要がある。そのようなすぐに利用可能な物体が常にあるとは限らず、利用可能な近接する物体の使用は、理想的でないフレーミング、および／またはグループ画像の理想的でない合焦をもたらすことが多い。別の写真中に撮像された撮影者をグループ写真に手動で合成することは、スキルと専門のソフトウェアへの精通とを必要とする時間がかかるデジタル編集プロセスである。
【発明の概要】
【０００６】
[0006]したがって、グループ画像を形成するために動的画像張合せを可能にし、ユーザによって必要とされる動作を簡略化するための迅速で効果的なツールを提供する画像キャプチャシステムを提供することが望ましい場合がある。本明細書で説明するシステムおよび方法の一実施形態は、たとえば、第１の撮影者がグループの第１の部分の第１の画像をキャプチャすることを可能にし、次いで第２の撮影者が第１の撮影者を含み得るグループの第２の部分の第２の画像をキャプチャしながら第１の画像の透光性オーバーレイを見ることを可能にし、またはその逆も同様である、画像キャプチャデバイスのビューファインダーまたは画像キャプチャデバイスに関連付けられた別のディスプレイ中にユーザインターフェースを提供することができる。ユーザインターフェースは、ユーザが第１の画像と第２の画像との相対位置決めを調整することを可能にする場合もある。相対位置決めは、画像張合せのために第１の画像と第２の画像とを整合させるために使用され得る。ユーザインターフェースは、第１の画像の一部分に第２の画像の一部分を張り合わせるために使用され得る継目ライン領域をユーザが識別することを可能にする場合もある。
【０００７】
[0007]別の実施形態では、画像キャプチャシステムは、第１の画像および第２の画像の重複領域のための継目ラインを自動的に決定することができ、継目ラインは、第１の画像と第２の画像とを互いに張り合わせるために使用され得る。継目ラインは、第２の画像の領域に張り合わされる第１の画像の領域との間の境界であり得る。
【０００８】
[0008]一実施形態では、継目ラインの最低エネルギー経路は、第２の画像中の対応するピクセルの勾配値から、重複領域中の第１の画像の各ピクセルの勾配値を減算することによって、またはその逆によって決定され得る。他の実施形態では、ピクセルのルミナンス値またはクロミナンス値は、勾配値の代わりに、または勾配値に加えて使用され得る。２つのグレースケール画像を互いに張り合わせる実施形態では、ルーマと勾配値との一方または両方が使用され得る。２つのＲＧＢ画像を互いに張り合わせる実施形態では、ルミナンス、クロミナンス、および勾配値のいくつかまたはすべてが使用され得る。
【０００９】
[0009]一態様は、グループの第１の部分の第１の画像をキャプチャすることと、電子デバイスのディスプレイ上に第２の画像のライブプレビューを生成することと、第２の画像がグループの第２の部分を備える、第２の画像のライブプレビュー上に第１の画像の少なくとも一部分を重畳することと、ユーザ入力を使用してグループの第２の部分の第２の画像をキャプチャすることと、第１の画像と第２の画像のライブプレビューおよび第２の画像の一方との相対位置決めに関するユーザ入力を受け取ることと、ユーザ入力に少なくとも部分的に基づいて第１の画像と第２の画像とを最終的な張合せ画像にするために張り合わせることと、最終的な画像がグループの第１の部分とグループの第２の部分とを備える、を含む、特定の実行可能な命令で構成された１つまたは複数のコンピューティングデバイスによって実施される方法に関する。
【００１０】
[0010]別の態様は、個人のグループの第１の部分の第１の画像とグループの第２の部分の第２の画像とをキャプチャするように構成された画像センサと、第２の画像のライブプレビューを表示するように構成され、第２の画像のライブプレビュー上に重畳された第１の画像の少なくとも一部分を表示するようにさらに構成されたディスプレイと、第２の画像のライブプレビューと第１の画像の少なくとも一部分との相対位置決めに関するユーザ入力を受け取るように構成されたユーザ入力モジュールと、ユーザ入力に少なくとも部分的に基づいて第１の画像と第２の画像とを最終的な画像にするために張り合わせるように構成された画像張合せモジュールと、最終的な画像がグループの第１の部分とグループの第２の部分とを備える、を備える画像キャプチャデバイスに関する。
【００１１】
[0011]別の態様は、第１の画像および第２の画像を備える画像データを受け取ることと、第１の画像と第２の画像との重複領域を決定することと、重複領域が複数のピクセルを備える、開始ピクセルを選択することと、開始ピクセルが複数の隣接ピクセルに隣接する、複数の隣接ピクセルの各々に関する差分値を計算することと、現在の継目ラインピクセルである複数の隣接ピクセルのうちの１つを選択することと、開始ピクセルの第１の位置データと現在の継目ラインピクセルの第２の位置データとを備える継目ラインピクセル位置データを構築することとを備える、特定の実行可能な命令で構成された１つまたは複数のコンピューティングデバイスによって実施される、低エネルギー継目ラインを決定する方法に関する。
【００１２】
[0012]別の態様は、第１の画像と第２の画像との重複領域を決定するように構成された重複決定モジュールと、重複領域内に低エネルギー継目ラインを生成するように構成された継目生成部と、低エネルギー継目ラインが第１の画像を第２の画像に張り合わせるための境界を表す、継目ラインの総エネルギーレベルを計算するように構成された継目エネルギー計算部とを備える、継目ライン生成システムに関する。
[0013]以降、本発明の特定の実装形態が、限定ではなく例として与えられる以下の図面を参照して説明される。
【図面の簡単な説明】
【００１３】
【図１Ａ】[0014]組み合わされたグループ画像を生成するプロセスを示すユーザインターフェースディスプレイを示す図。
【図１Ｂ】組み合わされたグループ画像を生成するプロセスを示すユーザインターフェースディスプレイを示す図。
【図１Ｃ】組み合わされたグループ画像を生成するプロセスを示すユーザインターフェースディスプレイを示す図。
【図２Ａ】[0015]重複領域内に表示された継目ラインを用いて重複構成の１対の画像を示す図。
【図２Ｂ】重複領域内に表示された継目ラインを用いて重複構成の１対の画像を示す図。
【図２Ｃ】重複領域内に表示された継目ラインを用いて重複構成の１対の画像を示す図。
【図３】[0016]グループ画像または張合せ画像をキャプチャおよび生成するための例示的なシステムの概略ブロック図。
【図４】[0017]ユーザインターフェース制御モジュールの一実施形態を示す概略ブロック図。
【図５】[0018]張合せ画像生成モジュールの一実施形態を示す概略ブロック図。
【図６】[0019]ユーザが案内される画像張合せのための例示的なプロセスを示す概略流れ図。
【図７】[0020]２つの画像を互いに張り合わせるために継目ラインを決定するための例示的なプロセスを示す概略流れ図。
【図８】[0021]例示的な継目ラインピクセル選択プロセスを示す概略流れ図。
【発明を実施するための形態】
【００１４】
序論
[0022]本明細書で説明する画像キャプチャ／張合せ技法は、各々がグループの一部分と実質的に同様の背景とを含む、２つ以上の画像をキャプチャし張り合わせることができる。いくつかの実施形態は、プロセスの様々な段階において、たとえば画像整合において、および画像を互いに張り合わせるための境界を画定する継目ラインを配置することにおいて、ユーザ入力を受け取るように設計されたユーザインターフェースを実装することができる。いくつかの実施形態は、画像を整合させ、低エネルギーレベルを有する継目ラインを生成するための自動プロセスを実施することができ、継目ラインが視覚的に満足できる張合せ画像の結果を生成する可能性が高いことを示している。さらに他の実施形態は、ユーザにキャプチャ機能および張合せ機能を推奨しながら、必要な場合、推奨された機能をユーザが変更することを可能にするために、ユーザ入力と自動画像整合とを組み合わせることができる。
【００１５】
[0023]本明細書で説明するシステムおよび方法の一実施形態は、たとえば、撮影者がグループの第１の部分の第１の画像をキャプチャし、次いでグループの第２の部分の第２の画像をキャプチャしながら第１の画像の透光性オーバーレイを見ることを可能にする、画像キャプチャデバイスのビューファインダーまたは画像キャプチャデバイスに関連付けられた別のディスプレイ中にユーザインターフェースを提供することができる。一実施形態では、第２の画像は、第１の画像中にキャプチャされた第１のグループの一部分でなかった追加の人を含むためにキャプチャされる。他の実施形態は、ビューファインダー中の不透明な第１の画像上に第２の画像のプレビュー画像の透光性オーバーレイを表示し得る。いくつかの実施形態では、ユーザは、たとえば、第１の画像と第２の画像とのどちらが透光性で表示されるかを選択し、選択された画像の不透明度レベルを選択することによって透光パラメータを制御することができる。
【００１６】
[0024]ユーザインターフェースは、ユーザ、たとえば第２の撮影者が第１の画像と第２の画像との相対位置決めを調整することを可能にする場合もある。いくつかの実施形態では、第１の画像の透光性オーバーレイは、第２の画像のキャプチャ中に第２の画像のビューファインダープレビュー画像を用いて再整合され得る。タッチセンシティブスクリーンを有する画像キャプチャデバイスの一実装形態では、たとえば、ユーザは、不透明な画像に対して透光性画像を再配置するために指によるドラッグまたはスワイプのジェスチャーを使用することができ、透光性画像または不透明な画像をズームインまたはズームアウトするためにツーフィンガーのピンチを使用することができ、透光性画像の水平線と不透明な画像の水平線とを整合させるために回転ドラッグジェスチャーを使用することができる。第１の画像と第２の画像とを整合させるための他の実施形態では、ボタン制御または音声制御が使用され得る。相対位置決めは、画像張合せのために第１の画像と第２の画像とを整合させるために使用され得る。ユーザインターフェースは、第１の画像の一部分に第２の画像の一部分を張り合わせるために使用され得る継目ライン領域をユーザが識別することを可能にする場合もある。
【００１７】
[0025]いくつかの実施形態は、画像を自動的に整合させ張り合わせることができ、画像を張り合わせるための境界として継目ラインを自動的に決定することができる。継目ラインは、第１の画像および第２の画像の重複部分に関して決定され得る。いくつかの実施形態は、重複部分を決定するために第１の画像と第２の画像とを自動的に整合させ得るが、いくつかの実施形態は、画像のユーザ整合に少なくとも部分的ｉｎに基づいて重複部分を決定し得る。次いで、最低エネルギー径路決定プロセスが、最低エネルギー径路を求めて重複領域を探索する場合があり、画像または画像前景を互いに張り合わせるためにその径路を使用する場合がある。
【００１８】
[0026]低エネルギーまたは最低エネルギーの継目ラインは、重複領域中の開始ピクセルを選択し、ルミナンス、クロミナンス、深度、または別のピクセル値などの、開始ピクセルの値を識別することによって決定され得る。この値は、開始ピクセルに隣接するピクセルに関して決定される場合があり、隣接ピクセルの値と開始ピクセルの値との間の差分を表す差分値が、複数の隣接ピクセルの各々に関して計算され得る。隣接ピクセルのうちの１つが、現在の継目ラインピクセル、たとえば最低の差分値を有する隣接ピクセルとして設定され得る。次いで、現在の継目ラインピクセルに隣接するピクセルに関して差分値が計算される場合があり、重複領域のエッジに達するまで次の現在の継目ラインピクセルが選択され得る。開始ピクセルおよび他の継目ラインピクセルの座標または位置は、継目ラインピクセル位置データを構築するために記憶される場合があり、画像を互いに張り合わせるために使用される場合がある。
【００１９】
[0027]いくつかの実施形態では、たとえば、重複領域中のピクセルのエネルギーマップから複数の継目ラインが生成され得る。いくつかの実施形態では、エネルギーマップは、勾配値から生成され得る。画像張合せのために使用する複数の継目ラインのうちの１つを選択することは、各継目ラインの累積エネルギーコスト、たとえば最小累積勾配差分を検査することを含むことができる。同じ最低累積エネルギーコストを有する２つ以上の継目ラインが存在する場合、いくつかの実施形態では、継目ラインの長さに基づいて画像張合せのために一方が他方に優先して選択される場合があり、すなわち、直接下方に動く継目ラインが対角線方向に動く継目ラインよりも優先され得る。他の実施形態では、各継目ラインに関して最大の差分を有する継目ラインピクセルが決定される場合があり、最低の最大差分値を有する継目ラインが選択され得る。さらなる実施形態では、これらの継目ラインを使用することによって複数の考えられる一意の張合せ結果が生成されユーザに表示される場合があり、ユーザは、張り合わせられた画像オプションから選択することができる。
【００２０】
[0028]最低エネルギー径路決定プロセスは、いくつかの実施形態では重複領域の最上行の左端ピクセルであり得るが、他の実施形態では重複領域内の任意の他のピクセルであり得る、開始ピクセルにおいて開始し得る。次いで、最低エネルギー径路決定プロセスは、開始ピクセルに隣接するピクセルの各々に関して第１の画像および第２の画像からのピクセル値間の差分値を計算し得る。最低の差分値を有するピクセルが現在の継目ラインピクセルとして設定される場合があり、現在の継目ラインピクセルの方向に継目ラインが描かれる場合がある。いくつかの実施形態では、現在の継目ラインピクセルの位置情報が、継目ラインピクセル位置データを含むメモリ中に記憶され得る。継目ラインピクセル位置データは、画像張合せ中に継目ラインを構築するために使用され得る。
【００２１】
[0029]いくつかの実施形態では、しきい値未満の差分値を有する隣接ピクセルがない場合、最低エネルギー径路決定プロセスは、開始ピクセルとして異なるピクセルを設定する場合があり、新規の開始ピクセルに隣接するピクセルに関する差分値を計算し得る。重複領域中のピクセルのいずれもしきい値未満の差分値を有しないと決定される場合、最低エネルギー径路決定プロセスは、第１の画像および第２の画像が十分な類似性を含まないことをユーザに示す場合があり、ユーザは、しきい値を調整するための、または張合せのために新規の画像をキャプチャするための選択可能なオプションを表示される場合がある。
【００２２】
[0030]最低エネルギー径路決定プロセスは、現在の継目ラインピクセルを決定した後、現在の継目ラインピクセルに隣接するピクセルの各々に関して第１の画像および第２の画像からのピクセル値間の差分値を計算し得る。しきい値未満の差分値を有する隣接ピクセルがない場合、このプロセスは、新規の開始ピクセルで再び開始し得る。少なくとも１つの隣接ピクセルがしきい値未満の差分値を有する場合、現在の継目ラインピクセルは、最低の差分値を有する隣接ピクセルになるように更新される場合があり、継目ラインピクセル位置データが、更新された現在の継目ラインピクセルの位置情報を含むように更新される場合がある。いくつかの実施形態では、継目ラインピクセル位置データは、現在の継目ラインピクセル位置を前の継目ラインピクセル位置と比較するために使用され得る。現在の継目ラインピクセル位置データが前の継目ラインピクセル位置データ内の任意の登録項目にマッチングする場合、継目ラインは再びそれ自体に重なり、このプロセスは、継続することが可能ならば、無限ループに立ち往生する場合がある。したがって、現在の継目ラインピクセル位置データが前の継目ラインピクセル位置データ内の任意の登録項目にマッチングする場合、このプロセスは、新規の開始ピクセルを選択し再び開始する場合がある。
【００２３】
[0031]最低エネルギー径路決定プロセスは、このプロセスが重複領域の最終行のピクセルに達するまで、隣接ピクセルに関する少なくとも１つの差分値がしきい値未満である限り、また現在の継目ラインピクセル位置データが前の継目ラインピクセル位置データ内の任意の登録項目にマッチングしない限り、現在の継目ラインピクセルに隣接するピクセルの各々に関して第１の画像および第２の画像からのピクセル値間の差分値を計算し続け得る。継目ラインの開始ピクセルが開始行にあり、継目ラインの最終ピクセルが最終行にあるとプロセスが決定するとき、このプロセスは、完成された継目ラインを記憶するか、または、ユーザへの表示のために、もしくは画像張合せのために完成された継目ラインを出力し得る。最上行の開始ピクセルで継目ラインを描き始める実施形態では、最終行は、最下行であり得る。いくつかの実施形態では、継目ラインがエッジの行で終了する場合、プロセスは、継目ラインが不完全な最終張合せ画像を提供し得るか、または新規の開始ピクセルで再び開始し得るという指示とともにユーザに継目ラインを表示し得る。
【００２４】
[0032]いくつかの実施形態では、たとえば各継目ラインピクセルの差分値を合計することによって、完成された継目ラインの総エネルギーレベルが計算され得る。継目ラインの総エネルギーレベルは、画像張合せにおける使用前に、またはユーザへの表示前に、しきい値と比較され得る。以下で説明するように、完成された継目ラインの総エネルギーは、最終的な張合せ画像のあり得る品質のユーザへの指示を生成するために使用され得る。いくつかの実施形態では、単一の最低エネルギー継目ラインの代わりに複数の低エネルギー継目ラインオプションがユーザに表示される場合があり、低エネルギー継目ラインオプションは各々しきい値未満の総エネルギーレベルを有する。
【００２５】
[0033]述べたように、いくつかの実施形態は、ユーザ入力と、画像張合せファクタの自動決定とを組み合わせることができる。一実施形態では、ユーザが案内されるグループ画像キャプチャインターフェースは、ユーザが画像整合位置および継目ライン位置のうちの１つまたは複数を見るか、変更するか、または入力することを可能にすることができる。複数の継目ラインが生成された場合、ユーザは、画像を互いに張り合わせるために継目ラインのうちのどれを使用すべきかを選択するためのオプションを有し得る。いくつかの実施形態では、継目ラインの外観は、たとえば、エネルギーレベルに基づいて色スペクトルで継目ラインを表示することによって、ユーザに継目ラインの総エネルギーを示すように変化することができる。説明のために、一実施形態では、緑の継目ラインは、低エネルギー継目ラインを表すことができ、黄色は中間レベルのエネルギー継目ラインを表すことができ、赤い継目ラインは高エネルギー継目ラインを表すことができる。このシステムは、継目ラインエネルギーの指示を提供するために、自動的に生成されるか、またはユーザによって入力された継目ラインの外観を変更することができる。
【００２６】
[0034]たとえば画像の一方を他方に対して再配置することによって、ユーザが第１の画像と第２の画像との間の空間関係を変更する場合、いくつかの実施形態では、更新された継目ラインは、自動的に生成および／または表示され得る。現在の位置決めおよび／または選択された継目ラインを使用して第１の画像および第２の画像から生成された最終的な張合せ画像のプレビューは、現在の画像位置決めと、張合せのために現在選択された継目ラインとを使用して画像張合せを続けるべきかどうかを決定する際に使用するためにユーザに出力され得る。
【００２７】
[0035]本明細書で開示する実装形態は、グループのサブセットを含む複数の画像から組み合わされたグループ画像を生成するためのシステム、方法、および装置を提供する。これらの実施形態は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得ることを当業者は認識されよう。
【００２８】
[0036]以下の説明では、例の完全な理解を与えるために具体的な詳細を与える。ただし、例はこれらの具体的な詳細なしに実施され得ることを当業者は理解されよう。たとえば、例を不必要な詳細において不明瞭にしないために、電気的構成要素／デバイスをブロック図で示す場合がある。他の事例では、例についてさらに説明するために、そのような構成要素、他の構造および技法を詳細に図示する場合がある。
【００２９】
[0037]例は、フローチャート、流れ図、有限状態図、構造図、またはブロック図として示されるプロセスとして説明される場合があることにも留意されたい。フローチャートは動作を逐次プロセスとして説明することがあるが、動作の多くは並列にまたは同時に実行される場合があり、プロセスは繰り返される場合がある。さらに、動作の順序は並べ替えられ得る。プロセスは、その動作が完了すると終了する。プロセスは、方法、関数、プロシージャ、サブルーチン、サブプログラムなどに対応し得る。プロセスがソフトウェア関数に対応するとき、その終了は呼出し関数またはメイン関数への関数の復帰に対応する。
【００３０】
[0038]情報および信号は、多種多様な技術および技法のいずれかを使用して表され得ることを当業者は理解されよう。たとえば、上の説明全体を通じて参照され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場または磁気粒子、光場または光粒子、あるいはそれらの任意の組合せによって表現され得る。
例示的なユーザインターフェースの概要
[0039]図１Ａ〜図１Ｃは、グループの第１のサブセットを含む第１の画像とグループの第２のサブセットを含む第２の画像とからグループ画像を生成するための１つの考えられるプロセス中のいくつかの例示的なステップを示す、画像キャプチャデバイス１００の様々なユーザインターフェースディスプレイを示す。ユーザインターフェースは、画像キャプチャデバイスのビューファインダーディスプレイなどのディスプレイ上、または画像キャプチャデバイスに関連付けられた別のディスプレイ上に表示され得る。
【００３１】
[0040]たとえば、様々な実装形態では、図１Ａに示すように、グループ１１５の第１の部分の第１の画像１２５がキャプチャされる場合があり、第１の画像１２５中のスペース１２０が、第１の撮影者１０５のために確保される場合がある。第１の画像１２５は、第１の背景１１０および第１の前景を含む場合があり、第１の前景はグループ１１５の第１の部分と場合によっては他の前景オブジェクトとを含む。いくつかの実施形態では、画像キャプチャデバイス１００は、たとえば、第１の画像および第２の画像のピクセルに関連付けられた深度マップデータを分析することによって、または、一般に画像の前景領域または背景領域のうちの１つに関連付けられた顔または空などのオブジェクトの認識によって、前景を含む第１のピクセル領域と背景を含む第２のピクセル領域とを決定し得る。他の実施形態では、画像キャプチャデバイス１００は、前景および背景を決定することなく本明細書で説明する画像張合せ方法を実行し得る。
【００３２】
[0041]図１Ｂに示すように、第１の撮影者１０５は、第１の画像１２５をキャプチャした後、次いで、撮影者のために確保されたスペース１２０に移動し、第２の撮影者（手１３５によって示す）が画像キャプチャデバイスの制御を引き継ぐ場合がある。次いで、画像キャプチャデバイス１００は、第２の画像１３０のキャプチャを導くために重畳ライブビューを起動し得る。重畳ライブビューでは、図１Ｂに示すように、第２の画像１３０のライブプレビューが、画像キャプチャデバイス１００上に表示され得る。第１の画像１２５の少なくとも一部分が、ライブプレビュー上に重畳され得る。他の実施形態では、ライブプレビューは、第１の画像１２５上に重畳され得る。第１の画像１２５と第２の画像１３０のライブプレビューとの一方または両方は、第１の画像とライブプレビューの両方が少なくとも部分的に見えるように、一定のレベルの透過性を割り当てられ得る。画像キャプチャデバイスのユーザは、第１の画像およびライブプレビューのうちのどちらが最上層であるかを選択する場合があり、いくつかの実装形態では、各層の不透明度を設定することができる。第２の撮影者は、ライブプレビューに対する第１の画像１２５の表示部分の位置、レイアウト、および／またはサイズを調整し得る。第２の撮影者は、第１の撮影者１０５の位置が第２の画像１３０中の確保されたスペース１２０内に入るように案内するために重畳ライブビューを使用する場合もある。
【００３３】
[0042]第２の画像１３０は、背景１１０および第２の前景を含む場合があり、第２の前景は第１の撮影者１０５を含む。第２の画像の背景は、第１の背景１１０と実質的に同じであり得る。いくつかの実施形態では、第１および第２の画像は、第１および第２の背景が実質的に同様になるようにしきい値時間期間内に同様の視点から取得され得る。画像キャプチャデバイス１００は、第１の画像の背景のフレーミングの指示を第２の撮影者に提供するように構成され得る。画像キャプチャデバイス１００は、第１および第２の画像の他の属性、たとえば背景オブジェクトの明暗および位置の類似性のレベルに関する他の指示を第２の撮影者に提供する場合もある。いくつかの実施形態では、画像キャプチャデバイスは、第１および第２の画像の属性の類似性のレベルを決定するために、第１の画像のピクセルのうちの少なくとも一部のピクセル値を第２の画像のピクセルのうちの少なくとも一部のピクセル値と比較し得る。ピクセル値は、たとえば、ルミナンス、クロミナンス、勾配値、または深度値であり得る。
【００３４】
[0043]図１Ｃに示すように、画像キャプチャデバイス１００は、第２の画像１３０をキャプチャした後、第１の画像１２５と第２の画像１３０とを互いに融合するか、張り合わせるか、またはさもなければ併合することによって実質的にシームレスな張合せまたは合成で最終的な画像１３５を構成し得る。第１の画像の前景および第２の画像の前景は、共有される背景１１０上で互いに張り合わされ得る。したがって、最終画像１３５は、第１の撮影者を含むグループ全体を含む。カメラのユーザは、たとえば、第１の画像および第２の画像を互いに動かすことによって、画像シーン中の重要な構成要素の輪郭を描くことによって、または第１の画像および第２の画像が互いに張り合わされるべき境界を画定することによって、最終的な画像が生成される方法を介して多少の制御を用いる場合がある。
【００３５】
[0044]図２Ａ〜図２Ｃは、様々な重複構成の１対の画像２００、２０５を示す。重複領域は、１つまたは複数の継目ラインを用いて表示される。継目ラインは、第１の画像の一部分が第２の画像の一部分に張り合わされ得る境界を表す。いくつかの実施形態では、継目ラインは、共有される背景上で互いに張り合わされた第１の前景と第２の前景との間の境界を決定するために使用され得る。いくつかの実施形態では、継目ラインは、以下でより詳細に説明するように、最低エネルギー径路決定プロセスを介して画像キャプチャデバイスまたは別のコンピューティングデバイスによって自動的に決定され得る。最低エネルギー径路決定プロセスは、上述の画像張合せプロセスのサブプロセスであり得るか、または任意の画像張合せアプリケーション、画像合成アプリケーション、もしくは他の画像組合せアプリケーションにおいて使用され得る。継目ラインは、いくつかの実施形態では、たとえば、タッチセンシティブディスプレイ上で指またはスタイラスなどを用いて第１の前景と第２の前景との一方または両方の境界を示すラインをユーザが描くことによって、ユーザによって提供され得る。いくつかの実施形態は、ユーザ入力継目ラインを改善するために最低エネルギー径路決定技法を使用し得る。
【００３６】
[0045]図２Ａおよび図２Ｂに示すように、ユーザは、第１の画像２００と第２の画像２０５とを手動で整合させる場合があり、重複部分上に表示される１つまたは複数の継目ライン２２５、２３０を入力するか、またはこれらの継目ラインを表示される場合がある。いくつかの実施形態では、最低エネルギー径路決定プロセスは、１つまたは複数の継目ラインを提供するように構成され得る。他の実施形態では、ユーザは、継目ラインを入力することができる。いくつかの実施形態では、継目ラインを決定するために、ユーザ入力と自動プロセスとの組合せが使用され得る。ユーザは、表示された継目ラインおよび選択された重複領域を使用して第１の画像２００および第２の画像２０５が張り合わされた場合、これらの画像がどのように見えるかのプレビュー２１０、２１５を表示される場合もある。プレビュー画像２１０、２１５によって示されるように、図２Ａおよび図２Ｂの重複領域は、張合せ画像２１０、２１５中に複製された背景要素が存在するとき、最適の張合せ画像を生成しない。
【００３７】
[0046]いくつかの実施形態では、１つまたは複数の継目ラインの視覚的外観は、たとえば、継目ラインのエネルギーレベルの決定に応答してディスプレイ上に示された継目ラインの色を変更することによって、１つまたは複数の継目ラインのエネルギーレベルの指示を提供することができる。いくつかの実施形態では、赤い継目ラインは、高レベルのエネルギーを示す場合があり、最終的な張合せ画像において削除される第１の前景と第２の前景との一方または両方におけるオブジェクトの一部分をもたらし得る。黄色の継目ラインは、中間のエネルギー量を示す場合があり、右側に表示されるように、最終的な張合せ画像中に表示される複製背景オブジェクトをもたらし得る。緑の継目ライン、または複数の考えられる継目ラインを含む重複部分の緑の領域は、低いエネルギー量を示す場合がある。他の実施形態では他の視覚的指示が使用される場合があり、いくつかの実施形態では、総継目ラインエネルギーまたは継目ラインとは別個の別の指示とが、継目ラインエネルギーの評価のためにユーザに表示され得る。
【００３８】
[0047]図２Ｃの重複した第１の画像２００および第２の画像２０５に示されるように、第１の画像２００および第２の画像２０５をカットもしくはトリミングするために、または共有される背景上で張り合わせるために第１の画像の前景と第２の画像の前景とをカットもしくはトリミングするために低エネルギーの継目ラインの領域２３５内の継目ラインを使用することは、撮影されたグループのすべてのメンバーを含み、認識可能な繰返しの背景オブジェクトを含まない、実質的にシームレスな最終的な張合せ画像２２０をもたらし得る。
システム概要
[0048]図３は、グループ画像または張合せ画像をキャプチャおよび生成するための例示的なシステム３００のハイレベルブロック図を示し、システム３００は、撮像センサ３１５にリンクされたプロセッサ３２０を含む構成要素のセットを有する。作業メモリ３０５、記憶装置３１０、電子ディスプレイ３２５、およびメモリ３３０もプロセッサ３２０と通信している。
【００３９】
[0049]システム３００は、セルフォン、デジタルカメラ、タブレットコンピュータ、携帯情報端末などのデバイスであり得る。システム３００は、画像をキャプチャするための内部または外部のカメラを使用する、デスクトップパーソナルコンピュータ、ビデオ会議局などの、より動かないデバイスである場合もある。システム３００は、画像キャプチャデバイスと、画像キャプチャデバイスから画像データを受け取る別個の処理デバイスとの組合せである場合もある。システム３００上で、複数のアプリケーションがユーザにとって利用可能であり得る。これらのアプリケーションは、従来の写真アプリケーションと、パノラマ静止画像およびビデオと、画像張合せアプリケーションとを含み得る。
【００４０】
[0050]画像キャプチャシステム３００は、画像をキャプチャするための画像センサ３１５を含む。画像センサ３１５は、たとえば、電荷結合デバイス（ＣＣＤ）、相補型金属酸化物半導体（ＣＭＯＳ）センサなどであり得る。画像センサ３１５は、キャプチャされた画像を画像プロセッサ３２０に伝送するためにプロセッサ３２０に結合され得る。画像プロセッサ３２０は、以下でより詳細に説明するように、高品質の張合せ画像を出力するために、受信したキャプチャ画像に対して様々な動作を実行するように構成され得る。
【００４１】
[0051]プロセッサ３２０は、汎用処理ユニット、または撮像アプリケーションのために特別に設計されたプロセッサであり得る。図示のように、プロセッサ３２０は、メモリ３３０と作業メモリ３０５とに接続される。示される実施形態では、メモリ３３０は、撮像センサ制御モジュール３３５と、ユーザインターフェース制御モジュール３４０と、張合せ画像生成モジュール３４５と、キャプチャ制御モジュール３５０と、オペレーティングシステム３５５とを記憶する。これらのモジュールは、様々な画像処理タスクとデバイス管理タスクとを実行するようにプロセッサを構成する命令を含む。作業メモリ３０５は、メモリ３３０のモジュール中に含まれるプロセッサ命令の作業セットを記憶するためにプロセッサ３２０によって使用され得る。代替的に、作業メモリ３０５は、デバイス３００の動作中に作成された動的データを記憶するためにプロセッサ３２０によって使用される場合もある。
【００４２】
[0052]上述のように、プロセッサ３２０は、メモリ３３０に記憶されたいくつかのモジュールによって構成される。撮像センサ制御モジュール３３５は、撮像センサ３１５の焦点位置を調整するようにプロセッサ３２０を構成する命令を含む。撮像センサ制御モジュール３３５は、撮像センサ３１５を用いて画像をキャプチャするようにプロセッサ３２０を構成する命令も含む。したがって、プロセッサ３２０は、画像キャプチャ制御モジュール３３５、撮像センサ３１５、および作業メモリ３０５とともに、張り合わされる画像または画像のセットをキャプチャするための１つの手段を表す。
【００４３】
[0053]ユーザインターフェース制御モジュール３４０は、画像のセットをキャプチャし張り合わせる際に１つまたは複数のユーザを案内するためのディスプレイ３２５上に様々なユーザインターフェース要素を出力するようにプロセッサ３２０を構成する命令を含む。図１Ａ〜図２Ｃに関して上記で説明したように、ユーザインターフェース要素は、透過的に表示された第１の画像および第２の画像と、第１の画像の撮影者のスペースを確保するための第１の画像中のマーキングされた位置と、１つまたは複数の継目ラインと、プレビュー画像とを含み得る。ユーザインターフェース制御モジュール３４０は、ユーザ入力、たとえば張り合わされる画像の相対位置決めと継目ラインの入力および選択とを受け取るように、またユーザ入力に少なくとも部分的に基づいて画像のセットを張り合わせるようにプロセス３２０を構成する命令も含む。
【００４４】
[0054]張合せ画像生成モジュールは、画像のセットを互いに張り合わせて最終的な張合せ画像にするようにプロセッサ３２０を構成する命令を含み得る。いくつかの実施形態では、これらの命令は、プロセッサに画像のセットの各々の前景を識別させ、画像のセットの共有される背景を識別させ得る。張合せ画像生成モジュールは、画像のセットを整合させ、重複部分を決定することができる。張合せ画像生成モジュールは、重複部分中の「低エネルギー」継目ラインを識別し、低エネルギー継目ラインに基づいて画像のセット中の各画像の一部分を互いに張り合わせるようにプロセッサ３２０を構成する命令を含むこともできる。
【００４５】
[0055]キャプチャ制御モジュール３５０は、システム３００の画像キャプチャ機能全体を制御する命令を含み得る。たとえば、一実施形態では、キャプチャ制御モジュール３５０は、撮像センサ３１５を使用してターゲット画像シーンの第１の画像データをキャプチャするようにプロセッサ３２０を構成するためのサブルーチンを呼び出す命令を含み得る。次いで、キャプチャ制御モジュール３５０は、撮像センサ３１５を使用してターゲット画像シーンの第２の画像データをキャプチャする際にユーザを案内するユーザインターフェース制御モジュール３４０を呼び出し得る。キャプチャ制御モジュール３５０は、ターゲット画像シーンの第１の画像と第２の画像とを自動的に整合させ、整合された画像の重複領域に関する低エネルギー継目ラインを決定し、整合および継目ラインに基づいて第１の画像および第２の画像を張り合わせるために張合せ画像生成モジュール３４５を呼び出す場合もある。キャプチャ制御モジュール２６０は、自動整合および継目ライン決定を含むユーザ入力に基づいて画像張合せを補足するためにユーザインターフェース制御モジュール３４０の呼出しと張合せ画像生成モジュール３４５の呼出しとの間で交代する場合もある。
【００４６】
[0056]オペレーティングシステムモジュール３５５は、システム３００のメモリと処理リソースとを管理するようにプロセッサ３２０を構成する。たとえば、オペレーティングシステムモジュール３５５は、電子ディスプレイ３２５、記憶装置３１０、または撮像センサ３１５などのハードウェアリソースを管理するためのデバイスドライバを含み得る。したがって、いくつかの実施形態では、上記で説明した画像処理モジュール中に含まれる命令は、これらのハードウェアリソースと直接対話せず、代わりに、オペレーティングシステム構成要素３５５中にある標準サブルーチンまたはＡＰＩを通して対話し得る。オペレーティングシステム３５５内の命令は、次いで、これらのハードウェア構成要素と直接対話し得る。
【００４７】
[0057]プロセッサ３２０は、ユーザにキャプチャ画像を表示するためにディスプレイ３２５を制御するようにさらに構成され得る。ディスプレイ３２５は、画像センサ３１５を含む撮像デバイスの外部にあるか、または撮像デバイスの一部であり得る。ディスプレイ３２５はまた、画像をキャプチャする前にユーザにビューファインダーを提供するように構成され得るか、または、メモリに記憶されるか、もしくはユーザによって最近キャプチャされたキャプチャ画像を表示するように構成され得る。ディスプレイ３２５は、ＬＣＤまたはＬＥＤスクリーンを備える場合があり、タッチセンシティブ技術を実装する場合がある。ユーザインターフェース制御モジュール３４０によって生成されるユーザインターフェースは、ディスプレイ３２５上に全体的にまたは部分的に実装され得る。たとえば、ディスプレイ３２５がタッチセンシティブ技術を備える場合、ユーザインターフェースは、ディスプレイ３２５上に全体的に実装され得る。タッチ技術がディスプレイ３２５に使用されない、いくつかの実施形態では、ユーザインターフェースは、ボタンまたはホイールなどの、表示要素およびユーザ入力手段を含み得る。
【００４８】
[0058]プロセッサ３２０は、データ、たとえば、キャプチャ画像と、画像整合と、継目ラインの位置およびエネルギーのデータとを表すデータを記憶モジュール３１０に書き込み得る。記憶モジュール３１０は、従来のディスクデバイスとして図式的に表されているが、記憶モジュール３１０が任意の記憶媒体デバイスとして構成され得ることを当業者ならば理解されよう。たとえば、記憶モジュール３１０は、フロッピー（登録商標）ディスクドライブ、ハードディスクドライブ、光ディスクドライブもしくは光磁気ディスクドライブなどのディスクドライブ、またはフラッシュメモリ、ＲＡＭ、ＲＯＭ、および／もしくはＥＥＰＲＯＭ（登録商標）などの固体メモリを含み得る。記憶モジュール３１０は、複数のメモリユニットを含むこともでき、メモリユニットのうちのいずれか１つが、画像キャプチャデバイス３００の内部に構成されるか、または画像キャプチャシステム３００の外部にある場合がある。たとえば、記憶モジュール３１０は、画像キャプチャシステム３００内に記憶されたシステムプログラム命令を含むＲＯＭメモリを含み得る。記憶モジュール３１０は、カメラから取り外され得る、キャプチャ画像を記憶するように構成されたメモリカードまたは高速メモリも含み得る。
【００４９】
[0059]図３は、プロセッサと撮像センサとメモリとを含むように別個の構成要素を備えるシステムを示しているが、これらの別個の構成要素は、特定の設計目標を達成するために様々な方法で組み合わせられ得ることを当業者は認識されよう。たとえば、代替実施形態では、メモリ構成要素は、コストを節約し性能を改善するために、プロセッサ構成要素と組み合わせられ得る。
【００５０】
[0060]さらに、図３は、２つのメモリ構成要素、すなわち、いくつかのモジュールを備えるメモリ構成要素３３０と、作業メモリを備える別のメモリ３０５とを示しているが、当業者は、異なるメモリアーキテクチャを利用するいくつかの実施形態を認識されよう。たとえば、メモリ３３０に含まれるモジュールを実装するプロセッサ命令の記憶のために設計は、ＲＯＭまたはスタティックＲＡＭメモリを利用し得る。代替的に、プロセッサ命令は、システム３００に組み込まれるかまたは外部デバイスポートを介して接続されたディスク記憶デバイスからシステム開始時に読み取られ得る。プロセッサ命令は、次いで、プロセッサによる実行を容易にするためにＲＡＭにロードされ得る。たとえば、作業メモリ３０５はＲＡＭメモリである場合があり、命令は、プロセッサ３２０による実行前に作業メモリ３０５にロードされる。
ユーザインターフェース制御システムの概要
[0061]図４は、図３のユーザインターフェース制御モジュール３４０の一実施形態を示す。ユーザインターフェース制御モジュール３４０は、第１の画像表示モジュール４０５と、第２の画像表示モジュール４１０と、透過性モジュール４１５と、画像位置決めモジュール４２０と、継目表示モジュール４２５と、ユーザ入力モジュール４３０と、張合せプレビューモジュール４３５とを含む。ユーザインターフェース制御モジュール３４０は、画像キャプチャシステム３００のコンテキスト内で論じたが、画像張合せのためにターゲットシーンの複数の画像の画像データをキャプチャするのに適した他の画像キャプチャシステム、たとえばパノラマ画像キャプチャおよび張合せのためのシステムに実装され得る。
【００５１】
[0062]第１の画像表示モジュール４０５は、ディスプレイ３２５上に第１の画像のプレビュー画像を表示するようにプロセッサ３２０を構成する命令を含み得る。プレビュー画像は、図１Ａに示すように、第１の画像の撮影者などの、１人または複数の欠落したグループメンバーのスペースを確保する、マーキングされた位置を含み得る。第１の画像表示モジュール４０５は、確保されたスペースが第１の画像の検出された前景の左側もしくは右側にあるべきか、または別の位置にあるべきかを要求するユーザまたは撮影者にプロンプトを提供するようにプロセッサ３２０を構成する命令を含むこともでき、ユーザが確保されたスペースのサイズを選択することを可能にする場合もある。第１の画像表示モジュール４０５は、第２の画像または後続の画像のキャプチャ中に、第２の画像または後続の画像のプレビュー画像を含む並列表示のためにメモリから第１の画像の記憶されたバージョンを呼び出すことができる。
【００５２】
[0063]第２の画像表示モジュール４１０は、ディスプレイ３２５上に第２の画像のプレビュー画像を表示するようにプロセッサ３２０を構成する命令を含み得る。第２の画像表示モジュール４１０は、２つの画像が張合せに適しているかどうか、または一方もしくは両方の画像が奪還されるべきかどうかをユーザが評価することができるように、第１の画像の背景部分と第２の画像の背景部分との間の類似性のレベルの指示を表示される場合もある。第２の画像表示モジュール４１０は、第１の画像の背景と同様の背景を有する画像をキャプチャする際に第２の撮影者を助けるために、ディスプレイ３２５上に第１の画像のフレーミング情報を表示するようにプロセッサ３２０を構成する命令を含み得る。３つ以上の画像の張合せ画像を生成するように構成された実施形態では、追加の画像表示モジュールは、ユーザインターフェース制御モジュール３４０に含まれ得る。
【００５３】
[0064]透過性モジュール４１５は、第２の画像のキャプチャ中にディスプレイ３２５上に第２の画像のプレビュー画像を含む第１の画像のオーバーレイを表示し、第１の画像と第２の画像のプレビュー画像との少なくとも一方に透過性レベルを割り当てるようにプロセッサ３２０を構成する命令を含み得る。透過性モジュール４１５は、第２の画像のキャプチャの後、ディスプレイ３２５上に第２の画像を含む第１の画像のオーバーレイを表示し、第１の画像と第２の画像との少なくとも一方に透過性レベルを割り当てるようにプロセッサ３２０を構成し得る。透過性モジュール４１５は、ユーザが透過的に表示する画像を選択し、画像にあるレベルの透過性を割り当てることを可能にするプロンプトをユーザに提供するようにプロセッサ３２０を構成する命令も含み得る。たとえば、第１の画像が、あるレベルの透過性を割り当てられ、前景位置に割り当てられる場合があり、第２の画像のプレビューまたは第２の画像が、背景位置に割り当てられ、不透明に表示される場合がある。別の例では、第２の画像のプレビューまたはキャプチャされた第２の画像が、あるレベルの透過性を割り当てられ、前景位置に割り当てられる場合があり、第１の画像が、背景位置に割り当てられ、不透明に表示される場合がある。いくつかの実施形態では、ユーザは、第２の画像を前景に、第１の画像を背景に移動させるか、またはその逆のオプションを選択することができる。
【００５４】
[0065]画像位置決めモジュール４２０は、第１の画像と第２の画像とを、または第１の画像と第２の画像のプレビューとを互いに整合させ得る。いくつかの実施形態では、第１の画像および第２の画像は各々、最初に、デフォルトの開始位置に位置決めされる場合があり、たとえば、図１Ｂに示すように、第２の画像がビューファインダー全体を占有し、表示される第１の画像の第１の部分が、表示されない第１の画像の第２の部分とともに第２の画像と重なる。画像位置決めモジュール４２０は、たとえばユーザ入力モジュール４３０から、第１の画像および第２の画像の再配置に関するユーザ入力を受け取ることができる。いくつかの実施形態では、画像位置決めモジュール４２０は、張合せ画像生成モジュール３４５からの共通の特性の分析に基づいて、第１の画像と第２の画像とを、または第１の画像と第２の画像のプレビューとを整合させ得る。
【００５５】
[0066]継目表示モジュール４２５は、第１の画像と第２の画像との重複部分内でディスプレイ３２５上に継目ラインを表示するようにプロセッサ３２０を構成する命令を含み得る。いくつかの実施形態では、継目ライン位置は、ユーザ入力モジュール４３０から受け取られる場合がある。他の実施形態では、継目ライン位置は、張合せ画像生成モジュール３４５から受け取られる場合がある。継目表示モジュール４２５は、継目ラインの視覚的外観を変更するか、または継目ラインの総エネルギーレベルのユーザへの別の指示を提供するようにプロセッサ３２０を構成する命令を含み得る。継目ラインの総エネルギーレベルは、張合せ画像生成モジュール３４５によって提供される場合があり、最終的な張合せ画像の品質レベルを評価する際にユーザに役立つ場合がある。
【００５６】
[0067]ユーザ入力モジュール４３０は、画像キャプチャプロセスおよび画像張合せプロセス中にユーザ入力を受け取るために、ディスプレイ３２５および画像キャプチャシステム３００の任意の他のユーザインターフェース要素と通信することができる。ユーザ入力は、撮影者の確保されたスペースのサイズおよび／または位置決め、透過性の割当て、画像の相対位置決め、背景および前景の外観、整合用の共通のオブジェクトの識別、継目入力、画像張合せのための現在の整合および継目ラインの許容、ならびにトリミングなどの、１つまたは複数のファクタに画像キャプチャ／張合せプロセス中に提供される場合がある。いくつかの実施形態では、ユーザ入力がこれらのファクタのうちの１つまたは複数に提供されない場合、ユーザ入力モジュール４３０は、そのファクタに必要な情報を張合せ画像生成モジュール３４５に求める指示をプロセッサ３２０に提供することができる。いくつかの実施形態では、これらのファクタに関するユーザ入力および自動決定が組み合わされ得るか、またはファクタに関する自動決定が、そのファクタに関するユーザ入力の代替としてユーザに表示され得る。
【００５７】
[0068]張合せプレビューモジュール４３５は、図２Ａ〜図２Ｃのプレビュー２１０、２１５、および２２０に示すように、現在選択された画像整合／継目ラインを使用して最終的な張合せ画像の結果がどのように見えるかのプレビューをディスプレイ３２５上に表示するようにプロセッサ３２０を構成する命令を含み得る。いくつかの実施形態では、このプレビューは、ディスプレイ３２５の様々な部分上に第１の画像および第２の画像のオーバーレイとともに表示され得る。他の実施形態では、張合せプレビューモジュール４３５は、オーバーレイビューとプレビュービューとの間で切り替えるためにディスプレイ３２５上にユーザ選択可能なオプションを表示するようにプロセッサ３２０を構成する命令を含み得る。プレビューを表示することは、最終的な張合せ画像の生成を進めることを選ぶ前に、ユーザが、相対的な画像整合および／または継目ライン位置に対する調整を行い、最終的な張合せ画像に対する調整の効果を見ることを可能にし得る。
自動張合せ画像生成システムの概要
[0069]図５は、ユーザが案内される画像キャプチャおよび張合せを補足するために、または自動画像張合せプロセスを実行するためにユーザが案内される画像キャプチャおよび張合せの代わりに使用され得る、図３の張合せ画像生成モジュール３４５の一実施形態を示す。張合せ画像生成モジュール３４５は、画像キャプチャシステム３００のコンテキスト内で論じたが、画像張合せのためにターゲットシーンの複数の画像の画像データをキャプチャするのに適した他の画像キャプチャシステム、たとえばパノラマ画像キャプチャおよび張合せのためのシステムに実装され得る。
【００５８】
[0070]張合せ画像生成モジュール３４５は、整合モジュール５０５と、重複決定モジュール５１０と、継目生成部５１５と、継目エネルギー計算部５２０と、画像張合せモジュール５２５と、画像トリミングモジュール５３０とを含む。画像データは張合せ画像生成モジュール３４５の様々なモジュールを通って直線的に流れるように示されるが、いくつかの実施形態では、個々のモジュールが、画像データをモジュールのすべてに通過させることなくデータを生成するために呼び出され得る。
【００５９】
[0071]画像１〜Ｎの画像データが、整合モジュール５０５に入力され得る。整合モジュール５０５は、第１の画像と第２の画像とを整合させるようにプロセッサ３２０を構成する命令を含み得る。たとえば、整合モジュール５０５は、第１の画像からのピクセル座標を第２の画像の対応するピクセル座標にマッピングするための既知の整合技法を使用して画像間の対応関係を発見することができる。たとえば、画像間の対応関係を識別するために、ピクセル間マッチングまたは特徴点ベースの方法が使用され得る。整合モジュールは、対応関係に基づいて第１の画像と第２の画像との一方を第１の画像と第２の画像との他方に整合させるために、第１の画像と第２の画像との一方の回転、スケーリング、レンズひずみ、および／または視点を変換することができる。整合モジュール５０５は、整合された画像データを画像張合せモジュール５２５に伝送することができる。
【００６０】
[0072]整合された画像データは、整合モジュール５０５から重複決定モジュール５１０に伝送され得る。重複決定モジュール５１０は、整合された第１の画像および第２の画像の重複領域を識別するようにプロセッサ３２０を構成する命令を含み得る。いくつかの実施形態では、重複領域は、各整合画像のエッジにＸ値およびＹ値を配置することによって識別され得る。各画像は、上部、下部、左、および右のエッジを有する。水平に延びるｘ軸および垂直に延びるｙ軸とともに両方の整合画像を含む矩形領域を含む（ｘ，ｙ）座標系を使用するとき、各上部エッジおよび各下部エッジは、この座標系内でその垂直位置決めに基づいてＹ値を割り当てられる場合があり、各左エッジおよび各右エッジは、この座標系内でその水平位置決めに基づいてＸ値を割り当てられる場合がある。この座標系の左上のピクセルが（０，０）と表示される場合、２つ以上の画像の重複領域は、最高のＹ値を有する上部エッジと、最低のＹ値を有する下部エッジと、最高のＸ値を有する左エッジと、最低のＸ値を有する右エッジとによって画定され得る。この例は、説明のために提供され、重複領域を確認するための他の既知の手段は、他の実施形態では、重複決定モジュール５１０によって実施され得る。重複決定モジュール５１０は、重複領域を画像張合せモジュール５２５に伝送することができる。
【００６１】
[0073]重複領域は、重複決定モジュール５１０から継目生成部５１５に伝送され得る。継目生成部５１５は、重複領域内の少なくとも１つの低エネルギー継目ラインを識別するようにプロセッサ３２０を構成する命令を含み得る。低エネルギー継目ラインは、場合によっては高品質の最終的な張合せ画像を生成することができる、第１の画像と第２の画像との間の境界を表し得る。低エネルギー継目ライン生成プロセスは、いくつかの実施形態では重複領域の最上行の左端ピクセルであり得るが、他の実施形態では重複領域内の任意の他のピクセルであり得る、開始ピクセルにおいて開始し得る。次いで、低エネルギー継目ライン生成プロセスは、開始ピクセルに隣接するピクセルの各々に関して第１の画像および第２の画像からのピクセル値間の差分値を計算し得る。最低の差分値を有するピクセルが現在の継目ラインピクセルとして設定される場合があり、現在の継目ラインピクセルの方向に継目ラインが描かれる場合がある。いくつかの事例では、低エネルギー継目ライン生成プロセスは、現在生成されている継目ラインが画像張合せに適していないと決定する場合があり、新規の開始ピクセルで開始する場合がある。これらのステップは、継目ラインが完成するまで繰り返され得る。
【００６２】
[0074]いくつかの実施形態では、継目ライン位置データと継目ライン中の各ピクセル（開始ピクセルを除く）の差分値とは、場合によっては、継目生成部５１５から継目エネルギー計算部５２０に伝送され得る。継目エネルギー計算部５２０は、たとえば、差分値を合計することによって、継目ラインの総エネルギーレベルを計算するようにプロセッサ３２０を構成する命令を含み得る。いくつかの実施形態では、継目ラインの総エネルギーレベルがしきい値を超える場合、継目エネルギー計算部５２０は、新規の継目ラインを生成するために継目生成部５１５を呼び出すようにプロセッサ３２０を構成する命令を含み得る。継目エネルギー計算部５２０は、継目ライン位置を画像張合せモジュール５２５に出力することができる。他の実施形態では、継目生成部５１５は、継目ライン位置を画像張合せモジュール５２５に直接、出力し得る。
【００６３】
[0075]画像張合せモジュール５２５は、画像１〜Ｎの張合せバージョンを生成するために画像整合データおよび継目ライン位置を使用するようにプロセッサ３２０を構成する命令を含む。たとえば、２画像セットでは、継目ラインの左に配置された２つの画像のうちの左端の画像からのピクセルが、最終的な張合せ画像にマッピングされる場合があるが、継目ラインの右に配置された２つの画像のうちの右端の画像からのピクセルが、最終的な張合せ画像にマッピングされ、視差およびシーンの動きによって生じるぼけまたはゴースト発生ならびに変化する画像露出などの潜在的な問題を注意深く修正する場合がある。３つ以上の画像を含む画像セットでは、複数の継目ラインの左右に配置されたピクセルと複数の継目ラインによって形成された境界間に配置されたピクセルとは、最終的な画像を形成するために互いに合成され得る。継目ラインに沿って、画像張合せモジュール５２５は、継目ラインに沿って張り合わされる一方または両方の画像からのピクセル値を組み合わせるか、重み付けするか、合成するか、または選択することができる。
【００６４】
[0076]画像張合せモジュール５２５によって生成された張合せ画像データは、画像トリミングモジュール５３０に伝送され得る。トリミングモジュール５３０は、張合せ画像データを所望の比、たとえば一般的な画像比またはユーザによってプリセットされた比にトリミングすることができる。トリミングモジュール５３０は、最終的な張合せ画像から空のピクセル領域を除外するために張合せ画像をトリミングすることができる。最終的な張合せ画像は、記憶および／またはユーザへの表示のために画像張合せモジュール５２５から出力され得る。
【００６５】
[0077]上述のように、張合せ画像生成モジュール３４５は、ユーザ入力なしに画像のセットを互いに自動的に張り合わせることが可能であるが、いくつかの実施形態では、整合、継目ライン、またはトリミングなどの１つまたは複数の画像張合せファクタに関するユーザ入力が、ユーザの選好または画像張合せプロセスへの個人的な流儀を提供するために張合せ画像生成モジュール３４５の対応するモジュールに入力され得る。他の実施形態では、張合せ画像生成モジュール３４５のモジュールのうちの１つまたは複数は、ユーザが案内される画像張合せプロセス中に情報を提供するために呼び出される場合があり、このプロセスでは、ユーザは、画像張合せファクタに関する情報を提供しないか、または準最適な最終的な張合せ画像の結果をもたらし得る情報を提供する。ユーザが画像張合せプロセスに関わる場合、画像張合せモジュール５２５および画像トリミングモジュール５３０は、プレビュー張合せ画像を生成するために呼び出される場合があり、ユーザが整合または継目ライン位置などの画像張合せファクタのうちの１つまたは複数を調整する場合、更新されたプレビュー張合せ画像を生成するためにさらに呼び出される場合がある。
例示的な画像張合せプロセスの概要
[0078]図６は、ユーザが案内される画像張合せのための例示的なプロセス６００を示す。説明しやすいように、プロセス６００は、図３および図４のユーザインターフェース制御モジュール３４０によって実施されるものとして論じられる。他の実施形態では、他の適切な画像キャプチャシステムがプロセス６００を実施し得る。
【００６６】
[0079]プロセス６００は、ブロック６０５において、グループの第１の部分を含むターゲットシーンの第１の画像がキャプチャされるとき、開始する。ブロック６０５は、いくつかの実施形態では、第１の画像表示モジュール４０５と、画像センサ３１５と、撮像センサ制御モジュール３３５との組合せによって実行され得る。ブロック６０５の一実施形態は、図１Ａに示される。
【００６７】
[0080]次いで、プロセス６００は、第２の画像表示モジュール４１０が、画像キャプチャシステム３００のディスプレイ３２５上にターゲットシーンの第２の画像のプレビュー画像を表示するブロック６１０に移行するが、第２の画像はグループの第２の部分を含む。次いで、プロセス６００は、透過性モジュール４１５および第１の画像表示モジュール４０５が、第１の画像と第２の画像のプレビュー画像との両方の画像の表示された領域の特性がユーザによって同時に見られ得るように、画像のうちの少なくとも１つの透過性を使用して両方の画像を重ねるために協働する、ブロック６１５に移行する。プロセス６００は、ユーザ入力モジュール４３０が第１の画像とプレビュー画像との整合に関するユーザ入力を受け取り、画像位置決めモジュール４２０がユーザによって設定された相対整合を記憶する、ブロック６２０に移行する。いくつかの実施形態では、ブロック６２０は、図５の整合モジュール５０５によって補足または実行され得る。ブロック６１０、６１５、および６２０の一実施形態は、図１Ｂに示される。
【００６８】
[0081]プロセス６００は、グループの第２の部分を含むターゲットシーンの第２の画像がキャプチャされる、ブロック６２５に移行する。ブロック６２５は、いくつかの実施形態では、第２の画像表示モジュール４１０と、画像センサ３１５と、撮像センサ制御モジュール３３５との組合せによって実行され得る。ブロック６３０では、ユーザ入力モジュール４３０は、第１の画像および第２の画像を張り合わせる境界の継目ライン位置に関するユーザ入力を受け取ることができる。ブロック６３０は、いくつかの実施形態では、継目生成部５１５によって補足または実行され得る。
【００６９】
[0082]ブロック６３５では、プロセス６００は、第１の画像と第２の画像とを張り合わせ、相対画像整合および継目ライン位置に関するユーザ入力に少なくとも部分的に基づいて張合せ画像をトリミングし最終的な画像にする。場合によっては、張合せプレビューモジュール４３５は、ユーザが品質を判定し、相対画像位置決めおよび／または継目ライン位置に対する任意の所望の調整を行うことを可能にするためにユーザに最終的な張合せ画像のプレビューを表示することができる。最終的な張合せ画像は、記憶され、および／またはユーザに表示され得る。いくつかの実施形態では、第１の画像および第２の画像と、第１の画像と第２の画像との相対整合と、継目ライン位置とを含む画像データのいくつかまたはすべては、最終的な張合せ画像の完成後に処分され得る。他の実施形態では、そのような画像データのいくつかまたはすべては、ユーザが元の画像にアクセスし元の画像を変更することを可能にするために保持される場合がある。
【００７０】
[0083]図７は、２つの画像を互いに張り合わせるために継目ラインを自動的に決定するための例示的なプロセス７００を示す。説明しやすいように、プロセス７００は、図３および図５の張合せ画像生成モジュール３４５によって実施されるものとして論じられる。他の実施形態では、他の適切な画像張合せシステムがプロセス７００を実施し得る。
【００７１】
[0084]プロセス７００は、ブロック７０５において、第１の画像および第２の画像の画像データが整合モジュール５０５によって受け取られるとき、開始する。第１の画像は、グループの第１の部分と第１の背景とを含む。第２の画像は、グループの第２の部分と、第１の背景と実質的に同様の第２の背景とを含む。他の実施形態では、３つ以上の画像を含む画像データは、整合モジュール５０５によって受け取られる場合があり、各画像は、グループの一部分と、他の画像の背景と実質的に同様の背景とを含む。
【００７２】
[0085]プロセス７００は、整合モジュール５０５が、上述のように、たとえばピクセルごとの比較または特徴点マッチングによって、第１の画像と第２の画像とを整合させる、ブロック７１０に移行する。次に、プロセス７００は、重複決定モジュール５１０が、たとえば図５に関して上記で説明した方法のうちのいずれかによって整合画像の重複領域を決定する、ブロック７１５に移行する。
【００７３】
[0086]ブロック７２０では、継目生成部５１５が、継目ラインピクセルの位置を決定する。継目生成部５１５は、いくつかの実施形態では重複領域の最上行の左端ピクセルであり得るが、他の実施形態では重複領域内の任意の他のピクセルであり得る、開始ピクセルにおいて開始し得る。次いで、継目生成部５１５は、開始ピクセルに隣接するピクセルの各々に関して第１の画像および第２の画像からのピクセル値間の差分値を計算し得る。最低の差分値を有するピクセルが現在の継目ラインピクセルとして設定される場合があり、現在の継目ラインピクセルの方向に継目ラインが描かれる場合がある。いくつかの事例では、継目生成部５１５は、現在生成されている継目ラインが画像張合せに適していないと決定する場合があり、新規の開始ピクセルで開始する場合がある。これらのステップは、継目ラインが完成するまで繰り返され得る。
【００７４】
[0087]ブロック７２５では、継目ラインの継目エネルギー計算部５２０総エネルギーは、たとえば、いくつかの実施形態では差分値を割り当てられない開始ピクセルを除く各継目ラインピクセルの差分値を合計することによって、ブロック７２０において継目生成部５１５によって生成された継目ラインの総エネルギーを計算する。決定ブロック７３０では、継目ラインの総エネルギーがしきい値を超えると継目エネルギー計算部５２０が決定する場合、プロセス７００は、継目生成部５１５が新規の継目ラインの継目ラインピクセルの位置を決定し、たとえば異なる開始ピクセルで開始する、ブロック７２０に再びループする。決定ブロック７３０では、継目ラインの総エネルギーがしきい値を下回ると継目エネルギー計算部５２０が決定する場合、プロセス７００は、ブロック７３５に続く。しきい値は、視覚的に満足できる張合せ結果に相当するＮ個のピクセルを有する継目ラインに関する所定のエネルギーレベルであり得るか、または、いくつかの実施形態ではユーザによって設定されたしきい値であり得る。
【００７５】
[0088]ブロック７３５では、画像張合せモジュール５２５は、第１の画像と第２の画像とを互いに張り合わせるために継目ライン位置ｉｓを使用する。次いで、張合せ画像は、画像トリミングモジュール５３０によってトリミングされる。最終的な張合せ画像は、記憶され、および／またはユーザに表示され得る。いくつかの実施形態では、第１の画像および第２の画像と、第１の画像と第２の画像との相対整合と、継目ラインの位置およびエネルギーレベルとを含む画像データのいくつかまたはすべては、最終的な張合せ画像の完成後に処分され得る。他の実施形態では、そのような画像データのいくつかまたはすべては、ユーザが元の画像にアクセスし元の画像を変更することを可能にするために保持される場合がある。
例示的な継目ラインピクセル選択プロセスの概要
[0089]図８は、いくつかの実施形態における、図７のブロック７２５において継目ラインピクセルを選択するために使用され得る、例示的な継目ラインピクセル選択プロセス８００を示す。プロセス８００は、継目生成部５１５が、いくつかの実施形態では重複領域の最上行の左端ピクセルであり得るが、他の実施形態では重複領域内の任意の他のピクセルであり得る、開始ピクセルを選択する、ブロック８０５において開始する。
【００７６】
[0090]ブロック８１０では、継目ライン生成部５１５は、開始ピクセルに隣接する各ピクセルに関する差分値を計算する。たとえば、いくつかの実施形態では、差分値は、第２の画像中の対応するピクセルの勾配値から、重複領域中の第１の画像の各ピクセルの勾配値を減算することによって、またはその逆によって計算され得る。他の実施形態では、ピクセルのルミナンス値またはクロミナンス値は、勾配値の代わりに、または勾配値に加えて使用され得る。２つのグレースケール画像を互いに張り合わせる実施形態では、ルーマと勾配値との一方または両方が使用され得る。２つのＲＧＢ画像を互いに張り合わせる実施形態では、ルミナンス、クロミナンス、および勾配値のいくつかまたはすべてが使用され得る。
【００７７】
[0091]決定ブロック８１５では、継目ライン生成部５１５は、隣接ピクセルの各々の差分値をしきい値と比較する。しきい値は、オブジェクトをカットしないことなどによって、視覚的に満足できる張合せ画像の結果を生成する継目ラインを生成する際のピクセル間の差分の許容レベルを示し得る。いくつかの実施形態では、しきい値を超える差分値は、オブジェクトのエッジを示し得る。しきい値未満の差分値を有する隣接ピクセルがない場合、プロセス８００は、新規の開始ピクセルを選択するためにブロック８０５に再びループする。新規の開始ピクセルは、いくつかの実施形態では、次の最上行のピクセルであり得るか、または、継目ライン生成部５１５は、いくつかの実施形態では、新規の開始ピクセルの位置を決定するために、継目ラインが垂直にまたは水平に生成されているかどうかに応じて、前の開始ピクセルの位置を規定する（ｘ，ｙ）座標の対のＸ値またはＹ値に値を追加し得る。
【００７８】
[0092]ブロック９０８〜８１５の繰返しの後、重複領域中の開始ピクセルに隣接するピクセルがしきい値未満の差分値を有しないと継目ライン生成部５１５が決定する場合、最低エネルギー径路決定プロセスは、第１の画像および第２の画像が十分な類似性を含まないことをユーザに示す場合があり、ユーザは、しきい値を調整するための、または張合せのために新規の画像をキャプチャするための選択可能なオプションを表示される場合がある。
【００７９】
[0093]少なくとも１つの隣接ピクセルがしきい値未満の値を有する場合、プロセス８００は、継目ライン生成部５１５が現在の継目ラインピクセルとして隣接ピクセルを設定する、ブロック８２０に移行する。いくつかの事例では、複数の隣接ピクセルは、しきい値未満の差分値を有し得る。一実施形態では、最低の差分値を有するピクセルが、現在の継目ラインピクセルとして設定され得る。別の実施形態では、継目ライン生成部５１５は、継目ラインが描かれる方向、すなわち上部重複エッジから下部重複エッジへの方向を決定する場合があり、正しい方向に継目ラインを続ける、しきい値未満の差分値を有する隣接ピクセルが選択され得る。いくつかの実施形態では、重複領域に関するエッジマップが決定される場合があり、識別されたエッジからのしきい値距離を維持するために隣接ピクセルが選択され得る。選択された隣接ピクセルは、現在の継目ラインピクセルとして設定される。
【００８０】
[0094]ブロック８２５では、継目ライン生成部５１５が、継目ラインピクセル位置データのセットに現在の継目ラインピクセルの位置を追加する。継目ラインピクセル位置データは、開始ピクセルおよび各選択された継目ラインピクセルの位置、たとえば、画像の重複領域として画定された座標フレームを有する（ｘ，ｙ）座標を含む。継目ラインピクセル位置データは、画像張合せ中に継目ラインを構築し、画像間の境界を規定するために使用され得る。
【００８１】
[0095]決定ブロック８３０では、継目ライン生成部５１５は、継目ラインが完成したかどうかを決定するために現在の継目ラインピクセルの位置を使用する。たとえば、継目ライン生成部５１５は、現在の継目ラインピクセルが開始継目ラインピクセルとは反対のエッジに沿って配置されることを示す位置データに基づいて継目ラインが完成したと決定することができる。説明のために、最上行の開始ピクセルで継目ラインを描き始める実施形態では、最終行は、最下行であり得る。いくつかの実施形態では、継目ラインは、左から右に、またはその逆に描かれ得る。いくつかの実施形態では、継目ラインがエッジの行で終了する場合、プロセスは、継目ラインが不完全な最終張合せ画像を提供し得るか、または新規の開始ピクセルで再び開始し得るという指示とともにユーザに継目ラインを表示し得る。
【００８２】
[0096]ブロック８３０において、継目ラインが完成していないと継目ライン生成部５１５が決定する場合、プロセス８００は、継目ライン生成部５１５が開始ピクセルに隣接するピクセルの差分値を計算したブロック８１０と同様に、現在の継目ラインピクセルに隣接する各ピクセルの差分値を計算するためにブロック８４０に移行する。ブロック８４５では、現在の継目ラインピクセルに隣接するピクセルの差分値は、ブロック８１５において実行された比較と同様に、しきい値と比較される。しきい値未満の差分値がない場合、プロセス８００は、新規の開始ピクセルを選択するためにブロック８０５に再びループする。しきい値未満の差分値を有する少なくとも１つの隣接ピクセルが存在する場合、プロセス８００は、次の現在の継目ラインピクセルとしてしきい値未満の差分値を有する隣接ピクセルのうちの１つを選択するために、ブロック８５に移行する。
【００８３】
[0097]決定ブロック８５５では、継目ライン生成部５１５は、現在選択された継目ラインピクセルが前に継目ラインに含まれたかどうかを決定するために、現在の継目ラインピクセルの位置を継目ラインピクセル位置データ内の位置と比較する。これは、有益にも、継目ライン生成プロセス８００が無限ループに立ち往生するのを防ぐが、無限ループでは、このプロセスが継目ラインのための循環回路を継続的に決定する。現在の継目ラインピクセル位置が前の継目ラインピクセル位置データ内の任意の登録項目にマッチングする場合、継目ラインは再びそれ自体に重なり、このプロセスは、継続することが可能ならば、無限ループに立ち往生する場合がある。したがって、現在の継目ラインピクセル位置が前の継目ラインピクセル位置データ内の任意の登録項目にマッチングする場合、プロセス８００は、ブロック８０５に再びループし得、新規の開始ピクセルを選択し再び開始する。
【００８４】
[0098]いくつかの実施形態では、更新された現在の継目ラインピクセルが継目ラインピクセル位置データに含まれる場合、プロセス８００は、新規の開始ピクセルを選択するためにブロック８０５に再びループするのではなく、現在の継目ラインピクセルを更新するためにブロック８５０に再びループする場合があり、異なる隣接ピクセルの差分値がしきい値より低い限り、異なる隣接ピクセルを選択する場合がある。しきい値未満の差分値を有するすべての隣接ピクセルが、継目ラインピクセル位置データに対してテストされ、含まれることがわかった場合、しきい値が引き上げられるか、または、プロセス４００がブロック８０５に再びループし新規の開始ピクセルを選択する場合がある。いくつかの実施形態では、プロセス８００は、現在の継目ラインピクセルとして隣接ピクセルを選択する前に、ブロック８５５において継目ラインピクセル位置データに対して各隣接ピクセルをテストし得る。いくつかの実施形態では、隣接ピクセルは、連続的に、たとえば上部から下部に、また左から右にテストされる場合があり、最初にテストされた隣接ピクセルに到達すると、プロセス８００は、すべての隣接ピクセルが継目ラインピクセル位置データにすでに含まれている場合、ステップ８０５に再びループし得る。
【００８５】
[0099]決定ブロック８５５では、現在の継目ラインピクセルの位置が既存の継目ライン位置データ内に存在しないと継目ライン生成部５１５が決定した場合、プロセス８００は、継目ライン生成部５１５が継目ラインピクセル位置データのセットに現在の継目ラインピクセルの位置を追加する、ブロック８２５に移行する。プロセス８００は、継目ラインが完成したかどうかを決定するためにブロック８３０に再び移行する。ブロック８３０において、継目ラインが完成したと継目ライン生成部５１５が決定する場合、プロセス８００は、ユーザへの表示のために、または画像張合せの際の使用のために完成した継目ラインとして継目ラインピクセル位置データを出力または記憶するために、ブロック８３５に移行する。
【００８６】
[0100]図示されていないが、いくつかの実施形態では、プロセス８００は継続する場合があり、継目エネルギー計算部５２０が、たとえば各継目ラインピクセルの差分値を合計することによって、完成した継目ラインの総エネルギーレベルを計算する。継目ラインの総エネルギーレベルは、画像張合せにおける使用前に、またはユーザへの表示前に、しきい値と比較され得る。完成された継目ラインの総エネルギーは、最終的な張合せ画像のあり得る品質のユーザへの指示を生成するために、または新規の継目ラインが生成されるべきであることを自動プロセス８００に示すために使用され得る。いくつかの実施形態では、複数の低エネルギー継目ラインオプションが、生成され、最低エネルギー継目ラインを決定するために比較される場合があり、各低エネルギー継目ラインオプションはしきい値未満の総エネルギーレベルを有する。
追加の実施形態
[0101]本明細書で説明する画像張合せプロセスおよび最低エネルギー継目ライン決定プロセスは、主に第１の画像および第２の画像のコンテキスト内で論じられたが、３つ以上の画像に適応し得る。たとえば、複数の低エネルギー継目ラインが、複数の画像を互いに張り合わせるために決定され得る。決定された継目ラインの数は、画像の数マイナス１であり得る。いくつかの実施形態では、３つ以上の画像の各々は、前景および背景にセグメント化される場合があり、３つ以上の前景は、共通の背景上で張り合わさる場合がある。
【００８７】
[0102]さらに、上述のシステムおよびプロセスは、いくつかの実施形態では、静止画像に加えてビデオ画像を生成するために使用され得る。さらに、上記の説明は人々のグループの張合せ画像を生成することについて概略的に論じたが、これは単に説明用であり、そのようなプロセスは、他の写真コンテンツの張合せ画像を生成する際にも有益であり得る。たとえば、開示したシステムおよび方法は、人の一連のアクション写真、または背景上で動いているオブジェクトを互いに張り合わせるために使用され得る。
【００８８】
[0103]本明細書で説明する画像張合せプロセスは、画像キャプチャデバイスのビューファインダー、画像キャプチャデバイスと通信する別のディスプレイ、または画像キャプチャデバイスによってキャプチャされた画像データを受け取るコンピューティングデバイスのディスプレイを使用して実施され得る。したがって、画像キャプチャデバイス、画像編集機能を有する別のコンピューティングデバイス、またはそれらの組合せは、本明細書で説明する画像張合せプロセスを実行し得る。
用語
[0104]さらに、本明細書で開示する実装形態に関連して説明した様々な例示的な論理ブロック、モジュール、回路、およびプロセスステップは、電子ハードウェア、コンピュータソフトウェア、またはその両方の組合せとして実装され得ることを当業者は諒解されよう。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップが、概してそれらの機能に関して上記で説明されている。そのような機能性が、ハードウェアまたはソフトウェアのどちらとして実施されるのかは、特定の応用例と、システム全体に課せられる設計制約とに依存する。当業者は、特定の適用例ごとに様々な方法で記載された機能を実装し得るが、そのような実装の決定は、本発明の範囲からの逸脱を引き起こすと解釈されるべきではない。当業者は、ある一部分または一部が、全体よりも少ないかまたはそれに等しいものを備え得ることを認識されよう。たとえば、ピクセルの集合の一部分は、それらのピクセルの部分集合を指す場合がある。
【００８９】
[0105]本明細書で開示する実装形態に関して説明した様々な例示的な論理ブロック、モジュール、および回路は、汎用プロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）または他のプログラマブル論理デバイス、個別ゲートまたはトランジスタ論理、個別ハードウェア構成要素、あるいは本明細書で説明した機能を実行するように設計されたそれらの任意の組合せを用いて実装または実行され得る。汎用プロセッサはマイクロプロセッサであり得るが、代替では、プロセッサは任意の従来のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシンであり得る。また、プロセッサは、コンピューティングデバイスの組合せ、たとえば、ＤＳＰとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、ＤＳＰコアと連携する１つもしくは複数のマイクロプロセッサ、または任意の他のそのような構成として実装され得る。
【００９０】
[0106]本明細書で開示する実装形態に関して説明した方法またはプロセスのステップは、直接ハードウェアで実施されるか、プロセッサによって実行されるソフトウェアモジュールで実施されるか、またはその２つの組合せで実施され得る。ソフトウェアモジュールは、ＲＡＭメモリ、フラッシュメモリ、ＲＯＭメモリ、ＥＰＲＯＭメモリ、ＥＥＰＲＯＭメモリ、レジスタ、ハードディスク、リムーバブルディスク、ＣＤ−ＲＯＭ、または当技術分野で知られている任意の他の形態の非一時的記憶媒体中に存在し得る。例示的なコンピュータ可読記憶媒体は、プロセッサがコンピュータ可読記憶媒体から情報を読み取り、コンピュータ可読記憶媒体に情報を書き込むことができるようにプロセッサに結合される。代替として、記憶媒体はプロセッサと一体であり得る。プロセッサおよび記憶媒体はＡＳＩＣ中に存在し得る。ＡＳＩＣは、ユーザ端末、カメラ、または他のデバイス中に存在し得る。代替として、プロセッサおよび記憶媒体は、ユーザ端末、カメラ、または他のデバイス中に個別構成要素として存在し得る。
【００９１】
[0107]本明細書には、参照のための、および様々なセクションを見つけるのを助けるための見出しが含まれる。これらの見出しは、見出しに関連して説明した概念の範囲を限定するものではない。そのような概念は、本明細書全体にわたって適用性を有し得る。
【００９２】
[0108]開示した実装形態の以上の説明は、当業者が本発明を製作または使用することができるようにするために提供したものである。これらの実装形態への様々な修正は当業者には容易に明らかになり、本明細書で定義した一般原理は、本発明の趣旨または範囲から逸脱することなく他の実装形態に適用され得る。したがって、本発明は、本明細書で示した実装形態に限定されるものではなく、本明細書で開示した原理および新規の特徴に一致する最も広い範囲を与えられるべきである。
以下に、出願当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
個人のグループの画像をキャプチャする、電子デバイス中の方法であって、
前記グループの第１の部分の第１の画像をキャプチャすることと、
第２の画像のライブプレビューを前記電子デバイスのディスプレイ上に生成することと、前記第２の画像が前記グループの第２の部分を備える、
前記第２の画像の前記ライブプレビュー上に前記第１の画像の少なくとも一部分を重畳することと、
前記グループの前記第２の部分の前記第２の画像をキャプチャすることと、
前記第１の画像と前記第２の画像の前記ライブプレビューおよび前記第２の画像の一方との相対位置決めに関するユーザ入力を受け取ることと、
前記ユーザ入力に少なくとも部分的に基づいて前記第１の画像と前記第２の画像とを最終的な張合せ画像になるように張り合わせることと、前記最終的な画像が前記グループの前記第１の部分と前記グループの前記第２の部分とを備える、
を備える、方法。
［Ｃ２］
前記第２の画像の前記ライブプレビュー上に前記第１の画像の少なくとも一部分を重畳することが、前記第１の画像にあるレベルの透過性を割り当てることを備える、Ｃ１に記載の方法。
［Ｃ３］
前記第２の画像の前記ライブプレビュー上に前記第１の画像の少なくとも一部分を重畳することが、
前記第２の画像にあるレベルの透過性を割り当てることと、
前景位置に前記第２の画像を割り当てることと、
背景位置に前記第１の画像を割り当てることと
を備える、Ｃ１に記載の方法。
［Ｃ４］
前記電子デバイスの前記ディスプレイがタッチセンシティブディスプレイスクリーンを備える、Ｃ１に記載の方法。
［Ｃ５］
前記ユーザ入力が、前記第２の画像の前記ライブプレビュー上に重畳された前記第１の画像の前記少なくとも一部分を、前記第２の画像の前記ライブプレビューに対する新規の位置までドラッグすることを備える、Ｃ４に記載の方法。
［Ｃ６］
前記ユーザに前記最終的な張合せ画像のプレビューを表示することをさらに備える、Ｃ１に記載の方法。
［Ｃ７］
前記第１の画像と前記第２の画像との相対位置決めに関する更新されたユーザ入力を受け取ることと、
前記更新されたユーザ入力に少なくとも部分的に基づいて前記第１の画像と前記第２の画像とを張り合わせることと
をさらに備える、Ｃ６に記載の方法。
［Ｃ８］
前記張り合わせることは、複数の継目ラインと前記複数の継目ラインの各々に対応するエネルギーレベルとを評価することと、最低のエネルギーレベルを有する継目ラインを選択することとを備える、Ｃ１に記載の方法。
［Ｃ９］
継目ラインの位置に関するユーザ入力を受け取ることをさらに備える、ここにおいて、前記継目ラインが前記第２の画像に前記第１の画像を張り合わせるための境界を決定する、Ｃ１に記載の方法。
［Ｃ１０］
個人のグループの第１の部分の第１の画像と前記グループの第２の部分の第２の画像とをキャプチャするように構成された画像センサと、
前記第２の画像のライブプレビューを表示するように構成され、前記第２の画像の前記ライブプレビュー上に重畳された前記第１の画像の少なくとも一部分を表示するようにさらに構成されたディスプレイと、
前記第２の画像の前記ライブプレビューと前記第１の画像の前記少なくとも一部分との相対位置決めに関するユーザ入力を受け取るように構成されたユーザ入力モジュールと、
前記ユーザ入力に少なくとも部分的に基づいて前記第１の画像と前記第２の画像とを最終的な画像になるように張り合わせるように構成された画像張合せモジュールと、前記最終的な画像が前記グループの前記第１の部分と前記グループの前記第２の部分とを備える、
を備える、画像キャプチャデバイス。
［Ｃ１１］
前記ディスプレイが、前記第１の画像のライブプレビュー上に前記グループの前記第２の部分のために確保されたスペースの指示を表示するようにさらに構成される、Ｃ１０に記載の画像キャプチャデバイス。
［Ｃ１２］
前記ディスプレイがタッチセンシティブディスプレイである、Ｃ１０に記載の画像キャプチャデバイス。
［Ｃ１３］
ユーザインターフェースをさらに備える、ここにおいて、前記ユーザインターフェースが前記タッチセンシティブディスプレイを備える、Ｃ１２に記載の画像キャプチャデバイス。
［Ｃ１４］
前記ディスプレイが、前記第１の画像と前記第２の画像とを張り合わせる前に、前記最終的な画像のプレビューを表示するようにさらに構成される、Ｃ１０に記載の画像キャプチャデバイス。
［Ｃ１５］
前記ディスプレイ上の前記第１の画像と、前記第２の画像の前記ライブプレビューと、前記第２の画像との表示を管理するように構成されたユーザインターフェース制御モジュールをさらに備える、Ｃ１０に記載の画像キャプチャデバイス。
［Ｃ１６］
前記ユーザインターフェース制御モジュールが、前記第１の画像と前記第２の画像の前記ライブプレビューとの一方にあるレベルの透過性を割り当てるように構成された透過性モジュールをさらに備える、Ｃ１５に記載の画像キャプチャデバイス。
［Ｃ１７］
前記第１の画像と前記第２の画像との重複領域に低エネルギー継目ラインを配置するように構成された継目ライン生成モジュールをさらに備える、Ｃ１０に記載のデバイス。
［Ｃ１８］
低エネルギー継目ラインを決定する方法であって、
特定の実行可能な命令とともに構成された１つまたは複数のコンピューティングデバイスによって実施されるとき、
第１の画像および第２の画像を備える画像データを受け取ることと、
前記第１の画像と前記第２の画像との重複領域を決定することと、前記重複領域が複数のピクセルを備える、
開始ピクセルを選択することと、前記開始ピクセルが複数の隣接ピクセルに隣接する、
前記複数の隣接ピクセルの各々の差分値を計算することと、ここにおいて、前記差分値が隣接ピクセルのピクセル値を前記開始ピクセルのピクセル値と比較することによって計算される、
前記複数の隣接ピクセルのうちの１つを現在の継目ラインピクセルとして選択することと、
前記開始ピクセルの第１の位置データと前記現在の継目ラインピクセルの第２の位置データとを備える継目ラインピクセル位置データを構築することと
を備える、方法。
［Ｃ１９］
重複領域を決定することが、前記第１の画像と前記第２の画像とを整合させることを備える、Ｃ１８に記載の方法。
［Ｃ２０］
重複領域を決定することが、前記第１の画像と前記第２の画像との相対位置決めに関するユーザ入力を受け取ることを備える、Ｃ１８に記載の方法。
［Ｃ２１］
前記複数の隣接ピクセルのうちの１つを現在の継目ラインピクセルとして選択することが、最低の差分値を有する隣接ピクセルを選択することを備える、Ｃ１８に記載の方法。
［Ｃ２２］
前記複数の隣接ピクセルのうちの１つを現在の継目ラインピクセルとして選択することが、前記複数の隣接ピクセルの各々の前記差分値をしきい値と比較することを備える、Ｃ１８に記載の方法。
［Ｃ２３］
前記ピクセル値が、ルーマ、ルミナンス、クロミナンス、または勾配のうちの少なくとも１つである、Ｃ２２に記載の方法。
［Ｃ２４］
前記現在の継目ラインピクセルに隣接する複数のピクセルの各々の差分値を計算することと、
前記現在の継目ラインピクセルに隣接する前記複数のピクセルのうちの１つを更新された現在の継目ラインピクセルとして選択することをさらに備える、Ｃ１８に記載の方法。
［Ｃ２５］
前記更新された現在の継目ラインピクセルの位置が前記継目ラインピクセル位置データに含まれないと決定することをさらに備える、Ｃ２４に記載の方法。
［Ｃ２６］
前記継目ラインピクセル位置データを前記更新された現在の継目ラインピクセル位置の第３の位置データを含むように更新することをさらに備える、Ｃ２５に記載の方法。
［Ｃ２７］
前記重複領域内に複数の低エネルギー継目ラインを生成することと、
前記第１の画像を前記第２の画像に張り合わせるために使用する前記複数の低エネルギー継目ラインのうちの１つの選択に関するユーザ入力を受け取ることと
をさらに備える、Ｃ１８に記載の方法。
［Ｃ２８］
第１の画像と第２の画像との重複領域を決定するように構成された重複決定モジュールと、
前記重複領域内に低エネルギー継目ラインを生成するように構成された継目生成部と、前記低エネルギー継目ラインが前記第１の画像を前記第２の画像に張り合わせるための境界を表す、
前記継目ラインの総エネルギーレベルを計算するように構成された継目エネルギー計算部と
を備える、継目ライン生成システム。
［Ｃ２９］
前記低エネルギー継目ラインを使用して前記第１の画像を前記第２の画像に張り合わせるように構成された画像張合せモジュールをさらに備える、Ｃ２８に記載の継目ライン生成システム。
［Ｃ３０］
前記第１の画像と前記第２の画像とを整合させるように構成された整合モジュールをさらに備える、Ｃ２８に記載の継目ライン生成システム。
【図１Ａ】
0006316968.tif 000002
【図１Ｂ】
0006316968.tif 000003
【図１Ｃ】
0006316968.tif 000004
【図２Ａ】
0006316968.tif 000005
【図２Ｂ】
0006316968.tif 000006
【図２Ｃ】
0006316968.tif 000007
【図３】
0006316968.tif 000008
【図４】
0006316968.tif 000009
【図５】
0006316968.tif 000010
【図６】
0006316968.tif 000011
【図７】
0006316968.tif 000012
【図８】
0006316968.tif 000013