JP2012164201A - 積分値演算回路 - Google Patents

積分値演算回路 Download PDF

Info

Publication number
JP2012164201A
JP2012164201A JP2011025061A JP2011025061A JP2012164201A JP 2012164201 A JP2012164201 A JP 2012164201A JP 2011025061 A JP2011025061 A JP 2011025061A JP 2011025061 A JP2011025061 A JP 2011025061A JP 2012164201 A JP2012164201 A JP 2012164201A
Authority
JP
Japan
Prior art keywords
value
register
pixel
stored
integral
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2011025061A
Other languages
English (en)
Inventor
Naoki Sugiyama
尚樹 杉山
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.)
Denso Corp
Original Assignee
Denso Corp
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 Denso Corp filed Critical Denso Corp
Priority to JP2011025061A priority Critical patent/JP2012164201A/ja
Publication of JP2012164201A publication Critical patent/JP2012164201A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Image Analysis (AREA)

Abstract

【課題】インテグラルイメージを生成する際の遅延時間を縮小する。
【解決手段】直立型インテグラルイメージ生成回路41の演算器52は、輝度値の入力毎に、今回の入力輝度値R3と列和ラインバッファ50のうち今回の入力画素の列に対応するレジスタの記憶値R2とレジスタ51の記憶値R1とを加算して積分値を算出する。回転型インテグラルイメージ生成回路42の演算器65は、入力輝度値の入力毎に、レジスタ64の記憶値K1と積分値ラインバッファ60のうち入力画素より1画素分最大列側の列に対応するレジスタの記憶値K2と輝度値ラインバッファ62のうち入力画素の列に対応するレジスタの記憶値K4と今回の入力輝度値K5とを加算した値から、積分値ラインバッファ61のうち入力画素の列に対応するレジスタの記憶値K3を引くことで積分値(=K1+K2−K3+K4+K5)を求める。
【選択図】図2

Description

本発明は、積分値を算出する積分値演算回路に関するものである。
従来、画像検出手法では、ニューラルネットワーク等の学習的手法を利用した手法が知られている。しかし、このニューラルネットワークを用いた画像検出手法は、一般的に計算量が膨大で計算コストが大きいといった問題があった。このため、Viola&Jones法(以下、V&J法という)に代表されるHaar特徴量を用いた画像検出手法が注目されている(特許文献1および特許文献2参照)。
Haar特徴量は、画像のうち第1矩形領域内の画素毎の輝度値の加算値と第2矩形領域内の画素毎の輝度値の加算値との差分として算出される。このため、CPUが例えばビデオカメラから取得される撮影画像に応じてインテグラルイメージ(積分画像)を予め生成しておくことで、矩形領域の画素毎の輝度値の加算値、ひいてはHaar特徴量を短期間で計算することができる。
ここで、インテグラルイメージは、画像を構成するある1つの画素毎に求められた積分値を前記ある1つの画素に対応する位置に配列した積分値の集合体である。当該積分値は、画像のうち基準位置と前記ある1つの画素とをそれぞれ頂点する矩形領域内の画素毎の輝度値の加算値である。
このようなHaar特徴量を用いて画像検出を実施するV&J法では、ニューラルネットワークに比べ計算量を削減でき、計算コストを大幅に削減できるといった点で優れている。
また、特許文献3には、カメラから取り込んだ画像情報から人の顔画像等を抽出する画像検出手法について記載されている。
特開2009−283001号公報 特開2010−97289号公報 特開2004−185611号公報
上記特許文献1、2に記載では、CPUがカメラから取得される撮影画像に応じて画素毎に積分値を算出してインテグラルイメージを予め生成しておくことで、矩形領域の画素毎の輝度値の加算値、ひいてはHaar特徴量を短期間で計算することができる。しかし、CPUが撮影画像を構成する画素毎の輝度値を全てカメラから取り込んでから画像全体を走査して画素毎の積分値の算出を開始する場合には、画素毎の積分値の算出に際して長い遅延時間が生じる。このため、画像検出に長い時間を要することになる。
本発明は上記点に鑑みて、画素毎の積分値を算出する際に生じる遅延時間を短くするようにした積分値演算回路を提供することを目的とする。
上記目的を達成するため、請求項1に記載の発明では、行列状に配列されて画像を構成する複数の画素のうち他の装置(12、31)から入力される画素毎の輝度値に対応する入力画素と基準位置とをそれぞれ頂点とする矩形領域内の前記画素毎の輝度値の積分値を前記入力画素毎の輝度値に基づいて前記入力画素毎に算出する算出手段(52)と、
前記複数の画素のうち前記入力画素の列において最小行数の画素から前記入力画素よりも1画素分最小行数側の画素までの前記画素毎の輝度値の総和を前記画素の列毎に記憶する複数のレジスタをそれぞれ備える列和ラインバッファ(50)と、
前記算出手段により前回算出された積分値を記憶する積分値レジスタ(51)と、を備え、
前記算出手段は、今回の前記入力画素の輝度値(R3)と、前記列和ラインバッファのうち前記今回の入力画素の列に対応するレジスタの記憶値(R2)と、前記積分値レジスタの記憶値(R1)とをそれぞれ加算して前記今回の入力画素に対応する積分値を算出することを特徴とする。
請求項1に記載の発明によれば、他の装置から画素毎の輝度値が入力される毎に積分値を算出することができるので、画像の構成する画素毎の輝度値を全て他の装置から取り込んでから画素毎の積分値を算出する場合に比べて、輝度値の算出の際に生じる遅延時間が小さくなる。
請求項2に記載の発明では、前記列和ラインバッファ(50)のうち前記今回の入力画素の行に対応するレジスタにおいて当該レジスタに前回記憶された記憶値と今回の前記入力画素の輝度値(R3)とを加算した値を、前記前回記憶された記憶値に代えて記憶させることにより、前記列和ラインバッファ(50)の記憶値を更新する第1の更新手段(S230)と、
前記入力画素の列数が最大列数(M)よりも小さい場合には、前記積分値レジスタ(51)に対して、当該積分値レジスタに前回記憶した記憶値に代えて、前記今回の積分値を記憶させることにより、前記積分値レジスタの記憶値を更新する第2の更新手段(S250)と、
前記入力画素の列数が前記最大列数(M)と同一である場合には、前記積分値レジスタ(51)に対して、当該積分値レジスタに前回記憶された記憶値に代えて、零を記憶させることにより、前記積分値レジスタの記憶値を更新する第3の更新手段(S255)と、を備えることを特徴とする。
請求項3に記載の発明では、行列状に配列されて画像を構成する複数の画素のうち他の装置(12、31)から入力される画素毎の輝度値に対応する入力画素を1つの頂点とする所定領域内の前記画素毎の輝度値の積分値を前記他の装置から入力される輝度値に基づき前記入力画素毎に算出する算出手段(65)を備え、
前記所定領域は、前記画像のうち、前記入力画素で90°の角度を形成して前記頂点から最小列数側に伸びて行方向および列方向に対して45°の角度で交差する2つの線分(70、71)よりも最小行数側の領域である積分値演算回路であって、
今回の前記入力画素に対して2画素分最小行数側の画素を前記1つの頂点とする前記所定領域内の前記画素毎の輝度値の積分値(K3)を列毎に記憶する複数のレジスタを備える第1の積分値ラインバッファ(61)と、
前記今回の入力画素に対して1画素分最小行数側の画素を頂点とする前記所定領域内の前記画素毎の輝度値の積分値(K2)を列毎に記憶する複数のレジスタを備える第2の積分値ラインバッファ(60)と、
前記第2の積分値ラインバッファ(60)に前回記憶された積分値(K2)を記憶する第1のレジスタ(63)と、
前記第1のレジスタに前回記憶した積分値(K1)を記憶する第2のレジスタ(64)と、
前記今回の入力画素に対して1画素分最小行数側の画素の輝度値(K4)を列毎に記憶する複数のレジスタをそれぞれ備える輝度値ラインバッファ(62)と、を備え、
前記算出手段(65)は、
前記第2のレジスタ(64)の記憶値(K1)と、前記第2の積分値ラインバッファ(60)のうち前記今回の入力画素に対して1画素分最大列数側の列に対応するレジスタの記憶値(K2)と、前記輝度値ラインバッファ(62)のうち前記今回の入力画素の列に対応するレジスタの記憶値(K4)と、前記今回の入力画素の輝度値(K5)とをそれぞれ加算した加算値から、前記第1の積分値ラインバッファ(61)のうち前記今回の入力画素の列に対応するレジスタの記憶値(K3)を引くことにより、前記今回の入力画素を1つの頂点とする前記所定領域内の前記画素毎の輝度値の積分値を算出することを特徴とする。
請求項3に記載の発明によれば、請求項1に記載の発明と同様、他の装置から画素毎の輝度値が入力される毎に積分値を算出することができるので、画像の構成する画素毎の輝度値を全て他の装置から取り込んでから画素毎の積分値を算出する場合に比べて、輝度値の算出の際に生じる遅延時間が小さくなる。
請求項4に記載の発明では、前記第2の積分値ラインバッファ(60)のうち前記今回の入力画素の列に対応するレジスタの記憶値を、前記第1の積分値ラインバッファ(61)のうち前記今回の入力画素の列に対応するレジスタに対して、そのレジスタに前回記憶した記憶値に代えて、記憶させることにより、前記第1の積分値ラインバッファ(61)の記憶値を更新する第1の更新手段(S340)と、
前記算出手段(65)により算出された今回の積分値を、前記第2の積分値ラインバッファ(60)のうち前記今回の入力画素の列に対応するレジスタに対して、そのレジスタに前回記憶した記憶値に代えて、記憶させることにより、前記第2の積分値ラインバッファ(60)の記憶値を更新する第2の更新手段(S340)と、
前記第1のレジスタ(63)の記憶値を、前記第2のレジスタ(64)に対して、その前記第2のレジスタに前回記憶した記憶値に代えて、記憶させることにより、前記第2のレジスタ(64)の記憶値を更新する第3の更新手段(S340)と、
前記第2の積分値ラインバッファ(60)のうち前記今回の入力画素に対して1画素分最大列数側の列に対応するレジスタの記憶値を、前記第1のレジスタ(63)に対して、その前記第1のレジスタに前回記憶した記憶値に代えて、記憶させることにより、前記第1のレジスタ(63)の記憶値を更新する第4の更新手段(S340)と、
前記輝度値ラインバッファ(62)のうち前記今回の入力画素の列に対応するレジスタに対して、そのレジスタに前回記憶した記憶値に代えて、前記今回の入力画素の輝度値(K5)を記憶させることにより、前記輝度値ラインバッファ(62)の記憶値を更新する第5の更新手段(S340)と、を備えることを特徴とする。
なお、この欄および特許請求の範囲で記載した各手段の括弧内の符号は、後述する実施形態に記載の具体的手段との対応関係を示すものである。
本発明の一実施形態の車両用画像検出装置の構成を示すブロック図である。 図1のインテグラルイメージ生成部の構成の詳細を示す図である。 図2の直立型インテグラルイメージ生成回路の積分値の演算を説明するための模式図である。 図2の回転型インテグラルイメージ生成回路の積分値の演算を説明するための模式図である。 図1の車両用画像検出装置の処理の順序を示すフローチャートである。 図2の直立型インテグラルイメージ生成回路によるインテグラルイメージの生成処理を示すフローチャートである。 図2の回転型インテグラルイメージ生成回路によるインテグラルイメージの生成処理を示すフローチャートである。 図1の検出器による検出処理の概略を示す模式図である。 図1の検出器の顔の検出処理に用いられる辞書を示す図である。 図1の検出器の検出処理において積分値の算出を説明するための図である。 図1の検出器の検出処理において積分値の算出を説明するための図である。 上記実施形態においてインテグラルイメージ生成処理を実施する際に生じる遅延時間の縮小を説明するための図である。 インテグラルイメージ生成処理を実施する際に生じる遅延時間を説明するための図である。 本発明の他の実施形態において検出器の検出処理で用いる判定対象を示す図である。
以下、本発明の積分画像演算回路が適用された車両用画像検出装置の一実施形態について図1に基づいて説明する。図1は本実施形態の車両用画像検出装置10の構成を示すブロック図である。
車両用画像検出装置10は、例えばビデオカメラ30の撮影画像から歩行者の顔等の検出対象を検出するためのもので、図1に示すように、ビデオ入力部(図中Video Inと記す)11、前処理部12、インテグラルイメージ生成部13、検出器14、ビデオ出力部(図中Video Outと記す)15、CPU16、メモリコントローラ17、ダイレクトメモリアクセスコントローラ(図中DMACと記す)18、通信インターフェイス部(図中通信I/Fと記す)19、およびインターコネクト(図中Interconnectと記す)20から構成されている。
ビデオ入力部11は、ビデオカメラ30から送られる画像データが順次入力されるものである。本実施形態の画像データは、画像を構成する複数の画素のそれぞれに対応するもので、画素毎の輝度を示すデータである。画像は、複数の画素が行列状に配置してなるものである。ビデオカメラ30は、例えば車両前方の景色を順次撮影してこの撮影に応じた画像データを順次出力するものである。前処理部12は、ビデオ入力部11を介してビデオカメラ30から入力される画像データ、或いはインターコネクト20およびメモリコントローラ17を介して外部記憶媒体31から入力される画像データに対して前処理を施すものである。前処理とは、フィルタ処理、画像の拡大縮小、ピラミッド画像の生成などの処理のことである。
外部記憶媒体31は、ハードディスク、DVD-RAM、フラッシュメモリ等からなる記憶媒体であって、ビデオカメラ30により取得された画像データ、前処理後の画像データ、インテグラルイメージ(積分画像)などの各種データを記憶するものである。前処理後の画像データは、前処理部12により前処理が施された画像データである。
インテグラルイメージ生成部13は、後述するように、前処理部12から入力される前処理後の画像データ、或いはインターコネクト20を介して外部記憶媒体31から入力される前処理後の画像データに基づいて、インテグラルイメージ(すなわち、積分画像)を生成する。なお、インテグラルイメージ生成部13の詳細については後述する。
検出器14は、インテグラルイメージ生成部13により生成されたインテグラルイメージ(つまり、積分画像)に基づいて、ビデオカメラ30で撮影された画像が検出対象(例えば人の顔)を含む画像である否かを判定する。検出器14の判定の詳細については後述する。ビデオ出力部15は、検出器14の判定結果等をモニタ33に出力する。モニタ33は、検出器14の判定結果等を車室内に表示する表示ディスプレイである。
CPU16は、前処理部12、インテグラルイメージ生成部13、および検出器14などを制御する。メモリコントローラ17は、外部記憶媒体31から画像データを読み出したり、外部記憶媒体31に画像データに記憶させたりする。ダイレクトメモリアクセスコントローラ18は、メモリコントローラ17を制御する。
通信インターフェイス部19は、車載LAN32を介して他の電子制御装置(図示省略)との間で通信を行うもので、例えば、検出器14の判定結果等を他の電子制御装置に出力する。インターコネクト20は、前処理部12、インテグラルイメージ生成部13、検出器14、ビデオ出力部15、CPU16、メモリコントローラ17、ダイレクトメモリアクセスコントローラ18、および通信インターフェイス部19のうちいずれか2つの装置の間で画像データ、制御信号などを伝送するバスを構成する。
次に、本実施形態のインテグラルイメージ生成部13の構成の詳細について図2、図3、図4を参照して説明する。図2はインテグラルイメージ生成部13の構成の詳細を示す図である。図3、図4において画素の横方向の並びを列とし、画素の縦方向の並びを行とする。
インテグラルイメージ生成部13は、図2に示すように、入力セレクト部40、直立型インテグラルイメージ生成回路41、および回転型インテグラルイメージ生成回路42から構成されている。
入力セレクト部40は、インターコネクト20および前処理部12のうちいずれか一方とインテグラルイメージ生成回路41、42との間を接続する。すなわち、入力セレクト部40は、前処理部12からから入力される前処理後の画像データ、およびインターコネクト20を介して外部記憶媒体31から入力される前処理後の画像データのうちいずれか一方の前処理後の画像データを選択してこの選択された前処理後の画像データを画素毎の輝度値としてインテグラルイメージ生成回路41、42に与える。以下、インテグラルイメージ生成回路41、42に与えられる画素毎の輝度値を入力輝度値という。
直立型インテグラルイメージ生成回路41は、図2に示すように、列和ラインバッファ50、レジスタ51、および演算器52から構成されている。
列和ラインバッファ50は、画像を構成する(M+1)×(N+1)の画素(図3参照)の列に対応する(M+1)個のレジスタから構成される。m列n行の画素が入力画素の場合、列和ラインバッファ50のうちm列に対応するレジスタには、図3に示すように、m列において零行の画素から(n−1)行の画素までの画素毎の入力輝度値の総和R2を記憶値として記憶する。入力画素とは、後述するように、前処理部12(或いはインターコネクト20)から画像データとして入力される輝度値に対応する画素のことである。入力輝度値とは、入力画素の輝度値である。
レジスタ51は、積分値レジスタを構成するもので、後述するように、入力画素と同一行で入力画素よりも1画素分最小列(零列)側の画素に対応する積分値を記憶値R1として記憶する。つまり、レジスタ51は、演算器52により前回算出された積分値を記憶することになる。
演算器52は、算出手段を構成するもので、入力画素の行数をラインカウント値Lとして記憶するためのラインカウンタを有し、このラインカウント値L、列和ラインバッファ50およびレジスタ51にそれぞれ記憶される値、および入力輝度値に応じて、入力輝度値毎に積分値を求める。当該積分値とは、画像の基準位置(すなわち、図3中零列・零行の画素)と入力画素とをそれぞれ対角線上に位置する頂点とする矩形領域内の画素毎の輝度値を加算した値のことである。図3においてm列・n行の画素が入力画素となっている。積分値は、インテグラルイメージ(積分画像)を生成する際に用いられる。当該インテグラルイメージとは、入力画素毎に求められる積分値を入力画素の位置に対応する位置に配列した積分値の集合体である。
回転型インテグラルイメージ生成回路42は、後述するインテグラルイメージを生成するための回路である。ここで、インテグラルイメージ生成回路41、42で生成されるそれぞれのインテグラルイメージを便宜上区別するために、直立型インテグラルイメージ生成回路41で生成されるインテグラルイメージを直立型インテグラルイメージとし、回転型インテグラルイメージ生成回路42で生成されるインテグラルイメージを回転型インテグラルイメージとする。
回転型インテグラルイメージは、入力画素毎に求められる積分値を入力画素の位置に対応する位置に配列した積分値の集合体である。当該積分値は、画像のうち入力画素を頂点とする略三角形領域内の画素毎の輝度値を加算した値である。略三角形領域とは、画像のうち2つの線分に対して零行側(行の最小数側:図4中上側)の所定領域のことである。2つの線分は、頂点(すなわち、入力画素)で90°の角度を形成し、かつ頂点から零行側(図4中上側)に伸びて行方向および列方向に対して45°の角度で交差する線分のことである。
図4では、m列・n行の画素を入力画素としたときに、符号70、71が2つの線分を示している例を示している。なお、図では、複数の画素を便宜上拡大して示しているため、線分70、71が階段状の折れ線で示されているものの、実際の画素は非常に小さいものであるので、線分70、71をそれぞれ直線とみなしている。
ここで、画像のうちある1つの画素を頂点とした略三角形領域内の画素毎の輝度値の合計値を、以下、ある1つの画素に対応する積分値という。例えば、m列n行の画素を頂点とした略三角形領域内の画素毎の輝度値の合計値を、m列n行の画素に対応する積分値という。
以下、回転型インテグラルイメージ生成回路42の具体的な構成について説明する。回転型インテグラルイメージ生成回路42は、図2に示すように、積分値ラインバッファ60、61、輝度値ラインバッファ62、レジスタ63、64、および演算器65から構成されている。
積分値ラインバッファ60は、画像のうち入力画素に対して一画素分零行側(一画素分最小行側)の画素に対応する積分値を列毎に記憶する(M+1)個のレジスタからなる第2の積分値ラインバッファである。
積分値ラインバッファ61は、画像のうち入力画素に対して2行分零行側の(M+1)個の画素のそれぞれに対応する(M+1)個のレジスタからなる第1の積分値ラインバッファである。当該(M+1)個のレジスタは、それぞれ対応する画素に対応する積分値をそれぞれ記憶する。
輝度値ラインバッファ62は、画像のうち入力画素に対して1行分零行側(一画素分最小行側)の画素のそれぞれに対応する(M+1)個のレジスタから構成される。当該(M+1)個のレジスタは、それぞれ対応する画素に対応する入力輝度値をそれぞれ記憶する。
レジスタ63は、後述するように、積分値ラインバッファ60のうち入力画素に対して1画素分最大列側の画素に対応するレジスタに前回記憶された記憶値を記憶する第1のレジスタである。レジスタ64は、レジスタ63に前回記憶された記憶値を記憶する第2のレジスタである。
演算器65は、算出手段を構成するもので、後述するように入力画素の行数をラインカウント値Lとしてカウントするためのラインカウンタを有し、このラインカウント値L、積分値ラインバッファ60、61のそれぞれ記憶された積分値、輝度値ラインバッファ62に記憶された入力輝度値、レジスタ64に記憶された積分値、および入力輝度値に基づいて、入力輝度値毎に積分値を求める。
次に、本実施形態の車両用画像検出装置の作動について図5、図6、図7を参照して説明する。図5は車両用画像検出装置の処理の順序を示すフローチャートである。
まず、ステップS100において、ビデオカメラ30から画像データがビデオ入力部11を介して前処理部12にラスタスキャン順(図3中実線および鎖線の矢印参照)に順次、入力される。本実施形態の画像データは、画像を構成する複数の画素のそれぞれに対応するもので、画素毎の輝度を示すデータである。
次に、ステップS110において、前処理部12がビデオ入力部11を介してビデオカメラ30から入力される画像データに対して前処理を施すとともに、この前処理された画像データを順次インテグラルイメージ生成部13に出力する。
次に、ステップS120において、インテグラルイメージ生成部13のインテグラルイメージ生成回路41、42は、前処理部12から入力される前処理後の画像データ(すなわち、入力輝度値)に基づいて積分値を入力画素毎に算出し、この算出毎に入力画素毎の積分値をインターコネクト20およびメモリコントローラ17を通して外部記憶媒体31に出力する。このことにより、インテグラルイメージ生成回路41、42により算出される画像毎の積分値の集合体としてのインテグラルイメージ(つまり、積分画像)が外部記憶媒体31にそれぞれ記憶されることになる。なお、インテグラルイメージ生成回路41、42の処理の詳細について後述する。
次に、ステップS130において、検出器14が外部記憶媒体31に記憶されるインテグラルイメージに基づいて、Haar特徴量を用いた検出対象(例えば人の顔)の検出処理を実施する。つまり、検出器14は、外部記憶媒体31に記憶されるインテグラルイメージに基づいて、ビデオカメラ30で撮影された画像が検出対象を含む画像である否かを判定する。その後、ステップS140において、このような画像が検出対象を含む画像である否かの判定結果をビデオ出力部15を通してモニタ33に出力する。
例えば、検出器14がビデオカメラ30で撮影された画像が検出対象である人の顔を含む画像であると判定した際、CPU16は、外部記憶媒体31に対して予め前処理後の複数の画像データを記憶しておき、この前処理後の複数の画像データのうち人の顔の部分を他の部分と区別するための画像処理(例えば、顔の部分を枠で囲む画像処理)を実施する。これに伴い、メモリコントローラ17は、当該画像処理を実施後の画像データをインターコネクト20、およびビデオ出力部15を通してモニタ33に出力する。このことにより、当該画像処理が施されたビデオカメラ30の撮影画像がモニタ33に表示されることになる。
次に、本実施形態のインテグラルイメージ生成部13のインテグラルイメージ生成回路41、42の処理について説明する。以下、回転型インテグラルイメージ生成回路42に先だって、直立型インテグラルイメージ生成回路41によるインテグラルイメージの生成処理について図6を参照して説明する。図6は、直立型インテグラルイメージ生成回路41によるインテグラルイメージの生成処理を示すフローチャートである。直立型インテグラルイメージ生成回路41の演算部52は、図6のフローチャートにしたがって、インテグラルイメージの生成処理を実行する。
まず、ステップS200において、列和ラインバッファ50およびレジスタ51を初期化する。具体的には、列和ラインバッファ50を構成する複数のレジスタとレジスタ51とにそれぞれ初期値として零を記憶させる。
次に、ステップS210において、前処理後の画像データとしての入力輝度値が入力されたか否かを判定する。入力輝度値が入力されたときには、ステップS210においてYESと判定する。次のステップS220で、レジスタ51の記憶値R1(図3参照)と、列和ラインバッファ50のうち入力画素の列に対応するレジスタの記憶値R2と、前処理後の画像データとして入力される入力輝度値R3とをそれぞれ加算して加算値を積分値として求める。
例えば、零行・零列の入力画素の入力輝度値が前処理後の画像データとして入力されたときには、当該入力輝度値R3と、列和ラインバッファ50の零列に対応するレジスタの記憶値R2と、レジスタ51の記憶値R1とをそれぞれ加算して加算値(=R1+R2+R3)を積分値として求める。
ここで、列和ラインバッファ50のうち零列に対応するレジスタと、レジスタ51とにはそれぞれ零が記憶されている。このため、当該入力輝度値R3と同一値を積分値として算出するとともに、この算出された積分値をインターコネクト20を介してメモリコントローラ17に出力する。
次に、ステップS230において、列和ラインバッファ50のうち零列に対応するレジスタに対して、そのレジスタに記憶されている初期値に代えて、今回の入力輝度値を記憶させる。なお、ステップS230は、請求項2の第1の更正手段を構成する。
次に、ステップS240において、今回の入力輝度値に対応する入力画素の列数xがM(最大列数)に一致するか否かを判定する。
例えば、前処理部12から入力される入力輝度値の個数をカウントしてこのカウントされた画素カウント値KがMに一致するか否かで判定することにより、今回の入力画素の列数xがMに一致するか否かを判定することになる。画素カウント値KがMに一致した場合に画素カウント値Kを零にし、ラインカウント値Lをカウントアップする。ラインカウント値Lは、上述の如く、入力画素の行数を示す値である。ラインカウント値Lは、ステップS240で画素カウント値KがMに一致したと判定する毎に、演算部52によって、インクリメントされるものである。
また、画素カウント値KがM以下である場合でもビデオカメラ30からライン同期信号が入力された場合は画素カウント値Kを零にし、ラインカウント値Lをカウントアップする。ライン同期信号は、1フレーム分の画素毎の輝度値が伝送されてきた後で、次の1フレーム分の画素毎の輝度値が伝送される前に挿入される信号であって、フレームの終了(或いは開始)を示す信号である。
今回のステップS240では、上述の如く、零行・零列の入力画素の入力輝度値が入力されているので、カウント値KがMと一致しない。このため、今回の入力画素の列数xがM(最大列数)に不一致であるとしてステップS240でNOと判定する。
次のステップS250において、レジスタ51に対してそのレジスタ51に記憶されている初期値に代えて今回の算出した積分値を記憶させる。なお、ステップS250は、請求項2の第2の更正手段を構成する。
次のステップS260において、1画像分の積分値(つまり、1フレーム分の積分値)の算出が終了したか否かを判定する。例えば、上記ラインカウント値LがN+1に一致するか否かを判定することにより、1画像分の積分値の算出が終了したか否かを判定することになる。
今回のステップS260では、上記ラインカウント値LがN+1に不一致であるとしてNOと判定して、ステップS210に戻る。
次に、1列・零行の入力画素の入力輝度値が入力されると、ステップS210でYESと判定する。続いて、ステップS220において、今回の入力輝度値R3と、列和ラインバッファ50のうち1列に対応するレジスタの記憶値R2と、レジスタ51の記憶値R1とをそれぞれ加算して加算値を積分値として求める。
ここで、列和ラインバッファ50のうち1行に対応するレジスタには、記憶値としての零が記憶されている。レジスタ51には、前回算出された積分値が記憶されている。このため、今回の入力輝度値とレジスタ51に記憶されている前回の積分値とを加えて今回の積分値(=R1+R2+R3)を算出してこの今回の積分値を前回の積分値に代えてレジスタ51に記憶させる。これに加えて、今回の積分値をインターコネクト20を介してメモリコントローラ17に出力する。
次のステップS230において、列和ラインバッファ50のうち1行に対応するレジスタには、今回の入力輝度値を初期値に代えて記憶させる。
次にステップS240において、今回の入力輝度値に対応する入力画素の列数xがM(最大列数)に不一致であるとしてNOと判定する。これに伴い、ステップS250において、今回のステップS220で算出した積分値を前回のステップS220で算出した積分値に代えてレジスタ51に記憶させる。その後、ステップS260において、1画像分の積分値の算出が終了していないとしてNOと判定する。
このように、m(0≦m<M)列・零行の画素の入力輝度値が入力される毎に、今回の入力輝度値R3と、列和ラインバッファ50のうちm列に対応するレジスタの記憶値R2(=初期値)と、レジスタ51の記憶値R1(=前回の積分値)とを加算して今回の積分値(=R1+R2+R3)を求めるとともに、今回の積分値をインターコネクト20を介してメモリコントローラ17に出力する。
これに加えて、ステップS230において、列和ラインバッファ50のうち入力画素の列に対応するレジスタにおいてその前回の記憶値(=初期値)に代えて、
当該前回の記憶値に今回の入力輝度値を加算した値を記憶させる。これに加えて、ステップS250において、今回のステップ220で算出した積分値を前回のステップ220で算出した積分値に代えてレジスタ51に記憶させる。
その後、M列・零行の画素の入力輝度値が入力されると、ステップS210でYESと判定する。次のステップS220において、今回の入力輝度値R3と、列和ラインバッファ50のうちM列に対応するレジスタの記憶値R2(=初期値)と、レジスタ51の記憶値R1とを加算して今回の積分値(=R1+R2+R3)を求めるとともに、今回の積分値をインターコネクト20を介してメモリコントローラ17に出力する。
次に、ステップS230において、列和ラインバッファ50のうちM列に対応するレジスタにおいてその前回の記憶値(=初期値)に代えて、前記前回の記憶値に今回の入力輝度値を加算した値を記憶させる。
次に、ステップS240おいて、今回の入力輝度値に対応する入力画素の列数xがM(最大列数)に一致するとしてYESと判定する。これに伴い、ステップS255において、レジスタ51に前回記憶した積分値に代えて零をレジスタ51に記憶させる。なお、ステップS255は、請求項2の第3の更正手段を構成する。
その後、ステップS260において、1画像分の積分値の算出が終了していないとしてNOと判定する。次に、零列・1行の画素の入力輝度値が入力されると、ステップS210でYESと判定する。次のステップS220において、今回の入力輝度値R3と列和ラインバッファ50のうち零列に対応するレジスタの記憶値R2とレジスタ51の記憶値R1とを加算して今回の積分値(=R1+R2+R3)を求める。
ここで、列和ラインバッファ50のうち零列に対応するレジスタにおいて、このレジスタに前回記憶した記憶値に代えて、当該レジスタに前回記憶した記憶値と今回の入力輝度値とを足した値を記憶させる。このため、つまり、零列・零行の画素の入力輝度値と零列・1行の画素の入力輝度値との総和を列和ラインバッファ50のうち零列に対応するレジスタに記憶させることになる。
次のステップS240において、今回の入力輝度値に対応する入力画素の列数xがM(最大列数)に不一致であるとしてNOと判定する。これに伴い、ステップS250において、レジスタ51に前回記憶した積分値に代えて、今回のステップS220で算出した積分値をレジスタ51に記憶させる。その後、ステップS260において、1画像分の積分値の算出が終了していないとしてNOと判定する。
その後、画素毎の入力輝度値がラスタスキャン順に順次入力され、入力輝度値が入力される毎に、ステップS210でYESと判定する。m列・n行の画素の入力輝度値が入力された場合には、ステップS220において、今回の入力輝度値と、列和ラインバッファ50のうちm列に対応するレジスタの記憶値とレジスタ51の記憶値とを加えて積分値を求める。これに伴い、今回の積分値をインターコネクト20を介してメモリコントローラ17に出力する。
ここで、列和ラインバッファ50のうちm列に対応するレジスタには、m列において零列の画素から(n−1)行の画素までの画素毎の入力輝度値の総和が前回の記憶値として記憶されている。そこで、ステップS230において、列和ラインバッファ50のうちm列に対応するレジスタにおいて、このレジスタの前回の記憶値に今回の入力輝度値を足した値を記憶させる。このことにより、列和ラインバッファ50のうちm列に対応するレジスタの記憶値を更新することになる。
ここで、今回の入力輝度値に対応する入力画素の列数xがM(最大列数)に不一致である場合には、次のステップS240においてNOと判定する。これに伴い、ステップS250において、レジスタ51に前回記憶した積分値に代えて、今回のステップ220で算出した積分値をレジスタ51に記憶させる。
一方、今回の入力輝度値に対応する入力画素の列数xがM(最大列数)に一致する場合には、次のステップS240においてYESと判定する。これに伴い、ステップS255において、レジスタ51に前回記憶した積分値に代えて、零をレジスタ51に記憶させる。
このように入力画素の列数xがM(最大列数)に一致するか否かの判定によって、レジスタ51を更新する際にレジスタ51に記憶させる記憶値を変える。次いで、ステップS260において、1画像分の積分値の算出が終了していないとしてNOと判定する。
その後、M列・N行の画素の入力輝度値が入力された場合には、ステップS210でYESと判定する。次のステップS220において、今回の入力輝度値R3と、列和ラインバッファ50のうちM列に対応するレジスタの記憶値R2とレジスタ51の記憶値R1とを加えて今回の積分値(=R1+R2+R3)を求める。これに伴い、今回の積分値をインターコネクト20を介してメモリコントローラ17に出力する。
ここで、列和ラインバッファ50のうちM列に対応するレジスタには、M列において零行の画素から(N−1)行の画素までの画素毎の輝度値の総和が記憶されている。
つまり、列和ラインバッファ50のうち入力画素に対応するレジスタには、入力画素の行において「最小行の画素」から「入力画素より一列分最小行側の画素」までの画素毎の輝度値の総和が前回の記憶値として記憶されている。
そこで、ステップS230では、列和ラインバッファ50のうちM列に対応するレジスタにおいて、その前回の記憶値と今回の入力輝度値とを加算した加算値を記憶させる。
次のステップS240において、今回の入力輝度値に対応する入力画素の列数xがM(最大列数)に一致するとして、YESと判定する。これに伴い、ステップS255において、レジスタ51に前回記憶した積分値に代えて零をレジスタ51に記憶させる。次のステップS260において、ラインカウント値Lが(N+1)に一致して1画像分の積分値の算出が終了したとしてYESと判定する。
また、ラインカウント値Lが(N+1)に一致しない場合においてもフレーム同期信号が入力された場合には画素カウント値K、ラインカウント値Lおよび他のレジスタを初期化する。
このように入力輝度値の入力毎に積分値を算出してこの算出毎に積分値をインターコネクト20を介してメモリコントローラ17に出力する。このとき、メモリコントローラ17は、ダイレクトメモリアクセスコントローラ18により制御されて、入力画素毎の積分値を外部記憶媒体31のうち入力画素の位置に対応するメモリアドレスに配列する。入力画素の位置とは、画像のうち入力画素が占める位置(つまり、m列・n行)のことである。このことにより、外部記憶媒体31において、入力画素毎の積分値の集合体が直立型インテグラルイメージとして記憶されることになる。
次に、本実施形態の回転型インテグラルイメージ生成回路42の処理について図7を参照して説明する。図7は回転型インテグラルイメージ生成回路42による積分値算出処理を示すフローチャートである。回転型インテグラルイメージ生成回路42の演算部65は、図7に示すフローチャートにしたがって、積分値算出処理を実行する。
まず、ステップS300において、積分値ラインバッファ60、61、輝度値ラインバッファ62、およびレジスタ63、64を初期化する。具体的には、ラインバッファ60、61、62をそれぞれ構成する複数のレジスタおよびレジスタ63、64に初期値としての零をそれぞれ記憶させる。
次のステップS310において、前処理後の画像データとしての入力輝度値が入力されたか否かを判定する。今回の入力輝度値が入力されたときには、ステップS310においてYESと判定する。これに伴い、次のステップS315、S320、S325、S327、S330において、次の数式1によって積分値Sを算出する。
S=K1+K2−K3+K4+K5・・・・・・(数式1)
ここで、入力画素がm列n行の画素(図4参照)であるとして、数式1中の符号K1〜K5について説明する。
数式1中の符号K1はレジスタ64の記憶値を示すもので、前回レジスタ63に記憶した記憶値である。つまり、レジスタ64には、(m−1)列・(n−1)行の画素を頂点とする略三角形領域内の画素毎の輝度値の積分値Sが記憶されている。
符号K2は、(m+1)列・(n−1)行の画素を頂点とする略三角形領域内の輝度値の積分値Sである。つまり、符号K2は、積分値ラインバッファ60のうちm列n行の入力画素より1画素分最大列数M側の列に対応するレジスタの記憶値である。
符号K3は、m列・(n−2)行の画素を頂点とする略三角形領域内の画素毎の輝度値の積分値Sである。つまり、符号K3は、積分値ラインバッファ61のうちm列n行の入力画素の列に対応するレジスタの記憶値である。
符号K4は輝度値ラインバッファ62のうちm列n行の入力画素の列に対応する画素の入力輝度値を示している。符号K5は、今回の入力輝度値を示している。
ここで、符号K1に係る略三角形領域と符号K2に係る略三角形領域との間では、符号K3に係る略三角形領域が共通の領域となっている。このため、数式1では、積分値Sを算出する際に、K1とK2とK4とK5とを加算すると、符号K3の積分値S分だけ余分になる。このため、(K1+K2+K4+K5)からK3を引いて補正することにより積分値Sを算出することになる。
以下、積分値Sの算出処理の詳細について説明すると、まず、ステップS315で、今回の入力輝度値に対応する入力画素の列数xが零であるか否かを判定する。
例えば、零列・零行の入力画素の入力輝度値が前処理後の画像データとして入力されたときには、入力画素の列数xが零であるとしてステップS315でYESと判定する。この場合、符号K1は、(−1)列・(−1)行の入力画素に対応する積分値になる。このため、符号K1の積分値Sと符号K3の積分値Sとは、積分値Sの算出に際して必要がない。
そこで、ステップS320、S330では、数式1において符号K1、K3の項を消すために、K1をK3として使用して数式1によって積分値Sを算出する。
つまり、ステップS320、S330では、K1=K3として、数式1によって積分値Sを算出する。このため、(K2+K4+K5)を積分値Sとして算出することができる。
ここで、ラインバッファ60、62の各レジスタには、それぞれ初期値としての零が記憶されている。このため、K2とK4をそれぞれ零とする。
このように積分値Sを算出すると、この積分値Sをインターコネクト20を介してメモリコントローラ17に出力する。
次のステップS340において、ラインバッファ60、61、62の記憶値およびレジスタ63、64の記憶値をそれぞれ更新する。なお、ステップS340は、請求項4の第1〜第5の更正手段を構成する。
具体的には、レジスタ64に前回記憶した記憶値に代えてレジスタ63の記憶値をレジスタ64に記憶させる。
積分値ラインバッファ60のうち入力画素より1画素分最大列数側の行に対応するレジスタの記憶値(=K2)を、レジスタ63に前回記憶した記憶値に代えて、レジスタ63に記憶させる。
積分値ラインバッファ61のうち入力画素の列に対応するレジスタに対して、そのレジスタに前回記憶した記憶値に代えて、積分値ラインバッファ60のうち入力画素の列に対応するレジスタの記憶値を記憶させる。
積分値ラインバッファ60のうち今回の入力画素の列に対応するレジスタに対して、そのレジスタに前回記憶した記憶値に代えて、今回の積分値Sを記憶させる。
輝度値ラインバッファ62のうち今回の入力画素の列に対応するレジスタに対して、そのレジスタに前回記憶した記憶値に代えて、今回の入力輝度値を記憶させる。
次のステップS350において、1画像分の積分値の算出が終了したか否かを判定する。例えば、ラインカウント値Lが(N+1)に一致するか否かを判定することにより、1画像分の積分値の算出が終了したか否かを判定することになる。
ラインカウント値Lは、上述の如く、入力画素の行数を示す値である。ラインカウント値Lは、後述するように、ステップS325において、入力画素の列数xが最大列数Mに一致するとしてYESと判定する毎にインクリメントされる。
今回のステップS350では、ラインカウント値Lが(N+1)に不一致であるとしてNOと判定して、ステップS310に戻る。
次に、1列・零行の入力画素の入力輝度値が入力されると、ステップS310でYESと判定する。次のステップS315で、今回の入力画素の列数xが零ではないとしてNOと判定する。次にステップS325において、今回の入力画素の列数xが最大列数Mに一致するか否かを判定する。今回の入力画素の列数xが最大列数Mに不一致であるとしてNOと判定する。この場合、次のステップS330に進んで、上記数式1によって積分値Sを算出する。次にステップS340に進んで、上述の同様に、ラインバッファ60、61、62の記憶値およびレジスタ63、64の記憶値をそれぞれ更新する。その後、ステップS350において、1画像分の積分値の算出が終了していないとしてNOと判定して、ステップS310に戻る。
その後、m(0<m<M)列・零行の入力画素の入力輝度値が入力されると、入力輝度値の入力毎に、ステップS310でYESと判定し、次のステップS315でNOと判定してステップS325でNOと判定する。その後、ステップS330において、数式1にK1、K2、K3、K4、K5のそれぞれを代入して積分値Sを算出し、この積分値Sをインターコネクト20を介してメモリコントローラ17に出力する。次に、ステップS340に進んで、ラインバッファ60、61、62の記憶値およびレジスタ63、64の記憶値をそれぞれ更新する。その後、ステップS350においてNOと判定して、ステップS310に戻る。
次に、M列・零行の入力画素の入力輝度値が入力されると、ステップS310でYESと判定し、次のステップS315において、今回の入力画素の列数xが最小列数(零)に一致するか否かを判定する。このとき、今回の入力画素の列数xが最小列数零に不一致であるとしてNOと判定して、次のステップS325において、今回の入力画素の列数xが最大列数Mに一致するとしてYESと判定する。これに伴い、ラインカウント値Lをインクリメントする。
この場合、符号K2は、(M+1)列・−1行の入力画素に対応する積分値になる。このため、符号K2の積分値Sと符号K3の積分値Sとは、積分値Sの算出に際して必要がなくなる。
そこで、ステップS327、S330では、上記数式1において符号K2、K3の項を消すために、K2をK3として使用して上記数式1によって積分値Sを算出する。つまり、ステップS327、S330では、K2=K3として、上記数式1によって積分値Sを算出する。このため、(K1+K4+K5)を積分値Sとして算出することになる。この積分値Sをインターコネクト20を介してメモリコントローラ17に出力する。次のステップS340において、上述と同様に、ラインバッファ60、61、62の記憶値およびレジスタ63、64の記憶値をそれぞれ更新し、次のステップS350でNOと判定する。
その後、入力画素の入力輝度値が入力される毎に、ステップS310でYESと判定する。入力画素の列数xが最小列数(零)に一致するとステップS315でYESと判定して、次のステップS320、S330において、K1=K3として数式1によって積分値Sを算出する。
一方、入力画素の列数xが最小列数より大きく、かつ最大列数Mより小さい場合には(0<x<M)、ステップS315、S325でNOと判定して、数式1にK1、K2、K3、K4、K5のそれぞれを代入して積分値Sを算出する。
入力画素の列数xが最大列数Mに一致する場合には、ステップS315でNOと判定し、ステップS325でYESと判定してラインカウント値Lをインクリメントする。次のステップS327、S330で、K2=K3として数式1によって積分値Sを算出する。
このように積分値Sを算出すると、この積分値Sをインターコネクト20を介してメモリコントローラ17に出力する。次のステップS340において、ラインバッファ60、61、62の記憶値およびレジスタ63、64の記憶値をそれぞれ更新し、次のステップS350でNOと判定する。
次に、M列・N行の入力画素の入力輝度値が入力されると、ステップS315でNOと判定し、ステップS325でYESと判定し、次のステップS327、S330では、K2=K3として、数式1によって積分値Sを算出し、この積分値Sをインターコネクト20を介してメモリコントローラ17に出力する。次のステップS340において、ラインバッファ60、61、62の記憶値およびレジスタ63、64の記憶値をそれぞれ更新した後、ステップS350において、ラインカウント値Lが(N+1)に一致して1画像分の積分値の算出が終了したとしてYESと判定して、積分値算出処理の実行を終了する。
このように入力輝度値の入力毎に積分値を算出してこの算出毎に積分値をインターコネクト20を介してメモリコントローラ17に出力する。このとき、メモリコントローラ17は、ダイレクトメモリアクセスコントローラ18により制御されて、入力画素毎の積分値Sを外部記憶媒体31のうち入力画素の位置に対応するメモリアドレスに配列する。このことにより、外部記憶媒体31において、入力画素毎の積分値の集合体が回転型インテグラルイメージ(すなわち、45°インテグラルイメージ)として記憶されることになる。このように外部記憶媒体31において、回転型インテグラルイメージが直立型回転型インテグラルイメージとともに記憶されることになる。
次に、検出器14における図5のステップ130の検出処理について図8〜図11を参照して説明する。図8は検出器14による検出処理の概略を示す模式図である。
検出器14は、予め記憶した辞書(図9参照)を用いて、ビデオカメラ30で撮影された画像が検出対象を含む画像である否かを判定する。辞書は、図9に示すように、複数の矩形領域を組み合わせて人の顔を構成した四角形の画像データである。
図9は、辞書を拡大表示したものである。図9(a)〜(f)は、複数の矩形領域のうち検出器14の検出処理で用いられる判定対象の具体例を示すものである。判定対象は、2つの矩形領域、或いは3つの矩形領域から構成されて、眉毛、目、鼻、頬などの顔の特徴を表している。
図9(a)、(c)、(d)、(f)は2つの直立型の矩形領域A、Bを組み合わせたものである。図9(b)は、2つの回転型の矩形領域A、Bを組み合わせたものである。図9(e)は3つの直立型の矩形領域A1、B、A2を組み合わせたものである。
ここで、直立型の矩形領域とは、矩形領域を構成する4つの辺がそれぞれ画素の列方向(紙面縦方向)に直交、或いは平行になるように構成されているものである。回転型の矩形領域とは、矩形領域を構成する4つの辺がそれぞれ画素の列方向(或いは行方向)に45°で交差するように構成されているものである。
具体的には、検出器14は、直立型インテグラルイメージのうち辞書(つまり、人の顔)に対応する部分を候補画像80として抽出するとともに、回転型インテグラルイメージのうち辞書に対応する部分を候補画像81として抽出する。
次に、図9(a)〜(e)のそれぞれ判定対象について判定処理を判定対象毎に実施する。
(1) 図9(a)、(c)、(d)、(f)に示すように、判定対象が直立型の矩形領域A、Bから構成されている場合には、候補画像80(すなわち、回転型インテグラルイメージの一部)のうち矩形領域A、Bに対応する領域の積分値をそれぞれ算出する。
図10において候補画像80と矩形領域Aとの位置関係を示す。候補画像80において、基準点81と矩形領域Aの頂点82とを対角線上の頂点(すなわち、互いに対角となる頂点)とする矩形領域80aは、矩形領域X1、X2、X3および矩形領域Aから構成されることになる。そこで、候補画像80のうち矩形領域Aに対応する領域の積分値をSaとし、候補画像80のうち矩形領域80aに対応する領域の積分値をS4とし、候補画像80のうち矩形領域X1、X2、X3に対応する領域の積分値をS1、S2、S3としたとき、積分値S4から矩形領域X1、X2、X3の積分値S1、S2、S3とをそれぞれ引いて積分値Sa(=S4−S1−S2−S3)を求める。同様に、候補画像80のうち矩形領域B(図示省略)に対応する領域の積分値Sbを算出する。
これに加えて、積分値Saと積分値Sbとの差分としてのHaar特徴量dS(=Sa−Sb)を求め、このHaar特徴量dSが所定値以上であるか否かを判定対象毎に判定することにより、判定対象毎の重み付けを決定する。
Haar特徴量dSが所定値以上であるとしてYESと判定したときには、第1の値を重み付けとして決定し、差分dSが所定値未満であるとしてNOと判定したときには、第2の値を重み付けとして決定する。第1の値および第2の値は、判定対象毎に決められている。
(2) 図9(e)に示すように、判定対象が直立型の矩形領域A1、A2、Bから構成されている場合には、候補画像80のうち矩形領域A1、A2、Bのそれぞれに対応した領域の積分値Sa1、Sa2、Sbを算出する。積分値Sa1は、候補画像80のうち矩形領域A1に対応した領域の積分値である。積分値Sa2は、候補画像80のうち矩形領域A2に対応した領域の積分値である。積分値Sbは、候補画像80のうち矩形領域Bに対応した領域の積分値である。
これに加えて、積分値Sa1と積分値Sa2とを加算した加算値KS(=Sa1+Sa2)を求め、この加算値KSと積分値Sbとの差分としてのHaar特徴量dS(=KS−Sb)が所定値以上であるか否かを判定することにより、上記(1)と同様、判定対象毎の重み付けを決定する。
(3) 図9(b)に示すように、判定対象が回転型の矩形領域A、Bから構成されている場合には、候補画像80のうち矩形領域A、Bのそれぞれに対応した領域の積分値Sa、Sbを算出する。
図11において候補画像81と矩形領域Aとの位置関係を示す。候補画像81において、頂点83にて90度の角度を形成して底辺84が候補画像81の零行側(図示上側)の縁部からなる直角二等辺三角形領域80bは、直角二等辺三角形領域X1、X2、X3および矩形領域Aから構成される。
直角二等辺三角形領域X1は、頂点86にて90度の角度を形成して底辺が候補画像81の零行側の縁部からなる領域である。直角二等辺三角形領域X2は、頂点84にて90度の角度を形成して底辺が候補画像81の零行側の縁部からなる領域である。直角二等辺三角形領域X3は、頂点85にて90度の角度を形成して底辺が候補画像81の零行側の縁部からなる領域である。矩形領域Aは、頂点83、84、85、86を有する領域である。
候補画像81のうち直角二等辺三角形領域80bに対応する領域の積分値をS4とする。候補画像81のうち矩形領域Aに対応する領域の積分値をSaとする。候補画像81のうち直角二等辺三角形領域X1に対応する領域の積分値をS1とする。候補画像81のうち直角二等辺三角形領域X2に対応する領域の積分値をS2とする。候補画像81のうち直角二等辺三角形領域X3に対応する領域の積分値をS3とする。
そこで、積分値S4から積分値S2、S3をそれぞれ引いた値(=S4−S2−S3)に対して積分値S1を加算した加算値(=S4−S2−S3+S1)としての積分値Saを求めることになる。同様に、候補画像81のうち矩形領域B(図示省略)に対応する領域の積分値Sbを算出する。積分値Saと積分値Sbとの差分としてのHaar特徴量dS(=Sa−Sb)を求め、このHaar特徴量dSが所定値以上であるか否かを判定対象毎に判定することにより、判定対象毎の重み付けを決定する。
以上のように、判定対象毎に候補画像80、81のうちいずれか一方を用いてHaar特徴量を算出し、このHaar特徴量と所定値とを比較判定して、この判定結果に応じて重み付けを判定対象毎に決める。図8(a)〜(f)は判定対象毎に重み付けを決めた例を示している。図8(a)はYES判定により重み付けとしての「0.7」を決める。図8(b)はNO判定により重み付けとしての「0.2」を決める。図8(c)はYES判定により重み付けとしての「0.6」を決める。図8(d)はNO判定により重み付けとしての「0.9」を決める。図8(e)はYES判定により重み付けとしての「0.5」を決める。図8(f)はNO判定により重み付けとしての「0.8」を決める。
このように判定対象毎に重み付けを決定し、この決定した判定対象毎の重み付けの総和が閾値Thより大きいか否かを判定することにより、ビデオカメラ30で撮影された画像が検出対象としての顔画像を含む画像である否かを判定する。
判定対象毎の重み付けの総和が閾値Thより大きいときには、ビデオカメラ30で撮影された画像が検出対象としての顔画像を含む画像であると判定し、判定対象毎の重み付けの総和が閾値Th以下であるときには、ビデオカメラ30で撮影された画像が検出対象としての顔画像を含む画像ではないと判定する。
以上説明した本実施形態によれば、直立型インテグラルイメージ生成回路41は、画像を構成する画素の列毎に設けられて複数の画素のうち入力画素の列において零行の画素から「入力画素よりも1画素分零行側の画素」までの画素毎の輝度値の総和を記憶値R2として列毎に記憶する複数のレジスタを有する列和ラインバッファ50と、演算器52により前回算出された積分値R1を記憶するレジスタ51とを備え、演算器52は、輝度値の入力毎に、今回の入力輝度値R3と列和ラインバッファ50のうち今回の入力画素の列に対応するレジスタの記憶値R2とレジスタ51の記憶値R1とを加算して積分値を算出する。
ここで、演算器52は、列和ラインバッファ50のうち今回の入力画素の列に対応するレジスタにおいて当該レジスタに前回記憶された記憶値と今回の入力画素の輝度値R3とを加算した値を、当該レジスタに前回記憶された記憶値に代えて記憶させることにより、列和ラインバッファ50の記憶値を更新する。演算器52は、入力画素の列数が最大列数(M)よりも小さい場合には、レジスタ51に対して、当該レジスタ51に前回記憶した記憶値に代えて、今回の積分値を記憶させることにより、レジスタ51の記憶値を更新する。演算器52は、入力画素の列数が最大列数(M)と同一である場合には、レジスタ51に対して、レジスタ51に前回記憶された記憶値に代えて、零を記憶させることにより、レジスタ51の記憶値を更新する。
このように演算器52が入力輝度値の入力毎に、列和ラインバッファ50の記憶値とレジスタ51の記憶値とをそれぞれ更新する。このため、演算器52は、今回の入力輝度値R3と列和ラインバッファ50のうち今回の入力画素の列に対応するレジスタの記憶値R2とレジスタ51の記憶値R1とを用いて、輝度値の入力毎に、積分値を算出することができる。
一方、回転型インテグラルイメージ生成回路42は、画素の列毎に設けられて今回の入力画素に対して2画素分零行側の画素を1つの頂点とする略三角形領域内の画素毎の輝度値の積分値K3を記憶する積分値ラインバッファ61と、画素の列毎に設けられて今回の入力画素に対して1画素分零行側の画素を頂点とする略三角形領域内の画素毎の輝度値の積分値K2を列毎に記憶する複数のレジスタを有する積分値ラインバッファ60と、積分値ラインバッファ60に前回記憶した積分値を記憶するレジスタ63と、レジスタ63に前回記憶した積分値を記憶するレジスタ64と、画素の列毎に設けられて今回の入力画素に対して1画素分零行側の画素の輝度値K4を列毎に記憶する複数のレジスタを有する輝度値ラインバッファ62とを備える。演算器65は、入力輝度値の入力毎に、レジスタ64の記憶値K1と、積分値ラインバッファ60のうち入力画素より1画素分最大列側の列に対応するレジスタの記憶値K2と、輝度値ラインバッファ62のうち入力画素の列に対応するレジスタの記憶値K4と、今回の入力輝度値K5とを加算した加算値(K1+K2+K4+K5)から、積分値ラインバッファ61のうち入力画素の列に対応するレジスタの記憶値K3を引くことにより積分値Sを求める。
ここで、演算器65は、(1)〜(5)ように、ラインバッファ60、61、62の記憶値およびレジスタ63、64の記憶値を更新する。(1)積分値ラインバッファ60のうち今回の入力画素の列に対応するレジスタの記憶値を、積分値ラインバッファ61のうち今回の入力画素の列に対応するレジスタに対して、そのレジスタに前回記憶した記憶値に代えて、記憶させる。(2)今回算出した積分値Sを、積分値ラインバッファ60のうち今回の入力画素の列に対応するレジスタに対して、そのレジスタに前回記憶した記憶値に代えて、記憶させる。(3)レジスタ63の記憶値を、レジスタ64に対して、そのレジスタ64に前回記憶した記憶値に代えて、記憶させる。(4)積分値ラインバッファ60のうち今回の入力画素に対して1画素分最大列数側の列に対応するレジスタの記憶値を、レジスタ63に対して、そのレジスタ63に前回記憶した記憶値に代えて、記憶させる。(5)輝度値ラインバッファ62のうち今回の入力画素の列に対応するレジスタに対して、そのレジスタに前回記憶した記憶値に代えて、今回の入力画素の輝度値(K5)を記憶させる。
このように演算器65は、入力輝度値の入力毎に、ラインバッファ60、61、62の記憶値およびレジスタ63、64の記憶値を更新する。このため、演算器65は、入力輝度値の入力毎に、ラインバッファ60、61、62の記憶値およびレジスタ63、64の記憶値を用いて積分値Sを算出することができる。
このようにインテグラルイメージ生成回路41、42では、前処理部12から入力輝度値が入力される毎に積分値を求めることができる。
ここで、従来、ビデオカメラ30から一画面分(1フレーム分)の画像データを取り込んで、外部記憶媒体31に記憶し、この記憶された画像データに対して、前処理、インテグラルイメージ生成、および検出処理を時分割で実施していた(図12参照)。このため、ビデオカメラから画像データを取り込んでからインテグラルイメージ生成を終えるまでに例えば数十msecの遅延時間(レイテンシ)が生じることになる。ここで、通常のビデオカメラのフレームレートが30fps(frame per second)で、1フレーム単位の表示時間が約33msであることを考慮すると、数十msecの遅延時間が非常に長く無視できる時間ではないと思料する。
これに対して、本実施形態によれば、直立型インテグラルイメージ生成回路41では、演算部52が前処理部12から入力輝度値が入力される毎に積分値を求めることができる。これに加えて、回転型インテグラルイメージ生成回路42では、演算部65が前処理部12から入力輝度値が入力される毎に積分値をそれぞれ求めることができる。このため、前処理、および積分値の算出を並列的に行うことができる。これに伴い、前処理、およびインテグラルイメージ生成を並列的に実施できる(図13参照)。このため、上述のように、前処理、およびインテグラルイメージ生成を時分割で実施する場合に比べて、遅延時間(レイテンシ)を縮小してスループットを改善することができる。
本実施形態の回転型インテグラルイメージ生成回路42の演算部65は、画像を構成する全ての画素に亘って画素毎に上記数式1を用いて積分値Sを算出する。このため、演算部65は、簡素な処理で積分値Sを算出することができる。
さらに、本実施形態では、演算器52、65が1画像分の複数の積分値の算出の終了後ではなく、検出器14における判定対象毎の重み付けの算出に必要な積分値の算出が終了次第、検出器14における判定対象毎の重み付けの算出を開始することにより、演算器52、65の積分値の算出と検出器14の検出処理とを並列的に行うことができる。このため、ビデオカメラ30から画素毎の画像データを取り込んでから検出器14の検出処理の終了までに生じる遅延時間を短くすることができる。
(他の実施形態)
上記実施形態では、人の顔を識別するための辞書(図9参照)のうち検出器14の検出処理で用いる判定対象として図9(a)〜(f)の判定対象を示したが、これに限らず、検出器14の検出処理において判定対象として図14(a)〜(e)の判定対象を用いてもよい。
図14(a)の判定対象は3つの直立型の矩形領域A、B、Aを列方向(縦方向)に並べたものである。図14(b)の判定対象は直立型の矩形領域Aの内側に直立型の矩形領域Bを配置したものである。図14(c)の判定対象は回転型の矩形領域Aの内側に回転型の矩形領域Bを配置したものである。図14(d)、(e)は3つの直立型の矩形領域を列方向に対して45°で交差する方向に並べたものである。
上記実施形態では、ビデオカメラ30の撮影画像が顔を含む画像であると判定したときには、この判定結果を用いて撮影画像を加工してモニタ33に表示した例をしましたが、これに代えて、次のようにしてもよい。例えば、ビデオカメラ30により車両前方を撮影してその撮影画像から人の顔画像を識別しされた場合には、当該車両のブレーキなどの制御を実施して安全を図るようにしてもよい。
上記実施形態では、演算器52、65が他の装置としての前処理部12からの画像データに基づいて積分値を算出する例を示したが、これに代えて、演算器52、65が他の装置としての外部記憶媒体31からの画像データに基づいて積分値を算出するようにしてもよい。この場合、外部記憶媒体31に画素毎の画像データを予め記憶しておく必要がある。
上記実施形態では、本発明に係る積分値演算回路を車両用画像検出装置に適用した例を示したが、これに限らず、車両用画像検出装置以外の装置に本発明に係る積分値演算回路を適用してもよい。
10 車両用画像検出装置
11 ビデオ入力部
12 前処理部
13 インテグラルイメージ生成部
14 検出器
15 ビデオ出力部
16 CPU
17 メモリコントローラ
18 ダイレクトメモリアクセスコントローラ
19 通信インターフェイス部
20 インターコネクト
30 ビデオカメラ
33 モニタ
40 入力セレクト部
41 直立型インテグラルイメージ生成回路
42 回転型インテグラルイメージ生成回路
50 列和ラインバッファ
51 レジスタ
52 演算器
60 積分値ラインバッファ
61 積分値ラインバッファ
62 輝度値ラインバッファ
63 レジスタ
64 レジスタ
65 演算器

Claims (4)

  1. 行列状に配列されて画像を構成する複数の画素のうち他の装置(12、31)から入力される画素毎の輝度値に対応する入力画素と基準位置とをそれぞれ頂点とする矩形領域内の前記画素毎の輝度値の積分値を前記入力画素毎の輝度値に基づいて前記入力画素毎に算出する算出手段(52)と、
    前記複数の画素のうち前記入力画素の列において最小行数の画素から前記入力画素よりも1画素分最小行数側の画素までの前記画素毎の輝度値の総和を前記画素の列毎に記憶する複数のレジスタをそれぞれ備える列和ラインバッファ(50)と、
    前記算出手段により前回算出された積分値を記憶する積分値レジスタ(51)と、を備え、
    前記算出手段は、今回の前記入力画素の輝度値(R3)と、前記列和ラインバッファのうち前記今回の入力画素の列に対応するレジスタの記憶値(R2)と、前記積分値レジスタの記憶値(R1)とをそれぞれ加算して前記今回の入力画素に対応する積分値を算出することを特徴とする積分値演算回路。
  2. 前記列和ラインバッファ(50)のうち前記今回の入力画素の行に対応するレジスタにおいて当該レジスタに前回記憶された記憶値と今回の前記入力画素の輝度値(R3)とを加算した値を、前記前回記憶された記憶値に代えて記憶させることにより、前記列和ラインバッファ(50)の記憶値を更新する第1の更新手段(S230)と、
    前記入力画素の列数が最大列数(M)よりも小さい場合には、前記積分値レジスタ(51)に対して、当該積分値レジスタに前回記憶した記憶値に代えて、前記今回の積分値を記憶させることにより、前記積分値レジスタの記憶値を更新する第2の更新手段(S250)と、
    前記入力画素の列数が前記最大列数(M)と同一である場合には、前記積分値レジスタ(51)に対して、当該積分値レジスタに前回記憶された記憶値に代えて、零を記憶させることにより、前記積分値レジスタの記憶値を更新する第3の更新手段(S255)と、を備えることを特徴とする請求項1に記載の積分値演算回路。
  3. 行列状に配列されて画像を構成する複数の画素のうち他の装置(12、31)から入力される画素毎の輝度値に対応する入力画素を1つの頂点とする所定領域内の前記画素毎の輝度値の積分値を前記他の装置から入力される輝度値に基づき前記入力画素毎に算出する算出手段(65)を備え、
    前記所定領域は、前記画像のうち、前記入力画素で90°の角度を形成して前記頂点から最小列数側に伸びて行方向および列方向に対して45°の角度で交差する2つの線分(70、71)よりも最小行数側の領域である積分値演算回路であって、
    今回の前記入力画素に対して2画素分最小行数側の画素を前記1つの頂点とする前記所定領域内の前記画素毎の輝度値の積分値(K3)を列毎に記憶する複数のレジスタを備える第1の積分値ラインバッファ(61)と、
    前記今回の入力画素に対して1画素分最小行数側の画素を頂点とする前記所定領域内の前記画素毎の輝度値の積分値(K2)を列毎に記憶する複数のレジスタを備える第2の積分値ラインバッファ(60)と、
    前記第2の積分値ラインバッファ(60)に前回記憶された積分値(K2)を記憶する第1のレジスタ(63)と、
    前記第1のレジスタに前回記憶した積分値(K1)を記憶する第2のレジスタ(64)と、
    前記今回の入力画素に対して1画素分最小行数側の画素の輝度値(K4)を列毎に記憶する複数のレジスタをそれぞれ備える輝度値ラインバッファ(62)と、を備え、
    前記算出手段(65)は、
    前記第2のレジスタ(64)の記憶値(K1)と、前記第2の積分値ラインバッファ(60)のうち前記今回の入力画素に対して1画素分最大列数側の列に対応するレジスタの記憶値(K2)と、前記輝度値ラインバッファ(62)のうち前記今回の入力画素の列に対応するレジスタの記憶値(K4)と、前記今回の入力画素の輝度値(K5)とをそれぞれ加算した加算値から、前記第1の積分値ラインバッファ(61)のうち前記今回の入力画素の列に対応するレジスタの記憶値(K3)を引くことにより、前記今回の入力画素を1つの頂点とする前記所定領域内の前記画素毎の輝度値の積分値を算出することを特徴とする積分値演算回路。
  4. 前記第2の積分値ラインバッファ(60)のうち前記今回の入力画素の列に対応するレジスタの記憶値を、前記第1の積分値ラインバッファ(61)のうち前記今回の入力画素の列に対応するレジスタに対して、そのレジスタに前回記憶した記憶値に代えて、記憶させることにより、前記第1の積分値ラインバッファ(61)の記憶値を更新する第1の更新手段(S340)と、
    前記算出手段(65)により算出された今回の積分値を、前記第2の積分値ラインバッファ(60)のうち前記今回の入力画素の列に対応するレジスタに対して、そのレジスタに前回記憶した記憶値に代えて、記憶させることにより、前記第2の積分値ラインバッファ(60)の記憶値を更新する第2の更新手段(S340)と、
    前記第1のレジスタ(63)の記憶値を、前記第2のレジスタ(64)に対して、その前記第2のレジスタに前回記憶した記憶値に代えて、記憶させることにより、前記第2のレジスタ(64)の記憶値を更新する第3の更新手段(S340)と、
    前記第2の積分値ラインバッファ(60)のうち前記今回の入力画素に対して1画素分最大列数側の列に対応するレジスタの記憶値を、前記第1のレジスタ(63)に対して、その前記第1のレジスタに前回記憶した記憶値に代えて、記憶させることにより、前記第1のレジスタ(63)の記憶値を更新する第4の更新手段(S340)と、
    前記輝度値ラインバッファ(62)のうち前記今回の入力画素の列に対応するレジスタに対して、そのレジスタに前回記憶した記憶値に代えて、前記今回の入力画素の輝度値(K5)を記憶させることにより、前記輝度値ラインバッファ(62)の記憶値を更新する第5の更新手段(S340)と、を備えることを特徴とする請求項3に記載の積分値演算回路。
JP2011025061A 2011-02-08 2011-02-08 積分値演算回路 Pending JP2012164201A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011025061A JP2012164201A (ja) 2011-02-08 2011-02-08 積分値演算回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011025061A JP2012164201A (ja) 2011-02-08 2011-02-08 積分値演算回路

Publications (1)

Publication Number Publication Date
JP2012164201A true JP2012164201A (ja) 2012-08-30

Family

ID=46843522

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011025061A Pending JP2012164201A (ja) 2011-02-08 2011-02-08 積分値演算回路

Country Status (1)

Country Link
JP (1) JP2012164201A (ja)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010009599A (ja) * 2008-06-27 2010-01-14 Palo Alto Research Center Inc 局所化されたスケール空間特性を使用してピクチャイメージ内で安定したキーポイントを検出するシステムおよび方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010009599A (ja) * 2008-06-27 2010-01-14 Palo Alto Research Center Inc 局所化されたスケール空間特性を使用してピクチャイメージ内で安定したキーポイントを検出するシステムおよび方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
CSNG200801071027; 山下隆義, 藤吉弘亘: '特定物体認識に有効な特徴量' 電子情報通信学会技術研究報告 PRMU2008-111〜146 パターン認識・メディア理解 第108巻 第327号, 20081120, 第221〜236頁, 社団法人電子情報通信学会 *
JPN6013061162; 山下隆義, 藤吉弘亘: '特定物体認識に有効な特徴量' 電子情報通信学会技術研究報告 PRMU2008-111〜146 パターン認識・メディア理解 第108巻 第327号, 20081120, 第221〜236頁, 社団法人電子情報通信学会 *
JPN6013061164; Rainer Lienhart, Alexander Kuranov, Vadim Pisarevsky: 'Empirical Analysis of Detection Cascades of Boosted Classifiers for Rapid Object Detection' DAGM 25th Pattern Recognition Symposium , 200309 *

Similar Documents

Publication Publication Date Title
CN108805047B (zh) 一种活体检测方法、装置、电子设备和计算机可读介质
JP6688277B2 (ja) プログラム、学習処理方法、学習モデル、データ構造、学習装置、および物体認識装置
JP4203736B2 (ja) 画像の動き検出装置及びコンピュータプログラム
CN111968563B (zh) 显示面板的亮度补偿方法、装置、系统、显示面板及介质
CN112449141A (zh) 用于处理输入视频的系统和方法
CN103997602B (zh) 摄像设备及其控制方法
CN110866486B (zh) 主体检测方法和装置、电子设备、计算机可读存储介质
WO2019041842A1 (zh) 一种图像处理方法及装置、存储介质和计算机设备
CN108876758B (zh) 人脸识别方法、装置及系统
CN103686104A (zh) 图像处理装置
US20190027120A1 (en) Method of and data processing system for providing an output surface
US20190318461A1 (en) Histogram Statistics Circuit and Multimedia Processing System
CN109035147A (zh) 图像处理方法及装置、电子装置、存储介质和计算机设备
CN111667504A (zh) 一种人脸追踪方法、装置及设备
CN111951192A (zh) 一种拍摄图像的处理方法及拍摄设备
JP4998386B2 (ja) ライン描画方法
JP2008206143A (ja) 画像処理機能を備える撮像装置
JP6417204B2 (ja) 画像処理装置および画像処理方法
US10742914B2 (en) Head-wearable imaging apparatus with two imaging elements corresponding to a user left eye and right eye, method, and computer readable storage medium for correcting a defective pixel among plural pixels forming each image captured by the two imaging elements based on defective-pixel related position information
KR20130098675A (ko) 얼굴 검출 처리 회로 및 이를 포함하는 촬상 장치
KR20170131806A (ko) 표시 장치 및 그의 구동 방법
JP2012164201A (ja) 積分値演算回路
JP2008113292A (ja) 動き推定方法,装置,そのプログラムおよびその記録媒体
JP6264173B2 (ja) 撮像方向の正常性判定方法、撮像装置取り付け状態評価プログラムおよび撮像装置取り付け状態評価装置
JP2010108138A (ja) 人物検出装置及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130412

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131205

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131217

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140207

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140610