JP2016153984A - ニューラルネットワーク処理装置、ニューラルネットワーク処理方法、検出装置、検出方法、および、車両 - Google Patents

ニューラルネットワーク処理装置、ニューラルネットワーク処理方法、検出装置、検出方法、および、車両 Download PDF

Info

Publication number
JP2016153984A
JP2016153984A JP2015032258A JP2015032258A JP2016153984A JP 2016153984 A JP2016153984 A JP 2016153984A JP 2015032258 A JP2015032258 A JP 2015032258A JP 2015032258 A JP2015032258 A JP 2015032258A JP 2016153984 A JP2016153984 A JP 2016153984A
Authority
JP
Japan
Prior art keywords
map
input image
neural network
processing unit
output
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2015032258A
Other languages
English (en)
Other versions
JP6360802B2 (ja
Inventor
育郎 佐藤
Ikuro Sato
育郎 佐藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Denso IT Laboratory Inc
Original Assignee
Denso IT Laboratory Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Denso IT Laboratory Inc filed Critical Denso IT Laboratory Inc
Priority to JP2015032258A priority Critical patent/JP6360802B2/ja
Publication of JP2016153984A publication Critical patent/JP2016153984A/ja
Application granted granted Critical
Publication of JP6360802B2 publication Critical patent/JP6360802B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Image Analysis (AREA)

Abstract

【課題】処理負荷が小さく、かつ、高い精度で検出対象物の位置を検出するためのニューラルネットワーク処理装置、ニューラルネットワーク処理方法、検出装置および検出方法を提供すること、また、そのような検出装置を有する車両を提供する。
【解決手段】入力画像に基づくマップに対して、非線形化処理およびプーリング処理を行い、前記入力画像の水平方向の解像度を保ったまま、前記入力画像における検出対象物の水平方向位置を示す行ベクトル(51)を出力する水平方向処理部(120h)と、前記入力画像に基づくマップに対して、非線形化処理およびプーリング処理を行い、前記入力画像の垂直方向の解像度を保ったまま、前記入力画像における前記検出対象物の垂直方向位置を示す列ベクトル(52)を出力する垂直方向処理部(120v)と、を備えるニューラルネットワーク処理装置(1)が提供される。
【選択図】図3

Description

本発明は、検出対象物を検出するためのニューラルネットワーク処理装置、ニューラルネットワーク処理方法、検出装置および検出方法、ならびに、そのような検出装置を有する車両に関する。
車載カメラを用いて道路上の物体(先行車など)を検出することで、自動車の安全運転を支援できる。そのため、物体の有無およびその位置を検出することが1つの技術課題となっている。物体検出の1つの手法として、畳み込みニューラルネットワーク(Convolution Neural Network)を用いた画像認識手法が知られている(例えば、非特許文献1)。
畳み込みニューラルネットワークでは、入力画像に対する畳み込み演算と、プーリングと呼ばれる縮小処理とを繰り返し、十分に解像度が小さくなった段階で、全結合型ネットワーク(多層パーセプトロン)へと信号が入力されて最終的な出力が得られる。
Y. LeCun, B. Boser, J. S. Denker, D. Henderson, R. E. Howard, W. Hubbard, and L. D. Jackel, "Handwritten Digit Recognition with a Back-Paopagation Network", Advances in Neural Information Processing Systems (NIPS), pp. 396-404, 1990.
しかしながら、このような畳み込みニューラルネットワークには以下のような問題点が挙げられる。
まずは、検出精度の問題である。通常の畳み込みニューラルネットワークでは、入力画像を水平方向および垂直方向にプーリングするため、解像度が低下する。物体の特定精度は解像度に依存するが、解像度が低下するために必ずしも精度よく物体の位置を検出できるとは限らない。かといって、プーリングを一切行わないと、全結合型ネットワークに入力される信号におけるベクトルの次元が著しく大きくなってメモリを逼迫するだけでなく、過学習が起こりやすくなる。そのため、プーリングを行わないのは非現実的である。
また、処理負荷の問題もある。通常の畳み込みニューラルネットワークでは、入力画像のサイズを予め決めておく必要がある。しかしながら、どのようなサイズの画像が物体の位置検出に最適であるかは分からない。よって、車載カメラからの画像をいくつかのサイズにリサイズして複数のピラミッド画像を生成し、そのそれぞれに対してスライディングウィンドウを適用する必要がある。そのため、処理負荷が大きくならざるを得ない。
本発明はこのような問題点に鑑みてなされたものであり、本発明の課題は、処理負荷が小さく、かつ、高い精度で検出対象物の位置を検出するためのニューラルネットワーク処理装置、ニューラルネットワーク処理方法、検出装置および検出方法を提供すること、また、そのような検出装置を有する車両を提供することである。
本発明の一態様によれば、入力画像に基づくマップに対して、非線形化処理およびプーリング処理を行い、前記入力画像の水平方向の解像度を保ったまま、前記入力画像における検出対象物の水平方向位置を示す行ベクトルを出力する水平方向処理部と、前記入力画像に基づくマップに対して、非線形化処理およびプーリング処理を行い、前記入力画像の垂直方向の解像度を保ったまま、前記入力画像における前記検出対象物の垂直方向位置を示す列ベクトルを出力する垂直方向処理部と、を備えるニューラルネットワーク処理装置が提供される。
この構成によれば、入力画像の水平方向および垂直方向の解像度を保ったまま行ベクトルおよび列ベクトルが出力されるので、高い精度で検出対象物の位置を検出できる。
前記水平方向処理部は、前記入力画像に基づくマップに対して、垂直方向のみのプーリング処理を行う第1プーリング部を有し、前記垂直方向処理部は、前記入力画像に基づくマップに対して、水平方向にのみプーリング処理を行う第2プーリング部を有するのが望ましい。
この構成によれば、第1プーリング部が垂直方向にみのプーリング処理を行うので水平方向の解像度を保ったまま行ベクトルを出力でき、かつ、第2プーリング部が水平方向にみのプーリング処理を行うので垂直方向の解像度を保ったまま列ベクトルを出力できる。
望ましくは、前記水平方向処理部は、第1水平方向マップ生成部および第2水平方向マップ生成部を有し、前記垂直方向処理部は、第1垂直方向マップ生成部および第2垂直方向マップ生成部を有し、前記第1水平方向マップ生成部は、前記入力画像に基づくマップに対して、非線形化処理および垂直方向のみのプーリング処理を行って、第1出力マップを生成し、前記第1垂直方向マップ生成部は、前記入力画像に基づくマップに対して、非線形化処理および水平方向のみのプーリング処理を行って、第2出力マップを生成し、前記第2水平方向マップ生成部は、前記第1出力マップおよび前記第2出力マップに対して、非線形化処理およびプーリング処理を行って、前記第1出力マップと水平方向の解像度が等しい第3出力マップを生成し、前記第2垂直方向マップ生成部は、前記第1出力マップおよび前記第2出力マップに対して、非線形化処理およびプーリング処理を行って、前記第2出力マップと垂直方向の解像度が等しい第4出力マップを生成し、前記第3出力マップに基づいて前記行ベクトルが生成され、前記第4出力マップに基づいて前記列ベクトルが生成される。
この構成によれば、第1水平マップ生成部が生成する第1出力マップも使って列ベクトルが生成され、かつ、第1垂直マップ生成部が生成する第2出力マップも使って行ベクトルが生成される。そのため、検出精度が向上する。
具体的には、前記第2水平方向マップ生成部は、前記第1出力マップおよび前記第2出力マップに対して畳み込み演算を行って前記第1出力マップと解像度が等しい第1中間マップおよび第2中間マップをそれぞれ生成し、前記第1中間マップおよび前記第2中間マップを加算して第3中間マップを生成する第1非線形化処理部と、前記第3中間マップに対して、垂直方向のみのプーリング処理を行って前記第3出力マップを生成する第3プーリング部と、を有し、前記第2垂直方向マップ生成部は、前記第1出力マップおよび前記第2出力マップに対して畳み込み演算を行って前記第2出力マップと解像度が等しい第4中間マップおよび第5中間マップをそれぞれ生成し、前記第4中間マップおよび前記第5中間マップを加算して第6中間マップを生成する第2非線形化処理部と、前記第6中間マップに対して、水平方向のみのプーリング処理を行って前記第4出力マップを生成する第4プーリング部と、有してもよい。
さらに具体的には、前記第2中間マップの水平方向および垂直方向の解像度は、前記第2出力マップの水平方向および垂直方向の解像度のそれぞれp1倍および1/q1倍(p1,q1は整数)であり、前記第1非線形化処理部は、前記第2出力マップのある一部の画素値と、第1フィルタのフィルタ係数との内積を、前記第2出力マップのある一部と対応する前記第2中間マップにおける画素およびその右の(p1−1)個の画素の値に設定する処理を、前記第2出力マップの垂直方向においてはq1画素ずつ前記第1フィルタをシフトしながら行うことで、前記第2中間マップを生成し、前記第4中間マップの水平方向および垂直方向の解像度は、前記第1出力マップの水平方向および垂直方向の解像度のそれぞれ1/p2倍およびq2倍(p2,q2は整数)であり、前記第2非線形化処理部は、前記第1出力マップのある一部の画素値と、第2フィルタのフィルタ係数との内積を、前記第1出力マップのある一部と対応する前記第4中間マップにおける画素およびその下の(q2−1)個の画素の値に設定する処理を、前記第1出力マップの水平方向においてはp2画素ずつ前記第2フィルタをシフトしながら行うことで、前記第4中間マップを生成してもよい。
また、サンプル画像における前記検出対象物の上下左右端に対応する画素が第1値で他の画素が第2値である画像を前記入力画像とし、前記水平方向処理部および前記垂直方向処理部は、中央が前記第1値であり他が前記第2値であるフィルタを用いた畳み込み演算を含む前記非線形化処理を行って、正解データとしての前記行ベクトルおよび前記列ベクトルを出力してもよい。
この構成により、サンプル画像から正解データを生成でき、学習処理に用いることができる。
また、前記サンプル画像における前記検出対象物がある画素が前記第1値で他の画素が前記第2値である画素を前記入力画像とし、前記水平方向処理部および前記垂直方向処理部は、中央が前記第1値であり他が前記第2値であるフィルタを用いた畳み込み演算を含む前記非線形化処理を行って、正解データとしての前記行ベクトルおよび前記列ベクトルを出力してもよい。
この構成により、サンプル画像から正解データを生成でき、学習処理に用いることができる。特に、検出対象物が複数ある場合に有効である。
前記サンプル画像および前記正解データに基づいて、前記非線形化処理で用いられるニューラルネットワークパラメータが生成されてもよい。
前記水平方向処理部が、前記検出対象物の左端および右端に対応する列が前記第1値であり、前記左端より左側および前記右端より右側に対応する列が前記第2値である前記行ベクトルを出力し、かつ、前記垂直方向処理部が、前記検出対象物の上端および下端に対応する行が前記第1値であり、前記上端より上側および前記下端より下側に対応する行が前記第2値である前記列ベクトルを出力するよう、前記ニューラルネットワークパラメータが生成されるのが望ましい。
これにより、行ベクトルにおける各列の値および列ベクトルにおける各行の値によって、検出対象物の位置を示すことができる。
前記サンプル画像は、第1検出対象物を含むサンプル画像と、前記第1検出対象物とは異なる第2検出対象物を含むサンプル画像と、を含むのが望ましい。
この構成によれば、複数種類の検出対象物を検出できる。
また、前記サンプル画像は、前記検出対象物の一部のみを含むサンプル画像を含むのが望ましい。
この構成によれば、入力画像に検出対象物の一部のみしか含まれない場合でも、当該検出対象物を検出できる。
前記行ベクトルに基づいて、前記入力画像から前記検出対象物を含む領域を特定する領域特定部を備え、前記垂直方向処理部は、前記入力画像に基づくマップとして、前記特定された領域に対して、非線形処理およびプーリング処理を行ってもよい。
この構成によれば、検出対象物が縦長である場合に、検出精度を向上できる。
前記行ベクトルに基づいて、前記入力画像に前記検出対象物が含まれないと判断される場合、前記垂直方向処理部は非線形処理およびプーリング処理を行わないのが望ましい。
この構成によれば、検出対象物がない場合には垂直方向処理部が処理を行わず、演算量を削減できる。
また、本発明の別の態様によれば、上記のニューラルネットワーク装置と、前記ニューラルネットワーク装置によって出力された前記行ベクトルおよび前記列ベクトルに基づいて、前記入力画像における前記検出対象物の位置を特定する特定部と、を備える検出装置が提供される。
前記特定部は、前記行ベクトルにおける列であって、その値が第1閾値条件を満たす列を前記検出対象物の左端候補または右端候補とし、前記列ベクトルにおける行であって、その値が第2閾値条件を満たす行を前記検出対象物の上端候補または下端候補とするのが望ましい。
この構成によれば、出力される行ベクトルおよび列ベクトルのノイズを除去でき、検出精度が向上する。
また、前記特定部が特定する前記前記検出対象物の左端候補と右端候補は、第1画素数以上離れており、前記特定部が特定する前記前記検出対象物の上端候補と下端候補は、第2画素数以上離れているのが望ましい。
この構成によれば、やはり、出力される行ベクトルおよび列ベクトルのノイズを除去でき、検出精度が向上する。
また、本発明の別の態様によれば、車両本体と、車両本体に取り付けられたカメラと、前記カメラからの画像を前記入力画像として処理する上記の検出装置と、を備える車両が提供される。
また、本発明の別の態様によれば、入力画像に基づくマップに対して、非線形化処理およびプーリング処理を行い、前記入力画像の水平方向の解像度を保ったまま、前記入力画像における検出対象物の水平方向位置を示す行ベクトルを出力するステップと、前記入力画像に基づくマップに対して、非線形化処理およびプーリング処理を行い、前記入力画像の垂直方向の解像度を保ったまま、前記入力画像における前記検出対象物の垂直方向位置を示す列ベクトルを出力するステップと、を備えるニューラルネットワーク処理方法が提供される。
また、本発明の別の態様によれば、入力画像に基づくマップに対して、非線形化処理およびプーリング処理を行い、前記入力画像の水平方向の解像度を保ったまま、前記入力画像における検出対象物の水平方向位置を示す行ベクトルを出力するステップと、前記入力画像に基づくマップに対して、非線形化処理およびプーリング処理を行い、前記入力画像の垂直方向の解像度を保ったまま、前記入力画像における前記検出対象物の垂直方向位置を示す列ベクトルを出力するステップと、前記行ベクトルおよび前記列ベクトルに基づいて、前記入力画像における前記検出対象物の位置を特定するステップと、を備える検出方法が提供される。
入力画像の水平方向の解像度を保ったまま、入力画像における検出対象物の水平方向位置を示す行ベクトルを出力するとともに、入力画像の垂直方向の解像度を保ったまま、入力画像における検出対象物の垂直方向位置を示す行ベクトルを出力するため、精度よく検出対象物の位置を検出できる。さらに、検出対象物の大きさや縦横比に何らの制限もないため、処理負荷を軽減できる。
第1の実施形態に係るニューラルネットワーク処理部1の処理動作の概要を説明する図。 第1の実施形態に係る検出装置100の概略構成を示すブロック図。 第1の実施形態に係るニューラルネットワーク処理部1の概略構成を示すブロック図。 ニューラルネットワーク処理部1の処理動作の概略を説明する図。 非線形化処理部121hの処理を説明する図。 非線形化処理部121hにおける畳み込み演算を説明する図。 水平方向マップ生成部12hにおけるプーリング部122hのプーリング処理を説明する図。 サンプル画像から正解データを生成するための入力画像を説明する図。 正解データ生成時のニューラルネットワーク処理部1の処理を模式的に示す図。 第2の実施形態に係るニューラルネットワーク処理部1’の概略構成を示すブロック図。 水平方向マップ生成部12h’および垂直方向マップ生成部12v’の概略構成を示すブロック図。 水平方向マップ生成部12h’および垂直方向マップ生成部12v’の処理動作の概略を説明する図。 マップ93の生成法を説明する図。 マップ64’の生成法を説明する図。 第2の実施形態に係るニューラルネットワーク処理部1’の処理動作を模式的に示す図。 特定部3による、検出対象物の左右端位置の特定を説明する図。 特定部3による、検出対象物の上下端の特定を説明する図。 特定部3の処理動作の第1例を示す図。 特定部3によるノイズ除去を説明する図。 ノイズ除去の手順を示すフローチャート。 特定部3の処理動作の第2例を示す図。 特定部3の処理動作の第3例を示す図。 特定部3の処理動作の第4例を示す図。 特定部3の処理動作の第5例を示す図。 特定部3の処理動作の第6例を示す図。 車載カメラ101と検出対象物102との進行方向の距離Zを算出する手法を説明する図。 車載カメラ101と検出対象物102との横方向の距離XL,XRを算出する手法を説明する図。 第4の実施形態に係るニューラルネットワーク処理部1’’の概略構成を示すブロック図。 第5の実施形態に係るニューラルネットワーク処理部1の処理動作の概要を説明する図。 サンプル画像から正解データを生成するための入力画像を説明する図。 別のサンプル画像から正解データを生成するための入力画像を説明する図。 領域特定部13の処理動作を説明する図。
以下、本発明に係る実施形態について、図面を参照しながら具体的に説明する。
(第1の実施形態)
第1の実施形態では、入力画像における検出対象物の上下左右端の位置、より詳しくは、左端位置xl、右端位置xr、上端位置ytおよび下端位置ybを、入力画像の解像度を損なうことなく特定する。
そのために、入力画像と解像度が等しい仮想的な2値画像を考える。この2値画像は、画素(xl,yt),(xr,yt),(xl,yb),(xr,yb)の値のみが1であり、他の画素の値は0である。入力画像を処理して上記のような2値画像が得られれば、検出対象物の上下左右端が自ら明らかとなる。
さらに、この2値画像を行列とみなせば、この2値画像は、yt行およびyb行の値のみ1であり他行の値はすべて0である列ベクトルと、xl列およびxr列の値のみ1であり他列の値はすべて0である行ベクトルとの積に分解される。列ベクトルの行数および行ベクトルの列数が、入力画像の垂直方向および水平方向の解像度とそれぞれ等しければ、入力画像の解像度を損なうことなく、検出対象物の上下左右端の位置を特定できる。
そこで、本実施形態では、入力画像をニューラルネットワーク処理して、その解像度を損なうことなく、上記のような列ベクトルおよび行ベクトルを出力するニューラルネットワーク処理装置(ニューラルネットワーク処理部)を開示する。
図1は、第1の実施形態に係るニューラルネットワーク処理部1の処理動作の概要を説明する図である。図1(a)に示すように、入力画像の垂直方向画素数がa、水平方向画素数がb(以下、このことを単に「入力画像の画素数がb×a」ともいう)であるとする。具体的な処理内容は後述するが、この場合、ニューラルネットワーク処理部1は、要素数(列数)がbの行ベクトル51と、要素数(行数)がaの列ベクトル52とを出力する。
図1(b)に示すように、入力画像における検出対象物の境界を矩形で定めたとき、その左上、右上、左下および右下の画素位置がそれぞれ(xl,yt),(xr,yt),(xl,yb),(xr,yb)であったとする。このとき、ニューラルネットワーク処理部1は、xl列およびxr列のみの値が1であり他列の値が0である行ベクトル51、および、yt行およびyb行のみの値が1であり他行の値が0である列ベクトル52を出力するよう、入力画像に対してニューラルネットワーク処理を行う。
行ベクトル51において値が1である列が検出対象物の左端位置および/または右端位置を示している。列ベクトル52において値が1である行が検出対象物の上端位置および/または下端位置を示している。よって、このような行ベクトル51および列ベクトル52に基づいて、検出対象物の位置を特定できる。
以下、具体例として、車載カメラで車両の前方を撮影し、得られた画像を入力画像として検出対象物(例えば、人、他の車両、標識)の上下左右端の位置を検出する検出装置を説明する。
図2は、第1の実施形態に係る検出装置100の概略構成を示すブロック図である。検出装置100は、ニューラルネットワーク処理部1と、学習部2と、特定部3とを備えている。本検出装置100は、予めニューラルネットワーク処理部1および学習部2が、サンプル画像を用いてニューラルネットワークパラメータを生成する(このことを「学習処理」ともいう)。そして、ニューラルネットワーク処理部1および特定部3が、生成されたニューラルネットワークパラメータを用いて、入力画像から検出対象物を検出する(このことを「検出処理」ともいう)。
学習処理において、まずニューラルネットワーク処理部1は、学習処理用のニューラルネットワークパラメータを用い、事前に用意されたサンプル画像を加工して得られた入力画像に対してニューラルネットワーク処理を行い、正解データを生成する。続いて、ニューラルネットワーク処理部1は、同サンプル画像を入力画像としてニューラルネットワーク処理し、行ベクトル51および列ベクトル52を出力する。そして、学習部2は、これら行ベクトル51および列ベクトル52が上記正解データにできるだけ近づくよう、検出処理用のニューラルネットワークパラメータを生成する。
検出処理において、ニューラルネットワーク処理部1には、車載カメラからの画像が入力画像として入力される。そして、ニューラルネットワーク処理部1は、学習部2によって生成された検出処理用のニューラルネットワークパラメータを用いて入力画像に対してニューラルネットワーク処理を行い、検出対象物の位置を示す行ベクトル51および列ベクトル52を出力する。特定部3は、出力された行ベクトル51および列ベクトル52を解釈して、検出対象物の位置を特定する。
なお、学習処理および検出処理において、ニューラルネットワーク処理部1におけるニューラルネットワーク構造は共通している。そこで、まずはニューラルネットワーク構造を説明し、続いて学習処理および検出処理について詳しく説明する。
図3は、第1の実施形態に係るニューラルネットワーク処理部1の概略構成を示すブロック図である。図3に示すように、ニューラルネットワーク処理部1は、非線形化処理部11と、水平方向処理部120hと、垂直方向処理部120vとを有する。水平方向処理部120hは1以上の水平方向マップ生成部12hを有し、垂直方向処理部120vは1以上の垂直方向マップ生成部12vを有する。
なお、非線形化処理部11はなくてもよいし、2以上の非線形化処理部11が縦続接続されていてもよい。また、水平方向マップ生成部12hや垂直方向マップ生成部12vの数にも制限はないが、両者の数は等しい。
初段の非線形化処理部11は入力画像をマップとして畳み込み演算および活性化処理を行い、新たなマップを出力する。入力画像がグレースケールである場合、マップの数は1つである。入力画像がR画像、G画像およびB画像で構成される場合、マップの数はR画像、G画像およびB画像の3つであってもよい。非線形化処理部11が複数段ある場合、前段の非線形化処理部11から出力されるマップを、次段の非線形化処理部11が同様の処理をする。具体的な処理内容は、次に説明する水平方向マップ生成部12hの非線形化処理部121hなどにおける処理と同様である。非線形化処理部11による処理には、物体のエッジなどを抽出する役割がある。
水平方向処理部120hおよび垂直方向処理部120vには、入力画像に基づくマップ、すなわち、最終段の非線形化処理部11から出力されるマップか、非線形化処理部11がない場合には入力画像が入力される。検出対象物が1種類である場合、水平方向処理部120hは1つのマップ(すなわち行ベクトル51)を出力し、垂直方向処理部120vは1つのマップ(すなわち列ベクトル52)を出力する。
水平方向処理部120hにおける各水平方向マップ生成部12hは、非線形化処理部121hと、プーリング部122hとを有する。非線形化処理部121hは、マップに対して非線形化処理を行う。非線形化処理によってマップの数は変化し得るが、マップの解像度は不変である。プーリング部122hは、マップに対して垂直方向にのみのプーリングを行う。この処理によって、マップの垂直方向の解像度は減るが、水平方向の解像度は不変である。
垂直方向処理部120vにおける各垂直方向マップ生成部12vも、非線形化処理部121vと、プーリング部122vとを有する。非線形化処理部121vは、マップに対して非線形化処理を行う。非線形化処理によってマップの数は変化し得るが、マップの解像度は不変である。プーリング部122vは、マップに対して水平方向にのみのプーリングを行う。この処理によって、マップの水平方向の解像度は減るが、垂直方向の解像度は不変である。
図4は、ニューラルネットワーク処理部1の処理動作の概略を説明する図であり、マップの解像度の変遷に特に着目したものである。同図において、実線矢印は非線形化処理部11,121h,121vによる非線形化処理を意味しており、破線矢印はプーリング部122h,122vによるプーリング処理を意味している。図4の表現によれば、入力画像のマップ数がm0であり、k段目(最終段を除く)の非線形化処理後のマップ数がmkであり、最終段の非線形化処理後のマップ数が1であることが明示される。また、プーリング処理の度にマップの解像度が垂直方向または水平方向にのみ変化していく様子も明示される。
図5は、非線形化処理部121hの処理を説明する図である。非線形化処理部11,121h,121vの処理は共通しているため、特に断らない限り非線形化処理部121hについて説明する。
非線形化処理部121hは、マップ61〜63に対して、畳み込み演算、活性化処理およびバイアス加算処理を行い、中間マップ71〜73を生成する。同図では、3つのマップ61〜63から3つの中間マップ71〜73を生成する例を示しているが、入力されるマップおよび中間マップの数に制限はない。ただし、初段の非線形化処理部121hが生成する中間マップ数と、初段の非線形化処理部121vが生成する中間マップ数は等しい。2段目以降も同様である。そして、最終段の非線形化処理部121h,121vは1つの中間マップを生成する。
図5において、実線矢印は畳み込み演算および活性化処理を示している。畳み込み演算の詳細は図6を用いて後述するが、畳み込み演算に用いられるフィルタの係数は実線矢印ごとに異なり得る。活性化処理は、シグモイド関数などの活性化関数を用い、畳み込み演算の結果を活性化する処理である。また、一点鎖線矢印はバイアス加算処理を示しており、スカラーであるバイアスが1と掛け合わされて、活性化処理の結果の全要素に足される。バイアスは一点鎖線矢印ごとに異なり得る。
図5の例では、非線形化処理部121hにはマップ61〜63が入力され、マップ61に対する畳み込み演算および活性化処理の結果と、マップ62に対する畳み込み演算および活性化処理の結果と、マップ63に対する畳み込み演算および活性化処理の結果と、が加算され、さらにバイアスが加算されて、引き続くプーリング部122hに入力される中間マップ71が生成されることなどが示されている。
上記フィルタ係数およびバイアスがニューラルネットワークパラメータである。学習処理用ニューラルネットワークパラメータは予め定められた固定値であり、検出処理用ニューラルネットワークパラメータは学習部2によって生成される。
図6は、非線形化処理部121hにおける畳み込み演算を説明する図である。図6(a)はマップのサイズが減少する畳み込み演算であり、図6(b)はマップのサイズが不変である畳み込み演算である。
図6(a)の畳み込み演算では、非線形化処理部121hは、まず畳み込み演算前のマップ64の画素(1,1)を左上とする例えば3×3画素の領域にフィルタ80を設定する。そして、非線形化処理部121hは、フィルタ係数とマップ64の画素値との内積を、畳み込み演算後のマップ81の画素(1,1)の値とする。以下、非線形化処理部121hはフィルタ80の位置を1画素ずつ右にシフトしながら、畳み込み演算後のマップ81の各画素値を算出する。この場合、畳み込み演算後のマップ81における右端2列および下端2行の値は算出されない。よって、畳み込み演算後のマップ81は、畳み込み演算前のマップ64に比べて、水平方向および垂直方向とも2画素ずつサイズが減少する。
一方、図6(b)の畳み込み演算では、非線形化処理部121hは、畳み込み演算前のマップ64の画素(1,1)を中央とする例えば3×3画素の領域にフィルタ80を設定する。そして、非線形化処理部121hは、フィルタ係数とマップ64の画素値との内積を、畳み込み演算後のマップ82の画素(1,1)の値とする。ただし、畳み込み演算前のマップ64からはみ出る領域の画素の値は0とする(Zero paddingと呼ばれる)。以下、非線形化処理部121hはフィルタ80の位置を1画素ずつ右にシフトしながら、畳み込み演算後のマップ82の各画素値を算出する。この場合、畳み込み演算後のマップ82のサイズは、畳み込み演算前のマップ64のサイズと等しい。
いずれの場合でもマップ64が縮小されるわけではないので、マップのサイズ(画素数)が変化するか否かに関わらず、畳み込み演算の前後でマップの解像度は等しいと考えることができる。
なお、フィルタ80のサイズに特に制限はないが、以下の具体例では、フィルタ80の水平方向画素数および垂直方向画素数を互いに等しい奇数とし、かつ、すべての非線形化処理部121h,121vで共通のサイズとする。各フィルタ80の係数は学習処理によって生成されるものであり、非線形化処理部121h,121vごとに異なり得る。また、図6(b)のマップサイズが不変である畳み込み演算が行われるものとする。
図7は、水平方向マップ生成部12hにおけるプーリング部122hのプーリング処理を説明する図である。このプーリング部122hは、水平方向の解像度を変えることなく、言い換えると、水平方向の画素数を保ったまま、垂直方向にのみマップをプーリング(縮小)する。以下、垂直方向の画素数を1/2にプーリングする例を具体的に説明する。
まず、プーリング部122hは非線形化処理部121hからの中間マップ71を水平方向1画素×垂直方向2画素のグリッド84に分割する(図7(a))。グリッド84の総数は中間マップ71の1/2となる。次いで、プーリング部122hは各グリッド84内で最大値を有する画素を選択する(図7(b)の黒塗り画素が選択された画素を示す)。そして、プーリング部122hは、各グリッド84内において、選択された画素で他の画素を埋めてプーリング処理後のマップ85を生成する(図7(c))。これにより、非線形化処理部121hが生成した中間マップ71は垂直方向にのみプーリングされる。
なお、図7(b)において、プーリング部122hは、各グリッド84内での最大値を選択するのではなく、グリッド84内画素の平均値を用いてもよい。また、プーリング部122hは垂直方向の画素数を(1/2)n(nは1以上の整数)にプーリングするのが望ましいが、1/3や1/5などにプーリングしてもよい。
一方、垂直方向マップ生成部12vにおけるプーリング部122vは、垂直方向の解像度を変えることなく、言い換えると、垂直方向の画素数を保ったまま、水平方向にのみマップをプーリングする。その他は水平方向マップ生成部12hのプーリング部122hと同様である。
このように、1つのプーリング部122h,122vを経るごとにマップの垂直方向画素数および水平方向画素数はそれぞれ1/2になる。例えば、8段ずつのプーリング部122h,122vが設けられ、入力画像の画素数が512×256である場合、最終的には1つの行ベクトル51および2つの列ベクトル52が出力される。
続いて、学習処理について説明する。
学習処理を行うためには、あるサンプル画像に対する理想的な行ベクトル51および列ベクトル52を正解データとして予め用意する必要がある。ニューラルネットワーク処理部1によって正解データを生成する手法を説明する。
図8は、サンプル画像から正解データを生成するための入力画像を説明する図である。同図(a)はサンプル画像の例であり、人手によって検出対象物の上下左右端の位置を特定し、同図(b)に示す入力画像を生成する。入力画像は、サンプル画像と同じ画素数を有し、検出対象物の上下左右端における画素の値のみ1で、他の画素の値は0とする。
図8(b)に示す入力画像がニューラルネットワーク処理部1に入力される。学習処理において、マップ数は1とする。そして、学習用ニューラルネットワークパラメータのうち、バイアスはすべて0とする。また、フィルタ係数は、フィルタの中央の値のみ1とし、他の値は0とする。なお、学習処理時と検出処理時において、フィルタのサイズは共通にしておく。
図9は、正解データ生成時のニューラルネットワーク処理部1の処理を模式的に示す図である。図示のように、非線形化処理部11,121h,121v,プーリング部122h,122vの処理を経て、行ベクトル51および列ベクトル52が出力される。これら行ベクトル51および列ベクトル52が正解データであり、サンプル画像と正解データとの組が得られる。
検出精度を高めるためには、できるだけ多種多様のサンプル画像を用いる。例えば、検出対象物が一部だけ含まれるサンプル画像を用いるのが望ましい。これにより、検出対象物が一部だけしか入力画像に写っていない場合であっても、検出対象物を精度よく検出できる。また、検出対象物を囲う矩形の縦横比が様々なサンプル画像を用いるのが望ましい。これにより、検出対象物が撮影された方向によって縦横比が異なる場合(例えば検出対象物が車両である場合)であっても、検出対象物を精度よく検出できる。
その他、画素数が多いサンプル画像や少ないサンプル画像、検出対象物が中央にあるサンプル画像や端にあるサンプル画像、対象検出物が大きいサンプル画像や小さいサンプル画像、検出対象物が正面を向いているサンプル画像や斜めを向いているサンプル画像などを用いるのが望ましい。
学習部2には、上記の処理によって得られた正解データ(つまり行ベクトル51および列ベクトル52)ti m(iはサンプル画像のインデックスであり、mは行ベクトルであるか列ベクトルであるかを示すインデックス)、および、ニューラルネットワークパラメータをWとしてサンプル画像xiをニューラルネットワーク処理部1が処理したときの出力(つまり行ベクトル51および列ベクトル52)fm(xi;W)が入力される。
そして、学習部2は下記(1)式のように目的関数E(W)を定義する。
ここで、nはサンプル画像の数である。目的関数E(W)はニューラルネットワークパラメータW(つまり、フィルタ係数およびバイアス)の関数であり、出力fm(xi;W)と正解データti mとが一致する場合のみ0となり、一致しない場合は0より大きくなる。
そこで、学習部2は、目的関数E(W)が可能な限り小さくなるようニューラルネットワークパラメータWを生成する。目的関数E(W)を最小化するには、例えば公知の誤差逆伝搬法を適用することができ、具体的には目的関数E(W)が収束するまで、下記(2)式に示す更新則を最終段の水平方向マップ生成部12h側および垂直方向マップ生成部12v側から順に適用すればよい。
このようにして生成されたフィルタ係数およびバイアスが、検出処理用ニューラルネットワークパラメータとして、検出処理に用いられる。
続いて、検出処理について説明する。
検出処理時は、ニューラルネットワーク処理部1の各非線形化処理部11,121h,121vには、検出処理用ニューラルネットワークパラメータが設定されている。また、車載カメラからの画像が入力画像としてニューラルネットワーク処理部1に入力される。そして、図1に示すように、ニューラルネットワーク処理部1は行ベクトル51および列ベクトル52を生成する。
検出処理用ニューラルネットワークパラメータが適切であれば、行ベクトル51および列ベクトル52において、検出対象物の上下左右端に対応する列および行の値が1(あるいは1に近い値)となり、他の値が0(あるいは0に近い値)となる。よって、特定部3は、行ベクトル51および列ベクトル52に基づいて、入力画像における検出対象物の上下左右端の位置を特定できる。なお、特定部3ついては、第3の実施形態で詳述する。
このように、第1の実施形態では、行ベクトル51を生成する水平方向処理部120hと、列ベクトル52を生成する垂直方向処理部120vとを別々に設ける。そして、水平方向処理部120hにおけるプーリング部122hは、マップを水平方向にはプーリングせず垂直方向にのみプーリングする。垂直方向処理部120vにおけるプーリング部122vは、マップを垂直方向にはプーリングせず水平方向にのみプーリングする。
そのため、入力画像の水平方向の解像度を保ったまま検出対象物の水平方向の位置を示す行ベクトル51を生成できるとともに、入力画像の垂直方向の解像度を保ったまま検出対象物の垂直方向の位置を示す列ベクトル52を生成できる。したがって、高精度に検出対象物の位置を検出できる。
また、本実施形態によれば、検出対象物の大きさや縦横比に何らの制限もないため、ピラミッド画像の生成やスライディングウィンドウの適用が不要であり、ニューラルネットワーク処理部1の処理負荷を軽減できる。
(第2の実施形態)
次に説明する第2の実施形態では、垂直方向処理部120vで生成されるマップも使用して水平方向処理部120hが行ベクトル51を生成するとともに、水平方向処理部120hで生成されるマップも使用して垂直方向処理部120vが列ベクトル52を生成するものである。
図10は、第2の実施形態に係るニューラルネットワーク処理部1’の概略構成を示すブロック図である。図3との相違点として、少なくとも2つの水平方向マップ生成部12h,12h’および垂直方向マップ生成部12v,12v’が設けられる。初段の水平方向マップ生成部12hおよび垂直方向マップ生成部12vは第1の実施形態で説明したものと同様である。これに対し、2段目以降の水平方向マップ生成部12h’は、前段の水平方向マップ生成部12h(12h’)から出力されるマップのみならず、前段の垂直方向マップ生成部12v(12v’)から出力されるマップも用いて、新たなマップを出力する。また、2段目以降の垂直方向マップ生成部12v’は、前段の垂直方向マップ生成部12v(12v’)から出力されるマップのみならず、前段の水平方向マップ生成部12h(12h’)から出力されるマップも用いて、新たなマップを出力する。
図11は、水平方向マップ生成部12h’および垂直方向マップ生成部12v’の概略構成を示すブロック図である。図示のように、2段目の水平方向マップ生成部12h’は非線形化処理部121h’を有し、初段の水平方向マップ生成部12hからの出力マップおよび初段の垂直方向マップ生成部12vからの出力マップに対して非線形化処理を行って中間マップを生成する。また、垂直方向マップ生成部12v’は同様の非線形化処理部121v’を有する。なお、プーリング部122h,122vは図3と同様である。
図12は、水平方向マップ生成部12h’および垂直方向マップ生成部12v’の処理動作の概略を説明する図である。同図において、水平方向マップ生成部12h’に入力されるのは、初段の水平方向マップ生成部12hから出力される2つのマップ64,65であり、水平方向マップ生成部12h’が出力するのは2つのマップ91,92とする。また、垂直方向マップ生成部12v’に入力されるのは、初段の垂直方向マップ生成部12vから出力される2つのマップ66,67であり、垂直方向マップ生成部12v’が出力するのは2つのマップ93,94とする。
図示のように、非線形化処理部121h’はマップ64〜67から中間マップ74を生成する。中間マップ74の解像度はマップ64,65の解像度と等しい。そして、プーリング部122hは中間マップ74を垂直方向にのみプーリングしてマップ91を生成する。すなわち、マップ91の水平方向の解像度は、マップ64の水平方向の解像度と等しい。同様に、非線形化処理部121h’はマップ64〜67から中間マップ75を生成する。そして、プーリング部122hは中間マップ75からマップ92を生成する。
一方、非線形化処理部121v’はマップ64〜67から中間マップ76を生成する。中間マップ76の解像度はマップ66,67の解像度と等しい。そして、プーリング部122vは中間マップ76を水平方向にのみプーリングしてマップ93を生成する。すなわち、マップ93の垂直方向の解像度は、マップ66の垂直方向の解像度と等しい。同様に、非線形化処理部121v’はマップ64〜67から中間マップ77を生成する。そして、プーリング部122vは中間マップ77からマップ94を生成する。
マップ91〜94の生成法は共通しているため、以下、代表してマップ93の生成について詳しく説明する。
図13は、マップ93の生成法を説明する図である。ここで、入力画像の画素数はC×Rであるとする。初段の水平方向マップ生成部12hの処理により、垂直方向マップ生成部12v’に入力されるマップ64,65の画素数はC×R/2になっている。また、初段の垂直方向マップ生成部12vの処理により、垂直方向マップ生成部12v’に入力されるマップ66,66の画素数はC/2×Rになっている。
非線形化処理部121v’ はマップ66,67を畳み込み演算してそれぞれ中間マップ66’,67’を生成する。中間マップ66’,67’の画素数は、マップ66,67の画素数と同じく、C/2×Rである。ここでの畳み込み演算は、例えば図5(b)に示す処理である。
一方、非線形化処理部121v’はマップ64,65を畳み込み演算してそれぞれ中間マップ64’,65’を生成する。ここで、非線形化処理部121v’は、次のようにしてマップ64,65の水平方向画素数を1/2倍にするとともに垂直方向画素数を2倍にして、中間マップ64’,65’をそれぞれ生成する。
図14は、マップ64’の生成法を説明する図である。同図では、フィルタの画素数を3×3としている。同図(a)に示すように、まず非線形化処理部121v’はフィルタの中心がマップ64の画素(1,1)と重なるようフィルタを設定する。そして、非線形化処理部121v’は、マップ64のフィルタが設定された部分の画素値とフィルタ係数との内積を、中間マップ64’の左上の画素(1,1)およびその下の画素(1,2)の値とする。つまり、1つの内積を、中間マップ64’の垂直方向に並ぶ2つの画素に設定する。
続いて、図14(b)に示すように、非線形化処理部121v’はフィルタを2画素右にシフトし、フィルタの中心がマップ64の画素(3,1)に重なるようフィルタを設定する。そして、非線形化処理部121v’は、マップ64のフィルタが設定された部分の画素値とフィルタ係数との内積を、中間マップ64’の画素(2,1)およびその下の画素(2,2)の値とする。
このようにフィルタを2画素ずつ右にずらしながらマップ64の1行を処理することで、中間マップ64’の2列の値が定まる。
マップ64の1行目に対する処理終了後、図14(c)に示すように、非線形化処理部121v’はフィルタを1画素下にシフトし、フィルタの中心がマップ64の画素(1,2)と重なるようフィルタを設定し、内積を算出して中間マップ64’の画素(1,3)およびその下の画素(1,4)の値とする。
このようにフィルタをシフトしながら処理を行うことで、画素数がC×R/2であるマップ64から、画素数がC/2×Rである中間マップ64’が生成される。
より一般的には、マップ64の水平方向画素数および垂直方向画素数をそれぞれ1/p倍、q倍(p,qは任意の整数)して中間マップ64’を生成するためには、非線形化処理部121v’は、マップ64のフィルタが設定された部分の画素値と、フィルタ係数との内積を、中間マップ64’における対応画素およびその下の(q−1)個の画素の値に設定する。この処理を、マップ64の水平方向においてはp画素ずつフィルタをシフトしながら、マップ64の垂直方向においては1画素ずつフィルタをシフトしながら行うことで、中間マップ64’を生成できる。
以上のようにして、図13における中間マップ64’,65’が生成される。そして、非線形化処理部121v’は、中間マップ64’〜67’の各画素値を足し合わせて、画素数がC/2×Rである中間マップ76を生成する(図13の2点鎖線)。なお、図示していないが、足し合わせた後にバイアスが加算される。そして、プーリング部122vが中間マップ76に対してプーリング処理を行って、画素数がC/4×Rのマップ93が生成される。同様にして、非線形化処理部121v’は図12のマップ94を生成できる。
また、以上の説明の水平方向と垂直方向を入れ替えることで、非線形化処理部121h’はマップ91,92を生成できる。
すなわち、マップ66の水平方向画素数および垂直方向画素数をそれぞれp倍、1/q倍(p,qは任意の整数)して中間マップ(不図示。図13および図14の中間マップ64’に相当)を生成するためには、非線形化処理部121h’は、マップ66のフィルタが設定された部分の画素値と、フィルタ係数との内積を、中間マップにおける対応画素およびその右の(p−1)個の画素の値に設定する。この処理を、マップ66の水平方向においては1画素ずつフィルタをシフトしながら、マップ66の垂直方向においてはq画素ずつフィルタをシフトしながら行うことで、中間マップを生成できる。
このように、水平方向処理部120hが垂直方向処理部120vで生成されるマップも使用し、垂直方向処理部120vが水平方向処理部120hで生成されるマップも使用することで、検出対象物の検出精度が向上することを説明する。
図15は、第2の実施形態に係るニューラルネットワーク処理部1’の処理動作を模式的に示す図である。簡略化のために、図13において、初段の水平方向マップ生成部12hから出力される1つのマップ64と、初段の垂直方向マップ生成部12vから出力される1つのマップ66から、中間マップ76を生成することを示している。そして、検出対象物が人であるとしている。
入力画像に人が写っていた場合、マップ64には垂直方向に潰された人の特徴が配置され、マップ66には水平方向に潰された人の特徴が配置される。本実施形態では、これら2つのマップ64,66から中間マップ76が生成される。中間マップ76の画素76aは、マップ64の矩形領域64aにおける内積と、マップ66の矩形領域66aにおける内積と、から生成される。画素76aが矩形領域66aのみを用いて生成される場合、マップ66における人の左足の先あたりの画像のみから、画素76aが生成されることになる。
しかしながら、人の体のごく一部である足の先のみの画像から人の位置を精度よく検出するのは困難な場合もある。足の先と似た領域は画像内に多々存在し得るためである。
これに対し本実施形態では、画素76aは、矩形領域66aのみならず、矩形領域64aも用いて生成される。そのため、足の先よりも縦に広い範囲(具体的には、足の付け根から腰、腹あたり)の画像から、画素76aが生成される。その結果、人のより広い領域の情報を使って人を検出することとなり、検出の精度が向上する。
このように、第2の実施形態では、垂直方向処理部120vで生成されるマップも使用して水平方向処理部120hが行ベクトル51を生成するとともに、水平方向処理部120hで生成されるマップも使用して垂直方向処理部120vが列ベクトル52を生成する。そのため、より高精度に検出対象物の位置を検出できる。
(第3の実施形態)
第3の実施形態では、特定部3について詳しく説明する。なお、本実施形態では、検出対象物が1種類であると仮定する。
図16は、特定部3による、検出対象物の左右端位置の特定を説明する図である。入力画像を処理した結果、2つの行ベクトル51a,51bが出力される例を示している。
行ベクトル51aには、水平方向処理部120h内のプーリング部122hのプーリング処理により、入力画像の上半分の領域51Aの情報が含まれている。同様に、行ベクトル51bには、入力画像の下半分の領域51Bの情報が含まれている。つまり、行ベクトル51aおよび行ベクトル51bは、それぞれ入力画像の上半分の領域51Aおよび下半分の領域51Bに対応している。
よって、行ベクトル51aに1値(あるいは1値に近い値、以下同様)が含まれる場合(図16の例ではxla,xra列)、入力画像の上半分の領域51Aに検出対象物の左端候補および/または右端候補が含まれることを意味する。一方、行ベクトル51aに1値が含まれない場合、入力画像の上半分の領域51Aには左右端候補が含まれないことを意味する。
同様に、行ベクトル51bに1値が含まれる場合(図16の例ではxlb,xrb列)、入力画像の下半分の領域51Bに検出対象物の左端候補および/または右端候補が含まれることを意味する。行ベクトル51bに1値が含まれない場合、入力画像の下半分の領域51Bには左右端候補が含まれないことを意味する。
図17は、特定部3による、検出対象物の上下端の特定を説明する図である。入力画像を処理した結果、3つの列ベクトル52a〜52cが出力される例を示している。
列ベクトル52aには、垂直方向処理部120v内のプーリング部122vのプーリング処理により、入力画像を垂直方向に3等分したうちの左の領域52Aの情報が含まれている。同様に、列ベクトル52b,52cには、入力画像を垂直方向に3等分したうちの中央の領域52Bおよび右の領域52Cの情報がそれぞれ含まれている。つまり、列ベクトル52a〜52cは、それぞれ入力画像を垂直方向に3等分したうちの左の領域52A、中央の領域52Bおよび右の領域52Cに対応している。
よって、列ベクトル52aに1値が含まれる場合、入力画像の左の領域52Aに検出対象物の上端候補および/または下端候補が含まれることを意味する。一方、列ベクトル52aに1値が含まれない場合、入力画像の左の領域52Aには上下端候補が含まれないことを意味する。
同様に、列ベクトル52bに1値が含まれる場合(図17の例ではytb,ybb列)、入力画像の中央の領域52Bに検出対象物の上端候補および/または下端候補が含まれることを意味する。列ベクトル52bに1値が含まれない場合、入力画像の中央の領域52Bには上下端候補が含まれないことを意味する。
また、列ベクトル52cに1値が含まれる場合(図17の例ではytc,ybc列)、入力画像の右の領域52Cに検出対象物の上端候補および/または下端候補が含まれることを意味する。列ベクトル52cに1値が含まれない場合、入力画像の右の領域52Cには上下端候補が含まれないことを意味する。
図18は、特定部3の処理動作の第1例を示す図である。入力画像を処理した結果、2つの行ベクトル51a,51bと、3つの列ベクトル52a〜52cが出力される例を示している。
図18では、行ベクトル51a,52bの共通する2つの列xl,xrの値が1でる。これらの列xl,xrに対応する画素位置が検出対象物の左端右候補である。また、列ベクトル52a〜52cの共通する2つの行yt,ybの値が1である。これらの行yt,ybに対応する画素位置が検出対象物の上下端候補である。
図18は単純な例であり、特定部3は、座標(xl,yt),(xr,yt),(xl,yb),(xr,yb)で囲まれる矩形領域に検出対象物があることを特定できる。
実際には、行ベクトル51および列ベクトル52にはノイズが含まれ得る。そのため、行ベクトル51および列ベクトル52における各値は0と1の間の値になることもある。値が1に近い列または行ほど検出対象物の端に対応する可能性が高いが、検出対象物の端に近い列または行の近傍の値も1に近くなることもある。そこで、特定部3は次のようにしてノイズを除去してもよい。
図19は、特定部3によるノイズ除去を説明する図である。同図は、2つの行ベクトル51a,52bのノイズを除去する例を示している。また、図20は、ノイズ除去の手順を示すフローチャートである。
まず、特定部3は1つの行ベクトル51aの各列のうちの最大値を選択する(図20のステップS1)。図19の例では、列x1の値が最大値であったとする。そして、特定部3は最大値と所定の閾値とを比較する(図20のステップS2)。
最大値が閾値より小さい場合(ステップS2のNO)、特定部3は、行ベクトル51aには検出対象物の左端および右端がないと判断し、パラメータflagをfalseに設定する。そして、特定部3は次の行ベクトル51bの処理に進む(ステップS5)。
最大値が閾値以上であれば(ステップS2のYES)、特定部3は最大値をとる列(図19の例では列x1)を検出対象物の左右端候補とし(図20のステップS3)、パラメータflagをtrueに設定する。そして、特定部3はその列の近傍の所定領域(図19の例では列x1の左右2列ずつ)にマスクを設定する(図20のステップS4)。次いで、特定部3は、行ベクトル51aのマスクが設定されていない列のうちの最大値を選択する(ステップS5)。図19の例では、列x2の値が最大値であったとする。
以降、選択された最大値が閾値より小さくなるまで(パラメータflagがfalseに設定されるまで)、ステップS2〜S5を繰り返す。
そして、行ベクトル51aの処理が完了すると、同様の処理を行ベクトル51bに対しても行う(ステップS6)。列ベクトル52対するノイズ除去も同様である。
2つの左右端候補が検出された場合、特定部3は、左側を左端候補とし、右側を右端候補とすることができる。
マスクを設定することで、検出対象物の左端候補と右端候補は、マスクのサイズに応じた画素数分以上離れた位置に検出される。同様に、検出対象物の上端候補と下端候補は、マスクのサイズに応じた画素数分以上離れた位置に検出される。以下、このようにして検出対象物の左右端候補が行ベクトル51から検出され、上下端候補が列ベクトル52から検出されたものとする。
なお、この処理によれば、左右端候補がみつからない場合もあるし、1つだけ見つかる場合もあるし、3つ以上見つかる場合もある。アプリケーションによって、1つの検出対象物が入力画像内に収まることが分かっている場合などには、ステップS2の閾値処理を行わず、最大値が選択された順に2つの列を左右端候補としてもよい。上下端候補についても同様である。
図21は、特定部3の処理動作の第2例を示す図である。同図では、行ベクトル51aに左右端候補xla,xraが検出され,行ベクトル51bに左右端候補xlb,xrbが検出されている。また、列ベクトル52bに上下端候補ytb,ybbが検出され、列ベクトル52c上下端候補ytc,ybcが検出されている。この場合、各候補に対応する位置に合計8本の線を引くと、十字(クロスポイント)が4点、すなわち、(xla,ytb),(xra,ytc),(xlb,ybb),(xrb,ybc)に形成される。この4点が検出対象物の左上、右上、左下および右下の候補点である。
ただし、これら4点を結んで得られる矩形の各辺は水平方向および垂直方向と平行にはならない。そこで、特定部3は、例えば下式のように各点の平均値を用いて得られる4点(xl,yt),(xr,yt),(xl,yb),(xr,yb)を結んだ矩形を検出対象物の位置と特定することができる。
xl=(xla+xlb)/2
xr=(xra+xrb)/2
yt=(ytb+ytc)/2
yb=(ybb+ybc)/2
図22は、特定部3の処理動作の第3例を示す図である。同図では、行ベクトル51aに左右端候補xla,xraが検出され,行ベクトル51bに左右端候補xlb,xrbが検出されている。また、列ベクトル52bに上下端候補ytb,ybbが検出される。この場合も、十字(クロスポイント)が4点、すなわち、(xla,ytb),(xra,ytb),(xlb,ybb),(xrb,ybb)に形成される。この4点が検出対象物の左上、右上、左下および右下の候補点である。
そして、特定部3は、例えば平均値を用いて得られる4点を結んだ矩形を検出対象物の位置と特定することができる。
図21および図22に示すように、十字が4点に形成される場合、特定部3は検出対象物が入力画像に含まれる、と判断できる。
図23は、特定部3の処理動作の第4例を示す図である。同図では、行ベクトル51aも左右端候補xaが検出され,行ベクトル51bに左右端候補xbが検出されている。また、列ベクトル52aに上下端候補yt,ybが検出されている。よって、十字(クロスポイント)は2点、すなわち、(xa,yt),(xb,yb)に形成される。
この場合、検出対象物の上端、下端および右端が入力画像に含まれており、左端のみが入力画像の外側にある、との解釈が成立し得る。よって、特定部3は、検出対象物(図23の例では車両)の一部のみが入力画像の領域52Aに含まれているとし、例えば検出対象物の右上の座標((xa+xb)/2,yt)および右下の座標((xa+xb)/2,yb)を特定する。
図24は、特定部3の処理動作の第5例を示す図である。同図では、列ベクトル52cに上下端候補yt,ybが検出されている。一方、行ベクトル51a,51bに左右端候補は検出されていない。よって、十字は形成されない。この場合、特定部3は、上下端候補yt,ybが誤検出であると解釈して、検出対象物が入力画像に含まれない、と判断できる。
図25は、特定部3の処理動作の第6例を示す図である。同図では、行ベクトル51aに左右端候補xla,xraが検出され、行ベクトル51bに左右端候補xlb,xrbが検出されている。一方、列ベクトル52a〜52cに上下端候補は検出されていない。よって、十字は形成されない。
しかしながら、この場合、検出対象物の左右端が入力画像に含まれており、上下端が入力画像の外側にある、との解釈が成立し得る。よって、特定部3は、検出対象物(図25の例では人)の一部が入力画像に含まれるとし、例えば検出対象物の左端の座標(xla+xlb)/2および右端の座標(xra+xrb)/2を特定できる。
なお、図23〜図25では、形成される十字は4点未満であり、この場合は種々の解釈が成立し得る。例えば、図24において、特定部3は、本来行ベクトル51a,51bに左右端候補が検出されるべきところが検出エラーであると解釈し、検出対象物の上端の座標ytおよび下端の座標ybのみを特定することも可能である。また、図25において、特定部3は、左右端候補が誤検出であると解釈して、検出対象物が入力画像に含まれない、と判断することも可能である。
そのため、本検出装置100のアプリケーションや検出対象物の形状(例えば、人であれば縦長であることが想定される)などに応じて、形成される十字が4点未満の場合の解釈を予め定めておけばよい。
ところで、特定部3は、検出された検出対象物の上下左端位置(の少なくとも一部)に基づいて、車載カメラと検出対象物との位置関係をさらに算出してもよい。
図26は、車載カメラ101と検出対象物(ここでは先行車両)102との進行方向の距離Zを算出する手法を説明する図である。同図において、車両110は、車両本体111と、これに取り付けられた車載カメラ101と、検出装置100とを備えている。車載カメラ101は既知の高さh(例えば130cm)に設置されているとする。また、車載カメラ101の焦点距離f画素の位置に仮想の画像平面を設定する。この画像平面において、その中心を原点、水平方向(車両110の進行方向)をx軸、垂直方向(鉛直方向下方向)をy軸とする。
そして、検出装置100の特定部3によって特定された、検出対象物102の下端位置の座標がybであったとする。このとき、図示のように、三角形の相似関係から、特定部3は下式に基づいて車載カメラ101と検出対象物102との進行方向の距離Zを算出できる。
Z=fh/yb
図27は、車載カメラ101と検出対象物102との横方向の距離XL,XRを算出する手法を説明する図である。図26と同様に座標軸を設定し、特定部3によって特定された検出対象物102の左端位置および右端位置の座標がそれぞれxl,xrであったとする。
このとき、図示のように、三角形の相似関係から、特定部3は下式に基づいて車載カメラ101と検出対象物102との横方向の距離XL,XRを算出できる。
L=Zxl/f
R=Zxr/f
このように、第3の実施形態では、特定部3が行ベクトル51および列ベクトル52に応じて適切な解釈を行うため、検出対象物の一部のみが入力画像に含まれるような場合であっても、柔軟に検出対象物の位置を特定できる。
(第4の実施形態)
上述した第1〜3の実施形態は、検出対象物が1種類(例えば人)であることを念頭に置いていた。これに対し、以下に説明する第4の実施形態では、複数種類の検出対象物(例えば人と車両)の位置を特定するものである。
図28は、第4の実施形態に係るニューラルネットワーク処理部1’’の概略構成を示すブロック図である。検出対象物がn種類(検出対象物1〜nという)である場合、第1の実施形態(図3)との相違点として、水平方向処理部120hおよび垂直方向処理部120vがそれぞれ出力する行ベクトル51および列ベクトル52のマップ数はnである。そして、i(i=1〜n)番目のマップにおける行ベクトル51および列ベクトル52が、検出対象物iの検出結果を示す。
なお、入力画像の画素数およびプーリング部122hの段数に応じて、1つのマップにつき複数の行ベクトル51や列ベクトル52が出力され得る。
学習処理においては、検出対象物1〜nのそれぞれが写った複数のサンプル画像を用いる。そして、正解データを生成するために、1つのサンプル画像に対して、n枚の入力画像1〜nをニューラルネットワーク処理部1’’に入力する。サンプル画像に検出対象物iが含まれる場合、入力画像k(k=1〜nかつk≠i)の全画素は0値であり、入力画像iは検出対象物の上下左右端における画素のみ1値で他の画素は0値とする。その他は第1の実施形態と同様である。
検出処理においては、マップごとに検出対象物の位置特定を行う。すなわち、検出対象物iを検出する場合、特定部3は、i番目のマップにおける行ベクトル51および列ベクトル52に基づいて、検出対象物iの位置を特定する。
このように、第4の実施形態では、ニューラルネットワーク処理部1’’が出力する行ベクトル51および列ベクトル52のマップ数をnとし、各検出対象物を含むサンプル画像を用いて学習処理を行うことで、n種類の検出対象物を別個に検出できる。なお、本実施形態を第2,3の実施形態に適用することも可能である。
(第5の実施形態)
次に説明する第5の実施形態は、ニューラルネットワーク構造自体は第1の実施形態などと変わらないが、出力される行ベクトルおよび列ベクトルの形態が第1〜4の実施形態とは異なるものである。そして、入力画像における検出対象物を、必ずしも上下左右端の矩形でなく、任意の形状で特定するものである。
図29は、第5の実施形態に係るニューラルネットワーク処理部1の処理動作の概要を説明する図であり、図1(b)と対応している。入力画像において検出対象物が図1(b)と同じ矩形である場合、ニューラルネットワーク処理部1は、xl〜xr列のみの値が1であり他列の値が0である行ベクトル51’、および、yt行〜yb行のみの値が1であり他行の値が0である列ベクトル52’を出力する。すなわち、行ベクトル51’および列ベクトル52’において、検出対象物がある位置に対応する行および列の値が1であり、検出対象物がない位置に対応する列および行の値が0である。
このような行ベクトル51’および列ベクトル52’を出力するためには、学習処理を次のようにすればよい。
図30は、サンプル画像から正解データを生成するための入力画像を説明する図であり、図8と対応している。本実施形態では、図28(a)に示すサンプル画像に対して、人手によって同図(b)に示す入力画像を生成する。すなわち入力画像は、検出対象物がある画素の値を1とし、検出対象物がない画素の値を0である。
図31は、別のサンプル画像から正解データを生成するための入力画像を説明する図である。図31(a)に示すサンプル画像では複数の検出対象物が含まれている。この場合の入力画像(同図(b))は、少なくとも1つの検出対象物がある画素の値を1とし、他の画素の値を0とする。このような入力画像の場合、画素の値が1となる領域は矩形には限られない。
以上のような入力画像がニューラルネットワーク処理部1に入力される。学習用ニューラルネットワークパラメータは上述した通りである。このようにして学習処理を行って検出用ニューラルネットワークパラメータを生成することで、車載カメラからの入力画像に対して検出処理を行うと、図29に示すような行ベクトル51’および列ベクトル52’が出力される。
本実施形態においては、特定部3は、それほど複雑な解釈をすることなく、行ベクトル51’および列ベクトル52’における値が1である列および行の位置に、検出対象物があると判断できる。
アプリケーションによっては、検出対象物のそれぞれの位置を詳細に特定する必要はなく、大雑把な位置さえ把握できればよいこともある。例えば、検出結果が「左側に人の集団がある」程度であっても、十分に安全運転に寄与できる。よって、特に検出対象物が複数ある場合には、特に本実施形態のようにするのも有効である。
(第6の実施形態)
次に説明する第6の実施形態では、検出対象物が二輪車や人など縦長であることを想定している。そして、検出装置におけるニューラルネットワーク処理部は、入力画像において、まず検出対象物の水平方向位置を検出し、続いて垂直方向位置を検出するものである。
図31は、第6の実施形態に係るニューラルネットワーク処理部1’’’の概略構成を示すブロック図である。このニューラルネットワーク処理部1’’’は次のようにして検出処理を行う。なお、まずは検出対象物は2つ以上存在しないと仮定する。また、以下では、上述した実施形態との相違点を主に説明する。
非線形処理部11によって入力画像から生成されたマップは、垂直方向処理部120vには入力されず、水平方向処理部120hにのみ入力される。なお、水平方向処理部120hと垂直方向処理部120vは直接情報をやりとりしない。
水平方向処理部120hは1つの行ベクトル51を出力する。行ベクトル51は、図29に示すように、検出対象物がある位置に対応する列の値が1である。出力される行ベクトル51の数を1つにするためには、種々の手法が考えられる。例えば、垂直方向の画素数を1/2にプーリングするプーリング部122hをn段設け、水平方向処理部120hには、垂直方向画素数が2n画素である入力画像を入力してもよいし、垂直方向画素数が2n画素となるよう予めリサイズや切り出しを行った入力画像を入力してもよい。あるいは、入力画像の垂直方向画素数は任意とし、垂直方向画素数に応じてプーリング部122hでの縮小率を調整して、最終的に1つの行ベクトル51が出力されるようにしてもよい。
本実施形態のニューラルネットワーク処理部1’’’は、行ベクトルに基づいて、入力画像から検出対象物を含む領域を特定する領域特定部13を有する。以下では、領域特定部13は矩形領域を特定するものとする。
図32は、領域特定部13の処理動作を説明する図である。領域特定部13は次のような矩形領域を特定する。矩形領域の中心は、行ベクトル51において1値である列の中央と一致する。矩形領域の水平方向画素数(幅)は、予め定めた固定値(例えば64画素)としてもよいし、予め定めた選択肢(例えば、32画素、128画素および512画素の3つ)から入力画像の画素数に応じて選択してもよいし、1値の連続数が多いほど多くしてもよい。矩形領域の垂直方向画素数(高さ)は入力画像の垂直方向画素数と一致する。
図31に戻り、領域特定部13によって特定された矩形領域は、入力画像に基づくマップとして、垂直方向処理部120vに入力される。なお、領域特定部13と垂直方向処理部120vとの間に1以上の非線形処理部を設けてもよい。また、行ベクトル51に1値がない場合、すなわち、検出対象物が検出されない場合、領域特定部13は矩形領域を特定せず、したがって垂直方向処理部120vは処理を行わない。
矩形領域が入力された垂直方向処理部120vは、矩形領域を処理して、1つの列ベクトル52を出力する。列ベクトル52は、図29に示すように、検出対象物がある位置に対応する行の値が1である。
なお、矩形領域の水平方向画素数が固定値であれば、その数に合わせた段数のプーリング部122vを設ければよい。矩形領域の水平方向画素数が複数の選択肢から選択される場合、プーリング部122vの段数が互いに異なる垂直方向処理部120vを選択肢の数だけ設けておき、そのいずれかが矩形領域を処理するようにしてもよい。例えば、選択肢が32(=25)画素、128(=27)画素および512(=29)画素の場合、5段のプーリング部122vを有する垂直方向処理部120v、7段のプーリング部122vを有する垂直方向処理部120v、および、9段のプーリング部122vを有する垂直方向処理部120vの3つを設け、選択された水平方向画素数に応じた垂直方向処理部120vが処理を行うことが考えられる。また、水平方向画素数が任意である場合、やはりプーリング部122vでの縮小率を調整してもよい。
以上のようにして得られた1つずつの行ベクトル51および列ベクトル52に基づいて、特定部3(図2)は入力画像から検出対象物を検出する。
検出対象物が2つ以上ある場合、領域特定部13は各検出対象物について矩形領域を特定し、そのそれぞれについて垂直方向処理部120vが処理を行えばよい。
このように処理する利点を説明する。検出対象物が二輪車や歩行者である場合、検出対象物が垂直方向に並んで存在することはまずあり得ない。よって、まず行ベクトル51を生成して検出対象物の水平方向の位置を特定し、矩形領域を特定することで、その中央付近に検出対象物が位置する。そのため、垂直方向処理部120vでの処理において、検出対象物の特徴が充分に抽出され、検出精度の向上が期待できる。さらに、行ベクトル51に基づいて検出対象物が存在しないと判断される場合には、垂直方向処理部120vは処理を行う必要がなく、演算量を減らすことができる。
本実施形態のニューラルネットワーク処理部1’’’では、水平方向処理部120hにおけるニューラルネットワークパラメータと、垂直方向処理部120vにおけるニューラルネットワークパラメータを、別個に学習することができる。すなわち、第1の実施形態で説明した学習処理用ニューラルネットワークパラメータを用いた水平方向処理部120hの処理によって、行ベクトル51の正解データを生成する。そして、学習部2(図2)は行ベクトル51が正解データに近づくよう検出処理用のニューラルネットワークパラメータを生成すればよい。垂直方向処理部120vのニューラルネットワークパラメータも同様である。
このように、第6の実施形態では、まず垂直方向のプーリングを行って行ベクトル51を生成し、行ベクトル51に基づいて検出対象物を含む矩形領域を特定する。続いて、矩形領域に対して水平方向のプーリングを行って列ベクトル52を生成する。矩形領域には検出対象物の特徴が含まれているため、検出精度を向上できる。また、垂直方向のプーリングを行った時点で検出対象物が存在しないことが分かった場合には水平方向のプーリングを行わないため、演算量の削減を図れる。
なお、本実施形態では検出対象物が縦長であることを想定していたため、まず垂直方向のプーリングを行ったが、検出対象物が横長である場合には、まず水平方向のプーリングを行ってもよい。
また、上述した第1〜6の実施形態では、車載カメラからの画像から人や車両などを検出することを主に説明したが、他の用途にも適用可能である。
上述した実施形態は、本発明が属する技術分野における通常の知識を有する者が本発明を実施できることを目的として記載されたものである。上記実施形態の種々の変形例は、当業者であれば当然になしうることであり、本発明の技術的思想は他の実施形態にも適用しうることである。したがって、本発明は、記載された実施形態に限定されることはなく、特許請求の範囲によって定義される技術的思想に従った最も広い範囲とすべきである。
1,1’,1’’,1’’’ ニューラルネットワーク処理部
2 学習部
3 特定部
11 非線形化処理部
12h,12h’ 水平方向マップ生成部
12v,12v’ 垂直方向マップ生成部
121h,121h’,121v,121v’ 非線形化処理部
122h,122v プーリング部
120h 水平方向処理部
120v 垂直方向処理部
13 領域設定部
51,51a,51b,51’ 行ベクトル
52,52a〜52c,52’ 列ベクトル
100 検出装置
101 車載カメラ
102 検出対象物
110 車両
111 車両本体

Claims (19)

  1. 入力画像に基づくマップに対して、非線形化処理およびプーリング処理を行い、前記入力画像の水平方向の解像度を保ったまま、前記入力画像における検出対象物の水平方向位置を示す行ベクトルを出力する水平方向処理部と、
    前記入力画像に基づくマップに対して、非線形化処理およびプーリング処理を行い、前記入力画像の垂直方向の解像度を保ったまま、前記入力画像における前記検出対象物の垂直方向位置を示す列ベクトルを出力する垂直方向処理部と、を備えるニューラルネットワーク処理装置。
  2. 前記水平方向処理部は、前記入力画像に基づくマップに対して、垂直方向のみのプーリング処理を行う第1プーリング部を有し、
    前記垂直方向処理部は、前記入力画像に基づくマップに対して、水平方向にのみプーリング処理を行う第2プーリング部を有する、請求項1に記載のニューラルネットワーク処理装置。
  3. 前記水平方向処理部は、第1水平方向マップ生成部および第2水平方向マップ生成部を有し、
    前記垂直方向処理部は、第1垂直方向マップ生成部および第2垂直方向マップ生成部を有し、
    前記第1水平方向マップ生成部は、前記入力画像に基づくマップに対して、非線形化処理および垂直方向のみのプーリング処理を行って、第1出力マップを生成し、
    前記第1垂直方向マップ生成部は、前記入力画像に基づくマップに対して、非線形化処理および水平方向のみのプーリング処理を行って、第2出力マップを生成し、
    前記第2水平方向マップ生成部は、前記第1出力マップおよび前記第2出力マップに対して、非線形化処理およびプーリング処理を行って、前記第1出力マップと水平方向の解像度が等しい第3出力マップを生成し、
    前記第2垂直方向マップ生成部は、前記第1出力マップおよび前記第2出力マップに対して、非線形化処理およびプーリング処理を行って、前記第2出力マップと垂直方向の解像度が等しい第4出力マップを生成し、
    前記第3出力マップに基づいて前記行ベクトルが生成され、
    前記第4出力マップに基づいて前記列ベクトルが生成される、請求項1または2に記載のニューラルネットワーク処理装置。
  4. 前記第2水平方向マップ生成部は、
    前記第1出力マップおよび前記第2出力マップに対して畳み込み演算を行って前記第1出力マップと解像度が等しい第1中間マップおよび第2中間マップをそれぞれ生成し、前記第1中間マップおよび前記第2中間マップを加算して第3中間マップを生成する第1非線形化処理部と、
    前記第3中間マップに対して、垂直方向のみのプーリング処理を行って前記第3出力マップを生成する第3プーリング部と、
    を有し、
    前記第2垂直方向マップ生成部は、
    前記第1出力マップおよび前記第2出力マップに対して畳み込み演算を行って前記第2出力マップと解像度が等しい第4中間マップおよび第5中間マップをそれぞれ生成し、前記第4中間マップおよび前記第5中間マップを加算して第6中間マップを生成する第2非線形化処理部と、
    前記第6中間マップに対して、水平方向のみのプーリング処理を行って前記第4出力マップを生成する第4プーリング部と、
    を有する、請求項3に記載のニューラルネットワーク処理装置。
  5. 前記第2中間マップの水平方向および垂直方向の解像度は、前記第2出力マップの水平方向および垂直方向の解像度のそれぞれp1倍および1/q1倍(p1,q1は整数)であり、
    前記第1非線形化処理部は、前記第2出力マップのある一部の画素値と、第1フィルタのフィルタ係数との内積を、前記第2出力マップのある一部と対応する前記第2中間マップにおける画素およびその右の(p1−1)個の画素の値に設定する処理を、前記第2出力マップの垂直方向においてはq1画素ずつ前記第1フィルタをシフトしながら行うことで、前記第2中間マップを生成し、
    前記第4中間マップの水平方向および垂直方向の解像度は、前記第1出力マップの水平方向および垂直方向の解像度のそれぞれ1/p2倍およびq2倍(p2,q2は整数)であり、
    前記第2非線形化処理部は、前記第1出力マップのある一部の画素値と、第2フィルタのフィルタ係数との内積を、前記第1出力マップのある一部と対応する前記第4中間マップにおける画素およびその下の(q2−1)個の画素の値に設定する処理を、前記第1出力マップの水平方向においてはp2画素ずつ前記第2フィルタをシフトしながら行うことで、前記第4中間マップを生成する、請求項4に記載のニューラルネットワーク処理装置。
  6. サンプル画像における前記検出対象物の上下左右端に対応する画素が第1値で他の画素が第2値である画像を前記入力画像とし、
    前記水平方向処理部および前記垂直方向処理部は、中央が前記第1値であり他が前記第2値であるフィルタを用いた畳み込み演算を含む前記非線形化処理を行って、正解データとしての前記行ベクトルおよび前記列ベクトルを出力する、請求項1乃至5のいずれかに記載のニューラルネットワーク処理装置。
  7. サンプル画像における前記検出対象物がある画素が第1値で他の画素が第2値である画素を前記入力画像とし、
    前記水平方向処理部および前記垂直方向処理部は、中央が前記第1値であり他が前記第2値であるフィルタを用いた畳み込み演算を含む前記非線形化処理を行って、正解データとしての前記行ベクトルおよび前記列ベクトルを出力する、請求項1乃至5のいずれかに記載のニューラルネットワーク処理装置。
  8. 前記サンプル画像および前記正解データに基づいて、前記非線形化処理で用いられるニューラルネットワークパラメータが生成される、請求項6または7に記載のニューラルネットワーク処理装置。
  9. 前記水平方向処理部が、前記検出対象物の左端および右端に対応する列が前記第1値であり、前記左端より左側および前記右端より右側に対応する列が前記第2値である前記行ベクトルを出力し、かつ、
    前記垂直方向処理部が、前記検出対象物の上端および下端に対応する行が前記第1値であり、前記上端より上側および前記下端より下側に対応する行が前記第2値である前記列ベクトルを出力するよう、前記ニューラルネットワークパラメータが生成される、請求項8に記載のニューラルネットワーク処理装置。
  10. 前記サンプル画像は、第1検出対象物を含むサンプル画像と、前記第1検出対象物とは異なる第2検出対象物を含むサンプル画像と、を含む、請求項6乃至9のいずれかに記載のニューラルネットワーク処理装置。
  11. 前記サンプル画像は、前記検出対象物の一部のみを含むサンプル画像を含む、請求項6乃至10のいずれかに記載のニューラルネットワーク処理装置。
  12. 前記行ベクトルに基づいて、前記入力画像から前記検出対象物を含む領域を特定する領域特定部を備え、
    前記垂直方向処理部は、前記入力画像に基づくマップとして、前記特定された領域に対して、非線形処理およびプーリング処理を行う、請求項1または2に記載のニューラルネットワーク処理装置。
  13. 前記行ベクトルに基づいて、前記入力画像に前記検出対象物が含まれないと判断される場合、前記垂直方向処理部は非線形処理およびプーリング処理を行わない、請求項12に記載のニューラルネットワーク処理装置。
  14. 請求項1乃至13のいずれかに記載のニューラルネットワーク処理装置と、
    前記ニューラルネットワーク装置によって出力された前記行ベクトルおよび前記列ベクトルに基づいて、前記入力画像における前記検出対象物の位置を特定する特定部と、を備える検出装置。
  15. 前記特定部は、
    前記行ベクトルにおける列であって、その値が第1閾値条件を満たす列を前記検出対象物の左端候補または右端候補とし、
    前記列ベクトルにおける行であって、その値が第2閾値条件を満たす行を前記検出対象物の上端候補または下端候補とする、請求項14に記載の検出装置。
  16. 前記特定部が特定する前記前記検出対象物の左端候補と右端候補は、第1画素数以上離れており、
    前記特定部が特定する前記前記検出対象物の上端候補と下端候補は、第2画素数以上離れている、請求項14または15に記載の検出装置。
  17. 車両本体と、
    車両本体に取り付けられたカメラと、
    前記カメラからの画像を前記入力画像として処理する請求項14乃至16のいずれかに記載の検出装置と、を備える車両。
  18. 入力画像に基づくマップに対して、非線形化処理およびプーリング処理を行い、前記入力画像の水平方向の解像度を保ったまま、前記入力画像における検出対象物の水平方向位置を示す行ベクトルを出力するステップと、
    前記入力画像に基づくマップに対して、非線形化処理およびプーリング処理を行い、前記入力画像の垂直方向の解像度を保ったまま、前記入力画像における前記検出対象物の垂直方向位置を示す列ベクトルを出力するステップと、を備える、ニューラルネットワーク処理方法。
  19. 入力画像に基づくマップに対して、非線形化処理およびプーリング処理を行い、前記入力画像の水平方向の解像度を保ったまま、前記入力画像における検出対象物の水平方向位置を示す行ベクトルを出力するステップと、
    前記入力画像に基づくマップに対して、非線形化処理およびプーリング処理を行い、前記入力画像の垂直方向の解像度を保ったまま、前記入力画像における前記検出対象物の垂直方向位置を示す列ベクトルを出力するステップと、
    前記行ベクトルおよび前記列ベクトルに基づいて、前記入力画像における前記検出対象物の位置を特定するステップと、を備える検出方法。
JP2015032258A 2015-02-20 2015-02-20 ニューラルネットワーク処理装置、ニューラルネットワーク処理方法、検出装置、検出方法、および、車両 Expired - Fee Related JP6360802B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015032258A JP6360802B2 (ja) 2015-02-20 2015-02-20 ニューラルネットワーク処理装置、ニューラルネットワーク処理方法、検出装置、検出方法、および、車両

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015032258A JP6360802B2 (ja) 2015-02-20 2015-02-20 ニューラルネットワーク処理装置、ニューラルネットワーク処理方法、検出装置、検出方法、および、車両

Publications (2)

Publication Number Publication Date
JP2016153984A true JP2016153984A (ja) 2016-08-25
JP6360802B2 JP6360802B2 (ja) 2018-07-18

Family

ID=56760461

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015032258A Expired - Fee Related JP6360802B2 (ja) 2015-02-20 2015-02-20 ニューラルネットワーク処理装置、ニューラルネットワーク処理方法、検出装置、検出方法、および、車両

Country Status (1)

Country Link
JP (1) JP6360802B2 (ja)

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170091140A (ko) * 2015-04-02 2017-08-08 텐센트 테크놀로지(센젠) 컴퍼니 리미티드 컨볼루션 신경망 모델의 트레이닝 방법 및 장치
JP2018060296A (ja) * 2016-10-03 2018-04-12 グローリー株式会社 画像処理装置、画像処理システム及び画像処理方法
JP2018088151A (ja) * 2016-11-29 2018-06-07 株式会社Soken 境界線推定装置
JP2019008383A (ja) * 2017-06-21 2019-01-17 キヤノン株式会社 画像処理装置、撮像装置、画像処理方法、プログラム、および、記憶媒体
JP2019075035A (ja) * 2017-10-19 2019-05-16 株式会社日立製作所 ソフトウェアテスト装置および方法
JP2019101519A (ja) * 2017-11-29 2019-06-24 Kddi株式会社 画素に基づく画像セグメンテーション用のプログラム
US10387298B2 (en) 2017-04-04 2019-08-20 Hailo Technologies Ltd Artificial neural network incorporating emphasis and focus techniques
JP2019537139A (ja) * 2016-11-10 2019-12-19 グーグル エルエルシー ハードウェアにおけるカーネルストライドの実行
JP2020035380A (ja) * 2018-08-31 2020-03-05 株式会社小松製作所 画像処理システム、表示装置、画像処理方法、学習済みモデルの生成方法、および学習用データセット
JP2020061132A (ja) * 2018-09-12 2020-04-16 コグネックス・コーポレイション マシンビジョン用の画像データを処理するための方法及び装置
JP2021512378A (ja) * 2018-12-29 2021-05-13 ベイジン センスタイム テクノロジー デベロップメント カンパニー, リミテッド アンカー決定方法及び装置、電子機器並びに記憶媒体
JP2021530771A (ja) * 2018-07-25 2021-11-11 深▲せん▼市商▲湯▼科技有限公司Shenzhen Sensetime Technology Co., Ltd. レーザレーダスパース深度マップの処理方法、装置、機器および媒体
CN113777571A (zh) * 2021-08-04 2021-12-10 中山大学 一种基于深度学习的无人机集群动态方向图综合方法
US11221929B1 (en) 2020-09-29 2022-01-11 Hailo Technologies Ltd. Data stream fault detection mechanism in an artificial neural network processor
US11238334B2 (en) 2017-04-04 2022-02-01 Hailo Technologies Ltd. System and method of input alignment for efficient vector operations in an artificial neural network
US11237894B1 (en) 2020-09-29 2022-02-01 Hailo Technologies Ltd. Layer control unit instruction addressing safety mechanism in an artificial neural network processor
US11263077B1 (en) 2020-09-29 2022-03-01 Hailo Technologies Ltd. Neural network intermediate results safety mechanism in an artificial neural network processor
US11475593B2 (en) 2018-09-12 2022-10-18 Cognex Corporation Methods and apparatus for processing image data for machine vision
US11544545B2 (en) 2017-04-04 2023-01-03 Hailo Technologies Ltd. Structured activation based sparsity in an artificial neural network
US11551028B2 (en) 2017-04-04 2023-01-10 Hailo Technologies Ltd. Structured weight based sparsity in an artificial neural network
US11615297B2 (en) 2017-04-04 2023-03-28 Hailo Technologies Ltd. Structured weight based sparsity in an artificial neural network compiler
WO2023053674A1 (ja) * 2021-09-30 2023-04-06 富士フイルム株式会社 検出方法、撮像装置、及びプログラム
US11657630B2 (en) 2018-09-12 2023-05-23 Cognex Corporation Methods and apparatus for testing multiple fields for machine vision
US11811421B2 (en) 2020-09-29 2023-11-07 Hailo Technologies Ltd. Weights safety mechanism in an artificial neural network processor

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0451374A (ja) * 1990-06-19 1992-02-19 Canon Inc 画像処理装置
JPH05324837A (ja) * 1992-05-20 1993-12-10 Glory Ltd パターン認識装置
JP2002373333A (ja) * 2001-05-28 2002-12-26 Honda R & D Europe (Deutschland) Gmbh 階層ネットワークを用いたパターン認識方法
JP2007047965A (ja) * 2005-08-09 2007-02-22 Fujifilm Corp デジタル画像の対象物検出方法および装置並びにプログラム
JP2013058160A (ja) * 2011-09-09 2013-03-28 Mega Chips Corp 物体検出装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0451374A (ja) * 1990-06-19 1992-02-19 Canon Inc 画像処理装置
JPH05324837A (ja) * 1992-05-20 1993-12-10 Glory Ltd パターン認識装置
JP2002373333A (ja) * 2001-05-28 2002-12-26 Honda R & D Europe (Deutschland) Gmbh 階層ネットワークを用いたパターン認識方法
JP2007047965A (ja) * 2005-08-09 2007-02-22 Fujifilm Corp デジタル画像の対象物検出方法および装置並びにプログラム
JP2013058160A (ja) * 2011-09-09 2013-03-28 Mega Chips Corp 物体検出装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
鄭 明燮、外2名: ""多重構造ニューラルネットワークを用いた車載センサ情報統合に基づく車種認識"", 映像情報メディア学会誌, vol. 59, no. 4, JPN6018020043, 1 April 2005 (2005-04-01), JP, pages 621 - 628, ISSN: 0003807221 *

Cited By (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170091140A (ko) * 2015-04-02 2017-08-08 텐센트 테크놀로지(센젠) 컴퍼니 리미티드 컨볼루션 신경망 모델의 트레이닝 방법 및 장치
JP2018503152A (ja) * 2015-04-02 2018-02-01 ▲騰▼▲訊▼科技(深▲セン▼)有限公司 コンボリューションニューラルネットワークモデルの訓練方法及び装置
US9977997B2 (en) 2015-04-02 2018-05-22 Tencent Technology (Shenzhen) Company Limited Training method and apparatus for convolutional neural network model
KR101887558B1 (ko) 2015-04-02 2018-08-10 텐센트 테크놀로지(센젠) 컴퍼니 리미티드 컨볼루션 신경망 모델의 트레이닝 방법 및 장치
US10607120B2 (en) 2015-04-02 2020-03-31 Tencent Technology (Shenzhen) Company Limited Training method and apparatus for convolutional neural network model
JP2018060296A (ja) * 2016-10-03 2018-04-12 グローリー株式会社 画像処理装置、画像処理システム及び画像処理方法
JP2022037022A (ja) * 2016-11-10 2022-03-08 グーグル エルエルシー ハードウェアにおけるカーネルストライドの実行
US11816532B2 (en) 2016-11-10 2023-11-14 Google Llc Performing kernel striding in hardware
JP7394104B2 (ja) 2016-11-10 2023-12-07 グーグル エルエルシー ハードウェアにおけるカーネルストライドの実行
JP2019537139A (ja) * 2016-11-10 2019-12-19 グーグル エルエルシー ハードウェアにおけるカーネルストライドの実行
JP2018088151A (ja) * 2016-11-29 2018-06-07 株式会社Soken 境界線推定装置
US11544545B2 (en) 2017-04-04 2023-01-03 Hailo Technologies Ltd. Structured activation based sparsity in an artificial neural network
US11514291B2 (en) 2017-04-04 2022-11-29 Hailo Technologies Ltd. Neural network processing element incorporating compute and local memory elements
US11354563B2 (en) 2017-04-04 2022-06-07 Hallo Technologies Ltd. Configurable and programmable sliding window based memory access in a neural network processor
US11461614B2 (en) 2017-04-04 2022-10-04 Hailo Technologies Ltd. Data driven quantization optimization of weights and input data in an artificial neural network
US11675693B2 (en) 2017-04-04 2023-06-13 Hailo Technologies Ltd. Neural network processor incorporating inter-device connectivity
US11263512B2 (en) 2017-04-04 2022-03-01 Hailo Technologies Ltd. Neural network processor incorporating separate control and data fabric
US11615297B2 (en) 2017-04-04 2023-03-28 Hailo Technologies Ltd. Structured weight based sparsity in an artificial neural network compiler
US11216717B2 (en) 2017-04-04 2022-01-04 Hailo Technologies Ltd. Neural network processor incorporating multi-level hierarchical aggregated computing and memory elements
US11551028B2 (en) 2017-04-04 2023-01-10 Hailo Technologies Ltd. Structured weight based sparsity in an artificial neural network
US11238334B2 (en) 2017-04-04 2022-02-01 Hailo Technologies Ltd. System and method of input alignment for efficient vector operations in an artificial neural network
US11461615B2 (en) 2017-04-04 2022-10-04 Hailo Technologies Ltd. System and method of memory access of multi-dimensional data
US11238331B2 (en) 2017-04-04 2022-02-01 Hailo Technologies Ltd. System and method for augmenting an existing artificial neural network
US10387298B2 (en) 2017-04-04 2019-08-20 Hailo Technologies Ltd Artificial neural network incorporating emphasis and focus techniques
JP2019008383A (ja) * 2017-06-21 2019-01-17 キヤノン株式会社 画像処理装置、撮像装置、画像処理方法、プログラム、および、記憶媒体
US11354537B2 (en) 2017-06-21 2022-06-07 Canon Kabushiki Kaisha Image processing apparatus, imaging apparatus, image processing method, and storage medium
JP2019075035A (ja) * 2017-10-19 2019-05-16 株式会社日立製作所 ソフトウェアテスト装置および方法
JP2019101519A (ja) * 2017-11-29 2019-06-24 Kddi株式会社 画素に基づく画像セグメンテーション用のプログラム
JP7016434B2 (ja) 2018-07-25 2022-02-04 深▲セン▼市商▲湯▼科技有限公司 レーザレーダスパース深度マップの処理方法、装置、機器および媒体
JP2021530771A (ja) * 2018-07-25 2021-11-11 深▲せん▼市商▲湯▼科技有限公司Shenzhen Sensetime Technology Co., Ltd. レーザレーダスパース深度マップの処理方法、装置、機器および媒体
JP2020035380A (ja) * 2018-08-31 2020-03-05 株式会社小松製作所 画像処理システム、表示装置、画像処理方法、学習済みモデルの生成方法、および学習用データセット
WO2020044852A1 (ja) * 2018-08-31 2020-03-05 株式会社小松製作所 画像処理システム、表示装置、画像処理方法、学習済みモデルの生成方法、および学習用データセット
US11414837B2 (en) 2018-08-31 2022-08-16 Komatsu Ltd. Image processing system, display device, image processing method, method for generating trained model, and dataset for learning
JP7166108B2 (ja) 2018-08-31 2022-11-07 株式会社小松製作所 画像処理システム、表示装置、画像処理方法、学習済みモデルの生成方法、および学習用データセット
US11475593B2 (en) 2018-09-12 2022-10-18 Cognex Corporation Methods and apparatus for processing image data for machine vision
JP7182528B2 (ja) 2018-09-12 2022-12-02 コグネックス・コーポレイション マシンビジョン用の画像データを処理するための方法及び装置
US11657630B2 (en) 2018-09-12 2023-05-23 Cognex Corporation Methods and apparatus for testing multiple fields for machine vision
JP2020061132A (ja) * 2018-09-12 2020-04-16 コグネックス・コーポレイション マシンビジョン用の画像データを処理するための方法及び装置
US11301726B2 (en) 2018-12-29 2022-04-12 Beijing Sensetime Technology Development Co., Ltd. Anchor determination method and apparatus, electronic device, and storage medium
JP2021512378A (ja) * 2018-12-29 2021-05-13 ベイジン センスタイム テクノロジー デベロップメント カンパニー, リミテッド アンカー決定方法及び装置、電子機器並びに記憶媒体
US11263077B1 (en) 2020-09-29 2022-03-01 Hailo Technologies Ltd. Neural network intermediate results safety mechanism in an artificial neural network processor
US11237894B1 (en) 2020-09-29 2022-02-01 Hailo Technologies Ltd. Layer control unit instruction addressing safety mechanism in an artificial neural network processor
US11221929B1 (en) 2020-09-29 2022-01-11 Hailo Technologies Ltd. Data stream fault detection mechanism in an artificial neural network processor
US11811421B2 (en) 2020-09-29 2023-11-07 Hailo Technologies Ltd. Weights safety mechanism in an artificial neural network processor
CN113777571A (zh) * 2021-08-04 2021-12-10 中山大学 一种基于深度学习的无人机集群动态方向图综合方法
CN113777571B (zh) * 2021-08-04 2023-08-11 中山大学 一种基于深度学习的无人机集群动态方向图综合方法
WO2023053674A1 (ja) * 2021-09-30 2023-04-06 富士フイルム株式会社 検出方法、撮像装置、及びプログラム

Also Published As

Publication number Publication date
JP6360802B2 (ja) 2018-07-18

Similar Documents

Publication Publication Date Title
JP6360802B2 (ja) ニューラルネットワーク処理装置、ニューラルネットワーク処理方法、検出装置、検出方法、および、車両
CN109522966B (zh) 一种基于密集连接卷积神经网络的目标检测方法
CN110738207B (zh) 一种融合文字图像中文字区域边缘信息的文字检测方法
CN111104838B (zh) 基于障碍物的下端线检测roi的方法和装置
CN109447994A (zh) 结合完全残差与特征融合的遥感图像分割方法
CN110879958B (zh) 用于检测障碍物的方法和装置
CN107169421A (zh) 一种基于深度卷积神经网络的汽车驾驶场景目标检测方法
CN110348383B (zh) 一种基于卷积神经网络回归的道路中心线和双线提取方法
CN110929665A (zh) 一种自然场景曲线文本检测方法
EP4174792A1 (en) Method for scene understanding and semantic analysis of objects
KR101869266B1 (ko) 극한 심층학습 기반 차선 검출 시스템 및 그 방법
CN111401380A (zh) 一种基于深度特征增强和边缘优化的rgb-d图像语义分割方法
CN111460894A (zh) 一种基于卷积神经网络的车标智能检测方法
CN117037119A (zh) 基于改进YOLOv8的道路目标检测方法及系统
CN114612937A (zh) 基于单模态增强的红外与可见光融合行人检测方法
CN110598665B (zh) 一种基于车载移动深度学习平台的杆号识别方法
CN118134952B (zh) 一种基于特征交互的医学图像分割方法
CN113378812A (zh) 一种基于Mask R-CNN和CRNN的数字表盘识别方法
KR20100064140A (ko) 지능형 자동차를 위한 교통 표지판 검출 방법 및 상기 방법을 실행하는 시스템
CN115661607A (zh) 一种基于改进YOLOv5的小目标识别方法
CN111104840B (zh) 基于回归损失的学习及测试的方法及装置
CN107832732A (zh) 基于三叉树遍历的车道线检测方法
CN112926500B (zh) 一种结合头部和整体信息的行人检测方法
KR20110057595A (ko) 상호 정보 최대화 기반의 국부 이진 패턴 코드를 이용한 패턴 인식 방법, 장치 및 그 기록 매체
CN103955706B (zh) 一种基于直接双侧二维主成分分析的图像识别和图像重建方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170609

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180525

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180605

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180625

R150 Certificate of patent or registration of utility model

Ref document number: 6360802

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees