JP5371541B2 - データ処理装置及びその処理方法 - Google Patents

データ処理装置及びその処理方法 Download PDF

Info

Publication number
JP5371541B2
JP5371541B2 JP2009121349A JP2009121349A JP5371541B2 JP 5371541 B2 JP5371541 B2 JP 5371541B2 JP 2009121349 A JP2009121349 A JP 2009121349A JP 2009121349 A JP2009121349 A JP 2009121349A JP 5371541 B2 JP5371541 B2 JP 5371541B2
Authority
JP
Japan
Prior art keywords
processing
parameter
data processing
data
result
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.)
Expired - Fee Related
Application number
JP2009121349A
Other languages
English (en)
Other versions
JP2010271795A (ja
Inventor
良子 三瀬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2009121349A priority Critical patent/JP5371541B2/ja
Priority to US12/778,964 priority patent/US8831363B2/en
Publication of JP2010271795A publication Critical patent/JP2010271795A/ja
Application granted granted Critical
Publication of JP5371541B2 publication Critical patent/JP5371541B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/774Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
    • G06V10/7747Organisation of the process, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • G06F18/2148Generating training patterns; Bootstrap methods, e.g. bagging or boosting characterised by the process organisation or structure, e.g. boosting cascade
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/94Hardware or software architectures specially adapted for image or video understanding
    • G06V10/955Hardware or software architectures specially adapted for image or video understanding using specific electronic processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/161Detection; Localisation; Normalisation
    • G06V40/165Detection; Localisation; Normalisation using facial parts and geometric relationships

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Oral & Maxillofacial Surgery (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Geometry (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Data Mining & Analysis (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • General Engineering & Computer Science (AREA)
  • Image Processing (AREA)
  • Image Analysis (AREA)

Description

本発明は、入力データに対して繰り返しデータ処理を行うデータ処理装置及びその処理方法に関するものである。
従来、デジタルカメラやプリンタでは、入力画像中の人物や顔といった特定の被写体を検出し、検出された被写体に適した処理を行う技術が提案されている。この特定の被写体を検出する一例として、顔に対して肌色補正処理を行うための人間の顔を検出する顔検出処理がある。
この顔検出処理には様々な手法が提案されており、非特許文献1(以下、Viola&Jones手法)や人間の顔の対称的特徴、テンプレートマッチング、ニューラルネットワークなどを利用するものがある。
ここで、顔検出処理としてViola&Jones手法を例に挙げて説明する。Viola&Jones手法では、Adaboostによる学習結果に基づいて識別処理が実行される。この識別処理は、図1に示すように、ある識別処理が識別を行った結果、次の識別処理を行う場合はTrueを出力し、次の識別処理を行わない場合はFalseを出力する。そして、Falseであった場合は識別処理を終了するというカスケード処理になっている。
顔認識の場合は、多くの顔データを入力し、顔の認識率や誤認識率がある一定の水準になるように学習させた結果、識別処理を行う段数と、辞書データが出力される。この識別処理とは、パターン照合処理のことである。よって、顔検出処理とは、この辞書データを用いたパターン照合処理群のことである。そして、辞書データとは、パターン照合処理に必要な特徴量やTrue又はFalse判定の基準に用いる閾値などのパラメータである。
図2は、顔認識における学習結果の一例を示す図である。図2において、200は入力データである。210は辞書データの一部である特徴量であり、両目部分の小矩形と両目下部分(頬の部分)とを比べると、両目部分が両目下部分より黒っぽいという特徴を示す特徴量である。211も特徴量であり、両目部分において目の部分が黒っぽく、目と目の間である眉間部が目の部分に比べて白っぽいという特徴を示す特徴量である。
220、221は入力データ200に対して特徴量210、特徴量211を実際に照合させてパターン照合処理を行っていく状態を示している。
また、Viola&Jones手法では、図3に示すように、ある区切り(ステージ)で識別処理が区切られ、ステージ毎に閾値を用いてTrue、Falseの識別を行い、顔と非顔を識別していく。また、前段のステージでは、false negative(顔を非顔と判定=見落とし)を最小化し、false positive(非顔を顔と判定=誤検出)が比較的高めの確率になるような単純な特徴のみを用いている。
このように、単純な特徴のみを用いると、少ない演算回数で識別処理が可能となるため、プロセッサを用いて処理を行った場合にも高速処理が可能となる。更に、なるべく多くの矩形領域を、より前段で効率良くFalse(非顔)と識別していくことができ、画像全体に対する顔検出処理を短時間に完了することが可能になる。
図4は、Viola&Jones手法をハードウェアとして実装する場合の概念的な構成を示す図である。図4において、識別器401には、ステージ0用辞書データである特徴量210が保存されている。また、上述したステージ0の結果がTrueかFalseであるかを判定するために用いる閾値0も、識別器401用に保存されている。このステージ0に必要な特徴量210と閾値0のことを、以下辞書データ0と呼ぶ。また、ステージ0の処理のことを、ステージ0処理と呼ぶ。
上述したように、入力データ200が識別器401に入力され、辞書データ0を用いたステージ0処理が行われる。その結果(True又はFalse)がTrueであった場合、次の識別器402が識別器401と同様に、入力データ200とステージ1処理(特徴量211)とのパターン照合処理と、閾値1との判定)を行う。ステージ0、1の違いは、ステージ毎に異なる辞書データである。
図5は、図4に示す概念的なハードウェア構成をより具体的な回路で構成した例を示す図である。図5において、処理部501は演算部511とパラメータ保持部512で構成される。
パラメータ保持部512は、ステージ処理に必要な辞書データを保持する内部メモリである。例えば、図4に示すステージ0処理を行う識別器401の場合、演算部511は、パラメータ保持部512に保持された辞書データ0に含まれる特徴量210を用いて入力データ200をパターン照合する。ステージ0処理は、特徴量210のパターン照合範囲対象である矩形0_1に対する入力データと、矩形0_2に対する入力データとの総和を取り、矩形0_1と矩形0_2の輝度差を計算する。計算された輝度差が閾値0を超えている場合は、入力データ200が特徴量210の示す特徴に合致するとし、顔である(Result=True)という結果を出力する。
辞書データ0に含まれる特徴量210には、照合すべき画素位置が示されている。そのため、パターン照合処理を行う演算部501は指定された画素位置における矩形内の画素値の総和を演算し、更に各矩形における総和の差分を演算し、閾値210との比較演算を行い、ステージ0処理の結果を出している。
即ち、演算部511は、辞書データにより指定される画素位置や閾値に従ってステージ非依存の同様の演算を行うように実装することが可能である。パラメータ保持部512には、処理に必要なステージ分或いは全ステージ分の辞書データを保持し、処理ステージに応じて辞書データを切り替えることにより、全ステージの識別処理を実現可能である。
近年、Viola&Jones手法に代表される認識処理をデジタルカメラなどに搭載し、例えば顔を検出して合焦を行うといった機能の実現が求められており、認識処理をリアルタイムに(高速に)実装する要求が高まっている。
一方、デジタルカメラなどのデジタル家電製品は非常にコストセンシティブであるため、認識処理機能はできるだけ安価に実装したい、即ち回路規模を最小限に抑えたいという要求も高い。
そこで、図5に示す例は、演算部501を全ステージ処理で共有することにより、回路規模を抑制した実装例である。この場合、パラメータ保持部512に何ステージ分の辞書データを保持するかが、回路規模の支配的な要因となる。
また、何ステージ分の辞書データを保持するかにより処理速度も大幅に異なる。例えば、非常に高速な処理が必要な場合には、全ステージ分の辞書データを高速アクセス可能な内部メモリ(パラメータ保持部512)に保持しておき、ステージ毎の処理を辞書データの入れ換えを行うことなく実現する方法が一般的に用いられている。
この方法を、図6を用いて、詳細に説明する。図6は、ステージ毎の処理を切り替えてパターン照合処理を実現する方法を説明するための図である。
パターン照合処理を行う処理部601はステージ非依存の実装となっているため、図5と同様に、演算部511を1つだけ搭載している。また、ステージ依存である辞書データを保持するパラメータ保存部512〜514は全ステージ(Nステージ)分搭載する。
処理を開始する前に、パラメータ保持部512〜514へ、全ての辞書データをロードしておく。入力データ200が入力されると、パラメータ切り替え部521によって辞書データ0(ステージ0用辞書データ)が演算部511に設定され、ステージ0処理が開始される。その結果、Trueと判断された場合、入力データ200に対して、パラメータ切り替え部521は次の辞書データ1(ステージ1用辞書データ)へ切り替えることで、次段であるステージ1処理が可能となる。
このように、全ステージ用辞書データを保持することにより、ステージ毎に必要な辞書データを内部メモリと比べてアクセススピードの遅い外部メモリからロードしなくて済む。従って、ロードする際のオーバーヘッドが不要となり、高速処理が可能となる。
ここで、図6に示す構成における処理時間を、図7、図8を用いて説明する。図7、図8は、パターン照合処理の処理時間を説明するための図である。
まず、処理時間の説明に必要な用語を定義する。通過率とは、演算部511がステージ処理を行った結果、Trueとなる確率である。ステージ処理時間とは、各ステージ処理にかかる時間のことである。パラメータロード時間とは、外部メモリに保存されている辞書データをステージ切り替えの際にパラメータ保持部512〜514へロードするのに必要な時間である。
以下の説明では、パラメータロード時間がステージ処理時間の4倍であると仮定する。外部メモリは、通常DRAMなどで構成され、アクセス時間(パラメータロード時間)は数十ナノ秒から百数十ナノ秒のオーダーである。
一方、内部メモリのアクセス時間は数ナノ秒であり、Viola&Jones方式のパターン照合処理は上述の如く、非常に単純な演算であることから、この仮定は妥当である。
また、入力データに対してステージ0処理を行うことをI0(S0)とし、ステージ0処理に必要な辞書データ0のロードを行うことをJ(S0)とする。
図7に示す例は、全ステージ処理の通過率が1/4であった場合を、図8に示す例は、全ステージ処理の通過率が1/2であった場合を示している。そして、図6に示す構成では、全ステージ処理に必要な辞書データ(0〜N)が保持されているため、図7及び図8に示す例の何れにおいても、処理は全く停止することなく行われる。
しかし、図6に示す構成の場合、処理が高速である一方、全ステージ分の辞書データを保持するための巨大な内部メモリを装備する必要があるため、非常にコストが高くなる、という問題がある。
そこで、パラメータ保持部512〜514を巨大化させないために、図9に示すように、可変パラメータ保持部912を1つ搭載し、ステージ毎に必要な辞書データのみを外部メモリからロードする構成が一般的に用いられている。
処理部901は、ステージ非依存の演算部911とステージ処理に依存する辞書データを保持するため、データ書き換え可能な可変パラメータ保持部912で構成されている。また、処理部901は画像入力データ(Data_in)と画像入力データが有効であることを示す信号valid_inに基づき、順次ステージ処理を実行する。この画像入力データは、制御部902内のデータ制御部921を経由して入力される。
演算部911は、入力されたData_inと可変パラメータ保持部912にある辞書データを用いて、パターン照合処理を行った結果をResult(valid_out)として出力する。この結果は、制御部902内の検知部922で検知される。
そして、制御部902は、その結果(Result,valid_out)がTrueであった場合、現在の入力データに対して、次のステージ処理を行う必要があることから、次のステージ処理に必要な辞書データの取得を行う。反対に、結果がFalseであった場合、或いは、最終段のステージ処理が終わった場合、次の入力データに対する処理を初段のステージ0処理から行う必要があることから、辞書データ0ロード(取得)を行う。
このように、ステージ処理切り替え(辞書データ取得)が必要な場合は、データ制御部921がパラメータ制御部923を介してパラメータ取得部926で必要な辞書データの入力要求を行い、不図示の外部メモリから辞書データを取得する。取得された辞書データは、パラメータ転送部925によって可変パラメータ保持部912へ転送される。
可変パラメータ保持部912へのパラメータ転送が終了した後、パラメータ切り替え制御部924が演算部911にパラメータ切り替え完了を通知することで、演算部911は次のステージ処理が可能となる。
このように、制御部902が、演算部911からの結果の検知を行い、必要に応じて、次に必要な辞書データを取得し、可変パラメータ保持部912へ転送する。そして、転送終了後、演算部911に指示することで、入力された(矩形)の入力データに対して順次ステージ処理が可能となる。
ここで、上述した図7及び図8を用いて図9に示す構成の処理時間について説明する。尚、図7に示す「従来例(図9)」では、処理の開始前に、可変パラメータ保持部912に辞書データ0が保存されているという前提で説明する。
入力画像が入力されると、『I0(S0)』の処理を行う。処理結果がFalseであったため、次の入力データに対する処理を行う。この時、可変パラメータ保持部912には、次に必要なステージ0用の辞書データ0が既に保存されているため、そのまま『I1(S0)』、『I2(S0)』と処理することができる。そして、I3(S0)を行った結果、Trueとなり、ステージ1用の辞書データ1のロード『J(S1)』が終わるのを待ってI3(S1)を行う。I3(S1)の結果、Falseとなり、次に必要なJ(S0)を行い、I4(S0)を行う。
このように、従来例では、可変パラメータ保持部912が1つであるために、ステージ処理切り替えの度に、辞書データをロードする必要がある。そのため、辞書データロードの間、ステージ処理は停止する。
つまり、図7に示す従来例(図6)の全ステージ処理用の辞書データ0〜Nを保持している場合に比べ、ステージ処理が停止する時間(即ち、辞書データロード時間)分、遅延することになる。ここでステージ処理時間が1サイクルとした場合、図7に示す例では、I7(S1)の処理が終わるまでに、処理時間10サイクルに加え、辞書データロードに要する12サイクル(=3回×4サイクル)分遅くなっていることがわかる。
また、図8に示す例では、図7に示す例と同様に、通過率には関係なく、ステージ切り替えの度に、辞書データをロードして処理を行っていく。ここでは、I4(S0)の処理が終わるまでに、従来例(図6)に比べ、20サイクル(=5回×4)サイクル分、遅延することになる。
上述したように、全ステージ分の辞書データを内部メモリに保持する構成の場合、処理は最速であるが、回路規模が最大となる。一方、1ステージ分の辞書データを内部メモリに保持し、ステージ処理毎に必要な辞書データを外部メモリからロードする構成の場合、回路規模は最小であるが処理速度の低下が著しい。
このような課題に対して、内部メモリの回路規模を抑制しつつ処理を高速化するための従来技術として、キャッシュ手法やプリフェッチ手法(次に必要となるパラメータを事前に準備する方法)が広く用いられている。
ここで、キャッシュ手法とプリフェッチ手法を詳細に説明する。尚、キャッシュ手法とプリフェッチ手法を実現するには、図10に示すように、図9に示す構成に、複数の可変パラメータ保持部を切り替えるパラメータ切り替え部が加えられる。
図10は、2つの可変パラメータ保持部を切り替えるパラメータ切り替え部を備えた例を示す図である。図10に示す1001、1002は図9に示す901、902に、また1011、1012、1021〜1026は911、912、921〜926にそれぞれ相当する。そして、図10に示す例では、可変パラメータ保持部1013及びパラメータ切り替え部1014が更に備えられている。
再び、図7及び図8を用いて、キャッシュ手法とプリフェッチ手法を用いた場合の処理時間を説明する。
まず、図10に示す構成において、キャッシュ手法を用いた場合の処理時間を説明する(従来例(図10:キャッシュ))。図7に示す例において、ステージ0、1しか処理が進まない間はキャッシュ手法の場合、全くロスがない。つまり、遅延サイクル=0である。しかし、図7に示すように、I15(S1)の結果がTrueとなる場合、次のI15(S2)を行うには、J(S2)が必要となる。このJ(S2)は、J(S0)が保存されている場所にロードするため、J(S0)を削除してしまうことになる。I15(S2)の結果がFalseとなることで、次のI16(S0)を行うために、先ほど削除してしまったJ(S0)を再ロードする必要が生じる。
ここで、キャッシュに残っている辞書データが辞書データ0、2となることで、ステージ0処理が続く間は、遅延なく処理が進むが、I19(S0)の結果がTrueとなり、J(S1)のロードが必要となる。その結果、I16(S0)が終了するまでに、8サイクルの遅延が生じ、I19(S1)が終了するまでに、12サイクルの遅延が生じる。
次に、図8に示す例では、I3(S1)の結果がTrueとなり、J(S2)をロードするために、最古のデータであるJ(S0)が消去されてしまう。更に、I3(S2)の結果がFalseとなることで、再度、J(S0)データ入力が必要となってしまう。
よって、I4(S0)が終了するまでに、8サイクル遅延することになる。
次に、図10に示す構成において、プリフェッチ手法を用いた場合の処理時間を説明する(従来例(図10:プリフェッチ))。但し、現在処理しているステージA処理の次に処理されるものがステージA+1処理であると想定するプリフェッチ手法を例に挙げて説明する。
上述のキャッシュ方式と同様に、図10において可変パラメータ保持部1012、1013を2つ搭載し、辞書データ0、1が予め保持されているとする。この場合において、I0(S0)の結果がTrueとなり、I1(S1)の処理が開始されると同時に、次に必要と想定されるJ(S2)をロードするため、J(S0)は消去(上書き)されてしまう。I0(S1)の結果がTrueとなった場合は、プリフェッチされたJ(S2)を用いて瞬時に処理が行える。一方、I0(S1)の結果がFalseとなった場合、J(S0)のロードが再度必要になるなど、次に必要となるパラメータを想定した結果が間違うことにより、パラメータロードミスのペナルティが発生する。
次に、図7に示す(従来例:プリフェッチ)を用いて説明する。図7に示す例において、I3(S1)を開始した時点で、プリフェッチとしてJ(S2)のロードを開始する。その際、最古データであるJ(S0)を消去してしまう。
しかし、I3(S1)の結果がFalseであることで、次の入力データに対して、初段のパターン照合処理に必要なJ(S0)をロードする必要がある。そこで、この時点での最古データであるJ(S1)を削除し、J(S0)を保存することになる。
次に、J(S0)が保持できた時点で、もう一方の可変保持部には、J(S2)が保存されていることになる。そこで、I4(S0)の処理を開始すると同時に、次ぎの処理に必要と予測されるJ(S1)のロードを開始する。この例では、I7(S1)が終了するまでに、従来例(図6)に比べ、7サイクル分、遅延することになる。
次に、図8に示す例では、I4(S0)が終了するまでに、従来例(図6)に比べ、19サイクル分、遅延することになる。
図7及び図8に示す例の何れの場合にも、認識処理において、有効なプリフェッチ動作を行えるのは、処理がTrueとなる間のみであることがわかる。更に、I1(S1)の結果がFalseになった場合に起きているように、I1(S1)の結果がFalseになった時点で、現在ロードしているステージ2用の辞書データJ(S2)は必要ない。更にJ(S2)をロードしたために、J(S0)を消去してしまうことから、再度J(S0)をロードする時間がかかることになる。
つまり、プリフェッチ方式において、ステージ処理結果がFalseになる回数が多いほど、無駄な辞書データロード回数が増えることになる。
P. Viola and M. Jones, "Robust Real-time Object Detection", SECOND INTERNATIONAL WORKSHOP ON STATISTICAL AND COMPUTATIONAL THEORIES OF VISION, July 13 2001.
内部メモリの回路規模を抑制しつつ処理を高速化するための従来技術であるキャッシュ手法及びプリフェッチ手法においては、以下のような問題があった。
まず、キャッシュ手法では、最古の辞書データから消すことで、現入力データの処理が可変パラメータ保存部の数より多いステージ処理へ進んでからFalseになった場合、次の入力データ処理で、必ず全辞書データの再ロードが必要となる。即ち、キャッシュ効果が全くでないという問題があった。
また、プリフェッチ手法では、次に必要となる辞書データを予測できないため、例えばステージ1処理中に辞書データ2のロードを行う。しかし、ステージ1処理結果がFalseになった場合、辞書データ2のロードが無駄になるだけでなく、次に必要となる辞書データ0が削除されてしまい、再度辞書データ0をロードする時間が必要になるという問題があった。
本発明は、データ処理装置における内部メモリの回路規模を抑制しつつ、処理の高速化を図ることを目的とする。
本発明は、入力データに対して繰り返しデータ処理を行うデータ処理装置であって、
前記入力データに対してパラメータを参照して繰り返しデータ処理を行う処理手段と、
前記処理手段により行われるデータ処理で参照される固定のパラメータを保持する固定パラメータ保持手段と、
前記処理手段により行われるデータ処理で参照される可変のパラメータを保持する可変パラメータ保持手段と、
前記固定パラメータ保持手段前記可変パラメータ保持手段の何れから前記処理手段がパラメータを参照するかを選択する選択手段と、
前記処理手段によって繰り返しデータ処理が行われる際に、前記データ処理による処理の結果に応じて、前記可変パラメータ保持手段にパラメータを保持させるように制御する制御手段と、
を有し、
前記選択手段は、
前記処理手段が前記入力データに対して最初のデータ処理を行う場合、若しくは前記処理手段が前回行ったデータ処理の結果がFALSEであった場合、前記処理手段による次のデータ処理におけるパラメータの参照先として前記固定パラメータ保持手段を選択し、
前記処理手段が前回行ったデータ処理の結果がTRUEであった場合、前記処理手段による次のデータ処理におけるパラメータの参照先として前記可変パラメータ保持手段を選択し、
前記制御手段は、
前記処理手段が前記可変パラメータ保持手段からパラメータを参照して行ったデータ処理の結果がTRUEであった場合に、該パラメータとは異なるパラメータを前記可変パラメータ保持手段に保持させるように制御する
ことを特徴とする。
本発明によれば、固定パラメータ保持部と可変パラメータ保持部とを有し、使用頻度の高いパラメータを固定に保持することで、パラメータ切り替えに要するパラメータロード時間を短縮することができる。従って、データ処理装置における内部メモリの回路規模を抑制しつつ、処理を高速に行うことが可能となる。
顔検出処理における認識処理を説明するための図である。 顔認識における学習結果の一例を示す図である。 ステージ毎に閾値を用いて識別を行う識別処理を説明するための図である。 Viola&Jones手法をハードウェアとして実装する場合の概念的な構成を示す図である。 図4に示す概念的なハードウェア構成をより具体的な回路で構成した例を示す図である。 従来例における処理部の構成を示す図である。 パターン照合処理の処理時間を説明するための図である。 パターン照合処理の処理時間を説明するための図である。 可変パラメータ保持部を備えた従来の処理部の構成を示す図である。 2つの可変パラメータ保持部を切り替えるパラメータ切り替え部を備えた例を示す図である。 本実施形態におけるデータ処理装置の構成の一例を示すブロック図である。 本実施形態におけるデータ処理装置の処理時間を説明するための図である。 図12に示す状態から更に処理が進んだときの状態を示す図である。
以下、図面を参照しながら発明を実施するための最良の形態について詳細に説明する。
まず、入力データに対して繰り返しデータ処理を行い、各データ処理の結果に応じて、次のデータ処理を行うか否かを決定し、データ処理(所謂、カスケード処理)を実行するデータ処理装置の構成を説明する。
図11は、本実施形態におけるデータ処理装置の構成の一例を示すブロック図である。図11に示すように、図10に示す従来の構成に対して固定パラメータ保持部1113を備え、演算部1111の結果に応じて制御部1102がパラメータ切り替えやパラメータ(入力)要求を行い、識別処理を行うものである。
制御部1102は、演算部1111(識別器)が出力する識別結果信号を入力することにより、次に必要な辞書データを検知する。検知の結果、固定パラメータ保持部1113に保存してある辞書データの参照が必要な場合は、パラメータ切り替え部1114を用いて固定パラメータよる演算を行う。
そして、固定パラメータ保持部1113及び可変パラメータ保持部1112の何れにも保存されていない辞書データが必要な場合は、パラメータ(入力)要求により辞書データを可変パラメータ保持部1112に設定する。
次に、本実施形態における制御部1102について詳細に説明する。前述したように、処理部1101は転送されてきた矩形画像データに対し、順次ステージ処理を実行する。この矩形画像データは、制御部1102内のデータ制御部1121を経由して演算部1111に入力される。そして、演算部1111からのステージ処理結果をデータ制御部1121内の検知部1122で検知する。
データ制御部1121は、検知部1122で検知したステージ処理の結果をパラメータ制御部1123のパラメータ切り替え制御部1124に通知する。パラメータ切り替え制御部1124では、辞書データ取得が必要なことが判明した場合、パラメータ制御部1123を経由し、パラメータ取得部1126に必要な辞書データの入力を要求する。
ここで、パラメータ取得部1126が辞書データを取得し、パラメータ転送部1125を用いて、処理中であれば可変パラメータ保持部1112へ転送し、処理開始前であれば固定パラメータ保持部1113へ転送する。そして、パラメータ制御部1123は、この転送が終了すると、パラメータ切り替え制御部1124にパラメータ制御信号を出力するように指示する。これにより、固定パラメータ保持部1113又は可変パラメータ保持部1112のパラメータを演算部1111に設定(又は参照)できるように、パラメータ切り替え部1114が切り替えを行う。
このように、制御部1102が演算部1111からステージ処理の結果を検知し、必要に応じて、次に必要な辞書データを取得し、可変パラメータ保持部1112へ転送する。この転送終了後、パラメータ切り替え部1114へ指示することで、転送されてきた矩形画像データへの、順次ステージ処理が可能となる。
次に、図11に示す構成の処理時間を、図12及び図13を用いて説明する。この例でも、前述した図7及び図8と同じ条件で説明する。
即ち、パラメータロード時間がステージ処理時間の4倍であると仮定する。外部メモリは、通常DRAMなどで構成され、アクセス時間(パラメータロード時間)は数十ナノ秒から百数十ナノ秒のオーダーである。一方、内部メモリのアクセス時間は数ナノ秒であり、Viola&Jones方式のパターン照合処理は上述の如く、非常に単純な演算であることからこの仮定は妥当である。
また、入力データに対してステージ0処理を行うことをI0(S0)とし、ステージ0処理に必要な辞書データ0のロードを行うことをJ(S0)とする。
図12は、本実施形態におけるデータ処理装置の処理時間を説明するための図である。図12に示す(A)の例は、全ステージ処理の通過率が1/4であった場合を、図12に示す(B)の例は全ステージ処理の通過率が1/2であった場合を示している。
固定パラメータ保持部1113にステージ0処理用の辞書データ0を、可変パラメータ保持部1112に辞書データ1を保存しているため、ステージ0、1処理を行っている間は処理を続けることが可能である。つまり、図12に示す(A)のI7(S1)まで処理が停止する(無駄な)時間はなく、図7に示す従来例(図9、図10に示すプリフェッチ手法)に比べ、処理時間が速くなっている。
次に、図13を用いて、更に処理が進んだときの状態を説明する。I15(S1)までは、ステージ0、1処理が続くことで、遅延なく進むが、I15(S1)の結果がTrueとなることで、可変パラメータ保持部1112へJ(S2)をロードする必要がある。このJ(S2)をロードし、I15(S2)を行った結果がFalseとなり、次のI16(S0)を行う。
ここで、従来のキャッシュ方式では、J(S2)を行った際にJ(S0)が消去されてしまっているが、本実施形態ではJ(S1)を削除し、J(S0)は固定パラメータ保存部1113に保存しており、I16(S0)は即座に処理が可能となる。そこで、I16(S0)が終了するまでの従来例(図6)に対する遅延は、4サイクルとなる。
I15(S1)まで遅延がなかった従来例(図10)のキャッシュ手法では、前述したように、I15(S1)の結果がTrueとなるため、最古データである辞書データ0を削除し、J(S2)をロードしている。そのため、I16(S0)が終了するまでに、従来例(図6)に比べ、8サイクル遅延してしまう。
つまり、本実施形態の方が、早く処理ができていることがわかる。更に、本実施形態では、固定パラメータ保持部1113に保存されている辞書データ0によるステージ0処理を行っている間、可変パラメータ保持部1112に入っているJ(S2)より先に、J(S1)が必要となることがわかっている。そのため、I16(S0)を処理している間に、J(S1)を行うことが可能となる。そこで、I19(S1)処理の際には、この例では、遅延なく処理でき、I19(S1)が終了するまでの遅延時間は4サイクルとなり、従来例(図10)のキャッシュ手法が12サイクル遅延するのに比べ、早いことがわかる。
次に、図12に示す(B)の例を用いて、可変パラメータロードを説明する。この例では、図12に示す(A)の例と同様に、ステージ0、1処理の間は、前述したように処理を続けることができる。しかし、I3(S1)の結果がTrueとなるため、可変パラメータ保持部1112にJ(S2)をロードする必要がある。制御部1102は演算部1111からの演算結果を受けた後、J(S2)入力の要求を出し、その要求に対するパラメータ入力が制御部1102を経由し、可変パラメータ保持部1112に保持される。
制御部1102は、パラメータ切り替え部1114へ可変パラメータ保持部1112を選択するよう指示する。このパラメータ切り替え処理の後、演算部1111はI3(S2)を開始する。
次に、I3(S2)の結果がFalseとなるが、固定パラメータ保持部1113に、常に辞書データ0が保持されていることで、すぐI4(S0)の処理を開始できる。つまり、後段パターン照合処理から初段であるステージ0処理へ切り替える際に、固定パラメータ保持部1113に、常に保存されていることから、辞書データロードにかかる時間を削減できる。
また、ステージ0処理を処理中のため、次に必要となる辞書データがJ(S1)であることが決まっており、可変パラメータ保持部1112にJ(S1)をロード可能となる。つまり、このプリフェッチ動作により、J(S1)のパラメータロード時間を従来例(図9、図10のキャッシュ方式)に比べ、短縮することが可能となる。
このように、図12に示す何れの場合にも、従来例より本実施形態の方が高速に処理を行うことができる。
尚、固定パラメータ保持部1113と可変パラメータ保持部1112を明示的に分けて説明したが、同じパラメータ保持部のエリアを区別することで実施してもかまわない。
また、固定パラメータ保持部1113へのデータについては、実装する際に、識別対象が決まっている場合、パラメータをROMなどに保持してもかまわない。
一方、実装する際に、識別対象が複数ある場合やモードなどにより、変更する場合は、処理スタート前に固定パラメータ保持部1113に保持することで、複数の対象やモードへの対応が可能となる。
尚、本発明は複数の機器(例えば、ホストコンピュータ、インターフェース機器、リーダ、プリンタなど)から構成されるシステムに適用しても、1つの機器からなる装置(例えば、複写機、ファクシミリ装置など)に適用しても良い。
また、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(CPU若しくはMPU)が記録媒体に格納されたプログラムコードを読出し実行する。これによっても、本発明の目的が達成されることは言うまでもない。
また、コンピュータが読み取り可能なプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)などが実際の処理の一部又は全部を行う場合も含まれる。

Claims (7)

  1. 入力データに対して繰り返しデータ処理を行うデータ処理装置であって、
    前記入力データに対してパラメータを参照して繰り返しデータ処理を行う処理手段と、
    前記処理手段により行われるデータ処理で参照される固定のパラメータを保持する固定パラメータ保持手段と、
    前記処理手段により行われるデータ処理で参照される可変のパラメータを保持する可変パラメータ保持手段と、
    前記固定パラメータ保持手段前記可変パラメータ保持手段の何れから前記処理手段がパラメータを参照するかを選択する選択手段と、
    前記処理手段によって繰り返しデータ処理が行われる際に、前記データ処理による処理の結果に応じて、前記可変パラメータ保持手段にパラメータを保持させるように制御する制御手段と、
    を有し、
    前記選択手段は、
    前記処理手段が前記入力データに対して最初のデータ処理を行う場合、若しくは前記処理手段が前回行ったデータ処理の結果がFALSEであった場合、前記処理手段による次のデータ処理におけるパラメータの参照先として前記固定パラメータ保持手段を選択し、
    前記処理手段が前回行ったデータ処理の結果がTRUEであった場合、前記処理手段による次のデータ処理におけるパラメータの参照先として前記可変パラメータ保持手段を選択し、
    前記制御手段は、
    前記処理手段が前記可変パラメータ保持手段からパラメータを参照して行ったデータ処理の結果がTRUEであった場合に、該パラメータとは異なるパラメータを前記可変パラメータ保持手段に保持させるように制御する
    ことを特徴とするデータ処理装置。
  2. 前記制御手段は、前記処理手段が前記入力データに対してデータ処理を開始する前記固定パラメータ保持手段にパラメータを保持させ、前記繰り返しデータ処理を実行中は前記固定パラメータ保持手段に保持されたパラメータを変更しないように制御することを特徴とする請求項1に記載のデータ処理装置。
  3. 前記制御手段は、
    前記処理手段が前記固定パラメータ保持手段からパラメータを参照してデータ処理を行っている最中で、且つ前記可変パラメータ保持手段に保持されているパラメータが該可変パラメータ保持手段に当初保持されていたパラメータとは異なる場合には、前記可変パラメータ保持手段に該当初保持されていたパラメータを保持させるように制御する
    ことを特徴とする請求項1又は2に記載のデータ処理装置。
  4. 前記データ処理はパターン照合処理であり、前記パラメータはパターン照合の際に参照する辞書データであることを特徴とする請求項1乃至3の何れか1項に記載のデータ処理装置。
  5. 入力データに対して繰り返しデータ処理を行うデータ処理装置の処理方法であって、
    処理手段が、前記入力データに対してパラメータを参照して繰り返しデータ処理を行う処理工程と、
    前記処理工程において行われるデータ処理で参照される固定のパラメータを固定パラメータ保持手段に保持する工程と、
    前記処理工程において行われるデータ処理で参照される可変のパラメータを可変パラメータ保持手段に保持する工程と、
    選択手段が、前記固定パラメータ保持手段前記可変パラメータ保持手段の何れから前記処理手段がパラメータを参照するかを選択する選択工程と、
    制御手段が、前記処理工程において繰り返しデータ処理が行われる際に、前記データ処理による処理の結果に応じて、前記可変パラメータ保持手段にパラメータを保持させるように制御する制御工程と、
    を有し、
    前記選択工程では、
    前記処理手段が前記入力データに対して最初のデータ処理を行う場合、若しくは前記処理手段が行ったデータ処理の結果がFALSEであった場合、前記処理手段による次のデータ処理におけるパラメータの参照先として前記固定パラメータ保持手段を選択し、
    前記処理手段が行ったデータ処理の結果がTRUEであった場合、前記処理手段による次のデータ処理におけるパラメータの参照先として前記可変パラメータ保持手段を選択し、
    前記制御工程では、
    前記処理手段が前記可変パラメータ保持手段からパラメータを参照して行ったデータ処理の結果がTRUEであった場合、該パラメータとは異なるパラメータを前記可変パラメータ保持手段に保持させるように制御する
    ことを特徴とするデータ処理装置の処理方法。
  6. コンピュータを請求項1乃至4の何れか1項に記載のデータ処理装置における各手段として機能させるためのプログラム。
  7. 請求項6に記載のプログラムを記録したコンピュータにより読み取り可能な記録媒体。
JP2009121349A 2009-05-19 2009-05-19 データ処理装置及びその処理方法 Expired - Fee Related JP5371541B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009121349A JP5371541B2 (ja) 2009-05-19 2009-05-19 データ処理装置及びその処理方法
US12/778,964 US8831363B2 (en) 2009-05-19 2010-05-12 Pattern recognition apparatus and processing method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009121349A JP5371541B2 (ja) 2009-05-19 2009-05-19 データ処理装置及びその処理方法

Publications (2)

Publication Number Publication Date
JP2010271795A JP2010271795A (ja) 2010-12-02
JP5371541B2 true JP5371541B2 (ja) 2013-12-18

Family

ID=43124598

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009121349A Expired - Fee Related JP5371541B2 (ja) 2009-05-19 2009-05-19 データ処理装置及びその処理方法

Country Status (2)

Country Link
US (1) US8831363B2 (ja)
JP (1) JP5371541B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5778983B2 (ja) * 2011-05-17 2015-09-16 キヤノン株式会社 データ処理装置、データ処理装置の制御方法、およびプログラム
JP6161266B2 (ja) * 2012-11-27 2017-07-12 キヤノン株式会社 情報処理装置及びその制御方法及び電子デバイス及びプログラム及び記憶媒体
US9208404B2 (en) 2013-11-15 2015-12-08 Adobe Systems Incorporated Object detection with boosted exemplars
US9269017B2 (en) * 2013-11-15 2016-02-23 Adobe Systems Incorporated Cascaded object detection

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2886575B2 (ja) * 1989-10-30 1999-04-26 株式会社アルファ 指紋認識方法及びその装置
JP2866461B2 (ja) * 1990-09-14 1999-03-08 富士通株式会社 指紋照合装置
US5373400A (en) * 1993-12-01 1994-12-13 Analog Devices, Inc. Dynamic threshold updating circuit for a maximum likelihood detector using both positive and negative comparators
CA2167748A1 (en) * 1995-02-09 1996-08-10 Yoav Freund Apparatus and methods for machine learning hypotheses
JPH1198330A (ja) * 1997-09-22 1999-04-09 Toshiba Corp 画像読取装置と画像読取方法および画像形成装置と画像形成方法
JP3801501B2 (ja) * 2001-12-18 2006-07-26 三菱電機株式会社 符号化装置及び復号装置及び符号化・復号装置及び符号化方法及び復号方法及び符号化・復号方法及びプログラム
JP2005044330A (ja) * 2003-07-24 2005-02-17 Univ Of California San Diego 弱仮説生成装置及び方法、学習装置及び方法、検出装置及び方法、表情学習装置及び方法、表情認識装置及び方法、並びにロボット装置
JP4628882B2 (ja) * 2005-06-16 2011-02-09 富士フイルム株式会社 判別器の学習方法、顔判別方法および装置並びにプログラム
US20070112701A1 (en) * 2005-08-15 2007-05-17 Microsoft Corporation Optimization of cascaded classifiers
US7903870B1 (en) * 2006-02-24 2011-03-08 Texas Instruments Incorporated Digital camera and method
JP4556891B2 (ja) * 2006-03-17 2010-10-06 ソニー株式会社 情報処理装置および方法、記録媒体、並びにプログラム
US7890443B2 (en) * 2007-07-13 2011-02-15 Microsoft Corporation Learning classifiers using combined boosting and weight trimming
US8015132B2 (en) * 2008-05-16 2011-09-06 Samsung Electronics Co., Ltd. System and method for object detection and classification with multiple threshold adaptive boosting
US8331655B2 (en) * 2008-06-30 2012-12-11 Canon Kabushiki Kaisha Learning apparatus for pattern detector, learning method and computer-readable storage medium
US8275721B2 (en) * 2008-08-12 2012-09-25 International Business Machines Corporation Methods and systems for cost-sensitive boosting
JP4710979B2 (ja) * 2009-01-09 2011-06-29 ソニー株式会社 対象物検出装置、学習装置、対象物検出方法およびプログラム

Also Published As

Publication number Publication date
JP2010271795A (ja) 2010-12-02
US8831363B2 (en) 2014-09-09
US20100296740A1 (en) 2010-11-25

Similar Documents

Publication Publication Date Title
US11961286B2 (en) Performing object detection in an image
CN102096805B (zh) 注册用于脸部识别的多个脸部图像的装置和方法
JP5371541B2 (ja) データ処理装置及びその処理方法
US10579909B2 (en) Information processing apparatus, information processing method, and non-transitory computer readable storage medium
JP2010165046A (ja) 情報処理装置及び情報処理方法
JP5778983B2 (ja) データ処理装置、データ処理装置の制御方法、およびプログラム
US8611599B2 (en) Information processing apparatus, information processing method, and storage medium
US8700860B2 (en) Information processing apparatus, method and computer program
JP2018147240A (ja) 画像処理装置、画像処理方法、及び画像処理プログラム
JP6815743B2 (ja) 画像処理装置及びその方法、プログラム
KR102557572B1 (ko) 인공 신경망 장치 및 그 동작 방법
CN110502975B (zh) 一种行人重识别的批量处理系统
JP5371565B2 (ja) データ処理装置、データ処理方法及びプログラム
JP2011086263A (ja) データ処理装置及びその処理方法
JP6488962B2 (ja) キャッシュ制御装置、キャッシュ制御方法およびキャッシュ制御プログラム
JP2018201102A (ja) 撮像装置
KR102512435B1 (ko) 얼굴 식별 방법, 및 이를 이용하는 장치 및 프로그램
JP5353457B2 (ja) 撮像装置およびプログラム
US20220035855A1 (en) Markov decision process for efficient data transfer
JP3008890B2 (ja) 処理制御装置
JP5692987B2 (ja) 情報処理装置、情報処理方法、およびコンピュータプログラム
JP2014239273A (ja) 解析処理システム
JP4535663B2 (ja) ステートマシン制御方式およびステートマシン
CN117372525A (zh) 虚拟现实头戴设备的位姿初始化方法、装置、设备及介质
JP2013175074A (ja) 複数処理実行方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120521

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130315

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130322

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130521

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130819

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130917

R151 Written notification of patent or utility model registration

Ref document number: 5371541

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees