以下、本発明の実施の形態による色追尾処理装置の一例について図面を参照した説明する。
図1は、本発明の実施の形態による色追尾処理装置を備える撮像装置の一例についてその構成を示すブロック図である。
図示の撮像装置は撮影レンズユニットなどの光学系100を備えており、光学系100によって撮像素子101に被写体像(光学像)が結像される。撮像素子101は被写体像に応じた電気信号(アナログ信号)を出力する。撮像素子101の出力であるアナログ信号はA/D変換部102によってデジタル信号(撮像データ)に変換される。
デジタル信号処理部104は、現像部119および追尾処理部120を有しており、現像部119は当該撮像データを画像処理(現像処理)して現像データ(画像データ)とする。なお、現像部119では、例えば、撮像データに基づいてベイヤー画像の同時化処理を行って、RGBからYcrCbへの変換を行って現像データを得る。追尾処理部120については後述する。
図示の操作部103には撮影モードの切り替えスイッチおよびシャッター釦などが備えられており、CPU108は操作部103の設定状態を判定して、撮影モード(例えば、静止画撮影モードおよび動画撮影モード)の切り替えを行う。また、CPU108は撮影モードに応じてデジタル信号処理部104で用いられるパラメータを切り替える。
CPU108から光軸調整制御部109に撮影モードの設定状態(以下設定撮影モードと呼ぶ)が与えられ、光軸調整制御部109は設定撮影モードに応じて光軸調整部105を制御する。例えば、光軸調整制御部109は設定撮影モードに応じて光軸調整部105を制御して、光軸調整部105によって光学系(100)および撮像素子101を調整する。これによって、フォーカスの調整、ズームイン、ズームアウト、および絞り調整などが行われる。
タイミングジェネレータ107はCPU108の制御下で、ドライバ(Driver)106を介して撮像素子101の駆動タイミングを決定する。これによって、撮像素子101の各画素について水平駆動および垂直駆動が行われて、撮像素子101は被写体像に応じたアナログ信号を出力する。
デジタル信号処理部104から出力される現像データは、データ(DATA)バス112およびメモリ制御部113を介して、一旦メモリ114に記録される。データ圧縮/伸長部110は、メモリ114に記録された現像データを圧縮処理して圧縮画像データとする。そして、データ圧縮/伸長部110はCPU108の制御下で圧縮画像データをDATAバス112および記録制御部117を介して記録媒体(118)に記録する。なお、データ圧縮/伸長部110は、例えば、JPEG圧縮処理によって現像データを圧縮処理する。
前述のデジタル信号処理部104は、メモリ114に記録された現像データを読み出して画像縮小処理し、当該縮小画像データを再度メモリ114に記録する。そして、デジタル信号処理部104はメモリ114から縮小画像データを読み出して、LCD(液晶ディスプレイ)制御部115を介してLCD116に画像として表示する。これによって、撮影の際にメモリ114に記録した現像データをライブ画像としてLCD116に表示することができる。
LCD116はタッチパネルを備えるようにしてもよい。この場合には、図示はしないが、タッチパネルの操作に応じた操作信号がCPU108に送られて、CPU108は当該操作信号に応じた制御を行う。
図2は、図1に示すデジタル信号処理部104に備えられた現像部119の動作を説明するためのブロック図である。
現像部119は、センサー補正部300および現像処理部301を有しており、センサー補正部300にはA/D変換部102から撮像データが入力される。センサー補正部300は、CPU108の制御下で撮像データについて光学系100で生じる色収差を補正する。さらに、センサー補正部300は、撮像データに関して撮像素子101のゲインバラツキを行うとともに、欠陥画素の判定を行って欠陥画素を補正する。そして、センサー補正部300は補正済み撮像データを出力する。この補正済み撮像データはDATAバス112を介してメモリ114に記録するようにしてもよい。
センサー補正部300から補正済み撮像データが現像処理部301送られる。現像処理部301は、CPU108の制御下で補正済み現像データを現像処理して現像データを得る。ここで現像処理では、例えば、ベイヤー画像について同時化処理およびガンマ補正処理などを行って、RGB(ベイヤー画像)からYCrCb変換後の現像データが生成される。そして、前述したように、現像処理部301は現像データを、DATAバス112を介してメモリ114に記録する。
図3は、図1に示すデジタル信号処理部104に備えられた追尾処理部120の動作を説明するためのブロック図である。
追尾処理部120では、画像を数画素毎に水平・垂直積分(ブロック積分)するブロック積分処理が行われる。さらに、追尾処理部120では、ブロック積分の結果得られた画像とレジスタ207に記憶された特徴色パターンを示す特徴色パターン情報とに基づいて特徴色パターンマッチングを行う特徴色パターンマッチング処理が行われる。
ブロック積分処理においては、DATAバス112を介してメモリ114に記録された現像データを読み出し、水平積分部201は、CPU108の制御下で数画素毎に画素データを水平積分して、水平積分結果を得る。続いて、垂直積分部202は、CPU108の制御下で水平積分結果について数ライン毎に垂直積分を行ってブロック積分画像データを生成する。そして、垂直積分部201はブロック積分画像データ(以下単にブロック積分画像とも呼ぶ)を、DATAバス112を介してメモリ114に記録する。
特徴色パターンマッチング処理においては、DATAバス112を介してメモリ114からブロック積分画像データを読み出して、水平積分部201および垂直積分部202をスルーして、LINE(ライン)メモリ204にLINE単位でブロック積分画像データをブロック積分情報として記録する。
なお、メモリ114から現像データを読み出して、水平積分部201および垂直積分部202によってブロック積分を行いつつ、LINEメモリ204にLINE単位でブロック積分情報を記録するようにしてもよい。このようにすれば、特徴色パターン情報を取得した後、連続してキャプチャーされる現像データについてブロック積分を行ってブロック積分画像をメモリ114に記録しつつ特徴色パターンマッチング処理を行うことができる。
また、LINEメモリ204を、例えば、垂直積分部202における垂直積分用メモリとして共有するようにしてもよい。第1の実施形態では、後述するように、1種類の特徴色パターン情報はブロック積分画像において3×3の画素情報であるので、LINEメモリ204はマッチング用に3LINE分、垂直積分用に1LINE分程度のSRAMで構成されているものとする。
YUV2RGB変換部206は、LINEメモリ204からブロック積分情報を読み出してYUVデータをRGBデータに変換する。
いま、ユーザがLCD116に備えられたタッチパネルをタッチ操作して追尾対象の被写体を指定したとすると、特徴色パターン抽出部209は、当該指定操作の位置情報(つまり、座標情報)とブロック積分画像の座標情報との相関関係に応じて3×3のブロック積分情報を特徴色パターン情報として抽出する。そして、特徴色パターン抽出部209はレジスタ207に特徴色パターン情報を記憶する。
なお、ここでは、3×3の特徴色パターン情報を9種類(特徴色パターンA〜特徴色パターンI)備える場合について説明するが、個々の特徴色パターン情報がNxM(NおよびMの各々は1以上の整数)でなくともよく、さらには矩形でなくともよい。また、特徴色パターン情報の種類も複数であればよい。但し、被写体の形状によって回路規模が増減することがないように、回路構成として有限個のパターン数を備えるようにする。
形状判別部210は、ユーザが指定した位置情報における特徴色パターン情報を用いて追尾対象である被写体の色形状を示す色形状情報を求める。第1の実施形態では、後述するように、色形状情報に応じて、特徴色パターン情報を複数配置する。
次に、マッチング処理部208はレジスタ207に記録された複数の特徴色パターン情報とYUV2RGB変換部206から送られたブロック積分情報(ここでは、RGBデータ)とを比較して、比較結果としてマッチング結果を出力する。なお、複数の特徴色パターン情報を用いたマッチング処理については後述する。
ベクトル演算部212はパターンマッチング結果に基づいて当該パターンの移動量をベクトルとして求める。さらに、ベクトル演算部212は複数の特徴色パターンについて位置関係を示すパターン位置関係情報を求める。
重み情報付加部211は、ベクトル演算部212で得られたパターン位置関係情報およびマッチング処理部208で得られたマッチング結果を用いて、各特徴色パターンに重み情報を付加する。なお、重み情報の付加については後述する。
マッチング結果に基づいて、CPU108は後述するようにして追尾対象である被写体の移動距離を示す移動距離情報を求める。さらに、CPU108は移動距離情報に基づいて光軸調整制御部109を制御して光軸調整部105によって光学系100を調整する。これによって、追尾対象である被写体の移動に合わせてフォーカスが調整される。また、CPU108は移動距離情報に応じて、LCD116に表示された追尾対象を示す追尾枠表示を更新して、ユーザに追尾対象である被写体の明示を行う。
図4は、図1に示す撮像装置において撮影の際に行われる色追尾処理において複数の特徴色パターンを配置するパターン処理を説明するためのフローチャートである。
なお、ここでは、色追尾処理について説明するが、色追尾処理を行うことなく撮影する場合には、当然のことながらこの色追尾処理は行われない。この場合には、ユーザが撮影釦を押した時点でキャプチャーされた画像が記録されることになる。
いま、静止画又は動画撮影の開始するため、撮影装置の電源がオンされて撮影モードが設定されると、前述のようにして、LCD116には画像が表示される。CPU108は、ユーザがLCD116に備えられたタッチパネルをタッチ操作して追尾対象である被写体を選択したか否かを判定する(ステップS101)。被写体の選択が行われないと(ステップS101において、NO)、CPU108は待機する。
被写体の選択が行われると(ステップS101において、YES)、CPU108は現像部119によってキャプチャーした撮像データを現像処理して現像データ(つまり、YUVデータ)をメモリ114に記録する(ステップS102)。
続いて、CPU108の制御下で、追尾処理部120はメモリ114に記録された現像データを読み出す。そして、水平積分部201および垂直積分部202はn×m(nおよびmの各々は1以上の整数)程度のブロック積分画像を生成する(ステップS103)。なお、ここでは、n=32、m=24とする。
図5は、図4に示すブロック積分画像生成処理で生成されたブロック積分画像の一例を示す図である。
図5において、左上隅を原点(x=0,y=0)とすると、ブロック積分画像は、x軸方向に32画素、y軸方向に24画素を有している。
ユーザがLCD116に備えられたタッチパネルをタッチ操作して追尾対象の被写体(特定の被写体)を指定したとすると、特徴色パターン抽出部209は、当該指定操作の位置情報(つまり、座標情報)とブロック積分画像の座標情報との相関関係に応じて3×3のブロック積分情報を特徴色パターン情報として抽出する。そして、特徴色パターン抽出部209はレジスタ207に特徴色パターン情報を記憶する(ステップS104)。
ここで、例えば、現像データの画像サイズが640×480ピクセル程度であるとすると、ユーザによって指定された追尾対象の位置情報は水平20分の1、垂直20分の1のブロック積分画像(32×24ピクセル)の位置情報に変換される。
図6は、ブロック積分画像においてユーザによって指定された追尾対象の被写体の位置を示す図である。
図6において、いま、ユーザによって指定された位置が指定座標a(17,14)であるとすると、当該指定座標を中心として3×3ピクセルのブロック積分画像が特徴色パターンAとされて、当該特徴色パターンAを示す特徴色パターン情報がレジスタ207に記録される。以下この特徴色パーン情報にも符号”A”を付す。この特徴色パターンAが第1の特徴色パターンである。
続いて、マッチング処理部208は特徴色パターン情報Aを用いて、ブロック積分画像(ここでは、RGBデータ)とのマッチング処理を行う(ステップS105)。ここで行われるマッチング処理は、追尾対象となる被写体の色外形(色形状)を取得するためのマッチング処理であるので、特徴色パターンAの中心の画素(中心ブロック積分画素と呼ぶ)についてマッチング処理を行ってそのマッチング処理結果を使用する。
図7は、図4に示すステップS105のマッチング処理によるマッチング結果を説明するための図である。
ここでは、ブロック積分画像が特徴色パターンAと最も近い色情報を有する場合、マッチング結果を”100”とし、マッチング結果の値が小さくなるにつれて、ブロック積分画像は特徴色パターンAとは異なる色情報を有する。
つまり、ステップS105においては、マッチング抽出部208は、図7に示すように、特徴色パターンAの中心ブロック積分画素と類似する色情報を有するブロック積分画像を100段階評価してマッチング結果として出力する。
続いて、形状判定部210は予め設定された閾値(例えば、60)とマッチング結果とを比較して、マッチング結果の値が閾値以上である画素を調べる。そして、形状判定部210は値が閾値以上である画素によって被写体の色形状を抽出して色形状情報を得る(ステップS106)。
次に、ベクトル演算部212は上記の色形状情報に基づいて複数の特徴色パターンB〜Iを配置するための中心位置(位置座標)を求める(ステップS107)。
図8は、図3に示すベクトル演算部212で行われた特徴色パターンの配置の一例を説明するための図である。また、図9は図8に示す特徴色パターンの配置を拡大して示す図である。
図示のように、複数の特徴色パターンを配置する際、特徴色パターンB〜特徴色パターンIを特徴色パターンAに隣接して配置するようにしてもよいが、複数の特徴色パターンは同様の特徴色パターンであるため、ブロック積分画像に対して追尾対象となる被写体に係る色形状情報が大きな面積を占めると、同様の特徴色パターンについてパターンマッチングを繰り返して行うことになってしまう。
このため、ステップSS107では、前述の指定座標a(17,14)の上下左右方向の各々において、予め設定された閾値(例えば、60)以上の画素を求める。
図7を参照すると、指定座標a(17,14)よりも上方向については、水平位置が同一の座標(17,11)の画素のみが閾値以上であるので、当該座標(17,11)が中心位置候補とされる。
さらに、11ライン目の画素において、閾値以上の値を示す画素で座標(15,11)が最も左側に位置しているので、当該座標(15,11)が中心位置候補とされる。また、閾値以上の値を示す画素で座標(19.11)が最も右側に位置しているので、当該座標(19,11)が中心位置候補とされる。
同様にして、指定座標aよりも下方向については、閾値以上である画素について、同一の水平位置にあり且つ最も下側にある座標(17,16)が中心位置候補とされる。そして、16ライン目の画素において、閾値以上の画素で座標(10,16)が最も左側に位置し、座標(25,16)が最も右側に位置するので、これら座標(10,16)および座標(25,16)の各々も中心位置候補とされる。
さらに、指定座標aから右方向については、閾値以上の画素について、指定座標aと同一の垂直位置にあり且つ最も右側にある座標(25,14)が中心位置候補とされる。そして、指定座標aより最も右側に位置する25列目において、閾値以上の画素では座標(25,14)が最も上側に位置し、座標(25,16)が最も下側に位置する。よって、座標(25,16)が中心位置候補とされる。
また、指定座標aから左方向については、閾値以上の画素について、指定座標aと同一の垂直位置にあり且つ最も左側にある座標(11,14)が中心位置候補とされる。そして、指定座標aより最も左側に位置する11列目において、閾値以上の画素で座標(10,16)が最も下側に位置するので、座標(10,16)が中心位置候補とされる。なお、図示の例では、指定座標aより最も左側に位置する列において指定座標aより上側にある中心位置候補は存在しない。
このようにして得られた中心位置候補について、重複している座標を除くと、次の8つの画素(ブロック積分画素)が特徴色パターンの中心位置候補として得られる。
座標(17,11):マッチング結果(70)
座標(15,11):マッチング結果(68)
座標(19,11):マッチング結果(73)
座標(17,16):マッチング結果(91)
座標(10,16):マッチング結果(66)
座標(25,16):マッチング結果(87)
座標(25,14):マッチング結果(80)
座標(11,14):マッチング結果(81)
ここでは、特徴色パターンとして特徴色パターンB〜Iの8種類を備えることができるので、上記の全ての中心位置候補を中心位置座標として、当該中心位置座標の画素を中心として3×3ピクセルの特徴色パターンを得る。
このようにして得られた特徴色パターンの中心位置座標から特徴色パターンB〜Iを示す情報が特徴色パターン情報として抽出される。
図10は、全ての特徴色パターンを配置した状態を示す図である。また、図11は、特徴色パターン情報のデータ構成の一例を示す図である。
前述のように、特徴色パターンの各々は3×3ピクセルのブロック積分画素であるので、特徴色パターンの各々は、ブロック積分画素の色情報としてR、G、およびBの値(例えば、8ビットデータ)を備えている。従って、例えば、特徴色パターン情報Aは8ビットデータA0〜A8の各々がR、G、およびBの値を有することになる。
ここでは、特徴色パターンの中心位置座標を求めるため、特徴色パターンAの上下左右の方向にある類似するブロック積分画素と、さらに、各方向の最も外側に位置するブロック積分画像においてそれぞれ上下左右方向の最も遠くにあるブロック積分画素を中心位置候補とした。そして、特徴色パターン中心位置座標が重複するか又は条件を満たすブロック積分画素がないなどの理由で、得られた特徴色パターン中心位置座標が特徴色パターン数より多くなった場合には、マッチング結果と特徴色パターンAとの距離関係とに応じて選別するようにしてもよい。
また、特徴色パターンの配置については、ステップS105で得られた被写体の色形状情報を特徴的に捉えるよう配置することができればよいので、例えば、特徴色パターンAの上下左右方向における最も外側にあるブロック積分画素4つを取得する。そして、4つのブロック積分画素間を補間する位置にある類似のブロック積分画素を中心候補として新たに4つのブロック積分画素を得て、8つの特徴色パターンを得るようにしてもよい。
再び、図4を参照して、重み情報付加部211は特徴色パターンB〜Iと特徴色パターンAとの相対的距離に応じて得られる重み情報を特徴色パターン情報に付加する(ステップS108)。
図12は、図3に示す重み情報付加部211よる重み情報の付加を説明するための図である。
特徴色パターンBは、座標(15,11)が中心位置座標であり、特徴色パターンAの中心位置座標(17,14)からみた相対的位置は(−2,−3)となる。この相対的位置情報に応じたベクトルの大きさの逆数を、ここでは重み情報とする。特徴色パターンBについては2の2乗と3の2乗の和をルート演算すると、約3.6となる。従って、この値(3.6)の逆数が重み情報とされる。
なお、ブロック積分画像のサイズが32×24ピクセルであるので、重み情報はとりうる相対的位置情報の最大値を1として正規するようにしてもよい。
この結果、特徴色パターン情報にはR、G、およびBの8Bitデータの他に次の情報が付加されることになる。
特徴色パターンAでは、座標(17,14)、マッチング結果はなし、重み情報はなし。
特徴色パターンBでは、座標(15,11)、マッチング結果:68、重み情報:1/3.6。
特徴色パターンCでは、座標(17,11)、マッチング結果:70、重み情報:1/3.0。
特徴色パターンDでは、座標(19,11)、マッチング結果:73、重み情報:1/3.6。
特徴色パターンEでは、座標(11,14)、マッチング結果:81、重み情報:1/6.0。
特徴色パターンFでは、座標(25,14)、マッチング結果:80、重み情報:1/8.0。
特徴色パターンGでは、座標(10,16)、マッチング結果:66、重み情報:1/7.2。
特徴色パターンHでは、座標(17,16)、マッチング結果:91、重み情報:1/2.0。
特徴色パターンIでは、座標(25,16)、マッチング結果:87、重み情報:1/8.2。
さらに、ステップS108において、重み情報付加部211は特徴色パターンの重み情報として距離情報に応じた重み情報の他に、特徴色パターンB〜Iについて、特徴色パターンAの中心ブロック積分画素と類似する画素の数を重み情報として付加する。特に、特徴色パターンの配置については被写体の色外形(色形状)を特徴的に捉えることが必要であるので、特徴色パターンAとのマッチング結果が高いブロック積分画素が1つ以上隣接しているものを優先的に特徴色パターン中心位置座標とするようにしてもよい。
これによって、ブロック積分画像に突発的に発生する特徴色パターンAに類似したブロック積分画素が存在しても重み情報を低く設定することによって、同一被写体における色形状を追従することが可能となる。
次に、特徴色パターン抽出部209はブロック積分画像から特徴色パターンB〜Iについて3×3ピックセルの8ビットデータを抽出して、レジスタ207に特徴色パターン情報として記録する(ステップS109)。
続いて、CPU108はユーザが撮影終了を指示したか否かを判定する(ステップS110)。撮影終了が指示されると(ステップS110において、YES)、CPU108は撮影を終了する。一方、撮影終了が指示されないと(ステップS110において、NO)、CPU108は、後述する追尾処理フローに移行する。
このようにして、ユーザが指定した追尾対象の被写体について、色形状情報を取得して、追尾被写体の色形状に応じて複数の特徴色パターンを配置するようにしたので、特徴色パターンマッチングを用いて被写体の追尾に係る精度を向上させることができる。また、時間的に連続又は異なるフレーム間において、追尾対象の被写体の形状および大きさが変化しても、複数の特徴色パターンの配置を変化させれば追尾を良好に行うことができる。
図13は、図1に示す撮像装置で行われる色追尾処理を説明するためのフローチャートである。
いま、図4に関連して説明したようにして、追尾対象である被写体に係る特徴色パターン情報が記録されたものとする。追尾処理が開始されると、CPU108は特徴色パターン情報を求めた際の撮像データと時間的に異なる撮像データ(キャプチャデータ)を、現像部119によって現像して現像データ(つまり、YUV画像)をメモリ114に記録する(ステップS201)。
続いて、CPU108の制御下で、追尾処理部120はメモリ114に記録した現像データを読み出して、水平積分部201および垂直積分部202においてn×mピクセル程度のブロック積分画像を生成する(ステップS202)。ここでは、n=32、m=24である。そして、YUV2RGB変換部205で変換処理されたブロック積分画像について、マッチング処理部208は特徴色パターン情報A〜Iとの特徴色パターンマッチング処理を行う(ステップS203)。
図14は、図3に示すマッチング処理部208で行われる特徴色パターンマッチング処理を説明するための図である。
特徴色パターンマッチング処理の際には、マッチング処理部208は、まず特徴色パターンAについて、破線で示すように左上から水平方向に当該特徴色パターンを右にずらしつつ特徴色パターンマッチング処理を行う。そして、マッチング処理部208は特徴色パターンB〜Iについても特徴色パターンAと同様にして特徴色パターンマッチング処理を行う。
特徴色パターンマッチング処理の際には際LINEメモリ204を使用して、1座標毎に9種類の特徴色パターンについてのマッチング結果を出力する。
なお、ここでは、3×3ピクセルの特徴色パターンにおいてその中心ブロック積分画素を座標(1,1)に位置づけて特徴色パターンマッチング処理を開始するが、3×3ピクセルの特徴色パターンにおいて中心ブロック積分画素を原点に位置づけて、はみ出した特徴色パターンのブロック積分画素については評価対象としないようにしてもよい。
ここで、特徴色パターンマッチング処理による評価結果(マッチング結果)の出力について説明する。
図15は、特徴色パターンマッチング処理における処理過程についてブロック積分画像の一部分を拡大して示す図である。図16は、特徴色パターンBの一例を示す図である。
いま、特徴色パターンBが図16に示すパターンであるとする。そして、図14に示すように、特徴色パターンBに係るマッチング処理がブロック積分画像の座標(16,13)の位置に達しているものとする。
図17は、座標(16,13)を中心としてブロック積分画像を3×3ピクセルで抜き出した状態を示す図である。
ここでは、3×3ピクセルのブロック積分画素Xと特徴色パターンBとについてR、G、Bの色情報の値を比較して、一致する場合を評価結果100とし、類似度が低くなるについて評価結果を100から小さくする。
図18は、図16に示す特徴色パターンと図17に示す3×3ピクセルのブロック積分画素とを比較した評価結果の一例を示す図である。
また、図19は、図18に示す評価結果について特徴色パターンの中心画素を除く画素について所定の閾値を基準として2値化した評価結果を示す図である。
いま、特徴色パターンマッチング処理によって、図18に示す評価結果が得られたとする。この際、評価結果を記録する際の情報量を減らすため、マッチング処理部208は、例えば、図18に示す評価結果を2値化する。ここでは、閾値を60として、特徴色パターンの中心画素を除いて他の画素に関して、図18に示す評価結果が閾値以上であれば評価結果を”1”とし、評価結果が閾値未満であれば評価結果を”0”として2値化を行う。
図20は、図15に示す状態から水平方向に1画素分ずらしてマッチング処理を行う状態を示す図である。
図20に示す状態では、3×3ピクセルのブロック積分画素が特徴色パターンBとほぼ一致する状態であるので、特徴色パターンの中心画素における評価結果ではその値が大きく、その周辺画素と対応するブロック積分画素も閾値以上となる。この結果、当該位置におけるブロック積分画素は特徴色パターンBとの類似度が高い。
図21は、図21に示す状態から水平方向に1画素分ずらしてマッチング処理を行う状態を示す図である。
図21に示す状態では、特徴色パターンBの中心画素に関して、ブロック積分画素が類似しているので評価結果は高くなるものの、その周辺の評価結果が図20に示す例よりも低くなる。このため、特徴色パターンBに関しては図19に示す位置が類似度の高い位置として記録されることになる。
そして、マッチング処理部208は特徴色パターンA〜Iの各々について上述の処理を行う。
再び、図13を参照して、マッチング処理部208は特徴色パターンAについてパターン特徴色パターンマッチング処理を行った結果得られた評価結果(つまり、検出結果)に応じて類似度が高い位置の座標(位置座標)が得られたか否かを判定する(ステップS204)。ここでは、例えば、特徴色パターンAにおける中心画素に係る評価結果が所定の閾値(例えば、60)以上であり、且つ周辺画素に係る評価結果が6個以上で1を示す場合に、マッチング処理部208は類似度の高い位置座標が得られたと判定する。
類似度の高い位置座標が得られないと判定すると(ステップS204において、NO)、マッチング処理部208は特徴色パターンを初期化する。そして、CPU108はユーザに追尾対象の被写体の再指定を促すため、LCD116にメッセージを表示する(ステップS217)。次に、処理は図3のパターン配置処理に戻る。
なお、ステップS204とステップS217との間に、数フレームに亘ってステップS204の条件が満たされないと、ステップS217の処理に進むステップを挿入するようにしてもよい。
類似度の高い位置座標が得られたと判定すると(ステップS204において、YES)、マッチング処理部208は特徴色パターンB〜Iの全てについて類似度の高い評価結果が存在するか否かを判定する(ステップS205)。ここでは、マッチング処理部208は特徴色パターンAの場合と同様にして判定を行う。
特徴色パターンB〜Iのいずれかについて類似度の高い評価結果が存在しないと(ステップS205において、NO)、マッチング処理部208は該当する特徴色パターンに係る特徴色パターン情報を初期化する(ステップS215)。
なお、ステップS205とステップS215との間に、数フレームに亘ってステップS205の条件が満たされないと、ステップS215の処理に進むステップを挿入するようにしてもよい。この場合には、ステップS205において条件を満たさなかった回数を特徴色パターン毎に記憶しておく必要がある。
続いて、マッチング処理部208は、ステップS215において初期化した特徴色パターン数が所定の数N(Nは2以上7以下の整数)以上であるか否かを判定する(ステップS216)。初期化した特徴色パターン数が所定の数N以上であると(ステップS216において、YES)、処理は図3に示すパターン配置処理に戻る。
特徴色パターンB〜Iの全てについて類似度の高い評価結果が存在すると(ステップS205において、YES)、マッチング処理部208は類似度の高い特徴色パターンについてブロック積分画像で最も類似度が高い位置座標を求める(ステップS206)。なお、ステップS216において、初期化した特徴色パターン数が所定の数N未満であると(ステップS216において、NO)、処理はステップS206に進む。
続いて、マッチング処理部208は、ステップS206で得られた位置座標に基づいて、図3で説明したようにして、当該位置座標と特徴色パターンAの中心座標との相対的位置を示す相対的位置情報を求める。そして、マッチング処理部208は特徴色パターンB〜Iを抽出した際の位置情報から得られた相対的位置情報と比較して相対的位置関係が等しいかを評価して、特徴色パターンB〜I毎に位置評価値を得る(ステップS207)。
次に、マッチング処理部208は、特徴色パターンB〜Iの各々についてその位置評価値に応じて一致度が所定の閾値以上であるか否かを判定する(ステップS208)。
図22は、図3で説明したパターン配置処理によって得られた特徴色パターン情報から点線矢印の方向に追尾対象の被写体が移動した際の状態の一例を示す図である。
図示の例では、ブロック積分画像に関して、特徴色パターンA〜Iはそれぞれ移動先A’〜I’の位置においてその位置情報の類似度が高くなる。よって、追尾対象の被写体に係る色外形(色形状)を捉えつつ特徴色パターンマッチング処理を行うことができる。
図23は、図3で説明したパターン配置処理によって得られた特徴色パターン情報から点線矢印の方向に追尾対象の被写体が移動した際の状態の他の例を示す図である。
図23に示す例では、特徴色パターンA〜Iはそれぞれ移動先A”〜I”の位置で位置情報の類似度が高くなる。例えば、特徴色パターンGの移動先G”においては、前述のステップS208において、一致度が所定の閾値未満となって相対的距離が一致しない。
なお、相対的距離の一致度を判定する際には、例えば、特徴色パターン情報が有する位置情報とブロック積分画像内で得られた類似度が最も高い位置情報とに基づいて、特徴色パターンAからの相対的距離についてベクトルの差分を求める。そして、当該差分値が所定の閾値以上であるか否かによって相対的距離の一致度を判定するようにしてもよい。
一致度が所定の閾値未満であると(ステップS208において、NO)、マッチング処理部208は該当する特徴色パターン情報にフラグを付加する(ステップS219)。このフラグは、後述するステップS209の処理において移動量を求める際の特徴色パターンとして用いないことを指示するためのものである。
一致度が所定の閾値以上であると判定されると(ステップS208において、YES)、ベクトル演算部212は特徴色パターンマッチング処理で得られた特徴色パターンの位置情報と特徴色パターン情報が有する位置情報とに応じて追尾対象の被写体についてその移動量を求める(ステップS209)。なお、ステップS219の処理の後、処理はステップS209に進む。
例えば、特徴色パターンB〜Iに関して、特徴色パターンマッチング処理で得られた位置情報と特徴色パターン情報が有する位置情報に応じて、各特徴色パターンの移動量を求める。続いて、各重み情報に基づいて特徴色パターンB〜Iの移動量の平均ベクトルを求める。
図24は、図23に示す各特徴色パターンの移動量について重みづけによって得られた平均ベクトルを説明するための図である。
図24においては、特徴色パターンGについては、ステップS219において移動量を求める特徴色パターンとして用いないフラグが付加されているものとする。従って、特徴色パターンG係る移動ベクトルG”を除く、移動ベクトルついて特徴色パターンの重みづけ情報を用いて平均ベクトルT”を求める。
図25は基準となる特徴色パターンAに係る移動ベクトルを示す図である。
いま、図25に示すように、特徴色パターンAに関して同一の画像で複数の位置で高い類似度が得られたとする。例えば、位置A”、A2”、およびA3”において高い類似度が得られたとする。この場合には、図24で説明した平均ベクトルT”を用いて、平均ベクトルT”と最も近い移動ベクトルが得られる位置A”、A2”、およびA3”のいずれかが特徴色パターンAの移動先とされる。
図26は基準特徴色パターンに係る移動ベクトルと平均ベクトルとを重ねた状態で示す図である。
図26において、位置A”、A2”、およびA3”に係る移動ベクトル(ベクトルA”、ベクトルA2”、ベクトルA3”)と平均ベクトルT”とにおいて、平均ベクトルT”に最も近い移動ベクトルはベクトルA”であるので、ここでは、ベクトルA”の絶対値が被写体の移動量とされる。
続いて、ベクトル演算部212で得られた移動量(ここでは、ベクトルA”の絶対値)に応じて、CPU108は光軸調整制御部109を制御して光軸調整部105によって光学系100を駆動し焦点位置を追尾対象である被写体の移動に合わせて変更する(ステップS210)。さらに、CPU108は当該移動量および被写体の色形状に応じてLCD116に表示する追尾枠の大きさと位置を更新する(ステップS211)。
次に、CPU108の制御下で、マッチング処理部208は特徴色パターン情報を声新する(ステップS212)。例えば、ステップS212においては、前述のフラグが同一の特徴色パターンにおいて複数フレームにわたって連続して付加されると当該特徴色パターン情報が更新される。
次に、CPU108はユーザが撮影終了を指示したか否かを判定する(ステップS213)。撮影終了が指示されると(ステップS213において、YES)、CPU108は追尾処理を終了する。一方、撮影終了が指示されないと(ステップS213において、NO)、処理はステップS201に戻る。
このようにして、一つの特徴色パターンで被写体色追尾を行うと、特徴色パターンマッチング結果によって同様の類似度の位置情報が複数得られて追尾対象の被写体を正確に追尾できないという状況を解消することができる。つまり、追尾対象の被写体の色形状に応じて配置された複数の特徴色パターン情報を用いて、被写体の大きさおよび形状に合わせて精度よく色追尾を行うことができる。
以上のように、本発明の実施形態においては、時間の推移とともに大きさおよび形状が変化する追尾対象の被写体に対してその色形状を捉えつつ特徴色パターンを複数配置することができる。そして、追尾対象の被写体の形状に応じて特徴色パターンを配置する際、周辺の色情報に応じて重み情報を変更するようにしたので、被写体の形状に応じた特徴色パターン程、重み情報による重みが高くなる。
さらに、特徴色パターンの数を所定の数とするので、特徴色パターンの記憶領域を一定とした状態で、被写体の形状に応じて特徴色パターンの配置を行うことができる。
上述の説明から明らかなように、図3に示す例においては、CPU108および特徴色パターン抽出部209が位置取得手段および抽出手段として機能する。また、CPU108および形状判別部210が形状判別手段として機能し、CPU108およびマッチング処理部208が配置手段およびマッチング手段として機能する。また、CPU108、マッチング処理部208、および重み情報付加部211が変更手段として機能する。
なお、図1に示す例では少なくともCPU108およびデジタル信号処理部104が色追尾処理装置を構成する。
以上、本発明について実施の形態に基づいて説明したが、本発明は、これらの実施の形態に限定されるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。
例えば、上記の実施の形態の機能を制御方法として、この制御方法を色追尾処理装置に実行させるようにすればよい。また、上述の実施の形態の機能を有するプログラムを制御プログラムとして、当該制御プログラムを色追尾装置が備えるコンピュータに実行させるようにしてもよい。なお、制御プログラムは、例えば、コンピュータに読み取り可能な記録媒体に記録される。
上記の制御方法および制御プログラムの各々は、少なくとも位置取得ステップ、抽出ステップ、形状判別ステップ、配置ステップ、およびマッチングステップを有している。
また、本発明は、以下の処理を実行することによっても実現される。つまり、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種の記録媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPUなど)がプログラムを読み出して実行する処理である。