JP2008282377A - 画像処理方法および装置 - Google Patents
画像処理方法および装置 Download PDFInfo
- Publication number
- JP2008282377A JP2008282377A JP2007286803A JP2007286803A JP2008282377A JP 2008282377 A JP2008282377 A JP 2008282377A JP 2007286803 A JP2007286803 A JP 2007286803A JP 2007286803 A JP2007286803 A JP 2007286803A JP 2008282377 A JP2008282377 A JP 2008282377A
- Authority
- JP
- Japan
- Prior art keywords
- image
- motion vector
- pixel
- image frame
- matching
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/14—Picture signal circuitry for video frequency region
- H04N5/144—Movement detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/223—Analysis of motion using block-matching
- G06T7/238—Analysis of motion using block-matching using non-full search, e.g. three-step search
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10016—Video; Image sequence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20016—Hierarchical, coarse-to-fine, multiscale or multiresolution image processing; Pyramid transform
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
- H04N19/139—Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/553—Motion estimation dealing with occlusions
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Image Analysis (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
【課題】動きベクトルの精度を高める。
【解決手段】対応点情報生成部110は、連続した画像フレームを有する画像データ内の始点画像フレームと終点画像フレームとの間で画素毎の対応点情報を求めるマッチングを実行する。動きベクトル検出部152は、マッチングの結果に基づいて始点画像フレーム内で画素毎の動きベクトルを求める。信頼領域分離部154は、動きベクトルが求められた画像フレームをブロック分割し、各ブロックを、算出された動きベクトルの精度が相対的に高い信頼領域と、動きベクトルの精度が相対的に低い非信頼領域のいずれかに分ける。動きベクトル改良部160は、信頼領域の動きベクトルを信頼領域と隣接する非信頼領域の画素に適用したとき、適用後の移動先の画素値と終点画像フレーム内の対応する画素の画素値との誤差を計算し、誤差がしきい値より小さい場合、その画素を信頼領域に組み入れて該画素の動きベクトルを信頼領域の動きベクトルで置換する。
【選択図】図19
【解決手段】対応点情報生成部110は、連続した画像フレームを有する画像データ内の始点画像フレームと終点画像フレームとの間で画素毎の対応点情報を求めるマッチングを実行する。動きベクトル検出部152は、マッチングの結果に基づいて始点画像フレーム内で画素毎の動きベクトルを求める。信頼領域分離部154は、動きベクトルが求められた画像フレームをブロック分割し、各ブロックを、算出された動きベクトルの精度が相対的に高い信頼領域と、動きベクトルの精度が相対的に低い非信頼領域のいずれかに分ける。動きベクトル改良部160は、信頼領域の動きベクトルを信頼領域と隣接する非信頼領域の画素に適用したとき、適用後の移動先の画素値と終点画像フレーム内の対応する画素の画素値との誤差を計算し、誤差がしきい値より小さい場合、その画素を信頼領域に組み入れて該画素の動きベクトルを信頼領域の動きベクトルで置換する。
【選択図】図19
Description
この発明は、画像フレーム間の対応点情報を利用する画像処理方法とおよび装置に関する。
静止画像や動画像のデジタル画像処理は、近年のプロセッサやLSI技術などの著しい発展とともに応用範囲が多様化し、現在では画像の作成、記録、加工、再生、通信を行うことが、画像処理技術者ならずとも一般に容易に行えるようになった。なかでも、JPEG(Joint Photographic Experts Group)やMPEG(Motion Picture Expert Group)のような圧縮技術の進歩は、優れた画質をもつ画像データの保存や送信を容易にし、現在では400万画素を超える静止画像を記録できるデジタルスチルカメラも珍しくなくなった。
また、デジタルスチルカメラには動画像記録機能が、デジタルビデオカメラには静止画像記録機能がそれぞれ装備されたことにより、両者の機能的役割の境界はあいまいになりつつある。
出願人が先に特許第2927350号にて提案した技術では、あるフレームと次のフレームの間で位置エネルギーと画素のエネルギーの和が最小になる点を求めることで、各ブロックの各頂点について全単射先を求めるようにしている。こうすることで、高精度のマッチングが可能になり、また動画像の圧縮効率を高めることにもつながる。
上記のような全単射のマッチングを実施する場合には、以下のような問題がある。すなわち、画面内に動きのある物体が存在すると、その物体は背景の画像を隠しながら移動することになる。そのため、あるフレームでは見えていた背景部分のうち、次のフレームでは物体に隠されて見えなくなる部分が存在する。反対に、あるフレームでは物体に隠されて見えない背景部分のうち、次のフレームでは物体の背後から出て見えるようになる部分が存在する。このような領域においては、あるフレームで観察される画素と対応する画素が、次のフレームには存在しないことになる。そのため、全単射先を求めようとすると、その画素を含むブロックについては正確な全単射先を求めることは不可能であるため、ブロックが大きく歪んでしまう。このような歪みは、動画像の圧縮の際に正確な動きベクトルを求められないことの原因になる。
本発明はそうした状況に鑑みてなされたものであり、その目的は、画像フレーム内を移動するオブジェクトがある場合でも高精度の動きベクトルを求める技術を提供することにある。
本発明のある態様の画像処理方法は、連続した画像フレームを有する画像データ内の二つの画像フレーム間で画素毎の対応点情報を求めるマッチングを実行し、その中で対応関係の信頼度が低い画素については両画像間でブロックマッチングを実行してブロック毎に対応関係を求める。
ここで、対応点情報とは、以降説明する前提技術におけるフレーム間の対応情報のことである。
この態様によると、複数のマッチング手法を利用して対応関係を求めることができる。
本発明の別の態様もまた、画像処理方法である。この方法は、連続した画像フレームを有する画像データ内の始点画像フレームと終点画像フレームの間で各画素について対応点情報を求めるマッチングを初期マッチングとして実行し、マッチングの結果にしたがって動きベクトルを求め、求めた動きベクトルの信頼度を各画素について判定し、信頼度が低いと判定された画素については、複数の画素で構成されるブロック単位のブロックマッチングを始点画像フレームと終点画像フレームの間で実行して、改めて動きベクトルを算出する。
この態様によると、初期マッチングの結果にしたがって求められた動きベクトルの信頼度が低い画素については、初期マッチングとは異なる手法であるブロックマッチングを実行して動きベクトルを算出するので、画像フレーム全体でみたときの動きベクトルの精度を改善することができる。
本発明のさらに別の態様は、画像処理装置である。この装置は、連続した画像フレームを有する画像データ内の始点画像フレームと終点画像フレームとの間で画素毎の対応点情報を求めるマッチングを実行するマッチング処理部と、マッチングの結果に基づいて始点画像フレーム内で画素毎の動きベクトルを求める動きベクトル検出部と、動きベクトルが求められた画像フレームをブロック分割し、各ブロックを、算出された動きベクトルの精度が相対的に高い信頼領域と、動きベクトルの精度が相対的に低い非信頼領域のいずれかに分ける信頼領域分離部と、信頼領域の動きベクトルを信頼領域と隣接する非信頼領域の画素に適用したとき、適用後の移動先の画素値と終点画像フレーム内の対応する画素の画素値との誤差を計算し、誤差がしきい値より小さい場合、その画素を信頼領域に組み入れて該画素の動きベクトルを信頼領域の動きベクトルで置換する動きベクトル改良部と、を備える。
この態様によると、まず対応点情報に基づいて求められる動きベクトルを利用して、画像フレームを信頼領域と非信頼領域とを大雑把に切り分ける。その後、非信頼領域の画素については、信頼領域の動きベクトルを利用して動きベクトルを推定するようにした。こうすることで、非信頼領域の動きベクトルの精度を高めることができる。
非信頼領域に含まれる画素のうち動きベクトル改良部によって信頼領域に組み入れられなかった始点画像フレーム内の画素からなるブロックについて、終点画像フレーム内で誤差の最も少ないブロックを網羅的に検索するブロックマッチングを実行するブロックマッチング部をさらに備え、ブロックマッチングの結果求められる動きベクトルで当該ブロックの動きベクトルを置換してもよい。
本発明のさらに別の態様もまた、画像処理装置である。この装置は、連続した画像フレームを有する画像データ内の始点画像フレームと終点画像フレームの間で順方向と逆方向の両方で動きベクトルを求める動きベクトル検出部と、順方向と逆方向の動きベクトルを画素毎に比較し、両者の大きさが異なる画素がある場合、該画素を内部に含むオブジェクトが同一フレーム内の他のオブジェクトによって隠される領域、またはオブジェクトが同一フレーム内の他のオブジェクトを背後に隠す領域であるオクルージョン領域に画素が含まれると判定するオクルージョン検出部と、を備える。
この態様によると、双方向の動きベクトルを比較することによって画像フレーム内でオクルージョン領域を切り分けることができる。
オクルージョン検出部は、順方向と逆方向のいずれかの動きベクトルが0となった画素について、始点画像フレームには画素に対応する点があるが終点画像フレームには対応する点がないという関係が成立する場合、画素を含む領域をオクルーダに覆われて隠される領域であるカバード領域と判定し、始点画像フレームには画素に対応する点がないが終点画像には対応する点があるという関係が成立する場合、画素を含む領域をオクルーダの背後から現れる領域であるアンカバード領域と判定してもよい。
カバード領域とアンカバード領域との和集合を画像フレームのマスクとして利用してもよい。
画像フレーム内でオブジェクトと背景とのエッジを検出しエッジ画像を作成するエッジ検出部と、マスクとエッジ画像との積集合を求めることによって、始点画像フレームまたは終点画像フレーム内で静止しているオブジェクト間のエッジを取り除いて、動物体と静止物体との間のエッジ部分のみを抽出するエッジ抽出部と、をさらに備えてもよい。
本発明のさらに別の態様は、画像処理方法である。この方法は、連続した画像フレームを有する画像データ内の二つの画像フレームの間でマッチングを実行して画像フレーム間の対応点情報を生成するステップと、マッチングの結果に基づいて画素毎に動きベクトルを算出するステップと、動きベクトルに基づいてオブジェクトが同一フレーム内の他のオブジェクトによってフレーム内で隠される領域、またはオブジェクトが同一フレーム内の他のオブジェクトを背後に隠す領域であるオクルージョン領域を検出するステップと、動きベクトルとオクルージョン領域とに基づいて、画像フレーム内で静止している部分と動いている部分とを切り分けるステップと、を含む。
なお、以上の態様のうち、画像フレーム間の対応点情報を生成する部分については、本出願人が先に特許第2927350号にて提案した技術(以下「前提技術」という)を利用することができる。
以上の各構成、工程を任意に入れ替えたり、方法と装置の間で表現を一部または全部入れ替え、または追加したり、表現をコンピュータプログラム、記録媒体等に変更したものもまた、本発明として有効である。
本発明によれば、画像フレーム内を移動するオブジェクトがある場合でも高精度の動きベクトルを求めることができる。
はじめに、実施の形態で利用する多重解像度特異点フィルタ技術とそれを用いた画像マッチング処理を「前提技術」として詳述する。これらの技術は本出願人がすでに特許第2927350号を得ている技術であり、本発明との組合せに最適である。ただし、実施の形態で採用可能な画像マッチング技術はこれに限られない。図19以降、前提技術を利用した画像処理技術を具体的に説明する。
[前提技術の実施の形態]
最初に[1]で前提技術の要素技術を詳述し、[2]で処理手順を具体的に説明する。さらに[3]で前提技術に基づき改良を施した点について述べる。
最初に[1]で前提技術の要素技術を詳述し、[2]で処理手順を具体的に説明する。さらに[3]で前提技術に基づき改良を施した点について述べる。
[1]要素技術の詳細
[1.1]イントロダクション
特異点フィルタと呼ばれる新たな多重解像度フィルタを導入し、画像間のマッチングを正確に計算する。オブジェクトに関する予備知識は一切不要である。画像間のマッチングの計算は、解像度の階層を進む間、各解像度において計算される。その際、粗いレベルから精細なレベルへと順に解像度の階層を辿っていく。計算に必要なパラメータは、人間の視覚システムに似た動的計算によって完全に自動設定される。画像間の対応点を人手で特定する必要はない。
[1.1]イントロダクション
特異点フィルタと呼ばれる新たな多重解像度フィルタを導入し、画像間のマッチングを正確に計算する。オブジェクトに関する予備知識は一切不要である。画像間のマッチングの計算は、解像度の階層を進む間、各解像度において計算される。その際、粗いレベルから精細なレベルへと順に解像度の階層を辿っていく。計算に必要なパラメータは、人間の視覚システムに似た動的計算によって完全に自動設定される。画像間の対応点を人手で特定する必要はない。
本前提技術は、例えば完全に自動的なモーフィング、物体認識、立体写真測量、ボリュームレンダリング、少ないフレームからの滑らかな動画像の生成などに応用できる。モーフィングに用いる場合、与えられた画像を自動的に変形することができる。ボリュームレンダリングに用いる場合、断面間の中間的な画像を正確に再構築することができる。断面間の距離が遠く、断面の形状が大きく変化する場合でも同様である。
[1.2]特異点フィルタの階層
前提技術に係る多重解像度特異点フィルタは、画像の解像度を落としながら、しかも画像に含まれる各特異点の輝度及び位置を保存することができる。ここで画像の幅をN、高さをMとする。以下簡単のため、N=M=2n(nは自然数)と仮定する。また、区間[0,N]⊂RをIと記述する。(i,j)における画像の画素をp(i,j)と記述する(i,j∈I)。
前提技術に係る多重解像度特異点フィルタは、画像の解像度を落としながら、しかも画像に含まれる各特異点の輝度及び位置を保存することができる。ここで画像の幅をN、高さをMとする。以下簡単のため、N=M=2n(nは自然数)と仮定する。また、区間[0,N]⊂RをIと記述する。(i,j)における画像の画素をp(i,j)と記述する(i,j∈I)。
ここで多重解像度の階層を導入する。階層化された画像群は多重解像度フィルタで生成される。多重解像度フィルタは、もとの画像に対して二次元的な探索を行って特異点を検出し、検出された特異点を抽出してもとの画像よりも解像度の低い別の画像を生成する。ここで第mレベルにおける各画像のサイズは2m×2m(0≦m≦n)とする。特異点フィルタは次の4種類の新たな階層画像をnから下がる方向で再帰的に構築する。
P(m,0)=α(x)α(y)p(m+1,0)
P(m,1)=α(x)β(y)p(m+1,1)
P(m,2)=β(x)α(y)p(m+1,2)
P(m,3)=β(x)β(y)p(m+1,3)
すなわち、これらはαとβのテンソル積のようなものと考えられる。副画像はそれぞれ特異点に対応している。これらの式から明らかなように、特異点フィルタはもとの画像について2×2画素で構成されるブロックごとに特異点を検出する。その際、各ブロックのふたつの方向、つまり縦と横について、最大画素値または最小画素値をもつ点を探索する。画素値として、前提技術では輝度を採用するが、画像に関するいろいろな数値を採用することができる。ふたつの方向の両方について最大画素値となる画素は極大点、ふたつの方向の両方について最小画素値となる画素は極小点、ふたつの方向の一方について最大画素値となるとともに、他方について最小画素値となる画素は鞍点として検出される。
P(m,1)=α(x)β(y)p(m+1,1)
P(m,2)=β(x)α(y)p(m+1,2)
P(m,3)=β(x)β(y)p(m+1,3)
すなわち、これらはαとβのテンソル積のようなものと考えられる。副画像はそれぞれ特異点に対応している。これらの式から明らかなように、特異点フィルタはもとの画像について2×2画素で構成されるブロックごとに特異点を検出する。その際、各ブロックのふたつの方向、つまり縦と横について、最大画素値または最小画素値をもつ点を探索する。画素値として、前提技術では輝度を採用するが、画像に関するいろいろな数値を採用することができる。ふたつの方向の両方について最大画素値となる画素は極大点、ふたつの方向の両方について最小画素値となる画素は極小点、ふたつの方向の一方について最大画素値となるとともに、他方について最小画素値となる画素は鞍点として検出される。
特異点フィルタは、各ブロックの内部で検出された特異点の画像(ここでは1画素)でそのブロックの画像(ここでは4画素)を代表させることにより、画像の解像度を落とす。特異点の理論的な観点からすれば、α(x)α(y)は極小点を保存し、β(x)β(y)は極大点を保存し、α(x)β(y)及びβ(x)α(y)は鞍点を保存する。
はじめに、マッチングをとるべき始点(ソース)画像と終点(デスティネーション)画像に対して別々に特異点フィルタ処理を施し、それぞれ一連の画像群、すなわち始点階層画像と終点階層画像を生成しておく。始点階層画像と終点階層画像は、特異点の種類に対応してそれぞれ4種類ずつ生成される。
この後、一連の解像度レベルの中で始点階層画像と終点階層画像のマッチングがとられていく。まずp(m,0)を用いて極小点のマッチングがとられる。次に、その結果に基づき、p(m,1)を用いて鞍点のマッチングがとられ、p(m,2)を用いて他の鞍点のマッチングがとられる。そして最後にp(m,3)を用いて極大点のマッチングがとられる。
図1(c)と図1(d)はそれぞれ図1(a)と図1(b)の副画像p(5,0)を示している。同様に、図1(e)と図1(f)はp(5,1)、図1(g)と図1(h)はp(5,2)、図1(i)と図1(j)はp(5,3)をそれぞれ示している。これらの図からわかるとおり、副画像によれば画像の特徴部分のマッチングが容易になる。まずp(5,0)によって目が明確になる。目は顔の中で輝度の極小点だからである。p(5,1)によれば口が明確になる。口は横方向で輝度が低いためである。p(5,2)によれば首の両側の縦線が明確になる。最後に、p(5,3)によって耳や頬の最も明るい点が明確になる。これらは輝度の極大点だからである。
特異点フィルタによれば画像の特徴が抽出できるため、例えばカメラで撮影された画像の特徴と、予め記録しておいたいくつかのオブジェクトの特徴を比較することにより、カメラに映った被写体を識別することができる。
[1.3]画像間の写像の計算
始点画像の位置(i,j)の画素をp(n) (i,j)と書き、同じく終点画像の位置(k,l)の画素をq(n) (k,l)で記述する。i,j,k,l∈Iとする。画像間の写像のエネルギー(後述)を定義する。このエネルギーは、始点画像の画素の輝度と終点画像の対応する画素の輝度の差、及び写像の滑らかさによって決まる。最初に最小のエネルギーを持つp(m,0)とq(m,0)間の写像f(m,0):p(m,0)→q(m,0)が計算される。f(m,0)に基づき、最小エネルギーを持つp(m,1)、q(m,1)間の写像f(m,1)が計算される。この手続は、p(m,3)とq(m,3)の間の写像f(m,3)の計算が終了するまで続く。各写像f(m,i)(i=0,1,2,…)を副写像と呼ぶことにする。f(m,i)の計算の都合のために、iの順序は次式のように並べ替えることができる。並べ替えが必要な理由は後述する。
始点画像の位置(i,j)の画素をp(n) (i,j)と書き、同じく終点画像の位置(k,l)の画素をq(n) (k,l)で記述する。i,j,k,l∈Iとする。画像間の写像のエネルギー(後述)を定義する。このエネルギーは、始点画像の画素の輝度と終点画像の対応する画素の輝度の差、及び写像の滑らかさによって決まる。最初に最小のエネルギーを持つp(m,0)とq(m,0)間の写像f(m,0):p(m,0)→q(m,0)が計算される。f(m,0)に基づき、最小エネルギーを持つp(m,1)、q(m,1)間の写像f(m,1)が計算される。この手続は、p(m,3)とq(m,3)の間の写像f(m,3)の計算が終了するまで続く。各写像f(m,i)(i=0,1,2,…)を副写像と呼ぶことにする。f(m,i)の計算の都合のために、iの順序は次式のように並べ替えることができる。並べ替えが必要な理由は後述する。
[1.3.1]全単射
始点画像と終点画像の間のマッチングを写像で表現する場合、その写像は両画像間で全単射条件を満たすべきである。両画像に概念上の優劣はなく、互いの画素が全射かつ単射で接続されるべきだからである。しかしながら通常の場合とは異なり、ここで構築すべき写像は全単射のデジタル版である。前提技術では、画素は格子点によって特定される。
始点画像と終点画像の間のマッチングを写像で表現する場合、その写像は両画像間で全単射条件を満たすべきである。両画像に概念上の優劣はなく、互いの画素が全射かつ単射で接続されるべきだからである。しかしながら通常の場合とは異なり、ここで構築すべき写像は全単射のデジタル版である。前提技術では、画素は格子点によって特定される。
始点副画像(始点画像について設けられた副画像)から終点副画像(終点画像について設けられた副画像)への写像は、f(m,s):I/2n−m×I/2n−m→I/2n−m×I/2n−m(s=0,1,…)によって表される。ここで、f(m,s)(i,j)=(k,l)は、始点画像のp(m,s) (i,j)が終点画像のq(m,s) (k,l)に写像されることを意味する。簡単のために、f(i,j)=(k,l)が成り立つとき画素q(k,l)をqf(i,j)と記述する。
前提技術で扱う画素(格子点)のようにデータが離散的な場合、全単射の定義は重要である。ここでは以下のように定義する(i,i’,j,j’,k,lは全て整数とする)。まず始めに、始点画像の平面においてRによって表記される各正方形領域、
を考える(i=0,…,2m−1、j=0,…,2m−1)。ここでRの各辺(エッジ)の方向を以下のように定める。
を考える(i=0,…,2m−1、j=0,…,2m−1)。ここでRの各辺(エッジ)の方向を以下のように定める。
1.四辺形f(m,s)(R)のエッジは互いに交差しない。
2.f(m,s)(R)のエッジの方向はRのそれらに等しい(図2の場合、時計回り)。
3.緩和条件として収縮写像(リトラクション:retractions)を許す。
2.f(m,s)(R)のエッジの方向はRのそれらに等しい(図2の場合、時計回り)。
3.緩和条件として収縮写像(リトラクション:retractions)を許す。
何らかの緩和条件を設けないかぎり、全単射条件を完全に満たす写像は単位写像しかないためである。ここではf(m,s)(R)のひとつのエッジの長さが0、すなわちf(m,s)(R)は三角形になってもよい。しかし、面積が0となるような図形、すなわち1点または1本の線分になってはならない。図2(R)がもとの四辺形の場合、図2(A)と図2(D)は全単射条件を満たすが、図2(B)、図2(C)、図2(E)は満たさない。
実際のインプリメンテーションでは、写像が全射であることを容易に保証すべく、さらに以下の条件を課してもよい。つまり始点画像の境界上の各画素は、終点画像において同じ位置を占める画素に写影されるというものである。すなわち、f(i,j)=(i,j)(ただしi=0,i=2m−1,j=0,j=2m−1の4本の線上)である。この条件を以下「付加条件」とも呼ぶ。
[1.3.2]写像のエネルギー
[1.3.2.1]画素の輝度に関するコスト
写像fのエネルギーを定義する。エネルギーが最小になる写像を探すことが目的である。エネルギーは主に、始点画像の画素の輝度とそれに対応する終点画像の画素の輝度の差で決まる。すなわち、写像f(m,s)の点(i,j)におけるエネルギーC(m,s) (i,j)は次式によって定まる。
[1.3.2.1]画素の輝度に関するコスト
写像fのエネルギーを定義する。エネルギーが最小になる写像を探すことが目的である。エネルギーは主に、始点画像の画素の輝度とそれに対応する終点画像の画素の輝度の差で決まる。すなわち、写像f(m,s)の点(i,j)におけるエネルギーC(m,s) (i,j)は次式によって定まる。
ここで、V(p(m,s) (i,j))及びV(q(m,s) f(i,j))はそれぞれ画素p(m,s) (i,j)及びq(m,s) f(i,j)の輝度である。fのトータルのエネルギーC(m,s)は、マッチングを評価するひとつの評価式であり、つぎに示すC(m,s) (i,j)の合計で定義できる。
[1.3.2.2]滑らかな写像のための画素の位置に関するコスト
滑らかな写像を得るために、写像に関する別のエネルギーDfを導入する。このエネルギーは画素の輝度とは関係なく、p(m,s) (i,j)およびq(m,s) f(i,j)の位置によって決まる(i=0,…,2m−1,j=0,…,2m−1)。点(i,j)における写像f(m,s)のエネルギーD(m,s) (i,j)は次式で定義される。
ただし、係数パラメータηは0以上の実数であり、また、
とする。ここで、
であり、i’<0およびj’<0に対してf(i’,j’)は0と決める。E0は(i,j)及びf(i,j)の距離で決まる。E0は画素があまりにも離れた画素へ写影されることを防ぐ。ただしE0は、後に別のエネルギー関数で置き換える。E1は写像の滑らかさを保証する。E1は、p(i,j)の変位とその隣接点の変位の間の隔たりを表す。以上の考察をもとに、マッチングを評価する別の評価式であるエネルギーDfは次式で定まる。
[1.3.2.3]写像の総エネルギー
写像の総エネルギー、すなわち複数の評価式の統合に係る総合評価式はλC(m,s) f+D(m,s) fで定義される。ここで係数パラメータλは0以上の実数である。目的は総合評価式が極値をとる状態を検出すること、すなわち次式で示す最小エネルギーを与える写像を見いだすことである。
λ=0及びη=0の場合、写像は単位写像になることに注意すべきである(すなわち、全てのi=0,…,2m−1及びj=0,…,2m−1に対してf(m,s)(i,j)=(i,j)となる)。後述のごとく、本前提技術では最初にλ=0及びη=0の場合を評価するため、写像を単位写像から徐々に変形していくことができる。仮に総合評価式のλの位置を変えてC(m,s) f+λD(m,s) fと定義したとすれば、λ=0及びη=0の場合に総合評価式がC(m,s) fだけになり、本来何等関連のない画素どうしが単に輝度が近いというだけで対応づけられ、写像が無意味なものになる。そうした無意味な写像をもとに写像を変形していってもまったく意味をなさない。このため、単位写像が評価の開始時点で最良の写像として選択されるよう係数パラメータの与えかたが配慮されている。
オプティカルフローもこの前提技術同様、画素の輝度の差と滑らかさを考慮する。しかし、オプティカルフローは画像の変換に用いることはできない。オブジェクトの局所的な動きしか考慮しないためである。前提技術に係る特異点フィルタを用いることによって大域的な対応関係を検出することができる。
[1.3.3]多重解像度の導入による写像の決定
最小エネルギーを与え、全単射条件を満足する写像fminを多重解像度の階層を用いて求める。各解像度レベルにおいて始点副画像及び終点副画像間の写像を計算する。解像度の階層の最上位(最も粗いレベル)からスタートし、各解像度レベルの写像を、他のレベルの写像を考慮に入れながら決定する。各レベルにおける写像の候補の数は、より高い、つまりより粗いレベルの写像を用いることによって制限される。より具体的には、あるレベルにおける写像の決定に際し、それよりひとつ粗いレベルにおいて求められた写像が一種の拘束条件として課される。
最小エネルギーを与え、全単射条件を満足する写像fminを多重解像度の階層を用いて求める。各解像度レベルにおいて始点副画像及び終点副画像間の写像を計算する。解像度の階層の最上位(最も粗いレベル)からスタートし、各解像度レベルの写像を、他のレベルの写像を考慮に入れながら決定する。各レベルにおける写像の候補の数は、より高い、つまりより粗いレベルの写像を用いることによって制限される。より具体的には、あるレベルにおける写像の決定に際し、それよりひとつ粗いレベルにおいて求められた写像が一種の拘束条件として課される。
まず、
が成り立つとき、p(m−1,s) (i’,j’)、q(m−1,s) (i’,j’)をそれぞれp(m,s) (i,j)、q(m,s) (i,j)のparentと呼ぶことにする。[x]はxを越えない最大整数である。またp(m,s) (i,j)、q(m,s) (i,j)をそれぞれp(m−1,s) (i’,j’)、q(m−1,s) (i’,j’)のchildと呼ぶ。関数parent(i,j)は次式で定義される。
が成り立つとき、p(m−1,s) (i’,j’)、q(m−1,s) (i’,j’)をそれぞれp(m,s) (i,j)、q(m,s) (i,j)のparentと呼ぶことにする。[x]はxを越えない最大整数である。またp(m,s) (i,j)、q(m,s) (i,j)をそれぞれp(m−1,s) (i’,j’)、q(m−1,s) (i’,j’)のchildと呼ぶ。関数parent(i,j)は次式で定義される。
p(m,s) (i,j)とq(m,s) (k,l)の間の写像f(m,s)は、エネルギー計算を行って最小になったものを見つけることで決定される。f(m,s)(i,j)=(k,l)の値はf(m−1,s)(m=1,2,…,n)を用いることによって、以下のように決定される。まず、q(m,s) (k,l)は次の四辺形の内部になければならないという条件を課し、全単射条件を満たす写像のうち現実性の高いものを絞り込む。
図3は以上の手順を示している。同図において、始点画像のA,B,C,Dの画素は、第m−1レベルにおいてそれぞれ終点画像のA’,B’,C’,D’へ写影される。画素p(m,s) (i,j)は、相続四辺形A’B’C’D’の内部に存在する画素q(m,s) f(m)(i,j)へ写影されなければならない。以上の配慮により、第m−1レベルの写像から第mレベルの写像への橋渡しがなされる。
先に定義したエネルギーE0は、第mレベルにおける副写像f(m,0)を計算するために、次式に置き換える。
こうしてすべての副写像のエネルギーを低い値に保つ写像が得られる。式20により、異なる特異点に対応する副写像が、副写像どうしの類似度が高くなるように同一レベル内で関連づけられる。式19は、f(m,s)(i,j)と、第m−1レベルの画素の一部と考えた場合の(i,j)が射影されるべき点の位置との距離を示している。
仮に、相続四辺形A’B’C’D’の内部に全単射条件を満たす画素が存在しない場合は以下の措置をとる。まず、A’B’C’D’の境界線からの距離がL(始めはL=1)である画素を調べる。それらのうち、エネルギーが最小になるものが全単射条件を満たせば、これをf(m,s)(i,j)の値として選択する。そのような点が発見されるか、またはLがその上限のL(m)maxに到達するまで、Lを大きくしていく。L(m)maxは各レベルmに対して固定である。そのような点が全く発見されない場合、全単射の第3の条件を一時的に無視して変換先の四辺形の面積がゼロになるような写像も認め、f(m,s)(i,j)を決定する。それでも条件を満たす点が見つからない場合、つぎに全単射の第1及び第2条件を外す。
多重解像度を用いる近似法は、写像が画像の細部に影響されることを回避しつつ、画像間の大域的な対応関係を決定するために必須である。多重解像度による近似法を用いなければ、距離の遠い画素間の対応関係を見いだすことは不可能である。その場合、画像のサイズはきわめて小さなものに限定しなければならず、変化の小さな画像しか扱うことができない。さらに、通常写像に滑らかさを要求するため、そうした画素間の対応関係を見つけにくくしている。距離のある画素から画素への写像のエネルギーは高いためである。多重解像度を用いた近似法によれば、そうした画素間の適切な対応関係を見いだすことができる。それらの距離は、解像度の階層の上位レベル(粗いレベル)において小さいためである。
[1.4]最適なパラメータ値の自動決定
既存のマッチング技術の主な欠点のひとつに、パラメータ調整の困難さがある。大抵の場合、パラメータの調整は人手作業によって行われ、最適な値を選択することはきわめて難しい。前提技術に係る方法によれば、最適なパラメータ値を完全に自動決定することができる。
既存のマッチング技術の主な欠点のひとつに、パラメータ調整の困難さがある。大抵の場合、パラメータの調整は人手作業によって行われ、最適な値を選択することはきわめて難しい。前提技術に係る方法によれば、最適なパラメータ値を完全に自動決定することができる。
前提技術に係るシステムはふたつのパラメータ、λ及びηを含む。端的にいえば、λは画素の輝度の差の重みであり、ηは写像の剛性を示している。これらのパラメータの値は初期値が0であり、まずη=0に固定してλを0から徐々に増加させる。λの値を大きくしながら、しかも総合評価式(式14)の値を最小にする場合、各副写像に関するC(m,s) fの値は一般に小さくなっていく。このことは基本的にふたつの画像がよりマッチしなければならないことを意味する。しかし、λが最適値を超えると以下の現象が発生する。
1.本来対応すべきではない画素どうしが、単に輝度が近いというだけで誤って対応づけられる。
2.その結果、画素どうしの対応関係がおかしくなり、写像がくずれはじめる。
3.その結果、式14においてD(m,s) fが急激に増加しようとする。
4.その結果、式14の値が急激に増加しようとするため、D(m,s) fの急激な増加を抑制するようf(m,s)が変化し、その結果C(m,s) fが増加する。
したがって、λを増加させながら式14が最小値をとるという状態を維持しつつC(m,s) fが減少から増加に転じる閾値を検出し、そのλをη=0における最適値とする。つぎにηを少しずつ増やしてC(m,s) fの挙動を検査し、後述の方法でηを自動決定する。そのηに対応してλも決まる。
2.その結果、画素どうしの対応関係がおかしくなり、写像がくずれはじめる。
3.その結果、式14においてD(m,s) fが急激に増加しようとする。
4.その結果、式14の値が急激に増加しようとするため、D(m,s) fの急激な増加を抑制するようf(m,s)が変化し、その結果C(m,s) fが増加する。
したがって、λを増加させながら式14が最小値をとるという状態を維持しつつC(m,s) fが減少から増加に転じる閾値を検出し、そのλをη=0における最適値とする。つぎにηを少しずつ増やしてC(m,s) fの挙動を検査し、後述の方法でηを自動決定する。そのηに対応してλも決まる。
この方法は、人間の視覚システムの焦点機構の動作に似ている。人間の視覚システムでは、一方の目を動かしながら左右両目の画像のマッチングがとられる。オブジェクトがはっきりと認識できるとき、その目が固定される。
[1.4.1]λの動的決定
λは0から所定の刻み幅で増加されていき、λの値が変わる度に副写像が評価される。式14のごとく、総エネルギーはλC(m,s) f+D(m,s) fによって定義される。式9のD(m,s) fは滑らかさを表すもので、理論的には単位写像の場合に最小になり、写像が歪むほどE0もE1も増加していく。E1は整数であるから、D(m,s) fの最小刻み幅は1である。このため、現在のλC(m,s) (i,j)の変化(減少量)が1以上でなければ、写像を変化させることによって総エネルギーを減らすことはできない。なぜなら、写像の変化に伴ってD(m,s) fは1以上増加するため、λC(m,s) (i,j)が1以上減少しない限り総エネルギーは減らないためである。
λは0から所定の刻み幅で増加されていき、λの値が変わる度に副写像が評価される。式14のごとく、総エネルギーはλC(m,s) f+D(m,s) fによって定義される。式9のD(m,s) fは滑らかさを表すもので、理論的には単位写像の場合に最小になり、写像が歪むほどE0もE1も増加していく。E1は整数であるから、D(m,s) fの最小刻み幅は1である。このため、現在のλC(m,s) (i,j)の変化(減少量)が1以上でなければ、写像を変化させることによって総エネルギーを減らすことはできない。なぜなら、写像の変化に伴ってD(m,s) fは1以上増加するため、λC(m,s) (i,j)が1以上減少しない限り総エネルギーは減らないためである。
この条件のもと、λの増加に伴い、正常な場合にC(m,s) (i,j)が減少することを示す。C(m,s) (i,j)のヒストグラムをh(l)と記述する。h(l)はエネルギーC(m,s) (i,j)がl2である画素の数である。λl2≧1が成り立つために、例えばl2=1/λの場合を考える。λがλ1からλ2まで微小量変化するとき、
で示されるA個の画素が、
のエネルギーを持つより安定的な状態に変化する。ここでは仮に、これらの画素のエネルギーがすべてゼロになると近似している。この式はC(m,s) fの値が、
だけ変化することを示し、その結果、
が成立する。h(l)>0であるから、通常C(m,s) fは減少する。しかし、λが最適値を越えようとするとき、上述の現象、つまりC(m,s) fの増加が発生する。この現象を検出することにより、λの最適値を決定する。
で示されるA個の画素が、
のエネルギーを持つより安定的な状態に変化する。ここでは仮に、これらの画素のエネルギーがすべてゼロになると近似している。この式はC(m,s) fの値が、
だけ変化することを示し、その結果、
が成立する。h(l)>0であるから、通常C(m,s) fは減少する。しかし、λが最適値を越えようとするとき、上述の現象、つまりC(m,s) fの増加が発生する。この現象を検出することにより、λの最適値を決定する。
λの最適値を検出する際、さらに安全を見て、全単射条件を破る画素の数を検査してもよい。ここで各画素の写像を決定する際、全単射条件を破る確率をp0と仮定する。この場合、
が成立しているため、全単射条件を破る画素の数は次式の率で増加する。
が成立しているため、全単射条件を破る画素の数は次式の率で増加する。
したがって、
は定数である。仮にh(l)=Hlkを仮定するとき、例えば、
は定数になる。しかしλが最適値を越えると、上の値は急速に増加する。この現象を検出し、B0λ3/2+k/2/2mの値が異常値B0thresを越えるかどうかを検査し、λの最適値を決定することができる。同様に、B1λ3/2+k/2/2mの値が異常値B1thresを越えるかどうかを検査することにより、全単射の第3の条件を破る画素の増加率B1を確認する。ファクター2mを導入する理由は後述する。このシステムはこれら2つの閾値に敏感ではない。これらの閾値は、エネルギーC(m,s) fの観察では検出し損なった写像の過度の歪みを検出するために用いることができる。
なお実験では、副写像f(m,s)を計算する際、もしλが0.1を越えたらf(m,s)の計算は止めてf(m,s+1)の計算に移行した。λ>0.1のとき、画素の輝度255レベル中のわずか「3」の違いが副写像の計算に影響したためであり、λ>0.1のとき正しい結果を得ることは困難だったためである。
[1.4.2]ヒストグラムh(l)
C(m,s) fの検査はヒストグラムh(l)に依存しない。全単射及びその第3の条件の検査の際、h(l)に影響を受けうる。実際に(λ,C(m,s) f)をプロットすると、kは通常1付近にある。実験ではk=1を用い、B0λ2とB1λ2を検査した。仮にkの本当の値が1未満であれば、B0λ2とB1λ2は定数にならず、ファクターλ(1−k)/2にしたがって徐々に増加する。h(l)が定数であれば、例えばファクターはλ1/2である。しかし、こうした差は閾値B0thresを正しく設定することによって吸収することができる。
C(m,s) fの検査はヒストグラムh(l)に依存しない。全単射及びその第3の条件の検査の際、h(l)に影響を受けうる。実際に(λ,C(m,s) f)をプロットすると、kは通常1付近にある。実験ではk=1を用い、B0λ2とB1λ2を検査した。仮にkの本当の値が1未満であれば、B0λ2とB1λ2は定数にならず、ファクターλ(1−k)/2にしたがって徐々に増加する。h(l)が定数であれば、例えばファクターはλ1/2である。しかし、こうした差は閾値B0thresを正しく設定することによって吸収することができる。
ここで次式のごとく始点画像を中心が(x0,y0)、半径rの円形のオブジェクトであると仮定する。
一方、終点画像は、次式のごとく中心(x1,y1)、半径がrのオブジェクトであるとする。
ここでc(x)はc(x)=xkの形であるとする。中心(x0,y0)及び(x1,y1)が十分遠い場合、ヒストグラムh(l)は次式の形となる。
k=1のとき、画像は背景に埋め込まれた鮮明な境界線を持つオブジェクトを示す。このオブジェクトは中心が暗く、周囲にいくにしたがって明るくなる。k=−1のとき、画像は曖昧な境界線を持つオブジェクトを表す。このオブジェクトは中心が最も明るく、周囲にいくにしたがって暗くなる。一般のオブジェクトはこれらふたつのタイプのオブジェクトの中間にあると考えてもさして一般性を失わない。したがって、kは−1≦k≦1として大抵の場合をカバーでき、式27が一般に減少関数であることが保障される。
一方、終点画像は、次式のごとく中心(x1,y1)、半径がrのオブジェクトであるとする。
ここでc(x)はc(x)=xkの形であるとする。中心(x0,y0)及び(x1,y1)が十分遠い場合、ヒストグラムh(l)は次式の形となる。
k=1のとき、画像は背景に埋め込まれた鮮明な境界線を持つオブジェクトを示す。このオブジェクトは中心が暗く、周囲にいくにしたがって明るくなる。k=−1のとき、画像は曖昧な境界線を持つオブジェクトを表す。このオブジェクトは中心が最も明るく、周囲にいくにしたがって暗くなる。一般のオブジェクトはこれらふたつのタイプのオブジェクトの中間にあると考えてもさして一般性を失わない。したがって、kは−1≦k≦1として大抵の場合をカバーでき、式27が一般に減少関数であることが保障される。
なお、式34からわかるように、rは画像の解像度に影響されること、すなわちrは2mに比例することに注意すべきである。このために[1.4.1]においてファクター2mを導入した。
[1.4.3]ηの動的決定
パラメータηも同様の方法で自動決定できる。はじめにη=0とし、最も細かい解像度における最終的な写像f(n)及びエネルギーC(n) fを計算する。つづいて、ηをある値Δηだけ増加させ、再び最も細かい解像度における最終写像f(n)及びエネルギーC(n) fを計算し直す。この過程を最適値が求まるまで続ける。ηは写像の剛性を示す。次式の重みだからである。
パラメータηも同様の方法で自動決定できる。はじめにη=0とし、最も細かい解像度における最終的な写像f(n)及びエネルギーC(n) fを計算する。つづいて、ηをある値Δηだけ増加させ、再び最も細かい解像度における最終写像f(n)及びエネルギーC(n) fを計算し直す。この過程を最適値が求まるまで続ける。ηは写像の剛性を示す。次式の重みだからである。
ηが0のとき、D(n) fは直前の副写像と無関係に決定され、現在の副写像は弾性的に変形され、過度に歪むことになる。一方、ηが非常に大きな値のとき、D(n) fは直前の副写像によってほぼ完全に決まる。このとき副写像は非常に剛性が高く、画素は同じ場所に射影される。その結果、写像は単位写像になる。ηの値が0から次第に増えるとき、後述のごとくC(n) fは徐々に減少する。しかしηの値が最適値を越えると、図4に示すとおり、エネルギーは増加し始める。同図のX軸はη、Y軸はCfである。
この方法でC(n) fを最小にする最適なηの値を得ることができる。しかし、λの場合に比べていろいろな要素が計算に影響する結果、C(n) fは小さく揺らぎながら変化する。λの場合は、入力が微小量変化するたびに副写像を1回計算しなおすだけだが、ηの場合はすべての副写像が計算しなおされるためである。このため、得られたC(n) fの値が最小であるかどうかを即座に判断することはできない。最小値の候補が見つかれば、さらに細かい区間を設定することによって真の最小値を探す必要がある。
[1.5]スーパーサンプリング
画素間の対応関係を決定する際、自由度を増やすために、f(m,s)の値域をR×Rに拡張することができる(Rは実数の集合)。この場合、終点画像の画素の輝度が補間され、非整数点、
における輝度を持つf(m,s)が提供される。つまりスーパーサンプリングが行われる。実験では、f(m,s)は整数及び半整数値をとることが許され、
は、
によって与えられた。
画素間の対応関係を決定する際、自由度を増やすために、f(m,s)の値域をR×Rに拡張することができる(Rは実数の集合)。この場合、終点画像の画素の輝度が補間され、非整数点、
における輝度を持つf(m,s)が提供される。つまりスーパーサンプリングが行われる。実験では、f(m,s)は整数及び半整数値をとることが許され、
は、
によって与えられた。
[1.6]各画像の画素の輝度の正規化
始点画像と終点画像がきわめて異なるオブジェクトを含んでいるとき、写像の計算に元の画素の輝度がそのままでは利用しにくい。輝度の差が大きいために輝度に関するエネルギーC(m,s) fが大きくなりすぎ、正しい評価がしづらいためである。
始点画像と終点画像がきわめて異なるオブジェクトを含んでいるとき、写像の計算に元の画素の輝度がそのままでは利用しにくい。輝度の差が大きいために輝度に関するエネルギーC(m,s) fが大きくなりすぎ、正しい評価がしづらいためである。
例えば、人の顔と猫の顔のマッチングをとる場合を考える。猫の顔は毛で覆われており、非常に明るい画素と非常に暗い画素が混じっている。この場合、ふたつの顔の間の副写像を計算するために、まず副画像を正規化する。すなわち、最も暗い画素の輝度を0、最も明るいそれを255に設定し、他の画素の輝度は線形補間によって求めておく。
[1.7]インプリメンテーション
始点画像のスキャンにしたがって計算がリニアに進行する帰納的な方法を用いる。始めに、1番上の左端の画素(i,j)=(0,0)についてf(m,s)の値を決定する。次にiを1ずつ増やしながら各f(m,s)(i,j)の値を決定する。iの値が画像の幅に到達したとき、jの値を1増やし、iを0に戻す。以降、始点画像のスキャンに伴いf(m,s)(i,j)を決定していく。すべての点について画素の対応が決まれば、ひとつの写像f(m,s)が決まる。
始点画像のスキャンにしたがって計算がリニアに進行する帰納的な方法を用いる。始めに、1番上の左端の画素(i,j)=(0,0)についてf(m,s)の値を決定する。次にiを1ずつ増やしながら各f(m,s)(i,j)の値を決定する。iの値が画像の幅に到達したとき、jの値を1増やし、iを0に戻す。以降、始点画像のスキャンに伴いf(m,s)(i,j)を決定していく。すべての点について画素の対応が決まれば、ひとつの写像f(m,s)が決まる。
あるp(i,j)について対応点qf(i,j)が決まれば、つぎにp(i,j+1)の対応点qf(i,j+1)が決められる。この際、qf(i,j+1)の位置は全単射条件を満たすために、qf(i,j)の位置によって制限される。したがって、先に対応点が決まる点ほどこのシステムでは優先度が高くなる。つねに(0,0)が最も優先される状態がつづくと、求められる最終の写像に余計な偏向が加わる。本前提技術ではこの状態を回避するために、f(m,s)を以下の方法で決めていく。
まず(s mod 4)が0の場合、(0,0)を開始点としi及びjを徐々に増やしながら決めていく。(s mod 4)が1の場合、最上行の右端点を開始点とし、iを減少、jを増加させながら決めていく。(s mod 4)が2のとき、最下行の右端点を開始点とし、i及びjを減少させながら決めていく。(s mod 4)が3の場合、最下行の左端点を開始点とし、iを増加、jを減少させながら決めていく。解像度が最も細かい第nレベルには副写像という概念、すなわちパラメータsが存在しないため、仮にs=0及びs=2であるとしてふたつの方向を連続的に計算した。
実際のインプリメンテーションでは、全単射条件を破る候補に対してペナルティを与えることにより、候補(k,l)の中からできる限り全単射条件を満たすf(m,s)(i,j)(m=0,…,n)の値を選んだ。第3の条件を破る候補のエネルギーD(k、l)にはφを掛け、一方、第1または第2の条件を破る候補にはψを掛ける。今回はφ=2、ψ=100000を用いた。
前述の全単射条件のチェックのために、実際の手続として(k,l)=f(m,s)(i,j)を決定する際に以下のテストを行った。すなわちf(m,s)(i,j)の相続四辺形に含まれる各格子点(k,l)に対し、次式の外積のz成分が0以上になるかどうかを確かめる。
ただしここで、
である(ここでベクトルは三次元ベクトルとし、z軸は直交右手座標系において定義される)。もしWが負であれば、その候補についてはD(m,s) (k,l)にψを掛けることによってペナルティを与え、できるかぎり選択しないようにする。
図5(a)、図5(b)はこの条件を検査する理由を示している。図5(a)はペナルティのない候補、図5(b)はペナルティがある候補をそれぞれ表す。隣接画素(i,j+1)に対する写像f(m,s)(i,j+1)を決定する際、Wのz成分が負であれば始点画像平面上において全単射条件を満足する画素は存在しない。なぜなら、q(m,s) (k,l)は隣接する四辺形の境界線を越えるためである。
[1.7.1]副写像の順序
インプリメンテーションでは、解像度レベルが偶数のときにはσ(0)=0、σ(1)=1、σ(2)=2、σ(3)=3、σ(4)=0を用い、奇数のときはσ(0)=3、σ(1)=2、σ(2)=1、σ(3)=0、σ(4)=3を用いた。このことで、副写像を適度にシャッフルした。なお、本来副写像は4種類であり、sは0〜3のいずれかである。しかし、実際にはs=4に相当する処理を行った。その理由は後述する。
インプリメンテーションでは、解像度レベルが偶数のときにはσ(0)=0、σ(1)=1、σ(2)=2、σ(3)=3、σ(4)=0を用い、奇数のときはσ(0)=3、σ(1)=2、σ(2)=1、σ(3)=0、σ(4)=3を用いた。このことで、副写像を適度にシャッフルした。なお、本来副写像は4種類であり、sは0〜3のいずれかである。しかし、実際にはs=4に相当する処理を行った。その理由は後述する。
[1.8]補間計算
始点画像と終点画像の間の写像が決定された後、対応し合う画素の輝度が補間される。実験では、トライリニア補間を用いた。始点画像平面における正方形p(i,j)p(i+1,j)p(i,j+1)p(i+1,j+1)が終点画像平面上の四辺形qf(i,j)qf(i+1,j)qf(i,j+1)qf(i+1,j+1)に射影されると仮定する。簡単のため、画像間の距離を1とする。始点画像平面からの距離がt(0≦t≦1)である中間画像の画素r(x,y,t)(0≦x≦N−1,0≦y≦M−1)は以下の要領で求められる。まず画素r(x,y,t)の位置(ただしx,y,t∈R)を次式で求める。
始点画像と終点画像の間の写像が決定された後、対応し合う画素の輝度が補間される。実験では、トライリニア補間を用いた。始点画像平面における正方形p(i,j)p(i+1,j)p(i,j+1)p(i+1,j+1)が終点画像平面上の四辺形qf(i,j)qf(i+1,j)qf(i,j+1)qf(i+1,j+1)に射影されると仮定する。簡単のため、画像間の距離を1とする。始点画像平面からの距離がt(0≦t≦1)である中間画像の画素r(x,y,t)(0≦x≦N−1,0≦y≦M−1)は以下の要領で求められる。まず画素r(x,y,t)の位置(ただしx,y,t∈R)を次式で求める。
[1.9]拘束条件を課したときの写像
いままでは拘束条件がいっさい存在しない場合の写像の決定を述べた。しかし、始点画像と終点画像の特定の画素間に予め対応関係が規定されているとき、これを拘束条件とした上で写像を決定することができる。
いままでは拘束条件がいっさい存在しない場合の写像の決定を述べた。しかし、始点画像と終点画像の特定の画素間に予め対応関係が規定されているとき、これを拘束条件とした上で写像を決定することができる。
基本的な考えは、まず始点画像の特定の画素を終点画像の特定の画素に移す大まかな写像によって始点画像を大まかに変形し、しかる後、写像fを正確に計算する。
まず始めに、始点画像の特定の画素を終点画像の特定の画素に射影し、始点画像の他の画素を適当な位置に射影する大まかな写像を決める。すなわち、特定の画素に近い画素は、その特定の画素が射影される場所の近くに射影されるような写像である。ここで第mレベルの大まかな写像をF(m)と記述する。
大まかな写像Fは以下の要領で決める。まず、いくつかの画素について写像を特定する。始点画像についてns個の画素、
を特定するとき、以下の値を決める。
始点画像の他の画素の変位量は、p(ih,jh)(h=0,…,ns−1)の変位に重み付けをして求められる平均である。すなわち画素p(i,j)は、終点画像の以下の画素に射影される。
を特定するとき、以下の値を決める。
始点画像の他の画素の変位量は、p(ih,jh)(h=0,…,ns−1)の変位に重み付けをして求められる平均である。すなわち画素p(i,j)は、終点画像の以下の画素に射影される。
つづいて、F(m)に近い候補写像fがより少ないエネルギーを持つように、その写像fのエネルギーD(m,s) (i,j)を変更する。正確には、D(m,s) (i,j)は、
である。ただし、
であり、κ,ρ≧0とする。最後に、前述の写像の自動計算プロセスにより、fを完全に決定する。
である。ただし、
であり、κ,ρ≧0とする。最後に、前述の写像の自動計算プロセスにより、fを完全に決定する。
ここで、f(m,s)(i,j)がF(m)(i,j)に十分近いとき、つまりそれらの距離が、
以内であるとき、E2 (m,s) (i,j)が0になることに注意すべきである。そのように定義した理由は、各f(m,s)(i,j)がF(m)(i,j)に十分近い限り、終点画像において適切な位置に落ち着くよう、その値を自動的に決めたいためである。この理由により、正確な対応関係を詳細に特定する必要がなく、始点画像は終点画像にマッチするように自動的にマッピングされる。
以内であるとき、E2 (m,s) (i,j)が0になることに注意すべきである。そのように定義した理由は、各f(m,s)(i,j)がF(m)(i,j)に十分近い限り、終点画像において適切な位置に落ち着くよう、その値を自動的に決めたいためである。この理由により、正確な対応関係を詳細に特定する必要がなく、始点画像は終点画像にマッチするように自動的にマッピングされる。
[2]具体的な処理手順
[1]の各要素技術による処理の流れを説明する。
図6は前提技術の全体手順を示すフローチャートである。同図のごとく、まず多重解像度特異点フィルタを用いた処理を行い(S1)、つづいて始点画像と終点画像のマッチングをとる(S2)。ただし、S2は必須ではなく、S1で得られた画像の特徴をもとに画像認識などの処理を行ってもよい。
[1]の各要素技術による処理の流れを説明する。
図6は前提技術の全体手順を示すフローチャートである。同図のごとく、まず多重解像度特異点フィルタを用いた処理を行い(S1)、つづいて始点画像と終点画像のマッチングをとる(S2)。ただし、S2は必須ではなく、S1で得られた画像の特徴をもとに画像認識などの処理を行ってもよい。
図7は図6のS1の詳細を示すフローチャートである。ここではS2で始点画像と終点画像のマッチングをとることを前提としている。そのため、まず特異点フィルタによって始点画像の階層化を行い(S10)、一連の始点階層画像を得る。つづいて同様の方法で終点画像の階層化を行い(S11)、一連の終点階層画像を得る。ただし、S10とS11の順序は任意であるし、始点階層画像と終点階層画像を並行して生成していくこともできる。
図8は図7のS10の詳細を示すフローチャートである。もとの始点画像のサイズは2n×2nとする。始点階層画像は解像度が細かいほうから順に作られるため、処理の対象となる解像度レベルを示すパラメータmをnにセットする(S100)。つづいて第mレベルの画像p(m,0)、p(m,1)、p(m,2)、p(m,3)から特異点フィルタを用いて特異点を検出し(S101)、それぞれ第m−1レベルの画像p(m−1,0)、p(m−1,1)、p(m−1,2)、p(m−1,3)を生成する(S102)。ここではm=nであるため、p(m,0)=p(m,1)=p(m,2)=p(m,3)=p(n)であり、ひとつの始点画像から4種類の副画像が生成される。
図9は第mレベルの画像の一部と、第m−1レベルの画像の一部の対応関係を示している。同図の数値は各画素の輝度を示す。同図のp(m,s)はp(m,0)〜p(m,3)の4つの画像を象徴するもので、p(m−1,0)を生成する場合には、p(m,s)はp(m,0)であると考える。[1.2]で示した規則により、p(m−1,0)は例えば同図で輝度を記入したブロックについて、そこに含まれる4画素のうち「3」、p(m−1,1)は「8」、p(m−1,2)は「6」、p(m−1,3)を「10」をそれぞれ取得し、このブロックをそれぞれ取得したひとつの画素で置き換える。したがって、第m−1レベルの副画像のサイズは2m−1×2m−1になる。
つづいてmをデクリメントし(図8のS103)、mが負になっていないことを確認し(S104)、S101に戻ってつぎに解像度の粗い副画像を生成していく。この繰り返し処理の結果、m=0、すなわち第0レベルの副画像が生成された時点でS10が終了する。第0レベルの副画像のサイズは1×1である。
図10はS10によって生成された始点階層画像をn=3の場合について例示している。最初の始点画像のみが4つの系列に共通であり、以降特異点の種類に応じてそれぞれ独立に副画像が生成されていく。なお、図8の処理は図7のS11にも共通であり、同様の手順を経て終点階層画像も生成される。以上で図6のS1による処理が完了する。
前提技術では、図6のS2に進むためにマッチング評価の準備をする。図11はその手順を示している。同図のごとく、まず複数の評価式が設定される(S30)。[1.3.2.1]で導入した画素に関するエネルギーC(m,s) fと[1.3.2.2]で導入した写像の滑らかさに関するエネルギーD(m,s) fがそれである。つぎに、これらの評価式を統合して総合評価式を立てる(S31)。[1.3.2.3]で導入した総エネルギーλC(m,s) f+D(m,s) fがそれであり、[1.3.2.2]で導入したηを用いれば、
となる。ただし、総和はi、jについてそれぞれ0、1…、2m−1で計算する。以上でマッチング評価の準備が整う。
となる。ただし、総和はi、jについてそれぞれ0、1…、2m−1で計算する。以上でマッチング評価の準備が整う。
図12は図6のS2の詳細を示すフローチャートである。[1]で述べたごとく、始点階層画像と終点階層画像のマッチングは互いに同じ解像度レベルの画像どうしでとられる。画像間の大域的なマッチングを良好にとるために、解像度が粗いレベルから順にマッチングを計算する。特異点フィルタを用いて始点階層画像および終点階層画像を生成しているため、特異点の位置や輝度は解像度の粗いレベルでも明確に保存されており、大域的なマッチングの結果は従来に比べて非常に優れたものになる。
図12のごとく、まず係数パラメータηを0、レベルパラメータmを0に設定する(S20)。つづいて、始点階層画像中の第mレベルの4つの副画像と終点階層画像中の第mレベルの4つの副画像のそれぞれの間でマッチングを計算し、それぞれ全単射条件を満たし、かつエネルギーを最小にするような4種類の副写像f(m,s)(s=0,1,2,3)を求める(S21)。全単射条件は[1.3.3]で述べた相続四辺形を用いて検査される。この際、式17、18が示すように、第mレベルにおける副写像は第m−1レベルのそれらに拘束されるため、より解像度の粗いレベルにおけるマッチングが順次利用されていく。これは異なるレベル間の垂直的参照である。なお、いまm=0であってそれより粗いレベルはないが、この例外的な処理は図13で後述する。
一方、同一レベル内における水平的参照も行われる。[1.3.3]の式20のごとく、f(m,3)はf(m,2)に、f(m,2)はf(m,1)に、f(m,1)はf(m,0)に、それぞれ類似するように決める。その理由は、特異点の種類が違っても、それらがもともと同じ始点画像と終点画像に含まれている以上、副写像がまったく異なるという状況は不自然だからである。式20からわかるように、副写像どうしが近いほどエネルギーは小さくなり、マッチングが良好とみなされる。
なお、最初に決めるべきf(m,0)については同一のレベルで参照できる副写像がないため、式19に示すごとくひとつ粗いレベルを参照する。ただし、実験ではf(m,3)まで求まった後、これを拘束条件としてf(m,0)を一回更新するという手続をとった。これは式20にs=4を代入し、f(m,4)を新たなf(m,0)とすることに等しい。f(m,0)とf(m,3)の関連度が低くなり過ぎる傾向を回避するためであり、この措置によって実験結果がより良好になった。この措置に加え、実験では[1.7.1]に示す副写像のシャッフルも行った。これも本来特異点の種類ごとに決まる副写像どうしの関連度を密接に保つ趣旨である。また、処理の開始点に依存する偏向を回避するために、sの値にしたがって開始点の位置を変える点は[1.7]で述べたとおりである。
図13は第0レベルにおいて副写像を決定する様子を示す図である。第0レベルでは各副画像がただひとつの画素で構成されるため、4つの副写像f(0,s)はすべて自動的に単位写像に決まる。図14は第1レベルにおいて副写像を決定する様子を示す図である。第1レベルでは副画像がそれぞれ4画素で構成される。同図ではこれら4画素が実線で示されている。いま、p(1,s)の点xの対応点をq(1,s)の中で探すとき、以下の手順を踏む。
1.第1レベルの解像度で点xの左上点a、右上点b、左下点c、右下点dを求める。
2.点a〜dがひとつ粗いレベル、つまり第0レベルにおいて属する画素を探す。図14の場合、点a〜dはそれぞれ画素A〜Dに属する。ただし、画素A〜Cは本来存在しない仮想的な画素である。
3.第0レベルですでに求まっている画素A〜Dの対応点A’〜D’をq(1,s)の中にプロットする。画素A’〜C’は仮想的な画素であり、それぞれ画素A〜Cと同じ位置にあるものとする。
4.画素Aの中の点aの対応点a’が画素A’の中にあるとみなし、点a’をプロットする。このとき、点aが画素Aの中で占める位置(この場合、右下)と、点a’が画素A’の中で占める位置が同じであると仮定する。
5.4と同様の方法で対応点b’〜d’をプロットし、点a’〜d’で相続四辺形を作る。
6.相続四辺形の中でエネルギーが最小になるよう、点xの対応点x’を探す。対応点x’の候補として、例えば画素の中心が相続四辺形に含まれるものに限定してもよい。図14の場合、4つの画素がすべて候補になる。
2.点a〜dがひとつ粗いレベル、つまり第0レベルにおいて属する画素を探す。図14の場合、点a〜dはそれぞれ画素A〜Dに属する。ただし、画素A〜Cは本来存在しない仮想的な画素である。
3.第0レベルですでに求まっている画素A〜Dの対応点A’〜D’をq(1,s)の中にプロットする。画素A’〜C’は仮想的な画素であり、それぞれ画素A〜Cと同じ位置にあるものとする。
4.画素Aの中の点aの対応点a’が画素A’の中にあるとみなし、点a’をプロットする。このとき、点aが画素Aの中で占める位置(この場合、右下)と、点a’が画素A’の中で占める位置が同じであると仮定する。
5.4と同様の方法で対応点b’〜d’をプロットし、点a’〜d’で相続四辺形を作る。
6.相続四辺形の中でエネルギーが最小になるよう、点xの対応点x’を探す。対応点x’の候補として、例えば画素の中心が相続四辺形に含まれるものに限定してもよい。図14の場合、4つの画素がすべて候補になる。
以上がある点xの対応点の決定手順である。同様の処理を他のすべての点について行い、副写像を決める。第2レベル以上のレベルでは、次第に相続四辺形の形が崩れていくと考えられるため、図3に示すように画素A’〜D’の間隔が空いていく状況が発生する。
こうして、ある第mレベルの4つの副写像が決まれば、mをインクリメントし(図12のS22)、mがnを超えていないことを確かめて(S23)、S21に戻る。以下、S21に戻るたびに次第に細かい解像度のレベルの副写像を求め、最後にS21に戻ったときに第nレベルの写像f(n)を決める。この写像はη=0に関して定まったものであるから、f(n)(η=0)と書く。
つぎに異なるηに関する写像も求めるべく、ηをΔηだけシフトし、mをゼロクリアする(S24)。新たなηが所定の探索打切り値ηmaxを超えていないことを確認し(S25)、S21に戻り、今回のηに関して写像f(n)(η=Δη)を求める。この処理を繰り返し、S21でf(n)(η=iΔη)(i=0,1,…)を求めていく。ηがηmaxを超えたときS26に進み、後述の方法で最適なη=ηoptを決定し、f(n)(η=ηopt)を最終的に写像f(n)とする。
図15は図12のS21の詳細を示すフローチャートである。このフローチャートにより、ある定まったηについて、第mレベルにおける副写像が決まる。副写像を決める際、前提技術では副写像ごとに最適なλを独立して決める。
同図のごとく、まずsとλをゼロクリアする(S210)。つぎに、そのときのλについて(および暗にηについて)エネルギーを最小にする副写像f(m,s)を求め(S211)、これをf(m,s)(λ=0)と書く。異なるλに関する写像も求めるべく、λをΔλだけシフトし、新たなλが所定の探索打切り値λmaxを超えていないことを確認し(S213)、S211に戻り、以降の繰り返し処理でf(m,s)(λ=iΔλ)(i=0,1,…)を求める。λがλmaxを超えたときS214に進み、最適なλ=λoptを決定し、f(m,s)(λ=λopt)を最終的に写像f(m,s)とする(S214)。
つぎに、同一レベルにおける他の副写像を求めるべく、λをゼロクリアし、sをインクリメントする(S215)。sが4を超えていないことを確認し(S216)、S211に戻る。s=4になれば上述のごとくf(m,3)を利用してf(m,0)を更新し、そのレベルにおける副写像の決定を終了する。
図16は、あるmとsについてλを変えながら求められたf(m,s)(λ=iΔλ)(i=0,1,…)に対応するエネルギーC(m,s) fの挙動を示す図である。[1.4]で述べたとおり、λが増加すると通常C(m,s) fは減少する。しかし、λが最適値を超えるとC(m,s) fは増加に転じる。そこで本前提技術ではC(m,s) fが極小値をとるときのλをλoptと決める。同図のようにλ>λoptの範囲で再度C(m,s) fが小さくなっていっても、その時点ではすでに写像がくずれていて意味をなさないため、最初の極小点に注目すればよい。λoptは副写像ごとに独立して決めていき、最後にf(n)についてもひとつ定まる。
一方、図17は、ηを変えながら求められたf(n)(η=iΔη)(i=0,1,…)に対応するエネルギーC(n) fの挙動を示す図である。ここでもηが増加すると通常C(n) fは減少するが、ηが最適値を超えるとC(n) fは増加に転じる。そこでC(n) fが極小値をとるときのηをηoptと決める。図17は図4の横軸のゼロ付近を拡大した図と考えてよい。ηoptが決まればf(n)を最終決定することができる。
以上、本前提技術によれば種々のメリットが得られる。まずエッジを検出する必要がないため、エッジ検出タイプの従来技術の課題を解消できる。また、画像に含まれるオブジェクトに対する先験的な知識も不要であり、対応点の自動検出が実現する。特異点フィルタによれば、解像度の粗いレベルでも特異点の輝度や位置を維持することができ、オブジェクト認識、特徴抽出、画像マッチングに極めて有利である。その結果、人手作業を大幅に軽減する画像処理システムの構築が可能となる。
なお、本前提技術について次のような変形技術も考えられる。
(1)前提技術では始点階層画像と終点階層画像の間でマッチングをとる際にパラメータの自動決定を行ったが、この方法は階層画像間ではなく、通常の2枚の画像間のマッチングをとる場合全般に利用できる。
(1)前提技術では始点階層画像と終点階層画像の間でマッチングをとる際にパラメータの自動決定を行ったが、この方法は階層画像間ではなく、通常の2枚の画像間のマッチングをとる場合全般に利用できる。
たとえば2枚の画像間で、画素の輝度の差に関するエネルギーE0と画素の位置的なずれに関するエネルギーE1のふたつを評価式とし、これらの線形和Etot=αE0+E1を総合評価式とする。この総合評価式の極値付近に注目してαを自動決定する。つまり、いろいろなαについてEtotが最小になるような写像を求める。それらの写像のうち、αに関してE1が極小値をとるときのαを最適パラメータと決める。そのパラメータに対応する写像を最終的に両画像間の最適マッチングとみなす。
これ以外にも評価式の設定にはいろいろな方法があり、例えば1/E1と1/E2のように、評価結果が良好なほど大きな値をとるものを採用してもよい。総合評価式も必ずしも線形和である必要はなく、n乗和(n=2、1/2、−1、−2など)、多項式、任意の関数などを適宜選択すればよい。
パラメータも、αのみ、前提技術のごとくηとλのふたつの場合、それ以上の場合など、いずれでもよい。パラメータが3以上の場合はひとつずつ変化させて決めていく。
(2)本前提技術では、総合評価式の値が最小になるよう写像を決めた後、総合評価式を構成するひとつの評価式であるC(m,s) fが極小になる点を検出してパラメータを決定した。しかし、こうした二段回処理の代わりに、状況によっては単に総合評価式の最小値が最小になるようにパラメータを決めても効果的である。その場合、例えばαE0+βE1を総合評価式とし、α+β=1なる拘束条件を設けて各評価式を平等に扱うなどの措置を講じてもよい。パラメータの自動決定の本質は、エネルギーが最小になるようにパラメータを決めていく点にあるからである。
(3)前提技術では各解像度レベルで4種類の特異点に関する4種類の副画像を生成した。しかし、当然4種類のうち1、2、3種類を選択的に用いてもよい。例えば、画像中に明るい点がひとつだけ存在する状態であれば、極大点に関するf(m,3)だけで階層画像を生成しても相応の効果が得られるはずである。その場合、同一レベルで異なる副写像は不要になるため、sに関する計算量が減る効果がある。
(4)本前提技術では特異点フィルタによってレベルがひとつ進むと画素が1/4になった。例えば3×3で1ブロックとし、その中で特異点を探す構成も可能であり、その場合、レベルがひとつ進むと画素は1/9になる。
(5)始点画像と終点画像がカラーの場合、それらをまず白黒画像に変換し、写像を計算する。その結果求められた写像を用いて始点のカラー画像を変換する。それ以外の方法として、RGBの各成分について副写像を計算してもよい。
[3]前提技術の改良点
以上の前提技術を基本とし、マッチング精度を向上させるためのいくつかの改良がなされている。ここではその改良点を述べる。
以上の前提技術を基本とし、マッチング精度を向上させるためのいくつかの改良がなされている。ここではその改良点を述べる。
[3.1]色情報を考慮に入れた特異点フィルタおよび副画像
画像の色情報を有効に用いるために、特異点フィルタを以下のように変更した。まず色空間としては、人間の直感に最も合致するといわれているHISを用い、色を輝度に変換する式には、人間の目の感度に最も近いといわれているものを選んだ。
画像の色情報を有効に用いるために、特異点フィルタを以下のように変更した。まず色空間としては、人間の直感に最も合致するといわれているHISを用い、色を輝度に変換する式には、人間の目の感度に最も近いといわれているものを選んだ。
これらのフィルタによって、各レベルにつき5種類の副画像(サブイメージ)が生成される。なお、最も高いレベルの副画像は元画像に一致する。
エッジの大きさ、すなわち絶対値も計算に必要である。
[3.3]計算処理手順
計算は最も粗い解像度の副画像から順に行う。副画像は5つあるため、各レベルの解像度において計算は複数回行われる。これをターンと呼び、最大計算回数をtで表すことにする。各ターンは前記Forward Stageと、副写像再計算ステージであるRefinement Stageという二つのエネルギー最小化計算から構成される。図18は第mレベルにおける副写像を決める計算のうち改良点に係るフローチャートである。
計算は最も粗い解像度の副画像から順に行う。副画像は5つあるため、各レベルの解像度において計算は複数回行われる。これをターンと呼び、最大計算回数をtで表すことにする。各ターンは前記Forward Stageと、副写像再計算ステージであるRefinement Stageという二つのエネルギー最小化計算から構成される。図18は第mレベルにおける副写像を決める計算のうち改良点に係るフローチャートである。
同図のごとく、sをゼロクリアする(S40)。つぎにForward Stage(S41)において始点画像pから終点画像qへの写像f(m,s)をエネルギー最小化によって求める。ここで最小化するエネルギーは、対応する画素値によるエネルギーCと、写像の滑らかさによるエネルギーDの線形和である。
エネルギーCは、輝度の差によるエネルギーCI(前記改良前の前提技術におけるエネルギーCと等価)と、色相、彩度によるエネルギーCC、輝度微分(エッジ)の差によるエネルギーCEで構成され、それぞれ次のように表される。
エネルギーDは前記改良前の前提技術と同じものを用いる。ただし前記改良前の前提技術において、写像の滑らかさを保証するエネルギーE1を導出する際、隣接する画素のみを考慮していたが、周囲の何画素を考慮するかをパラメータdで指定できるように改良した。
Refinement Stage(S42)ではForward Stageにおいて求めた双方向の写像f(m,s)およびg(m,s)を基に、より妥当な写像f’(m,s)を求める。ここでは新たに定義されるエネルギーMについてエネルギー最小化計算を行う。エネルギーMは終点画像から始点画像への写像gとの整合度M0と、もとの写像との差M1より構成される。
その後、sをインクリメントし(S43)、sがtを超えていないことを確認し(S44)、次のターンのForward Stage(S41)に進む。その際前記E0を次のように置き換えてエネルギー最小化計算を行う。
[3.4]写像の計算順序
写像の滑らかさを表すエネルギーE1を計算する際、周囲の点の写像を用いるため、それらの点がすでに計算されているかどうかがエネルギーに影響を与える。すなわち、どの点から順番に計算するかによって、全体の写像の精度が大きく変化する。そこでエッジの絶対値画像を用いる。エッジの部分は情報量を多く含むため、エッジの絶対値が大きいところから先に写像計算を行う。このことによって、特に二値画像のような画像に対して非常に精度の高い写像を求めることができるようになった。
[画像処理に関する実施の形態]
前提技術を用いると画像フレーム間の対応点情報を生成することができる。したがって、動画内の始点画像と終点画像との間の対応点情報を前提技術によって求め、始点画像と対応点情報を保存するようにすれば、高精度の動画を復元可能な動画圧縮に利用することができる。現実に実験ではMPEGを超える画質と圧縮率の両立が確認されはじめている。
前提技術を用いると画像フレーム間の対応点情報を生成することができる。したがって、動画内の始点画像と終点画像との間の対応点情報を前提技術によって求め、始点画像と対応点情報を保存するようにすれば、高精度の動画を復元可能な動画圧縮に利用することができる。現実に実験ではMPEGを超える画質と圧縮率の両立が確認されはじめている。
しかしながら、例えば圧縮の対象となる動画像内の二つの画像フレームにおいて、フレーム内を横切るオブジェクト(以下、「オクルーダ」という)が存在するようなケースを考える。この場合、二つの画像フレームを比較すると、一方のフレームでは撮影されているが他方のフレームではオブジェクトによって隠されている領域(以下、「オクルージョン領域」という)が存在する。すると、一方の画像フレームにおいてオクルージョン領域に含まれる画素については、他方の画像フレームに対応する画素が存在しないことになる。上述したように前提技術には全単射の制約があるため、このような場合には正確な写像を求めることができず、対応点情報が実際とは異なる不正確なものとなる。したがって、前提技術を用いて動画像の圧縮をすると、オクルージョン領域においては復号後の再生画質が低下する可能性がある。
そこで、本実施形態では、画像フレーム内を移動するオクルーダによって生じるオクルージョン領域を切り分けるための技術を提供する。オクルージョン領域を切り分けることができれば、この部分については前提技術以外の圧縮手法を適用することで、復号後の再生画質を向上できる可能性がある。
図19は、本実施形態に係る画像処理装置10の構成を示す機能ブロック図である。ここに示す各ブロックは、ハードウェア的には、コンピュータのCPUやメモリをはじめとする素子で実現でき、ソフトウェア的にはコンピュータプログラム等によって実現されるが、ここでは、それらの連携によって実現される機能ブロックとして描いている。したがって、これらの機能ブロックはハードウェア、ソフトウェアの組合せによっていろいろなかたちで実現できることは、当業者には理解されるところである。
画像読込部12は、撮影装置などにより取得された画像データを読み込み、画像記憶部14に格納する。動画撮影の画素数および毎秒のフレーム数については任意のものを使用できる。対応点情報生成部110は、画像データ内の二つの画像フレーム間で前提技術その他によるマッチング計算を行い、対応点情報ファイルを生成する。
セグメント処理部120は、画像フレームを複数のセグメントに分割する処理を実行する。セグメント処理部120は、画像フレーム内で領域分割の起点となるシードセグメントを生成するシードセグメント生成部122と、シードセグメントをさらに拡張するセグメント拡張部130と、小さなセグメントを統合していくセグメントマージ部140と、セグメントマップを出力するセグメントマップ出力部146と、を含む。
動きベクトル処理部150は、前提技術によるマッチング結果を基に画像フレーム内の各画素の動きベクトルを算出した上で、その精度を改良する処理を実行する。さらに、改良された動きベクトルを使用して、画像フレーム内で移動するオクルーダを検出し、画像フレームに適用するためのマスク画像を作成する。このマスクはセグメント処理部120に与えられて、上述のセグメントマップを作成するために用いられる。
まずセグメント処理部120内の機能ブロックについて説明する。
シードセグメント生成部122は、アフィンパラメータ算出部124と、シードブロック選択部126と、シードブロック成長部128を含む。アフィンパラメータ算出部124は、二枚の画像フレーム(一つを始点画像フレーム、他方を終点画像フレームと呼ぶ)を複数のブロックに分割した上で、多重解像度特異点フィルタを用いた処理を行い、始点画像フレームの各ブロックについて、終点画像フレームにおけるブロックの形状を表すアフィンパラメータを算出する。始点画像フレームの位置ベクトル(変換前の座標を表わす位置ベクトル)をV、終点画像フレームの位置ベクトル(変換後の座標を表わす位置ベクトル)をV’とすると、V’=αV+βで表される。ここで、αは、ブロックの変形、拡大縮小、剪断を表すパラメータであり、βは並行移動を表すパラメータである。
シードブロック選択部126は、画像フレーム内のブロックのうちセグメント生成の起点となるシードブロックを選択する。シードブロックには、アフィンパラメータ適用後のブロックに含まれる画素値と、終点画像フレームにおける対応するブロックの画素値とのマッチングの程度が高いものが選択される。
シードブロック成長部128は、アフィンパラメータ空間においてシードブロックに隣接するブロックのうち、アフィンパラメータによる変換の誤差が少ないブロックをシードブロックと統合することによって、シードセグメントを生成する。
セグメント拡張部130は、シードセグメントと隣接するブロックについて所定の統合条件を満たすか否かを判断することによって、シードセグメントとブロックとの統合をさらに進展させる。セグメント拡張部130は、統合条件を判定する機能ブロックとして、アフィンパラメータ判定部132、画素値判定部134、エッジ度判定部136を含む。
アフィンパラメータ判定部132は、シードセグメントのアフィンパラメータと隣接ブロックのアフィンパラメータとの差分を判定する。画素値判定部134は、シードセグメントのアフィンパラメータを隣接ブロックに適用したときの画素値の誤差について判定する。エッジ度判定部136は、シードセグメントと隣接ブロックにオクルーダのエッジ部分が含まれているか否かを判定する。
セグメントマージ部140は、生成された初期セグメント同士をマージする。マージするか否かの判定は、偏差判定部142と境界判定部144により実行される。
セグメントマップ出力部146は、セグメント同士のマージの結果を受けて、画像フレームをいくつかのセグメントに分割したセグメントマップを出力する。このマップに基づいて、オクルーダの影響がないセグメントについては上記前提技術を用いて対応点情報を求める一方、フレーム間で現実には対応点が存在しないセグメントについては周知のブロックマッチングを実施して、画像フレーム全体のマッチング精度を向上させるなどの応用が可能になる。
続いて、動きベクトル処理部150内の機能ブロックについて説明する。動きベクトル処理部150は、動きベクトル検出部152、信頼領域分離部154、動きベクトル改良部160、マスク作成部158を含む。
動きベクトル検出部152は、連続する二枚の画像フレームに対して前提技術を用いたマッチングを実行することで、画像フレーム内の各画素の動きベクトルを求める。信頼領域分離部154は、画像フレームを動きベクトルの精度が信頼できる「信頼領域」と、動きベクトルの精度が信頼できない「非信頼領域」とに分離する。信頼領域は、画像フレーム内で支配的な面積を有する部分になる。
動きベクトル改良部160は、信頼領域内の動きベクトルを非信頼領域内の画素に対して適用し、精度の高い結果が得られるか否かを基準として信頼領域を拡大していく。動きベクトル改良部160は、レイヤ設定部162、差分判定部164、レイヤ適用部166およびブロックマッチング部168を含む。
レイヤ設定部162は、信頼領域と非信頼領域との境界にレイヤを設定する。差分判定部164は、設定したレイヤを信頼領域に組み入れることができるか否かを判定する。レイヤ適用部166は、レイヤを信頼領域に組み入れられると判定された場合に、信頼領域の動きベクトルでレイヤの元々の動きベクトルを置換する。ブロックマッチング部168は、非信頼領域として残された部分に対して従来のブロックマッチングを実施することで、より信頼できる動きベクトルを探索する。
オクルージョン検出部156は、改良された動きベクトルを利用して、画像フレーム内でオクルーダによる影響を受ける領域であるオクルージョン領域を検出する。
マスク作成部158は、オクルージョン領域に含まれる画素を残しそれ以外の部分を消去するためのマスクを作成する。マスクはセグメント拡張部130に渡されて、セグメントと隣接ブロックの統合を判定するために使用される。
マスク作成部158は、オクルージョン領域に含まれる画素を残しそれ以外の部分を消去するためのマスクを作成する。マスクはセグメント拡張部130に渡されて、セグメントと隣接ブロックの統合を判定するために使用される。
図20は、本実施形態の概略動作を示すフローチャートである。まず、対応点情報生成部110が、画像データの中から取りだした始点画像フレームと終点画像フレームの間で前提技術を用いて対応点情報を求めるマッチングを実行する(S100)。この結果得られた対応点情報に基づいて、動きベクトル処理部150は、始点画像フレームと終点画像フレーム間の動きベクトルを各画素について算出し、さらに後述する処理を繰り返して画像フレーム内の動きベクトルの精度を改良する(S102)。動きベクトル処理部150は、改良された動きベクトルを使用して画像フレーム内のオクルージョン領域を特定し、オクルージョン領域内の画素を残すためのマスクを作成する(S104)。
マスクの作成とは別のプロセスとして、セグメント処理部120は、S100で得られた画像フレーム間の対応点情報を使用して、画像フレームを複数の領域に分割するための起点となる部分であるシードセグメントを画像フレーム内に生成する(S106)。セグメント処理部120は、このシードセグメントの周囲にあるブロックをシードセグメントに統合できるか否かの判定を繰り返して、シードセグメントの領域を拡張していく処理を実行する(S108)。セグメント処理部120は、このようにして生成された複数のシードセグメント同士をマージすべきか否かを判定する処理を繰り返す(S110)。そして、画像フレームをいくつかのセグメントに分割したセグメントマップを最終的に出力する(S112)。
図20において、S102の処理は図30に、S104の処理は図33に、S106の処理は図21に、S108の処理は図242、図25および図26に、S110の処理は図28および図29に、それぞれ対応している。各ステップの詳細は、対応する図面に関する箇所で説明されている。
図21は、S106のシードセグメントの生成処理の詳細なフローチャートである。
シードセグメント生成部122は、対応点情報生成部110から対応点情報を取得する(S120)。次に、アフィンパラメータ算出部124は、始点画像フレームを大きさの等しい複数のブロック(例えば、2×2画素)に分割し(S122)、特異点抽出の結果に基づいて、始点画像フレームの各ブロックがアフィン変換によって終点画像フレームのいずれの部分にマッピングされるかを表すアフィンパラメータを算出する(S124)。前提技術の代わりに、始点画像フレームと終点画像フレームの間で求めたオプティカルフローの結果を用いてアフィンパラメータを算出してもよい。しかしながら、概して、前提技術の結果を用いる方がより精度の高いアフィンパラメータを得ることができる。
シードセグメント生成部122は、対応点情報生成部110から対応点情報を取得する(S120)。次に、アフィンパラメータ算出部124は、始点画像フレームを大きさの等しい複数のブロック(例えば、2×2画素)に分割し(S122)、特異点抽出の結果に基づいて、始点画像フレームの各ブロックがアフィン変換によって終点画像フレームのいずれの部分にマッピングされるかを表すアフィンパラメータを算出する(S124)。前提技術の代わりに、始点画像フレームと終点画像フレームの間で求めたオプティカルフローの結果を用いてアフィンパラメータを算出してもよい。しかしながら、概して、前提技術の結果を用いる方がより精度の高いアフィンパラメータを得ることができる。
続いて、シードブロック選択部126は、アフィンパラメータが算出された各ブロックについてアフィンパラメータにより最良の近似が得られるブロックを選び出し、それらのブロックをシードセグメント生成の起点となるシードブロックと決定する(S126)。この近似は、例えば各ブロックを構成する画素と、アフィンパラメータによって移動した先の画素の間での位置エネルギーと画素差エネルギーの合計としてもよい。このエネルギーの合計が最も小さいブロックをシードブロックと決定する。通常の動作撮影で得られるような画像フレームであれば、このようなシードブロックは画像フレーム内でせいぜい数個得られるに過ぎない。
続いて、シードブロック成長部128は、シードブロックと隣接する別のブロックを一つ選択する(S128)。この隣接ブロックについて、アフィンパラメータによる変換後のブロックの画素と、終点画像フレームにおける対応するブロックの画素との距離の差が所定のしきい値以下であるか否かを判定する(S130)。しきい値以下であれば(S130のY)、シードブロック成長部128は、その隣接ブロックに対してシードブロックと同一のラベルを付与し(S132)、プロセスはS128に戻る。このラベルはブロック毎に一つ割り振られるものであり、ラベルが同一のブロックには同一のアフィンパラメータが対応することを意味する。つまり、終点画像フレームにおける隣接ブロックの変位がしきい値以下であれば、その隣接ブロックはシードブロックと同一の動きをする部分であるとみなして、シードブロックと同一のラベルを与えるのである。
S130で、終点画像フレームにおける隣接ブロックの変位がしきい値より大きければ(S130のN)、シードブロック成長部128はその隣接ブロックをシードブロックとは異なる動きをする部分であるとみなし、シードブロックと別のラベルを付与する。シードブロック成長部128は、シードブロックと同一のラベルが与えられたブロックの数が予め定められているセグメント内のブロック数上限値に達したか否かを判定する(S134)。ブロック数が上限値に達していなければ(S134のN)、シードブロック成長部128は、シードブロックと隣接する別のブロックを選択し(S128)、S130、S132の処理を繰り返す。ブロック数が上限値に達していれば(S134のY)、シードブロック成長部128は、シードブロックと同一のラベルが与えられた全てのブロックを含むシードセグメントを生成する(S136)。シードブロック成長部128は、画像フレーム内に別のシードブロックが残っているか否かを判定し(S138)、別のシードブロックが残っていれば(S138のY)、そのシードブロックと隣接するブロックについてS128〜S136の処理を繰り返す。別のシードブロックが残っていなければ(S138のN)、このフローを終了する。
図22は、シードセグメント生成部122によって画像フレームが同形の複数のブロックに分割された様子を示す。図中、塗りつぶされたブロック230が、シードブロック選択部126によってシードブロックと判定されたとすると、白抜きのブロック232が隣接ブロックになる。
図23は、シードブロックと同一のラベルを隣接ブロックに与えていく様子を示す。シードブロック210aと210bの周囲の隣接ブロックがそれぞれシードセグメントに組み入れられ、シードセグメントと同一のラベルが与えられていき、最終的に同一ラベルを有するブロックが一つのシードセグメントになる。図23では、シードブロック210aを起点としてシードセグメントAが生成され、シードブロック210bを起点としてシードセグメントBが生成された様子を示している。
このように、画像フレーム内の全てのシードブロックに対して図21に示すプロセスが終了すると、始点画像フレームは、シードブロックを基点として周囲のブロックにシードブロックのアフィンパラメータが伝搬された一つまたは複数のシードセグメントと、それ以外の部分とに分割されることになる。
図24は、S108のシードセグメントの領域拡張処理の詳細なフローチャートである。セグメント拡張部130は、シードセグメント生成部122からシードセグメントを受け取り、複数のシードセグメントの中から面積が最大であるものを選択する(S140)。続いて、選択したシードセグメントに隣接するブロックのうち、他のシードセグメントに属していないブロックを一つ選択する(S142)。そして、このブロックとシードセグメントが所定の統合条件を満たすか否かを判定する(S144)。この判定は、アフィンパラメータ判定部132、画素値判定部134およびエッジ度判定部136によって行われる。統合条件とそれに対する判定処理の詳細については、図25および図26を参照して後述する。
統合条件の全てを満足する場合(S144のY)、セグメント拡張部130は、シードブロックのアフィンパラメータおよびラベルを選択した隣接ブロックに与える(S146)。統合条件を満足していない場合は(S144のN)、S146をスキップする。続いて、セグメント拡張部130は、シードセグメントに隣接しているブロックのうち、上記統合条件の判定をしていないものがあるか否かを判定する(S148)。隣接するブロックが残っていれば(S148のY)、そのブロックについてS142からS146の処理を繰り返す。隣接するブロックが残っていなければ(S148のN)、上記プロセスを実施していない別のシードセグメントがあるか否かを判定する(S150)。未処理のシードセグメントがあれば(S150のY)、そのシードセグメントに対してS142〜S148の処理を繰り返す。未処理のシードセグメントがなければ(S150のN)、このフローを終了する。
なお、一旦シードセグメントに組み入れられたブロックは、それ以降シードセグメントの一部になり、この新たに組み入れられたブロックと隣接するブロックについても上述の処理が実行される。
なお、一旦シードセグメントに組み入れられたブロックは、それ以降シードセグメントの一部になり、この新たに組み入れられたブロックと隣接するブロックについても上述の処理が実行される。
図24のプロセスは、図21のプロセスによってシードセグメントに組み入れられなかった隣接ブロックのうち、所定の統合条件を満たすものを拾い上げてシードセグメントに組み入れるものである。図24のプロセスを経た後に得られる一つまたは複数のシードセグメントを、以下では「初期セグメント」と呼ぶ。続いて、セグメントマージ部140によって初期セグメント同士のマージが判断される。
図25は、図24のS144の統合条件を判定する処理を詳細に説明するフローチャートである。
まず、アフィンパラメータ判定部132は、シードセグメントに隣接するブロックを一つ選択し、そのブロックのアフィンパラメータα、βとシードセグメントのアフィンパラメータα、βの差分が所定のしきい値以下であるか否かを判定する(S152)。しきい値以下である場合(S152のY)、その隣接ブロックにシードセグメントのアフィンパラメータを試験的に付与してみる。そして、画素値判定部134は、アフィンパラメータによる変換先のブロックの画素値の平均値と、対応するブロックの画素値の平均値とを比較し、それらの差分が所定のしきい値以下であるか否かを判定する(S154)。アフィンパラメータ空間においてシードセグメントと隣接ブロックとが近接する位置にある場合、すなわちシードセグメントと隣接ブロックのアフィンパラメータ同士が近い値を有していたとしても、始点画像フレームから終点画像フレームに移る間にシードセグメントまたは隣接ブロックのいずれかが画像フレームの境界を越えて移動しているような場合には、写像先が全く異なる場合もある。そのため、シードブロックと同一のアフィンパラメータを与えたときの隣接ブロックの移動先の画素値を検証することで、隣接ブロックをシードセグメントに含めるか否かを正確に判定する。
なお、S152およびS154のしきい値は、本実施形態に係る画像処理を複数回試行して、適切な結果が得られるような値を実験的に定める。
まず、アフィンパラメータ判定部132は、シードセグメントに隣接するブロックを一つ選択し、そのブロックのアフィンパラメータα、βとシードセグメントのアフィンパラメータα、βの差分が所定のしきい値以下であるか否かを判定する(S152)。しきい値以下である場合(S152のY)、その隣接ブロックにシードセグメントのアフィンパラメータを試験的に付与してみる。そして、画素値判定部134は、アフィンパラメータによる変換先のブロックの画素値の平均値と、対応するブロックの画素値の平均値とを比較し、それらの差分が所定のしきい値以下であるか否かを判定する(S154)。アフィンパラメータ空間においてシードセグメントと隣接ブロックとが近接する位置にある場合、すなわちシードセグメントと隣接ブロックのアフィンパラメータ同士が近い値を有していたとしても、始点画像フレームから終点画像フレームに移る間にシードセグメントまたは隣接ブロックのいずれかが画像フレームの境界を越えて移動しているような場合には、写像先が全く異なる場合もある。そのため、シードブロックと同一のアフィンパラメータを与えたときの隣接ブロックの移動先の画素値を検証することで、隣接ブロックをシードセグメントに含めるか否かを正確に判定する。
なお、S152およびS154のしきい値は、本実施形態に係る画像処理を複数回試行して、適切な結果が得られるような値を実験的に定める。
S154で、画素値の平均値の差分がしきい値以下である場合(S154のY)、エッジ度判定部136は、シードセグメントと隣接ブロックについてそれぞれ算出される「補正エッジ度」の差分がしきい値以下であるか否かを判定する(S156)。この補正エッジ度は、対象となるシードセグメントと隣接ブロックの内部に、画像フレーム内で検出されるエッジがどの程度含まれるかを表す指標である。補正エッジ度の算出方法については後述する。この補正エッジ度の差分が大きいということは、隣接ブロックがシードセグメントのエッジを含んでいること、すなわち、隣接ブロックがシードセグメントのエッジ部分に位置している可能性が高いと考えられる。そこで、補正エッジ度の差分がしきい値以下である場合にのみ(S156のY)、シードセグメントを隣接ブロックにまで領域拡張することが認められ(S158)、フローは図24のS146に続く。
上記3つの条件のいずれか一つでも満たされない場合(S152のN、S154のN、S156のN)、領域拡張は認められず(S160)、フローは図24のS148に続く。
図26は、S156で判定に使用される補正エッジ度の算出方法を示すフローチャートである。
まず、エッジ度判定部136は、画像フレームのエッジ画像を作成する(S170)。エッジ画像の作成は、周知のSobelフィルタを使用してもよいし、他のフィルタを使用してもよい。画像フレームをモノクロ化したものに対してエッジ画像を作成してもよいし、または画像フレームのRGBそれぞれの成分についてそれぞれフィルタを適用して、RGBの成分毎にエッジ画像を作成してもよい。以下では、RGBの成分毎にエッジ画像を作成したものとして説明する。
まず、エッジ度判定部136は、画像フレームのエッジ画像を作成する(S170)。エッジ画像の作成は、周知のSobelフィルタを使用してもよいし、他のフィルタを使用してもよい。画像フレームをモノクロ化したものに対してエッジ画像を作成してもよいし、または画像フレームのRGBそれぞれの成分についてそれぞれフィルタを適用して、RGBの成分毎にエッジ画像を作成してもよい。以下では、RGBの成分毎にエッジ画像を作成したものとして説明する。
エッジ度判定部136は、RGBの3つのエッジ画像の画素値を対応する位置ごとに比較し、それらの中で最大のものを各位置における画素値として採用した画像(以下、「最大エッジ画像」と呼ぶ)を作成する(S172)。つまり、RGBのエッジ画像におけるある位置の画素値をER、EG、EBとすると、各位置における画素値はmax(ER,EG,EB)になる。このように、RGB毎にエッジ画像を作成した上で単一の最大エッジ画像を作成することで、エッジがより鮮明に現れたエッジ画像を生成することができる。最大エッジ画像は、画素値の最大値によって正規化してもよい。なお、エッジ画像がモノクロの場合には、このステップは不要である。
次に、エッジ度判定部136は、マスク作成部158からマスクを受け取り、マスクの周縁部をぼやかした「ブラードマスク」を作成する(S174)。マスク作成部158によるマスク作成の詳細については、図33を参照して後述する。ブラードマスクは、以下のようにして作成する。すなわち、マスク内の各画素について、マスクの中心部で最も値が大きく、マスクの外周に向かうにつれて値が0に近づくような例えば256階調の係数を付与する。マスクの外部では、この係数は0である。
図27は、マスクとブラードマスクの関係を示す図である。マスク作成部158から(a)のようなマスクを受け取ったとすると、ブラードマスクは(b)のようになる。図中、マスクの内側で色が濃い部分は「1」に近く、色が薄い部分は「0」に近い係数を持っていることを示す。マスクの外側では係数「0」である。
図26に戻り、ブラードマスクの全体を画像フレームと同じ大きさにしておき、このブラードマスクを上述の最大エッジ画像に対して適用する。すなわち、ブラードマスクの各画素位置に与えられた係数を、最大エッジ画像の対応する位置にある画素値と一対一で掛け合わせる(S176)。この結果、最大エッジ画像に含まれるエッジのうちマスク内側の係数が0でない部分のみが画像内に残され、マスク外側の係数が0である部分については画像から消去されることになる。以下、ブラードマスク適用後の画像を「マスク後エッジ画像」という。
後述するように、マスク作成部158により作成されるマスクは、始点画像フレームと終点画像フレームの間でオクルーダによりスイープされた領域に対応している。したがって、最大エッジ画像にブラードマスクを適用することで、オクルーダが移動した領域に含まれるエッジのみを抽出することができる。言い換えると、画像フレーム内でオクルーダによって隠されたり、またはオクルーダの背後から表れるような部分のエッジのみを抽出することができる。
なお、ブラードマスクを作成する際に、マスク作成部158から受け取ったマスクの大きさを若干大きくしたり小さくしたりしてもよい。また、マスクからブラードマスクを作成する代わりに、マスクの内側では係数を1に、マスクの外側では係数を0とする二値マスクを作成し、最大エッジ画像と掛け合わせてもよい。
エッジ度判定部136は、マスク後エッジ画像を使用して、シードセグメントと隣接ブロックの内部に含まれるエッジの画素値をそれぞれ取り出す。そして、シードセグメントの内部に含まれるエッジの画素値の平均値と、隣接ブロックの内部に含まれるエッジの画素値の平均値とをそれぞれ算出する(S178)。これらのエッジの画素値の平均値が上述の「補正エッジ度」に当たる。エッジ度判定部136は、シードセグメントと隣接ブロックの補正エッジ度の差分を計算し、この差分が所定のしきい値以下であるか否かを判定する(S180)。このしきい値は、本実施形態に係る画像処理を複数回試行して、適切な結果が得られるような値を実験的に定める。差分がしきい値以下であれば(S158のY)、隣接ブロックをシードセグメントの領域に含める(S158)。差分がしきい値を越えていれば(S158のN)、隣接ブロックはシードセグメントに入らない(S160)。
ここで、補正エッジ度を使用してシードセグメントの領域を隣接ブロックにまで拡張するか否かを判定することの物理的意味について説明する。
まず、ブラードマスクを最大エッジ画像に適用することの物理的意味は、以下の通りである。つまり、最終的に求めるべきセグメントマップにおいては、オクルーダの周りにのみ境界線ができるべきである。画像内に存在するオクルーダ以外の複数の静止しているオブジェクトについては、前提技術によって精度良くマッチングができるため、他のオブジェクトとの間のエッジを考慮する必要はない。
まず、ブラードマスクを最大エッジ画像に適用することの物理的意味は、以下の通りである。つまり、最終的に求めるべきセグメントマップにおいては、オクルーダの周りにのみ境界線ができるべきである。画像内に存在するオクルーダ以外の複数の静止しているオブジェクトについては、前提技術によって精度良くマッチングができるため、他のオブジェクトとの間のエッジを考慮する必要はない。
これに対し、Sobelフィルタなどのフィルタでは、画像フレーム内で隣接する画素の変化を基準としてエッジを検出するので、オブジェクトが動いているか静止しているかに関わらず、全てのオブジェクト間の境界をエッジとして検出してしまう。したがって、オクルーダのエッジについてのみシードセグメントの拡張判定を実施できるようにするために、マスクを使用して不要なエッジ、つまり静止しているオブジェクトのエッジを除去しているのである。
補正エッジ度としきい値とを比較して隣接ブロックをシードセグメントに組み入れるか否かを判定する理由は、シードセグメントがオクルーダの境界を越えて拡大するのを防止するためである。既に述べたように、補正エッジ度はオクルーダのエッジについてのみ求められている。したがって、補正エッジ度の差分が大きいということは、シードセグメントと隣接ブロックとの間にオクルーダの境界が存在していることを示している。言い換えると、上述の判定は、シードセグメントの領域成長が補正エッジ度の変化が激しい箇所で止まるように工夫したものである。
続いて、図22のプロセスで生成された複数の初期セグメント同士をマージしていくプロセスについて説明する。このプロセスは、画像フレーム内で島のように取り残された微小な初期セグメントを消去するために実行される。
図28は、初期セグメントマージの第1プロセスのフローチャートである。
セグメントマージ部140内の偏差判定部142は、全ての初期セグメントについて、各セグメントに含まれるブロックのアフィンパラメータの平均値を算出する(S260)。続いて、終点画像フレームの初期セグメント内の各ブロックにアフィンパラメータの平均値を適用したときの、始点画像フレーム内の各ブロックの画素値との誤差が極小になるように、アフィンパラメータ平均値を修正する(S262)。さらに、初期セグメント内部でアフィンパラメータ平均値と最も離れている点とアフィンパラメータ平均値との距離(以下、「偏差」という)を算出する(S264)。
セグメントマージ部140内の偏差判定部142は、全ての初期セグメントについて、各セグメントに含まれるブロックのアフィンパラメータの平均値を算出する(S260)。続いて、終点画像フレームの初期セグメント内の各ブロックにアフィンパラメータの平均値を適用したときの、始点画像フレーム内の各ブロックの画素値との誤差が極小になるように、アフィンパラメータ平均値を修正する(S262)。さらに、初期セグメント内部でアフィンパラメータ平均値と最も離れている点とアフィンパラメータ平均値との距離(以下、「偏差」という)を算出する(S264)。
上記処理を全ての初期セグメントについて実行した後、マージの判定対象となる二つの初期セグメントを選び出す(S266)。そして、アフィンパラメータ空間において二つの初期セグメントの中心の間の距離dが、二つの初期セグメントのそれぞれの偏差の和以下であるか否かを判定する(S268)。二つのセグメントAとセグメントBについて数式で表現すると、以下のようになる。
d>ra+rb (式66)
但し、dは初期セグメントAと初期セグメントBの中心の間の距離を表し、raは初期セグメントAの最大偏差を表し、rbは初期セグメントBの最大偏差を表す。
d>ra+rb (式66)
但し、dは初期セグメントAと初期セグメントBの中心の間の距離を表し、raは初期セグメントAの最大偏差を表し、rbは初期セグメントBの最大偏差を表す。
S268で式(66)を満たす場合(S268のY)、選択されている二つの初期セグメントをマージして新たな一つのセグメントを生成するとともに、生成した初期セグメントのアフィンパラメータ平均値と、この平均値に対する偏差を新たに算出する(S270)。式(66)を満たさない場合(S268のN)、選択されている二つの初期セグメントはマージされない。偏差判定部142は、S268の判定がなされていない初期セグメントのペアが残っているか否かを判定する(S272)。初期セグメントのペアが残っていれば(S272のY)、S266以降の処理を繰り返す。初期セグメントのペアが残っていなければ(S272のN)、このフローを終了する。
図28に示すプロセスは、二つの初期セグメント同士がアフィンパラメータ空間において外接しているか否かを判定している。両者が外接している場合には、一つのセグメントとみなされる。
図29は、初期セグメントマージの第2プロセスのフローチャートである。
境界判定部144は、境界を接している初期セグメントのペアを見つけ出し、各初期セグメントにおいて、相手の初期セグメントと接しているブロックの数をカウントする(S280)。続いて、各初期セグメントに含まれるブロックの総数bをカウントする(S282)。また、初期セグメント間で共有されている境界線のうち、最も長い境界線を検出し、その長さlを求める(S284)。
境界判定部144は、境界を接している初期セグメントのペアを見つけ出し、各初期セグメントにおいて、相手の初期セグメントと接しているブロックの数をカウントする(S280)。続いて、各初期セグメントに含まれるブロックの総数bをカウントする(S282)。また、初期セグメント間で共有されている境界線のうち、最も長い境界線を検出し、その長さlを求める(S284)。
境界判定部144は、境界長さlとブロック総数bの比l/bが所定のしきい値以上となるか否かを判定する(S286)。しきい値以上であれば(S286のY)、二つの初期セグメントをマージして新たなセグメントを生成し、この新たなセグメントについて内部ブロック総数を算出する(S288)。しきい値未満であれば(S286のN)、初期セグメント同士をマージしない。境界判定部144は、S286の判定がなされていない初期セグメントのペアが残っているか否かを判定する(S290)。初期セグメントのペアが残っていれば(S290のY)、S284以降の処理を繰り返す。初期セグメントのペアが残っていなければ(S290のN)、このフローを終了する。
このように、一連のプロセスを実行することによって、初期セグメントは最終的に一つまたは複数のセグメントに統合される。このセグメントは、上述したように、オクルーダのスイープする領域とそれ以外の背景領域とを切り分けたものである。セグメントマップ出力部146は、セグメントの境界を表したセグメントマップを出力する。このセグメントマップを使用すれば、種々の画像処理に活用することが可能になる。一例として、セグメントマップ内でセグメントにより切り分けられた部分は、前提技術によるマッピングが必ずしも正確にはならない部分である。したがって、この部分については、従来のブロックマッチング技術を使用して予測画像を生成し、それ以外の部分については、前提技術を用いて予測画像を生成するようにすれば、高精度な画像圧縮を実現することが可能になる。
図30は、図20のS102における動きベクトル改良処理の詳細なフローチャートである。
まず、動きベクトル検出部152は、対応点情報生成部110から始点画像フレームと終点画像フレームの対応点情報を受け取り、これに基づいて両フレーム間での画素毎の動きベクトルを算出する(S200)。前提技術を使用する代わりに、周知のオプティカルフローなどを用いて動きベクトルを算出してもよい。
まず、動きベクトル検出部152は、対応点情報生成部110から始点画像フレームと終点画像フレームの対応点情報を受け取り、これに基づいて両フレーム間での画素毎の動きベクトルを算出する(S200)。前提技術を使用する代わりに、周知のオプティカルフローなどを用いて動きベクトルを算出してもよい。
続いて、信頼領域分離部154は、動きベクトルのクラスタリングを実行して、画像フレーム内で同一の動きベクトルを有する領域を特定する。そして、これら領域のうち相対的に大きな領域を選択する(S202)。選択した領域の動きベクトルを、画像フレームの「主要動きベクトル」と呼ぶことにする。平均的な動画撮影の場合であれば、画像フレーム内で検出される主要動きベクトルの数はせいぜい二つである。主要動きベクトルの一つは背景が持つ動きベクトルであり、その大きさはほぼ0である。
続いて、信頼領域分離部154は、動きベクトルの精度が相対的に高い「信頼領域」と、動きベクトルの精度が相対的に低い「非信頼領域」のいずれかに分ける(S204)。この分類は、隣接する画素の動きベクトルの差分と所定のしきい値との比較によって実行する。ある画素(x1,y1)と隣接する画素(x2,y2)の動きベクトルをmotion()で表した場合、動きベクトルの差分Dを次式のように定義する。
D=|motion(x1,y1)−motion(x2,y2)|/max(|motion(x1,y1)|,|motion(x2,y2)|) (式67)
式(67)は、二つの画素間の動きベクトルの差分の絶対値を、動きベクトルのうち大きい方で除すことで正規化している。
D=|motion(x1,y1)−motion(x2,y2)|/max(|motion(x1,y1)|,|motion(x2,y2)|) (式67)
式(67)は、二つの画素間の動きベクトルの差分の絶対値を、動きベクトルのうち大きい方で除すことで正規化している。
二つの画素が同一のオブジェクトに属している場合、二つの画素の動きベクトルの差分は非常に小さくなるはずである。したがって、差分Dがしきい値より大きい場合は、いずれか一方の画素がオクルーダに含まれている可能性が高く、動きベクトルが正確かどうか疑わしいので、これらの画素を非信頼領域に分類する。差分Dがしきい値以下の場合には、両画素を信頼領域に分類する。この分類によって、画像フレーム内のオクルーダを大雑把に検出することができる。
動きベクトル改良部160は、信頼領域の主要動きベクトルを利用するなどして、非信頼領域の動きベクトルを画素単位で改良していく(S206)。
図31は、S206における動きベクトルの改良の過程を詳細に説明するフローチャートである。
まず、レイヤ設定部162は、信頼領域と非信頼領域の境界に沿って1画素の厚さのレイヤを設定する(S310)。
まず、レイヤ設定部162は、信頼領域と非信頼領域の境界に沿って1画素の厚さのレイヤを設定する(S310)。
図32は、レイヤを模式的に示す。図中、斜線を施してある部分は信頼領域を表し、白抜きの部分が非信頼領域であるとする。信頼領域と非信頼領域の境界に沿って信頼領域の外側に、1画素厚さのレイヤ200を設定する。レイヤの外側に順次1画素ずつ新たなレイヤの設定を繰り返すことで、信頼領域を徐々に非信頼領域の内部へと拡大していく。
図31に戻り、差分判定部164は、信頼領域の主要動きベクトルを今回設定したレイヤに適用する(S312)。レイヤを構成する各画素に主要動きベクトルを与えたと仮定したときの、終点画像フレームでの移動位置を検証する。画像フレーム内に主要動きベクトルが二つ以上存在する場合には、レイヤとの距離が近い主要動きベクトルから順に適用する。差分判定部164は、レイヤの各画素に動きベクトルを適用したときの移動先の画素値と、終点画像フレームでの対応する画素の画素値との差分を計算し、差分が所定のしきい値以下か否かを判定する(S314)。画素値のRGB成分それぞれで誤差を取って二乗誤差の和を差分としてもよいし、それ以外の方法で差分を求めてもよい。レイヤは複数の画素から構成されているので、レイヤ内の全ての画素について差分の平均値を求め、この平均値がしきい値以下であるかを判定してもよい。
差分がしきい値以下であれば(S314のY)、今回設定したレイヤに信頼領域と同じ主要動きベクトルを与えても大きな誤差がないことになるので、レイヤ適用部166は、レイヤに適用した主要動きベクトルでレイヤの各画素の動きベクトルを置換する(S322)。差分がしきい値より大きければ(S314のN)、差分判定部164は主要動きベクトル以外の動きベクトルをレイヤに適用してみる。例えば、信頼領域内でレイヤ近傍にある画素の動きベクトルをレイヤの各画素に適用する(S316)。差分判定部164は、動きベクトルを適用したときの移動先の画素値と、終点画像フレームでの対応する画素の画素値との差分を計算し、差分が所定のしきい値以下か否かを判定する(S318)。差分がしきい値以下であれば(S318のY)、レイヤ適用部166は、レイヤに適用した動きベクトルでレイヤの各画素の動きベクトルを置換する(S322)。
差分がしきい値より大きければ(S318のN)、ブロックマッチング部168は非信頼領域内で例えば2×2画素のブロックを作り、ブロックマッチングにより終点画像フレームで近似するブロックを網羅的に探索する(S320)。探索したブロックの画素値と、現在のブロックの画素値との差分をRGBの各成分毎に求め、それらの和が最小となるブロックを採用する。レイヤ適用部166は、ブロックマッチングの結果により求められる動きベクトルでレイヤの各画素の動きベクトルを置換する(S322)。
動きベクトル改良部160は、画像フレーム内にまだ非信頼領域が残っているか否かを判定する(S324)。非信頼領域が残っていれば(S324のY)、S310以降の処理を繰り返す。非信頼領域が残っていなければ(S324のN)、この階層での処理を終了する。上述の一連の処理は、画像フレームのすべての階層で繰り返される(S326)。
このように、非信頼領域に含まれる各画素に対して主要動きベクトルや近隣の画素の動きベクトルを当てはめてみて、元々の動きベクトルを適用した場合よりも移動先の画素値との誤差が小さくなるという良好な結果が得られるか否かを判定する。良好な結果が得られれば、元々の動きベクトルを今回適用した動きベクトルで置換する。結果が好ましくない場合は、最も画素の差分が小さくなるブロックを網羅的に探索するブロックマッチングを実行することで、非信頼領域の動きベクトルを改良する。
レイヤに対して主要動きベクトルを当てはめていくのは、以下のような理由による。すなわち、上述したように、前提技術で作成される対応点情報を使用して動きベクトルを算出した場合、始点画像フレームと終点画像フレームとの間に対応点が存在しないために、オクルーダとそれ以外の部分との境界付近の動きベクトルについては不正確な動きベクトルが求められている可能性がある。そこで本実施形態では、上記式(67)にしたがって差分Dを算出し、差分Dの大小によって信頼領域と非信頼領域とを大まかに切り分けてしまう。その後、非信頼領域の内部についてより正確な動きベクトルを設定する処理を進めていく。つまり、上述したように、画像フレーム内の主要動きベクトルや信頼領域内の近隣の画素の動きベクトルを1つずつ適用してみて、より精度の高い動きベクトルを試行錯誤的に見つけ出していく。
ブロックマッチングにおいてブロック間の誤差を判定するときに、一般的に良く使用される平均絶対偏差(Mean Absolute Difference)で判断する代わりに、中央絶対偏差(Median Absolute Difference)で判断することが好ましい。前者の平均絶対偏差による判定は、高速であり実装が簡単であるという利点があるが、ノイズに敏感である。そのため、境界付近で誤差が大きくなりマッチングの結果が背景に引き摺られる傾向があるオクルーダの検出には向いていない。中央絶対偏差を用いることで、画像フレーム内を移動するオクルーダのエッジ近辺では、平均絶対偏差よりも良好なマッチング結果が得られる。なお、中央絶対偏差による判定は、全体のデータからメディアンを見つける必要があるのでブロックをソートしなければならず、処理速度が低下するという欠点もある。しかしながら、バケットソートを利用して処理を高速化することも可能である。
上述の動きベクトルのブロックマッチングは、始点画像フレームおよび終点画像フレームの階層化されたすべての画像に対してなされる。ブロックサイズは、画像フレームのサイズに比例して設定される。このような設定は、階層的ブロックマッチングに使われる通常の手法である。なお、このブロックマッチングは画像フレーム内の全画素について実行する必要はなく、上述したように非信頼領域に含まれる画素についてのみ実施すればよい。
このブロックマッチングは従来技術と同様であるが、本実施形態では主要動きベクトルや信頼領域の動きベクトルをレイヤに適用していくプロセスを経ることによってマッチング対象となる非信頼領域がかなりの程度限定されているので、画像フレームの全体を対象として探索する場合よりも、良好なマッチング結果が得られることが期待される。なお、高解像度の階層については、レイヤの適用をせずにブロックマッチングのみを使用して非信頼領域の動きベクトルを改良してもよい。
このブロックマッチングは従来技術と同様であるが、本実施形態では主要動きベクトルや信頼領域の動きベクトルをレイヤに適用していくプロセスを経ることによってマッチング対象となる非信頼領域がかなりの程度限定されているので、画像フレームの全体を対象として探索する場合よりも、良好なマッチング結果が得られることが期待される。なお、高解像度の階層については、レイヤの適用をせずにブロックマッチングのみを使用して非信頼領域の動きベクトルを改良してもよい。
以上説明したようなプロセスによって、画像フレームの全体にわたって動きベクトルの精度を改良することができる。続いて、改良された動きベクトルを使用してオクルージョン領域の検出が実行される。
図33は、図20のS104におけるマスク作成処理を詳細に説明するフローチャートである。
動きベクトル改良部160は、始点画像フレームNと終点画像フレームN+1について、上述したプロセスにしたがって順方向の動きベクトルを算出し、動きベクトルの精度を改良する(S240)。また、動きベクトル改良部160は、終点画像フレームN+1と始点画像フレームNについて、上述のプロセスにしたがって逆方向の動きベクトルを算出し、動きベクトルの精度を改良する(S242)。
動きベクトル改良部160は、始点画像フレームNと終点画像フレームN+1について、上述したプロセスにしたがって順方向の動きベクトルを算出し、動きベクトルの精度を改良する(S240)。また、動きベクトル改良部160は、終点画像フレームN+1と始点画像フレームNについて、上述のプロセスにしたがって逆方向の動きベクトルを算出し、動きベクトルの精度を改良する(S242)。
双方向の動きベクトルが得られたら、オクルージョン検出部156は、順方向の動きベクトルと逆方向の動きベクトルとを比較して、画像フレーム内を移動するオクルーダによって隠される領域であるオクルージョン領域を検出する(S244)。この検出は、以下のような原理にしたがって実施される。上述した前提技術を用いる対応点情報は、始点画像フレームと終点画像フレームの各画素を全単射で結びつけるため、順方向の動きベクトルと逆方向の動きベクトルとは大きさが一致し向きが反対の関係になるはずである。そこで、順方向と逆方向とで動きベクトルの大きさが一致しない画素は、オクルーダの存在のために前提技術によって正確な対応点情報が得られていない画素と判断することができる。
ところで、オクルーダによって隠されるオクルージョン領域には、次の二つの種類があることが理解されよう。第1は、始点画像フレームにおいては観察されるが、終点画像フレームではオクルーダの背後に隠れるために観察されない領域である(以下、このような領域を「カバード領域」と呼ぶ)。第2は、視点画像フレームではオクルーダの背後に隠れるために観察されないが、終点画像フレームではオクルーダが移動することで観察されるようになる領域である(以下、このような領域を「アンカバード領域」と呼ぶ)。この両者は、順方向の動きベクトルと逆方向の動きベクトルとを比較することで判別することができる。具体的には、順方向の動きベクトルの大きさがv(vは任意の値)、逆方向の動きベクトルの大きさが0である画素は、カバード領域に含まれる画素である。逆に、順方向の動きベクトルの大きさが0、逆方向の動きベクトルの大きさがvである画素は、アンカバード領域に含まれる画素である。
図34(a)、(b)は、カバード領域とアンカバード領域の違いを説明する図である。図34(a)に「P」で示す領域は、始点画像フレーム210ではオクルーダWの背後にあり観察されないが、終点画像フレーム212ではオクルーダが移動したために観察されるようになる。このとき、領域Pに含まれる点pの動きベクトルについて考察する。順方向では、始点画像フレーム210に点pが観察されないので、動きベクトルの大きさは0になる。逆方向では、終点画像フレーム212の点pの動きベクトルは何らかの大きさを持つはずである。したがって、順方向の動きベクトルの大きさが0、逆方向の動きベクトルの大きさがvである点pは、アンカバード領域に含まれると判断できる。
図34(b)に「Q」で示す領域は、始点画像フレーム214では観察されるが、終点画像フレーム216ではオクルーダWの背後に隠されて観察されなくなる。このとき、領域Qに含まれる点qの動きベクトルについて考察する。逆方向では、終点画像フレーム216に点qが観察されないので、動きベクトルの大きさは0になる。順方向では、始点画像フレーム214の点qの動きベクトルは何らかの大きさを持つはずである。したがって、順方向の動きベクトルの大きさがv、逆方向の動きベクトルの大きさが0である点qは、カバード領域に含まれると判断できる。
図33に戻り、マスク作成部158は、S244で検出されたカバード領域とアンカバード領域に当たる部分の画素のみを取り出すマスクを作成する(S246)。このマスクは、上述したようにエッジ度判定部136に渡され、所望のエッジ画像を取り出すために使用される。
図35は、マスクの一例を示す。マスク224の形状は、S244で検出されるカバード領域220とアンカバード領域222の和集合となる。
以上説明したように、本実施形態によれば、画像フレームに関する3つの高精度のマップを生成することができる。すなわち、画像フレーム内を移動するオクルーダと背景部分とが切り分けられたセグメントマップ、オクルーダの境界近傍での精度が改善された動きベクトルマップ、およびカバード領域とアンカバード領域が分かるオクルージョンマップである。これらのマップを適宜組み合わせて使用することで、種々の画像処理に応用することができる。
一般に、前提技術を用いると始点画像フレームと終点画像フレームとの間で非常に精度の高いマッチングを実行できる。しかしながら、前提技術には画像フレーム間で全単射の条件のもとで写像先を検出するという制約が存在する。そのため、画像フレーム内を移動するオクルーダが存在する場合、オクルーダによって隠されるカバード領域やオクルーダの背後から現れるアンカバード領域においては、現実には相手の画像フレームに写像先が存在しないため、正確な写像先を見つけることができず、他の部分よりマッチングの信頼度が低下するという問題がある。マッチングの精度が低いと、それを利用して算出される動きベクトルの精度も低くなる。
本実施形態では、最初に前提技術による対応点情報を使用して動きベクトルを求める。得られた動きベクトルを利用して信頼領域と非信頼領域とを大雑把に切り分け、非信頼領域については前提技術で求めた動きベクトルを使用せず、周囲の動きベクトルを利用して動きベクトルを推定し、最後にはブロックマッチングを実行して動きベクトルを見つけるようにした。こうすることで、オクルージョン領域においても動きベクトルの精度を高めることができる。
また、本実施形態では、画像フレーム内のシードブロックを起点として、周囲のブロックを同一のセグメントに含められるか否かを判断することによってセグメントを生成するようにした。このようにしてセグメントを作成すると、最終的にオクルージョン領域とそれ以外の領域を精度良く分離することができる。このようにオクルージョン領域を分離できると、例えば動画像の圧縮のために予測画像を作成する場合に、オクルージョン領域以外の部分では前提技術による対応点情報を利用して予測画像を作成する一方、オクルージョン領域においては全単射の制約を外した他のマッチング手法、例えばブロックマッチングを利用して予測画像を作成することができる。このように複数のマッチング手法を使い分けることで、前提技術のみを用いた場合よりも、オクルージョン領域やその近傍において動画像の圧縮復元時の動き予測の精度が改善されるため、復元画像がより高精度となる動画像圧縮を実現することができる。
前提技術により求められる対応点情報を、セグメントの生成プロセスと動きベクトルの改良プロセスの両方に利用していることも本実施形態の特徴のひとつである。これら両プロセスは並列的に処理することができる。
以上、本発明をいくつかの実施の形態をもとに説明した。これらの実施の形態はあくまで例示であり、実施の形態どうしの任意の組合せ、実施の形態の各構成要素や各処理プロセスの任意の組合せなどの変形例もまた、本発明の範囲にあることは当業者に理解されるところである。
本実施形態は、セグメント処理部120によるセグメントの分割と、動きベクトル処理部150による動きベクトルの改良およびマスクの作成という、二つの個別に実施可能なプロセスを組み合わせている。したがって、各プロセスについては、本明細書に示したもの以外のアルゴリズムを使用したプロセスと置換可能である。
1 画像処理装置、 12 画像読込部、 14 画像記憶部、 110 対応点情報生成部、 120 セグメント処理部、 122 シードセグメント生成部、 124 アフィンパラメータ算出部、 126 シードブロック選択部、 128 シードブロック成長部、 130 セグメント拡張部、 132 アフィンパラメータ判定部、 134 画素値判定部、 136 エッジ度判定部、 140 セグメントマージ部、 142 偏差判定部、 144 境界判定部、 146 セグメントマップ出力部、 150 動きベクトル処理部、 152 動きベクトル検出部、 154 信頼領域分離部、 156 オクルージョン検出部、 158 マスク作成部、 160 動きベクトル改良部、 162 レイヤ設定部、 164 差分判定部、 166 レイヤ適用部、 168 ブロックマッチング部。
Claims (10)
- 連続した画像フレームを有する画像データ内の二つの画像フレーム間で画素毎の対応点情報を求めるマッチングを実行し、その中で対応関係の信頼度が低い画素については両画像間でブロックマッチングを実行してブロック毎に対応関係を求めることを特徴とする画像処理方法。
- 連続した画像フレームを有する画像データ内の始点画像フレームと終点画像フレームの間で各画素について対応点情報を求めるマッチングを初期マッチングとして実行し、
マッチングの結果にしたがって動きベクトルを求め、
求めた動きベクトルの信頼度を各画素について判定し、
信頼度が低いと判定された画素については、複数の画素で構成されるブロック単位のブロックマッチングを始点画像フレームと終点画像フレームの間で実行して、改めて動きベクトルを算出することを特徴とする画像処理方法。 - 連続した画像フレームを有する画像データ内の始点画像フレームと終点画像フレームとの間で画素毎の対応点情報を求めるマッチングを実行するマッチング処理部と、
マッチングの結果に基づいて始点画像フレーム内で画素毎の動きベクトルを求める動きベクトル検出部と、
動きベクトルが求められた画像フレームをブロック分割し、各ブロックを、算出された動きベクトルの精度が相対的に高い信頼領域と、動きベクトルの精度が相対的に低い非信頼領域のいずれかに分ける信頼領域分離部と、
信頼領域の動きベクトルを信頼領域と隣接する非信頼領域の画素に適用したとき、適用後の移動先の画素値と終点画像フレーム内の対応する画素の画素値との誤差を計算し、誤差がしきい値より小さい場合、その画素を信頼領域に組み入れて該画素の動きベクトルを信頼領域の動きベクトルで置換する動きベクトル改良部と、
を備えることを特徴とする画像処理装置。 - 非信頼領域に含まれる画素のうち前記動きベクトル改良部によって信頼領域に組み入れられなかった始点画像フレーム内の画素からなるブロックについて、終点画像フレーム内で誤差の最も少ないブロックを網羅的に検索するブロックマッチングを実行するブロックマッチング部をさらに備え、ブロックマッチングの結果求められる動きベクトルで当該ブロックの動きベクトルを置換することを特徴とする請求項3に記載の画像処理装置。
- 連続した画像フレームを有する画像データ内の始点画像フレームと終点画像フレームの間で順方向と逆方向の両方で動きベクトルを求める動きベクトル検出部と、
順方向と逆方向の動きベクトルを画素毎に比較し、両者の大きさが異なる画素がある場合、該画素を内部に含むオブジェクトが同一フレーム内の他のオブジェクトによって隠される領域、または前記オブジェクトが同一フレーム内の他のオブジェクトを背後に隠す領域であるオクルージョン領域に前記画素が含まれると判定するオクルージョン検出部と、
を備えることを特徴とする画像処理装置。 - 前記オクルージョン検出部は、順方向と逆方向のいずれかの動きベクトルが0となった画素について、始点画像フレームには前記画素に対応する点があるが終点画像フレームには対応する点がないという関係が成立する場合、前記画素を含む領域をオクルーダに覆われて隠される領域であるカバード領域と判定し、始点画像フレームには前記画素に対応する点がないが終点画像には対応する点があるという関係が成立する場合、前記画素を含む領域をオクルーダの背後から現れる領域であるアンカバード領域と判定することを特徴とする請求項5に記載の画像処理装置。
- 前記カバード領域とアンカバード領域との和集合を画像フレームのマスクとして利用することを特徴とする請求項6に記載の画像処理装置。
- 画像フレーム内でオブジェクトと背景とのエッジを検出しエッジ画像を作成するエッジ検出部と、
前記マスクと前記エッジ画像との積集合を求めることによって、始点画像フレームまたは終点画像フレーム内で静止しているオブジェクト間のエッジを取り除いて、動物体と静止物体との間のエッジ部分のみを抽出するエッジ抽出部と、
をさらに備えることを特徴とする請求項7に記載の画像処理装置。 - 連続した画像フレームを有する画像データ内の始点画像フレームと終点画像フレームの間で各画素について対応点情報を求めるマッチングを初期マッチングとして実行し、
マッチングの結果にしたがって動きベクトルを求め、求めた動きベクトルの信頼度を各画素について判定し、信頼度が低いと判定された画素については、複数の画素で構成されるブロック単位のブロックマッチングを始点画像フレームと終点画像フレームの間で実行して、改めて動きベクトルを算出する処理をコンピュータに実行せしめることを特徴とするコンピュータプログラム。 - 連続した画像フレームを有する画像データ内の二つの画像フレームの間でマッチングを実行して画像フレーム間の対応点情報を生成するステップと、
マッチングの結果に基づいて画素毎に動きベクトルを算出するステップと、
前記動きベクトルに基づいてオブジェクトが同一フレーム内の他のオブジェクトによってフレーム内で隠される領域、またはオブジェクトが同一フレーム内の他のオブジェクトを背後に隠す領域であるオクルージョン領域を検出するステップと、
前記動きベクトルと前記オクルージョン領域とに基づいて、画像フレーム内で静止している部分と動いている部分とを切り分けるステップと、
を含むことを特徴とする画像処理方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/798,035 US20080278633A1 (en) | 2007-05-09 | 2007-05-09 | Image processing method and image processing apparatus |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008282377A true JP2008282377A (ja) | 2008-11-20 |
Family
ID=39969174
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007286803A Pending JP2008282377A (ja) | 2007-05-09 | 2007-11-02 | 画像処理方法および装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20080278633A1 (ja) |
JP (1) | JP2008282377A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010050463A1 (ja) | 2008-10-31 | 2010-05-06 | 日本電気株式会社 | 携帯端末装置、携帯端末装置の状態切替構造 |
JP2011205282A (ja) * | 2010-03-25 | 2011-10-13 | Fujifilm Corp | 撮像装置及び画像処理方法 |
US9883162B2 (en) | 2012-01-18 | 2018-01-30 | Panasonic Intellectual Property Management Co., Ltd. | Stereoscopic image inspection device, stereoscopic image processing device, and stereoscopic image inspection method |
Families Citing this family (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101336951B1 (ko) * | 2007-11-02 | 2013-12-04 | 삼성전자주식회사 | 휴대 단말기 및 그 파노라마 이미지 촬영 모드 수행 방법 |
JP4952627B2 (ja) * | 2008-03-21 | 2012-06-13 | 富士通株式会社 | 画像処理装置、画像処理方法および画像処理プログラム |
US20100128181A1 (en) * | 2008-11-25 | 2010-05-27 | Advanced Micro Devices, Inc. | Seam Based Scaling of Video Content |
US20110249870A1 (en) * | 2010-04-08 | 2011-10-13 | National Taiwan University | Method of occlusion handling |
JP5791241B2 (ja) * | 2010-07-16 | 2015-10-07 | キヤノン株式会社 | 画像処理方法、画像処理装置、およびプログラム |
US9886552B2 (en) | 2011-08-12 | 2018-02-06 | Help Lighting, Inc. | System and method for image registration of multiple video streams |
US8200020B1 (en) * | 2011-11-28 | 2012-06-12 | Google Inc. | Robust image alignment using block sums |
WO2013086137A1 (en) | 2011-12-06 | 2013-06-13 | 1-800 Contacts, Inc. | Systems and methods for obtaining a pupillary distance measurement using a mobile computing device |
US9020203B2 (en) | 2012-05-21 | 2015-04-28 | Vipaar, Llc | System and method for managing spatiotemporal uncertainty |
US9483853B2 (en) | 2012-05-23 | 2016-11-01 | Glasses.Com Inc. | Systems and methods to display rendered images |
US9286715B2 (en) | 2012-05-23 | 2016-03-15 | Glasses.Com Inc. | Systems and methods for adjusting a virtual try-on |
US20130314401A1 (en) | 2012-05-23 | 2013-11-28 | 1-800 Contacts, Inc. | Systems and methods for generating a 3-d model of a user for a virtual try-on product |
US8446481B1 (en) | 2012-09-11 | 2013-05-21 | Google Inc. | Interleaved capture for high dynamic range image acquisition and synthesis |
JP6025467B2 (ja) * | 2012-09-12 | 2016-11-16 | キヤノン株式会社 | 画像処理装置及び画像処理方法 |
US8866927B2 (en) | 2012-12-13 | 2014-10-21 | Google Inc. | Determining an image capture payload burst structure based on a metering image capture sweep |
US9087391B2 (en) | 2012-12-13 | 2015-07-21 | Google Inc. | Determining an image capture payload burst structure |
US8866928B2 (en) | 2012-12-18 | 2014-10-21 | Google Inc. | Determining exposure times using split paxels |
US9247152B2 (en) | 2012-12-20 | 2016-01-26 | Google Inc. | Determining image alignment failure |
US9710968B2 (en) | 2012-12-26 | 2017-07-18 | Help Lightning, Inc. | System and method for role-switching in multi-reality environments |
US8995784B2 (en) | 2013-01-17 | 2015-03-31 | Google Inc. | Structure descriptors for image processing |
US9686537B2 (en) | 2013-02-05 | 2017-06-20 | Google Inc. | Noise models for image processing |
US9117134B1 (en) | 2013-03-19 | 2015-08-25 | Google Inc. | Image merging with blending |
US9066017B2 (en) | 2013-03-25 | 2015-06-23 | Google Inc. | Viewfinder display based on metering images |
US9131201B1 (en) | 2013-05-24 | 2015-09-08 | Google Inc. | Color correcting virtual long exposures with true long exposures |
US9077913B2 (en) | 2013-05-24 | 2015-07-07 | Google Inc. | Simulating high dynamic range imaging with virtual long-exposure images |
US9940750B2 (en) | 2013-06-27 | 2018-04-10 | Help Lighting, Inc. | System and method for role negotiation in multi-reality environments |
US9615012B2 (en) | 2013-09-30 | 2017-04-04 | Google Inc. | Using a second camera to adjust settings of first camera |
US9986225B2 (en) * | 2014-02-14 | 2018-05-29 | Autodesk, Inc. | Techniques for cut-away stereo content in a stereoscopic display |
US11017311B2 (en) | 2014-06-30 | 2021-05-25 | Hewlett Packard Enterprise Development Lp | Dataset augmentation based on occlusion and inpainting |
CN104394399B (zh) * | 2014-10-31 | 2016-08-24 | 天津大学 | 深度视频编码的三边滤波方法 |
US10019883B2 (en) * | 2016-01-21 | 2018-07-10 | Htc Corporation | Method for monitoring breathing activity, electronic device, and computer-readable storage medium using the same |
WO2017134651A1 (en) * | 2016-02-01 | 2017-08-10 | Shapedo Ltd. | Comparing and merging complex data structures |
US10621446B2 (en) * | 2016-12-22 | 2020-04-14 | Texas Instruments Incorporated | Handling perspective magnification in optical flow processing |
US10097757B1 (en) * | 2017-03-24 | 2018-10-09 | Fotonation Limited | Method for determining bias in an inertial measurement unit of an image acquisition device |
CN115550632A (zh) * | 2022-09-14 | 2022-12-30 | 支付宝(杭州)信息技术有限公司 | 一种视频抖动检测方法、装置以及设备 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6453069B1 (en) * | 1996-11-20 | 2002-09-17 | Canon Kabushiki Kaisha | Method of extracting image from input image using reference image |
JP2927350B2 (ja) * | 1997-03-27 | 1999-07-28 | 株式会社モノリス | 多重解像度フィルタ処理方法およびその方法を利用することのできる画像マッチング方法 |
JP4157686B2 (ja) * | 2001-05-15 | 2008-10-01 | 株式会社モノリス | 画像符号化および復号のための方法および装置 |
KR100924906B1 (ko) * | 2001-11-07 | 2009-11-03 | 엔엑스피 비 브이 | 폐쇄 영역들을 검출하기 위한 폐쇄 검출기 및 방법, 모션 추정기 및 이미지 처리 장치 |
JP2004046565A (ja) * | 2002-07-12 | 2004-02-12 | Minolta Co Ltd | 動物体のエッジ画像取得方法 |
US7336707B2 (en) * | 2003-06-06 | 2008-02-26 | Samsung Electronics Co., Ltd. | Method and apparatus for detecting improper area for motion compensation in video signal |
JP4375080B2 (ja) * | 2004-03-29 | 2009-12-02 | ソニー株式会社 | 画像処理装置および方法、記録媒体、並びにプログラム |
JP4735063B2 (ja) * | 2005-06-10 | 2011-07-27 | ソニー株式会社 | 動画像変換装置、動画像変換方法、及びコンピュータ・プログラム |
-
2007
- 2007-05-09 US US11/798,035 patent/US20080278633A1/en not_active Abandoned
- 2007-11-02 JP JP2007286803A patent/JP2008282377A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010050463A1 (ja) | 2008-10-31 | 2010-05-06 | 日本電気株式会社 | 携帯端末装置、携帯端末装置の状態切替構造 |
JP2011205282A (ja) * | 2010-03-25 | 2011-10-13 | Fujifilm Corp | 撮像装置及び画像処理方法 |
US9883162B2 (en) | 2012-01-18 | 2018-01-30 | Panasonic Intellectual Property Management Co., Ltd. | Stereoscopic image inspection device, stereoscopic image processing device, and stereoscopic image inspection method |
Also Published As
Publication number | Publication date |
---|---|
US20080278633A1 (en) | 2008-11-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2008282377A (ja) | 画像処理方法および装置 | |
JP2008282376A (ja) | 画像処理方法および装置 | |
JP3889233B2 (ja) | 画像符号化方法と装置および画像復号方法と装置 | |
KR102709925B1 (ko) | 투영 기반 메시 압축 | |
JP2008252860A (ja) | 画像処理方法及び画像処理装置 | |
JP3877651B2 (ja) | 画像処理方法と装置 | |
JPH10269355A (ja) | 多重解像度フィルタ処理方法およびその方法を利用することのできる画像マッチング方法 | |
JPWO2005122593A1 (ja) | 動画符号化方法および動画復号方法 | |
JPWO2008108071A1 (ja) | 画像処理装置および方法、画像処理プログラムおよび画像処理プロセッサ | |
JP2012053691A (ja) | 画像処理方法、画像処理装置、及び、プログラム | |
JP4157686B2 (ja) | 画像符号化および復号のための方法および装置 | |
JP4050472B2 (ja) | 画像生成方法、装置およびシステム | |
JP4039858B2 (ja) | 画像マッチング方法と装置、および画像符号化方法と装置 | |
JP3801870B2 (ja) | 多変量空間処理装置 | |
JP2006284704A (ja) | 立体地図簡略化装置及び立体地図簡略化方法 | |
JP2007122751A (ja) | 画像処理のための方法、装置、プログラム | |
JP2011210160A (ja) | 画像処理方法、画像処理装置、プログラム、及びプログラム記憶媒体 | |
JP4023727B2 (ja) | 監視装置、および監視方法 | |
JP3839353B2 (ja) | 画像符号化方法と装置および画像復号方法および装置 | |
JP4524412B2 (ja) | 画像符号化方法、復号方法および画像符号化装置、復号装置 | |
JP3828048B2 (ja) | 画像符号化方法と装置および画像復号方法および装置 | |
JP4220735B2 (ja) | 画像処理方法、及び画像処理装置 | |
JP2007288614A (ja) | 画像圧縮方法、画像圧縮装置、および動画符号化方法 | |
JP2009003656A (ja) | 画像処理装置および画像処理方法 | |
JPWO2007069350A1 (ja) | 画像符号化および復号の方法と装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20080820 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20090608 |