(57)【要約】【課題】動きベクトルの精度を高める。【解決手段】対応点情報生成部１１０は、連続した画像フレームを有する画像データ内の始点画像フレームと終点画像フレームとの間で画素毎の対応点情報を求めるマッチングを実行する。動きベクトル検出部１５２は、マッチングの結果に基づいて始点画像フレーム内で画素毎の動きベクトルを求める。信頼領域分離部１５４は、動きベクトルが求められた画像フレームをブロック分割し、各ブロックを、算出された動きベクトルの精度が相対的に高い信頼領域と、動きベクトルの精度が相対的に低い非信頼領域のいずれかに分ける。動きベクトル改良部１６０は、信頼領域の動きベクトルを信頼領域と隣接する非信頼領域の画素に適用したとき、適用後の移動先の画素値と終点画像フレーム内の対応する画素の画素値との誤差を計算し、誤差がしきい値より小さい場合、その画素を信頼領域に組み入れて該画素の動きベクトルを信頼領域の動きベクトルで置換する。【選択図】図１９
2008282377.tif 000002
【特許請求の範囲】
【請求項１】
連続した画像フレームを有する画像データ内の二つの画像フレーム間で画素毎の対応点情報を求めるマッチングを実行し、その中で対応関係の信頼度が低い画素については両画像間でブロックマッチングを実行してブロック毎に対応関係を求めることを特徴とする画像処理方法。
【請求項２】
連続した画像フレームを有する画像データ内の始点画像フレームと終点画像フレームの間で各画素について対応点情報を求めるマッチングを初期マッチングとして実行し、
マッチングの結果にしたがって動きベクトルを求め、
求めた動きベクトルの信頼度を各画素について判定し、
信頼度が低いと判定された画素については、複数の画素で構成されるブロック単位のブロックマッチングを始点画像フレームと終点画像フレームの間で実行して、改めて動きベクトルを算出することを特徴とする画像処理方法。
【請求項３】
連続した画像フレームを有する画像データ内の始点画像フレームと終点画像フレームとの間で画素毎の対応点情報を求めるマッチングを実行するマッチング処理部と、
マッチングの結果に基づいて始点画像フレーム内で画素毎の動きベクトルを求める動きベクトル検出部と、
動きベクトルが求められた画像フレームをブロック分割し、各ブロックを、算出された動きベクトルの精度が相対的に高い信頼領域と、動きベクトルの精度が相対的に低い非信頼領域のいずれかに分ける信頼領域分離部と、
信頼領域の動きベクトルを信頼領域と隣接する非信頼領域の画素に適用したとき、適用後の移動先の画素値と終点画像フレーム内の対応する画素の画素値との誤差を計算し、誤差がしきい値より小さい場合、その画素を信頼領域に組み入れて該画素の動きベクトルを信頼領域の動きベクトルで置換する動きベクトル改良部と、
を備えることを特徴とする画像処理装置。
【請求項４】
非信頼領域に含まれる画素のうち前記動きベクトル改良部によって信頼領域に組み入れられなかった始点画像フレーム内の画素からなるブロックについて、終点画像フレーム内で誤差の最も少ないブロックを網羅的に検索するブロックマッチングを実行するブロックマッチング部をさらに備え、ブロックマッチングの結果求められる動きベクトルで当該ブロックの動きベクトルを置換することを特徴とする請求項３に記載の画像処理装置。
【請求項５】
連続した画像フレームを有する画像データ内の始点画像フレームと終点画像フレームの間で順方向と逆方向の両方で動きベクトルを求める動きベクトル検出部と、
順方向と逆方向の動きベクトルを画素毎に比較し、両者の大きさが異なる画素がある場合、該画素を内部に含むオブジェクトが同一フレーム内の他のオブジェクトによって隠される領域、または前記オブジェクトが同一フレーム内の他のオブジェクトを背後に隠す領域であるオクルージョン領域に前記画素が含まれると判定するオクルージョン検出部と、
を備えることを特徴とする画像処理装置。
【請求項６】
前記オクルージョン検出部は、順方向と逆方向のいずれかの動きベクトルが０となった画素について、始点画像フレームには前記画素に対応する点があるが終点画像フレームには対応する点がないという関係が成立する場合、前記画素を含む領域をオクルーダに覆われて隠される領域であるカバード領域と判定し、始点画像フレームには前記画素に対応する点がないが終点画像には対応する点があるという関係が成立する場合、前記画素を含む領域をオクルーダの背後から現れる領域であるアンカバード領域と判定することを特徴とする請求項５に記載の画像処理装置。
【請求項７】
前記カバード領域とアンカバード領域との和集合を画像フレームのマスクとして利用することを特徴とする請求項６に記載の画像処理装置。
【請求項８】
画像フレーム内でオブジェクトと背景とのエッジを検出しエッジ画像を作成するエッジ検出部と、
前記マスクと前記エッジ画像との積集合を求めることによって、始点画像フレームまたは終点画像フレーム内で静止しているオブジェクト間のエッジを取り除いて、動物体と静止物体との間のエッジ部分のみを抽出するエッジ抽出部と、
をさらに備えることを特徴とする請求項７に記載の画像処理装置。
【請求項９】
連続した画像フレームを有する画像データ内の始点画像フレームと終点画像フレームの間で各画素について対応点情報を求めるマッチングを初期マッチングとして実行し、
マッチングの結果にしたがって動きベクトルを求め、求めた動きベクトルの信頼度を各画素について判定し、信頼度が低いと判定された画素については、複数の画素で構成されるブロック単位のブロックマッチングを始点画像フレームと終点画像フレームの間で実行して、改めて動きベクトルを算出する処理をコンピュータに実行せしめることを特徴とするコンピュータプログラム。
【請求項１０】
連続した画像フレームを有する画像データ内の二つの画像フレームの間でマッチングを実行して画像フレーム間の対応点情報を生成するステップと、
マッチングの結果に基づいて画素毎に動きベクトルを算出するステップと、
前記動きベクトルに基づいてオブジェクトが同一フレーム内の他のオブジェクトによってフレーム内で隠される領域、またはオブジェクトが同一フレーム内の他のオブジェクトを背後に隠す領域であるオクルージョン領域を検出するステップと、
前記動きベクトルと前記オクルージョン領域とに基づいて、画像フレーム内で静止している部分と動いている部分とを切り分けるステップと、
を含むことを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、画像フレーム間の対応点情報を利用する画像処理方法とおよび装置に関する。
【背景技術】
【０００２】
静止画像や動画像のデジタル画像処理は、近年のプロセッサやＬＳＩ技術などの著しい発展とともに応用範囲が多様化し、現在では画像の作成、記録、加工、再生、通信を行うことが、画像処理技術者ならずとも一般に容易に行えるようになった。なかでも、ＪＰＥＧ（Joint Photographic Experts Group）やＭＰＥＧ（Motion Picture Expert Group）のような圧縮技術の進歩は、優れた画質をもつ画像データの保存や送信を容易にし、現在では４００万画素を超える静止画像を記録できるデジタルスチルカメラも珍しくなくなった。
【０００３】
また、デジタルスチルカメラには動画像記録機能が、デジタルビデオカメラには静止画像記録機能がそれぞれ装備されたことにより、両者の機能的役割の境界はあいまいになりつつある。
【０００４】
出願人が先に特許第２９２７３５０号にて提案した技術では、あるフレームと次のフレームの間で位置エネルギーと画素のエネルギーの和が最小になる点を求めることで、各ブロックの各頂点について全単射先を求めるようにしている。こうすることで、高精度のマッチングが可能になり、また動画像の圧縮効率を高めることにもつながる。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記のような全単射のマッチングを実施する場合には、以下のような問題がある。すなわち、画面内に動きのある物体が存在すると、その物体は背景の画像を隠しながら移動することになる。そのため、あるフレームでは見えていた背景部分のうち、次のフレームでは物体に隠されて見えなくなる部分が存在する。反対に、あるフレームでは物体に隠されて見えない背景部分のうち、次のフレームでは物体の背後から出て見えるようになる部分が存在する。このような領域においては、あるフレームで観察される画素と対応する画素が、次のフレームには存在しないことになる。そのため、全単射先を求めようとすると、その画素を含むブロックについては正確な全単射先を求めることは不可能であるため、ブロックが大きく歪んでしまう。このような歪みは、動画像の圧縮の際に正確な動きベクトルを求められないことの原因になる。
【０００６】
本発明はそうした状況に鑑みてなされたものであり、その目的は、画像フレーム内を移動するオブジェクトがある場合でも高精度の動きベクトルを求める技術を提供することにある。
【課題を解決するための手段】
【０００７】
本発明のある態様の画像処理方法は、連続した画像フレームを有する画像データ内の二つの画像フレーム間で画素毎の対応点情報を求めるマッチングを実行し、その中で対応関係の信頼度が低い画素については両画像間でブロックマッチングを実行してブロック毎に対応関係を求める。
【０００８】
ここで、対応点情報とは、以降説明する前提技術におけるフレーム間の対応情報のことである。
【０００９】
この態様によると、複数のマッチング手法を利用して対応関係を求めることができる。
【００１０】
本発明の別の態様もまた、画像処理方法である。この方法は、連続した画像フレームを有する画像データ内の始点画像フレームと終点画像フレームの間で各画素について対応点情報を求めるマッチングを初期マッチングとして実行し、マッチングの結果にしたがって動きベクトルを求め、求めた動きベクトルの信頼度を各画素について判定し、信頼度が低いと判定された画素については、複数の画素で構成されるブロック単位のブロックマッチングを始点画像フレームと終点画像フレームの間で実行して、改めて動きベクトルを算出する。
【００１１】
この態様によると、初期マッチングの結果にしたがって求められた動きベクトルの信頼度が低い画素については、初期マッチングとは異なる手法であるブロックマッチングを実行して動きベクトルを算出するので、画像フレーム全体でみたときの動きベクトルの精度を改善することができる。
【００１２】
本発明のさらに別の態様は、画像処理装置である。この装置は、連続した画像フレームを有する画像データ内の始点画像フレームと終点画像フレームとの間で画素毎の対応点情報を求めるマッチングを実行するマッチング処理部と、マッチングの結果に基づいて始点画像フレーム内で画素毎の動きベクトルを求める動きベクトル検出部と、動きベクトルが求められた画像フレームをブロック分割し、各ブロックを、算出された動きベクトルの精度が相対的に高い信頼領域と、動きベクトルの精度が相対的に低い非信頼領域のいずれかに分ける信頼領域分離部と、信頼領域の動きベクトルを信頼領域と隣接する非信頼領域の画素に適用したとき、適用後の移動先の画素値と終点画像フレーム内の対応する画素の画素値との誤差を計算し、誤差がしきい値より小さい場合、その画素を信頼領域に組み入れて該画素の動きベクトルを信頼領域の動きベクトルで置換する動きベクトル改良部と、を備える。
【００１３】
この態様によると、まず対応点情報に基づいて求められる動きベクトルを利用して、画像フレームを信頼領域と非信頼領域とを大雑把に切り分ける。その後、非信頼領域の画素については、信頼領域の動きベクトルを利用して動きベクトルを推定するようにした。こうすることで、非信頼領域の動きベクトルの精度を高めることができる。
【００１４】
非信頼領域に含まれる画素のうち動きベクトル改良部によって信頼領域に組み入れられなかった始点画像フレーム内の画素からなるブロックについて、終点画像フレーム内で誤差の最も少ないブロックを網羅的に検索するブロックマッチングを実行するブロックマッチング部をさらに備え、ブロックマッチングの結果求められる動きベクトルで当該ブロックの動きベクトルを置換してもよい。
【００１５】
本発明のさらに別の態様もまた、画像処理装置である。この装置は、連続した画像フレームを有する画像データ内の始点画像フレームと終点画像フレームの間で順方向と逆方向の両方で動きベクトルを求める動きベクトル検出部と、順方向と逆方向の動きベクトルを画素毎に比較し、両者の大きさが異なる画素がある場合、該画素を内部に含むオブジェクトが同一フレーム内の他のオブジェクトによって隠される領域、またはオブジェクトが同一フレーム内の他のオブジェクトを背後に隠す領域であるオクルージョン領域に画素が含まれると判定するオクルージョン検出部と、を備える。
【００１６】
この態様によると、双方向の動きベクトルを比較することによって画像フレーム内でオクルージョン領域を切り分けることができる。
【００１７】
オクルージョン検出部は、順方向と逆方向のいずれかの動きベクトルが０となった画素について、始点画像フレームには画素に対応する点があるが終点画像フレームには対応する点がないという関係が成立する場合、画素を含む領域をオクルーダに覆われて隠される領域であるカバード領域と判定し、始点画像フレームには画素に対応する点がないが終点画像には対応する点があるという関係が成立する場合、画素を含む領域をオクルーダの背後から現れる領域であるアンカバード領域と判定してもよい。
【００１８】
カバード領域とアンカバード領域との和集合を画像フレームのマスクとして利用してもよい。
【００１９】
画像フレーム内でオブジェクトと背景とのエッジを検出しエッジ画像を作成するエッジ検出部と、マスクとエッジ画像との積集合を求めることによって、始点画像フレームまたは終点画像フレーム内で静止しているオブジェクト間のエッジを取り除いて、動物体と静止物体との間のエッジ部分のみを抽出するエッジ抽出部と、をさらに備えてもよい。
【００２０】
本発明のさらに別の態様は、画像処理方法である。この方法は、連続した画像フレームを有する画像データ内の二つの画像フレームの間でマッチングを実行して画像フレーム間の対応点情報を生成するステップと、マッチングの結果に基づいて画素毎に動きベクトルを算出するステップと、動きベクトルに基づいてオブジェクトが同一フレーム内の他のオブジェクトによってフレーム内で隠される領域、またはオブジェクトが同一フレーム内の他のオブジェクトを背後に隠す領域であるオクルージョン領域を検出するステップと、動きベクトルとオクルージョン領域とに基づいて、画像フレーム内で静止している部分と動いている部分とを切り分けるステップと、を含む。
【００２１】
なお、以上の態様のうち、画像フレーム間の対応点情報を生成する部分については、本出願人が先に特許第２９２７３５０号にて提案した技術（以下「前提技術」という）を利用することができる。
【００２２】
以上の各構成、工程を任意に入れ替えたり、方法と装置の間で表現を一部または全部入れ替え、または追加したり、表現をコンピュータプログラム、記録媒体等に変更したものもまた、本発明として有効である。
【発明の効果】
【００２３】
本発明によれば、画像フレーム内を移動するオブジェクトがある場合でも高精度の動きベクトルを求めることができる。
【発明を実施するための最良の形態】
【００２４】
はじめに、実施の形態で利用する多重解像度特異点フィルタ技術とそれを用いた画像マッチング処理を「前提技術」として詳述する。これらの技術は本出願人がすでに特許第２９２７３５０号を得ている技術であり、本発明との組合せに最適である。ただし、実施の形態で採用可能な画像マッチング技術はこれに限られない。図１９以降、前提技術を利用した画像処理技術を具体的に説明する。
【００２５】
[前提技術の実施の形態]
最初に［１］で前提技術の要素技術を詳述し、［２］で処理手順を具体的に説明する。さらに［３］で前提技術に基づき改良を施した点について述べる。
【００２６】
［１］要素技術の詳細
［１．１］イントロダクション
特異点フィルタと呼ばれる新たな多重解像度フィルタを導入し、画像間のマッチングを正確に計算する。オブジェクトに関する予備知識は一切不要である。画像間のマッチングの計算は、解像度の階層を進む間、各解像度において計算される。その際、粗いレベルから精細なレベルへと順に解像度の階層を辿っていく。計算に必要なパラメータは、人間の視覚システムに似た動的計算によって完全に自動設定される。画像間の対応点を人手で特定する必要はない。
【００２７】
本前提技術は、例えば完全に自動的なモーフィング、物体認識、立体写真測量、ボリュームレンダリング、少ないフレームからの滑らかな動画像の生成などに応用できる。モーフィングに用いる場合、与えられた画像を自動的に変形することができる。ボリュームレンダリングに用いる場合、断面間の中間的な画像を正確に再構築することができる。断面間の距離が遠く、断面の形状が大きく変化する場合でも同様である。
【００２８】
［１．２］特異点フィルタの階層
前提技術に係る多重解像度特異点フィルタは、画像の解像度を落としながら、しかも画像に含まれる各特異点の輝度及び位置を保存することができる。ここで画像の幅をＮ、高さをＭとする。以下簡単のため、Ｎ＝Ｍ＝２ｎ（ｎは自然数）と仮定する。また、区間［０，Ｎ］⊂ＲをＩと記述する。（ｉ，ｊ）における画像の画素をｐ（ｉ，ｊ）と記述する（ｉ，ｊ∈Ｉ）。
【００２９】
ここで多重解像度の階層を導入する。階層化された画像群は多重解像度フィルタで生成される。多重解像度フィルタは、もとの画像に対して二次元的な探索を行って特異点を検出し、検出された特異点を抽出してもとの画像よりも解像度の低い別の画像を生成する。ここで第ｍレベルにおける各画像のサイズは２ｍ×２ｍ（０≦ｍ≦ｎ）とする。特異点フィルタは次の４種類の新たな階層画像をｎから下がる方向で再帰的に構築する。
【００３０】
【数１】
2008282377.tif 000003
ただしここで、
【数２】
2008282377.tif 000004
とする。以降これら４つの画像を副画像（サブイメージ）と呼ぶ。ｍｉｎｘ≦ｔ≦ｘ＋１、ｍａｘｘ≦ｔ≦ｘ＋１をそれぞれα及びβと記述すると、副画像はそれぞれ以下のように記述できる。
【００３１】
Ｐ（ｍ，０）＝α（ｘ）α（ｙ）ｐ（ｍ＋１，０）
Ｐ（ｍ，１）＝α（ｘ）β（ｙ）ｐ（ｍ＋１，１）
Ｐ（ｍ，２）＝β（ｘ）α（ｙ）ｐ（ｍ＋１，２）
Ｐ（ｍ，３）＝β（ｘ）β（ｙ）ｐ（ｍ＋１，３）
すなわち、これらはαとβのテンソル積のようなものと考えられる。副画像はそれぞれ特異点に対応している。これらの式から明らかなように、特異点フィルタはもとの画像について２×２画素で構成されるブロックごとに特異点を検出する。その際、各ブロックのふたつの方向、つまり縦と横について、最大画素値または最小画素値をもつ点を探索する。画素値として、前提技術では輝度を採用するが、画像に関するいろいろな数値を採用することができる。ふたつの方向の両方について最大画素値となる画素は極大点、ふたつの方向の両方について最小画素値となる画素は極小点、ふたつの方向の一方について最大画素値となるとともに、他方について最小画素値となる画素は鞍点として検出される。
【００３２】
特異点フィルタは、各ブロックの内部で検出された特異点の画像（ここでは１画素）でそのブロックの画像（ここでは４画素）を代表させることにより、画像の解像度を落とす。特異点の理論的な観点からすれば、α（ｘ）α（ｙ）は極小点を保存し、β（ｘ）β（ｙ）は極大点を保存し、α（ｘ）β（ｙ）及びβ（ｘ）α（ｙ）は鞍点を保存する。
【００３３】
はじめに、マッチングをとるべき始点（ソース）画像と終点（デスティネーション）画像に対して別々に特異点フィルタ処理を施し、それぞれ一連の画像群、すなわち始点階層画像と終点階層画像を生成しておく。始点階層画像と終点階層画像は、特異点の種類に対応してそれぞれ４種類ずつ生成される。
【００３４】
この後、一連の解像度レベルの中で始点階層画像と終点階層画像のマッチングがとられていく。まずｐ（ｍ，０）を用いて極小点のマッチングがとられる。次に、その結果に基づき、ｐ（ｍ，１）を用いて鞍点のマッチングがとられ、ｐ（ｍ，２）を用いて他の鞍点のマッチングがとられる。そして最後にｐ（ｍ，３）を用いて極大点のマッチングがとられる。
【００３５】
図１（ｃ）と図１（ｄ）はそれぞれ図１（ａ）と図１（ｂ）の副画像ｐ（５，０）を示している。同様に、図１（ｅ）と図１（ｆ）はｐ（５，１）、図１（ｇ）と図１（ｈ）はｐ（５，２）、図１（ｉ）と図１（ｊ）はｐ（５，３）をそれぞれ示している。これらの図からわかるとおり、副画像によれば画像の特徴部分のマッチングが容易になる。まずｐ（５，０）によって目が明確になる。目は顔の中で輝度の極小点だからである。ｐ（５，１）によれば口が明確になる。口は横方向で輝度が低いためである。ｐ（５，２）によれば首の両側の縦線が明確になる。最後に、ｐ（５，３）によって耳や頬の最も明るい点が明確になる。これらは輝度の極大点だからである。
【００３６】
特異点フィルタによれば画像の特徴が抽出できるため、例えばカメラで撮影された画像の特徴と、予め記録しておいたいくつかのオブジェクトの特徴を比較することにより、カメラに映った被写体を識別することができる。
【００３７】
［１．３］画像間の写像の計算
始点画像の位置（ｉ，ｊ）の画素をｐ（ｎ）（ｉ，ｊ）と書き、同じく終点画像の位置（ｋ，ｌ）の画素をｑ（ｎ）（ｋ，ｌ）で記述する。ｉ，ｊ，ｋ，ｌ∈Ｉとする。画像間の写像のエネルギー（後述）を定義する。このエネルギーは、始点画像の画素の輝度と終点画像の対応する画素の輝度の差、及び写像の滑らかさによって決まる。最初に最小のエネルギーを持つｐ（ｍ，０）とｑ（ｍ，０）間の写像ｆ（ｍ，０）：ｐ（ｍ，０）→ｑ（ｍ，０）が計算される。ｆ（ｍ，０）に基づき、最小エネルギーを持つｐ（ｍ，１）、ｑ（ｍ，１）間の写像ｆ（ｍ，１）が計算される。この手続は、ｐ（ｍ，３）とｑ（ｍ，３）の間の写像ｆ（ｍ，３）の計算が終了するまで続く。各写像ｆ（ｍ，ｉ）（ｉ＝０，１，２，…）を副写像と呼ぶことにする。ｆ（ｍ，ｉ）の計算の都合のために、ｉの順序は次式のように並べ替えることができる。並べ替えが必要な理由は後述する。
【００３８】
【数３】
2008282377.tif 000005
ここでσ（ｉ）∈｛０，１，２，３｝である。
【００３９】
［１．３．１］全単射
始点画像と終点画像の間のマッチングを写像で表現する場合、その写像は両画像間で全単射条件を満たすべきである。両画像に概念上の優劣はなく、互いの画素が全射かつ単射で接続されるべきだからである。しかしながら通常の場合とは異なり、ここで構築すべき写像は全単射のデジタル版である。前提技術では、画素は格子点によって特定される。
【００４０】
始点副画像（始点画像について設けられた副画像）から終点副画像（終点画像について設けられた副画像）への写像は、ｆ（ｍ，ｓ）：Ｉ／２ｎ−ｍ×Ｉ／２ｎ−ｍ→Ｉ／２ｎ−ｍ×Ｉ／２ｎ−ｍ（ｓ＝０，１，…）によって表される。ここで、ｆ（ｍ，ｓ）（ｉ，ｊ）＝（ｋ，ｌ）は、始点画像のｐ（ｍ，ｓ）（ｉ，ｊ）が終点画像のｑ（ｍ，ｓ）（ｋ，ｌ）に写像されることを意味する。簡単のために、ｆ（ｉ，ｊ）＝（ｋ，ｌ）が成り立つとき画素ｑ（ｋ，ｌ）をｑｆ（ｉ，ｊ）と記述する。
【００４１】
前提技術で扱う画素（格子点）のようにデータが離散的な場合、全単射の定義は重要である。ここでは以下のように定義する（ｉ，ｉ’，ｊ，ｊ’，ｋ，ｌは全て整数とする）。まず始めに、始点画像の平面においてＲによって表記される各正方形領域、
【数４】
2008282377.tif 000006
を考える（ｉ＝０，…，２ｍ−１、ｊ＝０，…，２ｍ−１）。ここでＲの各辺（エッジ）の方向を以下のように定める。
【００４２】
【数５】
2008282377.tif 000007
この正方形は写像ｆによって終点画像平面における四辺形に写像されなければならない。ｆ（ｍ，ｓ）（Ｒ）によって示される四辺形、
【数６】
2008282377.tif 000008
は、以下の全単射条件を満たす必要がある。
【００４３】
１．四辺形ｆ（ｍ，ｓ）（Ｒ）のエッジは互いに交差しない。
２．ｆ（ｍ，ｓ）（Ｒ）のエッジの方向はＲのそれらに等しい（図２の場合、時計回り）。
３．緩和条件として収縮写像（リトラクション：retractions）を許す。
【００４４】
何らかの緩和条件を設けないかぎり、全単射条件を完全に満たす写像は単位写像しかないためである。ここではｆ（ｍ，ｓ）（Ｒ）のひとつのエッジの長さが０、すなわちｆ（ｍ，ｓ）（Ｒ）は三角形になってもよい。しかし、面積が０となるような図形、すなわち１点または１本の線分になってはならない。図２（Ｒ）がもとの四辺形の場合、図２（Ａ）と図２（Ｄ）は全単射条件を満たすが、図２（Ｂ）、図２（Ｃ）、図２（Ｅ）は満たさない。
【００４５】
実際のインプリメンテーションでは、写像が全射であることを容易に保証すべく、さらに以下の条件を課してもよい。つまり始点画像の境界上の各画素は、終点画像において同じ位置を占める画素に写影されるというものである。すなわち、ｆ（ｉ，ｊ）＝（ｉ，ｊ）（ただしｉ＝０，ｉ＝２ｍ−１，ｊ＝０，ｊ＝２ｍ−１の４本の線上）である。この条件を以下「付加条件」とも呼ぶ。
【００４６】
［１．３．２］写像のエネルギー
［１．３．２．１］画素の輝度に関するコスト
写像ｆのエネルギーを定義する。エネルギーが最小になる写像を探すことが目的である。エネルギーは主に、始点画像の画素の輝度とそれに対応する終点画像の画素の輝度の差で決まる。すなわち、写像ｆ（ｍ，ｓ）の点（ｉ，ｊ）におけるエネルギーＣ（ｍ，ｓ）（ｉ，ｊ）は次式によって定まる。
【００４７】
【数７】
2008282377.tif 000009
ここで、Ｖ（ｐ（ｍ，ｓ）（ｉ，ｊ））及びＶ（ｑ（ｍ，ｓ）ｆ（ｉ，ｊ））はそれぞれ画素ｐ（ｍ，ｓ）（ｉ，ｊ）及びｑ（ｍ，ｓ）ｆ（ｉ，ｊ）の輝度である。ｆのトータルのエネルギーＣ（ｍ，ｓ）は、マッチングを評価するひとつの評価式であり、つぎに示すＣ（ｍ，ｓ）（ｉ，ｊ）の合計で定義できる。
【００４８】
【数８】
2008282377.tif 000010
［１．３．２．２］滑らかな写像のための画素の位置に関するコスト
滑らかな写像を得るために、写像に関する別のエネルギーＤｆを導入する。このエネルギーは画素の輝度とは関係なく、ｐ（ｍ，ｓ）（ｉ，ｊ）およびｑ（ｍ，ｓ）ｆ（ｉ，ｊ）の位置によって決まる（ｉ＝０，…，２ｍ−１，ｊ＝０，…，２ｍ−１）。点（ｉ，ｊ）における写像ｆ（ｍ，ｓ）のエネルギーＤ（ｍ，ｓ）（ｉ，ｊ）は次式で定義される。
【００４９】
【数９】
2008282377.tif 000011
ただし、係数パラメータηは０以上の実数であり、また、
【数１０】
2008282377.tif 000012
【数１１】
2008282377.tif 000013
とする。ここで、
【数１２】
2008282377.tif 000014
であり、ｉ’＜０およびｊ’＜０に対してｆ（ｉ’，ｊ’）は０と決める。Ｅ０は（ｉ，ｊ）及びｆ（ｉ，ｊ）の距離で決まる。Ｅ０は画素があまりにも離れた画素へ写影されることを防ぐ。ただしＥ０は、後に別のエネルギー関数で置き換える。Ｅ１は写像の滑らかさを保証する。Ｅ１は、ｐ（ｉ，ｊ）の変位とその隣接点の変位の間の隔たりを表す。以上の考察をもとに、マッチングを評価する別の評価式であるエネルギーＤｆは次式で定まる。
【００５０】
【数１３】
2008282377.tif 000015
［１．３．２．３］写像の総エネルギー
写像の総エネルギー、すなわち複数の評価式の統合に係る総合評価式はλＣ（ｍ，ｓ）ｆ＋Ｄ（ｍ，ｓ）ｆで定義される。ここで係数パラメータλは０以上の実数である。目的は総合評価式が極値をとる状態を検出すること、すなわち次式で示す最小エネルギーを与える写像を見いだすことである。
【００５１】
【数１４】
2008282377.tif 000016
λ＝０及びη＝０の場合、写像は単位写像になることに注意すべきである（すなわち、全てのｉ＝０，…，２ｍ−１及びｊ＝０，…，２ｍ−１に対してｆ（ｍ，ｓ）（ｉ，ｊ）＝（ｉ，ｊ）となる）。後述のごとく、本前提技術では最初にλ＝０及びη＝０の場合を評価するため、写像を単位写像から徐々に変形していくことができる。仮に総合評価式のλの位置を変えてＣ（ｍ，ｓ）ｆ＋λＤ（ｍ，ｓ）ｆと定義したとすれば、λ＝０及びη＝０の場合に総合評価式がＣ（ｍ，ｓ）ｆだけになり、本来何等関連のない画素どうしが単に輝度が近いというだけで対応づけられ、写像が無意味なものになる。そうした無意味な写像をもとに写像を変形していってもまったく意味をなさない。このため、単位写像が評価の開始時点で最良の写像として選択されるよう係数パラメータの与えかたが配慮されている。
【００５２】
オプティカルフローもこの前提技術同様、画素の輝度の差と滑らかさを考慮する。しかし、オプティカルフローは画像の変換に用いることはできない。オブジェクトの局所的な動きしか考慮しないためである。前提技術に係る特異点フィルタを用いることによって大域的な対応関係を検出することができる。
【００５３】
［１．３．３］多重解像度の導入による写像の決定
最小エネルギーを与え、全単射条件を満足する写像ｆｍｉｎを多重解像度の階層を用いて求める。各解像度レベルにおいて始点副画像及び終点副画像間の写像を計算する。解像度の階層の最上位（最も粗いレベル）からスタートし、各解像度レベルの写像を、他のレベルの写像を考慮に入れながら決定する。各レベルにおける写像の候補の数は、より高い、つまりより粗いレベルの写像を用いることによって制限される。より具体的には、あるレベルにおける写像の決定に際し、それよりひとつ粗いレベルにおいて求められた写像が一種の拘束条件として課される。
【００５４】
まず、
【数１５】
2008282377.tif 000017
が成り立つとき、ｐ（ｍ−１，ｓ）（ｉ’，ｊ’）、ｑ（ｍ−１，ｓ）（ｉ’，ｊ’）をそれぞれｐ（ｍ，ｓ）（ｉ，ｊ）、ｑ（ｍ，ｓ）（ｉ，ｊ）のｐａｒｅｎｔと呼ぶことにする。［ｘ］はｘを越えない最大整数である。またｐ（ｍ，ｓ）（ｉ，ｊ）、ｑ（ｍ，ｓ）（ｉ，ｊ）をそれぞれｐ（ｍ−１，ｓ）（ｉ’，ｊ’）、ｑ（ｍ−１，ｓ）（ｉ’，ｊ’）のｃｈｉｌｄと呼ぶ。関数ｐａｒｅｎｔ（ｉ，ｊ）は次式で定義される。
【００５５】
【数１６】
2008282377.tif 000018
ｐ（ｍ，ｓ）（ｉ，ｊ）とｑ（ｍ，ｓ）（ｋ，ｌ）の間の写像ｆ（ｍ，ｓ）は、エネルギー計算を行って最小になったものを見つけることで決定される。ｆ（ｍ，ｓ）（ｉ，ｊ）＝（ｋ，ｌ）の値はｆ（ｍ−１，ｓ）（ｍ＝１，２，…，ｎ）を用いることによって、以下のように決定される。まず、ｑ（ｍ，ｓ）（ｋ，ｌ）は次の四辺形の内部になければならないという条件を課し、全単射条件を満たす写像のうち現実性の高いものを絞り込む。
【００５６】
【数１７】
2008282377.tif 000019
ただしここで、
【数１８】
2008282377.tif 000020
である。こうして定めた四辺形を、以下ｐ（ｍ，ｓ）（ｉ，ｊ）の相続（inherited）四辺形と呼ぶことにする。相続四辺形の内部において、エネルギーを最小にする画素を求める。
【００５７】
図３は以上の手順を示している。同図において、始点画像のＡ，Ｂ，Ｃ，Ｄの画素は、第ｍ−１レベルにおいてそれぞれ終点画像のＡ’，Ｂ’，Ｃ’，Ｄ’へ写影される。画素ｐ（ｍ，ｓ）（ｉ，ｊ）は、相続四辺形Ａ’Ｂ’Ｃ’Ｄ’の内部に存在する画素ｑ（ｍ，ｓ）ｆ（ｍ）（ｉ，ｊ）へ写影されなければならない。以上の配慮により、第ｍ−１レベルの写像から第ｍレベルの写像への橋渡しがなされる。
【００５８】
先に定義したエネルギーＥ０は、第ｍレベルにおける副写像ｆ（ｍ，０）を計算するために、次式に置き換える。
【００５９】
【数１９】
2008282377.tif 000021
また、副写像ｆ（ｍ，ｓ）を計算するためには次式を用いる。
【００６０】
【数２０】
2008282377.tif 000022
こうしてすべての副写像のエネルギーを低い値に保つ写像が得られる。式２０により、異なる特異点に対応する副写像が、副写像どうしの類似度が高くなるように同一レベル内で関連づけられる。式１９は、ｆ（ｍ，ｓ）（ｉ，ｊ）と、第ｍ−１レベルの画素の一部と考えた場合の（ｉ，ｊ）が射影されるべき点の位置との距離を示している。
【００６１】
仮に、相続四辺形Ａ’Ｂ’Ｃ’Ｄ’の内部に全単射条件を満たす画素が存在しない場合は以下の措置をとる。まず、Ａ’Ｂ’Ｃ’Ｄ’の境界線からの距離がＬ（始めはＬ＝１）である画素を調べる。それらのうち、エネルギーが最小になるものが全単射条件を満たせば、これをｆ（ｍ，ｓ）（ｉ，ｊ）の値として選択する。そのような点が発見されるか、またはＬがその上限のＬ（ｍ）ｍａｘに到達するまで、Ｌを大きくしていく。Ｌ（ｍ）ｍａｘは各レベルｍに対して固定である。そのような点が全く発見されない場合、全単射の第３の条件を一時的に無視して変換先の四辺形の面積がゼロになるような写像も認め、ｆ（ｍ，ｓ）（ｉ，ｊ）を決定する。それでも条件を満たす点が見つからない場合、つぎに全単射の第１及び第２条件を外す。
【００６２】
多重解像度を用いる近似法は、写像が画像の細部に影響されることを回避しつつ、画像間の大域的な対応関係を決定するために必須である。多重解像度による近似法を用いなければ、距離の遠い画素間の対応関係を見いだすことは不可能である。その場合、画像のサイズはきわめて小さなものに限定しなければならず、変化の小さな画像しか扱うことができない。さらに、通常写像に滑らかさを要求するため、そうした画素間の対応関係を見つけにくくしている。距離のある画素から画素への写像のエネルギーは高いためである。多重解像度を用いた近似法によれば、そうした画素間の適切な対応関係を見いだすことができる。それらの距離は、解像度の階層の上位レベル（粗いレベル）において小さいためである。
【００６３】
［１．４］最適なパラメータ値の自動決定
既存のマッチング技術の主な欠点のひとつに、パラメータ調整の困難さがある。大抵の場合、パラメータの調整は人手作業によって行われ、最適な値を選択することはきわめて難しい。前提技術に係る方法によれば、最適なパラメータ値を完全に自動決定することができる。
【００６４】
前提技術に係るシステムはふたつのパラメータ、λ及びηを含む。端的にいえば、λは画素の輝度の差の重みであり、ηは写像の剛性を示している。これらのパラメータの値は初期値が０であり、まずη＝０に固定してλを０から徐々に増加させる。λの値を大きくしながら、しかも総合評価式（式１４）の値を最小にする場合、各副写像に関するＣ（ｍ，ｓ）ｆの値は一般に小さくなっていく。このことは基本的にふたつの画像がよりマッチしなければならないことを意味する。しかし、λが最適値を超えると以下の現象が発生する。
【００６５】
１．本来対応すべきではない画素どうしが、単に輝度が近いというだけで誤って対応づけられる。
２．その結果、画素どうしの対応関係がおかしくなり、写像がくずれはじめる。
３．その結果、式１４においてＤ（ｍ，ｓ）ｆが急激に増加しようとする。
４．その結果、式１４の値が急激に増加しようとするため、Ｄ（ｍ，ｓ）ｆの急激な増加を抑制するようｆ（ｍ，ｓ）が変化し、その結果Ｃ（ｍ，ｓ）ｆが増加する。
したがって、λを増加させながら式１４が最小値をとるという状態を維持しつつＣ（ｍ，ｓ）ｆが減少から増加に転じる閾値を検出し、そのλをη＝０における最適値とする。つぎにηを少しずつ増やしてＣ（ｍ，ｓ）ｆの挙動を検査し、後述の方法でηを自動決定する。そのηに対応してλも決まる。
【００６６】
この方法は、人間の視覚システムの焦点機構の動作に似ている。人間の視覚システムでは、一方の目を動かしながら左右両目の画像のマッチングがとられる。オブジェクトがはっきりと認識できるとき、その目が固定される。
【００６７】
［１．４．１］λの動的決定
λは０から所定の刻み幅で増加されていき、λの値が変わる度に副写像が評価される。式１４のごとく、総エネルギーはλＣ（ｍ，ｓ）ｆ＋Ｄ（ｍ，ｓ）ｆによって定義される。式９のＤ（ｍ，ｓ）ｆは滑らかさを表すもので、理論的には単位写像の場合に最小になり、写像が歪むほどＥ０もＥ１も増加していく。Ｅ１は整数であるから、Ｄ（ｍ，ｓ）ｆの最小刻み幅は１である。このため、現在のλＣ（ｍ，ｓ）（ｉ，ｊ）の変化（減少量）が１以上でなければ、写像を変化させることによって総エネルギーを減らすことはできない。なぜなら、写像の変化に伴ってＤ（ｍ，ｓ）ｆは１以上増加するため、λＣ（ｍ，ｓ）（ｉ，ｊ）が１以上減少しない限り総エネルギーは減らないためである。
【００６８】
この条件のもと、λの増加に伴い、正常な場合にＣ（ｍ，ｓ）（ｉ，ｊ）が減少することを示す。Ｃ（ｍ，ｓ）（ｉ，ｊ）のヒストグラムをｈ（ｌ）と記述する。ｈ（ｌ）はエネルギーＣ（ｍ，ｓ）（ｉ，ｊ）がｌ２である画素の数である。λｌ２≧１が成り立つために、例えばｌ２＝１／λの場合を考える。λがλ１からλ２まで微小量変化するとき、
【数２１】
2008282377.tif 000023
で示されるＡ個の画素が、
【数２２】
2008282377.tif 000024
のエネルギーを持つより安定的な状態に変化する。ここでは仮に、これらの画素のエネルギーがすべてゼロになると近似している。この式はＣ（ｍ，ｓ）ｆの値が、
【数２３】
2008282377.tif 000025
だけ変化することを示し、その結果、
【数２４】
2008282377.tif 000026
が成立する。ｈ（ｌ）＞０であるから、通常Ｃ（ｍ，ｓ）ｆは減少する。しかし、λが最適値を越えようとするとき、上述の現象、つまりＣ（ｍ，ｓ）ｆの増加が発生する。この現象を検出することにより、λの最適値を決定する。
【００６９】
なお、Ｈ（ｈ＞０）及びｋを定数とするとき、
【数２５】
2008282377.tif 000027
と仮定すれば、
【数２６】
2008282377.tif 000028
が成り立つ。このときｋ≠−３であれば、
【数２７】
2008282377.tif 000029
となる。これがＣ（ｍ，ｓ）ｆの一般式である（Ｃは定数）。
【００７０】
λの最適値を検出する際、さらに安全を見て、全単射条件を破る画素の数を検査してもよい。ここで各画素の写像を決定する際、全単射条件を破る確率をｐ０と仮定する。この場合、
【数２８】
2008282377.tif 000030
が成立しているため、全単射条件を破る画素の数は次式の率で増加する。
【００７１】
【数２９】
2008282377.tif 000031
したがって、
【数３０】
2008282377.tif 000032
は定数である。仮にｈ（ｌ）＝Ｈｌｋを仮定するとき、例えば、
【数３１】
2008282377.tif 000033
は定数になる。しかしλが最適値を越えると、上の値は急速に増加する。この現象を検出し、Ｂ０λ３／２＋ｋ／２／２ｍの値が異常値Ｂ０ｔｈｒｅｓを越えるかどうかを検査し、λの最適値を決定することができる。同様に、Ｂ１λ３／２＋ｋ／２／２ｍの値が異常値Ｂ１ｔｈｒｅｓを越えるかどうかを検査することにより、全単射の第３の条件を破る画素の増加率Ｂ１を確認する。ファクター２ｍを導入する理由は後述する。このシステムはこれら２つの閾値に敏感ではない。これらの閾値は、エネルギーＣ（ｍ，ｓ）ｆの観察では検出し損なった写像の過度の歪みを検出するために用いることができる。
【００７２】
なお実験では、副写像ｆ（ｍ，ｓ）を計算する際、もしλが０．１を越えたらｆ（ｍ，ｓ）の計算は止めてｆ（ｍ，ｓ＋１）の計算に移行した。λ＞０．１のとき、画素の輝度２５５レベル中のわずか「３」の違いが副写像の計算に影響したためであり、λ＞０．１のとき正しい結果を得ることは困難だったためである。
【００７３】
［１．４．２］ヒストグラムｈ（ｌ）
Ｃ（ｍ，ｓ）ｆの検査はヒストグラムｈ（ｌ）に依存しない。全単射及びその第３の条件の検査の際、ｈ（ｌ）に影響を受けうる。実際に（λ，Ｃ（ｍ，ｓ）ｆ）をプロットすると、ｋは通常１付近にある。実験ではｋ＝１を用い、Ｂ０λ２とＢ１λ２を検査した。仮にｋの本当の値が１未満であれば、Ｂ０λ２とＢ１λ２は定数にならず、ファクターλ（１−ｋ）／２にしたがって徐々に増加する。ｈ（ｌ）が定数であれば、例えばファクターはλ１／２である。しかし、こうした差は閾値Ｂ０ｔｈｒｅｓを正しく設定することによって吸収することができる。
【００７４】
ここで次式のごとく始点画像を中心が（ｘ０，ｙ０）、半径ｒの円形のオブジェクトであると仮定する。
【数３２】
2008282377.tif 000034
一方、終点画像は、次式のごとく中心（ｘ１，ｙ１）、半径がｒのオブジェクトであるとする。
【数３３】
2008282377.tif 000035
ここでｃ（ｘ）はｃ（ｘ）＝ｘｋの形であるとする。中心（ｘ０，ｙ０）及び（ｘ１，ｙ１）が十分遠い場合、ヒストグラムｈ（ｌ）は次式の形となる。
【数３４】
2008282377.tif 000036
ｋ＝１のとき、画像は背景に埋め込まれた鮮明な境界線を持つオブジェクトを示す。このオブジェクトは中心が暗く、周囲にいくにしたがって明るくなる。ｋ＝−１のとき、画像は曖昧な境界線を持つオブジェクトを表す。このオブジェクトは中心が最も明るく、周囲にいくにしたがって暗くなる。一般のオブジェクトはこれらふたつのタイプのオブジェクトの中間にあると考えてもさして一般性を失わない。したがって、ｋは−１≦ｋ≦１として大抵の場合をカバーでき、式２７が一般に減少関数であることが保障される。
【００７５】
なお、式３４からわかるように、ｒは画像の解像度に影響されること、すなわちｒは２ｍに比例することに注意すべきである。このために［１．４．１］においてファクター２ｍを導入した。
【００７６】
［１．４．３］ηの動的決定
パラメータηも同様の方法で自動決定できる。はじめにη＝０とし、最も細かい解像度における最終的な写像ｆ（ｎ）及びエネルギーＣ（ｎ）ｆを計算する。つづいて、ηをある値Δηだけ増加させ、再び最も細かい解像度における最終写像ｆ（ｎ）及びエネルギーＣ（ｎ）ｆを計算し直す。この過程を最適値が求まるまで続ける。ηは写像の剛性を示す。次式の重みだからである。
【００７７】
【数３５】
2008282377.tif 000037
ηが０のとき、Ｄ（ｎ）ｆは直前の副写像と無関係に決定され、現在の副写像は弾性的に変形され、過度に歪むことになる。一方、ηが非常に大きな値のとき、Ｄ（ｎ）ｆは直前の副写像によってほぼ完全に決まる。このとき副写像は非常に剛性が高く、画素は同じ場所に射影される。その結果、写像は単位写像になる。ηの値が０から次第に増えるとき、後述のごとくＣ（ｎ）ｆは徐々に減少する。しかしηの値が最適値を越えると、図４に示すとおり、エネルギーは増加し始める。同図のＸ軸はη、Ｙ軸はＣｆである。
【００７８】
この方法でＣ（ｎ）ｆを最小にする最適なηの値を得ることができる。しかし、λの場合に比べていろいろな要素が計算に影響する結果、Ｃ（ｎ）ｆは小さく揺らぎながら変化する。λの場合は、入力が微小量変化するたびに副写像を１回計算しなおすだけだが、ηの場合はすべての副写像が計算しなおされるためである。このため、得られたＣ（ｎ）ｆの値が最小であるかどうかを即座に判断することはできない。最小値の候補が見つかれば、さらに細かい区間を設定することによって真の最小値を探す必要がある。
【００７９】
［１．５］スーパーサンプリング
画素間の対応関係を決定する際、自由度を増やすために、ｆ（ｍ，ｓ）の値域をＲ×Ｒに拡張することができる（Ｒは実数の集合）。この場合、終点画像の画素の輝度が補間され、非整数点、
【数３６】
2008282377.tif 000038
における輝度を持つｆ（ｍ，ｓ）が提供される。つまりスーパーサンプリングが行われる。実験では、ｆ（ｍ，ｓ）は整数及び半整数値をとることが許され、
【数３７】
2008282377.tif 000039
は、
【数３８】
2008282377.tif 000040
によって与えられた。
【００８０】
［１．６］各画像の画素の輝度の正規化
始点画像と終点画像がきわめて異なるオブジェクトを含んでいるとき、写像の計算に元の画素の輝度がそのままでは利用しにくい。輝度の差が大きいために輝度に関するエネルギーＣ（ｍ，ｓ）ｆが大きくなりすぎ、正しい評価がしづらいためである。
【００８１】
例えば、人の顔と猫の顔のマッチングをとる場合を考える。猫の顔は毛で覆われており、非常に明るい画素と非常に暗い画素が混じっている。この場合、ふたつの顔の間の副写像を計算するために、まず副画像を正規化する。すなわち、最も暗い画素の輝度を０、最も明るいそれを２５５に設定し、他の画素の輝度は線形補間によって求めておく。
【００８２】
［１．７］インプリメンテーション
始点画像のスキャンにしたがって計算がリニアに進行する帰納的な方法を用いる。始めに、１番上の左端の画素（ｉ，ｊ）＝（０，０）についてｆ（ｍ，ｓ）の値を決定する。次にｉを１ずつ増やしながら各ｆ（ｍ，ｓ）（ｉ，ｊ）の値を決定する。ｉの値が画像の幅に到達したとき、ｊの値を１増やし、ｉを０に戻す。以降、始点画像のスキャンに伴いｆ（ｍ，ｓ）（ｉ，ｊ）を決定していく。すべての点について画素の対応が決まれば、ひとつの写像ｆ（ｍ，ｓ）が決まる。
【００８３】
あるｐ（ｉ，ｊ）について対応点ｑｆ（ｉ，ｊ）が決まれば、つぎにｐ（ｉ，ｊ＋１）の対応点ｑｆ（ｉ，ｊ＋１）が決められる。この際、ｑｆ（ｉ，ｊ＋１）の位置は全単射条件を満たすために、ｑｆ（ｉ，ｊ）の位置によって制限される。したがって、先に対応点が決まる点ほどこのシステムでは優先度が高くなる。つねに（０，０）が最も優先される状態がつづくと、求められる最終の写像に余計な偏向が加わる。本前提技術ではこの状態を回避するために、ｆ（ｍ，ｓ）を以下の方法で決めていく。
【００８４】
まず（ｓ ｍｏｄ ４）が０の場合、（０，０）を開始点としｉ及びｊを徐々に増やしながら決めていく。（ｓ ｍｏｄ ４）が１の場合、最上行の右端点を開始点とし、ｉを減少、ｊを増加させながら決めていく。（ｓ ｍｏｄ ４）が２のとき、最下行の右端点を開始点とし、ｉ及びｊを減少させながら決めていく。（ｓ ｍｏｄ ４）が３の場合、最下行の左端点を開始点とし、ｉを増加、ｊを減少させながら決めていく。解像度が最も細かい第ｎレベルには副写像という概念、すなわちパラメータｓが存在しないため、仮にｓ＝０及びｓ＝２であるとしてふたつの方向を連続的に計算した。
【００８５】
実際のインプリメンテーションでは、全単射条件を破る候補に対してペナルティを与えることにより、候補（ｋ，ｌ）の中からできる限り全単射条件を満たすｆ（ｍ，ｓ）（ｉ，ｊ）（ｍ＝０，…，ｎ）の値を選んだ。第３の条件を破る候補のエネルギーＤ（ｋ、ｌ）にはφを掛け、一方、第１または第２の条件を破る候補にはψを掛ける。今回はφ＝２、ψ＝１０００００を用いた。
【００８６】
前述の全単射条件のチェックのために、実際の手続として（ｋ，ｌ）＝ｆ（ｍ，ｓ）（ｉ，ｊ）を決定する際に以下のテストを行った。すなわちｆ（ｍ，ｓ）（ｉ，ｊ）の相続四辺形に含まれる各格子点（ｋ，ｌ）に対し、次式の外積のｚ成分が０以上になるかどうかを確かめる。
【００８７】
【数３９】
2008282377.tif 000041
ただしここで、
【数４０】
2008282377.tif 000042
【数４１】
2008282377.tif 000043
である（ここでベクトルは三次元ベクトルとし、ｚ軸は直交右手座標系において定義される）。もしＷが負であれば、その候補についてはＤ（ｍ，ｓ）（ｋ，ｌ）にψを掛けることによってペナルティを与え、できるかぎり選択しないようにする。
【００８８】
図５（ａ）、図５（ｂ）はこの条件を検査する理由を示している。図５（ａ）はペナルティのない候補、図５（ｂ）はペナルティがある候補をそれぞれ表す。隣接画素（ｉ，ｊ＋１）に対する写像ｆ（ｍ，ｓ）（ｉ，ｊ＋１）を決定する際、Ｗのｚ成分が負であれば始点画像平面上において全単射条件を満足する画素は存在しない。なぜなら、ｑ（ｍ，ｓ）（ｋ，ｌ）は隣接する四辺形の境界線を越えるためである。
【００８９】
［１．７．１］副写像の順序
インプリメンテーションでは、解像度レベルが偶数のときにはσ（０）＝０、σ（１）＝１、σ（２）＝２、σ（３）＝３、σ（４）＝０を用い、奇数のときはσ（０）＝３、σ（１）＝２、σ（２）＝１、σ（３）＝０、σ（４）＝３を用いた。このことで、副写像を適度にシャッフルした。なお、本来副写像は４種類であり、ｓは０〜３のいずれかである。しかし、実際にはｓ＝４に相当する処理を行った。その理由は後述する。
【００９０】
［１．８］補間計算
始点画像と終点画像の間の写像が決定された後、対応し合う画素の輝度が補間される。実験では、トライリニア補間を用いた。始点画像平面における正方形ｐ（ｉ，ｊ）ｐ（ｉ＋１，ｊ）ｐ（ｉ，ｊ＋１）ｐ（ｉ＋１，ｊ＋１）が終点画像平面上の四辺形ｑｆ（ｉ，ｊ）ｑｆ（ｉ＋１，ｊ）ｑｆ（ｉ，ｊ＋１）ｑｆ（ｉ＋１，ｊ＋１）に射影されると仮定する。簡単のため、画像間の距離を１とする。始点画像平面からの距離がｔ（０≦ｔ≦１）である中間画像の画素ｒ（ｘ，ｙ，ｔ）（０≦ｘ≦Ｎ−１，０≦ｙ≦Ｍ−１）は以下の要領で求められる。まず画素ｒ（ｘ，ｙ，ｔ）の位置（ただしｘ，ｙ，ｔ∈Ｒ）を次式で求める。
【００９１】
【数４２】
2008282377.tif 000044
つづいてｒ（ｘ，ｙ，ｔ）における画素の輝度が次の式を用いて決定される。
【００９２】
【数４３】
2008282377.tif 000045
ここでｄｘ及びｄｙはパラメータであり、０から１まで変化する。
【００９３】
［１．９］拘束条件を課したときの写像
いままでは拘束条件がいっさい存在しない場合の写像の決定を述べた。しかし、始点画像と終点画像の特定の画素間に予め対応関係が規定されているとき、これを拘束条件とした上で写像を決定することができる。
【００９４】
基本的な考えは、まず始点画像の特定の画素を終点画像の特定の画素に移す大まかな写像によって始点画像を大まかに変形し、しかる後、写像ｆを正確に計算する。
【００９５】
まず始めに、始点画像の特定の画素を終点画像の特定の画素に射影し、始点画像の他の画素を適当な位置に射影する大まかな写像を決める。すなわち、特定の画素に近い画素は、その特定の画素が射影される場所の近くに射影されるような写像である。ここで第ｍレベルの大まかな写像をＦ（ｍ）と記述する。
【００９６】
大まかな写像Ｆは以下の要領で決める。まず、いくつかの画素について写像を特定する。始点画像についてｎｓ個の画素、
【数４４】
2008282377.tif 000046
を特定するとき、以下の値を決める。
【数４５】
2008282377.tif 000047
始点画像の他の画素の変位量は、ｐ（ｉｈ，ｊｈ）（ｈ＝０，…，ｎｓ−１）の変位に重み付けをして求められる平均である。すなわち画素ｐ（ｉ，ｊ）は、終点画像の以下の画素に射影される。
【００９７】
【数４６】
2008282377.tif 000048
ただしここで、
【数４７】
2008282377.tif 000049
【数４８】
2008282377.tif 000050
とする。
【００９８】
つづいて、Ｆ（ｍ）に近い候補写像ｆがより少ないエネルギーを持つように、その写像ｆのエネルギーＤ（ｍ，ｓ）（ｉ，ｊ）を変更する。正確には、Ｄ（ｍ，ｓ）（ｉ，ｊ）は、
【数４９】
2008282377.tif 000051
である。ただし、
【数５０】
2008282377.tif 000052
であり、κ，ρ≧０とする。最後に、前述の写像の自動計算プロセスにより、ｆを完全に決定する。
【００９９】
ここで、ｆ（ｍ，ｓ）（i,j)がＦ（ｍ）（i,j）に十分近いとき、つまりそれらの距離が、
【数５１】
2008282377.tif 000053
以内であるとき、Ｅ２（ｍ，ｓ）（ｉ，ｊ）が０になることに注意すべきである。そのように定義した理由は、各ｆ（ｍ，ｓ）（i,j）がＦ（ｍ）（i,j）に十分近い限り、終点画像において適切な位置に落ち着くよう、その値を自動的に決めたいためである。この理由により、正確な対応関係を詳細に特定する必要がなく、始点画像は終点画像にマッチするように自動的にマッピングされる。
【０１００】
［２］具体的な処理手順
［１］の各要素技術による処理の流れを説明する。
図６は前提技術の全体手順を示すフローチャートである。同図のごとく、まず多重解像度特異点フィルタを用いた処理を行い（Ｓ１）、つづいて始点画像と終点画像のマッチングをとる（Ｓ２）。ただし、Ｓ２は必須ではなく、Ｓ１で得られた画像の特徴をもとに画像認識などの処理を行ってもよい。
【０１０１】
図７は図６のＳ１の詳細を示すフローチャートである。ここではＳ２で始点画像と終点画像のマッチングをとることを前提としている。そのため、まず特異点フィルタによって始点画像の階層化を行い（Ｓ１０）、一連の始点階層画像を得る。つづいて同様の方法で終点画像の階層化を行い（Ｓ１１）、一連の終点階層画像を得る。ただし、Ｓ１０とＳ１１の順序は任意であるし、始点階層画像と終点階層画像を並行して生成していくこともできる。
【０１０２】
図８は図７のＳ１０の詳細を示すフローチャートである。もとの始点画像のサイズは２ｎ×２ｎとする。始点階層画像は解像度が細かいほうから順に作られるため、処理の対象となる解像度レベルを示すパラメータｍをｎにセットする（Ｓ１００）。つづいて第ｍレベルの画像ｐ（ｍ，０）、ｐ（ｍ，１）、ｐ（ｍ，２）、ｐ（ｍ，３）から特異点フィルタを用いて特異点を検出し（Ｓ１０１）、それぞれ第ｍ−１レベルの画像ｐ（ｍ−１，０）、ｐ（ｍ−１，１）、ｐ（ｍ−１，２）、ｐ（ｍ−１，３）を生成する（Ｓ１０２）。ここではｍ＝ｎであるため、ｐ（ｍ，０）＝ｐ（ｍ，１）＝ｐ（ｍ，２）＝ｐ（ｍ，３）＝ｐ（ｎ）であり、ひとつの始点画像から４種類の副画像が生成される。
【０１０３】
図９は第ｍレベルの画像の一部と、第ｍ−１レベルの画像の一部の対応関係を示している。同図の数値は各画素の輝度を示す。同図のｐ（ｍ，ｓ）はｐ（ｍ，０）〜ｐ（ｍ，３）の４つの画像を象徴するもので、ｐ（ｍ−１，０）を生成する場合には、ｐ（ｍ，ｓ）はｐ（ｍ，０）であると考える。［１．２］で示した規則により、ｐ（ｍ−１，０）は例えば同図で輝度を記入したブロックについて、そこに含まれる４画素のうち「３」、ｐ（ｍ−１，１）は「８」、ｐ（ｍ−１，２）は「６」、ｐ（ｍ−１，３）を「１０」をそれぞれ取得し、このブロックをそれぞれ取得したひとつの画素で置き換える。したがって、第ｍ−１レベルの副画像のサイズは２ｍ−１×２ｍ−１になる。
【０１０４】
つづいてｍをデクリメントし（図８のＳ１０３）、ｍが負になっていないことを確認し（Ｓ１０４）、Ｓ１０１に戻ってつぎに解像度の粗い副画像を生成していく。この繰り返し処理の結果、ｍ＝０、すなわち第０レベルの副画像が生成された時点でＳ１０が終了する。第０レベルの副画像のサイズは１×１である。
【０１０５】
図１０はＳ１０によって生成された始点階層画像をｎ＝３の場合について例示している。最初の始点画像のみが４つの系列に共通であり、以降特異点の種類に応じてそれぞれ独立に副画像が生成されていく。なお、図８の処理は図７のＳ１１にも共通であり、同様の手順を経て終点階層画像も生成される。以上で図６のＳ１による処理が完了する。
【０１０６】
前提技術では、図６のＳ２に進むためにマッチング評価の準備をする。図１１はその手順を示している。同図のごとく、まず複数の評価式が設定される（Ｓ３０）。［１．３．２．１］で導入した画素に関するエネルギーＣ（ｍ，ｓ）ｆと［１．３．２．２］で導入した写像の滑らかさに関するエネルギーＤ（ｍ，ｓ）ｆがそれである。つぎに、これらの評価式を統合して総合評価式を立てる（Ｓ３１）。［１．３．２．３］で導入した総エネルギーλＣ（ｍ，ｓ）ｆ＋Ｄ（ｍ，ｓ）ｆがそれであり、［１．３．２．２］で導入したηを用いれば、
【数５２】
2008282377.tif 000054
となる。ただし、総和はｉ、ｊについてそれぞれ０、１…、２ｍ−１で計算する。以上でマッチング評価の準備が整う。
【０１０７】
図１２は図６のＳ２の詳細を示すフローチャートである。［１］で述べたごとく、始点階層画像と終点階層画像のマッチングは互いに同じ解像度レベルの画像どうしでとられる。画像間の大域的なマッチングを良好にとるために、解像度が粗いレベルから順にマッチングを計算する。特異点フィルタを用いて始点階層画像および終点階層画像を生成しているため、特異点の位置や輝度は解像度の粗いレベルでも明確に保存されており、大域的なマッチングの結果は従来に比べて非常に優れたものになる。
【０１０８】
図１２のごとく、まず係数パラメータηを０、レベルパラメータｍを０に設定する（Ｓ２０）。つづいて、始点階層画像中の第ｍレベルの４つの副画像と終点階層画像中の第ｍレベルの４つの副画像のそれぞれの間でマッチングを計算し、それぞれ全単射条件を満たし、かつエネルギーを最小にするような４種類の副写像ｆ（ｍ，ｓ）（ｓ＝０，１，２，３）を求める（Ｓ２１）。全単射条件は［１．３．３］で述べた相続四辺形を用いて検査される。この際、式１７、１８が示すように、第ｍレベルにおける副写像は第ｍ−１レベルのそれらに拘束されるため、より解像度の粗いレベルにおけるマッチングが順次利用されていく。これは異なるレベル間の垂直的参照である。なお、いまｍ＝０であってそれより粗いレベルはないが、この例外的な処理は図１３で後述する。
【０１０９】
一方、同一レベル内における水平的参照も行われる。［１．３．３］の式２０のごとく、ｆ（ｍ，３）はｆ（ｍ，２）に、ｆ（ｍ，２）はｆ（ｍ，１）に、ｆ（ｍ，１）はｆ（ｍ，０）に、それぞれ類似するように決める。その理由は、特異点の種類が違っても、それらがもともと同じ始点画像と終点画像に含まれている以上、副写像がまったく異なるという状況は不自然だからである。式２０からわかるように、副写像どうしが近いほどエネルギーは小さくなり、マッチングが良好とみなされる。
【０１１０】
なお、最初に決めるべきｆ（ｍ，０）については同一のレベルで参照できる副写像がないため、式１９に示すごとくひとつ粗いレベルを参照する。ただし、実験ではｆ（ｍ，３）まで求まった後、これを拘束条件としてｆ（ｍ，０）を一回更新するという手続をとった。これは式２０にｓ＝４を代入し、ｆ（ｍ，４）を新たなｆ（ｍ，０）とすることに等しい。ｆ（ｍ，０）とｆ（ｍ，３）の関連度が低くなり過ぎる傾向を回避するためであり、この措置によって実験結果がより良好になった。この措置に加え、実験では［１．７．１］に示す副写像のシャッフルも行った。これも本来特異点の種類ごとに決まる副写像どうしの関連度を密接に保つ趣旨である。また、処理の開始点に依存する偏向を回避するために、ｓの値にしたがって開始点の位置を変える点は［１．７］で述べたとおりである。
【０１１１】
図１３は第０レベルにおいて副写像を決定する様子を示す図である。第０レベルでは各副画像がただひとつの画素で構成されるため、４つの副写像ｆ（０，ｓ）はすべて自動的に単位写像に決まる。図１４は第１レベルにおいて副写像を決定する様子を示す図である。第１レベルでは副画像がそれぞれ４画素で構成される。同図ではこれら４画素が実線で示されている。いま、ｐ（１，ｓ）の点ｘの対応点をｑ（１，ｓ）の中で探すとき、以下の手順を踏む。
【０１１２】
１．第１レベルの解像度で点ｘの左上点ａ、右上点ｂ、左下点ｃ、右下点ｄを求める。
２．点ａ〜ｄがひとつ粗いレベル、つまり第０レベルにおいて属する画素を探す。図１４の場合、点ａ〜ｄはそれぞれ画素Ａ〜Ｄに属する。ただし、画素Ａ〜Ｃは本来存在しない仮想的な画素である。
３．第０レベルですでに求まっている画素Ａ〜Ｄの対応点Ａ’〜Ｄ’をｑ（１，ｓ）の中にプロットする。画素Ａ’〜Ｃ’は仮想的な画素であり、それぞれ画素Ａ〜Ｃと同じ位置にあるものとする。
４．画素Ａの中の点ａの対応点ａ’が画素Ａ’の中にあるとみなし、点ａ’をプロットする。このとき、点ａが画素Ａの中で占める位置（この場合、右下）と、点ａ’が画素Ａ’の中で占める位置が同じであると仮定する。
５．４と同様の方法で対応点ｂ’〜ｄ’をプロットし、点ａ’〜ｄ’で相続四辺形を作る。
６．相続四辺形の中でエネルギーが最小になるよう、点ｘの対応点ｘ’を探す。対応点ｘ’の候補として、例えば画素の中心が相続四辺形に含まれるものに限定してもよい。図１４の場合、４つの画素がすべて候補になる。
【０１１３】
以上がある点ｘの対応点の決定手順である。同様の処理を他のすべての点について行い、副写像を決める。第２レベル以上のレベルでは、次第に相続四辺形の形が崩れていくと考えられるため、図３に示すように画素Ａ’〜Ｄ’の間隔が空いていく状況が発生する。
【０１１４】
こうして、ある第ｍレベルの４つの副写像が決まれば、ｍをインクリメントし（図１２のＳ２２）、ｍがｎを超えていないことを確かめて（Ｓ２３）、Ｓ２１に戻る。以下、Ｓ２１に戻るたびに次第に細かい解像度のレベルの副写像を求め、最後にＳ２１に戻ったときに第ｎレベルの写像ｆ（ｎ）を決める。この写像はη＝０に関して定まったものであるから、ｆ（ｎ）（η＝０）と書く。
【０１１５】
つぎに異なるηに関する写像も求めるべく、ηをΔηだけシフトし、ｍをゼロクリアする（Ｓ２４）。新たなηが所定の探索打切り値ηｍａｘを超えていないことを確認し（Ｓ２５）、Ｓ２１に戻り、今回のηに関して写像ｆ（ｎ）（η＝Δη）を求める。この処理を繰り返し、Ｓ２１でｆ（ｎ）（η＝ｉΔη）（ｉ＝０，１，…）を求めていく。ηがηｍａｘを超えたときＳ２６に進み、後述の方法で最適なη＝ηｏｐｔを決定し、ｆ（ｎ）（η＝ηｏｐｔ）を最終的に写像ｆ（ｎ）とする。
【０１１６】
図１５は図１２のＳ２１の詳細を示すフローチャートである。このフローチャートにより、ある定まったηについて、第ｍレベルにおける副写像が決まる。副写像を決める際、前提技術では副写像ごとに最適なλを独立して決める。
【０１１７】
同図のごとく、まずｓとλをゼロクリアする（Ｓ２１０）。つぎに、そのときのλについて（および暗にηについて）エネルギーを最小にする副写像ｆ（ｍ，ｓ）を求め（Ｓ２１１）、これをｆ（ｍ，ｓ）（λ＝０）と書く。異なるλに関する写像も求めるべく、λをΔλだけシフトし、新たなλが所定の探索打切り値λｍａｘを超えていないことを確認し（Ｓ２１３）、Ｓ２１１に戻り、以降の繰り返し処理でｆ（ｍ，ｓ）（λ＝ｉΔλ）（ｉ＝０，１，…）を求める。λがλｍａｘを超えたときＳ２１４に進み、最適なλ＝λｏｐｔを決定し、ｆ（ｍ，ｓ）（λ＝λｏｐｔ）を最終的に写像ｆ（ｍ，ｓ）とする（Ｓ２１４）。
【０１１８】
つぎに、同一レベルにおける他の副写像を求めるべく、λをゼロクリアし、ｓをインクリメントする（Ｓ２１５）。ｓが４を超えていないことを確認し（Ｓ２１６）、Ｓ２１１に戻る。ｓ＝４になれば上述のごとくｆ（ｍ，３）を利用してｆ（ｍ，０）を更新し、そのレベルにおける副写像の決定を終了する。
【０１１９】
図１６は、あるｍとｓについてλを変えながら求められたｆ（ｍ，ｓ）（λ＝ｉΔλ）（ｉ＝０，１，…）に対応するエネルギーＣ（ｍ，ｓ）ｆの挙動を示す図である。［１．４］で述べたとおり、λが増加すると通常Ｃ（ｍ，ｓ）ｆは減少する。しかし、λが最適値を超えるとＣ（ｍ，ｓ）ｆは増加に転じる。そこで本前提技術ではＣ（ｍ，ｓ）ｆが極小値をとるときのλをλｏｐｔと決める。同図のようにλ＞λｏｐｔの範囲で再度Ｃ（ｍ，ｓ）ｆが小さくなっていっても、その時点ではすでに写像がくずれていて意味をなさないため、最初の極小点に注目すればよい。λｏｐｔは副写像ごとに独立して決めていき、最後にｆ（ｎ）についてもひとつ定まる。
【０１２０】
一方、図１７は、ηを変えながら求められたｆ（ｎ）（η＝ｉΔη）（ｉ＝０，１，…）に対応するエネルギーＣ（ｎ）ｆの挙動を示す図である。ここでもηが増加すると通常Ｃ（ｎ）ｆは減少するが、ηが最適値を超えるとＣ（ｎ）ｆは増加に転じる。そこでＣ（ｎ）ｆが極小値をとるときのηをηｏｐｔと決める。図１７は図４の横軸のゼロ付近を拡大した図と考えてよい。ηｏｐｔが決まればｆ（ｎ）を最終決定することができる。
【０１２１】
以上、本前提技術によれば種々のメリットが得られる。まずエッジを検出する必要がないため、エッジ検出タイプの従来技術の課題を解消できる。また、画像に含まれるオブジェクトに対する先験的な知識も不要であり、対応点の自動検出が実現する。特異点フィルタによれば、解像度の粗いレベルでも特異点の輝度や位置を維持することができ、オブジェクト認識、特徴抽出、画像マッチングに極めて有利である。その結果、人手作業を大幅に軽減する画像処理システムの構築が可能となる。
【０１２２】
なお、本前提技術について次のような変形技術も考えられる。
（１）前提技術では始点階層画像と終点階層画像の間でマッチングをとる際にパラメータの自動決定を行ったが、この方法は階層画像間ではなく、通常の２枚の画像間のマッチングをとる場合全般に利用できる。
【０１２３】
たとえば２枚の画像間で、画素の輝度の差に関するエネルギーＥ０と画素の位置的なずれに関するエネルギーＥ１のふたつを評価式とし、これらの線形和Ｅｔｏｔ＝αＥ０＋Ｅ１を総合評価式とする。この総合評価式の極値付近に注目してαを自動決定する。つまり、いろいろなαについてＥｔｏｔが最小になるような写像を求める。それらの写像のうち、αに関してＥ１が極小値をとるときのαを最適パラメータと決める。そのパラメータに対応する写像を最終的に両画像間の最適マッチングとみなす。
【０１２４】
これ以外にも評価式の設定にはいろいろな方法があり、例えば１／Ｅ１と１／Ｅ２のように、評価結果が良好なほど大きな値をとるものを採用してもよい。総合評価式も必ずしも線形和である必要はなく、ｎ乗和（ｎ＝２、１／２、−１、−２など）、多項式、任意の関数などを適宜選択すればよい。
【０１２５】
パラメータも、αのみ、前提技術のごとくηとλのふたつの場合、それ以上の場合など、いずれでもよい。パラメータが３以上の場合はひとつずつ変化させて決めていく。
【０１２６】
（２）本前提技術では、総合評価式の値が最小になるよう写像を決めた後、総合評価式を構成するひとつの評価式であるＣ（ｍ，ｓ）ｆが極小になる点を検出してパラメータを決定した。しかし、こうした二段回処理の代わりに、状況によっては単に総合評価式の最小値が最小になるようにパラメータを決めても効果的である。その場合、例えばαＥ０＋βＥ１を総合評価式とし、α＋β＝１なる拘束条件を設けて各評価式を平等に扱うなどの措置を講じてもよい。パラメータの自動決定の本質は、エネルギーが最小になるようにパラメータを決めていく点にあるからである。
【０１２７】
（３）前提技術では各解像度レベルで４種類の特異点に関する４種類の副画像を生成した。しかし、当然４種類のうち１、２、３種類を選択的に用いてもよい。例えば、画像中に明るい点がひとつだけ存在する状態であれば、極大点に関するｆ（ｍ，３）だけで階層画像を生成しても相応の効果が得られるはずである。その場合、同一レベルで異なる副写像は不要になるため、ｓに関する計算量が減る効果がある。
【０１２８】
（４）本前提技術では特異点フィルタによってレベルがひとつ進むと画素が１／４になった。例えば３×３で１ブロックとし、その中で特異点を探す構成も可能であり、その場合、レベルがひとつ進むと画素は１／９になる。
【０１２９】
（５）始点画像と終点画像がカラーの場合、それらをまず白黒画像に変換し、写像を計算する。その結果求められた写像を用いて始点のカラー画像を変換する。それ以外の方法として、ＲＧＢの各成分について副写像を計算してもよい。
【０１３０】
［３］前提技術の改良点
以上の前提技術を基本とし、マッチング精度を向上させるためのいくつかの改良がなされている。ここではその改良点を述べる。
【０１３１】
［３．１］色情報を考慮に入れた特異点フィルタおよび副画像
画像の色情報を有効に用いるために、特異点フィルタを以下のように変更した。まず色空間としては、人間の直感に最も合致するといわれているＨＩＳを用い、色を輝度に変換する式には、人間の目の感度に最も近いといわれているものを選んだ。
【０１３２】
【数５３】
2008282377.tif 000055
ここで画素ａにおけるＹ（輝度）をＹ(ａ)、Ｓ（彩度）をＳ（a）として、次のような記号を定義する。
【０１３３】
【数５４】
2008282377.tif 000056
上の定義を用いて以下のような５つのフィルタを用意する。
【０１３４】
【数５５】
2008282377.tif 000057
このうち上から４つのフィルタは改良前の前提技術におけるフィルタとほぼ同じで、輝度の特異点を色情報も残しながら保存する。最後のフィルタは色の彩度の特異点をこちらも色情報を残しながら保存する。
【０１３５】
これらのフィルタによって、各レベルにつき５種類の副画像（サブイメージ）が生成される。なお、最も高いレベルの副画像は元画像に一致する。
【０１３６】
【数５６】
2008282377.tif 000058
［３．２］エッジ画像およびその副画像
輝度微分（エッジ）の情報をマッチングに利用するため、一次微分エッジ検出フィルタを用いる。このフィルタはあるオペレータＨとの畳み込み積分で実現できる。
【０１３７】
【数５７】
2008282377.tif 000059
ここでＨは演算スピードなども考慮し、以下のようなオペレータを用いた。
【０１３８】
【数５８】
2008282377.tif 000060
次にこの画像を多重解像度化する。フィルタにより０を中心とした輝度をもつ画像が生成されるため、次のような平均値画像が副画像としては最も適切である。
【０１３９】
【数５９】
2008282377.tif 000061
式５９の画像は後述するForward Stage、すなわち初回副写像導出ステージの計算の際、エネルギー関数に用いられる。
【０１４０】
エッジの大きさ、すなわち絶対値も計算に必要である。
【０１４１】
【数６０】
2008282377.tif 000062
この値は常に正であるため、多重解像度化には最大値フィルタを用いる。
【０１４２】
【数６１】
2008282377.tif 000063
式６１の画像は後述するForward Stageの計算の際、計算する順序を決定するのに用いられる。
【０１４３】
［３．３］計算処理手順
計算は最も粗い解像度の副画像から順に行う。副画像は５つあるため、各レベルの解像度において計算は複数回行われる。これをターンと呼び、最大計算回数をｔで表すことにする。各ターンは前記Forward Stageと、副写像再計算ステージであるRefinement Stageという二つのエネルギー最小化計算から構成される。図１８は第ｍレベルにおける副写像を決める計算のうち改良点に係るフローチャートである。
【０１４４】
同図のごとく、sをゼロクリアする（Ｓ４０）。つぎにForward Stage（Ｓ４１）において始点画像ｐから終点画像ｑへの写像ｆ(ｍ，ｓ)をエネルギー最小化によって求める。ここで最小化するエネルギーは、対応する画素値によるエネルギーＣと、写像の滑らかさによるエネルギーＤの線形和である。
【０１４５】
エネルギーＣは、輝度の差によるエネルギーＣＩ（前記改良前の前提技術におけるエネルギーＣと等価）と、色相、彩度によるエネルギーＣＣ、輝度微分（エッジ）の差によるエネルギーＣＥで構成され、それぞれ次のように表される。
【０１４６】
【数６２】
2008282377.tif 000064
エネルギーＤは前記改良前の前提技術と同じものを用いる。ただし前記改良前の前提技術において、写像の滑らかさを保証するエネルギーＥ１を導出する際、隣接する画素のみを考慮していたが、周囲の何画素を考慮するかをパラメータｄで指定できるように改良した。
【０１４７】
【数６３】
2008282377.tif 000065
次のRefinement Stageに備えて、このステージでは終点画像ｑから始点画像ｐへの写像ｇ（ｍ，ｓ）も同様に計算する。
【０１４８】
Refinement Stage（Ｓ４２）ではForward Stageにおいて求めた双方向の写像ｆ（ｍ，ｓ）およびｇ（ｍ，ｓ）を基に、より妥当な写像ｆ’（ｍ，ｓ）を求める。ここでは新たに定義されるエネルギーＭについてエネルギー最小化計算を行う。エネルギーＭは終点画像から始点画像への写像ｇとの整合度Ｍ０と、もとの写像との差Ｍ１より構成される。
【０１４９】
【数６４】
2008282377.tif 000066
対称性を損なわないように、終点画像ｑから始点画像ｐへの写像ｇ’（ｍ，ｓ）も同様の方法で求めておく。
【０１５０】
その後、ｓをインクリメントし（Ｓ４３）、ｓがｔを超えていないことを確認し（Ｓ４４）、次のターンのForward Stage（Ｓ４１）に進む。その際前記Ｅ０を次のように置き換えてエネルギー最小化計算を行う。
【０１５１】
【数６５】
2008282377.tif 000067
［３．４］写像の計算順序
写像の滑らかさを表すエネルギーＥ１を計算する際、周囲の点の写像を用いるため、それらの点がすでに計算されているかどうかがエネルギーに影響を与える。すなわち、どの点から順番に計算するかによって、全体の写像の精度が大きく変化する。そこでエッジの絶対値画像を用いる。エッジの部分は情報量を多く含むため、エッジの絶対値が大きいところから先に写像計算を行う。このことによって、特に二値画像のような画像に対して非常に精度の高い写像を求めることができるようになった。
【０１５２】
［画像処理に関する実施の形態］
前提技術を用いると画像フレーム間の対応点情報を生成することができる。したがって、動画内の始点画像と終点画像との間の対応点情報を前提技術によって求め、始点画像と対応点情報を保存するようにすれば、高精度の動画を復元可能な動画圧縮に利用することができる。現実に実験ではＭＰＥＧを超える画質と圧縮率の両立が確認されはじめている。
【０１５３】
しかしながら、例えば圧縮の対象となる動画像内の二つの画像フレームにおいて、フレーム内を横切るオブジェクト（以下、「オクルーダ」という）が存在するようなケースを考える。この場合、二つの画像フレームを比較すると、一方のフレームでは撮影されているが他方のフレームではオブジェクトによって隠されている領域（以下、「オクルージョン領域」という）が存在する。すると、一方の画像フレームにおいてオクルージョン領域に含まれる画素については、他方の画像フレームに対応する画素が存在しないことになる。上述したように前提技術には全単射の制約があるため、このような場合には正確な写像を求めることができず、対応点情報が実際とは異なる不正確なものとなる。したがって、前提技術を用いて動画像の圧縮をすると、オクルージョン領域においては復号後の再生画質が低下する可能性がある。
【０１５４】
そこで、本実施形態では、画像フレーム内を移動するオクルーダによって生じるオクルージョン領域を切り分けるための技術を提供する。オクルージョン領域を切り分けることができれば、この部分については前提技術以外の圧縮手法を適用することで、復号後の再生画質を向上できる可能性がある。
【０１５５】
図１９は、本実施形態に係る画像処理装置１０の構成を示す機能ブロック図である。ここに示す各ブロックは、ハードウェア的には、コンピュータのＣＰＵやメモリをはじめとする素子で実現でき、ソフトウェア的にはコンピュータプログラム等によって実現されるが、ここでは、それらの連携によって実現される機能ブロックとして描いている。したがって、これらの機能ブロックはハードウェア、ソフトウェアの組合せによっていろいろなかたちで実現できることは、当業者には理解されるところである。
【０１５６】
画像読込部１２は、撮影装置などにより取得された画像データを読み込み、画像記憶部１４に格納する。動画撮影の画素数および毎秒のフレーム数については任意のものを使用できる。対応点情報生成部１１０は、画像データ内の二つの画像フレーム間で前提技術その他によるマッチング計算を行い、対応点情報ファイルを生成する。
【０１５７】
セグメント処理部１２０は、画像フレームを複数のセグメントに分割する処理を実行する。セグメント処理部１２０は、画像フレーム内で領域分割の起点となるシードセグメントを生成するシードセグメント生成部１２２と、シードセグメントをさらに拡張するセグメント拡張部１３０と、小さなセグメントを統合していくセグメントマージ部１４０と、セグメントマップを出力するセグメントマップ出力部１４６と、を含む。
【０１５８】
動きベクトル処理部１５０は、前提技術によるマッチング結果を基に画像フレーム内の各画素の動きベクトルを算出した上で、その精度を改良する処理を実行する。さらに、改良された動きベクトルを使用して、画像フレーム内で移動するオクルーダを検出し、画像フレームに適用するためのマスク画像を作成する。このマスクはセグメント処理部１２０に与えられて、上述のセグメントマップを作成するために用いられる。
【０１５９】
まずセグメント処理部１２０内の機能ブロックについて説明する。
【０１６０】
シードセグメント生成部１２２は、アフィンパラメータ算出部１２４と、シードブロック選択部１２６と、シードブロック成長部１２８を含む。アフィンパラメータ算出部１２４は、二枚の画像フレーム（一つを始点画像フレーム、他方を終点画像フレームと呼ぶ）を複数のブロックに分割した上で、多重解像度特異点フィルタを用いた処理を行い、始点画像フレームの各ブロックについて、終点画像フレームにおけるブロックの形状を表すアフィンパラメータを算出する。始点画像フレームの位置ベクトル（変換前の座標を表わす位置ベクトル）をＶ、終点画像フレームの位置ベクトル（変換後の座標を表わす位置ベクトル）をＶ’とすると、Ｖ’＝αＶ＋βで表される。ここで、αは、ブロックの変形、拡大縮小、剪断を表すパラメータであり、βは並行移動を表すパラメータである。
【０１６１】
シードブロック選択部１２６は、画像フレーム内のブロックのうちセグメント生成の起点となるシードブロックを選択する。シードブロックには、アフィンパラメータ適用後のブロックに含まれる画素値と、終点画像フレームにおける対応するブロックの画素値とのマッチングの程度が高いものが選択される。
【０１６２】
シードブロック成長部１２８は、アフィンパラメータ空間においてシードブロックに隣接するブロックのうち、アフィンパラメータによる変換の誤差が少ないブロックをシードブロックと統合することによって、シードセグメントを生成する。
【０１６３】
セグメント拡張部１３０は、シードセグメントと隣接するブロックについて所定の統合条件を満たすか否かを判断することによって、シードセグメントとブロックとの統合をさらに進展させる。セグメント拡張部１３０は、統合条件を判定する機能ブロックとして、アフィンパラメータ判定部１３２、画素値判定部１３４、エッジ度判定部１３６を含む。
【０１６４】
アフィンパラメータ判定部１３２は、シードセグメントのアフィンパラメータと隣接ブロックのアフィンパラメータとの差分を判定する。画素値判定部１３４は、シードセグメントのアフィンパラメータを隣接ブロックに適用したときの画素値の誤差について判定する。エッジ度判定部１３６は、シードセグメントと隣接ブロックにオクルーダのエッジ部分が含まれているか否かを判定する。
【０１６５】
セグメントマージ部１４０は、生成された初期セグメント同士をマージする。マージするか否かの判定は、偏差判定部１４２と境界判定部１４４により実行される。
【０１６６】
セグメントマップ出力部１４６は、セグメント同士のマージの結果を受けて、画像フレームをいくつかのセグメントに分割したセグメントマップを出力する。このマップに基づいて、オクルーダの影響がないセグメントについては上記前提技術を用いて対応点情報を求める一方、フレーム間で現実には対応点が存在しないセグメントについては周知のブロックマッチングを実施して、画像フレーム全体のマッチング精度を向上させるなどの応用が可能になる。
【０１６７】
続いて、動きベクトル処理部１５０内の機能ブロックについて説明する。動きベクトル処理部１５０は、動きベクトル検出部１５２、信頼領域分離部１５４、動きベクトル改良部１６０、マスク作成部１５８を含む。
【０１６８】
動きベクトル検出部１５２は、連続する二枚の画像フレームに対して前提技術を用いたマッチングを実行することで、画像フレーム内の各画素の動きベクトルを求める。信頼領域分離部１５４は、画像フレームを動きベクトルの精度が信頼できる「信頼領域」と、動きベクトルの精度が信頼できない「非信頼領域」とに分離する。信頼領域は、画像フレーム内で支配的な面積を有する部分になる。
【０１６９】
動きベクトル改良部１６０は、信頼領域内の動きベクトルを非信頼領域内の画素に対して適用し、精度の高い結果が得られるか否かを基準として信頼領域を拡大していく。動きベクトル改良部１６０は、レイヤ設定部１６２、差分判定部１６４、レイヤ適用部１６６およびブロックマッチング部１６８を含む。
【０１７０】
レイヤ設定部１６２は、信頼領域と非信頼領域との境界にレイヤを設定する。差分判定部１６４は、設定したレイヤを信頼領域に組み入れることができるか否かを判定する。レイヤ適用部１６６は、レイヤを信頼領域に組み入れられると判定された場合に、信頼領域の動きベクトルでレイヤの元々の動きベクトルを置換する。ブロックマッチング部１６８は、非信頼領域として残された部分に対して従来のブロックマッチングを実施することで、より信頼できる動きベクトルを探索する。
【０１７１】
オクルージョン検出部１５６は、改良された動きベクトルを利用して、画像フレーム内でオクルーダによる影響を受ける領域であるオクルージョン領域を検出する。
マスク作成部１５８は、オクルージョン領域に含まれる画素を残しそれ以外の部分を消去するためのマスクを作成する。マスクはセグメント拡張部１３０に渡されて、セグメントと隣接ブロックの統合を判定するために使用される。
【０１７２】
図２０は、本実施形態の概略動作を示すフローチャートである。まず、対応点情報生成部１１０が、画像データの中から取りだした始点画像フレームと終点画像フレームの間で前提技術を用いて対応点情報を求めるマッチングを実行する（Ｓ１００）。この結果得られた対応点情報に基づいて、動きベクトル処理部１５０は、始点画像フレームと終点画像フレーム間の動きベクトルを各画素について算出し、さらに後述する処理を繰り返して画像フレーム内の動きベクトルの精度を改良する（Ｓ１０２）。動きベクトル処理部１５０は、改良された動きベクトルを使用して画像フレーム内のオクルージョン領域を特定し、オクルージョン領域内の画素を残すためのマスクを作成する（Ｓ１０４）。
【０１７３】
マスクの作成とは別のプロセスとして、セグメント処理部１２０は、Ｓ１００で得られた画像フレーム間の対応点情報を使用して、画像フレームを複数の領域に分割するための起点となる部分であるシードセグメントを画像フレーム内に生成する（Ｓ１０６）。セグメント処理部１２０は、このシードセグメントの周囲にあるブロックをシードセグメントに統合できるか否かの判定を繰り返して、シードセグメントの領域を拡張していく処理を実行する（Ｓ１０８）。セグメント処理部１２０は、このようにして生成された複数のシードセグメント同士をマージすべきか否かを判定する処理を繰り返す（Ｓ１１０）。そして、画像フレームをいくつかのセグメントに分割したセグメントマップを最終的に出力する（Ｓ１１２）。
【０１７４】
図２０において、Ｓ１０２の処理は図３０に、Ｓ１０４の処理は図３３に、Ｓ１０６の処理は図２１に、Ｓ１０８の処理は図２４２、図２５および図２６に、Ｓ１１０の処理は図２８および図２９に、それぞれ対応している。各ステップの詳細は、対応する図面に関する箇所で説明されている。
【０１７５】
図２１は、Ｓ１０６のシードセグメントの生成処理の詳細なフローチャートである。
シードセグメント生成部１２２は、対応点情報生成部１１０から対応点情報を取得する（Ｓ１２０）。次に、アフィンパラメータ算出部１２４は、始点画像フレームを大きさの等しい複数のブロック（例えば、２×２画素）に分割し（Ｓ１２２）、特異点抽出の結果に基づいて、始点画像フレームの各ブロックがアフィン変換によって終点画像フレームのいずれの部分にマッピングされるかを表すアフィンパラメータを算出する（Ｓ１２４）。前提技術の代わりに、始点画像フレームと終点画像フレームの間で求めたオプティカルフローの結果を用いてアフィンパラメータを算出してもよい。しかしながら、概して、前提技術の結果を用いる方がより精度の高いアフィンパラメータを得ることができる。
【０１７６】
続いて、シードブロック選択部１２６は、アフィンパラメータが算出された各ブロックについてアフィンパラメータにより最良の近似が得られるブロックを選び出し、それらのブロックをシードセグメント生成の起点となるシードブロックと決定する（Ｓ１２６）。この近似は、例えば各ブロックを構成する画素と、アフィンパラメータによって移動した先の画素の間での位置エネルギーと画素差エネルギーの合計としてもよい。このエネルギーの合計が最も小さいブロックをシードブロックと決定する。通常の動作撮影で得られるような画像フレームであれば、このようなシードブロックは画像フレーム内でせいぜい数個得られるに過ぎない。
【０１７７】
続いて、シードブロック成長部１２８は、シードブロックと隣接する別のブロックを一つ選択する（Ｓ１２８）。この隣接ブロックについて、アフィンパラメータによる変換後のブロックの画素と、終点画像フレームにおける対応するブロックの画素との距離の差が所定のしきい値以下であるか否かを判定する（Ｓ１３０）。しきい値以下であれば（Ｓ１３０のＹ）、シードブロック成長部１２８は、その隣接ブロックに対してシードブロックと同一のラベルを付与し（Ｓ１３２）、プロセスはＳ１２８に戻る。このラベルはブロック毎に一つ割り振られるものであり、ラベルが同一のブロックには同一のアフィンパラメータが対応することを意味する。つまり、終点画像フレームにおける隣接ブロックの変位がしきい値以下であれば、その隣接ブロックはシードブロックと同一の動きをする部分であるとみなして、シードブロックと同一のラベルを与えるのである。
【０１７８】
Ｓ１３０で、終点画像フレームにおける隣接ブロックの変位がしきい値より大きければ（Ｓ１３０のＮ）、シードブロック成長部１２８はその隣接ブロックをシードブロックとは異なる動きをする部分であるとみなし、シードブロックと別のラベルを付与する。シードブロック成長部１２８は、シードブロックと同一のラベルが与えられたブロックの数が予め定められているセグメント内のブロック数上限値に達したか否かを判定する（Ｓ１３４）。ブロック数が上限値に達していなければ（Ｓ１３４のＮ）、シードブロック成長部１２８は、シードブロックと隣接する別のブロックを選択し（Ｓ１２８）、Ｓ１３０、Ｓ１３２の処理を繰り返す。ブロック数が上限値に達していれば（Ｓ１３４のＹ）、シードブロック成長部１２８は、シードブロックと同一のラベルが与えられた全てのブロックを含むシードセグメントを生成する（Ｓ１３６）。シードブロック成長部１２８は、画像フレーム内に別のシードブロックが残っているか否かを判定し（Ｓ１３８）、別のシードブロックが残っていれば（Ｓ１３８のＹ）、そのシードブロックと隣接するブロックについてＳ１２８〜Ｓ１３６の処理を繰り返す。別のシードブロックが残っていなければ（Ｓ１３８のＮ）、このフローを終了する。
【０１７９】
図２２は、シードセグメント生成部１２２によって画像フレームが同形の複数のブロックに分割された様子を示す。図中、塗りつぶされたブロック２３０が、シードブロック選択部１２６によってシードブロックと判定されたとすると、白抜きのブロック２３２が隣接ブロックになる。
【０１８０】
図２３は、シードブロックと同一のラベルを隣接ブロックに与えていく様子を示す。シードブロック２１０ａと２１０ｂの周囲の隣接ブロックがそれぞれシードセグメントに組み入れられ、シードセグメントと同一のラベルが与えられていき、最終的に同一ラベルを有するブロックが一つのシードセグメントになる。図２３では、シードブロック２１０ａを起点としてシードセグメントＡが生成され、シードブロック２１０ｂを起点としてシードセグメントＢが生成された様子を示している。
【０１８１】
このように、画像フレーム内の全てのシードブロックに対して図２１に示すプロセスが終了すると、始点画像フレームは、シードブロックを基点として周囲のブロックにシードブロックのアフィンパラメータが伝搬された一つまたは複数のシードセグメントと、それ以外の部分とに分割されることになる。
【０１８２】
図２４は、Ｓ１０８のシードセグメントの領域拡張処理の詳細なフローチャートである。セグメント拡張部１３０は、シードセグメント生成部１２２からシードセグメントを受け取り、複数のシードセグメントの中から面積が最大であるものを選択する（Ｓ１４０）。続いて、選択したシードセグメントに隣接するブロックのうち、他のシードセグメントに属していないブロックを一つ選択する（Ｓ１４２）。そして、このブロックとシードセグメントが所定の統合条件を満たすか否かを判定する（Ｓ１４４）。この判定は、アフィンパラメータ判定部１３２、画素値判定部１３４およびエッジ度判定部１３６によって行われる。統合条件とそれに対する判定処理の詳細については、図２５および図２６を参照して後述する。
【０１８３】
統合条件の全てを満足する場合（Ｓ１４４のＹ）、セグメント拡張部１３０は、シードブロックのアフィンパラメータおよびラベルを選択した隣接ブロックに与える（Ｓ１４６）。統合条件を満足していない場合は（Ｓ１４４のＮ）、Ｓ１４６をスキップする。続いて、セグメント拡張部１３０は、シードセグメントに隣接しているブロックのうち、上記統合条件の判定をしていないものがあるか否かを判定する（Ｓ１４８）。隣接するブロックが残っていれば（Ｓ１４８のＹ）、そのブロックについてＳ１４２からＳ１４６の処理を繰り返す。隣接するブロックが残っていなければ（Ｓ１４８のＮ）、上記プロセスを実施していない別のシードセグメントがあるか否かを判定する（Ｓ１５０）。未処理のシードセグメントがあれば（Ｓ１５０のＹ）、そのシードセグメントに対してＳ１４２〜Ｓ１４８の処理を繰り返す。未処理のシードセグメントがなければ（Ｓ１５０のＮ）、このフローを終了する。
なお、一旦シードセグメントに組み入れられたブロックは、それ以降シードセグメントの一部になり、この新たに組み入れられたブロックと隣接するブロックについても上述の処理が実行される。
【０１８４】
図２４のプロセスは、図２１のプロセスによってシードセグメントに組み入れられなかった隣接ブロックのうち、所定の統合条件を満たすものを拾い上げてシードセグメントに組み入れるものである。図２４のプロセスを経た後に得られる一つまたは複数のシードセグメントを、以下では「初期セグメント」と呼ぶ。続いて、セグメントマージ部１４０によって初期セグメント同士のマージが判断される。
【０１８５】
図２５は、図２４のＳ１４４の統合条件を判定する処理を詳細に説明するフローチャートである。
まず、アフィンパラメータ判定部１３２は、シードセグメントに隣接するブロックを一つ選択し、そのブロックのアフィンパラメータα、βとシードセグメントのアフィンパラメータα、βの差分が所定のしきい値以下であるか否かを判定する（Ｓ１５２）。しきい値以下である場合（Ｓ１５２のＹ）、その隣接ブロックにシードセグメントのアフィンパラメータを試験的に付与してみる。そして、画素値判定部１３４は、アフィンパラメータによる変換先のブロックの画素値の平均値と、対応するブロックの画素値の平均値とを比較し、それらの差分が所定のしきい値以下であるか否かを判定する（Ｓ１５４）。アフィンパラメータ空間においてシードセグメントと隣接ブロックとが近接する位置にある場合、すなわちシードセグメントと隣接ブロックのアフィンパラメータ同士が近い値を有していたとしても、始点画像フレームから終点画像フレームに移る間にシードセグメントまたは隣接ブロックのいずれかが画像フレームの境界を越えて移動しているような場合には、写像先が全く異なる場合もある。そのため、シードブロックと同一のアフィンパラメータを与えたときの隣接ブロックの移動先の画素値を検証することで、隣接ブロックをシードセグメントに含めるか否かを正確に判定する。
なお、Ｓ１５２およびＳ１５４のしきい値は、本実施形態に係る画像処理を複数回試行して、適切な結果が得られるような値を実験的に定める。
【０１８６】
Ｓ１５４で、画素値の平均値の差分がしきい値以下である場合（Ｓ１５４のＹ）、エッジ度判定部１３６は、シードセグメントと隣接ブロックについてそれぞれ算出される「補正エッジ度」の差分がしきい値以下であるか否かを判定する（Ｓ１５６）。この補正エッジ度は、対象となるシードセグメントと隣接ブロックの内部に、画像フレーム内で検出されるエッジがどの程度含まれるかを表す指標である。補正エッジ度の算出方法については後述する。この補正エッジ度の差分が大きいということは、隣接ブロックがシードセグメントのエッジを含んでいること、すなわち、隣接ブロックがシードセグメントのエッジ部分に位置している可能性が高いと考えられる。そこで、補正エッジ度の差分がしきい値以下である場合にのみ（Ｓ１５６のＹ）、シードセグメントを隣接ブロックにまで領域拡張することが認められ（Ｓ１５８）、フローは図２４のＳ１４６に続く。
【０１８７】
上記３つの条件のいずれか一つでも満たされない場合（Ｓ１５２のＮ、Ｓ１５４のＮ、Ｓ１５６のＮ）、領域拡張は認められず（Ｓ１６０）、フローは図２４のＳ１４８に続く。
【０１８８】
図２６は、Ｓ１５６で判定に使用される補正エッジ度の算出方法を示すフローチャートである。
まず、エッジ度判定部１３６は、画像フレームのエッジ画像を作成する（Ｓ１７０）。エッジ画像の作成は、周知のＳｏｂｅｌフィルタを使用してもよいし、他のフィルタを使用してもよい。画像フレームをモノクロ化したものに対してエッジ画像を作成してもよいし、または画像フレームのＲＧＢそれぞれの成分についてそれぞれフィルタを適用して、ＲＧＢの成分毎にエッジ画像を作成してもよい。以下では、ＲＧＢの成分毎にエッジ画像を作成したものとして説明する。
【０１８９】
エッジ度判定部１３６は、ＲＧＢの３つのエッジ画像の画素値を対応する位置ごとに比較し、それらの中で最大のものを各位置における画素値として採用した画像（以下、「最大エッジ画像」と呼ぶ）を作成する（Ｓ１７２）。つまり、ＲＧＢのエッジ画像におけるある位置の画素値をＥＲ、ＥＧ、ＥＢとすると、各位置における画素値はｍａｘ（ＥＲ，ＥＧ，ＥＢ）になる。このように、ＲＧＢ毎にエッジ画像を作成した上で単一の最大エッジ画像を作成することで、エッジがより鮮明に現れたエッジ画像を生成することができる。最大エッジ画像は、画素値の最大値によって正規化してもよい。なお、エッジ画像がモノクロの場合には、このステップは不要である。
【０１９０】
次に、エッジ度判定部１３６は、マスク作成部１５８からマスクを受け取り、マスクの周縁部をぼやかした「ブラードマスク」を作成する（Ｓ１７４）。マスク作成部１５８によるマスク作成の詳細については、図３３を参照して後述する。ブラードマスクは、以下のようにして作成する。すなわち、マスク内の各画素について、マスクの中心部で最も値が大きく、マスクの外周に向かうにつれて値が０に近づくような例えば２５６階調の係数を付与する。マスクの外部では、この係数は０である。
【０１９１】
図２７は、マスクとブラードマスクの関係を示す図である。マスク作成部１５８から（ａ）のようなマスクを受け取ったとすると、ブラードマスクは（ｂ）のようになる。図中、マスクの内側で色が濃い部分は「１」に近く、色が薄い部分は「０」に近い係数を持っていることを示す。マスクの外側では係数「０」である。
【０１９２】
図２６に戻り、ブラードマスクの全体を画像フレームと同じ大きさにしておき、このブラードマスクを上述の最大エッジ画像に対して適用する。すなわち、ブラードマスクの各画素位置に与えられた係数を、最大エッジ画像の対応する位置にある画素値と一対一で掛け合わせる（Ｓ１７６）。この結果、最大エッジ画像に含まれるエッジのうちマスク内側の係数が０でない部分のみが画像内に残され、マスク外側の係数が０である部分については画像から消去されることになる。以下、ブラードマスク適用後の画像を「マスク後エッジ画像」という。
【０１９３】
後述するように、マスク作成部１５８により作成されるマスクは、始点画像フレームと終点画像フレームの間でオクルーダによりスイープされた領域に対応している。したがって、最大エッジ画像にブラードマスクを適用することで、オクルーダが移動した領域に含まれるエッジのみを抽出することができる。言い換えると、画像フレーム内でオクルーダによって隠されたり、またはオクルーダの背後から表れるような部分のエッジのみを抽出することができる。
【０１９４】
なお、ブラードマスクを作成する際に、マスク作成部１５８から受け取ったマスクの大きさを若干大きくしたり小さくしたりしてもよい。また、マスクからブラードマスクを作成する代わりに、マスクの内側では係数を１に、マスクの外側では係数を０とする二値マスクを作成し、最大エッジ画像と掛け合わせてもよい。
【０１９５】
エッジ度判定部１３６は、マスク後エッジ画像を使用して、シードセグメントと隣接ブロックの内部に含まれるエッジの画素値をそれぞれ取り出す。そして、シードセグメントの内部に含まれるエッジの画素値の平均値と、隣接ブロックの内部に含まれるエッジの画素値の平均値とをそれぞれ算出する（Ｓ１７８）。これらのエッジの画素値の平均値が上述の「補正エッジ度」に当たる。エッジ度判定部１３６は、シードセグメントと隣接ブロックの補正エッジ度の差分を計算し、この差分が所定のしきい値以下であるか否かを判定する（Ｓ１８０）。このしきい値は、本実施形態に係る画像処理を複数回試行して、適切な結果が得られるような値を実験的に定める。差分がしきい値以下であれば（Ｓ１５８のＹ）、隣接ブロックをシードセグメントの領域に含める（Ｓ１５８）。差分がしきい値を越えていれば（Ｓ１５８のＮ）、隣接ブロックはシードセグメントに入らない（Ｓ１６０）。
【０１９６】
ここで、補正エッジ度を使用してシードセグメントの領域を隣接ブロックにまで拡張するか否かを判定することの物理的意味について説明する。
まず、ブラードマスクを最大エッジ画像に適用することの物理的意味は、以下の通りである。つまり、最終的に求めるべきセグメントマップにおいては、オクルーダの周りにのみ境界線ができるべきである。画像内に存在するオクルーダ以外の複数の静止しているオブジェクトについては、前提技術によって精度良くマッチングができるため、他のオブジェクトとの間のエッジを考慮する必要はない。
【０１９７】
これに対し、Ｓｏｂｅｌフィルタなどのフィルタでは、画像フレーム内で隣接する画素の変化を基準としてエッジを検出するので、オブジェクトが動いているか静止しているかに関わらず、全てのオブジェクト間の境界をエッジとして検出してしまう。したがって、オクルーダのエッジについてのみシードセグメントの拡張判定を実施できるようにするために、マスクを使用して不要なエッジ、つまり静止しているオブジェクトのエッジを除去しているのである。
【０１９８】
補正エッジ度としきい値とを比較して隣接ブロックをシードセグメントに組み入れるか否かを判定する理由は、シードセグメントがオクルーダの境界を越えて拡大するのを防止するためである。既に述べたように、補正エッジ度はオクルーダのエッジについてのみ求められている。したがって、補正エッジ度の差分が大きいということは、シードセグメントと隣接ブロックとの間にオクルーダの境界が存在していることを示している。言い換えると、上述の判定は、シードセグメントの領域成長が補正エッジ度の変化が激しい箇所で止まるように工夫したものである。
【０１９９】
続いて、図２２のプロセスで生成された複数の初期セグメント同士をマージしていくプロセスについて説明する。このプロセスは、画像フレーム内で島のように取り残された微小な初期セグメントを消去するために実行される。
【０２００】
図２８は、初期セグメントマージの第１プロセスのフローチャートである。
セグメントマージ部１４０内の偏差判定部１４２は、全ての初期セグメントについて、各セグメントに含まれるブロックのアフィンパラメータの平均値を算出する（Ｓ２６０）。続いて、終点画像フレームの初期セグメント内の各ブロックにアフィンパラメータの平均値を適用したときの、始点画像フレーム内の各ブロックの画素値との誤差が極小になるように、アフィンパラメータ平均値を修正する（Ｓ２６２）。さらに、初期セグメント内部でアフィンパラメータ平均値と最も離れている点とアフィンパラメータ平均値との距離（以下、「偏差」という）を算出する（Ｓ２６４）。
【０２０１】
上記処理を全ての初期セグメントについて実行した後、マージの判定対象となる二つの初期セグメントを選び出す（Ｓ２６６）。そして、アフィンパラメータ空間において二つの初期セグメントの中心の間の距離ｄが、二つの初期セグメントのそれぞれの偏差の和以下であるか否かを判定する（Ｓ２６８）。二つのセグメントＡとセグメントＢについて数式で表現すると、以下のようになる。
ｄ＞ｒａ＋ｒｂ      （式６６）
但し、ｄは初期セグメントＡと初期セグメントＢの中心の間の距離を表し、ｒａは初期セグメントＡの最大偏差を表し、ｒｂは初期セグメントＢの最大偏差を表す。
【０２０２】
Ｓ２６８で式（６６）を満たす場合（Ｓ２６８のＹ）、選択されている二つの初期セグメントをマージして新たな一つのセグメントを生成するとともに、生成した初期セグメントのアフィンパラメータ平均値と、この平均値に対する偏差を新たに算出する（Ｓ２７０）。式（６６）を満たさない場合（Ｓ２６８のＮ）、選択されている二つの初期セグメントはマージされない。偏差判定部１４２は、Ｓ２６８の判定がなされていない初期セグメントのペアが残っているか否かを判定する（Ｓ２７２）。初期セグメントのペアが残っていれば（Ｓ２７２のＹ）、Ｓ２６６以降の処理を繰り返す。初期セグメントのペアが残っていなければ（Ｓ２７２のＮ）、このフローを終了する。
【０２０３】
図２８に示すプロセスは、二つの初期セグメント同士がアフィンパラメータ空間において外接しているか否かを判定している。両者が外接している場合には、一つのセグメントとみなされる。
【０２０４】
図２９は、初期セグメントマージの第２プロセスのフローチャートである。
境界判定部１４４は、境界を接している初期セグメントのペアを見つけ出し、各初期セグメントにおいて、相手の初期セグメントと接しているブロックの数をカウントする（Ｓ２８０）。続いて、各初期セグメントに含まれるブロックの総数ｂをカウントする（Ｓ２８２）。また、初期セグメント間で共有されている境界線のうち、最も長い境界線を検出し、その長さｌを求める（Ｓ２８４）。
【０２０５】
境界判定部１４４は、境界長さｌとブロック総数ｂの比ｌ／ｂが所定のしきい値以上となるか否かを判定する（Ｓ２８６）。しきい値以上であれば（Ｓ２８６のＹ）、二つの初期セグメントをマージして新たなセグメントを生成し、この新たなセグメントについて内部ブロック総数を算出する（Ｓ２８８）。しきい値未満であれば（Ｓ２８６のＮ）、初期セグメント同士をマージしない。境界判定部１４４は、Ｓ２８６の判定がなされていない初期セグメントのペアが残っているか否かを判定する（Ｓ２９０）。初期セグメントのペアが残っていれば（Ｓ２９０のＹ）、Ｓ２８４以降の処理を繰り返す。初期セグメントのペアが残っていなければ（Ｓ２９０のＮ）、このフローを終了する。
【０２０６】
このように、一連のプロセスを実行することによって、初期セグメントは最終的に一つまたは複数のセグメントに統合される。このセグメントは、上述したように、オクルーダのスイープする領域とそれ以外の背景領域とを切り分けたものである。セグメントマップ出力部１４６は、セグメントの境界を表したセグメントマップを出力する。このセグメントマップを使用すれば、種々の画像処理に活用することが可能になる。一例として、セグメントマップ内でセグメントにより切り分けられた部分は、前提技術によるマッピングが必ずしも正確にはならない部分である。したがって、この部分については、従来のブロックマッチング技術を使用して予測画像を生成し、それ以外の部分については、前提技術を用いて予測画像を生成するようにすれば、高精度な画像圧縮を実現することが可能になる。
【０２０７】
図３０は、図２０のＳ１０２における動きベクトル改良処理の詳細なフローチャートである。
まず、動きベクトル検出部１５２は、対応点情報生成部１１０から始点画像フレームと終点画像フレームの対応点情報を受け取り、これに基づいて両フレーム間での画素毎の動きベクトルを算出する（Ｓ２００）。前提技術を使用する代わりに、周知のオプティカルフローなどを用いて動きベクトルを算出してもよい。
【０２０８】
続いて、信頼領域分離部１５４は、動きベクトルのクラスタリングを実行して、画像フレーム内で同一の動きベクトルを有する領域を特定する。そして、これら領域のうち相対的に大きな領域を選択する（Ｓ２０２）。選択した領域の動きベクトルを、画像フレームの「主要動きベクトル」と呼ぶことにする。平均的な動画撮影の場合であれば、画像フレーム内で検出される主要動きベクトルの数はせいぜい二つである。主要動きベクトルの一つは背景が持つ動きベクトルであり、その大きさはほぼ０である。
【０２０９】
続いて、信頼領域分離部１５４は、動きベクトルの精度が相対的に高い「信頼領域」と、動きベクトルの精度が相対的に低い「非信頼領域」のいずれかに分ける（Ｓ２０４）。この分類は、隣接する画素の動きベクトルの差分と所定のしきい値との比較によって実行する。ある画素（x1，y1）と隣接する画素（x2，y2）の動きベクトルをmotion()で表した場合、動きベクトルの差分Ｄを次式のように定義する。
Ｄ＝|motion(x1,y1)−motion(x2,y2)|／max(|motion(x1,y1)|,|motion(x2,y2)|)    （式６７）
式（６７）は、二つの画素間の動きベクトルの差分の絶対値を、動きベクトルのうち大きい方で除すことで正規化している。
【０２１０】
二つの画素が同一のオブジェクトに属している場合、二つの画素の動きベクトルの差分は非常に小さくなるはずである。したがって、差分Ｄがしきい値より大きい場合は、いずれか一方の画素がオクルーダに含まれている可能性が高く、動きベクトルが正確かどうか疑わしいので、これらの画素を非信頼領域に分類する。差分Ｄがしきい値以下の場合には、両画素を信頼領域に分類する。この分類によって、画像フレーム内のオクルーダを大雑把に検出することができる。
【０２１１】
動きベクトル改良部１６０は、信頼領域の主要動きベクトルを利用するなどして、非信頼領域の動きベクトルを画素単位で改良していく（Ｓ２０６）。
【０２１２】
図３１は、Ｓ２０６における動きベクトルの改良の過程を詳細に説明するフローチャートである。
まず、レイヤ設定部１６２は、信頼領域と非信頼領域の境界に沿って１画素の厚さのレイヤを設定する（Ｓ３１０）。
【０２１３】
図３２は、レイヤを模式的に示す。図中、斜線を施してある部分は信頼領域を表し、白抜きの部分が非信頼領域であるとする。信頼領域と非信頼領域の境界に沿って信頼領域の外側に、１画素厚さのレイヤ２００を設定する。レイヤの外側に順次１画素ずつ新たなレイヤの設定を繰り返すことで、信頼領域を徐々に非信頼領域の内部へと拡大していく。
【０２１４】
図３１に戻り、差分判定部１６４は、信頼領域の主要動きベクトルを今回設定したレイヤに適用する（Ｓ３１２）。レイヤを構成する各画素に主要動きベクトルを与えたと仮定したときの、終点画像フレームでの移動位置を検証する。画像フレーム内に主要動きベクトルが二つ以上存在する場合には、レイヤとの距離が近い主要動きベクトルから順に適用する。差分判定部１６４は、レイヤの各画素に動きベクトルを適用したときの移動先の画素値と、終点画像フレームでの対応する画素の画素値との差分を計算し、差分が所定のしきい値以下か否かを判定する（Ｓ３１４）。画素値のＲＧＢ成分それぞれで誤差を取って二乗誤差の和を差分としてもよいし、それ以外の方法で差分を求めてもよい。レイヤは複数の画素から構成されているので、レイヤ内の全ての画素について差分の平均値を求め、この平均値がしきい値以下であるかを判定してもよい。
【０２１５】
差分がしきい値以下であれば（Ｓ３１４のＹ）、今回設定したレイヤに信頼領域と同じ主要動きベクトルを与えても大きな誤差がないことになるので、レイヤ適用部１６６は、レイヤに適用した主要動きベクトルでレイヤの各画素の動きベクトルを置換する（Ｓ３２２）。差分がしきい値より大きければ（Ｓ３１４のＮ）、差分判定部１６４は主要動きベクトル以外の動きベクトルをレイヤに適用してみる。例えば、信頼領域内でレイヤ近傍にある画素の動きベクトルをレイヤの各画素に適用する（Ｓ３１６）。差分判定部１６４は、動きベクトルを適用したときの移動先の画素値と、終点画像フレームでの対応する画素の画素値との差分を計算し、差分が所定のしきい値以下か否かを判定する（Ｓ３１８）。差分がしきい値以下であれば（Ｓ３１８のＹ）、レイヤ適用部１６６は、レイヤに適用した動きベクトルでレイヤの各画素の動きベクトルを置換する（Ｓ３２２）。
【０２１６】
差分がしきい値より大きければ（Ｓ３１８のＮ）、ブロックマッチング部１６８は非信頼領域内で例えば２×２画素のブロックを作り、ブロックマッチングにより終点画像フレームで近似するブロックを網羅的に探索する（Ｓ３２０）。探索したブロックの画素値と、現在のブロックの画素値との差分をＲＧＢの各成分毎に求め、それらの和が最小となるブロックを採用する。レイヤ適用部１６６は、ブロックマッチングの結果により求められる動きベクトルでレイヤの各画素の動きベクトルを置換する（Ｓ３２２）。
【０２１７】
動きベクトル改良部１６０は、画像フレーム内にまだ非信頼領域が残っているか否かを判定する（Ｓ３２４）。非信頼領域が残っていれば（Ｓ３２４のＹ）、Ｓ３１０以降の処理を繰り返す。非信頼領域が残っていなければ（Ｓ３２４のＮ）、この階層での処理を終了する。上述の一連の処理は、画像フレームのすべての階層で繰り返される（Ｓ３２６）。
【０２１８】
このように、非信頼領域に含まれる各画素に対して主要動きベクトルや近隣の画素の動きベクトルを当てはめてみて、元々の動きベクトルを適用した場合よりも移動先の画素値との誤差が小さくなるという良好な結果が得られるか否かを判定する。良好な結果が得られれば、元々の動きベクトルを今回適用した動きベクトルで置換する。結果が好ましくない場合は、最も画素の差分が小さくなるブロックを網羅的に探索するブロックマッチングを実行することで、非信頼領域の動きベクトルを改良する。
【０２１９】
レイヤに対して主要動きベクトルを当てはめていくのは、以下のような理由による。すなわち、上述したように、前提技術で作成される対応点情報を使用して動きベクトルを算出した場合、始点画像フレームと終点画像フレームとの間に対応点が存在しないために、オクルーダとそれ以外の部分との境界付近の動きベクトルについては不正確な動きベクトルが求められている可能性がある。そこで本実施形態では、上記式（６７）にしたがって差分Ｄを算出し、差分Ｄの大小によって信頼領域と非信頼領域とを大まかに切り分けてしまう。その後、非信頼領域の内部についてより正確な動きベクトルを設定する処理を進めていく。つまり、上述したように、画像フレーム内の主要動きベクトルや信頼領域内の近隣の画素の動きベクトルを１つずつ適用してみて、より精度の高い動きベクトルを試行錯誤的に見つけ出していく。
【０２２０】
ブロックマッチングにおいてブロック間の誤差を判定するときに、一般的に良く使用される平均絶対偏差（Mean Absolute Difference）で判断する代わりに、中央絶対偏差（Median Absolute Difference）で判断することが好ましい。前者の平均絶対偏差による判定は、高速であり実装が簡単であるという利点があるが、ノイズに敏感である。そのため、境界付近で誤差が大きくなりマッチングの結果が背景に引き摺られる傾向があるオクルーダの検出には向いていない。中央絶対偏差を用いることで、画像フレーム内を移動するオクルーダのエッジ近辺では、平均絶対偏差よりも良好なマッチング結果が得られる。なお、中央絶対偏差による判定は、全体のデータからメディアンを見つける必要があるのでブロックをソートしなければならず、処理速度が低下するという欠点もある。しかしながら、バケットソートを利用して処理を高速化することも可能である。
【０２２１】
上述の動きベクトルのブロックマッチングは、始点画像フレームおよび終点画像フレームの階層化されたすべての画像に対してなされる。ブロックサイズは、画像フレームのサイズに比例して設定される。このような設定は、階層的ブロックマッチングに使われる通常の手法である。なお、このブロックマッチングは画像フレーム内の全画素について実行する必要はなく、上述したように非信頼領域に含まれる画素についてのみ実施すればよい。
このブロックマッチングは従来技術と同様であるが、本実施形態では主要動きベクトルや信頼領域の動きベクトルをレイヤに適用していくプロセスを経ることによってマッチング対象となる非信頼領域がかなりの程度限定されているので、画像フレームの全体を対象として探索する場合よりも、良好なマッチング結果が得られることが期待される。なお、高解像度の階層については、レイヤの適用をせずにブロックマッチングのみを使用して非信頼領域の動きベクトルを改良してもよい。
【０２２２】
以上説明したようなプロセスによって、画像フレームの全体にわたって動きベクトルの精度を改良することができる。続いて、改良された動きベクトルを使用してオクルージョン領域の検出が実行される。
【０２２３】
図３３は、図２０のＳ１０４におけるマスク作成処理を詳細に説明するフローチャートである。
動きベクトル改良部１６０は、始点画像フレームＮと終点画像フレームＮ＋１について、上述したプロセスにしたがって順方向の動きベクトルを算出し、動きベクトルの精度を改良する（Ｓ２４０）。また、動きベクトル改良部１６０は、終点画像フレームＮ＋１と始点画像フレームＮについて、上述のプロセスにしたがって逆方向の動きベクトルを算出し、動きベクトルの精度を改良する（Ｓ２４２）。
【０２２４】
双方向の動きベクトルが得られたら、オクルージョン検出部１５６は、順方向の動きベクトルと逆方向の動きベクトルとを比較して、画像フレーム内を移動するオクルーダによって隠される領域であるオクルージョン領域を検出する（Ｓ２４４）。この検出は、以下のような原理にしたがって実施される。上述した前提技術を用いる対応点情報は、始点画像フレームと終点画像フレームの各画素を全単射で結びつけるため、順方向の動きベクトルと逆方向の動きベクトルとは大きさが一致し向きが反対の関係になるはずである。そこで、順方向と逆方向とで動きベクトルの大きさが一致しない画素は、オクルーダの存在のために前提技術によって正確な対応点情報が得られていない画素と判断することができる。
【０２２５】
ところで、オクルーダによって隠されるオクルージョン領域には、次の二つの種類があることが理解されよう。第１は、始点画像フレームにおいては観察されるが、終点画像フレームではオクルーダの背後に隠れるために観察されない領域である（以下、このような領域を「カバード領域」と呼ぶ）。第２は、視点画像フレームではオクルーダの背後に隠れるために観察されないが、終点画像フレームではオクルーダが移動することで観察されるようになる領域である（以下、このような領域を「アンカバード領域」と呼ぶ）。この両者は、順方向の動きベクトルと逆方向の動きベクトルとを比較することで判別することができる。具体的には、順方向の動きベクトルの大きさがｖ（ｖは任意の値）、逆方向の動きベクトルの大きさが０である画素は、カバード領域に含まれる画素である。逆に、順方向の動きベクトルの大きさが０、逆方向の動きベクトルの大きさがｖである画素は、アンカバード領域に含まれる画素である。
【０２２６】
図３４（ａ）、（ｂ）は、カバード領域とアンカバード領域の違いを説明する図である。図３４（ａ）に「Ｐ」で示す領域は、始点画像フレーム２１０ではオクルーダＷの背後にあり観察されないが、終点画像フレーム２１２ではオクルーダが移動したために観察されるようになる。このとき、領域Ｐに含まれる点ｐの動きベクトルについて考察する。順方向では、始点画像フレーム２１０に点ｐが観察されないので、動きベクトルの大きさは０になる。逆方向では、終点画像フレーム２１２の点ｐの動きベクトルは何らかの大きさを持つはずである。したがって、順方向の動きベクトルの大きさが０、逆方向の動きベクトルの大きさがｖである点ｐは、アンカバード領域に含まれると判断できる。
【０２２７】
図３４（ｂ）に「Ｑ」で示す領域は、始点画像フレーム２１４では観察されるが、終点画像フレーム２１６ではオクルーダＷの背後に隠されて観察されなくなる。このとき、領域Ｑに含まれる点ｑの動きベクトルについて考察する。逆方向では、終点画像フレーム２１６に点ｑが観察されないので、動きベクトルの大きさは０になる。順方向では、始点画像フレーム２１４の点ｑの動きベクトルは何らかの大きさを持つはずである。したがって、順方向の動きベクトルの大きさがｖ、逆方向の動きベクトルの大きさが０である点ｑは、カバード領域に含まれると判断できる。
【０２２８】
図３３に戻り、マスク作成部１５８は、Ｓ２４４で検出されたカバード領域とアンカバード領域に当たる部分の画素のみを取り出すマスクを作成する（Ｓ２４６）。このマスクは、上述したようにエッジ度判定部１３６に渡され、所望のエッジ画像を取り出すために使用される。
【０２２９】
図３５は、マスクの一例を示す。マスク２２４の形状は、Ｓ２４４で検出されるカバード領域２２０とアンカバード領域２２２の和集合となる。
【０２３０】
以上説明したように、本実施形態によれば、画像フレームに関する３つの高精度のマップを生成することができる。すなわち、画像フレーム内を移動するオクルーダと背景部分とが切り分けられたセグメントマップ、オクルーダの境界近傍での精度が改善された動きベクトルマップ、およびカバード領域とアンカバード領域が分かるオクルージョンマップである。これらのマップを適宜組み合わせて使用することで、種々の画像処理に応用することができる。
【０２３１】
一般に、前提技術を用いると始点画像フレームと終点画像フレームとの間で非常に精度の高いマッチングを実行できる。しかしながら、前提技術には画像フレーム間で全単射の条件のもとで写像先を検出するという制約が存在する。そのため、画像フレーム内を移動するオクルーダが存在する場合、オクルーダによって隠されるカバード領域やオクルーダの背後から現れるアンカバード領域においては、現実には相手の画像フレームに写像先が存在しないため、正確な写像先を見つけることができず、他の部分よりマッチングの信頼度が低下するという問題がある。マッチングの精度が低いと、それを利用して算出される動きベクトルの精度も低くなる。
【０２３２】
本実施形態では、最初に前提技術による対応点情報を使用して動きベクトルを求める。得られた動きベクトルを利用して信頼領域と非信頼領域とを大雑把に切り分け、非信頼領域については前提技術で求めた動きベクトルを使用せず、周囲の動きベクトルを利用して動きベクトルを推定し、最後にはブロックマッチングを実行して動きベクトルを見つけるようにした。こうすることで、オクルージョン領域においても動きベクトルの精度を高めることができる。
【０２３３】
また、本実施形態では、画像フレーム内のシードブロックを起点として、周囲のブロックを同一のセグメントに含められるか否かを判断することによってセグメントを生成するようにした。このようにしてセグメントを作成すると、最終的にオクルージョン領域とそれ以外の領域を精度良く分離することができる。このようにオクルージョン領域を分離できると、例えば動画像の圧縮のために予測画像を作成する場合に、オクルージョン領域以外の部分では前提技術による対応点情報を利用して予測画像を作成する一方、オクルージョン領域においては全単射の制約を外した他のマッチング手法、例えばブロックマッチングを利用して予測画像を作成することができる。このように複数のマッチング手法を使い分けることで、前提技術のみを用いた場合よりも、オクルージョン領域やその近傍において動画像の圧縮復元時の動き予測の精度が改善されるため、復元画像がより高精度となる動画像圧縮を実現することができる。
【０２３４】
前提技術により求められる対応点情報を、セグメントの生成プロセスと動きベクトルの改良プロセスの両方に利用していることも本実施形態の特徴のひとつである。これら両プロセスは並列的に処理することができる。
【０２３５】
以上、本発明をいくつかの実施の形態をもとに説明した。これらの実施の形態はあくまで例示であり、実施の形態どうしの任意の組合せ、実施の形態の各構成要素や各処理プロセスの任意の組合せなどの変形例もまた、本発明の範囲にあることは当業者に理解されるところである。
【０２３６】
本実施形態は、セグメント処理部１２０によるセグメントの分割と、動きベクトル処理部１５０による動きベクトルの改良およびマスクの作成という、二つの個別に実施可能なプロセスを組み合わせている。したがって、各プロセスについては、本明細書に示したもの以外のアルゴリズムを使用したプロセスと置換可能である。
【図面の簡単な説明】
【０２３７】
【図１】図１（ａ）と図１（ｂ）は、ふたりの人物の顔に平均化フィルタを施して得られる画像、図１（ｃ）と図１（ｄ）は、ふたりの人物の顔に関して前提技術で求められるｐ（５，０）の画像、図１（ｅ）と図１（ｆ）は、ふたりの人物の顔に関して前提技術で求められるｐ（５，１）の画像、図１（ｇ）と図１（ｈ）は、ふたりの人物の顔に関して前提技術で求められるｐ（５，２）の画像、図１（ｉ）と図１（ｊ）は、ふたりの人物の顔に関して前提技術で求められるｐ（５，３）の画像をそれぞれディスプレイ上に表示した中間調画像の写真である。
【図２】図２（Ｒ）はもとの四辺形を示す図、図２（Ａ）、図２（Ｂ）、図２（Ｃ）、図２（Ｄ）、図２（Ｅ）はそれぞれ相続四辺形を示す図である。
【図３】始点画像と終点画像の関係、および第ｍレベルと第ｍ−１レベルの関係を相続四辺形を用いて示す図である。
【図４】パラメータηとエネルギーＣｆの関係を示す図である。
【図５】図５（ａ）、図５（ｂ）は、ある点に関する写像が全単射条件を満たすか否かを外積計算から求める様子を示す図である。
【図６】前提技術の全体手順を示すフローチャートである。
【図７】図６のＳ１の詳細を示すフローチャートである。
【図８】図７のＳ１０の詳細を示すフローチャートである。
【図９】第ｍレベルの画像の一部と、第ｍ−１レベルの画像の一部の対応関係を示す図である。
【図１０】前提技術で生成された始点階層画像を示す図である。
【図１１】図６のＳ２に進む前に、マッチング評価の準備の手順を示す図である。
【図１２】図６のＳ２の詳細を示すフローチャートである。
【図１３】第０レベルにおいて副写像を決定する様子を示す図である。
【図１４】第１レベルにおいて副写像を決定する様子を示す図である。
【図１５】図１２のＳ２１の詳細を示すフローチャートである。
【図１６】あるｆ（ｍ，ｓ）についてλを変えながら求められたｆ（ｍ，ｓ）（λ＝ｉΔλ）に対応するエネルギーＣ（ｍ，ｓ）ｆの挙動を示す図である。
【図１７】ηを変えながら求められたｆ（ｎ）（η＝ｉΔη）（ｉ＝０，１，…）に対応するエネルギーＣ（ｎ）ｆの挙動を示す図である。
【図１８】改良後の前提技術において第ｍレベルにおける副写像を求めるフローチャートである。
【図１９】実施の形態に係る画像処理装置の構成図である。
【図２０】実施の形態の概略動作を示すフローチャートである。
【図２１】Ｓ１０６のシードセグメントの生成の詳細なフローチャートである。
【図２２】画像フレームを複数の同形のブロックに分割した様子を示す図である。
【図２３】隣接ブロックにシードブロックと同一のラベルを与えていく様子を示す図である。
【図２４】Ｓ１０８のシードセグメントの領域拡張処理の詳細なフローチャートである。
【図２５】Ｓ１４４の統合条件を判定する処理を詳細に説明するフローチャートである。
【図２６】Ｓ１５６で判定に使用される補正エッジ度の算出方法を示すフローチャートである。
【図２７】マスクとブラードマスクの関係を示す図である。
【図２８】シードセグメント結合プロセスのフローチャートである。
【図２９】シードセグメント結合プロセスのフローチャートである。
【図３０】Ｓ１０２における動きベクトル改良処理の詳細なフローチャートである。
【図３１】Ｓ２０６における動きベクトルの改良の過程を詳細に説明するフローチャートである。
【図３２】レイヤの様子を模式的に示す図である。
【図３３】Ｓ１０４におけるマスク作成処理を詳細に説明するフローチャートである。
【図３４】（ａ）、（ｂ）は、カバード領域とアンカバード領域の違いを説明する図である。
【図３５】マスクの一例を示す図である。
【符号の説明】
【０２３８】
１  画像処理装置、  １２  画像読込部、  １４  画像記憶部、  １１０  対応点情報生成部、  １２０  セグメント処理部、  １２２  シードセグメント生成部、  １２４  アフィンパラメータ算出部、  １２６  シードブロック選択部、  １２８  シードブロック成長部、  １３０  セグメント拡張部、  １３２  アフィンパラメータ判定部、  １３４  画素値判定部、  １３６  エッジ度判定部、  １４０  セグメントマージ部、  １４２  偏差判定部、  １４４  境界判定部、  １４６  セグメントマップ出力部、  １５０  動きベクトル処理部、  １５２  動きベクトル検出部、  １５４  信頼領域分離部、  １５６  オクルージョン検出部、  １５８  マスク作成部、  １６０  動きベクトル改良部、  １６２  レイヤ設定部、  １６４  差分判定部、  １６６  レイヤ適用部、  １６８  ブロックマッチング部。 
【図１】
2008282377.tif 000068
【図２】
2008282377.tif 000069
【図３】
2008282377.tif 000070
【図４】
2008282377.tif 000071
【図５】
2008282377.tif 000072
【図６】
2008282377.tif 000073
【図７】
2008282377.tif 000074
【図８】
2008282377.tif 000075
【図９】
2008282377.tif 000076
【図１０】
2008282377.tif 000077
【図１１】
2008282377.tif 000078
【図１２】
2008282377.tif 000079
【図１３】
2008282377.tif 000080
【図１４】
2008282377.tif 000081
【図１５】
2008282377.tif 000082
【図１６】
2008282377.tif 000083
【図１７】
2008282377.tif 000084
【図１８】
2008282377.tif 000085
【図１９】
2008282377.tif 000086
【図２０】
2008282377.tif 000087
【図２１】
2008282377.tif 000088
【図２２】
2008282377.tif 000089
【図２３】
2008282377.tif 000090
【図２４】
2008282377.tif 000091
【図２５】
2008282377.tif 000092
【図２６】
2008282377.tif 000093
【図２７】
2008282377.tif 000094
【図２８】
2008282377.tif 000095
【図２９】
2008282377.tif 000096
【図３０】
2008282377.tif 000097
【図３１】
2008282377.tif 000098
【図３２】
2008282377.tif 000099
【図３３】
2008282377.tif 000100
【図３４】
2008282377.tif 000101
【図３５】
2008282377.tif 000102