(57)【特許請求の範囲】
【請求項１】
ウィンドウによるスキャンを２回以上行い、フレーム画像の中から、認識対象を構成する複数の構成要素を包含する局所領域をサーチする画像認識装置であって、
各スキャンは、前記フレーム画像の複数の位置のそれぞれにウィンドウを重ね合わせて、各重ね合わせ位置において、ウィンドウが認識対象の個々の構成要素を包含するかどうかを判定することでなされ、
前記ウィンドウによるスキャンを２回以上行うにあたって、個々の構成要素を包含し得るものの、前記認識対象の全体を包含し得ない大きさに、ウィンドウの大きさを定めるウィンドウ設定部と、
前記フレーム画像の複数の位置のそれぞれにウィンドウを重ね合わせる際、当該ウィンドウの横幅及び縦幅に依拠した次元数の特徴量を算出して、算出した特徴量に基づき、各重ね合わせ位置における構成要素の包含の有無を判定する特徴量識別部と、
前記認識対象を構成する構成要素が満たすべき位置的関係の基準として、最大許容距離、最小許容距離を示す構成情報を記憶する構成情報記憶部と、
２回以上のスキャンにより、ウィンドウが認識対象を構成する複数の構成要素のうち、基本となるもの、及び、補助的なものを包含した場合、基本となる構成要素を包含した際のウィンドウの重ね合わせ位置と、補助的な構成要素を包含した際のウィンドウの重ね合わせ位置との位置的関係が、構成情報における位置的関係の基準を満たすかどうかの判定を行う客体認識部とを備え、
前記位置的関係を満たすかどうかの判定は、補助的な構成要素を包含した際のウィンドウの中心座標と、基本となる構成要素を包含した際のウィンドウの中心座標との差分を、前記構成情報に示される最小許容距離、最大許容距離のそれぞれと比較することでなされる
ことを特徴とする画像認識装置。
【請求項２】
前記画像認識装置は、複数の画像供給部と、複数の特徴量計算部とを備え、
複数の画像供給部は、フレーム画像における複数の部分領域のそれぞれを特徴量計算部のそれぞれに供給し、
前記複数の特徴量計算部のそれぞれは、画像供給部から供給された部分領域に含まれる画素セルについて勾配強度及び勾配方向を算出することで、当該部分領域に対応するセルヒストグラムを算出し、
前記複数の特徴量識別部のそれぞれは、１の特徴量識別部に対し、多の特徴量計算部を接続するという１対多の形態で接続されており、前記複数の特徴量計算部のそれぞれにより算出されたセルヒストグラムを、前記１対多の形態の接続を介して内部のメモリに取り込み、マージすることで、1つのウィンドウに対応するセルヒストグラムを取得し、
前記ウィンドウの横幅及び縦幅に依拠した次元数の特徴量は、ブロックによるスキャンにより算出され、当該ブロックによるスキャンは、
前記ウィンドウに対応するセルヒストグラムの複数の位置に、ブロックを重ね合わせて(1)、
前記セルヒストグラム含まれる勾配強度及び勾配方向のうち、前記重ね合わせ位置でブロックに囲まれることになるものに正規化を施し(2)、
ブロックの重ね合わせ位置を縦方向又は横方向にシフトする(3)
という手順を繰り返すことでなされる、請求項１に記載の画像認識装置。
【請求項３】
前記画像認識装置は、
複数のＳＲＡＭから構成される画像メモリを備え、各ＳＲＡＭは、フレーム画像を分割することで得られた画像セグメントを格納し、
前記複数の画像供給部は、前記ＳＲＡＭに対してアクセス要求を発することで、画像セグメントを構成する部分領域の画素セルを読み出す
ことを特徴とする請求項２に記載の画像認識装置。
【請求項４】
前記ウィンドウの横幅をWin＿W、縦幅をWin＿Hとし、
複数の画像特徴量計算部による計算対象である画素セルの横画素数をCellwidth、縦画素数をCellheightとし、
ブロックの横方向に存在する画素セルの数をBlockwidth、縦方向に存在する画素セルの数をBlockheightとし、
特徴量識別部の組合せにより得られるセルヒストグラムの横方向の勾配度数の数をHOGwidth、縦方向の勾配度数の数をHOGheightとし、セルヒストグラムに示される勾配方向をGとした場合、ウィンドウの横幅W、縦幅Hに依拠した特徴量の次元数D(W,H)は、以下の数１の式により算出される
【数１】
0006524475.tif 000002
ことを特徴とする請求項３に記載の画像認識装置。
【請求項５】
前記画像認識装置は、学習データを含む認識辞書を有しており、前記認識辞書における前記学習データは、構成要素を構成するとされた複数の特徴量、及び／又は、構成要素を構成しないとされた複数の特徴量を含み、
前記特徴量識別部は、ウィンドウの重ね合わせ位置で算出されたD(W,H)次元の特徴量に対して、分離面を適用することで、重ね合わせ位置におけるウィンドウが、構成要素を包含するかどうかの判断結果を下し、
前記分離面は、D(W,H)次元の特徴量空間において、学習データにより構成要素を表すとされる特徴量と、構成要素を表さないとされる特徴量とを分離する
ことを特徴とする請求項４に記載の画像認識装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像認識の技術分野に属する。
【背景技術】
【０００２】
サポートベクタマシン等による画像認識では、画像の部分領域から算出された特徴量と、予め作成された学習データとを決定関数に適用することで、部分領域内に認識対象が含まれているかどうかの判断を行う。
ここで学習データは、認識対象を表すか、表さないかを示す正負の符号が付された「符号付き特徴量」である。正の符号が付された特徴量は「正例」と呼ばれ、負の符号が付された特徴量は「負例」と呼ばれる。対照的に、部分領域から新たに抽出された特徴量は、かかる符号が存在しない「符号無し特徴量」である。更に、決定関数は、特徴量空間において、正例と、負例とを仕切る超分離平面に応じて決定された定数項、係数をもつ。画像認識では、部分領域から抽出された新たな特徴量、及び、学習データを決定関数に適用して決定関数による演算を実行する。そうすると、関数からの戻り値として正負の符号が返される。画像認識では、この正負の符号に従い、対象となる部分領域が、認識対象を表すか表さないかの結論を下す。
【０００３】
特徴量算出の対象となるべき部分領域の場所を動的に変化させるため、従来の画像認識ではウィンドウによる画像スキャンを実行する。具体的にいうと、従来の画像認識では、ウィンドウによる画像スキャンを実行し、画像の様々な位置にウィンドウを重ね合わせる。そしてそれぞれの重ね合わせ位置で、上記の特徴量の算出と、決定関数による演算とを行う。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開2008-97607号公報
【特許文献２】国際公開WO2012/144195号公報
【特許文献３】特表2013-533998号公報
【特許文献４】特開2014-10544号公報
【特許文献５】特開2009-104666号公報
【特許文献６】特開2011-165170号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところでウィンドウの形状や縦幅、横幅は、算出されるべき特徴量の次元数の大小を左右し、認識精度を高める重要なファクターである。
ウィンドウを小さくすると、認識対象を構成する構成要素と似通った絵柄が画像中に出現することで誤認識が発生する。その原因は以下の通りである。即ち、ウィンドウが小さいと、ウィンドウで囲まれる画素群から算出される特徴量の次元数が小さくなるので、認識対象を構成する構成要素について算出される特徴量と、似通った絵柄部分について算出される特徴量とが大体同じものになってしまう。例えば、人物像の顔の近辺に、円形の窓や人の肖像を写したポスターが存在する場合、これら窓やポスター部分から算出される特徴量は、人間の顔から算出される特徴量と同じような値になる。そうすると、これら窓やポスター部分を、人物像の顔として認識してしまうことが往々発生する。
【０００６】
逆にウィンドウを大きくすると、次元数が高くなって認識精度が向上するが、ウィンドウで囲まれる範囲における余白部分(ウィンドウに囲まれる範囲であって、認識対象を表さない部分)も大きくなる。認識にあたって、無駄な余白部分についてまで、特徴量を算
出することになるから、これでは、計算効率の悪化を招く。
本発明の目的は、認識対象の一部と似通った絵柄が、画像中に存在したとしても、認識率の低下を招くことがない画像認識装置を提供することである。
【課題を解決するための手段】
【０００７】
上記課題を解決することができる画像認識装置は、認識対象を構成する複数の構成要素のそれぞれが包含されるよう、ウィンドウの形状を設定した上で、設定されたウィンドウによるスキャンを実行する構成情報設定部と、
ウィンドウスキャンにより各構成要素を包含した局所領域が複数発見された場合、基本となる構成要素を包含した局所領域と、補助的な構成要素を包含した局所領域との位置的関係に基づき、フレーム画像に認識対象が含まれているかどうかの判定を行う客体認識部とを備える。
【発明の効果】
【０００８】
上記課題解決手段を具備した画像認識装置(以下、本発明と呼ぶ)では、認識対象を構成する複数の構成要素のそれぞれを対象としたサーチを行い、構成要素を包含していると考えられる局所領域が複数発見されれば、それらの局所領域の全体的な位置関係によって認識対象の有無について総合判断を行う。たとえ構成要素の1つと似通った絵柄の領域が存在したとしても、他の構成要素と似通った絵柄の構成要素と似通った絵柄の領域が近くに存在しない限り、その似通った絵柄の領域は、認識対象として認識されることがない。似通った絵柄が存在することによる誤認識の発生を回避することができるので、ノイズ耐性を高くすることができる。
【０００９】
本発明に近い技術として、Bag of Feature, Visual word, Bag of key Pointという先行技術が存在する。
Bag of Featureでは、画像からVisual Codeと呼ばれる特徴量を抽出し、Visual Vocabularyを学習する。Bag of Featureでは、様々な認識対象が複数の構成要素に分割されており、各構成要素についての特徴が、Visual Vocabularyに記載されている。この各構成要素について特徴を、Visual Wordという。
【００１０】
最後に、Visual Wordに合致するVisual Codeの個数を、Visual Word毎に集計することで、個々のVisual Wordの出現頻度(frequency)を算出する。以上の処理により、高い出現頻度を有することになったVisual Wordの組合せから、画像に表れている認識対象の類型を定める。
Bag of Featureでは、画像から抽出されたVisual Codeが、どのVisual Wordを表しているかをVisual Word毎に集計せねばならないから、相応の認識精度を維持するには、学習の過程で、多くのVisual Wordが記載されたVisual Vocabularyを取得せねばならない。つまり、Bag of Featureでは、多くの構成要素についてVisual Wordを生成して、画像から抽出されたVisual Codeと比較せねばならず、多くの構成要素を対象とした学習処理が必要になるという問題がある。
【００１１】
これに対して本発明では、各構成要素を包含するものとして発見された2以上の局所領域の位置関係により、認識対象が画像に存在するかどうかの総合判断を下すから、たとえ所望の特徴量をもつ局所領域が多く発見されたとしても、他の局所領域との位置関係がありえないものについては、判断から除外されることになる。よって、認識対象の構成要素の数が少なくとも、認識精度を維持することができる。
【００１２】
以下、先行技術文献欄に記載された複数の特許文献(特許文献１〜６)と比較した上での効果を述べる。
特許文献１(特開2008-97607号公報)は、入力イメージを表す特徴ベクトルを生成し、分類器の出力の組合せに基づいて、入力イメージを分類するイメージ自動分類方法を開示している。特許文献１に記載された分類装置は、K平均最近分類器１６０、１６２、１６４、バイナリ知覚リニア分類器１６６、BPNN分類器１６８という複数種別の識別器から構成され、複数種別の識別器が、複数種別の特徴量を基にイメージ分析を行う。
【００１３】
しかしながら、識別器の種別を増やすことで認識精度の向上を図っているので、特許文献１の構成では複数種別の特徴量を算出するための実装コストが多大になるという問題がある。これに対して本発明では、構成要素を包含するとされた局所領域の位置関係に応じて認識結果を下すため、特徴量の種別に拘らず、たとえ特徴量の種別が1つであったとしても、相応の認識精度を維持することができる。
【００１４】
特許文献２(WO2012/144195号公報)は、人物検出(Ｓ１０１)、及び、顔検出(Ｓ１０２)を行い、顔領域の情報、人物領域の情報を用いた処理を実行する撮像装置を開示する。特許文献２の構成は、カメラの焦点検出のために顔検出、人物検出を行い、これらの検出領域を統合するというものなので、顔と似通った絵柄の部分領域が存在すれば、かかる部分領域を、人物全体の領域と統合してその統合領域を焦点検出領域と選択してしまう可能性がある。対照的に本発明では、ウィンドウのスキャンを行うことで、複数構成要素のそれぞれを包含している複数の局所領域を検出して、複数局所領域の全体的な位置関係に応じて、認識結果を下すから、顔と似通った絵柄の部分領域が存在したとしても、認識率が下がることはない。
【００１５】
特許文献３(特表2013-533998号公報)は、全体的な自己類似記述子を、ウィンドウを対象とした画像認識の基礎とする画像プロセッサを開示している。しかし特許文献３の構成では、ウィンドウ内の走査範囲を自己類似記述子で定義することによりオブジェクトの存否を判断しているから、認識精度が自己類似記述子の記述精度に左右される。本発明では、ウィンドウのスキャンを行うことで、複数構成要素のそれぞれを包含している複数の局所領域を検出して、複数局所領域の全体的な位置関係に応じて、認識結果を下すから、自己類似記述子等の記述精度に認識精度が左右されることはない。
【００１６】
特許文献４(特開2014-10544号公報)は、各セルの輝度勾配方向ヒストグラムを求めて認識を行う装置を開示している。特許文献４では、３つ以上の輝度勾配方向ヒストグラムの組合せにより認識対象の認識を行っているが、人の顔と似通った絵柄の領域が存在していて、それに示される輝度勾配の分布が人間の顔のものと酷似していると、３以上の輝度勾配方向ヒストグラムに示される度数分布が大体同じになり、顔／非顔の認識が正しく行えない可能性がある。本発明では、顔にあたる局所領域と、胴体部にあたる局所領域との全体的な位置関係に応じて、認識結果を下すから、似通った絵柄の領域があったとしても、かかる絵柄を、認識対象の一部として認識することはない。
【００１７】
特許文献５(特開2009-104666号公報)は、階層型構成要素ベースの物体認識を開示している。
特許文献５のポーズパラメータの解析は、物体部分モデルが正しく抽出されることが前提になる。似通った絵柄の領域があると、その領域を物体部分モデルとして抽出して、ポーズパラメータを解析してしまい、現実にはありえない客体を認識してしまう可能性がある。本発明では、ウィンドウのスキャンを行うことで、複数構成要素のそれぞれを包含している複数の局所領域を検出して、複数局所領域の全体的な位置関係に応じて、認識結果を下すから、似通った絵柄の領域があったとしても、かかる絵柄を、認識対象の一部として認識することはない。
【００１８】
特許文献６(特開2011-165170号公報)は、ウィンドウ画像に、識別モデルのそれぞれに対応した部分領域を設定し、高輝度領域が部分領域に含まれるかどうかに応じて部分領域にスコアを付与して検出対象の識別を行う対象物検出装置を開示する。特許文献６では、高輝度画素の存在に応じて、部分領域にスコアを付しているので、認識対象と似通った絵柄が近くに存在する場合、その似通った絵柄に高いスコアを付与してしまう可能性は否定できない。対照的に本発明では、ウィンドウのスキャンを行うことで、複数構成要素のそれぞれを包含している複数の局所領域を検出して、複数局所領域の全体的な位置関係に応じて、認識結果を下すから、似通った絵柄の領域があったとしても、かかる絵柄を、認識対象の一部として認識することはない。
【図面の簡単な説明】
【００１９】
【図１】（ａ）は、画像認識装置１００２が使用されるシステムの構成を示す図である。図１（ｂ）は、画像認識装置１００２と、カメラ装置１００１、ホスト装置１００３との入出力関係を示す。
【図２】（ａ）は、カメラ装置１００１から画像認識装置１００２に出力されるフレーム画像を示す。図２（ｂ）は、画像認識装置１００２からホスト装置１００３に出力されるフレーム画像を示す。
【図３】フレーム画像、輝度画像セグメント、ウィンドウの関係を示す図である。
【図４】カレント輝度画像セグメントに対するウィンドウラスタスキャンの構成を示す。
【図５】（ａ）は、パーソナルコンピュータであるホスト装置１００３から画像認識装置１００２に与えられる構成情報のデータ構造を示す。 図５（ｂ）は、x1,y1、x2,y2、X＿max、X＿min、Y＿max、Y＿minの大小関係を規定する数式を示す。図５（ｃ）は、人物像を対象とした場合、ウィンドウ位置関係基準における許容距離がどのように規定されるかを示す。図５（ｄ）は、信号機を対象とした場合、ウィンドウ位置関係基準における許容距離がどのように規定されるかを示す。
【図６】（ａ）は、1個の画像特徴量計算部７が選択することができる縦幅、横幅の組合せを示す。図６（ｂ）は、次元数D(W,H)を導き出すための数式を示す。図６（ｃ）は、HOGサイズ、セルサイズ、ブロックサイズ、勾配強度と、HOG特徴量次元数D(W,H)がとりうる値との関係を表形式で表す。図６（ｄ）は、次元数D(W,H)のHOG特徴量を示す。
【図７】画像認識装置１００２の内部構成を示す。
【図８】図７の画像認識装置１００２の内部構成に、構成要素間の画素やデータ、指示の流れを書き加えたものである。
【図９】画像供給部４の内部構成の一例を示す図である。
【図１０】画像特徴量計算部７i1,i2,i3,i4・・・iMの共通の内部構成の一例を示す。
【図１１】特徴量識別部９の内部構成の一例を示す図である。
【図１２】特徴量識別部９i1,i2,i3,i4・・・iNのそれぞれに含まれる正規化部４５の内部構成を示す。
【図１３】画像特徴量計算部７と、特徴量識別部９とでどのように処理が分散されているかを示す。
【図１４】（ａ）は、特徴量識別部９i1,i2,i3,i4・・・i6のそれぞれがセルヒストグラムを受け取り、内部でマージして横64画素×縦96画素についてのセルヒストグラムを生成する構成例を示す。図１４（ｂ）は、横96×縦96画素のセルヒストグラムを生成する構成例を示す。図１４（ｃ）は、横128×縦96画素のセルヒストグラムを生成する構成例を示す。
【図１５】ハードウェアサポートベクタマシンとして識別部４６を構成する場合の内部構成を示す図である。
【図１６】決定関数の意味内容を示す図である。
【図１７】ソフトマージンサポートベクタマシンとして構成される識別部４６の内部構成を示す図である。
【図１８】カーネルベースサポートベクタマシンとして識別部４６を構成する場合の識別部４６の内部構成を示す。
【図１９】（ａ）は、認識辞書１０の構成を示す図である。図１９（ｂ）は、構成情報設定部１２から認識辞書１０に対してなされる構成要素の類別の指定と、当該指定に基づく、認識辞書１０から特徴量識別部９i1,i2,i3,i4・・・・iNへの学習データの供給とを示す。
【図２０】客体認識部１１の内部構成を示す構成図である。
【図２１（ａ）】信号機の柱部分を包含するよう縦幅、横幅が設定されたウィンドウによるラスタスキャンを示す。
【図２１（ｂ）】認識結果の出力時における構成要素間の入出力を示す。
【図２１（ｃ）】三色灯部分についてのスキャンを示す。
【図２１（ｄ）】三色灯部分のスキャン結果を示す。
【図２１（ｅ）】全域−部分域組合せスキャンを示す。
【図２１（ｆ）】全域−部分域組合せスキャンを示す。
【図２１（ｇ）】全域−部分域組合せスキャンを示す。
【図２１（ｈ）】全域−部分域組合せスキャンを示す。
【図２１（ｉ）】構成要素交互スキャンを示す。
【図２１（ｊ）】構成要素交互スキャンを示す。
【図２１（ｋ）】構成要素交互スキャンを示す。
【図２１（ｌ）】構成要素交互スキャンを示す。
【図２２】（ａ）は、ウィンドウラスタスキャンのスキャン結果を示す。図２２（ｂ）は、互いに重なり合う局所領域を示す。図２２（ｃ）は、局所領域座標の組合せを、ウィンドウ位置関係基準に適用した場合の客体認識部１１による判定結果を表形式で示す図である。図２２（ｄ）は、特定された局所領域の組合せを示す。
【図２３】（ａ）は、信号機の柱部分を包含するよう縦幅、横幅が設定されたウィンドウによるラスタスキャンを示す。図２３（ｂ）は認識結果の出力時における構成要素間の入出力を示す。図２３（ｃ）は、三色灯部分についてのスキャンを示す。図２３（ｄ）は認識結果の出力時における構成要素間の入出力を示す。図２３（ｅ）は、複数局所領域の全体的な位置関係に応じた認識結果の決定を示す。
【図２４】画像認識装置１００２の全体手順を示すフローチャートである。
【図２５】セグメント全域スキャンの処理手順を示すフローチャートである。
【図２６】（ａ）は、局所領域の位置的関係に応じた総合判断手順を示すフローチャートである。図２６（ｂ）は、ウィンドウラスタスキャンの処理手順を示すフローチャートである。
【図２７】Shifted window(Win＿X、Win＿Y、Win＿H、Win＿W)領域のHOG特徴量計算手順を示すフローチャートである。
【図２８】全域−部分域組合せスキャンの手順を示すフローチャートである。
【図２９】構成要素交互スキャンの処理手順を示すフローチャートである。
【図３０】第２実施形態に係る正規化部４５、識別部４６の内部構成と共に学習辞書１０の内部構成を示す図である。
【図３１】正規化器−識別器−学習辞書に対する画素値供給を示す。
【図３２】（ａ）は、構成情報の構成を示す。図３２（ｂ）は、認識対象が人物である場合におけるWindow検索情報、ウィンドウ位置関係基準の設定例を示す。図３２（ｃ）は、認識対象が信号機である場合におけるWindow検索情報、ウィンドウ位置関係基準の設定例を示す。
【発明を実施するための形態】
【００２０】
以下、図面を参照しながら、本発明に係る画像認識装置の実施形態について説明する。以下の説明に係る実施の形態は、本発明の構成上の特徴および当該特徴的構成から得られる作用効果を分かりやすく説明するための1つの例示としての役割が与えられている。よって、本発明は、その本質的な特徴部分を除き、以下の形態に何ら限定を受けるものではない
(システム構成)
本実施形態に係る画像認識装置は、基板ボード上に実装され、カメラ装置と接続されると共に、ホスト装置の内部に組込まれることで使用に供される。
【００２１】
図１（ａ）は、画像認識装置１００２が使用されるシステムの構成を示す図である。本図におけるシステムは、カメラ装置１００１、画像認識装置１００２、ホスト装置１００３から構成される。以下、システムの構成要素について説明する。
カメラ装置１００１は、CCD（Charge  Coupled  Device）やCMOS（Complementary  Metal  Oxide  Semiconductor）イメージセンサ、それに光学レンズを備え、予め定められたカメラ設定に従い、定期的に撮影を行い、撮影で得られたフレーム画像を出力する。
【００２２】
画像認識装置１００２は、カメラ装置１００１から出力されたフレーム画像の入力を受け付け、入力画像に対して画像認識を行い、認識対象が特定された態様のフレーム画像をホスト装置１００３のディスプレイに出力させる。ここで認識対象は、不特定多数の人物や道路上に設置されている信号機である。また「認識対象が特定された態様」とは、フレーム画像のうち、認識対象が存在する部分を枠で囲って表示するというものである。
【００２３】
ホスト装置１００３は、自身に組込まれた画像認識装置１００２についての諸設定をユーザから受け付け、その設定に応じて画像認識装置１００２に画像認識を行わせる。画像認識装置１００２についての設定は、ユーザ操作に応じて、画像認識の詳細を規定した情報を生成し、これを画像認識装置１００２の不揮発メモリに書き込むことでなされる。
図１（ｂ）は、画像認識装置１００２と、カメラ装置１００１、ホスト装置１００３との入出力関係を示す。本図において、カメラ装置１００１からの入力in1は、カメラ装置１００１により撮影された複数のフレーム画像の入力である。ホスト装置１００３からの入力in2は、ホスト装置上で動作するアプリケーションを介した構成情報の設定入力である。out1は、画像認識装置１００２からホスト装置１００３への出力であり、ここでは、認識結果が合成されたフレーム画像を示す。本実施形態におけるカメラ装置１００１の撮影範囲は、信号機が存在する交差点であり、不特定多数の通行人が往来する。カメラ装置１００１は、かかる往来を撮影し、動画像を出力する。
【００２４】
図２（ａ）は、カメラ装置１００１から画像認識装置１００２に出力されるフレーム画像を示す。図２（ｂ）は、画像認識装置１００２からホスト装置１００３に出力されるフレーム画像を示す。(ａ）と比較すると、人物像や信号機がグラフィックで囲まれている点が異なる。図中のgc1,2,3,4は、人物像を包含しているとして認識された局所領域の存在を強調するためのグラフィックである。
【００２５】
以下、図３を参照して、画像供給部４によるウィンドウスキャンについて説明する。図３は、フレーム画像、輝度画像セグメント、ウィンドウの関係を示す図である。
図３のfr1,2,3,4,5,6,7は、時間進行と共に、順次画像認識装置１００２に入力されてくる複数のHDフレーム画像を示す。
HDフレーム画像fr1の内部に存在する破線枠は、HDフレーム画像を水平方向に３分割、垂直方向に３分割することで得られた9個の輝度画像セグメントを示す。これらの輝度画像セグメントは、640×360画素からなる。図３において、輝度画像セグメントに付された括弧書きの数値(1,1)(2,1)(3,1)(1,2)(2,2)(3,2)(1,3)(2,3)(3,3)は、フレーム画像において各輝度画像セグメントが存在する箇所の行列位置を示す。
【００２６】
1920×1080×24ビットのフルHD画像から、輝度成分のみで構成される640×360×8ビットの部分画像(輝度画像)を取り出し、輝度画像をウィンドウでスキャンする。ここでのスキャンは、ウィンドウの左上座標を基準点とする。本図では、ウィンドウのサイズを横幅64画素、縦幅96画素としている。図３におけるaw1は、上記９分割で得られた輝度画像セグメントのうち1つが、ラスタスキャンの対象(カレント輝度画像セグメントという)として選ばれたことを示す。カレント輝度画像セグメント内の小枠sf1はウィンドウである。ウィンドウによる輝度画像のスキャンは、輝度部分画像の(0,0)にウィンドウの基準点を配置して、ウィンドウを水平方向に8画素だけ移動する処理を繰り返し行い(r1)、ウィンドウが輝度画像の右端に到達すれば、ウィンドウを垂直方向にシフトして、ウィンドウの位置を左端に移動させるという動作を(b1)、ウィンドウの下端が、輝度画像の下端に到達するまで繰り返すことをいう。水平方向シフトは、72回(=(640-64)/8)行われる。垂直方向のシフトは、33回(=(360-96)/8）回なされる。ラスタスキャンにおける一回のシフトによりカレント輝度画像セグメント内の位置が与えられたウィンドウを『Shifted Window』という。
【００２７】
図３におけるaw2は、複数のShifted Windowのうち、1つのShifted Windowがラスタスキャンの対象(カレントShifted Window)として選ばれたことを示す。カレントShifted Window内の小枠sf2はブロックである。ブロックによるウィンドウのスキャンは、ウィンドウの(0,0)にブロックの基準点を配置して、ブロックを水平方向に8画素だけ移動する処理を繰り返し行い(r2)、ブロックがウィンドウの右端に到達すれば、ブロックを垂直方向にシフトして、ブロックの位置をウィンドウの左端に移動させるという動作(b2)を、ブロックの下端が、ウィンドウの下端に到達するまで繰り返すことをいう。
【００２８】
図４は、カレント輝度画像セグメントに対するウィンドウラスタスキャンの構成を示す。ウィンドウラスタスキャンは、基点座標が異なる、複数回のウィンドウ水平スキャンは、21,sc2,sc3,sc4・・・によって構成される。図中の(0,0)(0,8)(0,16)(0,24)(0,32)(0,40)(0,48)は、輝度画像セグメント内部におけるウィンドウの基点位置の座標(Win＿X、Win＿Y)である。これらの基点座標(Win＿X、Win＿Y)は、カレント輝度画像セグメント内の相対座標であり、その間隔は8画素である。またウィンドウの縦画素数は、96画素であるから、複数回のウィンドウ水平スキャンによる走査範囲は、互いに重なり合う。図中のgra1は、複数回のウィンドウ水平スキャンによる走査範囲が重なり合うことで形成される階段形状を示す。
【００２９】
図中の矢印aw3は、一個のセグメントに対する複数のウィンドウ水平スキャンのうち、一個のウィンドウ水平スキャンを抜き出してその詳細を示す。図中の(0,0),(8,0)(16,0)(24,0)(32,0)は、ウィンドウ水平スキャンにおける個々のShifted Windowの位置である。これらの座標の差分により、Shifted Windowのx座標の間隔は、8画素であることがわかる。
【００３０】
階段形状gra2は、輝度画像セグメント内のウィンドウ水平スキャンにおいて、ウィンドウの配置位置を8画素ずつ変化させることで得られる複数のShifted Windowの重なりを示す。輝度画像セグメント内のウィンドウ水平スキャンにより、64×96画素であるウィンドウは8画素ずつシフトするので、Shifted Windowは互いに重なり合い、かかる階段形状を形成する。互いに重なり合う複数Shifted Windowのそれぞれの位置において、Shifted Windowの特徴量と、学習データとの比較がなされる。
【００３１】
図４のcord1は、ウィンドウに包含されるセルの所在が、フレーム画像の座標系においてどのようにして特定されるかを示す。セルは、ウィンドウ内のウィンドウの左上座標を基点とした相対座標Ce＿X,Ce＿Yにより特定される。ここで、ウィンドウは、輝度画像セグメントにおいてWin＿X，Win＿Yに存在するから、ウィンドウ内におけるセルの配置は、(Win＿X＋Ce＿X、Win＿Y＋Ce＿Y)により特定される。
【００３２】
以上のウィンドウスキャンの基礎になるのは、ホスト装置１００３により画像認識装置１００２に設定される構成情報である。以下、図５を参照しながら、構成情報について説明する。
図５（ａ）は、パーソナルコンピュータであるホスト装置１００３から画像認識装置１００２に与えられる構成情報のデータ構造を示す。
【００３３】
構成情報は、認識対象の全体類別、基本となる構成要素についてのウィンドウ検索情報(構成要素１のウィンドウ検索情報)、補助的な構成要素についてのウィンドウ検索情報(構成要素２のウィンドウ検索情報、構成要素３のウィンドウ検索情報・・・・構成要素mのウィンドウ検索情報)、基本となる構成要素−補助的な構成要素間の位置関係を規定するウィンドウ位置関係基準(構成要素１−構成要素２のウィンドウ位置関係基準、構成要素１−構成要素２のウィンドウ位置関係基準、構成要素１−構成要素３のウィンドウ位置関係基準・・・・構成要素１−構成要素mのウィンドウ位置関係基準)から構成される。
【００３４】
引出線cu1は、複数のウィンドウ検索情報の代表的として、構成要素１のウィンドウ検索情報の内部構成をクローズアップして示している。引出線cu1に示すように、当該ウィンドウ検索情報は、構成要素１を包含するウィンドウの横幅Win＿W、構成要素１を包含するウィンドウの縦幅Win＿H、構成要素１の類別type1から構成される。引出線cu2は、構成要素２のウィンドウ検索情報の内部構成をクローズアップして示している。構成要素２のウィンドウ検索情報も同様に構成される。
【００３５】
ウィンドウ位置関係基準は、補助的な構成要素の存在が許容される許容範囲の所在を、基本となる構成要素の中心座標を基点として示す。引出線cu3は、複数のウィンドウ位置関係基準の代表的として、構成要素１と構成要素２のウィンドウ位置関係基準の内部構成をクローズアップして示している。引出線cu3に示すように、位置関係基準は、X軸方向の最大許容距離X＿max、X軸方向の最小許容距離X＿min、Y軸方向の最大許容距離Y＿max、Y軸方向の最小許容距離Y＿minから構成される。引出線cu4は、構成要素１と構成要素３のウィンドウ位置関係基準の内部構成をクローズアップして示している。この構成要素１と構成要素３のウィンドウ位置関係基準も同様に構成される。
【００３６】
図５（ｂ）の式1は、 基準となる構成要素を包含するとされた局所的領域の中心座標を(x1,y1)、補助的な構成要素を包含するとされた局所的領域の中心座標を(x2,y2)とした場合、x1,y1、x2,y2、X＿max、X＿min、Y＿max、Y＿minの大小関係がどのように規定されるかを示す。
X＿max、X＿minと、Y＿max、Y＿minとの差異は、X＿max、X＿minには正負の符号が存在するのに対し、Y＿max、Y＿minには、正負の符号が存在しない点である。これは、基本的な構成要素と、補助的な構成要素との左右の関係は、高い頻度で入れ代るからである。図２の例でいうと、信号機には、補助的な構成要素である三色灯が、基本的な構成要素である柱部分の右側に存在する場合と、左側に存在する場合とがある。人物像についても、補助的な構成要素である頭部分が、基本的な構成要素である胴体の右側に存在する場合と、左側に存在する場合とがある。対照的に、基本的な構成要素と、補助的な構成要素との上下の関係が入れ代ることはまずない。そこで、X＿max、X＿minについては、正負の符号付き数値として規定している。こうしておけば、かかるX＿max、X＿minと、(X1,Y1)とを式１に適用して、その不等式の成否を判断することで、基本的な構成要素、補助的な構成要素の位置関係の適否を見極めることができる。図２の事例において、Y＿max、Y＿minを符号無しの数値としたが、横になったり逆さになったりする客体(飛行物や動物、様々な姿勢で動きまわる人物等)を認識対象とする場合、Y＿max、Y＿minを正負の符号付き数値とすることが望ましい。X＿max、X＿min、Y＿max、Y＿minの符号は、認識対象となる客体の性質に応じて定めるべきである。
【００３７】
図５（ｃ）は、人物像を対象とした場合、ウィンドウ位置関係基準における許容距離がどのように規定されるかを示す。LC1は、構成要素１を包含するとしてウィンドウのスキャンにより発見された局所的領域であり、LC2は、構成要素２を包含するとしてウィンドウのスキャンにより発見された局所的領域である。これらは何れも、構成情報のウィンドウ検索情報に規定された横幅Win＿W,縦幅Win＿Hをもつ。図５（ｃ）におけるX＿max、X＿minは、ウィンドウの横幅Win＿Wの半分の値(Win＿W/2)よりも小さい値に設定されている。図５（ｃ）におけるY＿max、Y＿minは、ウィンドウの縦幅Win＿Hの半分の値(Win＿H/2)よりも大きい値に設定されている。
【００３８】
破線br3は、(x1+X＿min,0)を通る垂直線であり、破線br4は、(x1+X＿max,0)を通る垂直線である。破線br1は、(0,y1+Y＿min)を通る垂直線であり、破線br2は、(0,y1+Y＿max)を通る垂直線である。これらの破線br1,2,3,4`により囲まれる範囲の内部に、構成要素２を包含するとされた局所的領域の中心座標が存在する場合、かかるLC1、LC2は、人物像の胴体部分、頭部分を表している可能性が高いと考えられる。
【００３９】
図５（ｄ）は、信号機を対象とした場合、ウィンドウ位置関係基準における許容距離がどのように規定されるかを示す。
人物像を対象としたウィンドウ位置関係基準と比較すると、第１に、X＿max、X＿minが異なる。人物像を対象としたウィンドウ位置関係基準では、X＿max、X＿minがウィンドウの横幅の半分Win＿W/2を下回る小さい値に設定されていたのに対し、信号機を対象としたウィンドウ位置関係基準は、X＿max、X＿minが何れも、ウィンドウの横幅の半分Win＿w/2を上回る値に定められているという違いである。
【００４０】
第２に、Y＿max、Y＿minが異なる。人物像を対象としたウィンドウ位置関係基準では、Y＿max、Y＿minがウィンドウの横幅Hの半分Win＿H/2を上回る大きさに設定されていたのに対し、信号機を対象としたウィンドウ位置関係基準では、Y＿max、Y＿minが何れも、ウィンドウの横幅の半分Win＿H/2を下回る値に定められているという違いである。
第３に、X＿max、X＿min、Y＿max、Y＿minにより定まる許容範囲が異なる。これは、人物像を対象としたウィンドウ位置関係基準では、基本となる構成要素の中心座標のやや真上に、補助的な構成要素の中心座標の存在が許容される許容範囲が存在するのに対し、信号機を対象としたウィンドウ位置関係基準では、基本となる構成要素の中心座標の左斜め上に、補助的な構成要素の中心座標の存在が許容される許容範囲が存在するという違いである。この図５（ｃ）の一例では、補助的な構成要素である頭部分が、基本的な構成要素である胴体の左側に存在している。図５（ｄ）の一例でも、補助的な構成要素である三色灯部分が、基本的な構成要素である柱部分の左側に存在している。
【００４１】
以上が構成情報についての説明である。これらの構成情報は、画像認識装置１００２から入力されてくるフレーム画像を対象にしたものである。
図６（ａ）における破線の格子は、一個の画像特徴量計算部７が選択することができる縦幅、横幅の組合せを示す。本図に示すように、セルヒストグラム計算の対象となるべき画素領域の縦幅・横幅を、32画素、64画素、96画素、128画素の中から任意に選択して組合せることができる。図６（ａ）のshp１は、横幅を128画素、縦幅を32画素と設定することで定義される128×32画素の横長形状のウィンドウを示す。図６（ａ）のshp2は、横幅を32画素、縦幅を128画素と設定することで定義される32×128画素の縦長形状のウィンドウを示す。図６（ａ）のshp3は、縦幅、横幅をそれぞれ64画素と設定することで定義される、64×64画素の正方形形状のウィンドウを示す。
【００４２】
構成情報において、縦幅、横幅を可変数にすることで、画像認識に用いられるHistogram Oriented of Gradient(HOG)特徴量の次元数を可変にすることができる。図６（ｂ）の式１は、ウィンドウの横幅、縦幅を可変とした場合、横幅、縦幅からHOG特徴量の次元数(この次元数をD(W,H)という)を導きだすための数式を示す。この数式は、HOGwidth、HOGheight、Cellwidth、Cellheight、Blockwidth、Blockheight、Gといった変数パラメータを被演算子としている。HOGwidth、HOGheightの組みは、HOGサイズを示し、Cellheight、Cellwidthは、セルサイズを示す。Blockheight，Blockwidthは、ブロックサイズを示し、Gは勾配方向の数を示す。
【００４３】
図６（ｃ）は、これらHOGサイズ、セルサイズ、ブロックサイズ、勾配方向数と、次元数D(W,H)がとりうる値との関係を表形式で表す。この表をみると、セルサイズ、ブロックサイズ、勾配方向数は、8×8、3×3、9といった値に固定されている。HOGサイズのみを、構成情報に従い、32×96、64×96、64×128、96×96という4通りの組合せの何れかに変化させることができる。32×96、64×96、64×128、96×96、といった様々なウィンドウサイズを式1に適用すれば、本図に示すような、1620、4860、6804、8100次元という次元数が導きだされることになる。
【００４４】
図６（ｄ）は、次元数D(W,H)のHOG特徴量を示す。本図に示すように、次元数D(W,H)のHOG特徴量は、複数のブロック位置で正規化された81次元のセルヒストグラムを配列することで構成される。つまり次元数D(W,H)のHOG特徴量は、(0,0)に位置するブロック内で正規化された81次元のセルヒストグラム、(8,0)に位置するブロック内で正規化された81次元のセルヒストグラム、(16,0)に位置するブロック内で正規化された81次元のセルヒストグラムをD(W,H)/81個だけ並べることで構成される。このようにして生成された次元数D(W,H)のHOGを画像認識に用いることで、認識対象の存否をより高精度に認識することができる。
【００４５】
(画像認識装置１００２の構成)
図７は、画像認識装置１００２の内部構成の一例を示す。本図におけるハードウェア構成は、カメラインターフェイス１、集積回路２から構成される。
カメラインターフェイス１は、コネクタ等を介してカメラ装置１００１と接続を行い、カメラ装置１００１からの映像入力を受け付ける。
【００４６】
集積回路２は、その内部に、画像認識装置１００２の主たる構成要素が実装された多層基板回路であり、その内部に、フレームメモリ３、画像供給部４i1,i2,i3,i4・・・iM、ウィンドウ領域設定部５、第１算術演算回路セット６(画像特徴量計算部７i1,i2,i3・・・iMを含む)、第２算術演算回路セット８(特徴量識別部９i1,i2,i3・・・・iNを含む)、認識辞書１０、客体認識部１１(コードROM11a、MPU11bを含む)、構成情報設定部１２(ホストインターフェイス回路12a、不揮発メモリ12bを含む)、サーチ領域リスト格納部１３から構成される。
【００４７】
本図において、同じ機能をもつ構成要素は識別番号iで指示される。参照符号に続く英数字i1,i2,i3,i4・・・・・は、これらi=1,i=2,i=3,i=4・・・・・を簡略化したものである。また、図７において画像供給部４i1,i2,i3,i4・・・iM、画像特徴量計算部７i1,i2,i3・・・・iM、特徴量識別部９i1,i2,i3,i4・・・・iNは、供給されるウィンドウやHOGが位置的に異なることを除き、内部構成は共通的なものである。これら画像供給部４i1,i2,i3,i4・・・iM、画像特徴量計算部７i1,i2,i3・・・・iM、特徴量識別部９i1,i2,i3,i4・・・・iNの共通の内部構成は、英数字の識別子を取り除いた参照符号(画像供給部４、画像特徴量計算部７、特徴量識別部９)で指示するものとする。
【００４８】
フレームメモリ３は、カメラインターフェイス１から新たなフレーム画像が入力される度に、入力されたフレーム画像を格納する。フレームメモリ３は、複数のSRAMによって構成される。各SRAMは、フレーム画像に含まれる個々の輝度画像セグメントの行列位置に対応していて、位置的に対応する輝度画像セグメントを格納する。個々のSRAMに付された括弧書きの数値(1,1)(2,1)(3,1)(1,2)(2,2)(3,2)(1,3)(2,3)(3,3)は、対応する輝度画像セグメントの行列位置を示す。そして、開始アドレス、終了アドレスの組みを指定した読み出し要求が画像供給部４i1,i2,i3,i4・・・iMのうち、何れかのものによりなされれば、フレームメモリ３を構成するSRAMは、自身に格納された輝度画像セグメントのうち、画像供給部４i1,i2,i3,i4・・・iMの何れかから指定された開始アドレス、終了アドレスの範囲に囲まれる画素を読み出して、画像供給部４i1,i2,i3,i4・・・iMのうち要求元となるものに出力する。かかる読み出しの要求は画像供給部４i1,i2,i3,i4・・・iMのうち複数のものから同時になされる。以降の説明において、画像認識装置の認識対象となるカレント輝度画像セグメントを“輝度画像セグメント(p,q)”と表記する。また、フレームメモリ３を構成する複数のSRAMのうち、輝度画像セグメント(p,q)を格納するものを、SRAM(p,q)と呼ぶことにする。図中の矢印rd1,2,3,4は、SRAM(p,q)からの画素読み出しを模式的に示す。
【００４９】
ウィンドウ設定部５は、ウィンドウの大きさにより、画像特徴量計算部７i1,i2,i3・・・・iM、特徴量識別部９i1,i2,i3,i4・・・・iNのうち、どれを使用するか、そして、画像特徴量計算部７i1,i2,i3・・・・iMから特徴量識別部９i1,i2,i3,i4・・・・iNへの入出力をどのように設定するかを規定する。
画像供給部４i1,i2,i3,i4・・・iMのそれぞれは、フレーム画像を分割することで得られる640×360画素からなる輝度画像セグメントの中から、処理対象となるべき画素ブロックを読み出して、画像特徴量計算部i1,i2,i3,i4・・・iMのそれぞれに供給する。ここで供給されるブロックは、構成情報により縦幅、横幅が規定されたウィンドウに存在する。
【００５０】
第１算術演算回路セット６は、画像特徴量計算部として機能する複数の論理演算素子を備える。かかる複数の論理演算素子は、画像特徴量計算部７i1,i2,i3・・・・iMとして機能する。
画像特徴量計算部７i1,i2,i3・・・・iMのそれぞれは、SRAM(p,q)から読み出された横32×縦96画素の画素群に対して勾配方向、勾配強度を算出することでセルヒストグラムを得て、画像特徴量計算部７に出力する。
【００５１】
第２算術演算回路セット８は、特徴量識別部として機能する複数の論理演算素子を備える。かかる複数の論理演算素子は、特徴量識別部９i1,i2,i3,i4・・・・iNとして機能する。
特徴量識別部９i1,i2,i3,i4・・・・iNのそれぞれは、画像特徴量計算部７i1,i2,i3,i4・・・iMのそれぞれが算出したセルヒストグラムをその内部で組合せて、横幅Win＿W、縦幅Win＿Hに対応する次元数D(W,H)の特徴量Xを得て、特徴量Xと、認識辞書１０に格納されている学習データTとを比較し、特徴量Xが、認識対象の構成要素をあらわしているか否かを判定する。
【００５２】
認識辞書１０は、学習データTを格納した不揮発メモリで構成される。不揮発メモリにおける学習データTは、オフライン学習の過程で得られた複数の特徴量X1〜Xnに、符号Y1〜Ynを対応付けたものである。これらの符号Y1〜Ynは、対応する特徴量X1〜Xnが認識対象を表すかどうかを示す。逆に、画像特徴量計算部７i1,i2,i3・・・・iMにより算出される特徴量Xには、符号Yは存在しない。これは、画像特徴量計算部７i1,i2,i3・・・・iMにより算出される特徴量Xは、認識対象を表すかどうかが定まっていない未知の特徴量だからである。
【００５３】
客体認識部１１は、特徴量識別部９i1,i2,i3,i4・・・・iNのうち、構成要素がウィンドウ内に含まれていると判定したものの判定結果を、サーチ領域リストに追記する。具体的にいうと、特徴量識別部９i1,i2,i3,i4・・・・iNの何れかが、『ウィンドウは、基本又は補助的な構成要素を包含している』との判定結果を下した場合、そのウィンドウの基点座標に、ウィンドウの横幅の半分の値、縦幅の半分の値を加算することで、局所領域の中心位置の座標(X1,Y1),(X2,Y2)を得て、サーチ領域リストのエントリーに書き込む。複数の構成要素についての認識結果がサーチ領域リストに記載されれば、それら複数の構成要素の位置的関係が、構成情報に規定されたウィンドウ位置関係基準を満たすかどうかの総合判断を行う。構成情報のウィンドウ位置関係基準を満たす場合、認識対象の全体像が、画像内に存在すると総合判断を下す。ウィンドウ位置関係基準を満たさない場合、認識対象の全体像が、画像内に存在しないと総合判断を下す。
【００５４】
上述したように、X＿max、X＿minについては正負の符号が存在するから、客体認識部１１は、局所領域の中心座標と、ウィンドウ位置関係基準のX＿max、X＿minとを式1に適用し、X＿max、X＿minが正の場合と、X＿max、X＿minが負の場合とで局所領域の組合せの位置関係の適否を判断する。
コードROM11aには、客体認識部１１の処理内容を記述した命令コードが格納される。
【００５５】
中央演算処理回路11bは、コードROM11aに格納された複数の命令コードと、不揮発メモリに格納された構成情報とに基づいて客体認識部１１全体の制御を行う。
構成情報設定部１２は、ホスト装置１００３により設定された複数の構成情報が設定される。そのように設定された構成情報に従い、画像供給部４、客体認識部１１に対する制御を行う。
【００５６】
ホストインターフェイス回路12aは、ホスト装置１００３との入出力を実行する。
不揮発メモリ12bは、ホスト装置１００３による設定内容が書き込まれるメモリであり、ホストインターフェイス回路１２aを通じてホスト装置１００３により設定された複数の構成情報が格納される。
サーチ領域リスト格納部１３に格納されるサーチ領域リストは、複数のレコードからなり、各レコードにウィンドウスキャンによる構成要素のサーチ結果が追記される。各レコードは、認識対象の構成要素を包含するとされた局所領域のXY座標と、局所領域の縦幅・横幅と、発見された構成要素の類型と、特徴量識別部が算出した尤度とを含む。
【００５７】
一回のウィンドウスキャンで、構成要素を包含する局所領域が発見されれば、局所領域のXY座標、縦幅、横幅、尤度を示すレコードがリストに追加される。一回のウィンドウスキャンで発見された局所領域が2以上存在するなら、それらの局所領域のXY座標、縦幅、横幅、尤度を示すレコードがリストに追加される。
以降の説明では、画像供給部４及び画像特徴量計算部７の個数Mを9個とし、特徴量識別部９の個数を4個とする。図８は、図７の画像認識装置１００２の内部構成に、構成要素間の画素やデータ、指示の流れを書き加えたものである。
【００５８】
ins1は、構成情報設定部１２から画像供給部４への読み出し指示を示す。かかる指示では、SRAM(p,q)から読み出すべきウィンドウを指示する。画像供給部４は、複数のシフト位置のそれぞれにウィンドウを配置した場合に、各ウィンドウで囲まれることになる画素群をSRAM(p,q)から読み出し、画像特徴量計算部７i1,i2,i3・・・・iMのそれぞれに供給するという処理を繰り返し行う。こうすることで、複数のシフト位置のそれぞれにウィンドウを配置した場合、ウィンドウで囲まれることになる画素群が一度に、画像特徴量計算部７i1,i2,i3・・・・iMに読み出される。
【００５９】
図中のwi1,2,3,4は、画像供給部４i1,i2,i3,i4・・・iMに対する指示に従い、SRAM(p,q)から読み出された32×96画素からなるウィンドウである。これらのウィンドウは、輝度画像セグメントにおいて、(0,0)(8,0)(16,0)(24,0)に存在する。図中のbk1は、各ウィンドウに対してなされるブロックシフトを示す。
ho1,2,3,4は、ウィンドウに対するブロックシフトで画像特徴量計算部７i1,i2,i3・・・・iMにより生成されたD(W.H)次元の勾配ヒストグラムを示す。
【００６０】
特徴量識別部９i1,i2,i3,i4・・・・iNのそれぞれに対する入力のうち、「X」は画像特徴量計算部７i1,i2,i3・・・・iMにより算出された4860次元のHOGである。「T」は、認識辞書に格納されている学習データである。特徴量識別部９i1,i2,i3,i4・・・・iNは、これらX,Tを決定関数に適用することで、認識対象の構成要素が存在するかどうかの判断を行う。
re1,2,3は、特徴量識別部９i1,i2,i3,i4・・・・iNの判定により、サーチ領域リストに追加されたレコードである。これらのレコードの記載に基づき、客体認識部１１は統合判定を行う。客体認識部１１によるウィンドウ位置的関係を満たすかどうかの判定は、構成要素を包含していると判定された局所領域の中心座標が、ウィンドウ位置関係基準を満たすかどうかを判断することでなされる。
【００６１】
(画像供給部４の内部構成)
図９は、画像供給部４の内部構成の一例を示す図である。図９において、「mul」は乗算器、「add」は加算器、「sub」は減算器、「comp」は比較器を意味する。mul,add,compは図１０以降の図面にも登場するが、各記号の意味は以降の図でも同じである。本図の内部構成において大きな単位の構成要素については、２０番代の参照符号を付している。小さな単位の構成要素については、２００番代の参照符号を付している。
【００６２】
本図に示すように画像供給部４は、セグメント内におけるウィンドウのX座標であるWin＿Xを算出するウィンドウ座標算出部２１、ウィンドウ内におけるセルのX座標であるCe＿Xを算出するセル座標算出部２２、セグメント内におけるウィンドウのY座標であるWin＿Yを算出するウィンドウ座標算出部２３、ウィンドウ内におけるセルのY座標であるCe＿Yを算出するセル座標算出部２４、ブロックの座標をアドレスに変換する座標−アドレス変換部２５、変換により得られたアドレスに従い、8×8画素からなるセルをSRAM(p,q)から読み出す読出制御部２６、SRAM(p,q)から読み出されたセルを格納するバッファ２７を備え、輝度画像セグメントにおいて、(Win＿X＋Ce＿X、Win＿Y＋Ce＿Y)に位置する8×8画素からなるセルを読み出す。
【００６３】
ウィンドウ座標算出部２１は、ウィンドウのX座標の元となるカウント値Cwxを生成するカウンタ２０１と、カウンタ２０１のカウント値Cwxから1を減じる減算器２０２と、減算器２０２の出力値(Cwx-1)に、画像供給部４の個数Lを乗じる乗算器２０３、乗算器２０３の出力値(Cwx-1)・Lに、画像供給部４の識別番号から1を減じた値(id-1)を加算する加算器２０４、((Cwx-1)・L+(id-1))に、ウィンドウの分割幅32を乗じてWin＿Xを得る乗算器２０５、画像供給部４の識別番号が2以下であれば、Cwxの最大値として「3」を出力し、画像供給部４の識別番号が2を上回れば、Cwxの最大値として「2」を出力するセレクタ２０６、Cwxと、セレクタ２０６が出力した最大値とを比較し、Cwxがセグメントの横幅に達すると、カウンタ２０１をリセットする比較器２０７から構成される。
【００６４】
tbl1は、Win＿Xがとりうる値を、画像供給部４i1,i2,i3,i4・・・iMのidと、カウント値Cwxとの組合せに対応付けて示す表である。本表では、横方向に画像供給部４i1,i2,i3,i4・・・iMのidがとり得る複数の値を示し、縦方向にカウント値がとり得る複数の値を示す。このtbl1においてCwxが1である場合、画像供給部４i1,i2,i3,i4・・・iMのそれぞれについて算出されるWin＿Xは、id=1の画像供給部４i1では「0」、id=2の画像供給部４i2では「32」、id=3の画像供給部４i3では「64」、id=4の画像供給部４i4では「96」、id=5の画像供給部４i15では「128」となる。Cwxが2である場合、画像供給部４i1,i2,i3,i4・・・iMのそれぞれについて算出されるWin＿Xは、id=1の画像供給部４i1では「288(=32・9)」、id=2の画像供給部４i2では「320(=32・(9+1))」、id=3の画像供給部４i3では「352(=32・(9+2))」、id=4の画像供給部４i4では「384(=32・(9+3)」となる。こうすることで画像供給部４i1,i2,i3,i4・・・iMのそれぞれは、その識別番号に応じた、32画素置きのWin＿Xを算出することができる。
【００６５】
セル座標算出部２２は、ウィンドウ内でセルをシフトする際、そのシフトカウントの元となるカウント値Ccxを出力するカウンタ２０８、カウント値Ccxと、ウィンドウ内シフトの最大シフトカウント値である「4(=(32-8)/8+1)」とを比較して、両者が一致すればカウンタ２０８をリセットする比較器２０９、カウンタの値Ccxから1を減じてウィンドウ内のセル座標(Ccx-1)を得る減算器２１０、(Ccx-1)に、8を乗じることでCe＿Xを得る乗算器２１１、Win＿Xと、Ce＿Xと、輝度画像セグメントのX座標とを足し合わせて読出対象となるセルの座標を得る加算器２１２から構成される。
【００６６】
Ccxが1である場合Ce＿Xは「0」、Ccxが2である場合Ce＿Xは「8」、Ccxが3である場合Ce＿Xは「16」、Ccxが3である場合Ce＿Xは「24」となる。かかるCe＿Xの算出は、Ccxが最大シフトカウント(=4)に達するまで続けられる。
ウィンドウ座標算出部２３は、ウィンドウのY座標の元となるカウント値Ccyを生成するカウンタ２２１と、カウンタ２２１のカウント値Cwyと、ウィンドウの最大シフトカウント値である「((360-Win＿H)/8+1)」とを比較し、Cwyが最大シフトカウントに達すると、カウンタ２２１をリセットする比較器２２２、輝度画像セグメントの縦幅360から、構成情報で定義されたウィンドウの縦幅Win＿Hを減じる減算器２２３、減算器２２３による減算結果(360-Win＿H)を、8で割る除算器２２４、除算器２２４の出力値に+1を加算することで最大シフトカウント((360-Win＿H)/8+1)を得る加算器２２５、カウンタ２２１のカウント値Cwyから1を減じる減算器２２６と、(Cwy-1)に8を乗じることでWin＿Yを得る乗算器２２７から構成される。Cwyが1である場合Win＿Yは「0」、Cwyが2である場合、Win＿Yは「8」、Cwyが3である場合Win＿Yは「16」、Cwyが4である場合Win＿Xは「24」となる。かかるWin＿Yの算出は、Cwyが最大シフトカウント((360-H)/8+1)に達するまで続けられる。
【００６７】
セル座標算出部２４は、ウィンドウ内でセルをシフトする際、そのシフトカウントの元となるカウント値Ccyを出力するカウンタ２３０と、カウント値Ccyと、ウィンドウ内シフトの最大シフトカウント((Win＿H-8)/8+1)とを比較して、両者が一致すればカウンタ２３０をリセットする比較器２３１と、構成情報における横幅Hから、セルの縦画素数24を減じる減算器２３２と、(Win＿H-8)を8で割る除算器２３３、(Win＿H-8)/8に1を加算する加算器２３４、カウンタの値Ccyから1を減じてウィンドウ内のセル座標(Ccy-1)を得る減算器２３５と、(Ccy-1)に8を乗じることでCe＿Yを得る乗算器２３６と、Win＿Yと、Ce＿Yと、輝度画像セグメントのY座標とを足し合わせて読出対象となるセルのY座標を得る加算器２３７とから構成される。
【００６８】
画像供給部４i1,i2,i3,i4・・・iMのそれぞれは、以上のように構成されているので、(Win＿X＋Ce＿X、Win＿Y＋Ce＿Y)はカウンタ２０１、２０８、２２１、２３０のカウントに伴って随時更新され、その更新後のXY座標から、画素セルが読み出されることになる。これらのカウンタ２０１、２０８、２２１、２３０によるカウント値の上限は、構成情報におけるウィンドウの横幅Win＿W、縦幅Win＿Hによって変化するから、ウィンドウ及びセルの水平方向、垂直方向のシフト数を、カウント値の上限設定を通じて、自在に変化させることができる。これにより、ウィンドウの縦幅、横幅を任意に変化させながら、ウィンドウ及びセルをシフトさせることができる。以上が画像供給部４i1,i2,i3,i4・・・iMの内部構成の説明である。このようにして出力された画素セルは画像特徴量計算部７i1,i2,i3,i4・・・iMのそれぞれに供される。
【００６９】
(画像特徴量計算部７の内部構成)
図１０は、画像特徴量計算部７i1,i2,i3,i4・・・iMの内部構成を示す。「MAC」は積和演算レジスタ、「acc」はアキュムレータを意味する。また「MAC」、「acc」の組みは積和演算器を構成する。MAC,accは本図以降の図面にも登場するが、各記号の意味は以降の図でも同じである。本図における式3-1は、角度範囲に属する角度θ'についての勾配度数の算出式を示す。この勾配度数において、m(x,y)は勾配強度を示す。θ(x,y)は勾配方向を示す。式3-1は、勾配強度m(x,y)と、δ[θ',θ(x,y)]との積を画素セルを構成する全てのX座標、Y座標について算出して、これらを積和する計算を意味する。式3-2は、N方向の勾配方向ヒストグラムを示す。この勾配方向ヒストグラムはN個の集合要素からなる。図１０の内部構成における構成要素については、３０番代の参照符号を付している。本図に示すように画像特徴量計算部７は、セルヒストグラムの角度範囲に属する一個の角度値θ'を生成する角度範囲生成器３１と、角度値θ'が生成される度に、8×8画素のセルに属する個々の画素を選択すると共に、任意の座標(x,y)に位置する画素の上下左右に位置する画素の画素値(x-1,y)、(x+1,y)、(x,y-1)、(x,y+1)を選択的に出力するセレクタ３２と、セレクタ３２により選択された画素値のうち、(x,y-1)の画素値と、(x,y+1)の画素値との減算を行いIy(x,y)を得る減算器３３と、(x+1,y)の画素値と(x-1,y)の画素値との減算を行い、Ix(x,y)を得る減算器３４と、Ix(x,y)、Iy(x,y)の二乗和平方根を算出することで勾配強度m(x,y)を得る二乗和平方根算出器３５と、Iy(x,y)をIx(x,y)を用いて除算してIy(x,y)／Ix(x,y)を得る除算器３６と、Iy(x,y)／Ix(x,y)についての逆正接を算出して勾配方向θ(x,y)を得る逆正接算出器３７と、逆正接算出器３７により出力されたθ(x,y)と、角度範囲生成器３１から出力された角度範囲に属するθ'とに対してδ(デルタ)関数演算を行い、δ[θ',θ(x,y)]を算出するデルタ関数演算器３８と、二乗和平方根算出器３５から出力された勾配強度m(x,y)と、デルタ関数演算器３８から出力されたδ[θ',θ(x,y)]とを対象とした積和演算を行い、積和値Σm(x,y)δ[θ',θ(x,y)]を得て、これをθ'についての勾配度数とする積和演算器３９とを含む。
【００７０】
(特徴量識別部９の内部構成)
図１１は、特徴量識別部９の内部構成の一例を示す図である。本図の内部構成において大きな単位の構成要素については、４０番代の参照符号を付している。小さな単位の構成要素については、４００番代の参照符号を付している。本図に示すように特徴量識別部９は、画像特徴量計算部７から出力されたセルヒストグラムを格納して、その内部でマージするためのSRAM４０と、セルヒストグラムマップにおけるブロックのX座標であるCell＿Xを算出するブロック座標算出部４１、セグメント内におけるブロックのY座標であるCell＿Yを算出するブロック座標算出部４２、ブロックの座標をアドレスに変換する座標−アドレス変換部４３、変換により得られたアドレスに従い、3×3セルにあたるセルヒストグラムをSRAM４０から読み出す読出制御部４４、読み出された3×3セルにあたるセルヒストグラムに対して正規化を行い、次元数D(W,H)のHOG特徴量を得る正規化部４５、次元数D(W,H)の特徴量のHOG特徴量と、認識辞書１０に格納されている学習データとを比較することで、ウィンドウ内に認識対象が存在するかどうかを判定する識別部４６とを含む。
【００７１】
ブロック座標算出部４１は、ブロックの座標の元となるカウント値Cbxを生成するカウンタ４０１と、カウンタ４０１のカウント値Cbxと、ウィンドウの最大シフトカウント(Win＿W/8-2)とを比較し、Cbxが最大シフトカウントに達すると、カウンタ４０１をリセットする比較器４０２、輝度画像セグメントの縦幅Win＿Hを8で割る除算器４０３、除算器４０３の出力から2を減算することで最大シフトカウント(Win＿W/8-2)を得る減算器４０４、カウンタ４０１のカウント値Cbxから1を減じる減算器４０６、(Cbx-1)に8を乗じることでCell＿Xを得る乗算器４０７から構成される。Cbxが1である場合Blk＿Xは「0」、Cbxが2である場合、Cell＿Xは「8」、Cbxが3である場合Cell＿Xは「16」、Cbxが4である場合Cell＿Xは「24」となる。かかるCell＿Xの算出は、Cbxが最大シフトカウント(Win＿W/8-2)に達するまで続けられる。
【００７２】
ブロック座標算出部４２は、ブロックの座標の元となるカウント値Cbyを生成するカウンタ４１１と、カウンタ４１１のカウント値Cbyと、ウィンドウの最大シフトカウント(Win＿H/8-2)とを比較し、Cbyが最大シフトカウントに達すると、カウンタ４１１をリセットする比較器４１２、輝度画像セグメントの縦幅Win＿Hを8で割る除算器４１３、除算器４１３の出力から2を減じることで最大シフトカウント(Win＿H/8-2)を得る減算器４１４、カウンタ４０１のカウント値Cbyから1を減じる減算器４１６、(Cby-1)に8を乗じることでCell＿Yを得る乗算器４１７から構成される。
【００７３】
Cbyが1である場合Cell＿Yは「0」、Cbyが2である場合、Cell＿Yは「8」、Cbyが3である場合Cell＿Yは「16」、Cbyが4である場合Cell＿Yは「24」となる。かかるCell＿Yの算出は、Cwyが最大シフトカウント(Win＿H/8-2)に達するまで続けられる。
(正規化部４５の内部構成)
図１２は、特徴量識別部９i1,i2,i3,i4・・・iNのそれぞれに含まれる正規化部４５の内部構成を示す。式4-1は、正規化がなされた勾配度数を示す。式4-2は、正規化後のセルヒストグラムを示す。この正規化後のセルヒストグラムはB×N個の集合要素からなる。本図の内部構成において大きな単位の構成要素については、５０番代の参照符号を付している。
【００７４】
図１２に示すように、正規化器３６は、セルヒストグラム内の一個の勾配度数の二乗値を算出する二乗値算出器５０と、二乗値算出器５０により算出された二乗値の積和値を算出する積和演算器５１と、積和演算器５１の出力に、定数εを足し合わせる加算器５２と、加算器５２の出力の平方根を算出する平方根算出器５３と、平方根算出器５３が算出した平方根を用いて、n番目の勾配度数ｖH(n)を除算する除算器５４とから構成される。
【００７５】
(画像特徴量計算部７−特徴量識別部９間の処理分散)
図１３は、画像特徴量計算部７と、特徴量識別部９とでどのように処理が分散されているかを示す。この図１３において画像特徴量計算部７i1,７i2には、32×96画素の全て対象とした勾配方向、勾配強度の算出(1)と、全てのセルを対象としたセルヒストグラムの算出(2)とが割り当てられている。一方、特徴量識別部９には、32×96画素と、32×96画素とをマージするマージ処理(3)、セルヒストグラムの正規化(4)が割り当てられている。本図に示すように、画像特徴量計算部７による勾配強度及び勾配方向の算出は、ウィンドウの分割部分毎に行われ、特徴量識別部９によるセルヒストグラムの正規化は、ウィンドウ全体に対して行われる。勾配強度及び勾配方向の算出を、ウィンドウの分割部分毎に行うのは、勾配強度及び勾配方向は、ウィンドウの分割部分毎の算出で足りるからである。これに対してセルヒストグラムに対する正規化は、ウィンドウ分割部分の境界を跨いだ、全体的な処理が必要だからである。
【００７６】
ce1は、32×96画素のうち、画像特徴量計算部７による処理対象として選ばれた画素セルを示す。ce1内部における白抜きは線分画素列であり、客体の輪郭や表面の陰影、絵柄の有無を表す。セル内に含まれる線分画素列の勾配が、画像特徴量計算部７による処理(1)の勾配強度及び勾配方向の算出の対象になる。
画像特徴量計算部７i1,i2,i3,i4・・・iMによるセルヒストグラムの生成(2)では、これら画素セル中に出現している画素列の勾配を、その角度範囲毎に集計する。図中のcnt1は、0°の勾配をもった線分の出現度数のカウント、cnt2は、20°の勾配をもった線分の出現度数のカウント、cnt3は、120°の勾配をもった線分の出現度数のカウント、cnt4は、140°の勾配をもった線分の出現度数のカウントを示す。かかる集計により、線分勾配のヒストグラムが得られる。
【００７７】
図中のグラフgf1は、9次元のHOGであり、0°,20°,40°,60°,80°,100°,120°,140°,160°は、9個の勾配方向を示す。本図では、9個の勾配方向のそれぞれについての勾配の出現度数が算出されている。9次元のHOGは、8×8画素というセル内に見受けられる線分の出現数を、９個の勾配方向に分けて集計したものである。
以上が画像特徴量計算部７についての説明である。続いて、特徴量識別部９によるセルヒストグラムのマージ(3)と、ブロックシフト及びヒストグラムの正規化(4)について説明する。
【００７８】
(3)のセルヒストグラムのマージでは、セル毎に算出されたヒストグラムをマージすることで、64×96画素に対応するセルヒストグラムマップを得る。セルヒストグラムとは、輝度画像セグメントにおけるセル座標系に、個々のセルについて算出されたHOGを割り付けることで、画素領域内部の複数の位置において、勾配強度及び勾配方向がどのように分布しているかを示すマップ形式のデータである。
【００７９】
またセルヒストグラムの正規化(4)では、マージにより得られたセルヒストグラムマップにおいてブロックシフトを行い、各シフト位置において、ブロック枠で囲まれることになるヒストグラムを正規化する。図中のaw3は、正規化のためのブロックシフトの詳細を引き出して示す。正規化のためのブロックシフトは、基点座標が異なる、複数回のブロック水平スキャンsc11,sc12,sc13,sc14・・・によって構成される。図中の(0,0)(0,8)(0,16)(0,24)(0,32)(0,40)(0,48)は、ブロック水平スキャンの複数の基点座標を示す。これらの基点座標はカレントShifted Window内の相対座標である。ブロック水平スキャン時においては、これらの基点座標から、8画素ずつ、ブロックのY座標を増加させてゆく。ブロック水平スキャン時の基点座標の間隔は8画素である。またブロックの縦画素数は、24画素であるから、複数回のブロック水平スキャン時による走査範囲は、互いに重なり合う。図中のgra3は、複数回のブロック水平スキャン時による走査範囲が重なり合うことで形成される階段形状を示す。
【００８０】
図中の矢印aw4は、一個のウィンドウに対する複数のブロック水平スキャンのうち、一個を抜き出してその詳細を示す。図中の(0,0),(8,0)(16,0)(24,0)(32,0)は、ブロック水平スキャンにおいて、ブロックが配置される個々のシフト位置である。これらの座標の差分により、shifted blockのx座標の間隔は、8画素であることがわかる。
図１３の階段形状gra4は、カレントShifted Window内のブロック水平スキャン時において、ブロックの配置位置を8画素ずつ変化させることで得られる複数のブロックの重なりを示す。ウィンドウ内の水平方向スキャンにより、24×24画素であるブロックは8画素ずつシフトするので、shifted blockは互いに重なり合い、かかる階段形状を形成する。水平方向のシフトは、6回(=(64-24)/8+1)行われる。垂直方向のシフトは、10回(=(96-24)/8+1）回なされる。1回以上のシフトがなされることで、ウィンドウ内の位置が規定されたブロックを『shifted block』という。
【００８１】
ブロックが各シフト位置に配置された状態において、ブロックにより囲まれる画素に対して正規化を行う。
(画像特徴量計算部７‐特徴量識別部９の構成のパターン）
横幅が広いウィンドウに対応するセルヒストグラムを処理するべく、画像供給部４は、処理対象となるセルヒストグラムマップを分割して、複数の特徴量識別部９による分散処理に供する。以下、複数の特徴量識別部９による分散処理について説明する。図８では、画像特徴量計算部７の個数が9個、特徴量識別部９の個数が4個である場合の画像認識装置１００２の構成を示した。特徴量識別部９i1,i2,i3,i4のそれぞれが、画像特徴量計算部７i1,i2,i3,i4のうち連続する2つのものから、横32×縦96画素に相当するセルヒストグラムを受け取り、内部でマージして横64×縦96画素のウィンドウに相当するセルヒストグラムを処理するケースを想定する。図８で特に注意が必要なのは、画像特徴量計算部７i1,i2,i3,i4・・・i9からの出力と、特徴量識別部９i1,i2,i3,i4の入力との関係が、１対多の関係になっていることである。この1対多の関係とは、画像特徴量計算部７のうち、連続する任意のものの出力が、特徴量識別部９のそれぞれに入力されるというものである。
【００８２】
画像特徴量計算部７と、特徴量識別部９とに1対多の接続関係が存在することで、図１４（ａ）〜（ｃ）に示すパターンが現れる。
図１４（ａ）は、特徴量識別部９i1,i2,i3,i4のそれぞれが、画像特徴量計算部７i1,i2,i3,i4のうち、連続する2つのものからセルヒストグラムを受け取り、内部でマージして横64画素×縦96画素についてのセルヒストグラムを生成する構成例を示す。この構成では、画像特徴量計算部７i1,i2,i3,i4・・・i9のそれぞれは、横32画素×縦96画素に対してセルヒストグラムを算出する。特徴量識別部９i1〜特徴量識別部９i4は、画像特徴量計算部７i1,i2,i3,i4・・・i9のうち、連続する2つのものからセルヒストグラムを受け取り、これらのセルヒストグラムを内部でマージする。
【００８３】
右下のmg1は、横64×縦96画素を処理するための、セルヒストグラムのマージイメージを示す。「＋」は、横方向に存在する2つの横32×縦96画素について算出された2つのセルヒストグラムが、マージの対象になっていることを示す。下向きの矢印は、上記のマージにより、横64×縦96画素のセルヒストグラムが生成されることを示す。
pt1は、横方向に隣接する2つの画像特徴量計算部７i1,i2,i3,i4・・・i9から横32×縦96画素に対応するセルヒストグラムを特徴量識別部９i1,i2,i3,i4・・・i6に送り込むための供給パターンを示す。
【００８４】
図１４（ｂ）は、特徴量識別部９i1,i2,i3,i4のそれぞれが、画像特徴量計算部７i1,i2,i3,i4・・・i9のうち、連続する3つのものからセルヒストグラムを受け取り、内部でマージして横96×縦96画素のセルヒストグラムを生成する構成例を示す。この構成では、画像特徴量計算部７i1,i2,i3,i4・・・i9のそれぞれは、横32×縦96画素に対してセルヒストグラムを算出する。特徴量識別部９i1,i2,i3,i4・・・i6のうち、特徴量識別部９i1、i2、i4は、画像特徴量計算部７i1,i2,i3,i4・・・i9のうち、連続する3つのものからセルヒストグラムを受け取り、これらのセルヒストグラムを内部でマージさせる。
【００８５】
右下のmg2は、横96×縦96画素を処理するための、セルヒストグラムのマージイメージを示す。「＋」は、横方向に存在する3つの横32×縦96画素について算出された3つのセルヒストグラムが、マージの対象になっていることを示す。下向きの矢印は、上記のマージにより、横96×縦96画素に相当するセルヒストグラムが生成されることを示す。
pt2は、横方向に隣接する3つの画像特徴量計算部７i1,i2,i3,i4・・・i9から横32×縦96画素に対応するセルヒストグラムが特徴量識別部９i1,i2,i3,i4・・・i6に送り込むための供給パターンを示す。破線un1は特徴量識別部９i3が使用されないことを示す。
【００８６】
図１４（ｃ）は、特徴量識別部９i1,i4のそれぞれが、画像特徴量計算部７i1,i2,i3,i4・・・i9のうち、連続する4つのものからセルヒストグラムを受け取り、内部でマージして横128×縦96画素のセルヒストグラムを生成する構成例を示す。この構成において特徴量識別部９i1、特徴量識別部９i4は、画像特徴量計算部７i1,i2,i3,i4・・・i9のうち、連続する4つのものからセルヒストグラムを受け取り、これらのセルヒストグラムを内部でマージさせる。破線un2,un3は、特徴量識別部９i2、特徴量識別部９i3が使用されず、またこれらにセルヒストグラムを供給する画像特徴量計算部７i5も使用されないことを示す。右下のmg3は、横128×縦96画素を処理するための、セルヒストグラムのマージイメージを示す。「＋」は、横方向に存在する4つの横32×縦96画素について算出された4つのセルヒストラムが、マージの対象になっていることを示す。下向きの矢印は、上記の「＋」記号に従ったマージにより、横128×縦64画素に相当するセルヒストグラムが生成されることを示す。
【００８７】
pt3は、横方向に隣接する4つの画像特徴量計算部７から横32×縦64画素のセルヒストグラムが特徴量識別部９i1,i2,i3,i4に送り込こむための供給パターンを示す。
画像特徴量計算部７から特徴量識別部９への供給を、（ａ）〜（ｃ）に示すよう
に変化させることで、横64×縦96画素、横96×縦96画素、横128×縦64画素といった様々な大きさ・形状のウィンドウについてのセルヒストグラムを特徴量として利用することができる。
【００８８】
特徴量識別部９のサポートベクタマシンは、客体を構成する個々の構成要素の類型に応じた学習データTと、カレントのshifted windowについて算出された特徴量Xとを対象にして、shifted windowに、客体の構成要素が存在するかどうかの判定を行う。かかる判定のための特徴量識別部９の内部構成について説明する。学習データと、特徴量とから、客体の有無を判定するサポートベクタマシンの構成には、様々なアルゴリズムに依拠したものがある。本実施形態では、ハードマージンサポートベクタマシン、ソフトマージンサポートベクタマシン、カーネルベースサポートベクタマシンの何れかで特徴量識別部９を構成する。
【００８９】
図１５は、ハードウェアサポートベクタマシンとして識別部４６を構成する場合の内部構成を示す図である。図１５において「polar」は極性判定器を意味する。polarは図１６以降の図面にも登場するが、各記号の意味は以降の図でも同じである。図中の式5-1は、新たなサンプルである特徴量Xが、正例、負例の何れかに属するかを決定付ける決定関数f(x)を示す。当該決定関数は、変数項vfcと、定数項cfcとを含む。識別部４６は、分離超平面法線ベクトルの転置ベクトル(図中のｗT)を算出して、決定関数の変数項を得る変数項算出回路５５と、決定関数の定数項を算出する定数項算出回路５６と、学習データの中から、必要な要素を選んで、これらに出力するセレクタ５７と、変数項と、定数項とを加算する加算器５８と、加算器５８による出力の極性を判定する極性判定回路５９とで構成される。
【００９０】
変数項算出回路５５は、セレクタから出力された学習データ要素のうち、サンプル座標と、符号値との乗算行う乗算器６０と、乗算器６０の乗算結果に、係数αを乗じる乗算器６１と、学習データにおける全ての要素について、乗算器６１による乗算結果の積算を行う積和演算器６２と、積和演算器６２の演算結果である法線ベクトルの転置ベクトルに、決定関数への入力であるXを乗じる乗算器６３とを含み、決定関数の可変項を出力する。
【００９１】
定数項算出回路２２は、正例サポートベクタ(X+)と、負例サポートベクタ(X-)とを加算する加算器６４と、転置ベクトルと、加算器６４により出力されたサポートベクタの加算結果と、-1／2との乗算を行う乗算器６５とを含み、定数項bを出力する。
図１６は、決定関数の意味内容を示す図である。図中の式5-3は、認識辞書に格納されている学習データ集合の構成を示す。学習データ集合は、n次元空間の座標値である要素[X1,X2,X3,X4,X5・・・・Xn]と、その要素の符号値[Y1,Y2,Y3,Y4・・・・Yn]とからなる。符号値Yは、対応する要素が、正例クラス、負例クラスの何れかに帰属するかを示す。図１６右側の座標系は、学習データ集合の各要素がプロットされる。図中の黒丸は、当該座標系にプロットされた要素の座標位置を示す。かかる座標系において、学習データの要素(X1,Y1),(X2,Y2),(X3,Y3),(X4,Y4),(X5,Y5)・・・・は、平面suf1により2つのクラスに分離される。符号値Yは、各要素が、この何れのクラスに帰属するかを示す。
【００９２】
suf1は分離超平面である。これは正例サンプルの分布、負例サンプルの分布のちょうど真ん中に配置せねばならない。式6は、分離超平面を規定する数式である。
suf2は、分離超平面と最短距離にある正例要素(サポートベクタX+という)を通る正例支持超平面であり、式6-1は、正例支持超平面を規定する数式である。suf3は、分離超平面と最短距離にある負例要素(サポートベクタX-という)を通り、かつ、分離超平面と平行な面を通る負例支持超平面であり、式6ー2は、負例支持超平面を規定する数式である。
【００９３】
図中のderiv1は、式5-1における決定関数の変数項において、入力値xに乗じられる転置ベクトルが、どのように導出されたかという算出の経緯を示す。この転置ベクトルの元となる法線ベクトルは、超平面の法線ベクトルであり、座標系における要素の座標xiと、当該要素の符号値Yiと、係数αiとを乗じたものを、学習データ集合の全ての要素について足し合わせることで算出されることを示す。集合要素のそれぞれに乗じられる係数αiは、2つの支持超平面との距離(マージン)を最小化するものである。
【００９４】
図中のderiv2は、決定関数の定数項bが、どのように導出されたかという算出の経緯を示す。かかる定数項は、正例サポートベクタ(X+)と、負例サポートベクタ(X-)との和に、転置ベクトルと、-1/2とを乗じることで算出されることを示す。
Lh(x)は、特徴量xと、分離超平面との距離に応じた尤度を示す。ここで「尤度」は、超分離平面による特徴量Xの分類の確からしさを意味する。特徴量xと、分離超平面との距離が長いということは、超分離平面による特徴量Xの分類の確からしさが高いことを意味し、特徴量Xについての尤度が高いことを意味する。特徴量xと、分離超平面との距離が短いということは、超分離平面による特徴量Xの分類が曖昧であり、特徴量Xについての尤度が低いことを意味する。以降の説明では、特徴量xと、分離超平面との距離を、特徴量の尤度として扱う。
【００９５】
以上がハードマージンサポートベクタマシンとして構成する場合の識別部４６の内部構成である。続いて、識別部４６をソフトマージンサポートベクタマシンとして構成する場合の詳細について説明する。
ハードマージンサポートベクタマシンと、ソフトマージンサポートベクタマシンとの違いは、学習データ要素の分離の仕方の違いである。つまり、ハードマージンサポートベクタマシンは、空間座標系内に定義された「平面」によって学習データ要素を分離するのに対し、ソフトマージンサポートベクタマシンは、正例要素と、負例要素とが複雑に入り組んだ「超曲面」によって学習データの要素が分離されるという違いである。
【００９６】
図１７は、ソフトマージンサポートベクタマシンとして構成される識別部４６の内部構成を示す図である。図中の式7は、ソフトマージンサポートベクタマシンにおける決定関数を表す数式である。式8は、式7の決定関数における定数項bを規定する数式である。
ソフトマージンサポートベクタマシンとして構成される識別部４６は、学習データ集合における全ての要素座標と、学習データ集合における全ての符号値との積和演算を行う集合積和演算回路６６と、決定関数の定数項を算出する定数項算出回路６７と、学習データの中から、必要な要素を選んで、これらに出力するセレクタ６８a,b,cと、変数項と、定数項との加算を行う加算器６９と、加算器６９の出力値の極性を判定する極性判定回路７０とを備える。
【００９７】
集合積和演算回路６６は、学習データ集合の要素座標Xi,Yiを転置することで得られる転置座標に、学習データ集合の符号値Yiを乗じる乗算器７１と、その乗算結果に、係数αiを乗じる乗算器７２と、学習データ集合における一要素の転置座標と、学習データ集合における一要素の符号値Yiとに対して積和演算を行い、演算結果を出力する積和演算器７３と、積和演算器７３の出力に、決定関数の入力値である特徴量Xを乗じる乗算器７４とを含む。
【００９８】
定数項算出回路６７は、正例サポートベクタに、学習データ集合要素の転置座標を乗じる乗算器７５と、乗算器７５の乗算結果に、学習データ集合の1つの要素の符号値と、係数αiとを乗じる乗算器７６、７７と、負例サポートベクタに、学習データ集合要素の転置座標を乗じる乗算器７８と、乗算器７８の乗算結果に、学習データ集合の1つの要素の符号値Yiと、係数αiとを乗じる乗算器７９、８０と、乗算器７７の出力と、乗算器８０の出力とを加算する加算器８１と、学習データ集合に含まれる全ての要素の座標及び符号値について、加算器８１の加算結果を積算するという処理を実行する積和演算器８２と、積和演算器８２の出力に、-1/2を乗じる乗算器８３とを含む。
【００９９】
以上がソフトマージンサポートベクタマシンについての説明である。続いて、カーネルベースサポートベクタマシンとして特徴量識別部９を構成する場合の特徴量識別部９の内部構成について説明する。
正例要素と、負例要素とが複雑に入り組み、超曲面を構成する場合が多い。しかし、n次元の入力空間において、正例要素、負例要素が複雑に入り組んでいる場合でも、入力空間のn次元データを、特徴空間のm次元データ(m>n)に変換すれば、サポートベクタマシンの適用が可能になる。n次元入力空間を、m次元特徴空間に写像する関数をΦ(x)とすると、サポートベクタマシンに適用されるべき学習データDは、以下のサンプル座標集合Tと、符号集合Zとにより定義される。
【０１００】
T=(Φ1(X1),Φ2(X2),Φ3(X3)・・・・Φm(Xm))、Z=(Z1,Z2,Z3・・・・Zm)
カーネルベースサポートベクタマシンでは、カーネル関数Φを用いることで、m次元特徴空間における決定関数による決定を簡易化する。ここでカーネル関数Φとしては、多項式カーネル、ラジアル基底関数カーネル(ガウシアンカーネル)、双曲線正接カーネルが良く知られている。
【０１０１】
特徴量識別部９をカーネルベースサポートベクタマシンとして構成する場合の詳細について説明する。図１８は、カーネルベースサポートベクタマシンとして識別部４６を構成する場合の識別部４６の内部構成を示す。
図中の式10は、カーネルベースサポートベクタマシンにおける決定関数を表す数式である。式11は、式10の決定関数における定数項bを規定する数式である。
【０１０２】
本図に示すように、識別部４６は、決定関数の変数項を算出する変数項算出回路８６と、決定関数の定数項を算出する定数項算出回路８７と、変数項算出回路８６及び定数項算出回路８７に対して学習データ集合の必要な要素の座標、符号値を出力するセレクタ８８a,b,cと、変数項算出回路８６の出力と、定数項算出回路８７の出力とを加算する加算器８９と、加算器８９の出力の極性を判定する極性判定回路９０とを含む。
【０１０３】
変数項算出回路８６は、学習データ集合の任意の要素の座標と、決定関数の入力値Xとに対して、カーネル関数の演算を行い、演算結果を出力するカーネル演算器９１と、カーネル演算器９１の出力結果に、学習データ集合の任意の要素の符号値Yiを乗じる乗算器９２と、乗算器９２の出力に、係数αiを乗じる乗算器９３と、学習データ集合に属する全ての要素について、乗算器９３の出力の積算を行う積和演算器９４とを含む。
【０１０４】
定数項算出回路８７は、正例サポートベクタX+と、任意の要素Xiとを対象としてカーネル関数の演算を実行し、出力するカーネル演算器９５aと、カーネル演算器９５aの出力に、学習データ集合における任意の要素の符号値Yiを乗じる乗算器９６aと、乗算器９６aに、係数αを乗じる乗算器９７aと、負例サポートベクタ(X-)と、任意の要素Xiとを対象としてカーネル関数の演算を実行し、出力するカーネル演算器９５bと、カーネル演算器９５bの出力に、学習データ集合における任意の要素の符号値Yiを乗じる乗算器９６bと、乗算器９６bの出力に、係数αiを乗じる乗算器９７bと、乗算器９７bの出力と、乗算器９７aの出力とを加算する加算器９７cと、学習データ集合に含まれる全ての要素について、加算器９７cによる加算結果の積算を行う積和演算器９８と、積和演算器９８の出力に、-1/2を乗じる乗算器９９とを備える。なお、カーネルベースサポートベクタマシンに代えて、インターカーネルサポートベクタマシンを用いて識別部４６を構成してもよい。
【０１０５】
以上が  識別部４６をサポートベクタマシンとして構成する場合の内部構成についての説明である。
(認識辞書の構成)
次に、可変次元数のHOGである特徴量Xと共に用いられる認識辞書１０の構成について説明する。
【０１０６】
図１９（ａ）は、認識辞書１０の構成を示す図である。認識辞書は、統一形式のレコードを複数配置することで構成される。このレコードは、構成要素の類型(図中のtype1,2,3,4・・・)と、学習データ(図中のT1,T2,T3,T4・・・・Tm)とから構成される。個々のレコードは、学習データに、類型を対応付けているので、構成要素の類型が与えられれば、その類型に対応する学習データを取り出すことができる。
【０１０７】
学習データは、オンライン学習の過程で入力された様々な認識モデルを対象にして生成されている。学習データの元になった認識モデルを明示すべく、学習データには類別の項目が設けられている。新規に入力される特徴量の次元数は可変長であるが、その次元数は、式2に示したように構成情報のウィンドウ検索情報に規定された横幅、縦幅に応じたものとなる。一方、学習データの次元数も、オフライン学習の過程で使用した、何等かの類別の画像サンプルの横幅、縦幅に応じた値になっている。
【０１０８】
構成情報のウィンドウ検索情報には、構成要素の類別が記載されており、同様の類別が認識辞書１０の個々の学習データにも存在するから、認識辞書１０の学習データのうち、新規に入力される特徴量の類別と合致するものを選んで、新規に入力される特徴量との対比に用いる。特徴量との対比にあたって、同じ類別の学習データを用いることで、特徴量と、当該特徴量との対比に利用される学習データとで、次元数を整合させることができる。
【０１０９】
図１９（ｂ）は、構成情報設定部１２から認識辞書１０に対してなされる構成要素の類別の指定と、当該指定に基づく、認識辞書１０から特徴量識別部９i1,i2,i3,i4・・・・i73への学習データの供給とを示す。本図におけるins2は、客体２の基本となる構成要素１を対象としたWindow検索情報の類別(type3)を特徴量識別部９i1,i2,i3,i4・・・・i73に供給するよう、認識辞書１０に指示するものである。out2は、当該指示に応じた認識辞書１０から特徴量識別部９i1,i2,i3,i4・・・・i73への学習データT3の供給を示す。以上の供給により、特徴量識別部９i1,i2,i3,i4・・・・i73には客体を構成する個々の構成要素の類型に応じた学習データが供給されることになる。
【０１１０】
（客体認識部１１の内部構成）
図２０は、客体認識部１１の内部構成を示す構成図である。この構成図は特に、図５（ｂ）に示した式1の演算を実行するために構成されている。図中ge1は、ウィンドウ位置関係基準からのX＿max、Y＿max、X＿min、Y＿minの取得を示す。ge2は、サーチ領域リストに示される局所領域であって、基本となる構成要素を包含するとされるものの中心座標(X1,Y1)、及び、補助的な構成要素を包含するとされるものの中心座標(X2,Y2)の取得を示す。
【０１１１】
図２０において加算器１１１〜論理積演算器１１７は、式1のうちX1+X＿min≦X2かつX1+X＿max≧X2の要件が成立するか否かを判定する。
具体的にいうと、X1+X＿min≦X2かつX1+X＿max≧X2の成否を判定する回路群は、ウィンドウ位置関係基準のX＿minと、基本となる構成要素を包含するとされた局所領域の中心位置の座標X1とを加算する加算器１１１、補助的な構成要素を包含するとされた局所領域の中心位置の座標X2から加算器１１１による加算結果を減じる減算器１１２、減算器１１２による減算結果の極性(正負)を判定する極性判定器１１３、ウィンドウ位置関係基準のX＿maxと，基本的な構成要素１の中心位置の座標X1とを加算する加算器１１４、加算器１１４による加算結果からX2を減じる減算器１１５、減算器１１５による減算結果の極性(正負)を判定する極性判定器１１６、極性判定器１１３の出力と、極性判定器１１６の出力との論理積を算出する論理積演算器１１７とを含む。
【０１１２】
加算器１２１〜論理積演算器１２７は、式1のうちY1+Y＿min≦Y2かつY1+Y＿max≧Y2の要件が成立するか否かを判定する。
具体的にいうと、Y1+Y＿min≦Y2かつY1+Y＿max≧Y2の成否を判定する回路群は、ウィンドウ位置関係基準のY＿minと、基本となる構成要素を包含するとされた局所領域の中心位置の座標Y1とを加算する加算器１２１、補助的な構成要素を包含するとされた局所領域の中心位置の座標Y2から加算器１２１による加算結果を減じる減算器１２２、減算器１２２による減算結果の極性(正負)を判定する極性判定器１２３、ウィンドウ位置関係基準のY＿maxと，基本的な構成要素１の中心位置の座標Y1とを加算する加算器１２４、加算器１２４による加算結果からY2を減じる減算器１２５、減算器１２５による減算結果の極性(正負)を判定する極性判定器１２６、極性判定器１２３の出力と、極性判定器１２６の出力との論理積を算出する論理積演算器１２７とを含む。
【０１１３】
論理積演算器１２８は、論理積演算器１１７の出力と、論理積演算器１２７の出力との論理和を算出し、算出結果が正であれば、(X1,Y1)を中心位置とした局所領域と、(X2,Y2)を中心位置とした局所領域との組合せは、ウィンドウ位置関係基準を満たすとの判定結果を下す。
以上が画像認識装置１００２の構成要素についての説明である。本実施形態の画像認識装置１００２では、認識対象をその構成要素毎に認識するから、個々の構成要素についてウィンドウスキャンを行う必要がある。この構成要素についてのウィンドウスキャンには、セグメント全域スキャン、全域−部分域組合せスキャン、構成要素交互スキャンがある。
【０１１４】
（ウィンドウスキャンの方式）
認識対象が、信号機である場合を一例に挙げて、これらの走査方式について説明する。  図２１は、セグメント全域スキャンを示す。図２１（ａ）は、信号機の柱部分を包含するよう縦幅、横幅が設定されたウィンドウによる全域スキャンを示す。信号機の柱部分は縦長形状であるから、ウィンドウは縦長形状に設定される。図２１（ａ）では、信号機の柱部分を包含するよう、ウィンドウを縦長形状に設定してセグメントの全域をスキャンする。hs11,12,13は、縦長ウィンドウの水平方向のシフトを示す。vs11,vs12は、ウィンドウの垂直方向のシフトを示す。図２１（ｂ）は、この全域スキャンの過程で発見された信号機の柱部分を示す。
【０１１５】
図２１（ｃ）は、信号機の三色灯を包含するよう、縦幅、横幅が設定されたウィンドウによる全域スキャンを示す。三色灯の形状は横長であるから、ウィンドウの形状は、横長形状に設定される。図２１（ｃ）では、ウィンドウをこのように横長形状に設定して、ウィンドウの水平方向のシフトhs1,2,3,4と、ウィンドウの垂直方向のシフトvs1,2,3とを、セグメントの全域について繰り返す。図２１（ｄ）は、この全域スキャンの過程で発見された信号機の三色灯部分を示す。以上がセグメント全域スキャンについての説明である。
【０１１６】
続いて、全域−部分域組合せスキャンの詳細について説明する。
図２１（ｅ）〜（ｈ）は、全域−部分域組合せスキャンの処理手順を示す。信号機の三色灯部分を包含するようウィンドウを設定して、セグメント全域スキャンを行う点は、図２１（ａ）〜（ｄ）と同じである。差異は、柱部分についてのスキャン範囲に存在する。柱部分についてのスキャン範囲の差異とは、図２１（ｃ）では、三色灯部分についてセグメント全域を対象としたスキャンを実行していたのに対し、図２１（ｇ）では、全域−部分域組合せスキャンでは、柱部分を包含しているとして発見された局所領域の中心座標(xi,yi)を基準として、上下方向はY＿maxの範囲、左方向には2・X＿maxの範囲で、横長ウィンドウについてのスキャンを行う点である。座標(xi,yi)を基準としたY＿max、2・X＿maxの範囲で、横長ウィンドウについてのスキャンがなされるので、補助的な構成要素２についてのスキャン範囲は、狭く制限される。全域−部分域組合せスキャンでは、これにより、三色灯部分の早期発見を期待することができる。
【０１１７】
図２１（ｉ）〜（ｌ）は、構成要素交互スキャンの過程を示す。図２１（ｉ）は、構成要素交互スキャンにおける一回目のシフトを示す。この一回目のシフトにおいて、縦長ウィンドウにより囲まれる画素に対する認識と、横長ウィンドウにより囲まれる画素の認識とが実行される。図２１（ｊ）は、２回目のシフト、図２１（ｋ）は３回目のシフトを示す。図２１（ｌ）は、複数回の縦長ウィンドウ、横長ウィンドウのシフトを経ることで縦長ウィンドウ、横長ウィンドウが信号機の場所に到達した状況を示す。
【０１１８】
最初のスキャンに用いられる縦長ウィンドウと、二回目のスキャンに用いられる横長スキャンとを組合せると、信号機を囲む逆Ｌ字の図形を表現することになる。構成要素交互スキャンは、この逆Ｌ字の図形により、画像をスキャンするものである。
ウィンドウラスタスキャンにより局所領域がサーチ領域リストに記載されると、客体認識部１１がサーチ領域リストに記載された局所領域座標に従い、総合判断を行う。以下、客体認識部１１による総合判断について説明する。ここでの説明は、図２２の事例を処理対象として想定する。図２２で想定している事例とは、基本となる構成要素１を対象とした1回目のウィンドウラスタスキャンで3つの局所領域座標が発見され、補助的な構成要素２を対象とした2回目のウィンドウラスタスキャンで3つの局所領域座標が発見されたというものである。
【０１１９】
図２２（ａ）は、ウィンドウラスタスキャンのスキャン結果を示す。（ａ）は、基本となる構成要素1を対象としたウィンドウラスタスキャンのスキャン結果と、補助的な構成要素２を対象としたウィンドウラスタスキャンのスキャン結果とを示す。これらのスキャン結果は、基本となる構成要素１をサーチするためのスキャンで発見された複数の局所領域と、補助的な構成要素２をサーチするためのスキャンで発見された複数の局所領域とを互いに重ね合わせたものである。
【０１２０】
図２２（ｂ）は、互いに重なり合う局所領域を示す。図中の(x1a,y1a)、(x1b,y1b)、(x1c,y1c)は、3つの局所領域ar4,ar5,ar6の中心位置である。(x2a,y2a)、(x2b,y2b)、(x2c,y2c)は、3つの局所領域ar1,ar2,ar3の中心位置である。
補助的な構成要素２の局所領域座標は3つであり、基本となる構成要素１の局所領域座標は3つであるから、ウィンドウ位置関係基準を満たすかどうかが、9個の局所領域座標の組合せのそれぞれについて判断されることになる。
【０１２１】
図２２（ｃ）は、局所領域座標の組合せを、ウィンドウ位置関係基準に適用した場合の客体認識部１１による判定結果を表形式で示す図である。本図に示される局所領域座標は、基本的な構成要素１を包含しているとされた3つの局所領域の中心座標(x1a,y1a)、(x1b,y1b)、(x1c,y1c)、及び、補助的な構成要素２を包含しているとされた3つの局所領域の中心座標(x2a,y2a)、(x2b,y2b)、(x2c,y2c)である。
【０１２２】
(x1c,y1c)は、基本的な構成要素を包含するとされた3つの局所領域の中心座標のうち、一番右側に位置しており、(x2a,y2a)は、補助的な構成要素を包含するとされた3つの局所領域の中心座標のうち、一番左側に位置しているから、中心座標間の距離は、(x1c,y1c)と、(x2a,y2a)との組合せが一番長くなる。よって、(x1c,y1c)と、(x2a,y2a)との組合せでは、その中心座標間の距離が、ウィンドウ位置関係基準を満たすことになる。図１９（ｃ）の表では、(x1c,y1c)と、(x2a,y2a)との組合せが、ウィンドウ位置関係基準を満たすことが明示されている(図中のtrue)。
【０１２３】
(x2b,y2b)、(x2c,y2c)は、(x2a,y2a)よりも右側に位置するので、図１９（ｃ）の表において、(x1c,y1c)と、(x2a,y2a)との組合せ以外の組合せは全て、ウィンドウ位置関係基準を満たさないことが明示されている(図中のfalse)。
以上のように、ウィンドウによるスキャンで発見された局所領域の中心座標の組合せの中から、ウィンドウ位置関係基準を満たすものを選ぶことで、実際の認識対象の形状に近い、局所領域の組合せを特定することができる。図２２（ｄ）は、(x1c,y1c)を中心として配置された局所領域と、(x2a,y2a)を中心として配置された局所領域とを示す。
【０１２４】
以下、図２３（ａ）〜（ｅ）を参照しながら、セグメント全域スキャンを実行する場合における、画像認識装置１００２の構成要素間の入出力について説明する。
かかる説明は、基本的な構成要素1である信号機の柱部分をサーチするためのセグメント全域スキャン(図２３（ａ）)、基本的な構成要素1である信号機の柱部分を包含する局所領域の発見(図２３（ｂ）)、補助的となる構成要素2である信号機の三色灯部分をサーチするためのセグメント全域スキャン(図２３（ｃ）)、信号機の三色灯部分を包含する局所領域の発見(図２３（ｄ）)、認識で発見された局所領域の全体的な位置関係に応じた総合判断(図２３（ｅ）)という5つのフェーズから構成される。
【０１２５】
図２３（ａ）は、信号機の柱部分を包含するよう縦幅、横幅が設定されたウィンドウによるラスタスキャンを示す。図２３（ａ）の右側は、ラスタスキャンにあたっての構成要素間の入出力を示す。矢印set1,2は、構成情報設定部１２による設定を示す。この設定は、画像供給部４に対する縦幅、横幅によるウィンドウ形状の指定と、認識辞書１０に対する学習データの類型設定とを示す。out1は、特徴量識別部９から客体認識部１１への出力を示す。この出力は、補助的な構成要素２を包含するとされた局所領域を指定するもので、当該局所領域の座標(x,y)、横幅Win＿W、縦幅Win＿H、尤度Lhを含む。引き出し線pu1は、柱部分を包含するよう縦幅、横幅が設定されたウィンドウによるラスタスキャンの軌跡を引き出して示す。
【０１２６】
図２３（ｂ）は認識結果の出力時における構成要素間の入出力を示す。図２３（ｂ）の右側は、このように複数の局所領域がえられた場合の画像認識装置１００２における複数の構成要素間の入出力を示す。引き出し線pu2は、基本的な構成要素１を包含するとして検出された複数の局所領域を引き出して示す。上記の入出力のうち、矢印wr1は、客体認識部からサーチ領域リストへの認識結果(局所領域の縦幅、横幅、座標(x,y))の追記を示す。本図に示すように、認識結果として3つの局所領域が発見されれば、その3つの局所領域についてのデータが、サーチ領域リストのエントリーとして追加される。
【０１２７】
図２３（ｃ）は、三色灯部分についてのスキャンを示す。図２３（ａ）と比較すると、以下の点が異なる。第１にスキャンの対象が異なる。これは、図２３（ａ）では構成要素を包含するようウィンドウを縦長形状に設定していたのに対し(set1,set2)、図２３（ｃ）では、ウィンドウを横長のものに設定している(set3,set4)というものである。これに併せて、画像供給部４に対する縦幅、横幅の設定も、三色灯部分を包含するように横長のものに設定されている。引き出し線pu3は、三色灯部分をサーチするためのウィンドウラスタスキャンを示す。out3は、三色灯部分を発見した際の特徴量識別部９から客体認識部１１への出力を示す。
【０１２８】
図２３（ｄ）は認識結果の出力時における構成要素間の入出力を示す。図２３（ｄ）の右側は、このように複数の局所領域がえられた場合の画像認識装置１００２における複数の構成要素間の入出力を示す。引き出し線pu4は、補助的な構成要素２を包含するとして検出された複数の局所領域を引き出して示す。矢印wr2は、客体認識部１１からサーチ領域リストへの認識結果(局所領域の縦幅、横幅、座標(x,y))の追記を示す。
【０１２９】
図２３（ｅ）は、複数局所領域の全体的な位置関係に応じた認識結果の決定を示す。ref1は、サーチ領域リストに記載されている座標の参照を示す。ref2は、構成情報に示されるwindow位置関係基準の参照を示す。res1は、局所領域の座標と、縦幅、横幅との組合せに応じた総合判断の出力を示す。引き出し線pu5は、位置関係が適切であると判定された基本的な構成要素と、補助的な構成要素との組合せを引き出して示す。
【０１３０】
以上が、構成要素について、画像認識を行う場合の具体例についての説明である。
これまでに述べた、画像認識装置１００２の構成要素の処理内容は、様々な外部事象や装置の内部パラメータに応じた、ハードウェア資源に対する処理手続きとして一般化することができる。そのような一般化された処理手続きを示すのが、図２４〜図２６のフローチャートである。
【０１３１】
図２４は、画像認識装置１００２の全体手順を示すフローチャートである。本フローチャートは、ステップＳ１は、カメラ装置１００１からのフレーム画像の入力待ちであり、もしフレーム画像の入力があれば、ステップＳ２において入力されたフレーム画像をカレントフレーム画像とし、当該カレントフレーム画像を水平方向に３分割、垂直方向に３分割することで9個のセグメントを得て、個々のセグメントについて、ステップＳ３、ステップＳ３'からなるループを実行する。このループは、カレントフレーム画像を構成する複数のセグメントのそれぞれについて、ステップＳ４〜ステップＳ７の処理を繰り返すものである。このステップＳ４〜ステップＳ７の処理とは、コンフィグレーション情報におけるスキャン方式の指定に従い(ステップＳ４)、セグメント全域スキャン(ステップＳ５)、全域−部分域組合せスキャン(ステップＳ６)、構成要素交互スキャン(ステップＳ７)を選択的に実行するものである。
【０１３２】
何れかの方式によるスキャンがセグメントのそれぞれについて実行されれば、ステップＳ８において、カレントフレーム画像を構成するセグメントのどれかに、認識対象が存在するかどうかの判定を行う。何れかのセグメントが認識対象を包含している場合、ステップＳ９において、カレントフレーム画像のうち、各構成要素を包含するとされた局所領域を囲み、ステップＳ１によるフレーム画像の入力待ちに戻る。
【０１３３】
以上のステップＳ３〜ステップＳ７のループにより、ウィンドウラスタスキャンによる個々のシフト位置において、shifted windowを特徴付ける特徴量が算出され、shifted windowにおける人物像の有無が、当該特徴量に基づき判定される。
ステップＳ５はサブルーチン化されており、より詳細な処理手順に展開できる。図２５は、セグメント全域スキャンの処理手順を示すフローチャートである。変数iは、構成情報に含まれる複数の構成要素のそれぞれを指示する変数である。X＿Start、Y＿Startは、カレントウィンドウの初期位置のX座標、Y座標を示す。X＿End、Y＿Endは、カレントウィンドウの終了位置のX座標、Y座標を示す。
【０１３４】
図２５のフローチャートは、ホスト装置１００３により設定された複数の構成情報の中から1つを選んで(ステップＳ２１)、ステップＳ２２〜ステップＳ３５からなるループ処理を実行する。当該ループ処理は、変数iを制御変数としている。変数iは、複数の構成要素のうち、処理対象とされている1つのものを特定する変数である。上記ループは、ステップＳ２２において当該変数iを1に初期化し、その後、認識対象を構成する複数の構成要素のうち、変数iにより指定されるものを、ステップＳ２３からステップＳ３４までの処理に供する。
【０１３５】
変数iで特定される構成要素iについて実行される処理内容を説明する。先ずステップＳ２３において、選択された構成情報内の構成要素iの縦幅Win＿H、横幅Win＿Win＿Wをカレントウィンドウの縦幅、横幅として決定し、ステップＳ２４では、構成要素iの類型を認識辞書１０に設定する。ステップＳ２５では、横幅Win＿Win＿Wを32で割って、その商をHcとする。続くステップＳ２６では、横方向に位置するHc個の画像特徴量計算部７を1個の特徴量識別部９の供給元として選択するよう、画像特徴量計算部７i1,i2,i3・・・・iMから特徴量識別部９i1,i2,i3,i4・・・・iNへの供給経路を規定する。
【０１３６】
ステップＳ２７ではX＿Startをセグメント原点のX座標「0」に設定すると共に、Y＿Startをセグメント原点のY座標「0」に設定する。ステップＳ２８ではX＿Endをセグメント原点のX座標である639-Win＿Wに設定すると共に、Y＿Endをセグメント原点のY座標である359-Win＿Hに設定する。以上の設定後、(X＿Start、Y＿Start)から(X＿End、Y＿End)までのスキャンを実行する(ステップＳ２９)。次に、ステップＳ３０において、画像特徴量計算部７による特徴量算出、特徴量識別部９による識別を実行させ、ステップＳ３１に移行する。ステップＳ３１は、決定関数の関数値である符号が正になった特徴量識別部９(i)が特徴量識別部９i1,i2,i3,i4・・・・iNの中に存在するかどうかの判定である。存在しなければ、当該ステップＳ３１がNoになりループを抜けて、フローチャートの処理を終了する。もし存在すれば、ステップＳ３１がYesになり、ステップＳ３２に移行して、特徴量識別部(i)の識別子を、ウィンドウ中心位置のXY座標(Xi,Yi)に変換する。その後、ウィンドウ中心位置のXY座標(Xi,Yi)、カレントウィンドウの縦幅Win＿H、横幅Win＿W、構成要素(i)の類型type(i)、尤度Lh(i)を、サーチ領域リストのエントリーに追記する(ステップＳ３３)。
【０１３７】
ループの終了要件は、当該変数iが、選択された構成情報における構成要素の総数以上になることである(ステップＳ３４)。変数iが1であれば、ステップＳ３４はNoになり、ステップＳ３５に移行する。当該ステップＳ３５では、変数iを増加させて、次の構成要素を処理対象にする。これにより処理は、ステップＳ２３にまで戻る。ステップＳ３５による変数iの増加で、2番目以降の構成要素が処理に供されることになる。ループが複数回繰り返され、変数iが総数以上になると、ループ終了要件を規定するステップＳ３４がYesになってループを抜ける。
【０１３８】
以上の処理が、選択された構成情報を構成する全ての構成要素について繰り返される。ステップＳ３４の終了条件が満たされた場合、ステップＳ３６に移行し、複数の局所領域の全体的な位置関係に応じて総合判断を行う。
図２５のステップＳ３６(局所領域の位置的関係に応じた総合判断)もサブルーチン化されており、より詳細な処理手順に展開することができる。その展開がなされた処理手順を示したのが図２６（ａ）のフローチャートである。図２６（ａ）は、局所領域の位置的関係に応じた総合判断手順を示すフローチャートである。図２４のフローチャートのステップＳ３７〜ステップＳ３９は、変数iを制御変数としたループを規定する。ステップＳ３７は、サーチ領域リストの全ての組合せの中に、構成情報におけるウィンドウ位置関係基準を満たすものが存在するかどうかの判定である。存在する場合、サーチ領域リストに示される複数の局所領域は、認識対象を表すとの認識結果を下して、サーチ領域リストをリターンする(ステップＳ３８)。存在しない場合、サーチ領域リストに示される複数の局所領域は、認識対象を表さないとの認識結果を下して、サーチ領域リストをリターンする(ステップＳ３９)。
【０１３９】
ここで、ステップＳ２９における、(X＿Start、Y＿Start)から(X＿End、Y＿End)までのウィンドウラスタスキャンもサブルーチン化されており、より詳細な処理手順に展開することができる。その展開がなされた処理手順を示したのが図２６（ｂ）のフローチャートである。
図２６（ｂ）は、ウィンドウラスタスキャンの処理手順を示すフローチャートである。本フローチャートにおいてWin＿Xは、shifted windowの基点(ウィンドウの左上位置)のX座標を示す変数であり、Win＿Yは、shifted windowの基点のY座標を示す変数である。Win＿X、Win＿Yは以降のフローチャートにも登場するが、これらのフローチャートのWin＿X、Win＿Yの意味は上記の通りである。図２６（ａ）のフローチャートは、Win＿Xについての内周ループ、Win＿Yについての外周ループによって構成される。
【０１４０】
内周ループは、Win＿XをX＿Startで初期化した後(ステップＳ４２)、shifted window(Win＿X、Win＿Y、Win＿H、Win＿W)を対象としたHOG特徴量の計算を実行し(ステップＳ４３)、その後、ステップＳ４４を実行する。
判定ステップＳ４４は、内周ループの終了要件を規定するものであり、変数Win＿Xが、X座標の最大値であるX＿End以上になったか否かを判定する。変数Win＿XがX＿Startであれば、ステップＳ４４は、Noになり、ステップＳ４５に移行する。当該ステップＳ４５は、変数Win＿Xを増加させて、次のshifted windowを処理対象にする。以降、処理は、ステップＳ４３にまで戻る。ステップＳ４５による変数の増加で、2番目以降のshifted windowが処理に供されることになる。ループが複数回繰り返され、変数Win＿XがX＿End以上になると、ループ終了要件を規定するステップＳ４４がYesになって内周ループを抜ける。
【０１４１】
外周ループは、Win＿YをY＿Startで初期化して(ステップＳ４１)、内周ループであるステップＳ４２〜ステップＳ４５を実行し、その後、Win＿YがY＿end以上になったかどうかを判定して(ステップＳ４６)、Win＿YがY＿end以上ではない場合、Win＿Yに8を加算する(ステップＳ４７)という処理を、ステップＳ４６がYesと判定されるまで繰り返すものである。
【０１４２】
判定ステップＳ４６は、外周ループの終了要件を規定するものであり、変数Win＿Yが、Y座標の最大値であるY＿End以上になったか否かを判定する。変数Win＿YがY＿Startであれば、ステップＳ４６は、Noになり、ステップＳ４７に移行する。当該ステップＳ４７は、変数Win＿Yを増加させて、次のshifted windowを処理対象にする。以降、処理は、ステップＳ４２にまで戻る。ステップＳ４７による変数の増加で、2番目以降のshifted windowが処理に供されることになる。ループが複数回繰り返され、変数Win＿YがY＿end以上になると、ループ終了要件を規定するステップＳ４６がYesになって外周ループを抜ける。
【０１４３】
この内周ループ、外周ループの実行により、横方向シフト位置のそれぞれで、shifted windowを対象とした特徴量が算出される。
図２６（ｂ）のshifted window(Win＿X、Win＿Y、Win＿H、Win＿W)を対象としたHOG特徴量の計算(ステップＳ４３)も、サブルーチン化されており、より詳細な処理手順に展開できる。展開がなされたブロックラスタスキャンの処理手順を示したのが図２７のフローチャートである。
【０１４４】
図２７は、Shifted window(Win＿X、Win＿Y、Win＿H、Win＿W)領域のHOG特徴量計算手順を示すフローチャートである。本フローチャートにおいてステップＳ５０では、ウィンドウをHｃ個に分割することで得られた分割部分のそれぞれを、供給元となる画像特徴量計算部７のそれぞれに供給し、ステップＳ５１では、分割部分の全ての画素に対して勾配強度と、勾配方向を算出する。ステップＳ５２では、８×８画素(セル毎)の勾配方向毎に勾配強度をまとめることでセルヒストグラムを得る。
【０１４５】
ステップＳ５３ではWin＿Wを8で割って2を引いた値をCell＿Y＿Endに設定し、ステップＳ５４では、Win＿Hを8で割って2を引いた値をCell＿Y＿Endに設定する。
これ以降は、Cell＿Xを対象とした内周ループ、Cell＿Yを対象とした外周ループから構成される。内周ループは、Cell＿Xを0で初期化して(ステップＳ５６)、(Cell＿X、Cell＿Y)を左上座標とした３×３セルに対応するセルヒストグラムを正規化する(ステップＳ５７)。以降、Cell＿Xがブロック終端画素のX座標(Cell＿X＿End)に到達したかどうかを判定する(ステップＳ５８)。
【０１４６】
変数Cell＿Xが0であれば当然ステップＳ５８はNoになりステップＳ５９に移行する。ステップＳ５９は、Cell＿Xをインクリメントして、次の３×３セルに対応するセルヒストグラムを処理対象にする。以降、ステップＳ５７にまで戻る。ステップＳ５９による変数の増加で、2番目以降の３×３セルが処理に供されることになる。ループが複数回繰り返され、変数Cell＿XがCell＿X＿End以上になると、ループ終了要件を規定するステップＳ５８がYesになってループを抜ける。以上が内周ループについての説明である。
【０１４７】
外周ループは、Cell＿YをY0で初期化した後(ステップＳ５５)、内周ループを実行し、内周ループが終了した後、Cell＿YがCell＿Y＿Endに到達したかどうかを判定する(ステップＳ６０)、Cell＿YがCell＿Y＿Endでない場合、Cell＿Yに1を加算して(ステップＳ６１)、ステップＳ５６に戻る処理を、Cell＿YがCell＿Y＿End以上になるまで繰り返す。外周ループが一巡する度に、81次元の勾配度数からなる81次元HOGが、一行分のシフト位置のそれぞれについて算出される。
【０１４８】
外周ループが終了すると、81次元HOGを連結することで次元数D(W,H)のHOGを得てリターンする。以上がウィンドウラスタスキャン、ブロックラスタスキャンについての説明である。
続いて、全域−部分域組合せスキャンの詳細について説明する。全域−部分域組合せスキャン（図２４のステップＳ６）はサブルーチン化されており、より詳細な処理手順に展開することができる。図２８は、全域−部分域組合せスキャンの手順を示すフローチャートである。本フローチャートは、図２５のフローチャートをベースにして作成されている。コンフィグレーション情報における複数の構成情報の中から1つを選んで、その1つ目の構成情報に示される構成要素について全域スキャンを実行し、当該構成要素を包含している局所領域の座標や縦幅、横幅をサーチ領域リストに追加する点は、図２５と同じである。しかし、以下の差異が存在する。
【０１４９】
第１に、ループの内容が異なる。このループ内容の差異とは、図２５のループが、1つ目以降の構成要素を対象としていたのに対し、図２８のループは、2番目以降の構成要素を対象としている点である。当該ループは、変数iをインクリメントして(ステップＳ８１)、2つ目以降の構成要素iについて、ステップＳ２３〜Ｓ２７を実行する。
第２に、2番目以降の構成要素のサーチ範囲が異なる。これは、図２５のループでは、2番目以降の構成要素については、X＿Start,Y＿Startが0,0に設定され(ステップＳ２７)、またX＿End,Y＿endが、639-W,359-Hに設定されるのに対し(ステップＳ２８)、図２８では、2番目以降の構成要素については、構成要素iを包含しているとされた局所領域のX座標であるXiから2・X＿maxを引いた値をX＿Startとして設定し（ステップＳ８４）、局所領域のY座標であるYiからY＿maxを引いた値をY＿Startとして設定する(ステップＳ８５)。またX＿Endについては、X＿Startに横幅2・X＿maxを加算した値を設定し(ステップＳ８６)、Y＿Endについては、Y＿Startに縦幅Y＿maxを加算した値を設定する(ステップＳ８７)。図２８では、かかる設定の後、ステップＳ８８において、X＿Start,Y＿StartからX＿End,Y＿endまでのスキャンを実行し、ステップＳ８９において、画像特徴量計算部７による特徴量算出、特徴量識別部９による識別を実行させ、ステップＳ９０に移行する。ステップＳ９０は、演算結果の符号が正になった特徴量識別部９が存在するかどうかの判定である。存在しなければ、当該ループを抜けて、フローチャートの処理を終了する。もし存在すれば、ステップＳ９１において特徴量識別部９の識別子iを、ウィンドウ中心位置のXY座標(Xi,Yi)に変換する。ステップＳ９２では、ウィンドウ中心位置の座標(Xi,Yi)、カレントウィンドウの縦幅Win＿H、横幅Win＿W、構成要素(i)の類型type(i)、尤度Lh(i)を、サーチ領域リストのエントリーに追記する。その後、ステップＳ３４において、変数iが、選択された構成情報における構成要素の総数以上になったかどかを判定する。総数以上になっていなければ、ステップＳ８１に戻る。総数以上になれば、ステップＳ３６において、複数の局所領域の位置関係に応じた判定を実行する。
【０１５０】
以上の処理が、選択された構成情報を構成する全ての構成要素について繰り返される。  2つ目の構成要素を対象とした部分域サーチでは、構成要素iを包含しているとされた局所領域の座標(xi,yi)をサーチの始点とするから、サーチ範囲は限定されることになり、処理時間の短縮を図ることができる。以上が全域−部分域組合せスキャンの処理手順についての説明である。
【０１５１】
構成要素交互スキャン（図２４のステップＳ７）はサブルーチン化されており、より詳細な処理手順に展開できる。展開がなされた処理手順を示したのが図２９のフローチャートである。
図２９は、構成要素交互スキャンの処理手順を示すフローチャートである。本図は、図２６（ｂ）のWindowラスタスキャンのフローチャートをベースとして作図されており、このベースとなる図２６（ａ）と比較して以下の差異が存在する。
【０１５２】
第１に、ベースの図２６（ｂ）では、shifted window(Win＿X,Win＿Y)を対象としたshifted blockラスタスキャンを実行しているのに対し、図２９では、変数iを制御変数としたステップＳ１０１〜ステップＳ１０９からなるループが存在する点である。このループでは、ステップＳ１０１において変数iを初期化し、ステップＳ１０２〜ステップＳ１０９の処理を実行する。ステップＳ１０２〜ステップＳ１０９の処理とは、構成要素iについてステップＳ２３〜Ｓ２６を実行して、その後、shifted window(Win＿X、Win＿Y)を対象としたブロックラスタスキャンを実行し(ステップＳ１０４)、画像特徴量計算部７による特徴量算出、特徴量識別部９による識別を実行させる（ステップＳ１０５）。そして決定関数の関数値である符号が正になった特徴量識別部９が特徴量識別部９i1,i2,i3,i4・・・・iNの中に存在するかどうかを判定する(ステップＳ１０６)。決定関数の結果が正になった特徴量識別部９が存在すれば(ステップＳ１０６でYes)、識別器(i)の識別子を、カレントウィンドウ中心位置のXY座標(Xi,Yi)に変換する。その後、カレントウィンドウ中心位置のXY座標(Xi,Yi)、カレントウィンドウの縦幅Win＿H、横幅Win＿W、構成要素(i)の類型type(i)、尤度Lh(i)を、サーチ領域リストのエントリーに追記する(ステップＳ１０７)。
【０１５３】
ステップＳ１０８は、ループの終了要件を定めるものであり、変数iが、選択された構成情報における構成要素の総数に達しなければ、変数をインクリメントして(ステップＳ１０９)、ステップＳ１０１の後に戻る。このステップＳ１０８がYesと判定されるまで、ループが繰り返される。
Win＿X、Win＿Yを対象としたループ内に構成要素iを対象としたループが存在するので、ウィンドウの1個のシフト位置について、複数の構成要素のそれぞれを対象にした画像認識が実行されることになる。
【０１５４】
第２に、複数構成要素の位置関係に応じた総合判断の実行タイミングが異なる。これは、図２６（ｂ）におけるウィンドウラスタスキャンの処理手順では、かかる総合判断は実行されず、図２６（ｂ）のフローチャートの呼び出し元である図２５のステップＳ３６で実行されていたのに対し、本フローチャートでは、Win＿X、Win＿Yを対象とした二重ループを抜けた後に、総合判断を実行しているというものである。以上のように構成要素交互スキャンでは、認識対象の各構成要素を対象とした繰り返し処理と、各シフト位置を対象とした繰り返し処理との関係が逆になっていることがわかる。
【０１５５】
Win＿X、Win＿Yが新しく算出される度に、認識対象を構成する複数の構成要素のそれぞれを対象とした認識処理が実行されるから、ウィンドウのシフトが一回行われる度に、当該シフト位置での、個々の構成要素を対象とした認識処理が実行されることになる。以上が、構成要素交互スキャンについての説明である。
以上のように本実施形態によれば、画像認識装置１００２による画像認識は、ホスト装置１００３からの設定である構成情報に従うので、画像認識装置１００２は、必要な構成情報をロードすることにより、認識対象となるオブジェクトの種類を動的に変更することができる。これにより、様々な撮影環境に対応した柔軟な画像認識を実現することができる。
【０１５６】
また、個々の構成要素を包含するようウィンドウの縦幅、横幅を定めた上で、ウィンドウラスタスキャンを行い、認識結果である複数の局所領域の位置的関係から総合判断を行うので、認識対象がどのような形状を有していても、認識が可能となる。構成要素毎に、特徴量計算に用いるべきウィンドウの縦幅、横幅を変更するから、特徴量計算を効率化することができる。
【０１５７】
（第２実施形態）
第１実施形態では、構成情報の横幅、縦幅に従い、特徴量の次元数を変化させていた。本実施形態では、このウィンドウの横幅、縦幅に応じた次元数の変化に伴い、画像特徴量識別部９を再構成する改良に関する。
図３０は、第２実施形態に係る正規化部４５、識別部４６の内部構成と共に、認識辞書１０の内部構成を示す図である。本図では、座標生成回路４１、４２を省略している。第１実施形態の図１０との差異は、正規化部４５、識別部４６の内部構成である、この内部構成の差異とは、図１０では正規化部４５、識別部４６の内部構成を表していなかったのに対し、本図では、正規化部４５、識別部４６の内部構成として100個の81次元正規化器−81次元識別器の組みが表わされており、特徴量の次元数に応じた数の81次元正規化器、81次元識別器が再構成のために選ばれるというものである。個々の81次元正規化器、81次元識別器は、81次元のセルヒストグラムを処理するものであり、図１２、図１５、図１７、図１８の内部構成をもつ。
【０１５８】
ここで、『100』という個数は、可変である次元数の最大値(8100次元)を、１個の81次元正規化器、81次元識別器の処理単位となる次元数(81次元)で割った値である。100個の81次元正規化器、81次元識別器のうち、特徴量の次元数であるD(W,H)/81個のものを選んで、画像特徴量識別部９を再構成する。100という範囲の中で、画像特徴量識別部９の再構成に用いるべき81次元正規化器、81次元識別器の個数を自由に変化させることで、構成情報によるウィンドウサイズの定義に応じて、画像特徴量識別部９の構成をスケーラブルに変化させる。
【０１５９】
具体的にいうと、D(W,H)が1620次元であれば20個、4860次元では60個、6804次元であれば84個の81次元正規化器−81次元識別器の組みを再構成に用いる。以上が、次元数D(W,H)に応じて再構成される画像特徴量識別部９の内部構成である。
以下、81次元正規化器−81次元識別器について説明する。
図３０において81次元正規化器−81次元識別器−学習辞書は、同数だけ存在しており、縦方向における81次元正規化器−81次元識別器−学習辞書の並びは、1個の独立した処理系統を構成する。これら81次元正規化器−81次元識別器−学習辞書からなる処理系統は、1から100までの識別番号で指示される。この処理系統に属する81次元正規化器、81次元識別器、学習辞書のそれぞれには、「アルファベット＋識別番号」という形式の参照符号が付される。参照符号におけるアルファベットは、81次元正規化器、81次元識別器、学習辞書の違いを表す(これは、81次元正規化器ならn、81次元識別器ならc、学習辞書ならdというものである)。
【０１６０】
「n＋識別番号」の形式の参照番号で参照される正規化部について説明する。
81次元正規化器n1,n2,n3,n4・・・・は、自身が帰属する処理系統に供給されてきた24×24画像の勾配度数に対して正規化を行い、正規化後の勾配度数を、同じ処理系統に帰属する81次元識別器に出力する。この正規化は、24×24画素(1ブロックであり、3×3セルからなる)の範囲における勾配度数の総和が「1」になるようにするためのものである。
【０１６１】
「d＋識別番号」の形式の参照番号で参照される学習辞書１０について説明する。学習辞書d1,d2,d3,d4・・・・には、同じ系統に属する81次元のHOGと対比されるべき学習データが格納される。かかる学習データは、81次元のHOGである。
「c＋識別番号」の形式の参照番号で参照される81次元識別器について説明する。81次元識別器c1,c2,c3,c4・・・・は、同じ処理系統の81次元正規化器から、81次元のHOGが出力されれば、かかるHOGを学習辞書に格納された81次元の学習データと比較する。
【０１６２】
以上が、n,d,cという識別記号で識別される処理系統に属する81次元正規化器、81次元識別器、学習辞書についての説明である。続いて、１〜６、７〜１２、４８〜５４、５５〜６０の識別番号で識別される処理系統に対して、画素がどのように供給されるかについて説明する。
図３１は、81次元正規化器−81次元識別器−学習辞書に対する画素値供給を示す。本図は、図３０をベースにしている。図２７と異なるのは、4860次元の特徴量に対応する構成として、図３１の画像特徴量識別部９が、60個の81次元正規化器、81次元識別器により構成されている点、各シフト位置に存在するshifted blockから、81次元正規化器−81次元識別器−学習辞書に到る画素値供給の過程が示されている点である。
【０１６３】
図３１において、ウィンドウ座標系の(0,0)に位置する24×24画素のブロックに対応するセルヒストグラムは、識別番号＝１で識別される処理系統(81次元正規化器n1−81次元識別器c1−学習辞書d1)に供給される。ウィンドウ座標系の(8,0)に位置する24×24画素のブロックに対応するセルヒストグラムは、識別番号＝２で識別される処理系統(81次元正規化器n2−81次元識別器i2−学習辞書d2)に、ウィンドウ座標系の(16,0)に位置する24×24画素のブロックに対応するセルヒストグラムは、識別番号＝３で識別される処理系統(81次元正規化器n3−81次元識別器c3−学習辞書d3)に、ウィンドウ座標系の(24,0)に位置する24×24画素のブロックに対応するセルヒストグラムは、識別番号＝４で識別される処理系統(81次元正規化器n4−81次元識別器c4−学習辞書d4)に供給される。
【０１６４】
以上のように本実施形態によれば、複数の81次元正規化器、複数の81次元識別器の中から特徴量の次元数に応じた個数のものを選んで、画像特徴量識別部９を再構成するので、構成情報により定義されるウィンドウサイズの変動に対して、柔軟な対応が可能になる。
(第３実施形態)
本実施形態は、構成情報の改良に関する。図３２（ａ）は、構成情報の構成を示す。引出線cu11は、構成情報の構成をクローズアップして示している。この引出線cu11に示すように、構成情報は、対応する客体の「全体類別」、対応する客体を構成する複数の構成要素についての「Window検索情報(構成要素１のWindow検索情報、構成要素２のWindow検索情報・・・・・構成要素mのWindow検索情報)」、「ウィンドウ位置関係基準」から構成される。引出線cu12は、Window検索情報の構成をクローズアップして示している。この引出線cu11に示すように、Window検索情報は、構成要素を包含するWindowの横幅W、縦幅H、構成要素の類別typeを示す。
【０１６５】
以下、図３２（ａ）のデータ構造の記述例について説明する。この記述例は、図２に示したフレーム画像の一例において、人物像や信号機を認識するケースを想定している。
図３２（ｂ）は、認識対象が人物である場合における構成要素１のWindow検索情報、構成要素２のWindow検索情報の設定例を示す。認識対象が人物の正面像である場合、構成要素１は人間の顔、構成要素２は人間の胴体をそれぞれ表す。
【０１６６】
図３２（ａ）と比較すると、図３２（ｂ）では構成要素１の検索情報において、ウィンドウの横幅がw1、縦幅がh1,構成要素の類別がtype1に設定されており、構成要素２の検索情報において、ウィンドウの横幅がw2、縦幅がh2,構成要素の類別がtype2に設定されているというものである。
また、客体１の構成情報のウィンドウ位置関係基準は、構成要素１を包含している局所領域のxy座標(x1,y1)、ウィンドウの横幅w1、縦幅h1、構成要素２を包含している局所領域のxy座標(x2,y2)、ウィンドウの横幅w2、縦幅h2の大小関係を規定する不等式を含む。構成要素１(顔)は、構成要素２(胴体)の上辺中央付近に存在するので、構成要素２のx座標であるx2は、x2<x1<x2+w2/2,x2+w2/2<x1+w1<x2+w2という不等式を満たす必要がある。また構成要素２(胴体)は、構成要素１(顔)を囲むウィンドウの下辺以降に存在せねばならないから,構成要素２のy座標であるy2は、y2≒y1+H1,y2+H2>y1+H1という不等式を満たす。
【０１６７】
図３２（ｃ）は、認識対象が信号機である場合における構成要素１のWindow検索情報、構成要素２のWindow検索情報の設定例を示す。認識対象が信号機である場合、構成要素１は信号灯、構成要素２は柱部分をそれぞれ表す。
図３２（ｂ）と比較すると、図３２（ｃ）では構成要素２の検索情報において、構成要素の類別がtype2(信号機)に設定されている。
【０１６８】
また、客体１の構成情報のウィンドウ位置関係基準は、構成要素１を包含している局所領域のxy座標(x1,y1)、ウィンドウの横幅w1、縦幅h1、構成要素２を包含している局所領域のxy座標(x2,y2)、ウィンドウの横幅w2、縦幅h2の大小関係を規定する不等式を含む。構成要素２(柱)は、構成要素１(信号灯)から左方向又は右方向に離れて存在するので、構成要素２のX座標であるx2は、x2＞x1+w1、又は、x1＞x2+w2という不等式を満たす必要がある。また構成要素２(柱)は、構成要素１(信号灯)を囲むウィンドウの上辺以降に存在せねばならないから,構成要素２のy座標であるy2は、y1≦y2という不等式を満たす必要がある。
【０１６９】
構成情報設定部１２は、Window検索情報の縦幅、横幅を画像供給部４に指示することで、ウィンドウスキャンを画像供給部４に実行させる。かかるウィンドウスキャンで、構成要素を包含した局所領域の座標が明らかになれば、ウィンドウ位置関係基準を客体認識部１１に参照させることで、かかる局所領域の座標が、ウィンドウ位置関係基準を満たすかどうかの総合判断を、客体認識部１１に行わせる。
【０１７０】
以上のように本実施形態によれば、人物像、信号機を検索するにあたって、各構成要素がどのようなサイズを有するか、また構成要素を包含するウィンドウが、どのような位置関係にあるかを客観的に規定することができる。
＜備考＞
以上、本願の出願時点において、出願人が知り得る最良の実施形態について説明したが、以下に示す技術的トピックについては、更なる改良や変更実施を加えることができる。      
【０１７１】
（FPGAによる画像認識装置１００２の構成）
画像認識装置１００２の本体部分である集積回路２０２は、FPGA（Field  Programmable  Gate  Array）であることが望ましい。以下、FPGAで構成された画像認識装置１００２について説明する。画像認識装置１００２を構成するFPGAは、ロジックセルレイヤ、クロックネットワークレイヤ、ブロックRAM・乗算器レイヤ、JTAGバウンダリスキャン回路レイヤが存在する。
【０１７２】
ロジックセルレイヤは、周縁部分にI/O部が存在していて、その内部に、複数のロジックセルが行列状に配置される。
I/O部は、外部信号の入出力を実現する。
ロジックセルは、nビット入力のルップアップテーブルと、フリップフロップとから構成される。ルップアップテーブルは、nビット入力をアドレスとしてデコードするアドレスデコード部と、かかるアドレスでアクセスされる記憶セルからなるSRAMとからなり、当該アドレスで指示される記憶セルのデータをSRAMから読み出して出力する。
【０１７３】
FPGAは、電源投入時に外部メディアからビットストリーム形式のプログラムファイルを読み出して、プログラムファイルにおける個々のビットに従い、分散配置されているロジックセル及びI/O部を内部配線で結び付けてゆくことで、ユーザが希望する機能を実現する。
クロックネットワークレイヤは、ロジックセルレイヤに存在する複数のロジックセルのうち、位置的に対応するものにクロックを供給する。供給されるクロックには、FPGA全体を対象にしたものと、局所的なロジックセル群を対象にしたものとがある。ロジックセル内のフリップフロップは、かかるクロックに従い、SRAMに格納されているデータを、出力する。
【０１７４】
JTAGバウンダリスキャン回路レイヤは、テストのための機能を提供する。
ブロックRAM・乗算器レイヤは、ブロックRAMと、乗算器との組みが、行列状に配置されていて、ロジックセルレイヤに存在する複数のロジックのうち、位置的に対応するものに、演算機能と、データ保存機能とを提供する。これに限らず、画像認識装置１００２は、ASIC（Application  Specific  Integrated  Circuit）等の専用回路で構成してもよい
(81次元識別器のバリエーション)
81次元識別器をサポートベクタマシンとしたが、81次元識別器は、Adaboost,RealAdaBoost、Deep-learningニューラルネットワーク、Deformable Part Modelに基づくものでもよい。
【０１７５】
RealAdaBoostは、弱分類器の出力が特徴量の分布において定数化されるアルゴリズムである。
Deep-learningニューラルネットワークは、通常のニューラルネットワークよりも多くの中間層を設けて認識に有効な特徴量を学習時に抽出する。
Deformable Part Modelは、人全体を捉えるルートフィルタFoφ(P0)と、局所的な部分を捉えるFt・φ(Pt)と、パーツフィルタの位置関係関数di・φd(dxi,dyi)とからスコア付けを行う。
【０１７６】
(特徴量のバリエーション)
特徴量は、HOGであるとしたが、Haar-like特徴量、Edglet特徴量であってもよい。
Haar-like特徴量は、撮影画像の局所領域において、明暗のパターンが左右に存在するか、上下に存在するかを示す。具体的にはHaar-like特徴量は、高輝度領域の平均輝度S(r1)、低輝度領域の平均輝度S(r2)の差分H(r1,r2)により与えられる。
【０１７７】
Edglet特徴量は、入力画像から得られたエッジ画像から抽出され、直線、円弧、対称性といったテンプレートと比較される。
（構成情報の記述）
構成情報を、クラス構造体として定義してもよい。この場合、ウィンドウの縦幅、横幅は、クラス構造体のメンバー変数として定義され、第３実施形態のウィンドウ位置関係基準は、クラス構造体のメソッドコードとして実現することが望ましい。第３実施形態のウィンドウ位置関係基準は、認識対象固有の処理手順であると、捉えることができるからである。また、ウィンドウラスタスキャンの方式(全域スキャン、全域−部分スキャン、構成要素交互スキャン)を構成情報で指定してもよい。
【０１７８】
(対話的な構成情報の生成)
ホスト装置１００３は、ユーザからフレーム画像に対するGUI操作を受け付けることで、構成情報を作成してもよい。かかる操作では、ユーザによるポインティングデバイスの操作に応じて、グラフィック枠を表示し、フレーム画像に表れた認識対象を構成する個々の構成要素を囲む。また必要に応じて、グラフィック枠の大きさを拡大・縮小する。
【０１７９】
以上の操作を経て、グラフィック枠が、最適な大きさに設定されれば、この拡大・縮小後のグラフィック枠を基に、構成情報についてのWindow検索情報の縦幅、横幅を決定する。更に、構成要素についての位置関係基準も決定してゆく。
（認識対象となる画像のバリエーション）
認識対象となる画像は、２ＫのFullHD画質(1920×1080)であるとしたが、これに限らず、SD画質(640×480)、８Ｋ画質(7680×4320)であってもよい。
【０１８０】
（人物の様々なポーズを認識対象とする場合の構成情報の記述）
第１実施形態では、人物の顔を第１の構成要素、胴体以降を第２の構成要素として、これらの第１、第２の構成要素を包含するよう、構成情報におけるWindow検索情報の各ウィンドウの縦幅、横幅を規定した。しかしこれに限らず、より詳細な内容の構成情報で、認識対象の一構成要素を表現してもよい。具体的にいうと、人物の顔を第１の構成要素として指定し、人物の胴体を第２の構成要素、人物の左右の腕を第３、第４の構成要素として指定し、人物の左右の足を第５、第６の構成要素として指定して、これら第１から第６までの構成要素の位置関係基準を構成情報に記載することで、認識対象の一構成要素がとる様々なポーズを認識対象にしてもよい。
【０１８１】
「横になっているポーズ」では、第２〜第６の構成要素の局所領域の中心座標が、第１の構成要素の左右方向に存在することを、構成情報の位置関係基準として規定する。
「着座しているポーズ」では、第５、第６の構成要素についての局所領域の中心座標が、第２構成要素の左右方向に存在することを、構成情報の位置関係基準として規定する。  (信号機を認識する場合の位置関係基準の詳細な定義)
車道では、図２（ａ）に示したように、対向車線に設けられた信号機が、左右対称に存在する。そこで、三色灯と、柱部分との位置関係が、「柱部分」→「三色灯」→「三色灯」→「柱部分」になっていることをウィンドウ位置関係基準に定義してもよい。
【０１８２】
1つ目の三色灯のX座標をX11,2つ目の三色灯のX座標をX12,1つ目の柱部分のX座標をX21,2つ目の柱部分のX座標をX22とし、三色灯の横幅をW1,柱部分の横幅をW2とした場合、X12については、X12＞X11+W1との関係を位置関係基準とし、X21については、X21＜X11-W2を位置関係基準とする。X22については、X22＞X12+W1を位置関係基準とする。X11,X12,X21,X22が、これらの不等式を満たすのであれば、1つ目の柱部分→1つ目の三色灯→2つ目の三色灯→2つ目の柱部分と並んでいることになり、対向車線上に配列されている一対の信号機を正しく認識することができる。このように、一対になっていることを、信号機認識のための位置関係基準とすれば、信号機を高精度に認識することができる。この場合、1つ目の柱部分、1つ目の三色灯、2つ目の三色灯、2つ目の柱部分をそれぞれ、独立した構成要素として定義して、Window検索情報によるサーチの対象にすることが望ましい。
【０１８３】
（装置構成のバリエーション）
画像認識装置１００２は、カメラ装置１００１と接続され、画像認識装置１００２に内蔵されるとしたが、構成情報に従い構成要素毎の画像認識を行うという画像認識装置１００２の機能と、画像認識装置１００２に対し構成情報を設定するというホスト装置１００３の機能とをカメラ装置１００１に組込んで、画像認識機能付きのカメラ装置１００１としてもよい。
【０１８４】
また、構成情報に従い画像認識を行うというカメラ装置１００１の機能を、構成情報を設定するというホスト装置１００３の機能とをホスト装置１００３に内蔵して、ホスト装置１００３を撮影機能及び画像認識機能付きの情報処理装置として構成してもよい。
特徴量識別部９の個数は4個としたが、特徴量識別部９の個数は1個でもよい。この場合、客体認識部１１は、特徴量識別部９の識別番号を用いずに、局所領域の座標を特定する。
【０１８５】
（スキャンのバリエーション）
ウィンドウによるスキャンとしてウィンドウラスタスキャンを実行する処理例を記載したが、渦巻スキャンや縦方向のスキャンであってもよい。またウィンドウをシフトする際シフト位置を8画素置きとしたが、シフト位置の間隔は何画素でもよい。
【産業上の利用可能性】
【０１８６】
本発明は、車載カメラで撮影されたフレーム画像から交差点、歩道、人を検出して走行位置に関し、運転アシストを実行するという自動運転用途に利用することができる。また、製品チェックのための工場カメラによる商品欠陥検出に利用することができ、セキュリティやマーケティングのための監視カメラによる人検出に利用することができる。
【符号の説明】
【０１８７】
１  カメラインターフェイス部
２  集積回路
３  フレームメモリ
４  画像入力部
７  画像特徴量計算部
９  特徴量識別部
１０  認識辞書
１１  客体認識部
１２  構成情報設定部
１００１  カメラ装置
１００２  画像認識装置
１００３  ホスト装置
【図１】
0006524475.tif 000003
【図２】
0006524475.tif 000004
【図３】
0006524475.tif 000005
【図４】
0006524475.tif 000006
【図５】
0006524475.tif 000007
【図６】
0006524475.tif 000008
【図７】
0006524475.tif 000009
【図８】
0006524475.tif 000010
【図９】
0006524475.tif 000011
【図１０】
0006524475.tif 000012
【図１１】
0006524475.tif 000013
【図１２】
0006524475.tif 000014
【図１３】
0006524475.tif 000015
【図１４】
0006524475.tif 000016
【図１５】
0006524475.tif 000017
【図１６】
0006524475.tif 000018
【図１７】
0006524475.tif 000019
【図１８】
0006524475.tif 000020
【図１９】
0006524475.tif 000021
【図２０】
0006524475.tif 000022
【図２１（ａ）】
0006524475.tif 000023
【図２１（ｂ）】
0006524475.tif 000024
【図２１（ｃ）】
0006524475.tif 000025
【図２１（ｄ）】
0006524475.tif 000026
【図２１（ｅ）】
0006524475.tif 000027
【図２１（ｆ）】
0006524475.tif 000028
【図２１（ｇ）】
0006524475.tif 000029
【図２１（ｈ）】
0006524475.tif 000030
【図２１（ｉ）】
0006524475.tif 000031
【図２１（ｊ）】
0006524475.tif 000032
【図２１（ｋ）】
0006524475.tif 000033
【図２１（ｌ）】
0006524475.tif 000034
【図２２】
0006524475.tif 000035
【図２３】
0006524475.tif 000036
【図２４】
0006524475.tif 000037
【図２５】
0006524475.tif 000038
【図２６】
0006524475.tif 000039
【図２７】
0006524475.tif 000040
【図２８】
0006524475.tif 000041
【図２９】
0006524475.tif 000042
【図３０】
0006524475.tif 000043
【図３１】
0006524475.tif 000044
【図３２】
0006524475.tif 000045