(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-05-25
(45)【発行日】2023-06-02
(54)【発明の名称】画像認識装置、及び画像認識プログラム
(51)【国際特許分類】
G06T 7/00 20170101AFI20230526BHJP
【FI】
G06T7/00 350C
(21)【出願番号】P 2019063807
(22)【出願日】2019-03-28
【審査請求日】2021-09-24
(73)【特許権者】
【識別番号】000000011
【氏名又は名称】株式会社アイシン
(73)【特許権者】
【識別番号】504174135
【氏名又は名称】国立大学法人九州工業大学
(74)【代理人】
【識別番号】100096655
【氏名又は名称】川井 隆
(74)【代理人】
【識別番号】100091225
【氏名又は名称】仲野 均
(72)【発明者】
【氏名】山田 英夫
(72)【発明者】
【氏名】村松 竜弥
(72)【発明者】
【氏名】柴田 雅聡
(72)【発明者】
【氏名】田向 権
【審査官】佐藤 実
(56)【参考文献】
【文献】特開2017-182438(JP,A)
【文献】吉弘憲大 外3名,FPGA 実装に向けたMRCoHOG 特徴とBinarized Neural Networks を用いたハードウェア指向人物検出,情報・システムソサイエティ特別企画 学生ポスターセッション予稿集,2018年03月13日,第173頁
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00 - 7/90
(57)【特許請求の範囲】
【請求項1】
画像を取得する画像取得手段と、
前記取得した画像の画素の画素値として輝度を取得する画素値取得手段と、
前記取得した前記輝度による輝度勾配方向に基づいて、画像認識対象の特徴を表す特徴量の、ヒストグラムになっていない複数種類の特徴要素を、特徴要素毎に順次取得する特徴要素取得手段と、
前記順次取得した特徴要素が直接入力されるように入力を順次受け付ける入力層と、当該受け付けた前記特徴要素に複数値の重みを付けて加算する加算層を有し、前記加算層で前記特徴要素が順次加算された加算値を用いて識別対象を認識する画像認識手段と、
を具備したことを特徴とする画像認識装置。
【請求項2】
前記画像認識手段は、前記特徴要素に対して2値の重みを付けるバイナリネットワークである、
ことを特徴とする請求項1に記載の画像認識装置。
【請求項3】
前記画像認識手段は、前記特徴要素が順次加算された加算値の合計値を取得した後に前記画像認識の画像認識結果を確定する画像認識結果出力手段を備える、
ことを特徴とする請求項1又は請求項2に記載の画像認識装置。
【請求項4】
前記画像認識手段は、前記特徴要素が順次加算された加算値の合計値に対応する画像認識結果
を順次更新し、当該更新した画像認識結果が所定回数連続して同じであった場合に、画像認識結果を出力する、
ことを特徴とする請求項1又は請求項2記載の画像認識装置。
【請求項5】
前記特徴要素取得手段は、前記輝度勾配方向の共起に基づいて前記特徴要素を取得することを特徴とする請求項1から請求項4のうちの何れか1の請求項に記載の画像認識装置。
【請求項6】
前記画像取得手段は、同一被写体の異なる解像度の画像を取得し、
前記特徴要素取得手段は、前記輝度勾配方向の前記異なる解像度の画像に渡る共起に基づいて前記特徴要素を取得することを特徴とする請求項5に記載の画像認識装置。
【請求項7】
前記取得した特徴要素のうち、所定の特徴要素を選択して前記入力層に入力する選択手段、
を具備したことを特徴とする請求項1から請求項6のうちの何れか1の請求項に記載の画像認識装置。
【請求項8】
前記取得した特徴要素を順次複製して前記入力層に入力する複製手段、
を具備したことを特徴とする請求項1から請求項7うちの何れか1の請求項に記載の画像認識装置。
【請求項9】
画像を取得する画像取得機能と、
前記取得した画像の画素の画素値として輝度を取得する画素値取得機能と、
前記取得した前記輝度による輝度勾配方向に基づいて、画像認識対象の特徴を表す特徴量の、ヒストグラムになっていない複数種類の特徴要素を、特徴要素毎に順次取得する特徴要素取得機能と、
前記順次取得した特徴要素が直接入力されるように入力を順次受け付ける入力層と、当該受け付けた前記特徴要素に複数値の重みを付けて加算する加算層を有し、前記加算層で前記特徴要素が順次加算された加算値を用いて識別対象を認識する画像認識機能と、
をコンピュータで実現する画像認識プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像認識装置、及び画像認識プログラムに関し、例えば、学習した対象を画像認識するものに関する。
【背景技術】
【0002】
近年、カメラで撮影した画像から、特定の対象を認識し、これを識別する技術が急速に進展しており、例えば、自動車の運転支援や医療の診断支援など、多方面で利用されつつある。
これら、画像認識技術では、何らかの手法により画像から特徴量を抽出し、これを画像認識対象(例えば、歩行者などの人)の特徴量と比較することにより、当該画像に画像認識対象が存在するか否かを判断している。
このような画像認識を行うものに非特許文献1の技術がある。
【0003】
当該技術は、画像の局所的な輝度勾配方向(輝度の勾配方向)を特徴要素とし、これの出現回数を2次元ヒストグラムで表すことにより被写体の特徴量を抽出するHOG特徴量を特徴記述部に用いている。そして、当該技術は、HOG特徴量をSVM(support vector machine)で分類することにより当該特徴量が人によるものかどうかを識別している。
【0004】
この他に画像から特徴量を抽出する技術には、HOG特徴量より頑健性を有するCoHOG特徴量や、更に頑健性を有するMRCoHOG特徴量などがある。
CoHOG特徴量は、画像中の輝度勾配方向の共起ペア(輝度勾配方向の組)を特徴要素とし、その出現回数を2次元ヒストグラムで表したものである。
また、MRCoHOG特徴量は、同一被写体の異なる解像度の画像間での輝度勾配方向の共起ペアを特徴要素とし、その出現回数を2次元ヒストグラムで表したものである。
【0005】
ところで、従来は、これらの特徴量を用いる場合、メモリにヒストグラムを作成し、共起ペアに応じてこれに投票(対応する共起ペアの出現回数をカウントアップ)していた。
そのため、ヒストグラム作成のたびにメモリを大規模に確保する必要があり、これを集積回路などのハードウェアに実装する際、回路が大規模になってコストが大きくなってしまうという問題があった。
【先行技術文献】
【非特許文献】
【0006】
【文献】Tomoki Watanabe, Satoshi Ito etc.;”Co-occurrence Histograms of Oriented Gradients for Human Detection”, IPSJ Transactions on Computer Vision and Applications, Vol.2 pp.39-47, 2010
【発明の概要】
【発明が解決しようとする課題】
【0007】
本発明は、低コストのハードウェアで画像認識機能を実現することを目的とする。
【課題を解決するための手段】
【0008】
(1)本発明は前記目的を達成するために、請求項1に記載の発明では、画像を取得する画像取得手段と、前記取得した画像の画素の画素値として輝度を取得する画素値取得手段と、前記取得した前記輝度による輝度勾配方向に基づいて、画像認識対象の特徴を表す特徴量の、ヒストグラムになっていない複数種類の特徴要素を、特徴要素毎に順次取得する特徴要素取得手段と、前記順次取得した特徴要素が直接入力されるように入力を順次受け付ける入力層と、当該受け付けた前記特徴要素に複数値の重みを付けて加算する加算層を有し、前記加算層で前記特徴要素が順次加算された加算値を用いて識別対象を認識する画像認識手段と、を具備したことを特徴とする画像認識装置を提供する。
(2)請求項2に記載の発明では、前記画像認識手段は、前記特徴要素に対して2値の重みを付けるバイナリネットワークである、ことを特徴とする請求項1に記載の画像認識装置を提供する。
(3)請求項3に記載の発明では、前記画像認識手段は、前記特徴要素が順次加算された加算値の合計値を取得した後に前記画像認識の画像認識結果を確定する画像認識結果出力手段を備える、ことを特徴とする請求項1又は請求項2に記載の画像認識装置を提供する。
(4)請求項4に記載の発明では、前記画像認識手段は、前記特徴要素が順次加算された加算値の合計値に対応する画像認識結果を順次更新し、当該更新した画像認識結果が所定回数連続して同じであった場合に、画像認識結果を出力する、ことを特徴とする請求項1又は請求項2記載の画像認識装置を提供する。
(5)請求項5に記載の発明では、前記特徴要素取得手段は、前記輝度勾配方向の共起に基づいて前記特徴要素を取得することを特徴とする請求項1から請求項4のうちの何れか1の請求項に記載の画像認識装置を提供する。
(6)請求項6に記載の発明では、前記画像取得手段は、同一被写体の異なる解像度の画像を取得し、前記特徴要素取得手段は、前記輝度勾配方向の前記異なる解像度の画像に渡る共起に基づいて前記特徴要素を取得することを特徴とする請求項5に記載の画像認識装置を提供する。
(7)請求項7に記載の発明では、前記取得した特徴要素のうち、所定の特徴要素を選択して前記入力層に入力する選択手段、を具備したことを特徴とする請求項1から請求項6のうちの何れか1の請求項に記載の画像認識装置を提供する。
(8)請求項8に記載の発明では、前記取得した特徴要素を順次複製して前記入力層に入力する複製手段、を具備したことを特徴とする請求項1から請求項7うちの何れか1の請求項に記載の画像認識装置を提供する。
(9)請求項9に記載の発明では、画像を取得する画像取得機能と、前記取得した画像の画素の画素値として輝度を取得する画素値取得機能と、前記取得した前記輝度による輝度勾配方向に基づいて、画像認識対象の特徴を表す特徴量の、ヒストグラムになっていない複数種類の特徴要素を、特徴要素毎に順次取得する特徴要素取得機能と、前記順次取得した特徴要素が直接入力されるように入力を順次受け付ける入力層と、当該受け付けた前記特徴要素に複数値の重みを付けて加算する加算層を有し、前記加算層で前記特徴要素が順次加算された加算値を用いて識別対象を認識する画像認識機能と、をコンピュータで実現する画像認識プログラムを提供する。
【発明の効果】
【0009】
本発明によれば、ヒストグラムの作成を要しないため、低コストのハードウェアで画像認識機能を実現することができる。
【図面の簡単な説明】
【0010】
【
図1】画像認識装置を実装したコンピュータの構成の一例を示した図である。
【
図2】HOG特徴量の概念を説明するための図である。
【
図3】CoHOG特徴量の概念を説明するための図である。
【
図4】MRCoHOG特徴量の概念を説明するための図である。
【
図8】勾配方向算出部などの動作を説明するための図である。
【
図9】垂直方向のデータ延ばし処理を説明するための図である。
【
図10】水平方向のデータ延ばし処理を説明するための図である。
【
図11】共起ペア計算部が共起ペアを計算する仕組みを説明するための図である。
【
図12】入力部と認識部の構成を説明するための図である。
【
図13】BNNの仕組みを説明するための図である。
【
図16】画像処理手順を説明するためのフローチャートである。
【
図19】本実施の形態の概要を説明するための図である。
【発明を実施するための形態】
【0011】
(1)実施形態の概要
図19は、本実施の形態の概要を説明するための図である。
図19(a)に示したように、従来の画像認識装置は、画像から(↑→)、(↓←)、・・・などと、勾配輝度方向の共起ペアを順次抽出すると、これを仕分けしてその出現回数を加算することによりメモリ上のヒストグラムに投票(カウントアップ)する。
これによって、例えば、(↑→)は8票、(↓←)は2票、・・・などといったヒストグラムによって当該画像の特徴量が記述される。
そして、従来の画像認識装置は、ヒストグラムが完成すると、これを予め画像認識対象を学習してあるニューラルネットワークの入力層に入力し、画像認識結果を出力層から得ている。
【0012】
これに対し、本実施の形態の画像認識装置は、
図19(b)に示したように、クロックに同期して共起ペアを順次抽出し、抽出した共起ペアに対応して入力層と中間層の接続部分の重み付けを設定して、入力層に順次1票を入力する。一方、中間層は、順次入力される票数を加算・記憶していく。
この動作を継続すると、ヒストグラムを作成せずに、ヒストグラムを入力層に入力した場合と同じ値が中間層で実現する。
なお、従来技術におけるヒストグラムへの投票は、対応する共起ペアの出現回数をカウントアップすることをいい、一方、ヒストグラムを作成しない本実施形態における投票は、共起ペア等の特徴要素に対して学習結果による重み付けをしたうえで中間層に順次入力することをいう。
【0013】
このようにして、本実施の形態の画像認識装置は、莫大なメモリを消費するヒストグラムの作成を回避して画像認識処理を行うことができる。
これにより、メモリ資源の節約、回路の簡略化、及び計算速度の向上を図ることができ、画像認識装置を好適に集積回路化することができる。
【0014】
(2)実施形態の詳細
図1は、本実施形態に係る画像認識装置200を実装したコンピュータ80の構成の一例を示した図である。
コンピュータ80は、例えば、車両に搭載されて、自動運転やナビゲーションなどの運転支援に用いられる。
なお、以下では画像認識装置200が画像認識処理を行う場合について説明するが、この技術は、音声認識や医療診断など、人工知能が行う識別処理に広く適用することができる。
【0015】
コンピュータ80は、CPU(Central Processing Unit)81、ROM(Read Only Memory)82、RAM(Random Access Memory)83、カメラ84、画像認識装置200、記憶装置85、入力装置87、出力装置88などから構成されている。
【0016】
CPU81は、記憶装置85に記憶されたアプリケーションプログラムに従って所望の処理を行うほか、コンピュータ80の各部の制御などを行う。
ROM82は、CPU81がコンピュータ80を動作させるための基本的なプログラムやパラメータなどを記憶した読み取り専用のメモリである。
RAM83は、CPU81がアプリケーション機能を発揮するためのワーキングメモリを提供する読み書きが可能なメモリである。
画像認識装置200が行った画像認識の識別結果は、RAM83に記憶され、アプリケーションプログラムに従って利用される。
カメラ84は、動画撮影カメラであって、被写体を動画撮影して動画フレームからなる画像データ(以下、単に画像と記す)を時系列に従って画像認識装置200に出力する。
なお本実施形態における画像認識装置200、画像認識用の専用のハードウェアを半導体装置で形成し、このハードウェアで画像認識を行うように構成しているが、CPU81が画像認識用のプログラムに従って画像の特徴量抽出を含む画像認識を行うように構成することも可能である。
また、画像認識装置200を含むコンピュータ80全体を、半導体装置で形成した専用のハードウェアで構成するようにしてもよい。
【0017】
記憶装置85は、例えば、ハードディスクや半導体メモリなどの記憶媒体を用いた記憶装置であり、CPU81に画像認識による識別結果を用いた応用処理を行わせるためのアプリケーションプログラムなどを記憶している。
また、記憶装置85は、アプリケーションプログラムの動作設定などを記憶するデータ記憶部も備えている。
この動作設定は、例えば、画像認識装置200が人物を検出した場合に、ドライバにアラームを発するか否かといった内容がユーザによって設定されたものである。
【0018】
入力装置87は、コンピュータ80に各種の情報を入力する装置であり、ユーザがコンピュータ80を操作するための操作ボタンなどの入力デバイスで構成されている。
出力装置88は、コンピュータ80が各種の情報を出力する装置であり、例えば、操作画面を表示したり、カメラ84が撮影した動画上で画像認識装置200が検知した人(歩行者)を矩形で囲って表示したりする液晶ディスプレイなどの出力デバイスで構成されている。
【0019】
画像認識装置200は、画像から画像認識対象である人(一般の歩行者とする)を画像認識することにより識別し、その画像認識結果を出力するハードウェア装置である。
画像認識装置200は、画像から当該画像の特徴量(MRCoHOG特徴量など)を構成する構成要素である特徴要素(共起ペアなど)を抽出する特徴抽出部21、重みテーブル203を参照することにより当該抽出した特徴要素を重み付けして認識部201に入力する入力部202、及び、ニューラルネットワークを用いて画像認識対象を認識する認識部201を備えている。
【0020】
次に、本実施の形態で用いる画像の特徴量について説明する。
画像認識技術には、画像から特徴量として輝度勾配分布を抽出し、これを予め学習した画像の輝度勾配分布と比較することにより対象を認識するものがある。
輝度勾配分布による特徴量としては、HOG特徴量(Histograms of Oriented Gradients)が有名であり、盛んに研究されている。
【0021】
HOG特徴量を発展させた特徴量にCoHOG特徴量(Co-occurrence HOG)があり、HOG特徴量よりも頑健性(ロバスト性)を有している。
そして、近年、CoHOG特徴量よりも更に頑健性を有するMRCoHOG特徴量(Multi Resolution CoHOG)が提案されている。
MRCoHOG特徴量は、極めて高い頑健性を有していることが実験により明らかになっている。
【0022】
これらの特徴量は、輝度勾配方向に基づく要素を特徴要素とし、これを投票した出現回数を度数とする2次元ヒストグラムによって記述される。
画像認識装置200は、これらのヒストグラムによって特徴量が記述される対象に対してヒストグラムを作成せずに、特徴要素を学習結果による重み付けをしたうえで中間層に順次入力することで画像認識を可能とするものであり、上記の特徴量以外であっても、ヒストグラムによって特徴量を記述するものに広く適用することができる。
【0023】
次に、HOG特徴量、CoHOG特徴量、及びMRCoHOG特徴量について説明する。
図2は、HOG特徴量の概念を説明するための図である。
HOG特徴量は、次の手順により画像から抽出される。
図2(a)左図に示した画像101は、対象を観測する観測窓などによる注目画像領域とする。
まず、画像101を矩形のセル102a、102b、・・・に分割する。
次に、
図2(a)右図に示したように、セル102ごとに各画素(ピクセル)の輝度勾配方向(低輝度から高輝度に向かう方向)を例えば8方向に量子化する。
【0024】
次に、
図2(b)に示したように、量子化した輝度勾配方向を階級とし、出現回数を度数とするヒストグラムを生成することにより、セル102に含まれる輝度勾配方向のヒストグラム106をセル102ごとに作成する。
そして、セル102をいくつか集めたブロック単位でヒストグラム106の合計度数が1となるように正規化する。
【0025】
図2(a)左図の例では、セル102a、102b、102c、102dから1ブロックが形成されている。
このようにしてヒストグラム106a、106b、・・・を
図2(c)のように一列に並べて正規化したものが画像101のHOG特徴量107である。
HOG特徴量の場合は、輝度勾配方向が特徴要素となり、これのヒストグラムが特徴量となる。
【0026】
図3は、CoHOG特徴量の概念を説明するための図である。
CoHOG特徴量は、局所領域における2画素間の輝度勾配方向の共起ペアに着目した特徴量であり、次の手順により画像から抽出される。
図3(a)に示したように、画像101を矩形のセル102a、102b、・・・に分割する。なお、セルは、ブロックとも呼ばれる。
【0027】
CoHOG特徴量では、セル102a、102b、・・・に注目画素110を設定し、注目画素110の輝度勾配方向と、注目画素110から距離1~4にある画素の輝度勾配方向との組合せ(共起ペア)により共起行列(注目画素110に関するヒストグラム)を作成する。なお、注目画素110との組合せに係る画素はオフセットと呼ばれる。
【0028】
例えば、注目画素110からの距離は、数式で表されるが、当該数式を適用すると、
図3(a)に示したように、距離1の画素として、注目画素110に隣接する画素1a~1dが得られる。
なお、注目画素110の上と左の画素が組合せに含まれないのは、一番上の画素行の左端から右方向に向けて順に注目画素110を設定して処理していくため、既に処理が終了しているからである。
【0029】
次に、注目画素110と画素1aの輝度勾配方向を観察する。輝度勾配方向は、例えば8方向に量子化されており、図では方向を矢線で示してある。
注目画素110の輝度勾配方向は、右方向で画素1aの輝度勾配方向は、右上方向である。そのため、これによる共起ペアは、(右方向、右上方向)となる。
そこで、
図3(b)の共起行列113で、(行番号、列番号)=(右方向、右上方向)の要素に1票を投じる。
図3(b)の例では、注目画素110と画素1aの輝度勾配方向の組みとして、行番号として右方向の矢印が記載された行と、列番号として右上方向の矢印が記載された列の要素に1が加算された結果、当該要素の値が10になっている。
【0030】
なお、本来は、共起行列113を立体的なヒストグラムで描き、票数を高さ方向の棒グラフで表すべきであるが、図を簡略化するため票数を数値で表している。
以下、同様に注目画素110と画素1b、1c、1dとの組合せによる投票(計数)を行う。
【0031】
図3(c)に示したように、注目画素110を中心に、距離2の画素は画素1a~1dの外周にある画素2a~2f、距離3の画素は更にその外周の画素3a~3h、距離4の画素は更にその外周の画素4a~4lと規定されている。
これらについても同様に注目画素110と組合せて共起行列113に投票する。
【0032】
以上の投票処理をセル102を構成する全画素について行い、画素ごとの共起行列が得られる。
更に、これを全てのセル102で行い、全ての共起行列の成分を
図3(d)に示したように一列に並べて正規化したヒストグラムが画像101のCoHOG特徴量117である。
CoHOG特徴量の場合は、同一画像上の輝度勾配方向の共起ペアが特徴要素となり、これのヒストグラムが特徴量となる。
【0033】
図4は、MRCoHOG特徴量を説明するための図である。
MRCoHOG特徴量は、同じ画像の異なる解像度間で共起をみることでオフセット数を大幅に削減する。
まず、
図4(a)に示したように、元画像から解像度(画像サイズ)の異なる画像を生成することにより高解像度画像120(元画像)、中解像度画像121、低解像度画像122を得る。画像中の升目は、画素を表している。図示しないが、これら各解像度画像にもセル(ブロックとも呼ばれる)が設定されている。
そして、高解像度画像120、中解像度画像121、及び低解像度画像122のそれぞれの画素について量子化した輝度勾配方向を計算する。
【0034】
MRCoHOG特徴量の抽出には、中解像度画像121、低解像度画像122を用いるが、分かり易くするために、
図4(b)に示したように、中解像度画像121と低解像度画像122を中解像度画像121aと低解像度画像122aに引き延ばし、高解像度画像120と同じサイズにする。
【0035】
次に、
図4(c)に示したように、CoHOG特徴量と同様に、高解像度画像120の注目画素125における輝度勾配方向と、その周囲の高解像度画像120の画素1a~1dの輝度勾配方向との共起(輝度勾配方向の組合せ)を取って、図示しない共起行列に投票する。
【0036】
次に、高解像度画像120の注目画素125と、画素1a~1dの外周にある中解像度画像121aの画素2a~2dとの共起に従って共起行列に投票し、更に、注目画素125と、画素2a~2dの外周にある低解像度画像122aの画素3a~3dとの共起に従って共起行列に投票する。
【0037】
このようにして、高解像度画像120の注目画素125に対して、高解像度画像120内での組合せ、中解像度画像121aとの組合せ、低解像度画像122aとの組合せで共起を取った共起行列が得られる。
この処理を、高解像度画像120のセル内の各画素に対して行い、更に、全てのセルについて行う。
これにより、高解像度画像120の画素ごとの共起行列が得られる。
【0038】
同様にして、更に、中解像度画像121aに注目画素を設定した場合の各解像度画像との共起行列、低解像度画像122aに注目画素を設定した場合の各解像度画像との共起行列を計算し、全ての共起行列の成分を
図4(d)に示したように一列に並べて正規化したヒストグラムが高解像度画像120のMRCoHOG特徴量127である。
【0039】
なお、この例では、高解像度画像120に注目画素を設定した場合の共起行列、中解像度画像121aに注目画素を設定した場合の共起行列、低解像度画像122aに注目画素を設定した場合の共起行列を連結したヒストグラムをMRCoHOG特徴量としたが、何れか1つ、例えば、高解像度画像120に注目画素を設定した場合の共起行列によるヒストグラムをMRCoHOG特徴量とすることも可能である。
また、何れか2つを組合せてもよいし、更に、解像度を増やして4種類以上の解像度画像で共起をとってもよい。
【0040】
MRCoHOG特徴量の場合は、同一被写体の複数の解像度による画像上の輝度勾配方向の共起ペアが特徴要素となり、これのヒストグラムが特徴量となる。
MRCoHOG特徴量によって、CoHOGより大幅に特徴量を減らすことができる一方、頑健性がCoHOGよりも高いことが実験から明らかになっている。
これは、解像度を低下させることによりノイズが低減することと、注目画素から離れた部分との共起をみるためではないかと推測されている。
以上、輝度勾配方向に基づく3つの特徴量について説明したが、本実施の形態では、これら3つのうちで最も優れているMRCoHOG特徴量を採用した。
【0041】
以下、画像認識装置200の構成を詳細に説明するが、その前に、数学的な計算式のハードウェアへの適用形態について説明する。
MRCoHOG特徴量を算出するためには、平方根、除算、逆正接を計算する必要がある。
ところが、コンピュータは、加算によって平方根などの各種計算をするため、これらの演算は、負荷が大きい。
そのため、計算速度を高速化したり、ICチップ化(集積回路化)できるように回路規模を適正なものにするためには、ハードウェアに適した計算方法を考案する必要がある。
【0042】
図5は、本実施形態で用いる計算方法を説明するための図である。
図5(a)の式(1)のm(x、y)は、座標(x、y)にある画素の輝度勾配の勾配強度の計算式を示している。
なお、文字化け防止のために、下付の小文字は、全角文字で表す。
【0043】
fx(x、y)、fy(x、y)は、それぞれ、x方向(水平方向・横方向)とy方向(垂直方向・縦方向)の輝度の勾配強度である。
fx(x、y)、fy(x、y)は、数学的には、輝度をx方向、y方向に偏微分して求めるが、本実施形態では、fx(x、y)を着目画素の水平方向(左右横方向)両隣に隣接する画素の輝度の差分で表し、fy(x、y)を着目画素の垂直方向(上下縦方向)両隣に隣接する画素の輝度の差分で表す。
【0044】
式(1)に示したように、勾配強度は、平方根を含んでいるが、ユーグリッド距離をマンハッタン距離に置き換えることにより、式(1)を式(2)の加算式で近似する。
この置き換えは、
図5(a)の右図に示したように、地点TS間のユーグリッド距離である(t自乗+s自乗)の平方根を、マンハッタン距離であるt+sで近似するものである。名称のマンハッタンは、米国都市のマンハッタンの街路が碁盤の目状であることに由来する。
【0045】
勾配強度は、輝度勾配に係る輝度の高低差が大きいほど大きくなる量であり、ゼロオフセットに用いられる。
勾配強度が所定の閾値に達しないものに関しては、例えば、共起を取らないなどの所定の処理を行うが、画像の識別精度に与える影響が小さいため、本実施形態では、当該処理については説明を省略する。
実験の結果、ユーグリッド距離をマンハッタン距離で置き換えても画像認識能力には、殆ど影響しないことが確認された。
【0046】
図5(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)の組を量子化された輝度勾配方向に写像する。
【0047】
図5(c)は、角度θの範囲と量子化した輝度勾配方向θとの関係を表したものである。
本実施形態では、一例として、輝度勾配方向を8方向に量子化するものとする。
ここでは、
図5(c)に示すように、輝度勾配方向θが0°≦θ<45°のものは0°に量子化し、45°≦θ<90°のものは45°に量子化し、他の角度も同様に、90°、135°、180°、225°、270°、315°に量子化するものとする。
【0048】
この手法では、まず、分類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)が正の場合である。
【0049】
次に、fx(x、y)とfy(x、y)の大小関係を比較し、分類12に従って、量子化された輝度勾配方向に対応させる。
分類がaで、yがx以下の場合は、0°に対応させ、yがxより大きい場合は、45°に対応させる。
分類がbで、-yがx以下の場合は、90°に対応させ、-yがxより大きい場合は、135°に対応させる。
【0050】
分類がcで、yがx以上の場合は、180°に対応させ、yがxより小さい場合は、225°に対応させる。
分類がdで、-yがx以上の場合は、270°に対応させ、-yがxより小さい場合は、315°に対応させる。
このように、本実施形態では、分類11、12によって構成される対応テーブルを参照することにより、逆正接や除算を使用せずに、高速に量子化された輝度勾配方向を得ることができる。
【0051】
このように、本実施形態の画像処理装置は、注目画素の隣接画素の輝度を用いて注目画素の水平方向の輝度勾配強度fx(x、y)、及び垂直方向の輝度勾配強度fy(x、y)を取得し、当該取得した水平方向の輝度勾配強度と垂直方向の輝度勾配強度を、水平方向の輝度勾配強度と垂直方向の輝度勾配強度の正負及び大小と、量子化した勾配方向と、を対応させた対応テーブルで参照して量子化した輝度勾配方向を出力している。
【0052】
次に、画像認識装置200の構成について説明する。
図6は、画像認識装置200を構成する特徴抽出部21の回路構成を示した図である。
画像入力部23は、動画カメラから送信されてくるフレームの画像の輝度を画素順(当該画素が画像で配置されている順序)に基づいて順次出力する。
MRCoHOG特徴量を計算するには、画像を構成する各画素の輝度が有ればよい。そのため、画像認識装置200は、YUYV形式で形成された画像の画素のY(輝度)を画素値として利用する。
【0053】
ここでは、予め画像から輝度を抽出したものを画像入力部23に入力してもよいし、または、画像入力部23が画像から輝度を抽出してもよい。
本実施形態では、一例として前者、即ち、予めYUYV形式の画像から輝度データYを抽出し、これを画像として画像入力部23に入力するものとする。
【0054】
このように、画像入力部23は、画像を取得する画像取得手段、及び画像の画素の画素値として輝度を取得する画素値取得手段として機能している。
以下では、画像のi行目j列の画素の輝度データや後述の輝度勾配方向を(i-j)などと対応する画素の行番号と列番号で表すことにする。
【0055】
画像40は、
図8(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)から構成されている。
【0056】
画像入力部23は、動画カメラから送られてくる画像40から輝度データを上の行から右方向に順に読み出し、輝度データ(0-0)、(0-1)、(0-2)、・・・、(0-n)、(1-0)、(1-1)、・・・の順に出力する。
【0057】
図6に戻り、画像入力部23の出力線は、3ラインバッファ25a、中解像度部24b、低解像度部24cに配線されており、画像入力部23が出力した輝度データは、3ラインバッファ25a、中解像度部24b、低解像度部24cのそれぞれに同時に出力される。
なお、
図6では、高解像度の輝度データの配線を太線の矢線で表し、中解像度の輝度データの配線を細線の矢線で表し、低解像度の輝度データの配線を点線で示している。
【0058】
中解像度部24bと低解像度部24cは、それぞれ、画像40の解像度(サイズ)を1/2と1/4に変換する解像度変換回路である。
これらの解像度変換回路により、画像40から解像度が1/2、1/4の画像が生成される。
なお、画像40は、解像度を変換せずにそのまま高解像度画像としても使用される。
【0059】
解像度を変換する(リサイズする)方法には、最近隣接補間、バイリニア補間、バイキュビック補間などがある。
最近隣接補間は、リサイズ前の画素を抜き出してそのまま使う方法であり、バイリニア補間は、対象画素を中心とする2×2の領域を加重平均する方法であり、バイキュビック補間は、対象画素を中心とする4×4の領域を3次関数によって補間する方法である。
特徴抽出部21では、計算が単純で、更に、検出精度が高まる最近隣接補間を採用した。
【0060】
図7は、中解像度部24b、低解像度部24cによる解像度変換処理を説明するための図である。
中解像度部24bは、画像40bに示したように、画像入力部23が送信してくる画像40の輝度データのうち、斜線で示した1つおきの頻度で輝度データを読み込み、その他の輝度データを読み飛ばすことにより、垂直方向・水平方向の輝度データが1つおきとなった解像度1/2の画像データを生成する。
【0061】
低解像度部24cは、画像40cに示したように、画像入力部23が送信してくる画像40の輝度データのうち、斜線で示した3つおきの頻度で輝度データを読み込み、その他の輝度データを読み飛ばすことにより、垂直方向・水平方向の輝度データが3つおきとなった解像度1/4の画像データを生成する。
【0062】
このような輝度データの間引きを行うことによって、中解像度部24bは、解像度が1/2となった中解像度画像を生成・出力し、低解像度部24cは、解像度が1/4となった低解像度画像を生成・出力する。
最近隣接補間を採用したため、不要なデータを読み飛ばし、必要なデータを拾うという計算負荷の小さい簡単な処理によって解像度を変更することができる。
【0063】
図6に戻り、3ラインバッファ25aは、高解像度画像の輝度データを蓄えて、3行分を並列して勾配方向算出部26aに出力する回路である。
勾配方向算出部26aは、3行分の輝度データを用いて高解像度画像における注目画素の輝度勾配方向を表す輝度勾配方向データを出力する回路である。
【0064】
3ラインバッファ25bは、中解像度画像の輝度データを蓄えて、3行分を並列して勾配方向算出部26bに出力する回路である。
勾配方向算出部26bは、3行分の輝度データを用いて中解像度画像における注目画素の輝度勾配方向を表す輝度勾配方向データを出力する回路である。
【0065】
3ラインバッファ25cは、低解像度画像の輝度データを蓄えて、3行分を並列して勾配方向算出部26cに出力する回路である。
勾配方向算出部26cは、3行分の輝度データを用いて低解像度画像における注目画素の輝度勾配方向を表す輝度勾配方向データを出力する回路である。
【0066】
図8は、3ラインバッファ25aと勾配方向算出部26aの詳細な動作を説明するための図である。
図8(a)を用いて先に説明したように、画像入力部23からは、高解像度画像の画像40の輝度データが(0-0)、(0-1)、・・・と出力される。
【0067】
3ラインバッファ25aは、
図8(b)に示したように、これら輝度データを行別に3行分蓄えて、これら3行分を並列して勾配方向算出部26aに出力する。
図8(b)の例では、画像40の2行目の輝度データ(1-0)、(1-1)、(1-2)、・・・と、3行目の輝度データ(2-0)、(2-1)、(2-2)、・・・と、4行目の輝度データ(3-0)、(3-1)、(3-2)、・・・を画素の列を揃えながら並行して勾配方向算出部26aに出力している場合を表している。
【0068】
勾配方向算出部26aは、並列して出力される3行分の輝度データの入力を受け付けて、量子化された輝度勾配方向を出力する。
図8に示したように、勾配方向算出部26aは、3行3列の記憶素子の配列を備えており、3ラインバッファ25aの出力に同期して3行3列分の輝度データを取り込んで、これら輝度データによる輝度を読み取る。
【0069】
図に示したように、勾配方向算出部26は、3行3列の輝度データのうち、中央の輝度データを注目画素に設定する。図の例では、太線の矩形で囲った輝度データ(2-1)が注目画素の輝度データとなる。
【0070】
そして、勾配方向算出部26aは、注目画素と水平方向に隣接する輝度データ(2-2)、(2-0)の輝度の差分から水平方向の輝度勾配強度fx(x、y)を算出し、注目画素と垂直方向に隣接する輝度データ(1-1)、(3-1)の輝度の差分から垂直方向の輝度勾配強度fy(x、y)を算出する。
【0071】
勾配方向算出部26aは、fx(x、y)とfy(x、y)を求めると、これを
図5の式(2)に代入してm(x、y)を求め、m(x、y)が閾値に達していない場合は、所定の処理を行う。
m(x、y)が閾値に達している場合は、fx(x、y)、fy(x、y)を対応テーブルで参照して、当該画素の量子化した輝度勾配方向を表す輝度勾配方向データ(2-1)を出力する。
このように、輝度勾配方向データは、輝度データと同様に画素に対応して生成される。
【0072】
次のクロックでは、輝度データの列が1つ移動し、勾配方向算出部26a2に示したように、次の輝度データ(2-2)が注目画素となって、輝度勾配方向データ(2-2)が出力される。
このように、勾配方向算出部26aは、クロックごとに輝度勾配方向データを順次出力する。
また、勾配方向算出部26aは、最後の列に達すると、行が1つ分進み、次の行の輝度データを注目画素とする輝度勾配方向データを出力する。
【0073】
同様に、3ラインバッファ25bと勾配方向算出部26bは、中解像度画像の輝度勾配方向データを出力し、3ラインバッファ25cと勾配方向算出部26cは、低解像度画像の輝度勾配方向データを出力する。
【0074】
このように、勾配方向算出部26aに配設された3行3列の記憶素子の配列には、注目画素の位置と、これに隣接する隣接画素の位置が対応づけられており、この位置の対応を用いて、クロックに従って順次送られてくる輝度データにおいて、注目画素の輝度データと隣接画素の輝度データを順次特定していく。
これら注目画素の位置や隣接画素の位置を通過する順序は、画像入力部23が輝度データを出力した順序によって定まる。
【0075】
これは、バケツリレー式に順次送られてくる輝度データの経路上に、注目画素用の窓と隣接画素用の窓を設け、これらの窓で観察することにより、注目画素の輝度データと隣接画素の輝度データを特定しているのと論理的に同じである。
【0076】
図6に戻り、縦方向2倍部27bと縦方向4倍部27cは、それぞれ、中解像度画像と低解像度画像について、垂直方向の輝度勾配方向データを垂直方向に2倍、4倍に延ばす回路である。
この処理は、後に共起ペア計算部30aなどで共起を読み取る際のタイミングを合わせるためのものである。
【0077】
図9は、垂直方向のデータ延ばし処理を説明するための図である。
データ51は、データ延ばし前の輝度勾配方向データの構成を示している。各升目が各輝度勾配方向データを表しており、これらが対応する画素の順に並べられている。
データ51の各行を複製して、複製元の行と隣接させて配置すると、垂直方向に2倍に延ばしたデータ52と、4倍に延ばしたデータ53が得られる。
【0078】
この手法により、縦方向2倍部27bは、勾配方向算出部26bから出力された中解像度画像の輝度勾配方向データを行ごとに複製して縦方向(垂直方向)に2倍に延ばす。
また、縦方向4倍部27cは、勾配方向算出部26cから出力された低解像度画像の輝度勾配方向データを行ごとに複製して縦方向に4倍に延ばす。
【0079】
図6に戻り、バッファ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】
図10は、水平方向のデータ延ばし処理を説明するための図である。
データ列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回、高解像度画像の輝度勾配方向データの出力タイミングに合わせて出力する。
なお、データ列56とデータ列57の最初と最後における出力回数がそれぞれ2回ずつ、4回ずつでないのは、データ列55による幅と同じ幅に調整するためである。
これにより、中解像度画像、低解像度画像の輝度勾配方向データが水平方向に、それぞれ2倍、4倍に延ばされる。
【0085】
図6に戻り、共起ペア計算部30a、30b、30cは、それぞれ、タイミングコントローラ29から出力された輝度勾配方向データを用いて共起ペアを入力部202に出力する回路である。
共起ペア計算部30a、30b、30cは、それぞれ、高解像度画像、中解像度画像、低解像度画像の画素を注目画素とする共起ペアを作成して出力する。
【0086】
図11は、共起ペア計算部30aが共起ペアを計算する仕組みを説明するための図である。
共起ペア計算部30aは、タイミングコントローラ29から送信されてくる輝度勾配方向データ(輝度勾配方向)を解像度別に2行に渡って記憶する、高解像度画像用の2ラインバッファ61-1、中解像度画像用の2ラインバッファ61-2、低解像度画像用の2ラインバッファ61-3を備えている。
そして、2ラインバッファ61-1~61-3は、それぞれ、以下の要領で出力部63-1~63-3から共起ペアを出力する。
なお、以下では、2ラインバッファ61-1、61-2、・・・を特に区別しない場合は単に2ラインバッファ61と記す。他の構成要素についても同様とする。
【0087】
2ラインバッファ61-1、61-2、61-3の右側には、それぞれ、各2ラインバッファ61-1、61-2、61-3に記憶された輝度勾配方向データの配置を図示してある。
輝度勾配方向データの位置を示す符号は、
図4(c)の位置の符号に対応させてある(輝度勾配方向は対応していない)。また、注目画素に対応する輝度勾配方向データを太線の矩形で囲み、投票のためにこれと組合せる相手の画素の輝度勾配方向データを○で囲んである。
【0088】
図に示したように、2ラインバッファ61-1、61-2、61-3には、それぞれ、高解像度画像、中解像度画像、低解像度画像の輝度勾配方向データが2行3列分配置される。
なお、画像入力部23が輝度データを出力した順に配置するため、2ラインバッファ61-1、61-2、61-3での配置は、
図4(c)と左右が逆になっている。
【0089】
まず、共起ペア計算部30aは、注目画素125の輝度勾配方向データと画素1a~1dの輝度勾配方向データとの組合せに基づく共起ペアをクロックに同期して出力部63-1から順次出力する。
更に、共起ペア計算部30aは、注目画素125の輝度勾配方向データと、画素2a~2dの輝度勾配方向データとの組合せに基づく共起ペアをクロックに同期して出力部63-2から順次出力し、注目画素125の輝度勾配方向データと、画素3a~3dの輝度勾配方向データとの組合せに基づく共起ペアをクロックに同期して出力部63-3から順次出力する。
【0090】
共起ペア計算部30aは、当該注目画素125についての共起ペアの出力が完了すると、2ラインバッファ61-1、61-2、61-3に記憶している輝度勾配方向データの列を1つ進める。
これにより、共起ペア計算部30aは、画素1aに対応する輝度勾配方向データを注目画素125の位置に配置し、これを用いた共起ペアの作成と出力を順次行う。
共起ペア計算部30aは、以上の動作を繰り返すことにより、高解像度画像の各画素に対する共起ペアを作成して順次出力する。
【0091】
図6に戻り、共起ペア計算部30b、30cも共起ペア計算部30aと同様にして、それぞれ、中解像度画像の画素を注目画素とした場合の共起ペアと、低解像度画像の画素を注目画素とした場合の共起ペアを順次出力する。
特徴抽出部21は、以上のように構成されており、各回路は、クロックに同期して同時に動作し、流れ作業にて順次処理を行って、動画カメラから出力される画像をリアルタイムで処理することにより、画像データから複数解像度に渡る輝度勾配方向の共起ペアを作成して順次出力する。
【0092】
以上のように、特徴抽出部21は、画素値から被写体の特徴を表す特徴量の各特徴要素を順次取得する特徴要素取得手段として機能している。
この特徴要素は、輝度勾配方向に基づくものであり、特に、輝度勾配方向の共起に基づくものであり、更には、輝度勾配方向の異なる解像度の画像に渡る共起に基づいている。
【0093】
次に、画像認識装置200を構成する入力部202、認識部201について説明する。
従来技術では、これら共起ペアをそれぞれの解像度の共起行列に投票した後、連結してメモリにヒストグラムを作成し、これによってMRCoHOG特徴量を作成してからBNN(Binarized Neural Networks)に投票していたところ、画像認識装置200は、ヒストグラムの作成は行わずに、共起ペアを入力部202から認識部201のBNNに直接投票することによりヒストグラムを作成したのと同様の効果を発揮する。
【0094】
図12の各図は、入力部202と認識部201の構成を説明するための図である。
図12(a)に示したように、入力部202は、入力ノード211-1、211-2、・・・からなる入力層を備えており、それぞれ出力部63-1、63-2、・・・、63-nがクロックに同期して順次出力する共起ペアの入力を順次受け付ける。
【0095】
より詳細には、
図12(b)に示したように、出力部63-1は、(→↑)、(↑↑)、・・・といったように、抽出した各種の共起ペアをクロックに同期して順次出力し、入力ノード211-1は、これらの入力をクロックに同期して順次受け付ける。
【0096】
そして、入力部202は、重みテーブル203を参照し、入力ノード211-1と中間層を構成する各ノード、即ち、中間ノード213-1、213-2との間の接続部分の重み付けを設定し、当該重み付けに基づいて中間ノード213-1、213-2に1票(1又は-1)を投票する。
他の、出力部63-2、63-3、・・・や入力ノード211-2、211-3、・・・についても同様である。
【0097】
図12(c)に示したように、重みテーブル203は、各出力部63について共起ペアと重み付けの対応を記憶している。これらの重み付けは、学習によって得られたものであり1と-1の2値の何れかに2値化されている。
入力部202は、重みテーブル203を参照しながら出力部63から入力される共起ペアに対応してノード間の接続部分の重み付けを順次設定することにより、共起ペアに基づいてヒストグラムに投票するのと同様の効果を中間ノード213に発揮させる。
このように入力部202は、予め画像認識対象について学習した重み付けを用いて特徴要素に対応する入力値を順次取得する入力値取得手段として機能している。
【0098】
図12(a)に戻り、認識部201は、中間ノード213-1、213-2からなる中間層と、出力ノード215-1、215-2からなる出力層を備えており、入力部202の入力層と共に3層のBNNを構成している。
なお、これは一例であって、中間層を更に多層化したり、中間層や出力層のノード数を増減させたりすることも可能である。中間層が1層でノードが1つの場合でも実験では識別が可能であった。
また、画像認識装置200では、入力部202を設けて入力層を配置したが、特徴抽出部21と認識部201を直結し、出力部63に重みテーブル203による重み設定機能を持たせてもよい。
更に、BNNではなく、一般のニューラルネットワークを用いることも可能である。
【0099】
このように構成された認識部201は、BNN、即ち、2値化したニューラルネットワークによって特徴量を識別する。
認識部201で、BNNを用いたのは、一般の浮動小数点を用いたニューラルネットワークでは、乗算などを行うためハードウェア回路が大面積となってしまい、半導体装置への実装が困難なためである。
後述するように、BNNは、重みを1と-1の2値とし、加算器やカウンタなどを用いて構成できるため、回路面積が、例えば、浮動小数点を用いた場合の100分の1程度になり、ハードウェアへの実装が容易であると共に消費電力も小さくなる。そして、BNNは、小規模な回路構成にもかかわらず、実用に十分耐えうる識別性能を発揮する。
【0100】
図13は、BNNの仕組みを説明するための図である。
BNN210は、入力ノード211-i(i=1、2、3)からなる入力層と、隠れユニットを構成する中間ノード213-j(j=1、2)からなる中間層(隠れ層)と、出力ノード215-k(k=1、2、3)からなる出力層を有している。
なお、前述したように、画像認識装置200では、入力層は入力部202に形成され、中間層と出力層は認識部201に形成されている。
【0101】
これらノードは、ニューラルネットワークのノードを構成する計算ユニット(パーセプトロン)であって、各層間で各ノードを全結合することによりニューラルネットワークを形成している。
入力ノード211-iから中間ノード213-jへの出力に対しては、{-1、1}の2値の何れかの値をとる計算の重みWjiが設定される。
画像認識装置200の場合は、入力部202が重みテーブル203を参照しながら共起ペアに応じてクロックに同期しながらWjiを順次動的に設定する。
中間ノード213-jから出力ノード215-kへの出力に対しては、学習によって決定された{-1、1}の2値の何れかの値をとる計算の重みWkjが設定されている。Wkjは固定値である。
【0102】
なお、図ではi、j、kを下付の添え字で表しているが、明細書中では文字化けを防止するため通常の大きさで記す。他の要素についても同様とする。
また、図では、変数x、y、z、wを小文字で記しているが、明細書中では、変数と添え字の視認性をよくするために、これらをX、Y、Z、Wの大文字で記す。
【0103】
入力ノード211-iへの入力Xiは、特徴抽出部21が入力部202に投じる1票であり、特徴抽出部21が共起ペアを出力するごとに1となる。
この1票を中間ノード213-1へ加算するのか、あるいは減算するのか、また、中間ノード213-2へ加算するのか、あるいは減算するのかが、入力部202が設定するWjiによって決定される。
【0104】
中間ノード213の活性化関数は{-1、1}に2値化されており、中間ノード213-jの出力Yjは、{-1、1}の2値の何れかをとる。
出力ノード215-kは、中間ノード213の出力を合計し、その符号を{-1、1}の2値で出力する。
出力ノード215-kの出力Zkは、k番目の識別対象に対応している。例えば、出力ノード215-1は、人に対応しており、人を識別した場合は、Z1=1を出力し、人物を検出しなかった場合は、Z1=-1を出力する。他の出力ノード215も同様である。
画像認識装置200では、出力ノード215-2は、背景に対応しており、出力ノード215-3は、設けられていないが、例えば、信号機などの他の認識対象に対応させることができる。
以下に、これらの演算について説明する。
【0105】
図14は、
図13の部分220(入力層と中間層の一部)を示した図である。
入力ノード211-iは、入力されたXi(=1)にWjiに基づく演算f(Xi、Wji)を行って中間ノード213-jに出力する。この演算は、Xiの符号をWjiの符号に揃えるものであって、Wjiが1ならf(Xi、Wji)=Xi=1となり、Wjiが-1ならf(Xi、Wji)=-Xi=-1となる。
図の例では、入力ノード211-2、211-3が、それぞれf(X2、W22)とf(X3、W23)を計算して中間ノード213-2に出力している。
入力ノード211は、出力部63から順次入力されるXiについて順次行い中間ノード213に順次出力する。
【0106】
中間ノード213は、カウンタを備えており、入力ノード211から順次入力される1票(1又は-1)をカウンタに入力してその合計値を順次記憶する。即ち、入力ノード211から値が入力されるたびに、式225に従って、入力された値を合計値に加算して合計値を順次更新していく。
【0107】
そして、中間ノード213は、カウンタに記憶した合計値が0以上ならYj=1を出力し、それ以外ならYj=-1を出力することによりその符号を順次出力する。
中間ノード213は、この合計値の記憶と出力の更新を、画像入力部23に入力された画像の処理が終了するまで継続し、次の画像の処理を行う際に初期値に戻って同様の処理を繰り返す。
【0108】
このように、中間層は、入力値のネットワーク入力を順次受け付け、当該受け付けた入力値を式225(
図14)に従って順次加算して順次記憶すると共に当該記憶した加算値に対応する値を順次出力する加算ノードとからなる加算層として機能している。
【0109】
図15は、
図13の部分221(中間層と出力層の一部)を示した図である。
中間ノード213-jが出力したYjは、中間層と出力層の重み付けWkjに従って重み付けされて出力ノード215-kに入力される。
この処理は、中間ノード213-jが、Xnor(Yj、Wkj)従ってYjとWkjの否定排他的論理和をとり、その結果をクロックに同期して出力ノード215-kに順次出力することにより行われる。
例えば、(Yj、Wkj)が(1、1)及び(-1、-1)の場合には、中間ノード213-jは、出力ノード215-kに1を出力し、その他の場合には-1を出力する。
【0110】
一方、出力ノード215-kもカウンタを備えており、各中間ノード213から送られてきた2値の値を式226(
図15)に従って順次加算しながら記憶し、当該記憶した値が0以上だったらZk=1を順次出力し、それ以外ならZk=-1を順次出力することによりその符号を出力する。
【0111】
出力ノード215は、この合計値の記憶と出力(即ち、画像認識結果)の更新を、画像入力部23に入力された画像の処理が終了するまで継続し、次の画像の処理を行う際に初期値に戻って同様の処理を繰り返す。
【0112】
このように、出力層は、予め画像認識対象について学習した重み付けを用いて加算ノード(中間ノード213)とネットワーク接続し、当該加算層(中間層)が出力した値のネットワーク入力を順次受け付けるとともに、当該受け付けた値の合計値を順次記憶し、当該記憶した合計値に対応する画像認識結果を出力する画像認識結果出力手段として機能している。
【0113】
図12(a)に戻り、特徴抽出部21が共起ペアを入力部202に入力を開始すると、これに同期して中間ノード213と出力ノード215も順次値を出力する。
これによって中間ノード213にヒストグラム相当の値が形成されていくが、開始した当初は、これが完成途上であるため、出力ノード215の値は、人になったり背景になったりする。
【0114】
そして、画像の全ての共起ペアを処理すると、出力ノード215の出力が確定し、人であると認識した場合は、出力ノード215-1が1で出力ノード215-2が-1になり、背景と認識した場合は、出力ノード215-2が1で出力ノード215-1が-1になる。
このように画像認識結果取得手段は、特徴量の全ての特徴要素に対応する合計値を取得した後に画像認識結果を確定する。
【0115】
また、ある程度共起ペアの処理が進むと、出力ノード215の出力がほぼ確定してくる。そこで、例えば、所定回数連続して同じ画像認識結果を出力した場合など、所定の条件を満たす場合は、それを画像認識結果として出力するように構成することもできる。
この場合、画像認識結果出力手段は、出力層に記憶した合計値に対応する画像認識結果を当該記憶の更新にともなって順次更新し、当該更新した画像認識結果が所定回数連続して同じであった場合に、画像認識結果を出力している。
【0116】
図16は、画像認識装置200が行う画像処理手順を説明するためのフローチャートである。
なお、画像認識装置200は、以下のステップ5~45の各処理をクロックに同期して平行して行う。
まず、画像入力部23が画像40の輝度データを出力し、中解像度部24bと低解像度部24cが、中解像度、低解像度に解像度を変換した輝度データを出力する(ステップ5)。
【0117】
そして、3ラインバッファ25a、25b、25cが、それぞれ、高解像度画像、中解像度画像、低解像度画像の輝度データを3行分バッファリングする(ステップ10)。
次いで、勾配方向算出部26a、26b、26cが、それぞれ、高解像度画像、中解像度画像、低解像度画像の画素の輝度勾配方向を算出し、輝度勾配方向データを出力する(ステップ15)。
【0118】
次に、縦方向2倍部27b、縦方向4倍部27cが、それぞれ、中解像度画像と低解像度画像の輝度勾配方向データを垂直方向に2倍、4倍に延ばす(ステップ20)。
高解像度画像の輝度勾配方向データ、2倍に垂直に延ばされた中解像度画像の輝度勾配方向データ、及び4倍に垂直に延ばされた低解像度画像の輝度勾配方向データは、それぞれ、バッファ28a、28b、28cにバッファリングされる。
【0119】
次に、タイミングコントローラ29が、タイミングを揃えて各解像度の輝度勾配方向データを出力する。
タイミングコントローラ29は、この際に、中解像度画像と低解像度画像の輝度勾配方向データを水平方向に2倍、4倍に延ばして出力する(ステップ25)。
【0120】
次に、共起ペア計算部30a、30b、30cは、タイミングコントローラ29から出力された各解像度の輝度勾配方向データを用いて、共起ペアを生成し、出力部63から入力部202の入力層に入力する(ステップ30)。
次に、入力部202は、重みテーブル203を参照して、当該共起ペアに対応する重み付けWjiを取得し、これを用いて中間層に投票する(ステップ35)。
【0121】
これに対し、中間層は、入力層からの入力を受け付けると共に前回の合計値に今回の入力値を加算し、当該加算後の合計値を記憶すると共に当該加算後の合計値に対応する値を出力層に出力する(ステップ40)。
出力層は、中間層からの入力を受け付けると共に前回の合計値に今回の入力値を加算し、当該加算後の合計値を記憶する(ステップ45)。
【0122】
そして、まだ投票していない共起ペアがある場合(ステップ50;N)、画像認識装置200は、ステップ10~ステップ45の処理を継続し、全ての共起ペアを投票した場合(ステップ50;Y)、出力層の画像認識結果を確定して出力する(ステップ55)。
【0123】
図17は、画像認識装置200を用いて半導体装置を構成した例を示した図である。
半導体装置71は、例えば、ICチップによって構成されており、プロセッサ77、RAM78、MRCoHOGアクセラレータ72、アフィンアクセラレータ76、ビデオ入力インターフェース73、ビデオ出力インターフェース74、入出力インターフェース75などが内部に形成されている。
MRCoHOGアクセラレータ72は、画像認識装置200の回路構成が組み込まれており、ビデオ入力インターフェース73から動画データの入力を受け付けて、フレーム画像から共起ペアを生成して画像認識を行い、その結果を出力する。
【0124】
(第1の変形例)
図18(a)は、第1の変形例を説明するための図である。
MRCoHOG特徴量では、共起ペアの出現回数を用いて画像の特徴量を記述し、これを用いて画像認識しているが、共起ペアの中には、画像認識において重要度の高いものや低いものがある。
そこで、本変形例では、重要度の高い共起ペアをReal AdaBoostなどの識別器で予め調べておき、これを重みテーブル203に設定しておくことにより、入力部202で重要度の高い共起ペアを選択して認識部201に入力する。
これにより、処理対象となる共起ペア数を削減することができ、回路の小型化や消費電力の低減が期待できる。
【0125】
このように重要度の高い共起ペアを選択して入力し、重要度の低い共起ペアの入力を省略するため、本変形例に係る重みテーブル203は、省略対象の共起ペアの重み付けWjiを(0、0)に設定する。
図の例では、出力部63-1から出力される共起ペア(↑↑)に対して重み付けを(0、0)に設定しており、当該共起ペアが入力されても入力部202は、これを認識部201に投票しない。
本変形例では、入力部202は、特徴要素のうち、所定の特徴要素を選択して加算層に入力する選択手段として機能している。
【0126】
(第2の変形例)
車両への搭載など、画像認識装置200には様々な使用環境が想定されるため、場合によっては低次元な特徴量によって画像認識する必要性も生じる可能性がある。
そこで、本変形例では、特徴要素による投票を複製することにより画像認識精度を高める。
図18(b)に示したように、入力部202には、入力ノード211-1に対応して入力ノード211-1aと入力ノード211-1bが設けられている。
【0127】
入力部202は、入力ノード211-1に共起ペアが入力されると、重みテーブル203で当該共起ペアに対する重み付けを参照する。
そして、入力部202は、入力ノード211-1a、及び入力ノード211-1bと、中間ノード213との間の接続部分の重み付けを当該参照した重み付けに設定し、これら2つの入力ノード211-1a、入力ノード211-1bから中間ノード213へそれぞれ1票ずつ投票する。
これにより、当該共起ペアによる投票が複製されて2票分行われるため、共起ペアを複製して入力したのと同様となる。
【0128】
入力部202の他の入力ノード211についても同様に2個ずつ複製用のノードが設けられており、入力部202は、投票を複製して行う。
複製して同時に投票を行うことにより、投票によって表現できる値が{-1、1}から{-2、0、2}に増えるため画像認識精度が向上する。3倍以上に複製すると、更に、表現できる値が増える。
【0129】
このように、入力部202は、特徴要素を順次複製して加算層に入力する複製手段として機能している。
特徴要素を複製して投票すると画像認識精度が向上するが、これは以下の理由によるものと考えられる。
【0130】
以上、第1の変形例と第2の変形例について説明したが、これらを組み合わせることも可能である。
この場合、画像認識装置200は、入力部202によって、認識部201に入力する共起ペアを選択すると共に、選択後の共起ペアを複製して認識部201に投票する。
【0131】
以上に説明したように、特徴記述にヒストグラムへの投票を行う必要のあるアルゴリズムと、認識部にDNN(deep neural network)の一つであるBNNを用いて対象を識別する際、共起ヒストグラムを作成する代わりに、入力層から中間層に対して共起ペアによる加減算を直接行うことにより、ヒストグラムを作成しなくても同等の識別が可能になる。
これによって、ヒストグラム作成と同様の効果を持ちながら消費メモリを削減することができる。
従来ヒストグラムの作成に24キロバイト程度要していたところ、画像認識装置200では、中間ノード213を16ビットとすると、2×16=32ビットでヒストグラムを作成したのと同じ効果を得ることができる。
【0132】
以上に説明した、実施の形態、及び変形例によって次のような効果を得ることができる。
(1)画像認識装置200は、BNNを用いて識別を行う際、中間層に直接特徴要素を加減算することで、ヒストグラム作成と同様の効果を持ちながら、消費メモリを削減することができる。
(2)BNNは、中間層での計算を重みと活性化関数(-1、1)の2値化することにより処理コスト低減を図っている。
(3)BNNは、ハードウェアに実装する際、加算器とカウンタで計算できるため、小コストで実装することができる。
(4)画像認識装置200は、ヒストグラム作成の計算を待たずに画像認識による識別処理を実行できるため、処理全体をパイプライン化することができ、処理速度の高速化が行える。
(5)各回路は、クロックに同期して一斉に動作し、左から流れてきたデータを順次(逐次)処理して右に流す流れ作業を同時に行うことによって画像認識を行うため、ハードウェアへの実装が容易となる。
【0133】
なお、説明した実施形態、及び変形例は、次のように構成することも可能である。
(1)請求項1
画像を取得する画像取得手段と、
前記取得した画像の画素の画素値を取得する画素値取得手段と、
前記取得した画素値から被写体の特徴を表す特徴量の複数種類の特徴要素を順次取得する特徴要素取得手段と、
予め画像認識対象について学習した重み付けを用いて前記取得した特徴要素に対応する入力値を順次加算して順次記憶すると共に当該記憶した加算値を用いて画像認識する画像認識手段と、
を具備したことを特徴とする画像認識装置。
(2)構成2
前記画像認識手段は、
予め画像認識対象について学習した重み付けを用いて前記取得した特徴要素に対応する入力値を順次取得する入力層と、
前記取得した入力値を順次受け付け、前記受け付けた入力値を順次加算して順次記憶すると共に当該記憶した加算値に対応する値を順次出力する加算ノードとからなる加算層と、
予め画像認識対象について学習した重み付けを用いて前記加算ノードと接続し、前記加算層が出力した値のネットワーク入力を順次受け付けるとともに、当該受け付けた値の合計値を順次記憶し、当該記憶した合計値に対応する画像認識結果を出力する画像認識結果出力層と、
を有するニューラルネットワークであることを特徴とする構成1に記載の画像認識装置。
(3)構成3
前記ニューラルネットワークは、バイナリネットワークであることを特徴とする構成1に記載の画像認識装置。
(4)構成4
前記画像認識結果出力手段は、前記特徴量の全ての特徴要素に対応する前記合計値を取得した後に前記画像認識結果を確定することを特徴とする構成1、構成2、又は構成3に記載の画像認識装置。
(5)構成5
前記画像認識結果出力手段は、前記記憶した合計値に対応する画像認識結果を当該記憶の更新にともなって順次更新し、
当該更新した画像認識結果が所定回数連続して同じであった場合に、画像認識結果を出力することを特徴とする構成1、構成2、又は構成3に記載の画像認識装置。
(6)構成6
前記画素値取得手段は、画素値として輝度を取得し、
前記特徴要素取得手段は、前記輝度による輝度勾配方向に基づいて前記特徴要素を取得することを特徴とする構成1から5までのうちの何れか1の構成に記載の画像認識装置。
(7)構成7
前記特徴要素取得手段は、前記輝度勾配方向の共起に基づいて前記特徴要素を取得することを特徴とする構成6に記載の画像認識装置。
(8)構成8
前記画像取得手段は、同一被写体の異なる解像度の画像を取得し、
前記特徴要素取得手段は、前記輝度勾配方向の前記異なる解像度の画像に渡る共起に基づいて前記特徴要素を取得することを特徴とする構成7に記載の画像認識装置。
(9)構成9
前記取得した特徴要素のうち、所定の特徴要素を選択して前記加算層に入力する選択手段を具備したことを特徴とする構成1から構成8のうちの何れか1の構成構成に記載の画像認識装置。
(10)構成10
前記取得した特徴要素を順次複製して前記加算層に入力する複製手段を具備したことを特徴とする構成1から構成9のうちの何れか1の構成に記載の画像認識装置。
(11)構成11
画像を取得する画像取得機能と、
前記取得した画像の画素の画素値を取得する画素値取得機能と、
前記取得した画素値から被写体の特徴を表す特徴量の複数種類の特徴要素を順次取得する特徴要素取得機能と、
予め画像認識対象について学習した重み付けを用いて前記取得した特徴要素に対応する入力値を順次加算して順次記憶すると共に当該記憶した加算値を用いて画像認識する画像認識機能と、
をコンピュータで実現する画像認識プログラム。
(12)構成12
画像を取得する画像取得手段と、
前記取得した画像の画素の画素値を取得する画素値取得手段と、
前記取得した画素値から被写体の特徴を表す特徴量の各特徴要素を順次取得する特徴要素取得手段と、
予め画像認識対象について学習した重み付けを用いて前記取得した特徴要素に対応する入力値を順次取得する入力値取得手段と、
前記取得した入力値のネットワーク入力を順次受け付け、前記受け付けた入力値を順次加算して順次記憶すると共に当該記憶した加算値に対応する値を順次出力する加算ノードとからなる加算層と、
予め画像認識対象について学習した重み付けを用いて前記加算ノードとネットワーク接続し、前記加算層が出力した値のネットワーク入力を順次受け付けるとともに、当該受け付けた値の合計値を順次記憶し、当該記憶した合計値に対応する画像認識結果を出力する画像認識結果出力手段と、
を具備したことを特徴とする画像認識装置。
【符号の説明】
【0134】
1a~4l 画素
21 特徴抽出部
23 画像入力部
24b 中解像度部
24c 低解像度部
25a、25b、25c 3ラインバッファ
26a、26b、26c 勾配方向算出部
27b 縦方向2倍部
27c 縦方向4倍部
28a、28b、28c バッファ
29 タイミングコントローラ
30a、30b、30c 共起ペア計算部
40 画像
51、52、53 データ
55、56、57 データ列
61 2ラインバッファ
63 出力部
71 半導体装置
72 MRCoHOGアクセラレータ
73 ビデオ入力インターフェース
74 ビデオ出力インターフェース
75 入出力インターフェース
76 アフィンアクセラレータ
77 プロセッサ
78 RAM
80 コンピュータ
81 CPU
82 ROM
83 RAM
84 カメラ
85 記憶装置
87 入力装置
88 出力装置
101 画像
102 セル
106 ヒストグラム
107 HOG特徴量
110 注目画素
113 共起行列
117 CoHOG特徴量
120 高解像度画像
121 中解像度画像
122 低解像度画像
125 注目画素
127 MRCoHOG特徴量
200 画像認識装置
201 認識部
202 入力部
203 重みテーブル
210 BNN
211 入力ノード
213 中間ノード
215 出力ノード
220、221 部分
225、226 式