図1は、原画及び中割り画像を含む複数のフレームにより二次元アニメーションを構成する例を示す図である。
図1には、時間軸tが示されている。デザイナーが、原画1と原画2とを描く。時刻t1からt2までの間、原画1を含むフレームが表示される。そして、時刻t3から原画2を含むフレームが表示される。この場合、時刻t2からt3のフレームを空白の画像とすることはできないため、中割り画像Nを作成して、中割り画像Nを含むフレームを時刻t2からt3までの間表示することで、動画がスムーズに表示されるようにすることができる。図1の例では、中割り画像Nを1つ追加する場合を例示しているが、実際には、原画1と原画2との間に、2つ以上の中割り画像を作成する場合もある。図1は、説明を簡略化するために、1つの中割り画像Nが図示されている。
原画1と原画2との中間の動きを表現する画像を生成することができれば、中割り画像Nを自動的に描くことができる。中割り画像Nを描くためには、例えば原画1と原画2における主要な交点の対応関係がわかっていれば、例えば、対応する交点どうしの位置を補間した交点(例えば中点)を求めることによって、中割り画像において対応する交点を求めてもよい。例えば、原画1の交点11と原画2の交点21は、対応する交点であることがわかる。したがって、例えば、交点11の座標と、交点21の座標を補間した交点(例えば中点)の座標)(例えばフレームの画素位置)を求めることによって、中割り画像Nの交点N1の座標を求めることができる。
原画1と原画2における各交点の対応関係は以下のとおりである。すなわち、原画1における交点11、交点12、交点13、交点14は、それぞれ原画2における交点21、交点22、交点23、交点24に対応している。原画1及び原画2におけるこれらの複数の交点の対応付けを発見することができれば、中割り画像Nの複数の交点N1、交点N2、交点N3、交点N4の座標は、例えば、原画1と原画2との対応する交点を補間することで、求めることができる。
上記の処理では、原画1の各交点と原画2の各交点の対応関係が既知であることを前提として説明した。しかしながら、現実には、原画1の各交点と原画2の各交点の対応関係をオペレータの指示に頼ることは、オペレータに多くの労力を強いることとなる。したがって、原画1の各交点と原画2の各交点の対応関係を自動的に推定することが求められる。
図7に移る。図7は、原画1の交点13と原画2の交点23が対応関係にあることを推定するために、複数の閉領域を含む2つの画像のそれぞれに存在する交点の対応付けの例を示す図である。
図7(A)の交点13の周辺を拡大した図が図7(C)である。また、図7(B)の交点23の周辺を拡大した図が図7(D)である。
図7(C)に示されるように、交点13は、背景Yと、閉領域1Bと、閉領域1Cとで作られる境界線上の交点であることがわかる。図7(D)に示されるように、交点23は、背景Yと、閉領域2Bと、閉領域2Cとで作られる境界線上の交点であることがわかる。
ここで、閉領域2Bが閉領域1Bと対応関係にあること、及び閉領域1Cと閉領域2Cとが対応関係にあることが既知であると仮定する。なお、背景Yは、原画1と原画2とで同種の背景であり対応関係にあることが既知であると仮定する。図7(C)における交点13の周囲に存在する複数の閉領域は、左回りに閉領域1B、背景Y、閉領域1Cの順に存在しており、同様に図7(D)における交点23の周囲に存在する複数の閉領域は、左回りに閉領域1Bに対応する閉領域2B、背景Y、閉領域1Cに対応する閉領域2Cの順に存在している。このことから、交点13と交点23は、対応関係にあることを自動的に推定することが可能である。
上記の推定においては、原画1の交点13の周りに存在する複数の閉領域と、原画2の周りに存在する複数の閉領域同士の対応関係が既知であることを前提とした。しかしながら、原画1の複数の閉領域と原画2の複数の閉領域のそれぞれの対応関係を、オペレータの指示に頼ることは、オペレータに多くの労力を強いることとなる。したがって、原画1の各交点と原画2の各交点との対応関係を、可能な限り自動的に推定することが求められる。
図1に戻ると、上記のことは、原画1の閉領域1A、閉領域1B及び閉領域1Cが、それぞれ原画2の閉領域2A、閉領域2B及び閉領域2Cと対応することを、自動的に推定することが求められる。
以上のことから、時間的に連続する2つの原画1及び原画2の時間軸上の中間に位置する中割り画像Nを自動的に生成するためには、上記の手順と逆の推定の処理を以下のとおり実行することが求められる。
(a)原画1と原画2とにおいて、それぞれに存在する閉領域の対応づけを推定すること。
(b)閉領域の対応付けの情報を用いて、原画1と原画2とにおいて、それぞれに存在する閉領域を分ける境界線の交点の対応づけを推定すること。
(c)対応づけられた交点を補間する交点の座標を求めること。
(d)原画1と原画2の対応する閉領域の形状及び補間された交点の座標を用いて、中割り画像を生成すること。
なお、上記(a)の行程において、閉領域の対応付けが行われるため、例えば原画1の彩色の指定を行えば、略自動的に原画2における対応する閉領域の彩色が行える。更に、上記工程(d)において生成された中割り画像においても、原画における閉領域と対応する閉領域がわかるため、中割り画像の閉領域の彩色も略自動で行うことができることとなる。
したがって、上述の従来技術の説明では、中割り画像の作成の工程の後に彩色の工程が位置していたが、本実施形態では、中割り画像の作成工程と、彩色の工程が逆の順序になってもよいことがわかる。
以下、順に、詳細な実施形態を説明する。
<1>実施形態1:閉領域の対応付け
<1−1> 用語の定義
実施形態1では、2つの原画に存在する複数の閉領域の対応付けを自動的に行うための処理の例を示す。なお、以下の実施形態1は、処理の一例であって、この例に限られるものではない。
図2は、原画を構成する各画素の特徴抽出の例を示す図である。
ここで、図2(A)を用いて、以下の定義を行う。
「閉領域」:画像において、線で閉じられた領域を「閉領域」と呼ぶ。たとえば、図2(A)において、閉領域1A、閉領域1C及び閉領域1Bは、それぞれ線で閉じられた「閉領域」である。原画の背景は、閉領域ではない。また、直線及び点も画像も閉領域ではない。
「境界線」:閉領域を囲む線を境界線という。境界線を隔てて閉領域と閉領域又は背景とが隣接することになる。
「隣接」:閉領域Aと閉領域Bとが、境界線Xで接している場合、閉領域Aと閉領域Bとは、境界線Xで隣接しているという。
「交点」:境界線が交わっている点、あるいは境界線の端点(端の点)を交点と呼ぶ。
「画素」:画像に存在する二次元平面に等間隔にメッシュを定義して、メッシュの各交点の座標位置に存在する画像の構成要素を画素と呼ぶ。画素は、ディジタル画像を構成する各画素に対応させてもよい。
「方位」:図2(A)において、画素P1から例えば上下左右の4つの方向を「方位」という。そして上下左右のそれぞれの方位に伸びる半直線U、D、L、Rを定義する。半直線U、D、L、Rは、画素P1からそれぞれ上、下、左、右に伸びる半直線である。なお、図2(A)の例では、上下左右の4つの方位にそれぞれ半直線を定義したが、方位の数は、4つに限られるものではない。
「交差回数」:図2(A)において、例えば、画素P1から上の方位に伸びる半直線Uが、原画1を構成する閉領域1Aとの境界線において、U11で交差している。この場合、画素P1の上方位の交差回数は1であると定義される。同様に画素P1の左の方位に伸びる半直線Lが、原画1を構成する閉領域1A、1C、1Bとの境界線とL11、L12、L13で交差している。この場合、画素P1の左方位の交差回数は3であると定義される。同様に画素P1の下の方位に伸びる半直線Dが、原画1を構成する閉領域A1との境界線と、D11で交差している。この場合、画素P1の下方位の交差回数は1であると定義される。同様に画素P1の右の方位に伸びる半直線Rが、原画1を構成する閉領域1Aとの境界線と、R11で交差している。この場合、画素P1の右方位の交差回数は1であると定義される。
「境界線までの距離」:図2(A)において、例えば、画素P1から、画素P1を含む閉領域と、初めて交差するまでの距離を「境界線までの距離」と定義する。図2(A)において、画素P1の上方位の境界線までの距離は、α1である。境界線までの距離の単位は、たとえば、画素数であってもよい。
たとえば、画素が、ある閉領域に属している場合には、その画素は、いずれの方位においても、必ずその閉領域の境界線と交差することとなるため、交差回数は1以上となる。画素が、背景に属している場合には、交差回数がゼロの場合があり得る。
<1−2> 原画の構成要素
図1及び図18などに示す原画は、多くの場合線画であり、例えば以下のような要素で構成されている。
(a)閉領域(境界線で閉じた領域)
(b)閉領域から分岐する線分(分岐線分)
(c)閉領域に包含され孤立する線分(孤立線分)
2つの原画の間に存在する分岐線分と孤立線分は、閉領域の境界線との相対座標を比較することにより、対応付けが可能である。したがって、まず、2つの原画の間の閉領域の対応付けを行うことが望ましい。実施形態1では、閉領域の対応付けの例を示す。
<1−3> 彩色と中割り画像の生成の順序
上述の、従来技術の例においては、中割り画像を作成した後に、原画と中割り画像の彩色が行われる手順を示した。しかしながら、本実施形態1では、原画の各閉領域の対応付けをまず行うため、この段階で、原画の対応する閉領域に彩色を施すことが可能である。まず、原画間で閉領域の対応付けを行う。そして、複数の原画で、対応する閉領域には、彩色において同じ色が塗られることになる。このようにすれば、彩色を原画毎に行う手間を省くことができる。
加えて、2つの原画の間に閉領域の対応付けが既になされていれば、時間軸上で2つの原画の間に位置する中割り画像をその後生成した場合にも、その中割り画像に含まれる閉領域と2つの原画の閉領域との対応付けが容易に行える。
したがって、まず原画における閉領域の対応付けを行った後、彩色を行い、その後に生成された中割り画像に含まれる閉領域に、略自動的彩色を行うことができる。
<1−4a> 原画の画素の特徴ベクトルの定義
本実施形態では、原画に存在する画素Pの特徴V(P)を、8次元ベクトルで以下のように定義する。
V(P)=(c0,c1,c2,c3,c4,c5,c6,c7) (式1)
ここで、c0乃至c7を、以下のように定義する。なお、βは、定数である。
画素Pから上下左右の境界線までの距離を、それぞれαu、αd、αl、αrとすると、
c0=1/(αu+β) ただし、上方位の交差回数が1である場合。その他の場合c0=0
c1=1/(αr+β) ただし、右方位の交差回数が1である場合。その他の場合c1=0
c2=1/(αd+β) ただし、下方位の交差回数が1である場合。その他の場合c2=0
c3=1/(αl+β) ただし、左方位の交差回数が1である場合。その他の場合c3=0
c4=1/(αu+β) ただし、上下左右の4つの方位の交差回数がいずれも2以上であり、かつ上方位の交差回数が上下左右の4つの方位の交差回数のうち最小である場合。その他の場合c4=0
c5=1/(αr+β) ただし、上下左右の4つの方位の交差回数がいずれも2以上であり、かつ右方位の交差回数が上下左右の4つの方位の交差回数のうち最小である場合。その他の場合c5=0
c6=1/(αd+β) ただし、上下左右の4つの方位の交差回数がいずれも2以上であり、かつ下方位の交差回数が上下左右の4つの方位の交差回数のうち最小である場合。その他の場合c6=0
c7=1/(αl+β) ただし、上下左右の4つの方位の交差回数がいずれも2以上であり、かつ左方位の交差回数が上下左右の4つの方位の交差回数のうち最小である場合。その他の場合c7=0
なお、c0,c1,c2,c3については、交差回数が1の方位が複数ある場合は、交差回数が1の方位に対応する特徴ベクトルの要素に値を持つことになる。また、c4,c5,c6,c7については、交差回数が2以上で最小の値の方位が複数ある場合は、その最小の交差回数の複数の方位に対応する特徴ベクトルの要素に値を持つことになる。
画素Pが背景又は境界線に属する画素である場合には、c0=c1=c2=c3=c4=c5=c6=c7=0とする。
なお、上述の規則は例示に過ぎず、これに限定されるものではない。特徴ベクトルのその他の要素の決定方法としては、たとえば、以下のような規則(a)又は(b)が挙げられる。
(a)上記規則においては、同じ交差回数が複数ある場合には、その複数の方位のすべてに、特徴ベクトルの要素を持つように定めた。しかしながらそのようにせずに、上下左右の方位にあらかじめ優先順位を設けておき、同じ交差回数の方位が複数ある場合には、同じ交差回数を持つ方位のうちで、優先順位の一番高い方位における境界線までの距離のみを採用してもよい。そして、特徴ベクトルのその他の要素は、ゼロとしてもよい。
(b)特徴ベクトルのうちc0,c1,c2及びc3の成分は、交差回数が1となる方位が存在するときに、交差回数が1となる方位のうち、境界線までの距離が一番小さいαを用いた特徴量1/(α+β)を、境界線までの距離が一番小さいαの方位の要素に持つように定めてもよい。そして、特徴ベクトルのうちc4,c5,c6及びc7の成分は、交差回数として1となる方位が存在せずかつ全ての方位で交差回数が2以上となるときに、4つの方位のうちで、境界線までの距離が一番小さいαを用いた特徴量1/(α+β)を、境界線までの距離が一番小さいαの方位の要素に持つようにしてもよい。そして、それ以外の方位の特徴ベクトルの要素はゼロとしてもよい。
上述の例は、いずれもc0及びc4は上方位の成分を表す。c1及びc5は右方位の成分を表す。c2及びc6は下方位の成分を表す。c03及びc7は左方位の成分を表す。
背景に存在する画素の特徴ベクトルの成分は、全てが零であるとしてもよい。
なお、上記の特徴ベクトルは、すでに指摘したように一例であって、課題を達成するための特徴ベクトルは他の形式であってもよい。更に、例えば、特徴ベクトルは、上下左右の4つの方位を次元とする4次元ベクトルであってもよい。4つの方位において最も交差回数の少ない方位の境界線までの距離に基づく関数を、対応する方位の次元の要素として、その他の次元の要素の値を零としてもよい。
<1−4b> 特徴ベクトルの性質
上記の特徴ベクトルは、以下の性質を持つ。
本実施形態1では、原画は、線で構成された線画であると仮定している。原画が描かれる対象をオブジェクトと呼ぶ。オブジェクトは、複数の線画で描かれており、複数の閉領域を含む。
オブジェクトと背景との境界線は、オブジェクト内に存在する閉領域間の境界線よりも、識別性が高い。これは、背景と接している境界線は、オブジェクトのシルエットを構成する輪郭とも呼べる線であり、オブジェクトの内部に存在する線よりも、オブジェクトの特徴をより強く現している境界線であることが経験則上わかっているためである。
上記の交差回数が1である場合は、その方位に存在する境界線が背景との境にあることを示している。これに対して、交差回数が2以上である方位に存在する境界線は、オブジェクト内に入り込んだ境界線であり、背景とは接していない境界線である。
上記に定義した各画素が持つ特徴ベクトルは、少なくとも1つでも、交差回数が1の方位があれば、その方位における、境界線までの距離を優先して利用する。交差回数が1の方位が複数存在する場合には、その複数の方位のうち一番短い、境界線までの距離を用いて特徴ベクトルの成分を生成する。交差回数が1の方位がなければ、交差回数が2以上の方位のうち、最も値の小さい境界線までの距離を採用する。
このように、交差回数が1である境界線までの距離を優先して用いる理由は、背景と接している境界線を重要視するためである。
そして、採用された境界線までの距離をαとすると、1/(α+β)を計算し、上記8次元ベクトルの所定のベクトル成分の値とし、その他のベクトル成分の値はゼロとする。ここで、βは、定数である。定数βをαに足す理由は、境界線上でαがゼロとなるため、ベクトル成分の値が無限大になるのを避けるために設定する。また、どの程度の閉領域の大きさを対象とするか、どの程度、境界線の近辺で大きな値の成分を特徴として持たせるかにも依存する。境界線までの距離αが分母に存在するため、ベクトルの成分1/(α+β)は、閉領域内において境界線に近い画素であればあるほど、大きな値をとること(増加関数)になる。このようにαを分母に置くことによって、閉領域のうち、境界線に近い部分に対して、より大きな特徴量を持たせることができる。このように、境界線に近い部分に対して、より大きな特徴量を持たせることは、境界線の形状をより重視するように特徴を持たせることができる。これは、オブジェクトの閉領域の中央付近よりも、境界線に近い部分にその形状の特徴が現れるため、この特徴ベクトルを用いることにより、後述するコスト関数を用いて、原画同士の閉領域の対応付けを高い確率で推定できるようにするためである。なお、特徴量1/(α+β)は、一例であって、この特徴量に限定されるものではない。特徴量は、閉領域の内部において、境界線付近で大きな値をとるような関数を選ぶことにより、閉領域の境界線付近を強調する関数であることが望ましい。
<1−5> 画素の特徴ベクトルの例
(1)画素P1の特徴ベクトル(図2(A))
画素P1の4つの方位の交差回数は以下のとおりである。
上方位において画素P1は、U11で交差しているため、上方位の交差回数は1である。
右方位において画素P1は、R11で交差しているため、右方位の交差回数は1である。
下方位において画素P1は、D11で交差しているため、下方位の交差回数は1である。
左方位において画素P1は、L11、L12、L13で交差しているため、左方位の交差回数は3である。
そして、画素P1は、交差回数1回の方位が上方位、右方位、下方位に存在する。上方位の境界からの距離がα1Uである。右方位の境界からの距離がα1Rである。下方位の境界からの距離がα1Dである。したがって、画素P1の特徴ベクトルV(P1)は、以下のとおりである。
V(P1)=(1/(α1U+β),1/(α1R+β),1/(α1D+β),0,0,0,0,0)
(2)画素P2の特徴ベクトル(図2(B))
画素P2の4つの方位の交差回数は以下のとおりである。
上方位において画素P2は、U21、U22で交差しているため、上方位の交差回数は2である。
右方位において画素P2は、R21、R22で交差しているため、右方位の交差回数は2である。
下方位において画素P2は、D21、D22で交差しているため、下方位の交差回数は2である。
左方位において画素P2は、L21、L22で交差しているため、左方位の交差回数は2である。
そして、図2(B)においては、交差回数が1である方位は存在せず、画素P2は、交差回数2以上の方位のうち最も小さい交差回数の値は2であり、その方位は、4つの方位全てである。上方位の境界線からの距離がα2Uである。右方位の境界線からの距離がα2Rである。下方位の境界線からの距離がα2Dである。左方位の境界線からの距離がα2Lである。したがって、画素P2の特徴ベクトルV(P2)は、以下のとおりである。
V(P2)=(0,0,0,0,1/(α2U+β),1/(α2R+β),1/(α2D+β),1/(α2L+β))
(3)画素P3の特徴ベクトル(図2(C))
画素P3の4つの方位の交差回数は以下のとおりである。
上方位において画素P3は、U31、U32で交差しているため、上方位の交差回数は2である。
右方位において画素P3は、R31、R32で交差しているため、右方位の交差回数は2である。
下方位において画素P3は、D31で交差しているため、下方位の交差回数は1である。
左方位において画素P3は、L31、L32で交差しているため、左方位の交差回数は2である。
そして、図2(C)においては、交差回数が1である方位が存在するため、画素P3の特徴を計算する場合には、下方位の境界線からの距離が、交差回数1の方位のα3Dを採用する。したがって、画素P3の特徴ベクトルV(P3)は、以下のとおりである。
V(P3)=(0,0,1/(α3D+β),0,0,0,0,0)
<1−6> 2つの原画を構成する閉領域を大きい順に並べた管理表の作成
図1に示す原画1と原画2とに含まれる複数の閉領域を対応づける前処理として、各原画に存在する複数の閉領域を、面積の大きい順に並べた表を作ってもよい。この表を作ることによって、面積の大きい閉領域から対応付けの評価を行うことができる。このような表を作る理由は、面積が大きい閉領域について、対応関係を早期に確定させて、対応候補から除いておく方が、面積の小さい閉領域の対応関係を先に確定してゆくよりも、閉領域の対応関係が見つけやすく、その対応関係の確度も高くなるという経験則があるからである。したがって、対応する可能性の高い順番に対応関係をチェックするようにするために、このような表を作る意味がある。
図3(A)は、図1の原画1の3つの閉領域(閉領域1A、閉領域1B、閉領域1C)を、面積の大きい順に並べた管理表である。No.は閉領域の大きい順を示し、閉領域インデックスは、閉領域にラベリングされたインデックス(例えば1A)が付される。インデックスは、閉領域毎にユニークな識別を自動的に付与してもよい。画素数は、それぞれの閉領域に含まれる画素の数を表し、面積に比例した数値となるため、面積を現す数として代用してもよい。なお、画素数は、例えば、閉領域の面積が大きい順にソートする場合に用いてもよい。「対応付け」の欄は、全て零(0)が初期値として記憶されている。後述する閉領域の対応付けが終了した閉領域には、例えば1を記憶させるようにする。そして、1が記憶された閉領域は、対応付けの処理が終了したことを示すため、以後の対応付けの処理の対象から除いてもよい。また、後述するように、対応付けが一部分しか完了していない閉領域は、「対応付け」を1に変更せず、0のままとして、その後の対応付けの処理の対象となるようにしてもよい。この処理の例は後述する。
図3(B)は、図1の原画2における各閉領域を、面積の大きい順に並べた管理表である。
<1−7> 閉領域の対応付け
原画1と原画2とにそれぞれ存在する閉領域の対応を推定する例を以下に示す。
閉領域の対応付けを行う際には、すでに述べたように、経験則として、一方の原画(例えば原画1)の閉領域の面積が大きい閉領域は、他方の原画の対応している可能性の高い閉領域を見つけやすくかつその対応関係の確度も高いといえる。したがって、以下では、まず原画1で一番大きい面積の閉領域から順に取り出し、取り出された閉領域を以下に例示するコスト関数Eを用いて近似度を計算する。例えば、コスト関数Eが小さいほど近似していると判断し、コスト関数Eを最小にする移動ベクトル(最適な移動ベクトル)を求め、更に最適な移動ベクトルを用いて、原画1から取り出された閉領域と最も重なりの大きな原画2の閉領域を見つけて、この組み合わせを、対応する閉領域のペアと推定してもよい。或いは、このようにして見つけた閉領域のペアを表示して、オペレータに確認を促してもよい。この際に、オペレータが、対応付けの推定が誤っていることを入力させるようにして、このペアの対応付けをキャンセルさせてもよい。この場合には、次に重なりの大きな対応する閉領域をみつけて、ペアの候補として表示してもよい。あるいは、次に最適なベクトルを用いて、原画1の閉領域と最も重なりの大きな原画2の閉領域を見つけて、次のペアの候補として表示してもよい。
例えば、図3(A)の原画1に存在するi個の閉領域Di(3個の閉領域1A、1B、1C)のうちで一番大きな閉領域を占める閉領域1Aをまず取り出し、閉領域1Aに含まれる画素p全てに対して、図3(B)の原画2に重ねて、移動ベクトルδを動かしながら閉領域A1に対するコスト関数E(Di,δ)を式2によって計算してもよい。
ここで、p+δは、原画2とその背景とを移動ベクトルδだけずらし、閉領域Di(例えば閉領域1A)と重ねたときの、閉領域Di(例えば閉領域1A)内の画素pの位置に重なる原画2又は背景の位置である。V1(p)は、原画1の閉領域Di(例えば閉領域1A)の画素位置pにおける画素の特徴ベクトルである。そして、V2(p+δ)は、原画2及びその背景の画素位置p+δにおける画素の特徴ベクトルである。原画1の閉領域Di(例えば閉領域1A)の画素位置pに重なる原画2が閉領域内部である場合(例えば閉領域2A内部)には、原画1と原画2の特徴ベクトルの差の二乗を計算し積算する(式2上段)。原画1の閉領域Di(例えば閉領域1A)の画素位置pに重なる原画2が閉領域内部でない場合(例えば背景や境界線)には、式2の下段の計算を行い、定数γを積算する。γを積算する意味は、背景部分との重なりについては、比較的大きな定数γを加えることにより、コスト関数が大きくなり、ペナルティを与えるためである。γは、原画の全体のピクセル数あるいは、閉領域のピクセル数によって妥当な値を選択する。たとえば、γ=2などの定数を設定すればよい。
なお、原画2のp+δの位置が閉領域内部でない場合、式2の下段の計算を行うこととしたが、たとえば、すでに対応付けがなされた原画2における閉領域は、背景等と同じ扱いとして、式2の下段の計算を行ってもよい。
なお、特徴ベクトルは、既に式1に示した。
移動ベクトルδは、例えば画素を単位とする二次元の移動ベクトルであり、原画1の閉領域Di(例えば閉領域1A)を取り出し、原画2及びその背景を移動ベクトルδだけ移動させて両者を重ね合わせるために用いるベクトルである。そして、上記式2のコスト関数Eを最小にする二次元の移動ベクトルδ* iを求める。例えば、閉領域1Aと原画2及びその背景とをδの値を変化させながら、コスト関数Eが最小となるδ* iを以下の式のように求める。
δ* i=argminδE(Di,δ) (式3)
ここで、argminδE(Di,δ)とは、E(Di,δ)の値を最小とする引数δを求めることを意味する。
そして、例えば原画1の1つの閉領域Di(例えば閉領域1A)に対して、網羅的にδを変化させて原画2及び背景を重ねてコスト関数Eを計算し、コスト関数Eを最小にするように、上記式3を満足するδ* iを求める。あるいは、コスト関数Eの網羅的な計算の途中において、コスト関数Eの最小値(計算途中の極小値)が所定の計算回数の中で更新されなくなった場合には、網羅的なδの計算を途中で打ち切って、それまでに得られたコスト関数の最小値を採用してもよい。あるいは、大きな面積の閉領域に対してのコスト関数Eの計算においては、例えば、原画1の閉領域の1つおきの画素に限定して、コスト関数Eを計算し計算量を減少させることで、計算速度を速めてもよい。
この移動ベクトルδ* iを用いたときに、閉領域Di(例えば閉領域1A)と原画2との間で、閉領域の重なる面積(例えば画素数)が最大となる原画2の閉領域が原画1の閉領域Diに対応する原画2の閉領域であると推定することができる。
以下、図4を用いて、対応関係の推定の一例を具体的に示す。
説明をわかりやすくするために、原画1の閉領域1Cに対応する原画2の閉領域を求める例を、図4を用いて示す。
図4(A)において、原画1の閉領域1Cを取り出し、原画2にそのまま重ねる。そして、この状態で、閉領域C1についてコスト関数E(C1,δ)を求める。δの初期値はゼロベクトルである。なお、移動ベクトルδは、図4では、1Cを動かすように描かれているが、式2では、原画2の項の座標位置に足されている。移動ベクトルδは、相対的な重ね合わせの位置関係を規定するベクトルであるから、図においては、直感的にわかりやすくするために、原画1から取り出した閉領域を移動させるベクトルとして描いている点に留意すべきである。式2と図4の記載は、相対的な表現に関して、同義である。
その後、移動ベクトルδを網羅的に変化させて、コスト関数E(C1,δ)を最小にするδ*を図4(B)に示されているように求める。
図4(B)に示されるように、原画2の閉領域のうち、閉領域C1との重なりの面積が一番大きな、原画2の閉領域を求める。この場合、閉領域2Cと閉領域1Cとは、領域S1において重なっている。そして、閉領域2Aと閉領域1Cとは、領域S2において重なっている。これらの重なりのうち、一番大きな重なりは、S2であることがわかる。したがって、一番大きな重なりの領域を共有する閉領域1Cと閉領域2Cとが対応することが推定される。
このようにして、原画1の閉領域1Cと原画2の閉領域2Cとの対応付けの推定がなされた。この推定を表示して、オペレータに確認を促してもよい。あるいは、オペレータの確認を得ずに、対応付けを確定させてもよい。仮に、オペレータが、対応付けの推定が間違っている旨を入力した場合には、次に重なりの面積が大きい領域(図4(B))の場合には、閉領域1Cと閉領域2Aとのペアを表示して、次の候補の対応を推定し表示してもよい。
あるいは、オペレータが、対応付けの推定が間違っている旨を入力した場合には、コスト関数が移動ベクトルδ*の次に小さくなった移動ベクトルδを用いて、C1との重なりの面積が一番大きな原画2の閉領域を、閉領域C1に対応する次の閉領域の候補として、推定し、表示して、オペレータに確認を促してもよい。
図5は、閉領域の対応表が示されている。以上の結果によって、原画1と原画2にそれぞれ存在する閉領域の対応関係が確定し、図5の対応表が記憶される。この対応表を用いて、原画1において、彩色を行えば、原画2における彩色は自動的に行うことができる。
<1−8> 領域の対応付けの動作
図6は、領域の対応付けの例を示すフローチャートである。
ステップS100でパラメータi及びjを初期化する。パラメータiは、例えば図3(A)に示すように原画1の閉領域を面積の大きい順に並べた際の順番(No)であってもよい。iは、原画1の各閉領域を一意に特定できる番号であればよい。パラメータjは、例えば図3(B)に示すように原画2の閉領域を面積の大きい順に並べた際の順番(No)であってもよい。jは、原画2の各閉領域を一意に特定できる番号であればよい。
ステップS102で、一方の画像(原画1)から1つの閉領域i(例えば閉領域1A)を抽出する。
ステップS104で、閉領域Diと他方の原画とからコスト関数E(Di,δ)を算出する。
ステップS106で、δを網羅的に変化させたかがチェックされる。チェックが「いいえ」であれば、ステップS132に移る。チェックが「はい」であれば、ステップS108に移る。
ステップS132でδを所定の値だけ変化させる。
ステップS108で、コスト関数E(Di,δ)が最小となる場合の移動ベクトルδ* 1を保存する。
ステップS110で、δ* 1を用いて、閉領域Diと重なる面積が最大の他方の原画の閉領域Djを閉領域Diに対応する領域と推定する。
ステップS152で、閉領域の対応を表示し、オペレータに確認を促してもよい。対応が間違っていると入力された場合には、次のペアの候補を表示させてもよい。また、オペレータの指示により、閉領域の正しい対応関係が入力されてもよい。この時に、彩色の指示を促してもよい。
ステップS154で、対応関係が確定された原画1の閉領域Diと原画2の閉領域Djとを、その後の対応関係の処理の対象から除いてもよい。この操作は、図3の対応付けフラグを用いてもよい。
ステップS112で、i=Iとなったかがチェックされる。すなわち、原画1における閉領域全てに対して、対応付けの処理が完了したかがチェックされる。このチェックが「いいえ」であれば、ステップS134に移る。このチェックが「はい」であれば、全体の処理を終了させてもよい。
ステップS134でiをインクリメントする。この操作によって、原画1の次の閉領域をステップS102で抽出できる。
実施形態1の処理フローの概要は以上のとおりである。
<2> 実施形態2:交点の対応付け
<2−1> 交点の対応付けの処理の詳細
以下に、原画1と原画2のそれぞれに存在する交点の対応付けについて説明する。交点の対応付けの情報は、原画1と原画2とを補間した画像の生成に利用することができる。
図7は、複数の閉領域を含む2つの画像のそれぞれに存在する交点の対応付けの例を示す図である。
すでに説明した処理によって、原画1と原画2との間の各閉領域の対応付けが完了していることを前提とする。図7(A)の原画1の丸で囲んだ閉領域の拡大図が図7(C)に示されている。そして、図7(B)の原画2の丸で囲んだ閉領域の拡大図が図7(D)に示されている。既に、閉領域2Bは閉領域1Bと対応していることがわかっており、閉領域2Cは閉領域1Cと対応していることがわかっている。また、原画1及び原画2には、同じ背景Yが存在している。
既に説明したように、図7(C)における交点13の周囲に存在する複数の閉領域は、左回りに閉領域1B、背景Y、閉領域1Cの順に存在しており、同様に図7(D)における交点23の周囲に存在する複数の閉領域は、左回りに閉領域1Bに対応する閉領域2B、背景Y、閉領域1Cに対応する閉領域2Cの順に存在している。したがって、交点13に接する閉領域の位置関係のパターンは、交点23に接する閉領域の位置関係のパターンと一致していることがわかる。このことから、交点13と交点23とが対応関係にあることを自動的に推定することが可能である。このようにして、対応付けされた閉領域の情報を用いることによって、対応する交点の対応付けを自動的に推定することができる。この推定結果を画面に表示して、オペレータに最終的な対応関係の確定を促してもよい。或いは、推定された交点の対応関係を、自動的に確定させてもよい。
図8は、複数の閉領域を含む2つの画像のそれぞれの交点の対応づけの結果を示す図である。対応づけられた交点の情報は、図8に示す交点の対応表によって、記憶することができる。
図9は、複数の閉領域を含む2つの画像のそれぞれに存在する交点の対応付けの際に発生する第1の課題の例を示す図である。図9においては、前提として、閉領域1Aと2A、閉領域1Bと2B、閉領域1Cと2C、閉領域1Dと2D、がそれぞれ対応する閉領域であると仮定する。
この場合、図9(A)の原画1においては、交点P11の周囲に、左回りに閉領域1A、1D、1Bが存在する。これに対して、図9(B)の原画2においては、交点P21に閉領域2A、2D、2Cが存在する。この例では、交点P11と交点P21とは、周囲に同じパターンで対応する閉領域が存在しないため、対応する交点ではないと判断される。原画1の交点P11に対応する交点が原画2には存在しない。
しかしながら、図9(A)の2つの交点(交点P11及び交点P12)及び図9(B)(交点P21及び交点P22)をまとまりとして捉えた場合には、原画1の交点P11と交点P12の周りに左回りに閉領域1A、1D、1C,1Bが存在し、原画2の交点P21と交点P22の周りに左回りに閉領域2A、2D、2C,2Bが存在し、閉領域の対応関係を考慮すると、同一のパターンで閉領域が存在していることがわかる。
図9の例においても、以下の処理を行うことにより、交点どうしの対応付けを行うことができる。
図10は、複数の閉領域を含む画像に存在する交点及び境界線を修正する処理の例を示す図である。
図9(A)において原画1を選択する、原画1の代わりに原画2を選択してもよい。図10(A)に示されるように選択された原画1に存在する2つの交点(交点P11、交点P12)のうち、1つを削除する。図10(A)の場合には、交点P12を消去する。削除する交点は、いずれの交点であってもよい。これによって、閉領域の境界線Ldb、Lbc、Lcdが残る。なお、交点のうち、交点の角度が小さい方の交点(すなわち交点P12でLcdとLbcが領域1C側でなす角度の方が、交点P11でLadとLabが領域1A側でなす角度より小さいため、この場合は、交点P12)を優先して削除するようにしてもよい。
図10(B)に示すように、境界線LbcをLdbに沿って交点P11まで延ばす。延長されたLbcの交点P11の位置の交点を交点P111とする。
図10(C)に示すように、境界線LcdをLdbに沿って交点P11まで延ばす。延長されたLcdの交点P11の位置の交点を交点P112とする。
なお、上記操作の後、Ldbは削除してもよい。なお、Ldbの削除のタイミングはこの時に限られるものではなく、他のタイミングで削除してもよい。
図10(D)に示すように、この結果、交点P12が削除され、境界線Lbcが延長され、交点P11の位置に交点P111が設定された。境界線Lbcが延長され、交点P11の位置に交点P112が設定された。このため、交点P11は、交点P111と交点P112の2つに分割されたと考えることができる。なお、延長された境界線Lbcと、延長された境界線Lcdとは、離れて描かれているが、図を分かりやすくするために離れて描かれているのであって、実際は、同一線上に存在する。その他の図においても同様である。
図11は、複数の閉領域を含む画像に存在する交点及び境界線を修正する処理の結果に基づいて、交点の対応付けの例を示す図である。
先に示した図10の処理によって、図11(A)では、交点P12が削除され、境界線Lbcが延長され、交点P11の位置に交点P111が設定された。境界線Lbcが延長され、交点P11の位置に交点P112が設定された。このため、交点P11は、交点P111と交点P112の2つに分割された。
図11(B)に示すように、原画2は、そのまま2つの交点P21及び交点P22が存在している。図11(C)の交点の対応表に示されるように、原画1の交点P111と原画2の交点P21とを対応づける。そして、原画1の交点P112と原画2の交点22とを対応づける。そして、図11(A)の交点P111と交点P112との間は、長さ零の境界線が存在していることとする。また、交点P111は、境界線Labと接続させ、交点P112は境界線Ladと接続させる。交点P11は削除してもよい。なお、交点P11の削除のタイミングは、この時に限られるものではなく、他のタイミングで削除してもよい。
以上の処理を行うことにより、図9のように対応付けが行えなかった交点に対しても、いずれかの原画の1つの交点を削除し、上記の処理を施すことによって、交点の対応付けが行える。
[交点の対応付けの動作]
図12は、図9に示したように、原画1と原画2のそれぞれの1つの交点どうしでは対応付けができない場合であって、2つの交点をまとまりとして捉えた場合に、それらの周囲に存在する複数の閉領域のパターンが同一である場合を発見するフローチャートである。理解を助けるために、図12のフローチャート及び下記の説明において、括弧書きで図9に示した符号を例示として示す。なお、図12のフローチャートは、図9の例に限定されるものではない。
ステップS300において、一方の原画(原画1)において点の対応付けが行えなかった複数の点のうち、2つの閉領域(1D,1B)の境界線上(Ldb)に存在する隣り合う2つの交点(P11,P12)の組qの集合Qを抽出する。
ステップS302において、他方の原画(原画2)において点の対応付けが行えなかった複数の点のうち、2つの閉領域(2A,2C)の境界線(Lac)上に存在する隣り合う2つの交点(P21,P22)の組rの集合Rを抽出する。
ステップS304は、ステップS314との間で、集合Qに含まれる要素qを、1つずつ取り出して処理を行う繰り返しの処理を示す。
ステップS306は、ステップS312との間で、集合Rに含まれる要素rを、1つずつ取り出して処理を行う繰り返しの処理を示す。
ステップS308で、qに含まれる2つの交点(P11,P12)の少なくとも1つに接する複数の閉領域の並びのパターン(左回りに1A,1D,1C,1B)が、rに含まれる2つの交点(P21,P22)の少なくとも1つに接する複数の閉領域(2A,2D,2C,2B)のそれぞれに対応する一方の原画の閉領域の並びのパターン(左回りに1A,1D,1C,1B)と一致するか否かをチェックする。
ステップS310は、ステップS308におけるチェックが一致しているか否かを判断する。チェックが一致していればステップS320に進む。チェックが一致していなければ、ステップS312に進む。
ステップS320で、rとqとが対応すると認識し、s=(r,q)として、要素sを集合Sに加え、記憶する。
以上の処理を行うことにより、図9に示すような、2つの交点どうしの対応関係を抽出することができる。
図13は、図12で抽出した2つの交点の組を要素sとする集合から、要素sを1つずつ取り出して、交点の対応付けを行う処理を示すフローチャートである。理解を助けるために、図12のフローチャート及び下記の説明において、括弧書きで図9に示した符号を例示として示す。
ステップS400は、集合Sから1つずつ要素sを取り出して、ステップS412との間で処理を繰り返すことを示している。
ステップS402で、1つの交点の削除を行う。なお、図12のフローチャートは、図9の例に限定されるものではない。なお、以下に示すように、集合を定義する。
s∈S
s=(q,r)
q∈交点P11,交点P12 (一方の原画(原画1)に含まれる交点)
r∈交点P21,交点P22 (他方の原画(原画2)に含まれる交点)
このステップS402においては、一方の原画の交点の組(q)に含まれる2つの交点(P11,P12)のうちいずれか1つの交点(P12)を削除する。
ステップS404で、削除された交点(P12)に接続されており、残された交点(P12)に接続されていない2つの境界線(Lbc,Lcd)を特定する。
S406で、特定された2つの境界線(Lbc,Lcd)の各々を、削除された交点(P12)と残された交点(P11)とを結ぶ境界線(Ldb)に沿って、残された交点(P11)まで延長する。
ステップS408で、延長された2つの境界線(Lbc,Lcd)の一方の境界線(Lbc)の延長された端に第1の交点(P111)を生成し、前記一方の境界線(Lbc)を境に隣接する2つの閉領域(1B,1C)に対応する他方の原画(原画2)の閉領域(2B,2C)の境界線(L2bc)上の点(P21)を、生成された前記第1の交点(P111)に対応させる。交点P111は、境界線Labに接続させる。同様に、延長された2つの境界線(Lbc,Lcd)の他方の境界線(Lcd)の延長された端に第2の交点(P112)を生成し、前記一方の境界線(Ldc)を境に隣接する2つの閉領域(1D,1C)に対応する他方の原画(原画2)の閉領域(2D,2C)の境界線(L2cd)上の点(P22)を、生成された前記第2の交点(P112)に対応させる。交点P112は、境界線Ladに接続させる。
ステップS410で、残された交点(P11)を削除する。生成された2つの交点(P111,P112)は、長さ零の境界線で結ばれているとする。境界線Ldbを削除してもよい。交点P11を消去してもよい。
以上の処理を行うことによって、図9のパターンに対して、交点の対応付けの処理を行うことができる。
図14は、図11、図12及び図13の処理が適用された2つの原画に対する中割り画像Nを生成する例を示している。
図14の中割り画像Nに示されるように、原画1の交点P111が中割り画像の交点NP111に対応し、原画1の交点P112が中割り画像の交点NP112に対応する。そして、原画1では長さが零であった境界線が、中割り画像Nにおける交点NP111と交点NP112との間に境界線Lacとして表示されていることがわかる。このようにして、交点の対応付けを行うことにより、中割り画像を自動的に生成することが可能である。
なお、中割り画像Nを生成する場合には、各境界線の形状についても補間を行い、なめらかな中割り画像が生成されるようにしてもよい。或いは、対応する交点、対応する境界線、対応する閉領域の情報等を用いて、モーフィングの技術により、中割り画像Nを生成するようにしてもよい。また、2つの原画にそれぞれ存在する閉領域を構成しない線及び点等については、閉領域及び交点の対応関係から、それらの対応関係を推測することが可能である場合が多い。なお、2つの原画に存在する閉領域、線、点などのうち、対応関係が推測不可能であるものについては、オペレータに対して、対応関係の指定を行うよう促してもよい。最終的に、オペレータの指示もなされておらず、対応関係が不明である閉領域、線、点などについては、周囲の閉領域、線、点など補間の位置関係から、中割り画像における位置関係を決定してもよい。モーフィングの技術に見られるように、2つの原画に存在する全ての構成要素の対応関係が判明していなくても、モーフィングの技術等を利用することにより、中割り画像を生成することは可能である。
図15は、図14に示した例と同様の例であって、中割り画像を複数生成した場合の例を示している。原画5と原画6との間に、時間軸に沿ってN01からN10までの10個の中割り画像が生成されている。原画及び中割り画像は、それぞれ、動画の1フレームに対応する。図15の場合には、原画5、10個の中割り画像、原画6の12のフレームが連続して表示され、スムーズな動画が再生されることとなる。
図16は、交点の無い閉領域の境界線に端点を付与することで交点を作る例を示す図である。この例の場合には、原画7と原画8とにそれぞれ1つずつの交点(交点P51及び交点P61)が図示されている。それぞれの原画における閉領域の交点の数は、複数であってもよい。この場合には、まず、2つの閉領域を1つの平面上に置く。これら2つの閉領域の間のハウスドルフ距離を求める。次に一方の閉領域の境界線上の全ての点について、他方の閉領域の境界線上の点からの距離が最小となるそれぞれの点を求め、一方の閉領域の点と他方の閉領域の点とを対応づけた2点の組の集合を作る。それぞれの組において、2点間の距離がハウスドルフ距離と等しい組を、対応のついた交点としてそれぞれの閉領域に付与する。なお、2点間の距離がハウスドルフ距離と等しい点の組が複数ある場合は任意の組を選択して対応のついた交点としてもよい。
ハウスドルフ距離dHは、一般に、2つの集合Aと集合Bがある場合に、集合Aのどの点であっても少なくとも距離dHだけ進めば集合Bのどれかの点に到達できる。同じく、集合Bのどの点であっても少なくとも距離dHだけ進めば集合Aのどれかの点に到達できる。このような距離dHをハウスドルフ距離と言う。図16の場合には、同一平面上に置いた、原画7と原画8において、原画7に含まれる複数の画素が集合Aに対応し、原画8に含まれる画素が集合Bに対応する。
なお、必ずしもハウスドルフ距離を採用する必要はなく、閉領域で、形状の似ている位置の点を、対応する交点として採用してもよい。また、パターン認識などの手法を用いて、類似するパターン上に存在する点どうしを対応する交点としてもよい。
図17は、2つの原画の片方が孤立した閉路を持つ場合の交点の処理の例を示す図である。原画9は、孤立した閉路と直線が存在している。原画10Aでは、直線と円が接触しており、交点P101及び交点P102が存在している。
この場合には、原画9と原画10Aとで、交点の対応付けが行えない。したがって、以下のようにすることが望ましい。
すなわち、原画10Bに示されるように、交点P101及び交点P102を削除する。そして、交点P101に接続していた直線と、交点P102に接続していた直線を延長して、一つの直線にする。さらに、交点P101に接続していた円の端点と、交点P102に接続していた円の端点とを接続して、一つの円形状の図を作る。次に、原画9及び原画10Bに、図16で示した手法を用いて新たな交点を設ける。例えば、交点P093と、交点P103を設ける。この場合、図16を用いて説明したように、平面上に2つの円形状の図を置いた場合に、これらの2つの円の間のハウスドルフ距離を用いて、交点を付与してもよい。
図18は、原画をレイヤーに分けて、処理を行う例を示す図である。原画11には、笛の上部11Aと笛の下部11Bが存在している。そして、原画12にも、笛の上部12Aと笛の下部12Bが存在している。このような笛の部分の画像の周辺では、2つの原画における交点の対応付けが単純に行えないことがある。すなわち、図7及び図9に関連して例示した交点の対応付けの処理によっても、なお、対応付けが行えない交点を含む閉領域が存在することがある。このような閉領域に対しては、その閉領域を切り出し、別のレイヤー(層)に移動させ、交点の対応付けの処理をレイヤー毎に別個に行うことが有効である。
すなわち、原画11及び原画12の笛の部分をそれぞれ別のレイヤーにコピーし、基の原画からは、笛の画像部分を削除する。この操作を行うと、人間の部分のレイヤーと笛の部分のレイヤーに原画を分けて、交点の対応付けの処理をすることができる。レイヤーに分けるか否かの判断手法としては、図9のパターンが周辺に多く発生する閉領域を他のレイヤーに移すことが有効である。
なお、一部の閉領域を他のレイヤーに移し、他のレイヤーに移した画像を原画から削除することが望ましい。この際に、削除された部分の周辺が空白となってしまい、閉領域が存在しない部分が発生する場合がある。すなわち、一部の閉領域を他のレイヤーに移動させた残りの画像の空白部分には、閉領域が存在せず、閉領域が開いた形の分岐線が存在する場合がある。この場合には、分岐線をそのまま残して、分岐線の端の点(端点)を特定し、一方の原画と他方の原画とで、端点どうしの対応付けを行ってもよい。あるいは、対応付けが行えない交点が残ってしまう場合には、オペレータに対して指示を行うよう促してもよい。
あるいは、上記の場合には、閉領域を削除した部分の周辺に存在する線分を延長して、つなぎ合わせる処理を行うことにより、閉領域を形成することが可能である。原画をレイヤーに分けて、交点の対応付けを行う際には、新たに生成された閉領域の対応付けの処理を行うことが必要となる場合がある。この場合には、レイヤーに移す前に存在した閉領域を結合させることにより、多くの場合対処することができる。なお、対処することができない場合には、再度、閉領域の対応付けを部分的に再度行うことも有効である。
<3> 実施形態3:中割り画像の形成の変形例
以上のようにして、2つの原画の閉領域の対応付け、交点の対応付けを順番に行うことにより、2つの原画の各部の対応付けが行える。
中割り画像は、2つの原画の交点の位置を補間することで行えるが、閉領域の対応関係、閉領域の境界線の形状、対応する交点を結んだ境界線の対応関係等をも勘案して、総合的に原画の補間を行うことがより自然な中割り画像を作成する上で有利である。
また、閉領域の画像の対応付けの際に、オペレータに彩色の指示を促すことで、彩色の処理と、閉領域の確認とをまとめてオペレータに促すことができる。
例えば原画1と原画2との閉領域の対応付けを行い、次に原画2と原画3の閉領域の対応付けを行うように、順番に対応付けを行うようにしてもよい。この場合、原画1と原画2との閉領域の対応付けの際に彩色の指示をオペレータが行えば、原画2と原画3との閉領域の対応付けの際の彩色は、略自動で行えることとなる。しかも、中割り画像の彩色は、原画の彩色から容易に推定できるので、中割り画像の彩色も略自動で行えることとなる。
<4> 実施形態4(閉領域の対応付けの変形例)
図18を用いて、一方の原画の2つの閉領域が、他方の原画における1つの閉領域に対応する場合の処理の例を以下に説明する。
図18において、原画11における閉領域110及び閉領域111は、原画12における閉領域121に対応している。この場合には、閉領域の対応付けが多対1の形式になっている。このような状況は、閉領域の前側に、多のオブジェクトが重なっている原画の場合に発生しやすい。このような場合にも対処するためには、例えば、以下のような処理を行えばよい。
まず、原画11の閉領域110に対応する原画12の閉領域を、上述の実施形態1で推定する。この推定によって、閉領域110に対応する閉領域として121が推定される。この時点で、対応する閉領域110と閉領域121とを画面に表示して、オペレータに確認を促す。オペレータは、閉領域の対応付けとして、原画11の閉領域111が残っていることがわかる。このため、推定は、部分的に正しいことを入力する。この入力においては、原画11の領域110は、以後の閉領域の対応の対象から除外し、閉領域121は、以後の閉領域の対象から除外しないように、オペレータが指示を行えばよい。この指示は、図3に示した表の対応付けの欄におけるフラグの処理で実現できる。すなわち、領域110の対応付けのフラグを1として、以後の対応付けの対象から除外する。これに対して、領域121の対応付けの欄は、フラグを0のままとし、以後の対応付けにおいても、考慮されるようにすればよい。オペレータは、この時、併せて、彩色の指示を行ってもよい。オペレータの彩色の指示によって、閉領域110と閉領域121が同じ色で彩色されるが、閉領域121は、閉領域の推定対象としての状態を保持することができる。
その後、原画11の閉領域111の対応付けの処理の際に、再度、原画12の閉領域121が、対応する旨の推定がなされることとなるので、この対応付けが表示され、オペレータへの指示の入力が促された際に、オペレータは、対応付けが正しいことを入力する。このオペレータの指示によって、図3に示す閉領域111の対応付けのフラグと、閉領域121の対応付けのフラグが、いずれも0から1に置き換えられ、これらの閉領域は、以後の閉領域の対応付けの推定の処理の対象から除かれることとなる。
なお、図3の対応付けの欄を使わないこととすれば、閉領域の対応付けとして、1対多、多対1、多対多の閉領域の対応付けを許容することができる。この場合にも、対応付けが正しいか否かの指示をオペレータが入力するように促してもよい。
<5> ハードウエア構成
図19は、各実施形態のハードウエア構成1700を示す図である。
ハードウエア構成1700は、CPU1710、メモリ1720、通信制御部1730、入出力インタフェース1740、表示制御部1750、ドライブ制御部1760、及び印刷制御部1770を有する。
そして、通信制御部1730には、インターネットなどのネットワークが接続される。入出力インタフェース1740には、入出力装置1742が接続される。表示制御部1750には、表示装置1752が接続される。ドライブ制御部1760は、記憶媒体1762を読み書きすることができる。印刷制御部1770には、プリンタ1772が接続される。
記憶媒体1762は、RAM、ROM、CD−ROM、DVD−ROM、ハードディスク、メモリーカード等であってもよい。
以上説明した実施形態の方法は,コンピュータにより実行され得る。また,実施形態の方法は,コンピュータに実行させるプログラムとして,インプリメントされてもよい。プログラムの一部又は前部は、オペレーティングシステムにより実行されてもよい。また、プログラムの一部がハードウエアにより実現されてもよい。プログラムは記憶媒体1762に記憶されてもよい。
なお,上述の実施形態において,方法のステップ又はプログラムのステップは、矛盾のない限り,同時に,又は順序を入れ替えて実行されてもよい。
以上の実施形態は,ハードウエアの装置としてインプリメントされ得る。
以上の実施形態は,請求項に記載された発明を限定するものではなく,例示として取り扱われることは言うまでもない。
なお、原画及び中割り画像に含まれる閉領域並びに背景は、領域の一例である。原画、中割り画像、背景は、画像を構成する要素の例である。境界線は、閉領域の輪郭の一部を構成する要素となり得る。
<6>実施形態5
実施形態5は、領域が回転を伴う場合における領域の補間の手法の例を示している。
なお、以下に詳述する実施形態5においては、処理の対象となる画像が必ずしも輪郭線でとじられた閉領域である必要はないため、「領域」の語を用いることとする。例えば、「領域」とは、「閉領域」の集合、「閉領域」の一部分、或いは輪郭線でとじられていない領域であってもよい。なお、以下の実施形態では、「領域」を「画像」と表現する場合もある。
図20は、領域が回転を伴う場合に、補間を用いて中割画像を生成する例を示す図である。なお、各ペットボトルの画像は、複数の領域の集合で示されている。以下、複数の領域の集合体であるペットボトルに注目して説明する。なお、以下の説明は、ペットボトルに含まれる複数の領域の各々にも当てはまる。
図20(A)は、時刻tAにおけるペットボトル2001の画像と、時刻tCにおけるペットボトルの画像2003とが与えられた場合に、時刻tBにおける中割画像2002を生成する例を示している。図20(A)では、中割画像2002が、適切な大きさで形成されており、理想的な中割画像の例を示している。
図20(B)は、時刻tAにおける画像2011と、時刻tCにける画像2013において、対応する点を線形的に補間する手法を用いた場合の中割画像2012を示している。ペットボトルのキャップの位置を直線2022で結び、ペットボトル2011の画像のキャップの位置とペットボトル2013の画像のキャップの位置の中間点に中割画像のペットボトル2012のキャップを描いている。同様に、ペットボトルの底についても、直線2021を用いて、中割画像のペットボトル2012の底を描いている。
上記のような単純な線形補間を、回転する画像(領域)に適用すると、中割画像(領域)が、不自然に小さく描かれてしまうという不都合が生じる。
本実施形態は、このような回転を伴う画像における中割画像を自然な画像に(図20(A)における中割画像2002のように)生成する手法の例を示している。その詳細は、以下に詳述する。
図21は、中割画像の領域を生成する例を概念的に示す図である。
図21(A)は、ペットボトル2101とペットボトル2103の回転の中心が、それぞれ回転の中心Oa、回転の中心Ocであることが、オペレータによって指定されている。また、ベクトルVaは、ペットボトル2101の向きを示すベクトルであり、ベクトルVc1は、ペットボトル2103の向きを示すベクトルである。これらのベクトルは、回転の中心が与えられれば、画像認識によって、特徴点Fa及び特徴点Fcを認識することによって、コンピュータなどの機械が認識することもできる。あるいは、ペットボトルの特徴点に向かうベクトルではなく、ペットボトル2101の面積重心Ga及びペットボトル2103の面積重心Gcを求め、回転の中心Oa及び中心Ocからペットボトルの面積重心Ga及びGcに向かうベクトルをそれぞれ求めることによって、それぞれのペットボトルの向き(領域の向き)を認識してもよい。あるいは、それぞれのペットボトルの向きは、オペレータの指示によって与えられてもよい。この操作によって、時間とともに回転する向きと、角度θが求まる。
いずれにしても、ペットボトルの向きを表すベクトルVaとベクトルVc1とが認識されることによって、図21(A)に示される角度θが求まる。
図21(B)は、認識された角度θを使って、ペットボトル2013をペットボトル2103cに示されるように、逆の向きに(反時計回りに)角度θだけ回転させる。この操作によって、ペットボトル2101とペットボトル2103cとの向き(領域の向き)が一致する。ペットボトル2103cのベクトルVc2は、ベクトルVaと同じ向きを向くことになる。このように、ペットボトル2101とペットボトル2103cの向きを一致させることによって、ペットボトルの回転の影響を取り除いた状態が得られる。なお、ペットボトルの回転は、ペットボトル2103ではなく、ペットボトル2101に対して行われてもよい。この場合には、ペットボトル2101の回転の方向は、時計回りに角度θだけ回転させればよい。この操作によっても、ペットボトルの向きを合わせることができる。あるいは、ペットボトル2101とペットボトル2103の両者を回転させ、両者の向きが合うようにしてもよい。この場合の操作については、図22を用いて後述する。
図21(C)は、ペットボトル2101とペットボトル2103cとを補間した画像のペットボトル2102bを生成したことを示した図である。この場合、説明を単純化するために、補間して生成されたペットボトル2102bは、ペットボトル2101とペットボトル2103cと同じ形状となっているが、補間された画像は、元となった2つの画像を補間したものとなるため、与えられた2つの画像とは別の画像となることが通例である。
補間されたペットボトル2102bは、回転の中心Ob及び特徴点Fbが補間により特定されている。そして、補間して得られた中心Obから特徴点Fbへ向かうベクトルVb1が特定される。補間は、中割画像の表示される時刻に基づいて、線形補間を行うのが一般的であるが、線形補間に限られるものではない。与えられた2つの画像にそれぞれ対応する点の対が与えられれば、中割画像の表示される時間的な位置に基づいて、中割画像の中に、これらの点の対に対応する点が特定される。
図21(D)は、補間された画像2102bを中割画像の時間的な位置に応じて、角度を戻す向きに(時計回りに)角度φだけ回転させて、中割画像を形成する例を示した図である。ペットボトル2102bを回転させるには、例えば、回転の中心Obから延びるベクトルVb1をφだけ回転させてベクトルVb2となるようにペットボトル2102dを得ればよい。φの値は、画像2101の時刻をtA、画像2103の時刻をtC、中割画像2102dの時刻をtBとすれば、角度φは、
φ=θ×(tB−tA)/(tC−tA)
によって求めることができる。
以上の処理を行えば、図21(D)の中割画像のペットボトル2102dは、図20(B)に示した中割画像のペットボトル2012よりも自然な中割画像となる。以上の説明では、複数の領域を含むペットボトルの例を示したが、ペットボトルに含まれる複数の領域の各々に対して、上記の処理を施してもよいことはすでに述べたとおりである。
図22は、中割画像に含まれる領域を生成する他の例を概念的に示す図である。
図22(A)には、時刻tA(不図示)に表示される既知の画像の領域2251と、時刻tC(不図示)に表示される既知の画像の領域2253が示されている。
領域2251には、領域2251の回転の中心座標Oa1から、特徴点Fa1に向かうベクトルVa1が存在する。そして、領域2253には、領域2253の回転の中心座標Oc1から、特徴点Fc1に向かうベクトルVc1が存在する。回転の中心座標Oa1及びOc1はオペレータにより与えられるのが一般的であるが、与えられた2つの領域2251及び領域2253の形状が近似しており、かつ周囲の画像の位置関係を考慮して、パターン認識により、回転の中心座標を推定してもよい。なお、回転の中心座標は、必ずしも、領域内に存在するとは限らない点に留意すべきである。
以下に、時刻tB(不図示)における中割画像の中の対応する領域を求める他の例を説明する。
図22(B)に示されるように、例えば、ベクトルVa1とベクトルVc1とをそれぞれ垂直に上向き方向にすることで、領域2251と領域2253との向きを一致させ、それぞれ領域2261及び2263を得ている。なお、このように垂直に上向きするのは一例であって、他の方向に2つのベクトルの向きを一致させてもよい。ここでは、ベクトルVa1をδ1だけ時計回りに回転させてベクトルVa2を得ている。またベクトルVc1を反時計回りにδ2だけ回転させてVc2を得ている。
図22(C)は、向きを一致させた領域2261と領域2263とを用いて、時刻tB(不図示)における中割画像に含まれる領域2262を得たことを示している。領域2262は、時刻tBを基にして、線形補間を用いることで生成することができる。例えば、特徴点Faと対応する特徴点Fcとの線形補間により、特徴点Fa及び特徴点Fcに対応する中割画像における特徴点Fb2を得ることができる。中割画像におけるその他の特徴点、閉領域の形状、ベクトルなども、同様に線形補間によって生成することができる。あるいは特徴点Fb2を使わずに、ベクトルVa2またはベクトルVc2と平行にベクトルVb2を作ってもよい。ベクトルVb2は、ベクトルVa2及びベクトルVc2に対応し、領域2262の向きを特徴づけるものである。
図22(D)は、中割画像における最終的な領域2272を求める処理を示している。すなわち、ベクトルVb2を角度γ1だけ反時計回りに回転させることにより、ベクトルVb3を得る。加えて、特徴点Fa1及びFc1に対応する特徴点Fb3を得ることができる。その他の特徴点、閉領域の形状、なども、ベクトルVb3の回転に伴って取得することができる。このようにして得られた領域2272は、時刻tBにおける中割画像に含まれ、領域2251及び領域2253に対応する領域である。
図22(D)には、ベクトルの回転角度の関係が示されている。ベクトルVa1とベクトルVc1との角度をθ1とすれば、ベクトルVa1とベクトルVb3とのなす角度φ1は、以下の計算により求められる。
φ1=θ1×(tB−tA)/(tC−tA)
そして、ベクトルVb2とベクトルVb3とのなす角度γ1は以下の計算により求めることができる。
γ1=δ1−φ1 又は
γ1=θ1−φ1−δ2
ただし、θ1=δ1+δ2
図23は、中割画像の領域を生成する手順の例を示す図である。回転を含む領域に対して、本実施形態を適用する手順を以下に説明する。
[ステップS2200]オペレータの指示に基づき、中割画像を作成するための元となる2つの画像を取得する。次にステップS2202に進む。
[ステップS2202]オペレータの指示に基づき、2つの画像の各々から、回転する領域を、画像の他の部分の領域と異なるレイヤーに、それぞれ配置する。このステップS2202は、回転する領域を画像の他の部分と分離して処理を行うために行うものである。画像に含まれる各領域の重なりの順番を考慮して、適切なレイヤーに、回転する領域を配置する。この場合、2つの画像の対応する領域を配置するレイヤーが対応付けられるように、2つの画像の対応する領域の各々のレイヤーの順番をそろえるか、レイヤーが対応していることがわかるようにすることが望ましい。なお、対応する領域のペアを求める手法については、すでに述べたとおりである。もちろん、オペレータにより、対応する領域が特定されてもよい。
なお、上記のようにレイヤーに分けるのは、回転する領域と他の画像の部分とを別々に処理する一例である。したがって、回転する領域を他の画像の部分と別個に処理できるように、グループ分けをするなどの操作を行って、回転する領域が他の画像の領域と区別できるようにする他の方式を採用してもよいことは言うまでもない。次にステップS2204に進む。
[ステップS2204]オペレータの指示に基づき、回転する領域の回転の中心の位置をそれぞれ特定する。
2つの画像の領域における対応する領域は、例えば画像に描かれた同一のオブジェクトの一部の領域である場合がほとんどである。この場合、回転の中心については、ほとんどの場合、オブジェクトに対する相対位置は変化しないが、オブジェクト自体が移動していたり、視点が移動していたりする場合もあるため、必ずしも2つの画像に存在する対応する領域の回転の中心座標は一致するとは限らない。したがって、2つの対応する領域のそれぞれの中心座標は、オペレータの指示により取得することが望ましい。
なお、2つの対応する領域のうち一方の回転の中心座標Ocをオペレータから取得しない実施形態も存在し得る。例えば、図21を例にすれば、領域2101と領域2103が十分に似た形状をしている場合、中心座標Oaを元にしてプログラムで中心座標Ocを求めることができる。あるいは、例えば領域2101と領域2103が似た形状ではない場合、領域2101と領域2103との対応点の組(1組または複数組)をユーザに指定して貰い、この対応点を元にしてプログラムで中心座標Ocを求めることもできる。また、画像認識を用いて、2つの領域の位置関係を調べることにより、一方の領域の回転の中心を元にして、他方領域の回転の中心を求めてもよい。なお、領域の回転の中心は、領域の外に存在する場合もあることに留意すべきである。次にステップS2206に進む。
[ステップS2206]オペレータの指示に基づき、回転の角度θと回転方向を特定するか、回転する領域の重心又は特徴的な位置と回転の中心との位置関係から、回転の角度θと回転方向を特定する。
領域の回転の角度は、例えば、2つの対応する領域の回転の中心から、領域の面積重心の位置へのベクトルを求めることで、ベクトルの回転角度と、回転方向を求めてもよい。なお、面積重心は一例であって、面積重心ではなく、2つの対応する領域に存在する対応する特徴点を認識して、2つの領域のそれぞれにおいて、回転の中心から特徴点までのベクトルを求めて、求まった2つのベクトルを用いるようにしてもよい。次にステップS2208に進む。
[ステップS2208]2つの回転する領域のうちの一方又は両方を、適切な角度だけ回転させることで、2つの回転する領域の向きを一致させる。2つの領域の向きが一致するように適切な角度を計算すればよい。
例えば、時刻tAに表示される画像Aとその後の時刻tCに表示される画像Cがある場合であって、領域が時間とともに時計回りにθだけ回転する場合を例にする。画像Cの領域の回転の中心の周りに、画像Cの領域を−θだけ、回転させる。この回転によって、2つの領域の向きが一致する。なお、上記の例とは逆に、画像Aの領域をθだけ回転させて、両者の領域の向きを合わせてもよい。次にステップS2210に進む。
[ステップS2210]向きが一致した2つの領域を補間して、m番目の中割画像の領域を生成する。ステップS2208で、領域の向きを一致させているため、例えば線形的な補間を用いても、領域の回転の影響を受けずに、m番目の中割画像の領域の補間の処理が行える。次にステップS2212に移る。
[ステップS2212]なお、ステップS2210で補間された領域は、回転の影響を排除しているため、ステップS2212で、回転を適切な量だけ戻す操作を行う。回転を戻す回転角度φは、以下の式に従って計算する。
φ=θ×m/(n+1)
ただし、nは中割画像の枚数
また、回転する2つの領域の両方を回転させて、2つの領域の向きを揃えて、補間された領域を形成した場合には、補間された領域が、上記の回転角度φを使った操作による向きと同じ向きに向くように、補間された領域を向ければよい。
なお、中割画像を形成する元となった両端の既知の画像の領域は、最終的な動画を生成する際には、最初に与えられた画像を用いればよく、中割画像の領域を求めるために回転させているが、回転を元に戻す操作は不要である。
例えば、画像Cを‐θだけ回転させた場合には、生成された中割画像の領域は、φだけ回転させる。この操作によって、n枚の中割画像のうちのm番目の中割画像に含まれる補間された領域が適切な角度に回転される。なお、画像Aをθだけ回転させた場合には、補間された中割画像を、−θ+φだけ回転させることになる。
以上が、回転を含む中割画像の補間処理の一例である。
図24は、2つの領域が関節で連結している場合に、領域の位置の修正をする例を示す図である。なお、関節とは、2つの領域が、その関節において連結しており、かつ2つの領域の各々が、その関節を軸として回転することができる連結点をいう。
回転する領域が各画像に2つ存在する場合を例にして説明する。このような領域が各画像に3つ以上存在する場合にも、2つ存在する例を順に組み合わせることにより、同様の処理が行える。
領域どうしの関節点は、離れることはないため、以下の手順によって、関節点の位置を一致させる処理を行う。以下にその手順について図24を用いて説明するが、詳細な具体例は、図25以降に説明する。
[ステップS2302]回転を含む領域がそれぞれ別のレイヤーに配置される。この操作は、各領域を別個に操作するために行われる。すなわち、領域ごとに回転の中心及び回転の角度は異なるからである。なお、必ずしも、レイヤーを用いる必要はなく、各領域が別個に操作できるようになっていればよい。次にステップS2304に進む。
[ステップS2304]レイヤーの階層の順番と関節点Oが指定される。関節点Oについては、オペレータにより指定されてもよい。通常、レイヤーの階層は、画像の前面に表示されるレイヤーを上に位置させるユーザインタフェースが採用されている場合が多いが、これに限られるものではない。なお、関節点は、例えば2つの領域を関節点で連結する機能を有するため、2つの領域の各々に関節点が指定されるが、画像においては、これらの2つの関節点は重なって見えることとなる。次にステップS2306に進む。2つの画像のそれぞれに存在する対応する領域は、レイヤーの階層の順番を合わせるか、2つの画像のレイヤーの階層うち対応する領域については、レイヤーの階層に対応関係を設定させて、領域の対応関係がわかるようにすることが望ましい。
[ステップS2306]階層ごとの補間された領域を作成し、補間後の関節点Omiを求める。(m:補間画像のインデックス,i:階層番号)
このステップS2306では、階層の順番が同じであれば対応関係を有する領域であるとしている。階層ごとに、すでに述べた図23に示した領域の補間処理を施す。次にステップS2308に進む。
[ステップS2308]階層i,階層jの関節点の位置の差v=Omi−Omjを求める。この場合、階層iの領域と階層jの領域が関節点Oで連結されていることを前提としている。階層iの補間された領域の関節点をOmiで表している。そして階層jの補間された領域の関節点をOmjで表している。補間画像においても、本来であれば、関節点は一致するはずであるが、レイヤーの階層毎に補間の処理を施しているため、補間された領域の関節点の位置OmiとOmjとは、一致しない場合がある。処理はステップS2310に進む。
[ステップS2310]階層jの補間された領域をvだけ平行移動させる。補間された領域の関節点の位置OmiとOmjとが一致しない場合には、その差V=Omi−Omjだけ階層jの領域を移動させて、関節位置OmiとOmjとの位置を一致させる。
なお、どちらの補間された領域を移動させるかは、画像全体が不自然にならないように取り決めておくことが望ましい。例えば、人間であれば、身体から一番近い骨の関節は固定し、身体から離れている骨の関節を移動させて、両者の関節を一致させるようにすることが自然になる場合が多い。関節が2つ以上ある場合は、身体から近い関節から順番に、補間された領域の関節を一致させるようにすればよい。
別の例として、人物の歩行のアニメーションでは、前記の例とは逆に、接地している足を固定して、「足,脛,腿,腰」の順番で補間された領域の関節を一致させるようにすればよい。
図25は、2つの領域が関節で連結している2つの画像の例を示す図である。左から右に時間軸が設定されており、時刻tAで、腕2420を振り上げ、太鼓2400をたたこうとしている。時刻tCで、腕2440は、太鼓2400をたたいている。
時刻tAにおける腕2420の状態を以下に説明する。まず、上腕2424には、回転の中心P2aが存在しベクトルV2aの方向を向いている。前腕2422には、回転の中心P1aが存在し、ベクトルV1aの方向を向いている。
時刻tCにおける腕2440の状態を以下に説明する。まず、上腕2444には、回転の中心P2bが存在しベクトルV2bの方向を向いている。前腕2442には、回転の中心P1bが存在し、ベクトルV1bの方向を向いている。
したがって、時刻tAの上腕2424は、時刻tCの上腕2444に至るまでにθ2だけ時計回りに回転している。時刻tAの前腕2422は、時刻tCの前腕2442に至るまでにθ1だけ時計回りに回転している。
図26は、領域を分割して、レイヤーの別の層に分ける例を示す図である。時刻tAにおける腕2520を上腕2522と前腕2524との2つの領域に分ける。そしてそれぞれを別のレイヤーの層に配置する。なお、レイヤーは図示されていないが、2つの領域が別個に操作できるようになっていればよく、必ずしもレイヤーの階層というユーザインタフェースを用いなければならないわけではない。
時刻tCにおける腕2540を上腕2542と前腕2544との2つの領域に分ける。そしてそれぞれを別のレイヤーの階層に配置する。
図27は、2つのレイヤーのそれぞれから中割画像を形成したときの中割画像における領域のずれを示す図である。時刻tAの腕2620と時刻tCの腕2640とを、図26のようにレイヤーの別の階層に分け、対応するそれぞれの領域を補間して時刻tBにおける腕2630を作成した。腕2630は、補間された領域である上腕2632と前腕2634が合成されたものとなるが、ひじの部分で、ずれが生じていることがわかる。このずれの原因は、レイヤーの層に分けてそれぞれの対応する層の領域を補間したことによって生じたものである。
図28は、関節点を与えることによって、中割画像における2つの領域のずれを解消する例を示す図である。上述のように図27の補間された領域の合成の際に生じたひじの部分のずれを解消するために、以下に示すような処理を行う。なお、この処理のフローについては、図24で説明している。
時刻tAの腕2720の画像について、上腕2724と前腕2722の関節部分をオペレータに指定させる。図示されるように、上腕の関節位置2725と前腕の関節位置2723が示されている。関節の座標は一致しているので、上腕2724の関節位置2725と前腕2722の関節位置2723は同じ位置に示されている。オペレータは、ひじの関節位置を指定することにより、上腕2724の関節位置2725と前腕2722の関節位置2723が取得される。
時刻tCの腕2740の画像について、上腕2744と前腕2742の関節部分をオペレータに指定させる。図示されるように、上腕2744の関節位置2745と前腕2742の関節位置2743が示されている。関節の座標は一致しているので、上腕2744の関節位置2745と前腕2742の関節位置2743は同じ位置に示されている。オペレータは、ひじの関節位置を指定することにより、上腕2744の関節位置2745と前腕2742の関節位置2743が取得される。
それぞれのレイヤーの層に対して、補間を適用し、補間画像2730aを得る。この場合、上腕2734aの関節位置2735aと、前腕2732aの関節位置2733aとはずれが生じている。このずれを解消するために、前腕2732aをベクトル2738の方向に平行移動させる。
その結果が腕2730bに示されている。上腕2734bの関節位置2735bと、前腕2732bの関節位置2733bとの位置が一致している。この場合には、体からより離れている前腕2732bを平行移動させることが望ましい。
以上の処理によって、関節位置が一致した。補間された領域である上腕2734bと前腕2732bとは、ずれのない望ましいつながり方になる。
以上の処理は、領域が3つ以上の場合も同様にして順次処理することによって行うことができる。
なお、特徴点及び関節点は、領域の外に存在していてもよい。
特徴点は、任意の点の一例である。関節位置及び関節の座標は、関節点の一例である。
なお、請求項においては、主要な要素に符号を付している。これは、請求項の理解を助けるための符号であり、必ずしも図面の符号を正確に反映したものではない点に留意すべきである。また、請求項に記載された符号は、請求項に記載された発明の要旨及び発明の技術的範囲を図面の記載の内容に限定するためのものではない。