【文献】
山崎 裕太 大江 至流 榎田 修一 田向 権,人物検出のためのハードウェア指向画像特徴量算出法,情報・システムソサイエティ特別企画 学生ポスターセッション予稿集,日本,一般社団法人 電子情報通信学会,2016年 3月16日,ISS-SP-173,P.172
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0011】
(1)実施形態の概要
画像処理装置21(
図5)は、高解像度画像から輝度勾配方向を抽出する3ラインバッファ25a〜バッファ28aから構成された高解像度画像用の処理ライン、中解像度画像から輝度勾配方向を抽出する中解像度部24b〜バッファ28bから構成された中解像度画像用の処理ライン、及び低解像度画像から輝度勾配方向を抽出する低解像度部24c〜バッファ28cから構成された低解像度画像用の処理ラインを並列に配設しており、これら3つの解像度の画像から並行して同時に輝度勾配方向を画素ごとに抽出する。
【0012】
共起行列作成部30a、30b、30cは、これら3つの解像度の画像から抽出した輝度勾配方向を用いて共起行列を作成し、ヒストグラム作成部31がこれを用いてヒストグラムをMRCoHOG特徴量として出力する。
3つの解像度の画像を同時に処理するため、高速に処理でき、カメラから出力される動画をリアルタイムで処理することができる。
【0013】
(2)実施形態の詳細
まず、HOG特徴量、CoHOG特徴量、及びMRCoHOG特徴量について簡単に説明する。
図1は、HOG特徴量の概念を説明するための図である。
HOG特徴量は、次の手順により画像から抽出される。
図1(a)左図に示した画像101は、対象を観測する観測窓などによる注目画像領域とする。
まず、画像101を矩形のセル102a、102b、・・・に分割する。
次に、
図1(a)右図に示したように、セル102ごとに各画素(ピクセル)の輝度勾配方向(低輝度から高輝度に向かう方向)を例えば8方向に量子化する。
【0014】
次に、
図1(b)に示したように、量子化した輝度勾配の方向を階級とし、出現回数を度数とするヒストグラムを生成することにより、セル102に含まれる輝度勾配のヒストグラム106をセル102ごとに作成する。
そして、セル102をいくつか集めたブロック単位でヒストグラム106の合計度数が1となるように正規化する。
【0015】
図1(a)左図の例では、セル102a、102b、102c、102dから1ブロックが形成されている。
このようにして正規化したヒストグラム106a、106b、・・・を
図1(c)のように一列に並べたヒストグラムが画像101のHOG特徴量107である。
【0016】
図2は、CoHOG特徴量を説明するための図である。
CoHOG特徴量は、局所領域における2画素間の勾配ペアに着目した特徴量であり、次の手順により画像から抽出される。
図2(a)に示したように、画像101を矩形のセル102a、102b、・・・に分割する。なお、セルは、ブロックとも呼ばれる。
【0017】
CoHOG特徴量では、セル102a、102b、・・・に注目画素110を設定し、注目画素110の輝度勾配方向と、注目画素110から距離1〜4にある画素の輝度勾配方向との組合せにより共起行列(注目画素110に関するヒストグラム)を作成する。なお、注目画素110との組合せに係る画素はオフセットと呼ばれる。
【0018】
例えば、注目画素110からの距離は、数式で表されるが、当該数式を適用すると、
図2(a)に示したように、距離1の画素として、注目画素110に隣接する画素1a〜1dが得られる。
なお、注目画素110の上と左の画素が組合せに含まれないのは、一番上の画素行の左端から右方向に向けて順に注目画素110を設定して処理していくため、既に処理が終了しているからである。
【0019】
次に、注目画素110と画素1aの輝度勾配方向を観察する。輝度勾配方向は、例えば8方向に量子化されており、図では方向を矢線で示してある。
注目画素110の輝度勾配方向は、右方向で画素1aの輝度勾配方向は、右上方向である。
そこで、
図2(b)の共起行列113で、(行番号、列番号)=(右方向、右上方向)の要素に一票を投じる。
図2(b)の例では、注目画素110と画素1aの輝度勾配方向の組みとして、行番号として右方向の矢印が記載された行と、列番号として右上方向の矢印が記載された列の要素に1が加算された結果、当該要素の値が10になっている。
【0020】
なお、本来は、共起行列113を立体的なヒストグラムで描き、票数を高さ方向の棒グラフで表すべきであるが、図を簡略化するため票数を数値で表している。
以下、同様に注目画素110と画素1b、1c、1dとの組合せによる投票(計数)を行う。
【0021】
図2(c)に示したように、注目画素110を中心に、距離2の画素は画素1a〜1dの外周にある画素2a〜2f、距離3の画素は更にその外周の画素3a〜3h、距離4の画素は更にその外周の画素4a〜4lと規定されている。
これらについても同様に注目画素110と組合せて共起行列113に投票する。
【0022】
以上の投票処理をセル102を構成する全画素について行い、画素ごとの共起行列が得られる。
更に、これを全てのセル102で行い、全ての共起行列の成分を
図2(d)に示したように一列に並べたヒストグラムが画像101のCoHOG特徴量117である。
【0023】
図3は、MRCoHOG特徴量を説明するための図である。
MRCoHOG特徴量は、同じ画像の異なる解像度間で共起をみることでオフセット数を大幅に削減する。
まず、
図3(a)に示したように、元画像から解像度(画像サイズ)の異なる画像を生成することにより高解像度画像120(元画像)、中解像度画像121、低解像度画像122を得る。画像中の升目は、画素を表している。図示しないが、これら各解像度画像にもセル(ブロックとも呼ばれる)が設定されている。
そして、高解像度画像120、中解像度画像121、及び低解像度画像122のそれぞれの画素について量子化した輝度勾配方向を計算する。
【0024】
MRCoHOG特徴量の抽出には、中解像度画像121、低解像度画像122を用いるが、分かり易くするために、
図3(b)に示したように、中解像度画像121と低解像度画像122を中解像度画像121aと低解像度画像122aに引き延ばし、高解像度画像120と同じサイズにする。
【0025】
次に、
図3(c)に示したように、CoHOG特徴量と同様に、高解像度画像120の注目画素125における輝度勾配方向と、その周囲の高解像度画像120の画素1a〜1dの輝度勾配方向との共起(輝度勾配方向の組合せ)を取って、図示しない共起行列に投票する。
【0026】
次に、高解像度画像120の注目画素125と、画素1a〜1dの外周にある中解像度画像121aの画素2a〜2dとの共起に従って共起行列に投票し、更に、注目画素125と、画素2a〜2dの外周にある低解像度画像122aの画素3a〜3dとの共起に従って共起行列に投票する。
【0027】
このようにして、高解像度画像120の注目画素125に対して、高解像度画像120内での組合せ、中解像度画像121aとの組合せ、低解像度画像122aとの組合せで共起を取った共起行列が得られる。
この処理を、高解像度画像120のセル内の各画素に対して行い、更に、全てのセルについて行う。
これにより、高解像度画像120の画素ごとの共起行列が得られる。
【0028】
同様にして、更に、中解像度画像121aに注目画素を設定した場合の各解像度画像との共起行列、低解像度画像122aに注目画素を設定した場合の各解像度画像との共起行列を計算し、全ての共起行列の成分を
図3(d)に示したように一列に並べたヒストグラムが高解像度画像120のMRCoHOG特徴量127である。
【0029】
なお、この例では、高解像度画像120に注目画素を設定した場合の共起行列、中解像度画像121aに注目画素を設定した場合の共起行列、低解像度画像122aに注目画素を設定した場合の共起行列を連結したヒストグラムをMRCoHOG特徴量としたが、何れか1つ、例えば、高解像度画像120に注目画素を設定した場合の共起行列によるヒストグラムをMRCoHOG特徴量とすることも可能である。
また、何れか2つを組合せてもよいし、更に、解像度を増やして4種類以上の解像度画像で共起をとってもよい。
【0030】
MRCoHOG特徴量によって、CoHOGより大幅に特徴量を減らすことができる一方、頑健性がCoHOGよりもよいことが発明者等による実験から明らかになっている。
これは、解像度を低下させることによりノイズが低減することと、注目画素から離れた部分との共起を見るためではないかと推測されている。
【0031】
次に、数学的な計算式のハードウェアへの適用形態について説明する。
MRCoHOG特徴量を算出するためには、平方根、除算、逆正接を計算する必要がある。
ところが、コンピュータは、加算によって平方根などの各種計算をするため、これらの演算は、負荷が大きい。
そのため、計算速度を高速化したり、ICチップ化できるように回路規模を適正なものにするためには、ハードウェアに適した計算方法を考案する必要がある。
【0032】
図4は、本実施の形態で用いる計算方法を説明するための図である。
図4(a)の式(1)のm(x、y)は、座標(x、y)にある画素の輝度勾配の勾配強度の計算式を示している。
なお、文字化け防止のために、下付の小文字は、全角文字で表す。
【0033】
fx(x、y)、fy(x、y)は、それぞれ、x方向(水平方向・横方向)とy方向(垂直方向・縦方向)の輝度の勾配強度である。
fx(x、y)、fy(x、y)は、数学的には、輝度をx方向、y方向に偏微分して求めるが、本実施の形態では、fx(x、y)を着目画素の水平方向(左右横方向)両隣に隣接する画素の輝度の差分で表し、fy(x、y)を着目画素の垂直方向(上下縦方向)両隣に隣接する画素の輝度の差分で表す。
【0034】
式(1)に示したように、勾配強度は、平方根を含んでいるが、ユーグリッド距離をマンハッタン距離に置き換えることにより、式(1)を式(2)の加算式で近似する。
この置き換えは、
図4(a)の右図に示したように、地点TU間のユーグリッド距離である(t自乗+u自乗)の平方根を、マンハッタン距離であるt+uで近似するものである。名称のマンハッタンは、米国都市のマンハッタンの街路が碁盤の目状であることに由来する。
【0035】
勾配強度は、輝度勾配に係る輝度の高低差が大きいほど大きくなる量であり、ゼロオフセットに用いられる。
勾配強度が所定の閾値に達しないものに関しては、例えば、共起を取らないなどの所定の処理を行うが、画像の識別精度に与える影響が小さいため、本実施の形態では、当該処理については説明を省略する。
実験の結果、ユーグリッド距離をマンハッタン距離で置き換えても画像認識能力には、殆ど影響しないことが確認された。
【0036】
図4(b)の式(3)は、一般に使用される輝度勾配方向θの計算式を示している。
式(3)は、fx(x、y)によるfy(x、y)の除算と、逆正接(arctangent)の計算が含まれているため、計算に必要な処理負荷が大きくなる。
そこで、本実施形態では、MRCoHOG特徴量の計算で必要なのは、式(3)による正確な値ではなく、量子化された輝度勾配方向であることに着目し、式(3)を用いずに、fx(x、y)とfy(x、y)の組と輝度勾配方向を対応させた対応テーブルを用意し、これによってfx(x、y)とfy(x、y)の組を量子化された輝度勾配方向に写像する。
【0037】
図4(c)は、角度θの範囲と量子化した輝度勾配方向θとの関係を表したものである。
本実施の形態では、一例として、輝度勾配方向を8方向に量子化するものとする。
ここでは、
図4(c)に示すように、輝度勾配方向θが0°≦θ<45°のものは0°に量子化し、45°≦θ<90°のものは45°に量子化し、他の角度も同様に、90°、135°、180°、225°、270°、315°に量子化するものとする。
【0038】
この手法では、まず、分類11に従って、fx(x、y)とfy(x、y)の正負の組合せをa〜dに分類する。
分類aはfx(x、y)とfy(x、y)が共に正の場合、分類bはfx(x、y)とfy(x、y)が共に負の場合、分類cはfx(x、y)か正でfy(x、y)が負の場合、分類dは、fx(x、y)が負でfy(x、y)が正の場合である。
【0039】
次に、fx(x、y)とfy(x、y)の大小関係を比較し、分類12に従って、量子化された輝度勾配方向に対応させる。
分類がaで、yがx以下の場合は、0°に対応させ、yがxより大きい場合は、45°に対応させる。
分類がbで、−yがx以下の場合は、90°に対応させ、−yがxより大きい場合は、135°に対応させる。
【0040】
分類がcで、yがx以上の場合は、180°に対応させ、yがxより小さい場合は、225°に対応させる。
分類がdで、−yがx以上の場合は、270°に対応させ、−yがxより小さい場合は、315°に対応させる。
このように、本実施の形態では、分類11、12によって構成される対応テーブルを参照することにより、逆正接や除算を使用せずに、高速に量子化された輝度勾配方向を得ることができる。
【0041】
このように、本実施の形態の画像処理装置は、注目画素の隣接画素の輝度を用いて注目画素の水平方向の輝度勾配強度fx(x、y)、及び垂直方向の輝度勾配強度fy(x、y)を取得し、当該取得した水平方向の輝度勾配強度と垂直方向の輝度勾配強度を、水平方向の輝度勾配強度と垂直方向の輝度勾配強度の正負及び大小と、量子化した勾配方向と、を対応させた対応テーブルで参照して量子化した勾配方向を出力している。
【0042】
図5は、本実施の形態の画像処理装置の回路構成を示した図である。
画像処理装置21は、半導体装置として、例えば、半導体チップの上に形成されている。
画像処理装置21は、3ラインバッファ25a〜バッファ28aから構成された高解像度画像処理ラインと、中解像度部24b〜バッファ28bから構成された中解像度画像処理ラインと、低解像度部24c〜バッファ28cから構成された低解像度画像処理ラインを備えている。
これらのパイプラインは、並列に配設されており、高中低解像度の画像を同時に並行処理するため、高速に処理することができる。
【0043】
ここで、高解像度画像処理ライン、中解像度画像処理ライン、及び低解像度画像処理ラインの組合せから成る回路は、順次出力される輝度を用いて、複数の解像度における各画素の輝度の勾配方向を解像度別に並行して順次出力する勾配方向出力手段として機能している。
【0044】
そして、高解像度画像処理ライン、中解像度画像処理ライン、及び低解像度画像処理ラインは、それぞれ、複数の解像度ごとに並列して設けられ、後述の画像入力部23から順次出力される輝度から当該解像度の画素における輝度の勾配方向を出力する複数の解像度別勾配方向出力手段として機能している。
画像処理装置21は、クロックに同期して、これらの解像度別勾配方向出力手段を同時に動作させることにより、解像度別の勾配方向を並行して順次出力することができる。
【0045】
以下、画像処理装置21を構成する各回路について説明する。
MRCoHOG特徴量を計算するには、画像を構成する各画素の輝度データが有ればよい。
そのため、本実施の形態では、YUYV形式で形成された画像から、画素のY(輝度)を抽出してこれを輝度データとして画像処理装置21に入力する。
以下では、画像のi行目j列の画素の輝度データや後述の勾配方向データを(i−j)などと対応する画素の行番号と列番号で表すことにする。
【0046】
画像入力部23は、動画カメラから送信されてくるフレームの画像の輝度データを画素順(当該画素が画像で配置されている順序)に基づいて順次出力する回路であり、画像を構成する画素の輝度を当該画素の順番に基づいて順次出力する輝度出力手段として機能する。
なお、本実施の形態では、予めYUYV形式の画像から輝度データYを抽出し、これを画像として画像入力部23に入力するが、画像入力部23、あるいは、勾配方向算出部26a、26b、26cで画素データから輝度成分を抽出するように構成してもよい。
【0047】
画像40は、
図7(a)に示したように、1行目の輝度データ(0−0)、(0−1)、(0−2)、・・・、(0−n)、2行目の輝度データ(1−0)、(1−1)、(1−2)、・・・、・・・、(1−n)、m行目の輝度データ(m−0)、(m−1)、(m−2)、・・・、(m−n)から構成されている。
【0048】
画像入力部23は、動画カメラから送られてくる画像40から輝度データを上の行から右方向に順に読み出し、輝度データ(0−0)、(0−1)、(0−2)、・・・、(0−n)、(1−0)、(1−1)、・・・の順に出力する。
【0049】
図5に戻り、画像入力部23の出力線は、3ラインバッファ25a、中解像度部24b、低解像度部24cに配線されており、画像入力部23が出力した輝度データは、3ラインバッファ25a、中解像度部24b、低解像度部24cのそれぞれに同時に出力される。
なお、
図5では、高解像度の輝度データの配線を太線の矢線で表し、中解像度の輝度データの配線を細線の矢線で表し、低解像度の輝度データの配線を点線で示している。
【0050】
中解像度部24bと低解像度部24cは、それぞれ、画像40の解像度(サイズ)を1/2と1/4に変換する解像度変換回路である。
これらの解像度変換回路により、画像40から解像度が1/2、1/4の画像が生成される。
なお、画像40は、解像度を変換せずにそのまま高解像度画像としても使用される。
【0051】
解像度を変換する(リサイズする)方法には、最近隣接補間、バイリニア補間、バイキュビック補間などがある。
最近隣接補間は、リサイズ前の画素を抜き出してそのまま使う方法であり、バイリニア補間は、対象画素を中心とする2×2の領域を加重平均する方法であり、バイキュビック補間は、対象画素を中心とする4×4の領域を3次関数によって補完する方法である。
画像処理装置21では、計算が単純で、更に、検出精度が高まる(後述)最近隣接補間を採用した。
【0052】
図6は、中解像度部24b、低解像度部24cによる解像度変換処理を説明するための図である。
中解像度部24bは、
図6(a)の画像40bに示したように、画像入力部23が送信してくる画像40の輝度データのうち、斜線で示した1つおきの頻度で輝度データを読み込み、その他の輝度データを読み飛ばすことにより、垂直方向・水平方向の輝度データが1つおきとなった解像度1/2の画像データを生成する。
【0053】
低解像度部24cは、画像40cに示したように、画像入力部23が送信してくる画像40の輝度データのうち、斜線で示した3つおきの頻度で輝度データを読み込み、その他の輝度データを読み飛ばすことにより、垂直方向・水平方向の輝度データが3つおきとなった解像度1/4の画像データを生成する。
【0054】
このような輝度データの間引きを行うことによって、中解像度部24bは、解像度が1/2となった中解像度画像を生成・出力し、低解像度部24cは、解像度が1/4となった低解像度画像を生成・出力する。
最近隣接補間を採用したため、不要なデータを読み飛ばし、必要なデータを拾うという計算負荷の小さい簡単な処理によって解像度を変更することができる。
【0055】
このように画像処理装置21は、輝度出力手段(画像入力部23)から順次出力される輝度を当該解像度に基づく頻度によって選択することにより、当該解像度の輝度を順次出力する。
【0056】
より詳細には、高解像度画像処理ライン(3ラインバッファ25a〜バッファ28a)は、高解像度に基づく頻度(全部選択するので頻度は全部)によって画素(の輝度)を選択して出力し、中解像度画像処理ライン(中解像度部24b〜バッファ28b)では、中解像度部24bが中解像度に基づく頻度(1つおき)によって画素(の輝度)を選択して出力し、低解像度画像処理ライン(低解像度部24c〜バッファ28c)では、低解像度部24cが低解像度に基づく頻度(3つおき)によって画素(の輝度)を選択して出力している。
これらの処理ラインは、これらの輝度データを用いて各解像度における勾配方向を出力する。
【0057】
図6(b)は、最近隣接補間を使用した場合の識別率と、バイリニア補間を用いた場合の識別率の実験結果を示したROC(Receiver Operating Characteristic)曲線図である。
縦軸と横軸は、それぞれ再現率と誤検出率となっており、曲線の下側の面積が大きいほど識別率がよいことを示している。
【0058】
図に示したように、最近隣接補完を用いた場合の識別率は、バイリニア補完を用いた場合の識別率よりも圧倒的によい性能を示している。これは、バイリニア補間と比べてエッジがはっきりとしているため、精度が向上したと考えられる。
このように最近隣接補間は、処理が簡単なのでハードウェア実装に向いているのに加えて、識別率も大いに向上する。
【0059】
図5に戻り、3ラインバッファ25aは、高解像度画像の輝度データを蓄えて、3行分を並列して勾配方向算出部26aに出力する回路である。
勾配方向算出部26aは、3行分の輝度データを用いて高解像度画像における注目画素の輝度勾配方向を表す勾配方向データを出力する回路である。
【0060】
3ラインバッファ25bは、中解像度画像の輝度データを蓄えて、3行分を並列して勾配方向算出部26bに出力する回路である。
勾配方向算出部26bは、3行分の輝度データを用いて中解像度画像における注目画素の輝度勾配方向を表す勾配方向データを出力する回路である。
【0061】
3ラインバッファ25cは、低解像度画像の輝度データを蓄えて、3行分を並列して勾配方向算出部26cに出力する回路である。
勾配方向算出部26cは、3行分の輝度データを用いて低解像度画像における注目画素の輝度勾配方向を表す勾配方向データを出力する回路である。
【0062】
図7は、3ラインバッファ25aと勾配方向算出部26aの詳細な動作を説明するための図である。
図7(a)を用いて先に説明したように、画像入力部23からは、高解像度画像の画像40の輝度データが(0−0)、(0−1)、・・・と出力される。
【0063】
3ラインバッファ25aは、
図7(b)に示したように、これら輝度データを行別に3行分蓄えて、これら3行分を並列して勾配方向算出部26aに出力する。
図7(b)の例では、画像40の2行目の輝度データ(1−0)、(1−1)、(1−2)、・・・と、3行目の輝度データ(2−0)、(2−1)、(2−2)、・・・と、4行目の輝度データ(2−0)、(2−1)、(2−2)、・・・を画素の列を揃えながら並行して勾配方向算出部26aに出力している場合を表している。
【0064】
勾配方向算出部26aは、並列して出力される3行分の輝度データの入力を受け付けて、量子化された輝度勾配方向を出力する。
図に示したように、勾配方向算出部26aは、3行3列の記憶素子の配列を備えており、3ラインバッファ25aの出力に同期して3行3列分の輝度データを取り込んで、これら輝度データによる輝度を読み取る。
【0065】
図に示したように、勾配方向算出部26は、3行3列の輝度データのうち、中央の輝度データを注目画素に設定する。図の例では、太線の矩形で囲った輝度データ(2−1)が注目画素の輝度データとなる。
【0066】
そして、勾配方向算出部26aは、注目画素と水平方向に隣接する輝度データ(2−2)、(2−0)の輝度の差分から水平方向の輝度勾配強度fx(x、y)を算出し、注目画素と垂直方向に隣接する輝度データ(1−1)、(3−1)の輝度の差分から垂直方向の輝度勾配強度fy(x、y)を算出する。
【0067】
勾配方向算出部26aは、fx(x、y)とfy(x、y)を求めると、これを
図4の式(2)に代入してm(x、y)を求め、m(x、y)が閾値に達していない場合は、所定の処理を行う。
m(x、y)が閾値に達している場合は、fx(x、y)、fy(x、y)を対応テーブルで参照して、当該画素の量子化した輝度勾配方向を表す勾配方向データ(2−1)を出力する。
このように、勾配方向データは、輝度データと同様に画素に対応して生成される。
【0068】
次のクロックでは、輝度データの列が1つ移動し、勾配方向算出部26a2に示したように、次の輝度データ(2−2)が注目画素となって、勾配方向データ(2−2)が出力される。
このように、勾配方向算出部26aは、クロックごとに勾配方向データを順次出力する。
また、勾配方向算出部26aは、最後の列に達すると、行が1つ分進み、次の行の輝度データを注目画素とする勾配方向データを出力する。
【0069】
同様に、3ラインバッファ25bと勾配方向算出部26bは、中解像度画像の勾配方向データを出力し、3ラインバッファ25cと勾配方向算出部26cは、低解像度画像の勾配方向データを出力する。
【0070】
このように、勾配方向算出部26aに配設された3行3列の記憶素子の配列には、注目画素の位置と、これに隣接する隣接画素の位置が対応づけられており、この位置の対応を用いて、クロックに従って順次送られてくる輝度データにおいて、注目画素の輝度データと隣接画素の輝度データを順次特定していく。
これら注目画素の位置や隣接画素の位置を通過する順序は、画像入力部23が輝度データを出力した順序によって定まる。
【0071】
これは、バケツリレー式に順次送られてくる輝度データの経路上に、注目画素用の窓と隣接画素用の窓を設け、これらの窓で観察することにより、注目画素の輝度データと隣接画素の輝度データを特定しているのと論理的に同じである。
【0072】
画像処理装置21では、エッジの処理や回路構成が簡単となるため、輝度データを3行分バッファリングして、これを3行3列の配列に順次送り出す構成としたが、これは一例であって、画像入力部23が出力した順序に基づいて注目画素と隣接画素の輝度データを特定する各種の変形が可能である。
【0073】
同様に、勾配方向算出部26b、26cは、それぞれ、中解像度部24b、低解像度部24cが画像40をダウンサンプリングして輝度データを出力した順序に基づいて注目画素と隣接画素の輝度データを特定している。
【0074】
このように、解像度別勾配方向出力手段は、当該解像度の輝度の出力順序に基づいて注目画素の水平方向、及び垂直方向に隣接する隣接画素の輝度を特定し、当該特定した隣接画素の輝度を用いて注目画素の勾配方向を出力する。
そして、解像度別勾配方向出力手段は、隣接画素の位置が対応づけられた配列に、当該解像度の輝度の出力順序に基づいて輝度を配置することにより、隣接画素の輝度を特定している。
【0075】
また、当該配列は、注目画素の属する画素行と、当該画素行と垂直方向に隣接する2つの画素行の3つの画素行に対応する3つの配列から構成されており、解像度別勾配方向出力手段は、3つの画素行の輝度を、それぞれ対応する3つの配列に配置し、当該輝度が配置された位置によって隣接画素の輝度を特定している。
【0076】
図5に戻り、縦方向2倍部27bと縦方向4倍部27cは、それぞれ、中解像度画像と低解像度画像について、垂直方向の勾配方向データを垂直方向に2倍、4倍に延ばす回路である。
この処理は、後に共起行列作成部30aなどで共起を読み取る際のタイミングを合わせるためのものである。
【0077】
図8は、垂直方向のデータ延ばし処理を説明するための図である。
データ51は、データ延ばし前の勾配方向データの構成を示している。各升目が各勾配方向データを表しており、これらが対応する画素の順に並べられている。
データ51の各行を複製して、複製元の行と隣接させて配置すると、垂直方向に2倍に伸ばしたデータ52と、4倍に伸ばしたデータ53が得られる。
【0078】
この手法により、縦方向2倍部27bは、勾配方向算出部26bから出力された中解像度画像の勾配方向データを行ごとに複製して縦方向(垂直方向)に2倍に延ばす。
また、縦方向4倍部27cは、勾配方向算出部26cから出力された低解像度画像の勾配方向データを行ごとに複製して縦方向に4倍に延ばす。
【0079】
図5に戻り、バッファ28a、28b、28cは、それぞれ、勾配方向算出部26a、縦方向2倍部27b、縦方向4倍部27cから出力される高解像度画像の勾配方向データ、中解像度画像の勾配方向データ、低解像度画像の勾配方向データを一時的に記憶しておくバッファである。
【0080】
タイミングコントローラ29は、高解像度画像、中解像度画像、低解像度画像の勾配方向データを共起行列作成部30a、30b、30cに送出するタイミングを制御する制御回路である。
タイミングコントローラ29は、これら各解像度画像の勾配方向データがバッファ28a、28b、28cに揃うまで待機し、これらが揃ったら出力する。
これにより、解像度変更によってずれてしまった各解像度画像ごとの出力タイミングを揃えることができる。
【0081】
高解像度画像の勾配方向データは図の太線、中解像度画像の勾配方向データは図の細線、低解像度画像の勾配方向データは図の点線、といったように、各解像度画像の勾配方向データは、それぞれ異なる配線から出力される。
これらの配線は、それぞれ、共起行列作成部30a、30b、30cと接続しており、これによって、解像度画像別の勾配方向データが共起行列作成部30a、30b、30cに送信される。
【0082】
更に、タイミングコントローラ29は、共起行列作成部30a、30b、30cが共起を取るタイミングを合わせるために、中解像度画像と低解像度画像の勾配方向データを、それぞれ水平(横)方向に2倍、4倍に延ばす。
【0083】
図9は、水平方向のデータ延ばし処理を説明するための図である。
データ列55、56、57は、それぞれ、タイミングコントローラ29が、高解像度画像、中解像度画像、低解像度画像の勾配方向データを出力するタイミングを表している。
【0084】
例えば、タイミングコントローラ29は、データ列55に示されるように、高解像度画像の勾配方向データに対して、1番目のデータから順次30番目のデータまで1回ずつ出力する。
これに対して、中解像度画像の勾配方向データに対しては、データ列56に示されるように、1番目のデータを1回、2番目のデータから15番目のデータをそれぞれ2回ずつ、16番目のデータを1回、高解像度の出力タイミングに合わせて出力する。
また、低像度画像の勾配方向データに対しては、データ列57に示されるように、1番目のデータを3回、2番目のデータから7番目のデータを4回ずつ、8番目のデータを3回、高解像度の出力タイミングに合わせて出力する。
なお、データ列55とデータ56の最初と最後における出力回数がそれぞれ2回ずつ、4回ずつでないのは、データ列55による幅と同じ幅に調整するためである。
これにより、中解像度画像、低解像度画像の勾配方向データが水平方向に、それぞれ2倍、4倍に伸ばされる。
【0085】
図5に戻り、共起行列作成部30a、30b、30cは、それぞれ、タイミングコントローラ29から出力された勾配方向データを用いて共起による投票を行って共起行列を作成する回路である。
共起行列作成部30a、30b、30cは、それぞれ、高解像度画像、中解像度画像、低解像度画像の画素を注目画素とする共起行列を作成する。
ヒストグラム作成部31は、共起行列作成部30a、30b、30cから出力される共起行列からMRCoHOG特徴量を作成する回路である。
【0086】
なお、画像処理装置21をICチップ化する場合には、ヒストグラム作成部31を画像処理装置21に含めずに外部の回路とし、ICチップとヒストグラム作成部31を接続するように構成してもよい。
これにより、共起行列作成部30a、30b、30cから出力される共起行列を選択するなど、より柔軟な運用が可能となり、汎用性が向上する。
【0087】
図10は、共起行列作成部30aが共起行列を計算する仕組みを説明するための図である。
共起行列作成部30aは、タイミングコントローラ29から送信されてくる勾配データを解像度別に2行に渡って記憶する、高解像度画像用の2ラインバッファ61a、中解像度画像用の2ラインバッファ61b、低解像度画像用の2ラインバッファ61cを備えている。
【0088】
2ラインバッファ61a、61b、61cの右側には、それぞれ、各2ラインバッファ61a、61b、61cに記憶された勾配方向データの配置を示している。
勾配方向データの位置を示す符号は、
図3(c)の位置の符号に対応させてある(勾配方向は対応していない)。また、注目画素に対応する勾配方向データを太線の矩形で囲み、投票のためにこれと組合せる相手の画素の勾配方向データを○で囲んである。
【0089】
図に示したように、2ラインバッファ61a、61b、61cには、それぞれ、高解像度画像、中解像度画像、低解像度画像の勾配方向データが2行3列分配置される。
なお、画像入力部23が輝度データを出力した順に配置するため、2ラインバッファ61a、61b、61cでの配置は、
図3(c)と左右が逆になっている。
【0090】
共起行列記憶部62は、共起による投票を受け付けて共起行列の度数(票数)をインクリメントしていくことにより、注目画素125に対する共起行列を作成する回路である。
まず、共起行列作成部30aは、注目画素125の勾配方向データと画素1a〜1dの勾配方向データとの組合せに基づいて共起行列記憶部62に投票する。
【0091】
更に、共起行列作成部30aは、注目画素125の勾配方向データと、画素2a〜2dの勾配方向データとの組合せに基づいて共起行列記憶部62に投票し、注目画素125の勾配方向データと、画素3a〜3dの勾配方向データとの組合せに基づいて共起行列記憶部62に投票する。
【0092】
共起行列作成部30aは、当該注目画素125の投票が完了すると、ヒストグラム作成部31に出力して、共起行列を投票数0にリセットし、2ラインバッファ61a、61b、61cに記憶している勾配方向データの列を1つ進める。
これにより、共起行列作成部30aは、画素1aに対応する勾配方向データを注目画素125の位置に配置し、これを用いた投票を共起行列記憶部62に対して行う。
【0093】
共起行列作成部30aは、以上の動作を繰り返すことにより、高解像度画像の各画素に対する共起行列を共起行列記憶部62で完成させてヒストグラム作成部31に出力する。
出力された共起行列によるヒストグラムは、ヒストグラム作成部31にて連結され、高解像度画像の画素を注目画素とした場合のMRCoHOG特徴量となる。
【0094】
図5に戻り、共起行列作成部30b、30cも共起行列作成部30aと同様にして、それぞれ、中解像度画像の画素を注目画素とした場合の共起行列と、低解像度画像の画素を注目画素とした場合の共起行列を出力する。
【0095】
これにより、中解像度画像の画素を注目画素とした場合のMRCoHOG特徴量と、低解像度画像の画素を注目画素とした場合のMRCoHOG特徴量が得られ、ヒストグラム作成部31は、高中低画像のこれら3つのMRCoHOG特徴量を連結して、MRCoHOG特徴量を完成させる。
【0096】
画像処理装置21は、以上のように構成されており、各回路は、クロックに同期して同時に動作し、流れ作業にて順次処理を行う。
このようにして動画カメラから出力される画像をリアルタイムで処理することができる。
【0097】
このように、共起行列作成部30a、30b、30cは、順次出力される解像度別の勾配方向を順次組合せることにより、異なる解像度間における勾配方向の共起に基づく共起行列を作成する共起行列作成手段と、当該作成した共起行列を当該画像の画像特徴量として出力する共起行列出力手段として機能している。
【0098】
また、共起行列作成部30a、30b、30cは、勾配方向データが出力され順にこれらを2ラインバッファ61a、61b、61cに配置することにより、共起をとる組合せを特定するため、勾配方向出力手段から順次出力される勾配方向の解像度別出力順序に基づいて、注目画素の勾配方向と、当該注目画素と組合せる画素の勾配方向を順次特定し、当該特定した勾配方向の組合せに基づいて共起行列に順次投票することにより共起行列を作成している。
【0099】
また、2ラインバッファ61a、61b、61cは、共起対象となる勾配方向データを特定する配列として機能しているため、共起行列作成部30a、30b、30cは、注目画素と、当該注目画素と組合せる画素の位置が対応づけられると共に解像度別に設けられた(分けられた)配列に、解像度別出力順序に基づいて勾配方向を解像度別に配置することにより、共起対象として組合せる勾配方向を特定している。
【0100】
そして、当該配列は、それぞれの解像度について垂直方向に隣接する2つの画素行に対応する6つの配列から構成され、(高解像度画像用のバッファ2つ、中解像度画像用のバッファ2つ、低解像度画像用のバッファ2つの計6つ)、共起行列作成部30a、30b、30cは、それぞれの解像度の2つの画素行の勾配方向を、それぞれ対応する2つの配列に配置し、当該勾配方向が配置された位置によって組合せる勾配方向を特定している。
【0101】
図11は、画像処理装置21が行う画像処理手順を説明するためのフローチャートである。
まず、画像入力部23が画像40の輝度データを出力し、中解像度部24bと低解像度部24cが、中解像度、低解像度に解像度を変換した輝度データを出力する(ステップ5)。
【0102】
また、3ラインバッファ25a、25b、25cが、それぞれ、高解像度画像、中解像度画像、低解像度画像の輝度データを3行分バッファリングする(ステップ10)。
また、勾配方向算出部26a、26b、26cが、それぞれ、高解像度画像、中解像度画像、低解像度画像の画素の勾配方向を算出し、勾配方向データを出力する(ステップ15)。
なお、ステップ5、10、15の各処理は並行して同時に行われる。
【0103】
次に、縦方向2倍部27b、縦方向4倍部27cが、それぞれ、中解像度画像と低解像度画像の勾配方向データを垂直方向に2倍、4倍に延ばす(ステップ20)。
高解像度画像の勾配方向データ、2倍に垂直に伸ばされた中解像度画像の勾配方向データ、及び4倍に垂直に伸ばされた低解像度画像の勾配方向データは、それぞれ、バッファ28a、28b、28cにバッファリングされる。
【0104】
次に、タイミングコントローラ29が、タイミングを揃えて各解像度の勾配方向データを出力する。
タイミングコントローラ29は、この際に、中解像度画像と低解像度画像の勾配方向データを水平方向に2倍、4倍に伸ばして出力する(ステップ25)。
【0105】
共起行列作成部30a、30b、30cは、タイミングコントローラ29から出力された各解像度の勾配方向データを用いて、共起行列の要素を計算し、共起行列を作成する(ステップ30)。
更に、ヒストグラム作成部31が、作成された共起行列からヒストグラムを作成し、これをMRCoHOG特徴量として出力する(ステップ35)。
以上、各回路の動作を個別に説明したが、各回路は、クロックに同期して一斉に動作しており、左から流れてきたデータを順次(逐次)処理して右に流す流れ作業を同時に行っている。
【0106】
図12(a)は、画像処理装置21を用いて半導体装置を構成した例を示した図である。
半導体装置71は、例えば、ICチップによって構成されており、プロセッサ、RAM、MRCoHOGアクセラレータ72、アフィンアクセラレータ、ヒストグラムアクセラレータ、ビデオ入力インターフェース73、ビデオ出力インターフェース74、入出力インターフェース75などが内部に形成されている。
【0107】
MRCoHOGアクセラレータ72は、画像処理装置21の回路構成が組み込まれており、画像から共起行列を生成して出力する。あるいは、ヒストグラムの作成までやってMRCoHOG特徴量を抽出するように構成してもよい。
【0108】
半導体装置71は、ビデオ入力インターフェース73から動画データの入力を受け付けて、MRCoHOGアクセラレータ72などにより各フレーム画像のMRCoHOG特徴量を抽出し、これを用いて対象の画像認識をプロセッサで行うことができる。
あるいは、ビデオ出力インターフェース74から動画データを出力すると共にMRCoHOG特徴量を入出力インターフェース75から出力して、外部機器により対象の画像認識を行ってもよい。
【0109】
図12(b)は、半導体装置71をビデオキャプチャボードに実装し、これをコンピュータに装備して画像認識装置を構成した例を示した図である。
画像認識装置80は、CPU(Central Processing Unit)81、ROM(Read Only Memory)82、RAM(Random Access Memory)83、カメラ84、記憶装置85、ビデオキャプチャボード86、入力装置87、出力装置88などから構成されている。
【0110】
CPU81は、記憶装置85に記憶された画像認識プログラムに従って画像認識処理を行うほか、画像認識装置80の各部の制御などを行う。
より詳細には、CPU81は、ビデオキャプチャボード86から入力される画像と、当該画像のMRCoHOG特徴量を用いて対象を画像認識する。
【0111】
ROM82は、CPU81が画像認識装置80を動作させるための基本的なプログラムやパラメータなどを記憶した読み取り専用のメモリである。
RAM83は、CPU81が上記処理を行うためのワーキングメモリを提供する読み書きが可能なメモリである。
画像やMRCoHOG特徴量は、RAM83に展開されてCPU81により利用される。
【0112】
カメラ84は、動画撮影カメラであって、被写体を動画撮影してその映像をビデオキャプチャボード86に出力する。映像は、連続するフレームの画像によって構成されている。
ビデオキャプチャボード86は、映像を構成する画像の各々について、MRCoHOG特徴量を抽出し、これを画像データに対応させて出力する。
【0113】
記憶装置85は、例えば、ハードディスクや半導体メモリなどの記憶媒体を用いた記憶装置であり、CPU81に上記の画像認識処理を行わせるための画像認識プログラムなどを記憶している。
また、記憶装置85は、撮影した動画データを記憶するデータ記憶部も備えている。
【0114】
入力装置87は、画像認識装置80に各種の情報を入力する装置であり、ユーザが画像認識装置80を操作するための操作ボタンなどの入力デバイスで構成されている。
出力装置88は、画像認識装置80が各種の情報を出力する装置であり、例えば、操作画面や、撮影中・撮影済みの動画を表示する液晶ディスプレイなどの出力デバイスで構成されている。
【0115】
図12(c)は、画像認識装置80が行うMRCoHOG特徴量を用いた画像認識処理の方法を説明するための図である。
まず、MRCoHOG特徴量の度数(M個あるとする)を成分とするベクトルφ(x)を考える。ここで、xは、画像を表すベクトルであり、x=(第1番目の画素の輝度、第2番目の画素の輝度、・・・)である。
なお、ベクトルは太字などで表すが、文字化け防止のため、以下では、通常の文字で表す。
【0116】
この図は、MRCoHOG特徴量空間を表しており、画像のMRCoHOG特徴量は、M次元空間のベクトルφ(x)に写像される。
なお、図では簡単化のためMRCoHOG特徴量を2次元空間で表してある。
一方、Fは、対象画像の学習によって得た重みベクトルであり、多数の対象画像のMRCoHOG特徴量を平均化したベクトルである。
【0117】
画像が学習した画像に類似する場合、φ(x)は、ベクトル109aのようにFの周辺に分布し、類似しない場合は、ベクトル109b、109cのようにFとは異なる方向に分布する。
Fとφ(x)は、規格化されており、Fとφ(x)の内積で定義される相関係数は、画像が学習画像に類似するほど1に近づき、類似程度が低いほど−1に近づく。
このように、類似判断の対象となる画像をMRCoHOG特徴量空間に写像することにより、学習画像に類似している画像と類似していない画像を輝度勾配分布により分離することができる。
これによって対象を画像認識することができる。
このように画像認識装置80は、画像処理装置21から出力されるヒストグラムのベクトルφ(x)を、基準となる画像のヒストグラムのベクトルFと対比することにより画像に写っている対象を認識する認識手段を備えている。
【0118】
次に、画像認識装置80を移動体に搭載する場合を例示する。
半導体装置71は、リアルタイムで画像処理を行うことができるため、リアルタイム処理の必要な移動体に搭載するのに適している。
例えば、移動体が車両の場合は、カメラ84を車両前方に設置し、車両の前景を撮影する。
これにより、車両は、カメラ84の映像から前方を走行する他車両を追跡することにより、当該他車両に追随して所謂コンボイ走行を行ったり、前方を移動する車両や歩行者の追跡軌跡から衝突の危険を判断した場合には、ブレーキを作動させたり、走行方向を変えて回避動作を行ったりなどする。このように、画像認識装置80は、自動運転技術やその他の技術に応用することができる。
【0119】
また、移動体がロボットの場合は、ロボットの目として利用し、例えば、家庭でサービスを提供したり(例えば、荷物を持って主人の後を追跡する)、動いている対象を追跡しながらロボットアームでこれを把持したり、家畜を追跡しながら誘導したりなど、民生分野、工業分野、農業分野など、産業の各分野で用いることができる。
このように、本実施の形態では、画像認識装置80を用いて対象を検出する検出手段と、検出した対象に対して所定の位置に移動する移動手段と、を備えた移動体装置を提供することができる。
【0120】
MRCoHOGアルゴリズムをICチップ化したり、FPGA(field−programmable gate array)ボードに移植したりするためには、高速処理が可能で、かつ精度を落とさずに最適化設計しなければならない。
画像処理装置21は、MRCoHOG特徴量の複数解像度画像の生成処理の補間方法に、高速かつ、物体境界のエッジがはっきり出る最近隣接補間(最近傍補間)を採用した。生成する画像サイズごとに、メモリの間引き間隔を設定し、間引くことで最近隣接補間による画像を生成する。
【0121】
画像処理装置21は、学生が研究課題として設計、製作したが、十分にリアルタイム処理できる性能を実現することができた。
そのため、資本や技術の蓄積のある企業が制作した場合、更に高速化を図ることができると期待され、これによりコンピュータの計算資源を他の処理に振り分けることができる。