オブジェクト検出装置
【課題】複数個のオブジェクトを高速に検出することが可能なオブジェクト検出装置を提供する。
【解決手段】分割部2は、複数個の検出対象オブジェクトについての全検出処理をM個に均等に分割する。設定部3は、連続して入力されるM個のフレーム画像のうちの各々のフレーム画像での検出処理を、分割されたM個の検出処理のうちの1つに設定する。検出部6は、各フレーム画像において、設定された検出処理を実行する。選択部5は、M個のフレーム画像のうちのいずれかで、いずれかのオブジェクトを検出した場合に、複数個の検出対象オブジェクトの中から検出されたオブジェクトと同一および関連する1以上のオブジェクトを選択する。分割部2、設定部3、検出部6は、選択されたオブジェクトについて再分割、再設定、再検出を行なう。
【解決手段】分割部2は、複数個の検出対象オブジェクトについての全検出処理をM個に均等に分割する。設定部3は、連続して入力されるM個のフレーム画像のうちの各々のフレーム画像での検出処理を、分割されたM個の検出処理のうちの1つに設定する。検出部6は、各フレーム画像において、設定された検出処理を実行する。選択部5は、M個のフレーム画像のうちのいずれかで、いずれかのオブジェクトを検出した場合に、複数個の検出対象オブジェクトの中から検出されたオブジェクトと同一および関連する1以上のオブジェクトを選択する。分割部2、設定部3、検出部6は、選択されたオブジェクトについて再分割、再設定、再検出を行なう。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、オブジェクト検出装置に関する。
【背景技術】
【0002】
顔検出処理とは、カメラなどで撮影した画像信号から、人物やペットの顔の画像パターンを探し出す機能のことである。顔検出処理は、携帯電話カメラやデジタルカメラにおいて、オートフォーカスなどに応用されており一般的な機能となっている。
【0003】
また、近年自動車にも光学カメラが搭載され、白線、歩行者・車・標識といったオブジェクトを検出することによって運転者に注意を促す技術が応用されてきている。
【0004】
一般に、顔などのオブジェクトを検出する時間は、カメラで撮像されるフレームレートよりも遅いことが多く、リアルタイムで撮影した画像に対して、オブジェクト検出器からの検出結果は数フレーム前の遅れた情報となることがある。このような問題に対して、特許文献1(特許第4539729号公報)では、全画像領域を分割し、分割した画像を時分割で顔検出器に与え、顔検出器が、検出可能な範囲で、全画像における大きなサイズの顔から、最小サイズの顔までを検出する手法が提案されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特許第4539729号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、特許文献1では、向き、種類(人物か動物か)、大きさなどが相違する複数個のオブジェクトを検出することが考慮されていない。リアルタイムで撮影した画像からフレームレート(たとえば、1/30秒)に遅れることなく、複数個のオブジェクトを検出できることは重要な課題である。
【0007】
それゆえに、本発明の目的は、複数個のオブジェクトを高速に検出することが可能なオブジェクト検出装置を提供することである。
【課題を解決するための手段】
【0008】
本発明の一実施形態のオブジェクト検出装置は、複数個の検出対象オブジェクトについての全検出処理をM個に均等に分割する分割部と、連続して入力されるM個のフレーム画像のうちの各々のフレーム画像での検出処理を、分割されたM個の検出処理のうちの1つに設定する設定部と、各フレーム画像において、設定された検出処理を実行する検出部と、検出部がM個のフレーム画像のうちのいずれかで、いずれかのオブジェクトを検出した場合に、複数個の検出対象オブジェクトの中から検出されたオブジェクトと同一および関連する1以上のオブジェクトを選択する選択部とを備える。分割部は、選択された1以上のオブジェクトについての全検出処理をL個に均等に再分割し、設定部は、さらに連続して入力されるL個のフレーム画像のうちの各々のフレーム画像での検出処理を、再分割されたL個の検出処理のうちの1つに再設定し、検出部は、各フレーム画像において、再設定された検出処理を実行し、分割部によってL個に再分割された処理量は、分割部によってM個に分割された処理量よりも少ない。
【発明の効果】
【0009】
本発明の一実施形態によれば、複数個のオブジェクトを高速に検出することができる。
【図面の簡単な説明】
【0010】
【図1】本発明の実施の形態におけるデジタルカメラの構成例を示すブロック図である。
【図2】第1の実施形態のオブジェクト検出装置の構成を表わす図である。
【図3】第1の実施形態のオブジェクト検出の動作手順を表わすフローチャートである。
【図4】第2の実施形態のオブジェクト検出装置の構成を表わす図である。
【図5】第2の実施形態のオブジェクト検出の動作手順を表わすフローチャートである。
【図6】検出対象オブジェクトのフレーム画像への割当の例を説明するための図である。
【図7】選択したオブジェクトのフレーム画像への再割当の例を説明するための図である。
【図8】オブジェクトの検出結果を表わす図である。
【図9】第3の実施形態のオブジェクト検出装置の構成を表わす図である。
【図10】第3の実施形態のオブジェクト検出の動作手順を表わすフローチャートである。
【図11】オブジェクトの移動の例を表わす図である。
【発明を実施するための形態】
【0011】
以下、本発明の実施形態について図面を参照して説明する。
[第1の実施形態]
(デジタルスチルカメラ)
図1は、本発明の実施の形態におけるデジタルカメラのシステム構成例を示すブロック図である。本発明の実施形態では、検出および追跡対象のオブジェクトとして顔を例にして説明するが、本発明の実施形態の手法は、顔に限定されるものではなく、その他のオブジェクトの検出および追跡にも用いることができる。
【0012】
図1を参照して、このデジタルカメラシステムは、半導体装置を有し、半導体装置は、カメラI/F(Interface)1001と、CPU(Central Processing Unit)1002と、SDRAM(Synchronous Dynamic Random Access Memory)1003と、ROM(Read Only Memory)1004と、ユーザ操作部I/F1005と、LCDI/F1007と、カードI/F1008と、オブジェクト検出装置1006、オブジェクト追跡装置1009とを含み、これらがバス1010を介して接続されている。オブジェクト検出装置1006、オブジェクト追跡装置1009とは画像処理装置1011を構成する。
【0013】
カメラI/F1001は、カメラセンサに接続されており、カメラセンサによって撮像された画像を受け、SDRAM1003やカードI/F1008を介して接続される図示しないSDメモリカードなどにその画像を書き込む。
【0014】
CPU1002は、SDRAM1003やROM1004に記憶されるプログラムを実行することによって、システム全体の制御を行なう。CPU1002は、SDRAM1003に格納された顔(オブジェクト)の位置を表わす情報を焦点合わせのためにカメラI/F1001を通じてカメラの撮像系に送る。また、CPU1002は、顔(オブジェクト)の位置を表わす情報から顔の位置を表わす図形(矩形など)をLCDI/F1007に送る。
【0015】
ROM1004は、オブジェクトの検出、オブジェクトの追跡に用いられるデータを記憶する。
【0016】
ユーザ操作部I/F1005は、図示しないシャッターボタンなどに接続され、シャッターボタンが押されたときに、割り込みなどによってその旨をCPU1002に通知する。CPU1002は、割り込み要求を受けると、カメラI/F1001を制御してカメラセンサによって撮像された画像をSDRAM1003などに格納する。またユーザ操作部I/F1005は、ユーザの操作によって、画像を撮影する撮影モードから画像を再生する再生モードへ切り替わった場合などもCPU1002へ通知する。
【0017】
LCDI/F1007は、図示しないLCDパネルに接続され、LCDの表示の制御などを行なう。カメラセンサによって撮影された画像をプレビューとしてLCDに表示する。また、LCDI/F1007は、CPU1002から送られた顔(オブジェクト)の位置を表わす図形を撮影された画像上に重畳表示する。
【0018】
カードI/F1008は、SDメモリカードなどの外部の記録媒体に接続され、記録媒体に対するデータの読み出しや書き込みを行なう。
【0019】
オブジェクト検出装置1006は、カメラセンサによって撮影されてカメラI/F1001から送られる画像から顔(オブジェクト)の検出処理を行なって、顔(オブジェクト)の位置を表わす情報をSDRAM1003に格納する。オブジェクト検出装置1006は、検出したオブジェクトの領域をテンプレートとして登録する。
【0020】
オブジェクト追跡装置1009は、カメラセンサによって撮影されてカメラI/F1001から送られる画像においてオブジェクト検出装置1006で検出された顔(オブジェクト)の追跡処理を行なって、顔(オブジェクト)の位置を表わす情報をSDRAM1003に格納する。オブジェクト追跡装置1009は、撮影された画像から、オブジェクト検出装置1006で得られたテンプレートと類似する領域を検索することによって、オブジェクトの追跡を行なう。
【0021】
(構成)
図2は、第1の実施形態のオブジェクト検出装置の構成を表わす図である。
【0022】
図2を参照して、このオブジェクト検出装置1006は、分割部2と、設定部3と、画像入力部4と、選択部5と、検出部6とを備える。
【0023】
画像入力部4は、カメラI/Fから検出対象となるオブジェクトを探索するためのフレーム画像を所定のフレームレートで受ける。
【0024】
分割部2は、複数個の検出対象オブジェクトについての全検出処理をM個に均等に分割する。また、分割部2は、選択部5でオブジェクトの選択が行われた場合に、選択された1以上のオブジェクトについての全検出処理をL個に均等に再分割する。ここで、分割部2によってL個に再分割された処理量は、分割部2によってM個に分割された処理量よりも少ないという特性を有する。本実施の形態では、1フレームで1種類のオブジェクトを検出対象とするのでなく1フレームの検出処理量が均等になるように分割されるので、1フレームで複数個のオブジェクトを検出対象となる場合や、複数のフレームに跨って1個のオブジェクトが検出対象となる場合もある。
【0025】
設定部3は、連続して入力されるM個のフレーム画像のうちの各々のフレーム画像での検出処理を、分割されたM個の検出処理のうちの1つに設定する。設定部3は、分割部2で再分割が行なわれた場合に、さらに連続して入力されるL個のフレーム画像のうちの各々のフレーム画像での検出処理を、再分割されたL個の検出処理のうちの1つに再設定する。
【0026】
検出部6は、各フレーム画像において、設定部3で設定された検出処理を実行する。検出部6は、設定部3で再設定がなされた場合に、各フレーム画像において、再設定された検出処理を実行する。検出部6は、オブジェクトが検出された場合に、検出されたオブジェクトの位置をCPU1002へ出力する。
【0027】
選択部5は、検出部6がM個のフレーム画像のうちのいずれかで、いずれかのオブジェクトを検出した場合に、複数個の検出対象オブジェクトの中から検出されたオブジェクトと同一および関連する1以上のオブジェクトを選択する。ここで、関連するとは、向き、種類、大きさの少なくとも1つが同一のオブジェクトである。
【0028】
(動作)
図3は、第1の実施形態のオブジェクト検出の動作手順を表わすフローチャートである。
【0029】
図3を参照して、まず、分割部2は、N個の検出対象オブジェクトについての全検出処理を第1番〜第M番の処理に均等に分割する。各処理の処理量をT0とする(ステップS101)。
【0030】
次に、検出オブジェクト数nが0、変数iが1に設定される(ステップS102)。
次に、画像入力部4は、第i番目のフレーム画像を受ける(ステップS103)。
【0031】
設定部3は、第i番目のフレーム画像に分割部2で分割された第i番目の処理を割り当てる(ステップS104)。
【0032】
次に、検出部6は、第i番目のフレーム画像を対象として、割り当てられた第i番目の処理を実行する(ステップS105)。
【0033】
次に、検出部6の第i番目の処理によって、N個の検出対象オブジェクトのうちのいずれかのオブジェクトが検出されなかったときには(ステップS106でNO)、変数iがMでない場合には(ステップS107でNO)、変数iがインクリメントされた(ステップS109)後、ステップS103に戻り、変数iがMの場合には(ステップS107でYES)、変数iが0に戻り(ステップS108)、変数iがインクリメントされた(ステップS109)後、ステップS103に戻る。
【0034】
一方、検出部6の第i番目の処理によって、N個の検出対象オブジェクトのうちのいずれかのオブジェクトが検出されたときには(ステップS106でYES)、検出オブジェクト数nが0に設定され(ステップS110)、変数jが1に設定される(ステップS111)。
【0035】
次に、選択部5が、検出されたオブジェクトと同一および関連するS個のオブジェクトを選択する(ステップS112)。
【0036】
次に、選択されたS個の検出対象オブジェクトについての全検出処理を第1番〜第L番の処理に均等に再分割する。各処理の処理量をT1とする。ここで、T1<T0である(ステップS113)。
【0037】
次に、画像入力部4は、第j番目のフレーム画像を受ける(ステップS114)。
次に、設定部3は、第j番目のフレーム画像にステップS113で分割部2によって再分割された第j番目の処理を割り当てる(ステップS115)。
【0038】
次に、検出部6は、第j番目のフレーム画像を対象として、割り当てられた第j番目の処理を実行する(ステップS116)。
【0039】
次に、検出部6の第j番目の処理によって、S個の検出対象オブジェクトのうちのいずれかのオブジェクトが検出されたときには(ステップS117でYES)、検出オブジェクト数nがインクリメントされる(ステップS118)。
【0040】
さらに、オブジェクトが検出されたか否かに係らず、その後、変数jがLでない場合には(ステップS119でNO)、変数jがインクリメントされた(ステップS120)後、ステップS114に戻り、変数jがLの場合には(ステップS119でYES)、検出オブジェクト数nが1以上の場合に(ステップS121でYES)、ステップS110からの処理が繰り返され、検出オブジェクト数nが1未満の場合に(ステップS121でNO)、ステップS101からの処理が繰返される。
【0041】
撮影モードの間は上記のオブジェクト検出処理が繰返される。撮影モードが終了すると、上記オブジェクト検出処理を終了させる。例えば、撮影モードから再生モードに切り替えられると、CPU1002からオブジェクト検出装置1006に対してオブジェクト検出処理終了の命令が通知される。これによりオブジェクト検出装置1006はオブジェクト検出処理を終了させる。
【0042】
(効果)
以上のように、本実施の形態では、画像から複数のオブジェクトを検出するときに、複数のフレーム画像を用いて、検出対象の複数のオブジェクトを検出する。本実施の形態では、各フレーム画像での検出処理量が均等となるように全検出処理を分割する。さらに、オブジェクトが検出された時、検出対象のオブジェクトの数を少なくし、各フレーム画像での検出処理量が均等となるように全検出処理を再分割する。これによって、時間方向に処理を分散した上で、画像内の2個目以降のオブジェクト検出を高速に行なうことが可能である。
【0043】
[第2の実施形態]
第1の実施形態では、各フレームにおける検出処理量が均等になるよう、複数個のオブジェクトについての全検出処理を分割した。これに対して、本実施の形態では、各フレームにおいて、1つのオブジェクトを検出するように、複数個のオブジェクトについての全検出処理を分割する。
【0044】
(構成)
図4は、第2の実施形態のオブジェクト検出装置の構成を表わす図である。
【0045】
図4を参照して、このオブジェクト検出装置11は、設定部13と、画像入力部14と、選択部15と、検出部16とを備える。
【0046】
画像入力部14は、カメラI/Fから検出対象となるオブジェクトを探索するためのフレーム画像を所定のフレームレートで受ける。
【0047】
設定部13は、連続して入力されるN個のフレーム画像のうちの各々のフレーム画像の検出対象を、N個の検出対象オブジェクトのうちの1つに設定する。
【0048】
設定部13は、選択部15でオブジェクトの選択が行われた場合に、さらに連続して入力されるM(=S×K)個のフレーム画像の各フレーム画像の検出対象と検出領域を再設定する。具体的には、設定部13は、M個のフレーム画像はK個のグループのいずれかに属し、かつ各グループにはS個のフレーム画像が含まれるものとし、各グループ内のS個のフレーム画像の各々の検出対象をS個のオブジェクトのうちの1つに設定し、異なるグループのフレーム画像の検出領域をK個に分割した別個の領域に設定する。これによって、1フレームにおける検出処理量を選択前よりも少なくすることができる。1フレームでのオブジェクトの検出処理が、入力される画像のフレームレートに追いつかなくなることを防止できる。
【0049】
検出部16は、各フレーム画像において、検出対象として設定されたオブジェクトの検出処理を実行する。検出部16は、設定部13で再設定がなされたときには、各フレーム画像の設定された各検出領域において、設定されたオブジェクトの検出処理を実行する。
【0050】
選択部15は、検出部16が前記N個のフレーム画像のうちのいずれかでオブジェクトを検出した場合に、N個の検出対象オブジェクトの中から検出されたオブジェクトと同一および関連するS個のオブジェクトを選択する。
【0051】
(動作)
図5は、第2の実施形態のオブジェクト検出の動作手順を表わすフローチャートである。
【0052】
図5を参照して、まず、検出オブジェクト数nが0、変数iが1に設定される(ステップS201)。
【0053】
次に、画像入力部14は、第i番目のフレーム画像を受ける(ステップS202)。
次に、設定部13は、第i番目のフレーム画像に第i番目のオブジェクトの検出処理を割り当てる(ステップS203)。
【0054】
次に、検出部16は、第i番目のフレーム画像を対象として、割り当てられた第i番目のオブジェクトの検出処理を実行する(ステップS204)。
【0055】
次に、検出部16が第i番目のオブジェクトを検出しなかったときには(ステップS205でNO)、変数iがNでない場合には(ステップS206でNO)、変数iがインクリメントされた(ステップS208)後、ステップS202に戻り、変数iがNの場合には(ステップS206でYES)、変数iが0に戻り(ステップS207)、変数iがインクリメントされた(ステップS208)後、ステップS202に戻る。
【0056】
一方、検出部16が第i番目のオブジェクトを検出したとき(ステップS205でYES)、検出オブジェクト数nが1に設定され(ステップS209)、変数jが1に設定される(ステップS210)。
【0057】
次に、選択部15が、検出されたオブジェクトと同一および関連するS個のオブジェクトを選択する(ステップS211)。
【0058】
次に、画像入力部14は、第j番目のフレーム画像を受ける(ステップS212)。
次に、設定部13は、(j−1)をフレーム内分割数Kで除算した余りに1を加えた値mを計算する(ステップS213)。
【0059】
次に、設定部13は、変数jをフレーム内分割数Kで除算した値の小数部分を切り上げた値gを計算する(ステップS214)。
【0060】
次に、設定部13は、第j番目のフレーム画像内の第m分割領域に第g番目のオブジェクトの検出処理を割り当てる(ステップS215)。
【0061】
次に、検出部16は、第j番目のフレーム画像の第m分割領域において、第g番目のオブジェクトの検出処理を実行する(ステップS216)。
【0062】
次に、検出部16が第g番目のオブジェクトを検出したときには(ステップS217でYES)、検出オブジェクト数nがインクリメントされる(ステップS218)。
【0063】
さらに、オブジェクトが検出されたか否かに係らず、その後、変数jがM(=S×L)でない場合には(ステップS219でNO)、変数jがインクリメントされた(ステップS220)後、ステップS212に戻り、変数jがMの場合には(ステップS219でYES)、検出オブジェクト数nが1以上の場合に(ステップS221でYES)、ステップS209からの処理が繰返され、検出オブジェクト数nが1未満の場合に(ステップS221でNO)、ステップS201からの処理が繰返される。
【0064】
撮影モードの間は上記のオブジェクト検出処理が繰返される。撮影モードが終了すると、上記オブジェクト検出処理を終了させる。例えば、撮影モードから再生モードに切り替えられると、CPU1002からオブジェクト検出装置11に対してオブジェクト検出処理終了の命令が通知される。これによりオブジェクト検出装置11はオブジェクト検出処理を終了させる。
【0065】
(オブジェクトの検出例)
図6は、検出対象オブジェクトのフレーム画像への割当の例を説明するための図である。
【0066】
図6に示すように、検出対象のオブジェクトの個数を16個とする。16個のオブジェクトは、オブジェクトの種類(ヒトの顔、犬の顔)、大きさ、向きのいずれかがそれぞれ相違する。連続する16個のフレーム画像の各々に1つのオブジェクトが割り当てられる。たとえば、第1番目のフレーム画像に、種類が「ヒトの顔」で、大きさが「大きく」、向きが「0度回転」のオブジェクトが割り当てられる。
【0067】
各フレーム画像において、割り当てられたオブジェクトの検出処理が行なわれる。
ここで、図6に示すように、5番目のフレーム画像401において、初めて1つのオブジェクト(種類が「ヒトの顔」で、大きさが「大きく」で、向きが「270度回転」のオブジェクト)が検出されたものとする。
【0068】
この後、選択部15によって、検出されたオブジェクトと同一および関連するS個のオブジェクトが選択される。ここでは、検出されたオブジェクトAと、オブジェクトAと同じ向きで、同じ種類のオブジェクトBを選択することによって、2番目以降の検出対象オブジェクトの数を限定して、全オブジェクトの検出処理にかかる時間を短縮する。例えば図6において、オブジェクトAは(5)の画像、オブジェクトBは(6)の画像である。このように、1番目のオブジェクトが検出された後に、次の検出対象オブジェクトを絞り込んだ理由は、時間的に連続するフレーム画像の中に存在するオブジェクトは、同じオブジェクトであるか、あるいは種類が同じである、向きが同じである、位置が近い、サイズが近いなどの傾向があるからである。どのように検出対象のオブジェクトを絞り込むかは、システムにおいてそれらのどの傾向を重視するかによって定める。ここでは、向きと種類で検出対象のオブジェクトを絞り込むものとする。
【0069】
さらに、フレーム画像がK個の領域に分割されることとし、連続するS×K(=M)個のフレーム画像の各々に1つの分割領域と、1つの検出対象オブジェクトを割り当てることとする。ここでは、前述のようにS=2である。K=2とする。
【0070】
図7は、選択したオブジェクトのフレーム画像への再割当の例を説明するための図である。
【0071】
第1グループには、第1番目、第3番目のフレーム画像が属し、第2グループには、第2番目、第4番目のフレーム画像が属する。
【0072】
第1番目のフレーム画像については、(1−1)/Kの余りに1を加えた値mは1であり、1/Kの小数部分を切り上げた値gは1であるので、第1番目のフレーム画像の第m分割領域(第1分割領域)に第g番目(第1番目)のオブジェクトAの検出処理が割り当てられる。
【0073】
第2番目のフレーム画像については、(2−1)/Kの余りに1を加えた値mは2であり、2/Kの小数部分を切り上げた値gは1であるので、第2番目のフレーム画像の第m分割領域(第2分割領域)に第g番目(第1番目)のオブジェクトAの検出処理が割り当てられる。
【0074】
第3番目のフレーム画像については、(3−1)/Kの余りに1を加えた値mは1であり、3/Kの小数部分を切り上げた値gは2であるので、第3番目のフレーム画像の第m分割領域(第1分割領域)に第g番目(第2番目)のオブジェクトBの検出処理が割り当てられる。
【0075】
第4番目のフレーム画像については、(4−1)/Kの余りに1を加えた値mは2であり、4/Kの小数部分を切り上げた値gは2であるので、第2番目のフレーム画像の第m分割領域(第2分割領域)に第g番目(第2番目)のオブジェクトBの検出処理が割り当てられる。
【0076】
このように、1フレーム画像における検出領域を小さくすることによって、1フレーム画像でのオブジェクト検出処理にかかる時間を短縮することができる。
【0077】
ここでは、図7のフレーム画像501においてオブジェクトBが検出されたものとする。
【0078】
図8は、オブジェクトの検出結果を表わす図である。
図8に示すように、オブジェクトAとオブジェクトBが検出され、検出結果がCPU1002に送られる。
【0079】
(効果)
以上のように、本実施の形態では、各フレーム画像で1つのオブジェクトを検出対象とする。さらに、オブジェクトが検出された時、検出対象のオブジェクトの数を少なくする。これによって、画像内の2個目以降のオブジェクト検出を高速に行なうことが可能である。
【0080】
[第3の実施形態]
第1の実施形態では、各フレーム画像での検出処理量が均等になるように、全オブジェクトの検出処理を分割していた。しかしながら、リアルタイム性能の要求が高い組込みシステムにおいては、ある決められた時間内で1フレームの処理を終了することも重要である。第3の実施形態では、実際の処理時間に応じて動的に処理を分割する。
【0081】
(構成)
図9は、第3の実施形態のオブジェクト検出装置の構成を表わす図である。
【0082】
図9を参照して、このオブジェクト検出装置21は、設定部22と、画像入力部24と、選択部25と、検出部26とを備える。
【0083】
画像入力部24は、カメラI/Fから検出対象となるオブジェクトを探索するためのフレーム画像を所定のフレームレートで受ける。
【0084】
設定部22は、複数個の検出対象オブジェクトについての全検出処理を構成する複数個の処理ステップに順序を付ける。また、分割部は、選択部25でオブジェクトの選択が行われた場合に、選択された1以上のオブジェクトについての全検出処理を構成する複数個の処理ステップを再順序付けする。
【0085】
検出部26は、タイマを有し、連続して入力されるフレーム画像のうちの各々のフレーム画像を用いて、所定時間だけ、順序付けされた複数個の処理ステップのうちの未処理の処理ステップを順番に実行する。検出部26は、設定部22で再順序付けが行なわれた場合に、さらに連続して入力されるフレーム画像のうちの各々のフレーム画像を用いて、所定時間だけ、再順序付けされた複数個の処理ステップのうちの未処理の処理ステップを順番に実行する。
【0086】
選択部25は、検出部26がいずれかのフレーム画像で、いずれかのオブジェクトを検出した場合に、複数個の検出対象オブジェクトの中から検出されたオブジェクトと同一および関連する1以上のオブジェクトを選択する。
【0087】
(動作)
図10は、第3の実施形態のオブジェクト検出の動作手順を表わすフローチャートである。
【0088】
図10を参照して、まず、設定部22は、N個の検出対象オブジェクトについての全検出処理を構成する処理ステップを第1番〜第P番に順序付けする(ステップS301)。
【0089】
次に、検出オブジェクト数nが0、変数qが1に設定され、タイマ値が0に設定される(ステップS302)。
【0090】
次に、画像入力部24は、新たなフレーム画像を受ける(ステップS303)。
次に、検出部26は、新たなフレーム画像を対象として、第q番目の処理ステップを実行する(ステップS304)。
【0091】
次に、検出部26によって、N個の検出対象オブジェクトのうちのいずれかのオブジェクトが検出されなかったときには(ステップS305でNO)、変数qがPでない場合には(ステップS306でNO)、変数qがインクリメントされる(ステップS307)。さらに、タイマ値が所定の閾値THを越えた場合には(ステップS308でYES)、設定部22は、タイマ値を0にリセットして(ステップS309)、ステップS303に戻って、新たなフレーム画像での検出処理が開始される。一方、タイマ値が所定の閾値THを越えていない場合には(ステップS308でNO)ステップS304に戻って、同じフレーム画像での検出処理が続行される。
【0092】
変数qがPである場合には(ステップS306でYES)、ステップS302からの処理が繰返される。
【0093】
検出部26によって、N個の検出対象オブジェクトのうちのいずれかのオブジェクトが検出されたときには(ステップS305でYES)、検出オブジェクト数nが0に設定され(ステップS310)、選択部25が、検出されたオブジェクトと同一および関連するS個のオブジェクトを選択する(ステップS311)。
【0094】
設定部22は、選択されたS個の検出対象オブジェクトについての全検出処理を構成する処理ステップを第1番〜第R番に再順序付けする(ステップS312)。
【0095】
次に、変数qが1に設定される(ステップS313)。
画像入力部24は、新たなフレーム画像を受ける(ステップS314)。
【0096】
検出部26は、新たなフレーム画像を対象として、第q番目の処理ステップを実行する(ステップS315)。
【0097】
検出部26によって、S個の検出対象オブジェクトのうちのいずれかのオブジェクトが検出されたときには(ステップS316でYES)、検出オブジェクト数nがインクリメントされる(ステップS317)。
【0098】
さらに、オブジェクトが検出されたか否かに係らず、変数qがRでない場合には(ステップS318でNO)、変数qがインクリメントされる(ステップS319)。さらに、タイマ値が所定の閾値THを越えた場合には(ステップS320でYES)、設定部22は、タイマ値を0にリセットして(ステップS321)、ステップS314に戻って、新たなフレーム画像での検出処理が開始される。一方、タイマ値が所定の閾値THを越えていない場合には(ステップS320でNO)、ステップS315に戻って、同じフレーム画像での検出処理が続行される。
【0099】
一方、変数qがRの場合には(ステップS318でYES)、検出オブジェクト数nが1以上の場合に(ステップS322でYES)、ステップS310からの処理が繰返され、検出オブジェクト数nが1未満の場合に(ステップS322でNO)、ステップS301からの処理が繰返される。
【0100】
撮影モードの間は上記のオブジェクト検出処理が繰返される。撮影モードが終了すると、上記オブジェクト検出処理を終了させる。例えば、撮影モードから再生モードに切り替えられると、CPU1002からオブジェクト検出装置21に対してオブジェクト検出処理終了の命令が通知される。これによりオブジェクト検出装置21はオブジェクト検出処理を終了させる。
【0101】
(効果)
第1の実施形態では、全処理対象を固定値で分割し各フレームの処理対象を固定化したたため、実際の動作時には様々な外部要因により処理時間要求を満たせない場合もある。第3の実施形態によれば、定められた閾値を越えないような処理時間となるよう動的に分割を行なうため実動作に合わせた分割制御が可能である。
【0102】
[変形例]
本発明は、上記の実施形態に限定されるものではなく、たとえば以下のような変形例も含む。
【0103】
(1) 第1〜第3の実施形態で説明したようにオブジェクト検出の全処理を時間方向に分割した場合には、あるフレーム画像で検出されたオブジェクトが次に連続するフレームで検出できないという問題がある。
【0104】
たとえば、あるフレーム画像でサイズの大きい顔が検出された場合、次のフレームにおいては、検出されたサイズの大きな顔は検出対象ではないため当然ながら検出されない。つまり、あるオブジェクトは、1つのフレームで検出され、他のフレームにおいては検出されない。これは分割数が大きくなればなるほど検出したオブジェクトの追従性が悪くなる。この問題は、オブジェクト追跡装置1009によって解決できる。
【0105】
たとえば、図11(a)〜(c)に示すように、時間的に連続するフレーム画像901、902、903の中のフレーム画像901においてオブジェクト910が検出されたとする。このとき、図1に示すオブジェクト追跡装置1009は、次のフレーム画像902ではオブジェクト910の近傍領域920から検出されたオブジェクト910と類似するパターンを持つ領域を探索することによって、フレーム画像902におけるオブジェクト910を検出する。
【0106】
オブジェクト追跡装置1009は、オブジェクト検出装置1006とは独立に動作可能である。図11(c)に示すように、フレーム画像903では、オブジェクト検出装置1006が、新しいオブジェクト911を検出し、かつオブジェクト追跡装置1009が既検出のオブジェクト910を追跡する。
【0107】
(2) 本実施の形態では、1番目のオブジェクトが検出された場合をトリガとして、検出されたオブジェクトと同一および関連するオブジェクトを選択し、再分割および再設定を行なったが、これに限定するものではなく、たとえばデジタルスチルカメラでユーザがモードを変更したり、撮影ボタンを半押ししたことをトリガとして、再分割および再設定を行なうものとしてもよい。
【0108】
(3) 第3の実施形態では、1つの処理ステップは短時間で処理できる単位とし、1つの処理ステップの実行後に、タイマ値が閾値THを越えているかどうかを調べたが、これに限定するものではない。検出部は、1つの処理ステップの実行中に、タイマ値が閾値THを越えた場合に、実行中の処理ステップを中断し、途中の結果を保存しておき、次のフレーム画像において、中断した処理ステップを途中から実行することとしてもよい。
【0109】
(4) 本発明の実施形態では、検出されたオブジェクトと同じ向きで同じ種類のオブジェクトを次回の検出対象として選択したが、これに限定するものではない。たとえば、ヒトの顔が検出されたときに、同じ向きで、異なる種類のオブジェクト(ヒトと犬など)を次回の検出対象としてもよい。
【0110】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0111】
2 分割部、3,13,22 設定部、4,14,24 画像入力部、5,15,25 選択部、6,16,26 検出部、1000 デジタルカメラ、1001 カメラI/F、1002 CPU、1003 SDRAM、1004 ROM、1005 ユーザ操作部I/F、1006 オブジェクト検出装置、1007 LCDI/F、1008 カードI/F、51,1009 オブジェクト追跡装置、1011 画像処理装置。
【技術分野】
【0001】
本発明は、オブジェクト検出装置に関する。
【背景技術】
【0002】
顔検出処理とは、カメラなどで撮影した画像信号から、人物やペットの顔の画像パターンを探し出す機能のことである。顔検出処理は、携帯電話カメラやデジタルカメラにおいて、オートフォーカスなどに応用されており一般的な機能となっている。
【0003】
また、近年自動車にも光学カメラが搭載され、白線、歩行者・車・標識といったオブジェクトを検出することによって運転者に注意を促す技術が応用されてきている。
【0004】
一般に、顔などのオブジェクトを検出する時間は、カメラで撮像されるフレームレートよりも遅いことが多く、リアルタイムで撮影した画像に対して、オブジェクト検出器からの検出結果は数フレーム前の遅れた情報となることがある。このような問題に対して、特許文献1(特許第4539729号公報)では、全画像領域を分割し、分割した画像を時分割で顔検出器に与え、顔検出器が、検出可能な範囲で、全画像における大きなサイズの顔から、最小サイズの顔までを検出する手法が提案されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特許第4539729号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、特許文献1では、向き、種類(人物か動物か)、大きさなどが相違する複数個のオブジェクトを検出することが考慮されていない。リアルタイムで撮影した画像からフレームレート(たとえば、1/30秒)に遅れることなく、複数個のオブジェクトを検出できることは重要な課題である。
【0007】
それゆえに、本発明の目的は、複数個のオブジェクトを高速に検出することが可能なオブジェクト検出装置を提供することである。
【課題を解決するための手段】
【0008】
本発明の一実施形態のオブジェクト検出装置は、複数個の検出対象オブジェクトについての全検出処理をM個に均等に分割する分割部と、連続して入力されるM個のフレーム画像のうちの各々のフレーム画像での検出処理を、分割されたM個の検出処理のうちの1つに設定する設定部と、各フレーム画像において、設定された検出処理を実行する検出部と、検出部がM個のフレーム画像のうちのいずれかで、いずれかのオブジェクトを検出した場合に、複数個の検出対象オブジェクトの中から検出されたオブジェクトと同一および関連する1以上のオブジェクトを選択する選択部とを備える。分割部は、選択された1以上のオブジェクトについての全検出処理をL個に均等に再分割し、設定部は、さらに連続して入力されるL個のフレーム画像のうちの各々のフレーム画像での検出処理を、再分割されたL個の検出処理のうちの1つに再設定し、検出部は、各フレーム画像において、再設定された検出処理を実行し、分割部によってL個に再分割された処理量は、分割部によってM個に分割された処理量よりも少ない。
【発明の効果】
【0009】
本発明の一実施形態によれば、複数個のオブジェクトを高速に検出することができる。
【図面の簡単な説明】
【0010】
【図1】本発明の実施の形態におけるデジタルカメラの構成例を示すブロック図である。
【図2】第1の実施形態のオブジェクト検出装置の構成を表わす図である。
【図3】第1の実施形態のオブジェクト検出の動作手順を表わすフローチャートである。
【図4】第2の実施形態のオブジェクト検出装置の構成を表わす図である。
【図5】第2の実施形態のオブジェクト検出の動作手順を表わすフローチャートである。
【図6】検出対象オブジェクトのフレーム画像への割当の例を説明するための図である。
【図7】選択したオブジェクトのフレーム画像への再割当の例を説明するための図である。
【図8】オブジェクトの検出結果を表わす図である。
【図9】第3の実施形態のオブジェクト検出装置の構成を表わす図である。
【図10】第3の実施形態のオブジェクト検出の動作手順を表わすフローチャートである。
【図11】オブジェクトの移動の例を表わす図である。
【発明を実施するための形態】
【0011】
以下、本発明の実施形態について図面を参照して説明する。
[第1の実施形態]
(デジタルスチルカメラ)
図1は、本発明の実施の形態におけるデジタルカメラのシステム構成例を示すブロック図である。本発明の実施形態では、検出および追跡対象のオブジェクトとして顔を例にして説明するが、本発明の実施形態の手法は、顔に限定されるものではなく、その他のオブジェクトの検出および追跡にも用いることができる。
【0012】
図1を参照して、このデジタルカメラシステムは、半導体装置を有し、半導体装置は、カメラI/F(Interface)1001と、CPU(Central Processing Unit)1002と、SDRAM(Synchronous Dynamic Random Access Memory)1003と、ROM(Read Only Memory)1004と、ユーザ操作部I/F1005と、LCDI/F1007と、カードI/F1008と、オブジェクト検出装置1006、オブジェクト追跡装置1009とを含み、これらがバス1010を介して接続されている。オブジェクト検出装置1006、オブジェクト追跡装置1009とは画像処理装置1011を構成する。
【0013】
カメラI/F1001は、カメラセンサに接続されており、カメラセンサによって撮像された画像を受け、SDRAM1003やカードI/F1008を介して接続される図示しないSDメモリカードなどにその画像を書き込む。
【0014】
CPU1002は、SDRAM1003やROM1004に記憶されるプログラムを実行することによって、システム全体の制御を行なう。CPU1002は、SDRAM1003に格納された顔(オブジェクト)の位置を表わす情報を焦点合わせのためにカメラI/F1001を通じてカメラの撮像系に送る。また、CPU1002は、顔(オブジェクト)の位置を表わす情報から顔の位置を表わす図形(矩形など)をLCDI/F1007に送る。
【0015】
ROM1004は、オブジェクトの検出、オブジェクトの追跡に用いられるデータを記憶する。
【0016】
ユーザ操作部I/F1005は、図示しないシャッターボタンなどに接続され、シャッターボタンが押されたときに、割り込みなどによってその旨をCPU1002に通知する。CPU1002は、割り込み要求を受けると、カメラI/F1001を制御してカメラセンサによって撮像された画像をSDRAM1003などに格納する。またユーザ操作部I/F1005は、ユーザの操作によって、画像を撮影する撮影モードから画像を再生する再生モードへ切り替わった場合などもCPU1002へ通知する。
【0017】
LCDI/F1007は、図示しないLCDパネルに接続され、LCDの表示の制御などを行なう。カメラセンサによって撮影された画像をプレビューとしてLCDに表示する。また、LCDI/F1007は、CPU1002から送られた顔(オブジェクト)の位置を表わす図形を撮影された画像上に重畳表示する。
【0018】
カードI/F1008は、SDメモリカードなどの外部の記録媒体に接続され、記録媒体に対するデータの読み出しや書き込みを行なう。
【0019】
オブジェクト検出装置1006は、カメラセンサによって撮影されてカメラI/F1001から送られる画像から顔(オブジェクト)の検出処理を行なって、顔(オブジェクト)の位置を表わす情報をSDRAM1003に格納する。オブジェクト検出装置1006は、検出したオブジェクトの領域をテンプレートとして登録する。
【0020】
オブジェクト追跡装置1009は、カメラセンサによって撮影されてカメラI/F1001から送られる画像においてオブジェクト検出装置1006で検出された顔(オブジェクト)の追跡処理を行なって、顔(オブジェクト)の位置を表わす情報をSDRAM1003に格納する。オブジェクト追跡装置1009は、撮影された画像から、オブジェクト検出装置1006で得られたテンプレートと類似する領域を検索することによって、オブジェクトの追跡を行なう。
【0021】
(構成)
図2は、第1の実施形態のオブジェクト検出装置の構成を表わす図である。
【0022】
図2を参照して、このオブジェクト検出装置1006は、分割部2と、設定部3と、画像入力部4と、選択部5と、検出部6とを備える。
【0023】
画像入力部4は、カメラI/Fから検出対象となるオブジェクトを探索するためのフレーム画像を所定のフレームレートで受ける。
【0024】
分割部2は、複数個の検出対象オブジェクトについての全検出処理をM個に均等に分割する。また、分割部2は、選択部5でオブジェクトの選択が行われた場合に、選択された1以上のオブジェクトについての全検出処理をL個に均等に再分割する。ここで、分割部2によってL個に再分割された処理量は、分割部2によってM個に分割された処理量よりも少ないという特性を有する。本実施の形態では、1フレームで1種類のオブジェクトを検出対象とするのでなく1フレームの検出処理量が均等になるように分割されるので、1フレームで複数個のオブジェクトを検出対象となる場合や、複数のフレームに跨って1個のオブジェクトが検出対象となる場合もある。
【0025】
設定部3は、連続して入力されるM個のフレーム画像のうちの各々のフレーム画像での検出処理を、分割されたM個の検出処理のうちの1つに設定する。設定部3は、分割部2で再分割が行なわれた場合に、さらに連続して入力されるL個のフレーム画像のうちの各々のフレーム画像での検出処理を、再分割されたL個の検出処理のうちの1つに再設定する。
【0026】
検出部6は、各フレーム画像において、設定部3で設定された検出処理を実行する。検出部6は、設定部3で再設定がなされた場合に、各フレーム画像において、再設定された検出処理を実行する。検出部6は、オブジェクトが検出された場合に、検出されたオブジェクトの位置をCPU1002へ出力する。
【0027】
選択部5は、検出部6がM個のフレーム画像のうちのいずれかで、いずれかのオブジェクトを検出した場合に、複数個の検出対象オブジェクトの中から検出されたオブジェクトと同一および関連する1以上のオブジェクトを選択する。ここで、関連するとは、向き、種類、大きさの少なくとも1つが同一のオブジェクトである。
【0028】
(動作)
図3は、第1の実施形態のオブジェクト検出の動作手順を表わすフローチャートである。
【0029】
図3を参照して、まず、分割部2は、N個の検出対象オブジェクトについての全検出処理を第1番〜第M番の処理に均等に分割する。各処理の処理量をT0とする(ステップS101)。
【0030】
次に、検出オブジェクト数nが0、変数iが1に設定される(ステップS102)。
次に、画像入力部4は、第i番目のフレーム画像を受ける(ステップS103)。
【0031】
設定部3は、第i番目のフレーム画像に分割部2で分割された第i番目の処理を割り当てる(ステップS104)。
【0032】
次に、検出部6は、第i番目のフレーム画像を対象として、割り当てられた第i番目の処理を実行する(ステップS105)。
【0033】
次に、検出部6の第i番目の処理によって、N個の検出対象オブジェクトのうちのいずれかのオブジェクトが検出されなかったときには(ステップS106でNO)、変数iがMでない場合には(ステップS107でNO)、変数iがインクリメントされた(ステップS109)後、ステップS103に戻り、変数iがMの場合には(ステップS107でYES)、変数iが0に戻り(ステップS108)、変数iがインクリメントされた(ステップS109)後、ステップS103に戻る。
【0034】
一方、検出部6の第i番目の処理によって、N個の検出対象オブジェクトのうちのいずれかのオブジェクトが検出されたときには(ステップS106でYES)、検出オブジェクト数nが0に設定され(ステップS110)、変数jが1に設定される(ステップS111)。
【0035】
次に、選択部5が、検出されたオブジェクトと同一および関連するS個のオブジェクトを選択する(ステップS112)。
【0036】
次に、選択されたS個の検出対象オブジェクトについての全検出処理を第1番〜第L番の処理に均等に再分割する。各処理の処理量をT1とする。ここで、T1<T0である(ステップS113)。
【0037】
次に、画像入力部4は、第j番目のフレーム画像を受ける(ステップS114)。
次に、設定部3は、第j番目のフレーム画像にステップS113で分割部2によって再分割された第j番目の処理を割り当てる(ステップS115)。
【0038】
次に、検出部6は、第j番目のフレーム画像を対象として、割り当てられた第j番目の処理を実行する(ステップS116)。
【0039】
次に、検出部6の第j番目の処理によって、S個の検出対象オブジェクトのうちのいずれかのオブジェクトが検出されたときには(ステップS117でYES)、検出オブジェクト数nがインクリメントされる(ステップS118)。
【0040】
さらに、オブジェクトが検出されたか否かに係らず、その後、変数jがLでない場合には(ステップS119でNO)、変数jがインクリメントされた(ステップS120)後、ステップS114に戻り、変数jがLの場合には(ステップS119でYES)、検出オブジェクト数nが1以上の場合に(ステップS121でYES)、ステップS110からの処理が繰り返され、検出オブジェクト数nが1未満の場合に(ステップS121でNO)、ステップS101からの処理が繰返される。
【0041】
撮影モードの間は上記のオブジェクト検出処理が繰返される。撮影モードが終了すると、上記オブジェクト検出処理を終了させる。例えば、撮影モードから再生モードに切り替えられると、CPU1002からオブジェクト検出装置1006に対してオブジェクト検出処理終了の命令が通知される。これによりオブジェクト検出装置1006はオブジェクト検出処理を終了させる。
【0042】
(効果)
以上のように、本実施の形態では、画像から複数のオブジェクトを検出するときに、複数のフレーム画像を用いて、検出対象の複数のオブジェクトを検出する。本実施の形態では、各フレーム画像での検出処理量が均等となるように全検出処理を分割する。さらに、オブジェクトが検出された時、検出対象のオブジェクトの数を少なくし、各フレーム画像での検出処理量が均等となるように全検出処理を再分割する。これによって、時間方向に処理を分散した上で、画像内の2個目以降のオブジェクト検出を高速に行なうことが可能である。
【0043】
[第2の実施形態]
第1の実施形態では、各フレームにおける検出処理量が均等になるよう、複数個のオブジェクトについての全検出処理を分割した。これに対して、本実施の形態では、各フレームにおいて、1つのオブジェクトを検出するように、複数個のオブジェクトについての全検出処理を分割する。
【0044】
(構成)
図4は、第2の実施形態のオブジェクト検出装置の構成を表わす図である。
【0045】
図4を参照して、このオブジェクト検出装置11は、設定部13と、画像入力部14と、選択部15と、検出部16とを備える。
【0046】
画像入力部14は、カメラI/Fから検出対象となるオブジェクトを探索するためのフレーム画像を所定のフレームレートで受ける。
【0047】
設定部13は、連続して入力されるN個のフレーム画像のうちの各々のフレーム画像の検出対象を、N個の検出対象オブジェクトのうちの1つに設定する。
【0048】
設定部13は、選択部15でオブジェクトの選択が行われた場合に、さらに連続して入力されるM(=S×K)個のフレーム画像の各フレーム画像の検出対象と検出領域を再設定する。具体的には、設定部13は、M個のフレーム画像はK個のグループのいずれかに属し、かつ各グループにはS個のフレーム画像が含まれるものとし、各グループ内のS個のフレーム画像の各々の検出対象をS個のオブジェクトのうちの1つに設定し、異なるグループのフレーム画像の検出領域をK個に分割した別個の領域に設定する。これによって、1フレームにおける検出処理量を選択前よりも少なくすることができる。1フレームでのオブジェクトの検出処理が、入力される画像のフレームレートに追いつかなくなることを防止できる。
【0049】
検出部16は、各フレーム画像において、検出対象として設定されたオブジェクトの検出処理を実行する。検出部16は、設定部13で再設定がなされたときには、各フレーム画像の設定された各検出領域において、設定されたオブジェクトの検出処理を実行する。
【0050】
選択部15は、検出部16が前記N個のフレーム画像のうちのいずれかでオブジェクトを検出した場合に、N個の検出対象オブジェクトの中から検出されたオブジェクトと同一および関連するS個のオブジェクトを選択する。
【0051】
(動作)
図5は、第2の実施形態のオブジェクト検出の動作手順を表わすフローチャートである。
【0052】
図5を参照して、まず、検出オブジェクト数nが0、変数iが1に設定される(ステップS201)。
【0053】
次に、画像入力部14は、第i番目のフレーム画像を受ける(ステップS202)。
次に、設定部13は、第i番目のフレーム画像に第i番目のオブジェクトの検出処理を割り当てる(ステップS203)。
【0054】
次に、検出部16は、第i番目のフレーム画像を対象として、割り当てられた第i番目のオブジェクトの検出処理を実行する(ステップS204)。
【0055】
次に、検出部16が第i番目のオブジェクトを検出しなかったときには(ステップS205でNO)、変数iがNでない場合には(ステップS206でNO)、変数iがインクリメントされた(ステップS208)後、ステップS202に戻り、変数iがNの場合には(ステップS206でYES)、変数iが0に戻り(ステップS207)、変数iがインクリメントされた(ステップS208)後、ステップS202に戻る。
【0056】
一方、検出部16が第i番目のオブジェクトを検出したとき(ステップS205でYES)、検出オブジェクト数nが1に設定され(ステップS209)、変数jが1に設定される(ステップS210)。
【0057】
次に、選択部15が、検出されたオブジェクトと同一および関連するS個のオブジェクトを選択する(ステップS211)。
【0058】
次に、画像入力部14は、第j番目のフレーム画像を受ける(ステップS212)。
次に、設定部13は、(j−1)をフレーム内分割数Kで除算した余りに1を加えた値mを計算する(ステップS213)。
【0059】
次に、設定部13は、変数jをフレーム内分割数Kで除算した値の小数部分を切り上げた値gを計算する(ステップS214)。
【0060】
次に、設定部13は、第j番目のフレーム画像内の第m分割領域に第g番目のオブジェクトの検出処理を割り当てる(ステップS215)。
【0061】
次に、検出部16は、第j番目のフレーム画像の第m分割領域において、第g番目のオブジェクトの検出処理を実行する(ステップS216)。
【0062】
次に、検出部16が第g番目のオブジェクトを検出したときには(ステップS217でYES)、検出オブジェクト数nがインクリメントされる(ステップS218)。
【0063】
さらに、オブジェクトが検出されたか否かに係らず、その後、変数jがM(=S×L)でない場合には(ステップS219でNO)、変数jがインクリメントされた(ステップS220)後、ステップS212に戻り、変数jがMの場合には(ステップS219でYES)、検出オブジェクト数nが1以上の場合に(ステップS221でYES)、ステップS209からの処理が繰返され、検出オブジェクト数nが1未満の場合に(ステップS221でNO)、ステップS201からの処理が繰返される。
【0064】
撮影モードの間は上記のオブジェクト検出処理が繰返される。撮影モードが終了すると、上記オブジェクト検出処理を終了させる。例えば、撮影モードから再生モードに切り替えられると、CPU1002からオブジェクト検出装置11に対してオブジェクト検出処理終了の命令が通知される。これによりオブジェクト検出装置11はオブジェクト検出処理を終了させる。
【0065】
(オブジェクトの検出例)
図6は、検出対象オブジェクトのフレーム画像への割当の例を説明するための図である。
【0066】
図6に示すように、検出対象のオブジェクトの個数を16個とする。16個のオブジェクトは、オブジェクトの種類(ヒトの顔、犬の顔)、大きさ、向きのいずれかがそれぞれ相違する。連続する16個のフレーム画像の各々に1つのオブジェクトが割り当てられる。たとえば、第1番目のフレーム画像に、種類が「ヒトの顔」で、大きさが「大きく」、向きが「0度回転」のオブジェクトが割り当てられる。
【0067】
各フレーム画像において、割り当てられたオブジェクトの検出処理が行なわれる。
ここで、図6に示すように、5番目のフレーム画像401において、初めて1つのオブジェクト(種類が「ヒトの顔」で、大きさが「大きく」で、向きが「270度回転」のオブジェクト)が検出されたものとする。
【0068】
この後、選択部15によって、検出されたオブジェクトと同一および関連するS個のオブジェクトが選択される。ここでは、検出されたオブジェクトAと、オブジェクトAと同じ向きで、同じ種類のオブジェクトBを選択することによって、2番目以降の検出対象オブジェクトの数を限定して、全オブジェクトの検出処理にかかる時間を短縮する。例えば図6において、オブジェクトAは(5)の画像、オブジェクトBは(6)の画像である。このように、1番目のオブジェクトが検出された後に、次の検出対象オブジェクトを絞り込んだ理由は、時間的に連続するフレーム画像の中に存在するオブジェクトは、同じオブジェクトであるか、あるいは種類が同じである、向きが同じである、位置が近い、サイズが近いなどの傾向があるからである。どのように検出対象のオブジェクトを絞り込むかは、システムにおいてそれらのどの傾向を重視するかによって定める。ここでは、向きと種類で検出対象のオブジェクトを絞り込むものとする。
【0069】
さらに、フレーム画像がK個の領域に分割されることとし、連続するS×K(=M)個のフレーム画像の各々に1つの分割領域と、1つの検出対象オブジェクトを割り当てることとする。ここでは、前述のようにS=2である。K=2とする。
【0070】
図7は、選択したオブジェクトのフレーム画像への再割当の例を説明するための図である。
【0071】
第1グループには、第1番目、第3番目のフレーム画像が属し、第2グループには、第2番目、第4番目のフレーム画像が属する。
【0072】
第1番目のフレーム画像については、(1−1)/Kの余りに1を加えた値mは1であり、1/Kの小数部分を切り上げた値gは1であるので、第1番目のフレーム画像の第m分割領域(第1分割領域)に第g番目(第1番目)のオブジェクトAの検出処理が割り当てられる。
【0073】
第2番目のフレーム画像については、(2−1)/Kの余りに1を加えた値mは2であり、2/Kの小数部分を切り上げた値gは1であるので、第2番目のフレーム画像の第m分割領域(第2分割領域)に第g番目(第1番目)のオブジェクトAの検出処理が割り当てられる。
【0074】
第3番目のフレーム画像については、(3−1)/Kの余りに1を加えた値mは1であり、3/Kの小数部分を切り上げた値gは2であるので、第3番目のフレーム画像の第m分割領域(第1分割領域)に第g番目(第2番目)のオブジェクトBの検出処理が割り当てられる。
【0075】
第4番目のフレーム画像については、(4−1)/Kの余りに1を加えた値mは2であり、4/Kの小数部分を切り上げた値gは2であるので、第2番目のフレーム画像の第m分割領域(第2分割領域)に第g番目(第2番目)のオブジェクトBの検出処理が割り当てられる。
【0076】
このように、1フレーム画像における検出領域を小さくすることによって、1フレーム画像でのオブジェクト検出処理にかかる時間を短縮することができる。
【0077】
ここでは、図7のフレーム画像501においてオブジェクトBが検出されたものとする。
【0078】
図8は、オブジェクトの検出結果を表わす図である。
図8に示すように、オブジェクトAとオブジェクトBが検出され、検出結果がCPU1002に送られる。
【0079】
(効果)
以上のように、本実施の形態では、各フレーム画像で1つのオブジェクトを検出対象とする。さらに、オブジェクトが検出された時、検出対象のオブジェクトの数を少なくする。これによって、画像内の2個目以降のオブジェクト検出を高速に行なうことが可能である。
【0080】
[第3の実施形態]
第1の実施形態では、各フレーム画像での検出処理量が均等になるように、全オブジェクトの検出処理を分割していた。しかしながら、リアルタイム性能の要求が高い組込みシステムにおいては、ある決められた時間内で1フレームの処理を終了することも重要である。第3の実施形態では、実際の処理時間に応じて動的に処理を分割する。
【0081】
(構成)
図9は、第3の実施形態のオブジェクト検出装置の構成を表わす図である。
【0082】
図9を参照して、このオブジェクト検出装置21は、設定部22と、画像入力部24と、選択部25と、検出部26とを備える。
【0083】
画像入力部24は、カメラI/Fから検出対象となるオブジェクトを探索するためのフレーム画像を所定のフレームレートで受ける。
【0084】
設定部22は、複数個の検出対象オブジェクトについての全検出処理を構成する複数個の処理ステップに順序を付ける。また、分割部は、選択部25でオブジェクトの選択が行われた場合に、選択された1以上のオブジェクトについての全検出処理を構成する複数個の処理ステップを再順序付けする。
【0085】
検出部26は、タイマを有し、連続して入力されるフレーム画像のうちの各々のフレーム画像を用いて、所定時間だけ、順序付けされた複数個の処理ステップのうちの未処理の処理ステップを順番に実行する。検出部26は、設定部22で再順序付けが行なわれた場合に、さらに連続して入力されるフレーム画像のうちの各々のフレーム画像を用いて、所定時間だけ、再順序付けされた複数個の処理ステップのうちの未処理の処理ステップを順番に実行する。
【0086】
選択部25は、検出部26がいずれかのフレーム画像で、いずれかのオブジェクトを検出した場合に、複数個の検出対象オブジェクトの中から検出されたオブジェクトと同一および関連する1以上のオブジェクトを選択する。
【0087】
(動作)
図10は、第3の実施形態のオブジェクト検出の動作手順を表わすフローチャートである。
【0088】
図10を参照して、まず、設定部22は、N個の検出対象オブジェクトについての全検出処理を構成する処理ステップを第1番〜第P番に順序付けする(ステップS301)。
【0089】
次に、検出オブジェクト数nが0、変数qが1に設定され、タイマ値が0に設定される(ステップS302)。
【0090】
次に、画像入力部24は、新たなフレーム画像を受ける(ステップS303)。
次に、検出部26は、新たなフレーム画像を対象として、第q番目の処理ステップを実行する(ステップS304)。
【0091】
次に、検出部26によって、N個の検出対象オブジェクトのうちのいずれかのオブジェクトが検出されなかったときには(ステップS305でNO)、変数qがPでない場合には(ステップS306でNO)、変数qがインクリメントされる(ステップS307)。さらに、タイマ値が所定の閾値THを越えた場合には(ステップS308でYES)、設定部22は、タイマ値を0にリセットして(ステップS309)、ステップS303に戻って、新たなフレーム画像での検出処理が開始される。一方、タイマ値が所定の閾値THを越えていない場合には(ステップS308でNO)ステップS304に戻って、同じフレーム画像での検出処理が続行される。
【0092】
変数qがPである場合には(ステップS306でYES)、ステップS302からの処理が繰返される。
【0093】
検出部26によって、N個の検出対象オブジェクトのうちのいずれかのオブジェクトが検出されたときには(ステップS305でYES)、検出オブジェクト数nが0に設定され(ステップS310)、選択部25が、検出されたオブジェクトと同一および関連するS個のオブジェクトを選択する(ステップS311)。
【0094】
設定部22は、選択されたS個の検出対象オブジェクトについての全検出処理を構成する処理ステップを第1番〜第R番に再順序付けする(ステップS312)。
【0095】
次に、変数qが1に設定される(ステップS313)。
画像入力部24は、新たなフレーム画像を受ける(ステップS314)。
【0096】
検出部26は、新たなフレーム画像を対象として、第q番目の処理ステップを実行する(ステップS315)。
【0097】
検出部26によって、S個の検出対象オブジェクトのうちのいずれかのオブジェクトが検出されたときには(ステップS316でYES)、検出オブジェクト数nがインクリメントされる(ステップS317)。
【0098】
さらに、オブジェクトが検出されたか否かに係らず、変数qがRでない場合には(ステップS318でNO)、変数qがインクリメントされる(ステップS319)。さらに、タイマ値が所定の閾値THを越えた場合には(ステップS320でYES)、設定部22は、タイマ値を0にリセットして(ステップS321)、ステップS314に戻って、新たなフレーム画像での検出処理が開始される。一方、タイマ値が所定の閾値THを越えていない場合には(ステップS320でNO)、ステップS315に戻って、同じフレーム画像での検出処理が続行される。
【0099】
一方、変数qがRの場合には(ステップS318でYES)、検出オブジェクト数nが1以上の場合に(ステップS322でYES)、ステップS310からの処理が繰返され、検出オブジェクト数nが1未満の場合に(ステップS322でNO)、ステップS301からの処理が繰返される。
【0100】
撮影モードの間は上記のオブジェクト検出処理が繰返される。撮影モードが終了すると、上記オブジェクト検出処理を終了させる。例えば、撮影モードから再生モードに切り替えられると、CPU1002からオブジェクト検出装置21に対してオブジェクト検出処理終了の命令が通知される。これによりオブジェクト検出装置21はオブジェクト検出処理を終了させる。
【0101】
(効果)
第1の実施形態では、全処理対象を固定値で分割し各フレームの処理対象を固定化したたため、実際の動作時には様々な外部要因により処理時間要求を満たせない場合もある。第3の実施形態によれば、定められた閾値を越えないような処理時間となるよう動的に分割を行なうため実動作に合わせた分割制御が可能である。
【0102】
[変形例]
本発明は、上記の実施形態に限定されるものではなく、たとえば以下のような変形例も含む。
【0103】
(1) 第1〜第3の実施形態で説明したようにオブジェクト検出の全処理を時間方向に分割した場合には、あるフレーム画像で検出されたオブジェクトが次に連続するフレームで検出できないという問題がある。
【0104】
たとえば、あるフレーム画像でサイズの大きい顔が検出された場合、次のフレームにおいては、検出されたサイズの大きな顔は検出対象ではないため当然ながら検出されない。つまり、あるオブジェクトは、1つのフレームで検出され、他のフレームにおいては検出されない。これは分割数が大きくなればなるほど検出したオブジェクトの追従性が悪くなる。この問題は、オブジェクト追跡装置1009によって解決できる。
【0105】
たとえば、図11(a)〜(c)に示すように、時間的に連続するフレーム画像901、902、903の中のフレーム画像901においてオブジェクト910が検出されたとする。このとき、図1に示すオブジェクト追跡装置1009は、次のフレーム画像902ではオブジェクト910の近傍領域920から検出されたオブジェクト910と類似するパターンを持つ領域を探索することによって、フレーム画像902におけるオブジェクト910を検出する。
【0106】
オブジェクト追跡装置1009は、オブジェクト検出装置1006とは独立に動作可能である。図11(c)に示すように、フレーム画像903では、オブジェクト検出装置1006が、新しいオブジェクト911を検出し、かつオブジェクト追跡装置1009が既検出のオブジェクト910を追跡する。
【0107】
(2) 本実施の形態では、1番目のオブジェクトが検出された場合をトリガとして、検出されたオブジェクトと同一および関連するオブジェクトを選択し、再分割および再設定を行なったが、これに限定するものではなく、たとえばデジタルスチルカメラでユーザがモードを変更したり、撮影ボタンを半押ししたことをトリガとして、再分割および再設定を行なうものとしてもよい。
【0108】
(3) 第3の実施形態では、1つの処理ステップは短時間で処理できる単位とし、1つの処理ステップの実行後に、タイマ値が閾値THを越えているかどうかを調べたが、これに限定するものではない。検出部は、1つの処理ステップの実行中に、タイマ値が閾値THを越えた場合に、実行中の処理ステップを中断し、途中の結果を保存しておき、次のフレーム画像において、中断した処理ステップを途中から実行することとしてもよい。
【0109】
(4) 本発明の実施形態では、検出されたオブジェクトと同じ向きで同じ種類のオブジェクトを次回の検出対象として選択したが、これに限定するものではない。たとえば、ヒトの顔が検出されたときに、同じ向きで、異なる種類のオブジェクト(ヒトと犬など)を次回の検出対象としてもよい。
【0110】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0111】
2 分割部、3,13,22 設定部、4,14,24 画像入力部、5,15,25 選択部、6,16,26 検出部、1000 デジタルカメラ、1001 カメラI/F、1002 CPU、1003 SDRAM、1004 ROM、1005 ユーザ操作部I/F、1006 オブジェクト検出装置、1007 LCDI/F、1008 カードI/F、51,1009 オブジェクト追跡装置、1011 画像処理装置。
【特許請求の範囲】
【請求項1】
複数個の検出対象オブジェクトについての全検出処理をM個に均等に分割する分割部と、
連続して入力されるM個のフレーム画像のうちの各々のフレーム画像での検出処理を、前記分割されたM個の検出処理のうちの1つに設定する設定部と、
前記各フレーム画像において、前記設定された検出処理を実行する検出部と、
前記検出部が前記M個のフレーム画像のうちのいずれかで、いずれかのオブジェクトを検出した場合に、前記複数個の検出対象オブジェクトの中から前記検出されたオブジェクトと同一および関連する1以上のオブジェクトを選択する選択部とを備え、
前記分割部は、前記選択された1以上のオブジェクトについての全検出処理をL個に均等に再分割し、
前記設定部は、さらに連続して入力されるL個のフレーム画像のうちの各々のフレーム画像での検出処理を、前記再分割されたL個の検出処理のうちの1つに再設定し、
前記検出部は、前記各フレーム画像において、前記再設定された検出処理を実行し、
前記分割部によって前記L個に再分割された処理量は、前記分割部によって前記M個に分割された処理量よりも少ない、オブジェクト検出装置。
【請求項2】
連続して入力されるN個のフレーム画像のうちの各々のフレーム画像の検出対象を、N個の検出対象オブジェクトのうちの1つに設定する設定部と、
前記各フレーム画像において、検出対象として設定されたオブジェクトの検出処理を実行する検出部と、
前記検出部が前記N個のフレーム画像のうちのいずれかで前記オブジェクトを検出した場合に、前記N個の検出対象オブジェクトの中から前記検出されたオブジェクトと同一および関連するS個のオブジェクトを選択する選択部とを備え、
前記設定部は、さらに連続して入力されるM(=S×K)個のフレーム画像の各フレーム画像の検出対象と検出領域を再設定し、
前記設定部は、M個のフレーム画像はK個のグループのいずれかに属し、各グループにはS個のフレーム画像が含まれるとしたときに、各グループ内のS個のフレーム画像の各々の検出対象をS個のオブジェクトのうちの1つに設定し、さらに異なるグループのフレーム画像の検出領域をK個に分割した別個の領域に設定し、
前記検出部は、前記各フレーム画像の前記再設定された各検出領域において、前記設定されたオブジェクトの検出処理を実行する、オブジェクト検出装置。
【請求項3】
複数個の検出対象オブジェクトについての全検出処理を構成する複数個の処理ステップに順序を付ける設定部と、
連続して入力されるフレーム画像のうちの各々のフレーム画像を用いて、所定時間だけ前記複数個の処理ステップのうちの未処理の処理ステップを順番に実行する検出部と、
前記検出部がいずれかのフレーム画像で、いずれかのオブジェクトを検出した場合に、前記複数個の検出対象オブジェクトの中から前記検出されたオブジェクトと同一および関連する1以上のオブジェクトを選択する選択部とを備え、
前記設定部は、前記選択された1以上のオブジェクトについての全検出処理を構成する複数個の処理ステップを再順序付けし、
前記検出部は、さらに連続して入力されるフレーム画像のうちの各々のフレーム画像を用いて、所定時間だけ前記再順序付けされた複数個の処理ステップのうちの未処理の処理ステップを順番に実行する、オブジェクト検出装置。
【請求項4】
前記複数個の検出対象オブジェクトは、種類、大きさ、向きのうちのいずれかがそれぞれ異なる、請求項1〜3のいずれか1項に記載のオブジェクト検出装置。
【請求項5】
前記選択部は、前記検出されたオブジェクトと同一の種類で同一の向きのオブジェクトを選択する、請求項4記載のオブジェクト検出装置。
【請求項1】
複数個の検出対象オブジェクトについての全検出処理をM個に均等に分割する分割部と、
連続して入力されるM個のフレーム画像のうちの各々のフレーム画像での検出処理を、前記分割されたM個の検出処理のうちの1つに設定する設定部と、
前記各フレーム画像において、前記設定された検出処理を実行する検出部と、
前記検出部が前記M個のフレーム画像のうちのいずれかで、いずれかのオブジェクトを検出した場合に、前記複数個の検出対象オブジェクトの中から前記検出されたオブジェクトと同一および関連する1以上のオブジェクトを選択する選択部とを備え、
前記分割部は、前記選択された1以上のオブジェクトについての全検出処理をL個に均等に再分割し、
前記設定部は、さらに連続して入力されるL個のフレーム画像のうちの各々のフレーム画像での検出処理を、前記再分割されたL個の検出処理のうちの1つに再設定し、
前記検出部は、前記各フレーム画像において、前記再設定された検出処理を実行し、
前記分割部によって前記L個に再分割された処理量は、前記分割部によって前記M個に分割された処理量よりも少ない、オブジェクト検出装置。
【請求項2】
連続して入力されるN個のフレーム画像のうちの各々のフレーム画像の検出対象を、N個の検出対象オブジェクトのうちの1つに設定する設定部と、
前記各フレーム画像において、検出対象として設定されたオブジェクトの検出処理を実行する検出部と、
前記検出部が前記N個のフレーム画像のうちのいずれかで前記オブジェクトを検出した場合に、前記N個の検出対象オブジェクトの中から前記検出されたオブジェクトと同一および関連するS個のオブジェクトを選択する選択部とを備え、
前記設定部は、さらに連続して入力されるM(=S×K)個のフレーム画像の各フレーム画像の検出対象と検出領域を再設定し、
前記設定部は、M個のフレーム画像はK個のグループのいずれかに属し、各グループにはS個のフレーム画像が含まれるとしたときに、各グループ内のS個のフレーム画像の各々の検出対象をS個のオブジェクトのうちの1つに設定し、さらに異なるグループのフレーム画像の検出領域をK個に分割した別個の領域に設定し、
前記検出部は、前記各フレーム画像の前記再設定された各検出領域において、前記設定されたオブジェクトの検出処理を実行する、オブジェクト検出装置。
【請求項3】
複数個の検出対象オブジェクトについての全検出処理を構成する複数個の処理ステップに順序を付ける設定部と、
連続して入力されるフレーム画像のうちの各々のフレーム画像を用いて、所定時間だけ前記複数個の処理ステップのうちの未処理の処理ステップを順番に実行する検出部と、
前記検出部がいずれかのフレーム画像で、いずれかのオブジェクトを検出した場合に、前記複数個の検出対象オブジェクトの中から前記検出されたオブジェクトと同一および関連する1以上のオブジェクトを選択する選択部とを備え、
前記設定部は、前記選択された1以上のオブジェクトについての全検出処理を構成する複数個の処理ステップを再順序付けし、
前記検出部は、さらに連続して入力されるフレーム画像のうちの各々のフレーム画像を用いて、所定時間だけ前記再順序付けされた複数個の処理ステップのうちの未処理の処理ステップを順番に実行する、オブジェクト検出装置。
【請求項4】
前記複数個の検出対象オブジェクトは、種類、大きさ、向きのうちのいずれかがそれぞれ異なる、請求項1〜3のいずれか1項に記載のオブジェクト検出装置。
【請求項5】
前記選択部は、前記検出されたオブジェクトと同一の種類で同一の向きのオブジェクトを選択する、請求項4記載のオブジェクト検出装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2013−50791(P2013−50791A)
【公開日】平成25年3月14日(2013.3.14)
【国際特許分類】
【出願番号】特願2011−187444(P2011−187444)
【出願日】平成23年8月30日(2011.8.30)
【出願人】(302062931)ルネサスエレクトロニクス株式会社 (8,021)
【Fターム(参考)】
【公開日】平成25年3月14日(2013.3.14)
【国際特許分類】
【出願日】平成23年8月30日(2011.8.30)
【出願人】(302062931)ルネサスエレクトロニクス株式会社 (8,021)
【Fターム(参考)】
[ Back to top ]