(58)【調査した分野】(Int.Cl.,DB名)
前記カメラの所定の視線軸と、前記検出対象物の検出対象面の法線方向と、が平行となるように前記検出対象物を前記カメラの撮像範囲内の所定範囲の複数の位置に配置して、前記カメラにより前記複数の位置のそれぞれで事前に前記検出対象物を撮像した画像を用いてあらかじめ1つの前記辞書を生成しておく辞書生成部、
をさらに備え、
前記処理画像生成部は、
前記辞書の生成後に前記カメラにより撮像された画像から前記所定の視線軸を法線方向とする画像を前記処理画像として生成する、
請求項1ないし7のいずれか1項に記載の画像処理装置。
前記車両の運転者に対して、前記車両のスピーカを介した音声出力およびブザー出力ならびに前記車両の運転者が視認可能な位置に設けられた表示装置に対する警告表示の少なくとも1つにより、前記最終検出部により検出された最終検出位置の情報を通知する警告部、
をさらに備えた請求項1ないし9のいずれか1項に記載の画像処理装置。
【発明を実施するための形態】
【0009】
本発明に係る画像処理装置および画像処理プログラムの実施の形態について、添付図面を参照して説明する。
【0010】
(第1の実施形態)
(全体構成)
図1は、本発明の第1実施形態に係る画像処理装置10の一構成例を示すブロック図である。
【0011】
画像処理装置10は、カメラ11、制御部12、記憶部13、灯火装置16、クラクション17、スピーカ18および表示装置19を有する。
【0012】
カメラ11は、CCD(Charge Coupled Device)イメージセンサやCMOS(Complementary Metal Oxide Semiconductor)イメージセンサにより構成され、自家用自動車等の車両の周囲の映像を取り込んで画像データを生成して制御部12に与える。
【0013】
たとえば後方を監視する場合、カメラ11は車両後部のナンバープレート付近やリアウインドウの上部などに設けられる(リアカメラ)。また、車両の側方を監視する場合、カメラ11はサイドミラー付近に設けられる(サイドカメラ)。また、車両前方を監視する場合、カメラ11は車両前部のナンバープレート付近やフロントウインドウの上部などに設けられる(フロントカメラ)。
【0014】
カメラ11には、広画角撮像を可能とするよう広角レンズや魚眼レンズが取り付けられてもよい。たとえば広画角撮像が可能なカメラ11をサイドミラー付近に配設する場合(サイドカメラ)、車両の側方に加えて車両の前方および後方を同時に撮像することも可能である。また、複数のカメラ11を用いることにより広範な車外周囲画像を取り込むようにしてもよい。
【0015】
以下の説明では、カメラ11に広画角撮像を可能とするよう広角レンズや魚眼レンズが取り付けられる場合の例について示す。
【0016】
カメラ11の広画角な撮像画像は、制御部12により、任意の視線軸を有する画像(以下、処理画像という)に変換(視線軸変換)される。換言すると、制御部12は、カメラ11により撮像された広画角な撮像画像にもとづいて、任意の視線軸を法線方向にもつ仮想的なカメラ投影面(以下、単に投影面という)に透視投影された画像(処理画像)を生成する。カメラ11の光軸は、地面と平行となるように、または地面と平行な線からやや下向きとなるように設定されるとよい。
【0017】
制御部12は、たとえばCPU、RAM、ROMを備えたマイクロコントローラにより構成される。制御部12のCPUは、ROMなどの記憶媒体に記憶された画像処理プログラムおよびこのプログラムの実行のために必要なデータをRAMへロードし、このプログラムに従って処理画像内の対象物の形状が変化する場合であっても誤検出を低減しつつ正確に対象物を検出するための処理を実行する。
【0018】
制御部12のRAMは、CPUが実行するプログラムおよびデータを一時的に格納するワークエリアを提供する。制御部12のROMなどの記憶媒体は、画像処理プログラムや、これらのプログラムを実行するために必要な各種データを記憶する。
【0019】
なお、ROMをはじめとする記憶媒体は、磁気的もしくは光学的記録媒体または半導体メモリなどの、CPUにより読み取り可能な記録媒体を含んだ構成を有し、これら記憶媒体内のプログラムおよびデータの一部または全部は図示しないネットワーク接続部を介して電子ネットワークを介してダウンロードされるように構成してもよい。
【0020】
なお、この場合、ネットワーク接続部は、ネットワークの形態に応じた種々の情報通信用プロトコルを実装し、この各種プロトコルに従って制御部12と他の車両のECUなどの電気機器とを電子ネットワークを介して接続する。この接続には、電子ネットワークを介した電気的な接続などを適用することができる。ここで電子ネットワークとは、電気通信技術を利用した情報通信網全般を意味し、無線/有線LAN(Local Area Network)やインターネット網のほか、電話通信回線網、光ファイバ通信ネットワーク、ケーブル通信ネットワークおよび衛星通信ネットワークなどを含む。
【0021】
記憶部13は、制御部12によるデータの読み書きが可能な不揮発性のメモリであり、検出対象物を撮像した画像を用いてあらかじめ生成された画像辞書(モデル)や制御部12により生成されるフレームグリッドなどの種々の情報を記憶している。これらの情報は、電子ネットワークを介してまたは光ディスクなどの可搬型記憶媒体を介して更新されてもよい。
【0022】
灯火装置16は、一般的なヘッドライトにより構成され、制御部12により制御されて点滅(いわゆるパッシング)を行うことにより、たとえば自車両の外部に対して警告を行う。
【0023】
クラクション17は、制御部12により制御されて自車両の外部に対して警告音を出力する。
【0024】
スピーカ18は、自車両の車内に設けられ、制御部12により制御されて自車両の運転者に対してビープ音や危険が迫っていることを知らせるための情報などの各種情報に対応した音声を出力する。
【0025】
表示装置19は、運転者が視認可能な位置に設けられ、車載用の一般的なディスプレイやカーナビゲーションシステム、HUD(ヘッドアップディスプレイ)などの表示出力装置を用いることができ、制御部12の制御に従って、カメラ11の撮像画像や検出対象物の検出位置を示す画像などの各種情報を表示する。
【0026】
(制御部12の構成および動作の概略)
続いて、制御部12のCPUによる機能実現部の構成および動作の概略について説明する。
【0027】
図1に示すように、制御部12のCPUは、画像処理プログラムによって、少なくとも辞書生成部21、処理画像生成部22、仮検出部23、最終検出部24および警告部25として機能する。仮検出部23は、HOG処理部31およびHOG結果判定部32を有する。
【0028】
この各部21−25は、RAMの所要のワークエリアをデータの一時的な格納場所として利用する。なお、これらの機能実現部は、CPUを用いることなく回路などのハードウエアロジックによって構成してもよい。
【0029】
図2は、
図1に示す制御部12のCPUにより、処理画像内の対象物の形状が変化する場合であっても誤検出を低減しつつ正確に対象物を検出する際の手順の概略を示すフローチャートである。
図2において、Sに数字を付した符号はフローチャートの各ステップを示す。
【0030】
ステップS1において、辞書生成部21は、あらかじめ検出対象物を撮像した画像を用いて画像辞書(モデル)を生成し記憶部13に記憶させておく。具体的には、カメラ11の所定の視線軸と、検出対象物の検出対象面の法線方向と、が平行となるように検出対象物をカメラ11の撮像範囲内の所定範囲の複数の位置に配置して、カメラ11により複数の位置のそれぞれで事前に検出対象物を撮像した画像を用いてあらかじめ1つの辞書を生成しておく。
【0031】
辞書生成部21が生成する辞書は、特徴量にもとづいて画像から対象物を検出するための種々の技術に適用可能な内容を有する。以下の説明では、辞書生成部21が生成する辞書がHOG特徴量にもとづく対象物検出処理(以下、HOG処理という)に適した辞書(以下、HOG辞書という)であり、仮検出部23がHOG処理を行う場合の例について示す。
【0032】
次に、ステップS2において、処理画像生成部22は、カメラ11から車両の周囲を広画角に撮像した撮像画像を取得する。
【0033】
次に、ステップS3において、処理画像生成部22は、カメラ11による撮像画像にもとづいて、辞書生成に用いられた視線軸と同じ視線軸を法線方向とする投影面に透視投影された画像として処理画像を生成する。
【0034】
次に、ステップS4において、仮検出部23のHOG処理部31は、HOG処理(たとえば特開2010−44438号公報、特開2010−55195号公報など参照)を行って尤度を出力する。HOG処理部31は、具体的には、処理画像を勾配方向画像に変換して検出対象物に応じた所定サイズの枠(走査枠)を走査し、HOG辞書を用いて走査位置ごとにHOG特徴量を求めることにより各走査位置に検出対象物が存在するもっともらしさを示す尤度を求める。HOG処理部31は、各走査位置の枠内画像を辞書にあてはめることで尤度(スコア)を求めることができる。尤度が高ければ高いほど、辞書にマッチングした画像であるといえる。
【0035】
HOG特徴量は、縦、横、斜め方向のエッジがブロック内にどの程度あるのかを定量化したものである。このため、明るさの変化などの影響を受けにくく、形状の変化に対しても頑健であることが知られている。なお、HOG処理部31によるHOG処理は、共起性を利用した処理(coHOG処理)であってもよい。
【0036】
次に、ステップS5において、仮検出部23のHOG結果判定部32は、HOG処理部31により得られた尤度が閾値より大きい結果を有効な結果とする。この有効な結果に対応する枠の位置は、検出対象物の位置候補領域と考えることができる。本実施形態において、尤度の閾値は、有効な結果が複数得られるように設定され、HOG結果判定部32は、複数の位置候補領域を検出する。以下の説明では、HOG結果判定部32により検出される枠を仮検出枠というものとする。
【0037】
仮検出枠の検出数は、HOG処理部31がHOG処理において走査枠を走査する際の画素のずらし量を小さくするほど、また尤度の閾値を小さくするほど、多くすることができる。また、辞書生成時に取得した画像に対して、位置をずらした画像を多く用いるほど、また拡大率を変えた画像を多く用いるほど、仮検出枠の検出数を多くすることができる。
【0038】
次に、ステップS6において、最終検出部24は、複数の位置候補領域の重畳領域を求め、この重畳領域と複数の位置候補領域とにもとづいて処理画像内の検出対象物の最終検出位置を求める。以下の説明では、最終検出部24により求められる最終検出位置に対応する枠を最終検出枠というものとする。
【0039】
次に、ステップS7において、警告部25は、最終検出部24により検出された最終検出位置の情報を自車の運転者に通知するべきか否かを判定する。最終検出位置を通知すべき場合はステップS8に進む。一方、通知せずともよい場合はステップS9に進む。たとえば、検出対象物の最終検出位置が自車から所定の距離以内の位置である場合にはユーザに通知すべきと判定するとよい。なお、このステップS7は実行されずともよい。
【0040】
次に、ステップS8において、警告部25は、自車の運転者に対してスピーカ18を介した音声出力およびブザー出力ならびに表示装置19に対する警告表示の少なくとも1つにより、最終検出位置の情報を自車の運転者に通知してステップS9に進む。たとえば、警告部25は、処理画像と最終検出位置とを重畳して表示装置19に表示する。また、警告部25は、灯火装置16の点滅(いわゆるパッシング)やクラクション17の警告音により、自車両の外部に対して警告通知してもよい。
【0041】
次に、ステップS9において、制御部12は一連の手順を終了するか否かを判定する。たとえば自車が所定時間以上停車している場合や運転者による入力指示があった場合には一連の手順は終了となる。手順を続行する場合はステップS2に戻り、カメラ11から次のフレームの画像を取得してステップS3−S8の処理を繰り返す。
【0042】
以上の手順により、処理画像内の対象物の形状が変化する場合であっても誤検出を低減しつつ正確に対象物を検出することができる。
【0043】
検出対象物が辞書に学習させた画像と一致する場合は、複数得られた仮検出枠の中心付近で尤度が著しく高い結果を得ることができる。しかし、辞書に学習させた画像にくらべて処理画像内の検出対象物の形状がすこし歪んだ形状である場合は、中心付近の尤度が十分に高くはならず、ある程度尤度の高い領域が広く存在することになる。
【0044】
HOG結果判定部32は、尤度の閾値を低くすることで、処理画像内の検出対象物の形状が歪んでいても、この歪んだ検出対象物の仮検出枠を検出することができる。このとき、尤度の閾値が低いため、HOG結果判定部32は検出対象物以外の物体を誤検出してしまう場合もある。そこで、最終検出部24は、複数の位置候補領域の重畳領域の情報を利用し、複数の位置候補領域(仮検出枠)が重複する領域には検出対象物が存在する確率が高いと判定して最終検出枠を決定する。
【0045】
したがって、処理画像内における検出対象物の形状変化(歪み)があるために検出対象物と合致する枠の尤度が低くなってしまう場合であっても誤検出を減らしつつ確実に検出対象物を検出することができる。
【0046】
(辞書の生成)
ここで、本実施形態に係る辞書生成部21により生成される辞書について説明する。
【0047】
図3は、広画角のカメラ11を用い、視線軸40が自車41の進行方向に平行に真後ろを向いている場合に生成される本実施形態に係る処理画像の一例を示す説明図である。
【0048】
本実施形態では、広画角のカメラ11を用い、自車41の進行方向に平行に真後ろを向いた視線軸40の処理画像を生成する(
図3参照)。この場合、検出対象物42が遠くにあると、検出対象物42の検出対象面の全体が処理画像に写るとともに検出対象面が左右対称に見える。一方、検出対象物42が近くにある場合には、検出対象面の全体が処理画像に写るとともに検出対象面が少し左右対称に見えない。これは、完全な平面でない場合には、左右で相対的な奥行きが違って見えるためである。
【0049】
従来の辞書は、処理画像上で検出対象物42の形状が変化することを想定せず生成される。このため、従来の辞書を1つ用いるだけでは、
図3に示す例で検出対象物42が近くにある場合には処理画像から検出対象物42を検出することができない。また、形状の変化に対応すべく複数の形状に応じた辞書を用いる場合、辞書の数だけ大きな記憶媒体が必要となってしまうとともに検出処理に大きな負荷がかかり処理時間もかかってしまう。
【0050】
そこで、本実施形態に係る辞書生成部21は、
図3に示すような視線軸40と検出対象面法線方向の位置関係で検出対象物42を検出することができるよう、カメラ11の所定の視線軸40と、検出対象物42の検出対象面の法線方向と、が平行となるように検出対象物42をカメラ11の撮像範囲内の所定範囲の複数の位置に配置して、カメラ11により複数の位置のそれぞれで事前に検出対象物42を撮像した画像を用いてあらかじめ1つの辞書を生成する。
【0051】
図4は、
図2のステップS1で辞書生成部21により実行される辞書生成処理の詳細な手順の一例を示すサブルーチンフローチャートである。なお、辞書生成は
図2のステップS2以降が実行される以前に行われていればよい。このため、辞書生成にあたって必要な撮像画像は、自車41のカメラ11を用いて取得されてもよいし、他の固定カメラ等を用いて取得されてもよい。
【0052】
また、
図5は、辞書生成部21による辞書の生成時に設定される所定の範囲44の一例を示す説明図である。
【0053】
ステップS11において、辞書生成部21は、所定の範囲44の複数の位置に配置された検出対象物42をカメラ11で撮像した撮像画像を取得する。各位置において、検出対象物42は、自車41の進行方向と検出対象面の法線方向とが一致するよう配置される。
【0054】
検出対象面は、ある程度平面とみなせる面とするとよい。たとえば検出対象物42が自動車である場合、自動車の前面、側面および後面を検出対象面とするとよい。また、自車41がトラックやバスなどであってカメラ11を高い位置に取り付けられる場合は、自動車の上面を検出対象面としてもよい。もちろん、検出対象面は、自動車の各面に限られず、バイク側面などであってもよい。
【0055】
次に、ステップS12において、辞書生成部21は、検出対象面の法線方向と平行な視線軸40を有するよう撮像画像を変換する。なお、カメラ11のいわゆる光軸をあらかじめ自車41の進行方向と一致するようにカメラ11を設置してありレンズ歪が補正されている場合は、このステップS12を実行せずともよい。
【0056】
次に、ステップS13において、辞書生成部21は、視線軸40の画像から検出対象面を切り出す。
【0057】
次に、ステップS14において、辞書生成部21は、切り出した画像を用いて辞書を生成し記憶部13に記憶させる。
【0058】
所定の範囲44は、仮検出部23が検出対象とする範囲である。撮像画像の中心から大きくずれた位置では中心に比べて形状が大きく変化する。このため、所定の範囲44は、形状変化があまり大きすぎることのない範囲とするとよく、たとえば自車41の進行方向に平行な視線軸40から、自車41の外側に向かって30度から60度くらいまで(たとえば45度まで)の範囲とする。また、検出対象物42がトラックやバスなどの場合、検出対象面はより平行とみなせる。このため、所定の範囲44は、自車41の進行方向に平行な視線軸40から、自車41の外側に向かって85度くらいまで範囲を広げてもよい。
【0059】
また、たとえば視線軸40から自車41の外側に向かって45度を超える範囲とする場合、検出対象物42の側面も見えるようになる。このため、45度を超える範囲とする場合は、検出対象物42の側面を検出対象面とし、視線軸40を側面の法線方向(自車41の進行方向に垂直な方向)と平行にした辞書を別に生成しておいてもよい。
【0060】
このとき、検出対象面は車両前方の一部の側面やタイヤなどの小さな領域としてもよい。視線軸40を側面の法線方向に平行とする場合の辞書において切り出す検出対象面を小さな領域とすれば、遠くほど解像度が少なくなる影響や遠くほど検出対象物42の側面が(完全な平面でないと)歪んでしまう影響を低減することができる。
【0061】
図5には、自車41が走行する車線の隣の車線を走行して自車41から接近する他車を検出することを想定し、カメラ11から所定の距離以内までは視線軸40から自車41の外側に向かって45度までの範囲を、カメラ11から所定の距離より遠くでは視線軸40から自車外側に向かって所定距離の範囲を、所定の範囲44とする場合の例について示した。
【0062】
図4に示す手順により、左右対称性がある程度損なわれた検出対象物42の画像を盛り込んだ、所定の範囲44に対応した1つの辞書を生成することができる。
【0063】
辞書生成部21が生成する辞書は、検出対象面が完全な平面ではなく処理画像内で左右対称性が崩れる場合を想定し、左右対称性が損なわれた画像をも学習した辞書である。このため、仮検出部23は、この1つの辞書のみで処理画像中心から離れた位置に写り込んだ形状が少し歪んだ検出対象物42でも、尤度は若干低くなるものの、検出することができる。したがって、仮検出部23は、1つの辞書で広い範囲(所定の範囲44)に位置する検出対象物42を処理画像から検出することができるようになる。
【0064】
(処理画像生成)
続いて、本実施形態に係る処理画像生成部22により生成される処理画像について説明する。
【0065】
図3にはサイドミラー付近に配置したカメラ11により自車41の後方から接近する検出対象物42を検出する場合の例について示したが、本実施形態に係る画像処理装置10は、カメラ11を複数箇所に備えてもよいし、側方や前方から接近する検出対象物42を検出してもよい。
【0066】
図6は、カメラ11が左右および後部に設けられ、自車41に並走する他車の前面を検出する場合における各カメラ11の視線軸40および投影面43の一例を示す説明図である。自車41に並走する他車の前面を検出する場合、処理画像生成部22は、カメラ11の撮像画像にもとづいて自車41の進行方向に平行で後方に向かう視線軸40をもつ投影面43に透視投影された処理画像を生成する。
【0067】
また、カメラ11を左右および前部に設け、自車41に並走する他車の後面を検出してもよい。自車41に並走する他車の後面を検出する場合、処理画像生成部22は、カメラ11の撮像画像にもとづいて自車41の進行方向に平行で前方に向かう視線軸40をもつ投影面43に透視投影された処理画像を生成する。
【0068】
また、カメラ11を左右、前部および後部に設け、自車41に並走する他車の側面を検出してもよい。自車41に並走する他車の側面を検出する場合、処理画像生成部22は、カメラ11の撮像画像にもとづいて自車41の進行方向に垂直な視線軸40をもつ投影面43に透視投影された処理画像を生成する。
【0069】
他車の前面、側面および後面を検出する場合は、各視線軸40に対応する個別の辞書を利用する。これらの辞書は辞書生成部21によりあらかじめ生成される。もちろん、全てに対応する辞書を用意しておき全ての検出対象面(他車の前面、後面および側面)を検出対象としてもよい。
【0070】
図7は、処理画像生成部22により生成されるピラミッド画像50の一例を示す説明図である。なお、
図7には、最も縮小された画像(解像度が低い画像)から順に番号を0〜16として示した。また、
図7には、複数の処理画像を拡大縮小率に応じて近距離用画像、中距離用画像、遠距離用画像にそれぞれ分類する場合の例について示した。また、
図7には、近距離用画像(0−8)が互いに1.3倍の拡大率、中距離用画像(9−12)が互いに1.19倍の拡大率、遠距離用画像(13−16)が互いに1.19倍の拡大率である場合の例について示した。
【0071】
辞書生成部21により生成される辞書は、検出対象物42に応じた所定サイズ(たとえば横×縦が24×12ピクセルなど)の画像に対応したものとしてもよい。この場合、仮検出部23は、処理画像上で所定サイズの枠(たとえば24×12ピクセルなど)を走査することになる。一方、処理画像上での検出対象物42の大きさは、自車41からの距離に応じて異なる。たとえば検出対象物42が自車41から遠い場合は、近い場合に比べて検出対象物42は処理画像上で小さく写ることになる。
【0072】
このため、仮検出部23が処理画像上で一定のサイズの枠を走査する場合には、処理画像生成部22は、自車41から設定される投影面43の距離が互いに異なる複数の処理画像により構成される画像群(ピラミッド画像)50を生成するとよい。このとき、処理画像生成部22は、各処理画像が検出対象面の法線方向に平行な視線軸40を有するように、すなわち辞書生成に用いられた視線軸40と同一の視線軸40を有するように、各処理画像を生成する。
【0073】
処理画像上の検出対象物42のサイズが枠のサイズと一致する場合における自車41から検出対象物42までの距離は、あらかじめ測定しておくことができる。このため、各処理画像は、あらかじめ自車41から検出対象物42までの距離と関連付けておくことができる。小さい処理画像ほど、関連付けられる自車41からの距離が短い。
【0074】
なお、ここでの処理画像の面は平面であるため、各処理画像での距離は、視線軸方向に対しての距離である。処理画像の面は円柱状や球状としてもよい。たとえば面を円柱にした場合、焦点距離は円(2次元)方向となり、検出対象物42までの距離は円(2次元)方向となる。また、たとえば面を球にした場合、焦点距離は球(3次元)方向となり、検出対象物42までの距離は球(3次元)方向となる。
【0075】
なお、各処理画像は、自車41からの互いに異なる距離と関連付けることができればよく、カメラ11の撮像画像を複数の倍率で拡大縮小することにより生成されてもよいし、自車41から検出対象物42までの距離(たとえば2mなど)ごとに生成されてもよい。
【0076】
ピラミッド画像50を生成する場合、処理画像生成部22は、自車41から所定の距離ごとに投影面43を設定し、この各投影面43を用いて撮像画像にもとづいて各処理画像を生成する。
【0077】
各投影面43が同一の視線軸40を有する場合、仮検出部23はピラミッド画像50を構成する全ての処理画像に対して1つの辞書を適用することができる。ピラミッド画像50が生成されると、仮検出部23は、各処理画像上で所定サイズの枠を走査し、HOG特徴量にもとづいてHOG辞書を用いて検出対象物42の仮検出枠(位置候補領域)の検出処理を行う。
【0078】
(走査枠)
図8は、HOG処理部31によるHOG処理対象となる領域(検出対象面)について説明するための図である。
【0079】
HOG処理部31は、処理画像上で検出対象物42の検出対象面(HOG処理領域)に応じたサイズの走査枠を走査し、HOG辞書を用いてHOG特徴量を求めることにより走査位置ごとに尤度を求める。検出対象面は、完全な平面でなくともある程度平面とみなせる領域であることが好ましい。このため、検出対象物42が自動車であって視線軸40が自車41の進行方向に平行である場合は、仮検出部23は自動車(他車)の前面のライトあたりを検出対象面とするとよい。フロントガラス部分はライトよりも自車41から見て奥に位置するため、近くで自車41の横に位置する場合にはフロントガラス部分とライトあたりでは横位置がずれて処理画像が作成されてしまうためである。
【0080】
なお、自車41から遠くの位置のみを所定の範囲44とする場合は、フロントガラス部分とライトあたりの奥行きが相対的に同じぐらいになるため、フロントガラスを含む自動車全体を検出対象面としてもよい。
【0081】
また、視線軸40が自車41の進行方向に垂直である場合は、他車の側面を検出対象面とすればよい。なお、検出対象面は車両前方の一部の側面やタイヤなどの小さな領域としてもよい。検出対象面を小さな領域とすれば、遠くほど解像度が少なくなる影響や遠くほど検出対象物42の側面が(完全な平面でない場合に)歪んでしまう影響を低減することができる。
【0082】
この辞書は、1つのみで、広画角のカメラ11により撮像される画像上に写った検出対象物42が画像中心から離れた位置に写っており、かつ画像中心に写った場合に比べて形状が歪んでいる場合にも対応したものである。このため、広画角なカメラ11を用いて広範囲を撮像した画像上において検出対象物42の形状が歪んでいても、仮検出部23は、1つの辞書で誤検出を抑制しつつ柔軟に安定して検出対象物42を検出することができる。
【0083】
また、画像処理装置10は、1つの辞書で広い範囲に位置する検出対象物42を検出することができる。このため、複数の辞書を用いる場合に比べ、必要となる記憶容量を大幅に低減することができるとともに、検出処理にかかる負荷を低減し処理時間を削減することができる。また、画像処理装置10は、他車が自車41に近い場合は、視線軸40を自車41の進行方向に垂直な方向とするとともに所定の範囲44を自車41の進行方向に沿った広い範囲とし、検出対象面を他車の側面や検出対象とすることもできる。このため、特にサイドミラー付近にカメラ11を設けておく場合、自車41を追い越す他車を自車41の近くまで監視することができる。
【0084】
このように1つの辞書で広い範囲をカバーする場合をはじめ、処理画像内における検出対象物42の形状変化(歪み)がある場合には、検出対象物42と合致する走査枠の尤度が低くなってしまうことになる。このとき、尤度の閾値を単に低くするだけでは、歪んだ検出対象物42のみならず意図しない物体もいたずらに誤検出してしまうことになる。
【0085】
そこで、本実施形態に係る画像処理装置10のHOG結果判定部32は、尤度の閾値を低くしつつ位置候補領域(仮検出枠)をある1つの処理画像上へ正規化した枠として複数検出する。そして、最終検出部24がこの複数の位置候補領域の重畳領域にもとづいて処理画像内の検出対象物42の最終検出位置を求めることにより、誤検出を低減する。
【0086】
(最終検出位置の検出処理)
最終検出部24は、
図2のステップS6において、複数の仮検出枠(位置候補領域)の重畳領域を求め、この重畳領域と複数の仮検出枠とにもとづいて最終検出枠を求める。
【0087】
このとき、最終検出部24は、現在のフレームおよび過去の複数のフレームにおける重畳領域の履歴を用いてもよい。たとえば、重畳領域の履歴にもとづいて現在のフレームの複数の仮検出枠から複数の有効位置候補領域(以下、有効検出枠という)を抽出し、複数の有効検出枠のうち最も高い尤度を有する有効検出枠を最終検出枠としてもよいし、複数の有効検出枠をそれぞれの尤度で重み付け加算平均することにより最終検出枠を求めてもよい。
【0088】
重畳領域の履歴を用いることにより、検出対象物42が存在する確率が高い位置を限定することができ、誤検出を低減することができる。
【0089】
さらに、最終検出部24は、一つ前のフレームと現在のフレームとの間のオプティカルフローを用いて重畳領域を修正し、修正した重畳領域を用いて最終検出枠を求めてもよい。オプティカルフローを用いることにより、自車41と検出対象物42との相対速度が速い場合にも安定して最終検出枠を求めることができる。
【0090】
図9は、
図2のステップS6で最終検出部24により実行される最終検出位置の決定処理の手順の概略を示すサブルーチンフローチャートである。
【0091】
この手順は、
図2のステップS5でHOG結果判定部32により所定の尤度の閾値以上の尤度を有する複数の仮検出枠(位置候補領域)が得られてスタートとなる。仮検出枠は、たとえば長方形形状を有する。
【0092】
なお、ピラミッド画像50が生成された場合は、HOG結果判定部32は拡大縮小率の異なる複数の処理画像のそれぞれから複数の仮検出枠を検出する。この場合は、最終検出部24はステップS11を実行する前に1つの処理画像(たとえば最も解像度が高い(画素が細かい)画像)をグリッド用画像とし、このグリッド用画像に各検出枠の大きさおよび位置を正規化しておく。
【0093】
(最終検出位置の検出処理:カウントグリッド生成処理)
ステップS21において、最終検出部24は、グリッド用画像を所定サイズのグリッド(セル)に分割したカウントグリッドを構成する各グリッドに対して、正規化された仮検出枠ごとに仮検出枠の位置に応じて値(カウント)を割り当てることにより、現在のフレームのカウントグリッドを生成する。
【0094】
図10は、
図9のステップS21で最終検出部24により実行されるカウントグリッド生成処理の詳細な手順の一例を示すサブルーチンフローチャートである。また、
図11はカウントグリッドを生成する様子の一例を示す説明図である。
【0095】
ステップS31において、最終検出部24は、グリッド用画像を所定サイズのグリッド(セル)に分割したカウントグリッドを初期化する。
【0096】
次に、ステップS32において、最終検出部24は、カウントグリッドを構成する各グリッドに対して、正規化された仮検出枠ごとに仮検出枠が属するグリッドを特定する。
【0097】
次に、ステップS33において、最終検出部24は、仮検出枠が属するグリッドをカウントアップする。このとき、尤度が高いほどカウントアップ量を大きくしてもよい。
図11には、仮検出枠の内部領域(位置候補領域)が一部でも属しているグリッドを仮検出枠が属するグリッドとする場合の例について示した。
【0098】
そして、最終検出部24は、ステップS32およびS33の処理を行なっていない仮検出枠があると(ステップS34のNO)ステップS32に戻る一方、全ての仮検出枠についてステップS32およびS33の処理が終了した場合は(ステップS34のYES)、カウントグリッドの生成処理を終了し、
図9のステップS22に進む。
【0099】
この結果、カウントグリッドの各グリッドの値の分布は、複数の仮検出枠(位置候補領域)の重畳領域に応じた分布となる。
【0100】
(最終検出位置の検出処理:フレームグリッド更新処理)
次に、ステップS22において、最終検出部24は、グリッド用画像をカウントグリッドと同サイズのグリッド(セル)に分割したフレームグリッドについて、前回のフレームで得られたフレームグリッドの各グリッドの値を、カウントグリッドの各グリッドの値に応じて加減算することで更新し、今回(現在)のフレームのフレームグリッドを得る。
【0101】
図12は、
図9のステップS22で最終検出部24により実行されるフレームグリッド更新処理の詳細な手順の一例を示すサブルーチンフローチャートである。また、
図13はフレームグリッドを更新する様子の一例を示す説明図である。
【0102】
ステップS41において、最終検出部24は、グリッド用画像をカウントグリッドと同サイズのグリッド(セル)に分割したフレームグリッドを、RAMや記憶部13などの記憶媒体から取得する。記憶媒体に記憶されたフレームグリッドは、前回のフレームにおける最終検出位置の検出処理において最終検出部24により生成されたもの(過去のフレームグリッド)である。
【0103】
次に、ステップS42において、最終検出部24は、カウントグリッドの各グリッドの値に応じて、対応するフレームグリッドの各グリッドの加減算値を決定する。このとき、フレームグリッドの値に上限(たとえば9)と下限(たとえば0)を設けてもよい。また、カウントグリッドの値が大きいほど(小さいほど)加算値(減算値)を大きくしてもよく、たとえば、カウントグリッドの値が0または1で−3、2で−1、3で加減算なし、4または5で+1、6以上で+2などとしてもよい。
【0104】
図13には、フレームグリッドの値の上限を9、下限を0としつつ、カウントグリッドにおいて4以上の値を有するグリッドに対応するフレームグリッドのグリッドに1を加える一方、3以下の値を有するグリッドに対応するフレームグリッドのグリッドから2を減じる場合の例について示した。
【0105】
次に、ステップS43において、最終検出部24は、前回のフレームで得られたフレームグリッド(過去のフレームグリッド)の各グリッドの値を、ステップS42で決定した加減算値で加減算することで更新し、今回(現在)のフレームのフレームグリッドを得て記憶媒体に記憶させて
図9のステップS23に進む。
【0106】
この結果、フレームグリッドは、現在のフレームおよび過去の複数のフレームにおける重畳領域の履歴を反映したものとなる。
【0107】
(最終検出位置の検出処理:フレームグリッド拡張処理)
次に、ステップS23において、最終検出部24は、前回(一つ前)のフレームと現在のフレームとの間のオプティカルフローを取得する。オプティカルフローは、たとえばブロックマッチング法や勾配法などを用いて求めることができる。
【0108】
次に、ステップS24において、最終検出部24は、オプティカルフローを用いてフレームグリッドを拡張(各グリッドの値を修正)する。
【0109】
図14は、第1実施形態においてオプティカルフローを用いてフレームグリッドを拡張する様子の一例を示す説明図である。
【0110】
オプティカルフローの情報により、現在のグリッドに対応する前回のグリッドの位置を互いに関連付けることができる。そこで、ステップS23で得られた更新後フレームグリッドの各グリッドについて、オプティカルフローにより関連付けられた過去のグリッドの値が現在の値よりも大きい場合は、現在の値を過去のグリッドの値で置き換えてもよい(
図14参照)。また、オプティカルフローにより関連付けられた過去のグリッドの値が0の場合には、現在のグリッドの値を減算(たとえば−2など)してもよい。また、単純にオプティカルフローにより関連付けられた過去のグリッドの値で現在のグリッドの値を置き換えてもよい。
【0111】
オプティカルフローを用いてフレームグリッドを拡張することにより、動きの速い検出対象物42であっても、その動きを追従し確実に検出することができる。
【0112】
なお、ステップS23およびS24は実行されずともよい。また、ステップS22(またはステップS23およびステップS24が実行される場合はステップS24)で得られたフレームグリッドの各グリッドのうち値の高いグリッドに対応する位置については、次回のフレームからHOG結果判定部32による尤度の閾値を低くしてもよい。すなわち、HOG結果判定部32は、フレームグリッドの各グリッドの値に応じて、走査枠の走査位置ごとに尤度を変えてもよい。尤度の閾値を下げることにより、検出もれを防ぐことができる。
【0113】
(最終検出位置の検出処理:有効検出枠抽出、最終検出枠決定)
次に、ステップS25において、最終検出部24は、フレームグリッドの各グリッドの値が所定の値以上のグリッドを有効グリッドとして設定し、仮検出枠(
図11参照)のうち、有効グリッドと重なる仮検出枠を有効検出枠として抽出する。
【0114】
図15(a)はフレームグリッドに設定された有効グリッドの一例を示す説明図であり、(b)は有効検出枠の抽出条件について説明するための図である。また、
図15(c)は抽出された複数の有効検出枠の一例を示す説明図であり、(d)は複数の有効検出枠から求められる最終検出枠の一例を示す説明図である。
【0115】
有効グリッドは、ステップS22(またはステップS23およびステップS24が実行される場合はステップS24)で得られたフレームグリッドの各グリッドのうち値の高いグリッドである。
図15(a)には、
図14に示す拡張後のフレームグリッドにおいて3以上のグリッドを有効グリッドとする場合の例について示した。
【0116】
有効検出枠は、仮検出枠のうち、有効グリッドと重なる仮検出枠である。
図15(b)には、仮検出枠に4箇所の枠内確認位置を設定する場合の例について示した。最終検出部24は、たとえば4箇所の枠内確認位置のうち所定数以上(たとえば3つ以上)が有効グリッドと重なる仮検出枠を有効検出枠とする。枠内確認位置はたとえば仮検出枠の4つ角や4辺の中間などであってもよいし、またその数は4つである必要はなく、たとえば1つのみ(たとえば中心のみなど)であってもよい。
【0117】
また、有効検出枠同士の位置や大きさの類似具合により、さらに有効検出枠を選別してもよい。たとえば、大きさが複数の有効検出枠の平均値の1/1.5倍以上1.5倍未満の範囲であり、かつ所定割合以上重なっているもの(たとえば中心同士が枠の大きさの半分以上ずれていないもの)を選別してもよい。このように選別された有効検出枠は位置や大きさがほぼ同じものとなる。
【0118】
次に、ステップS26において、最終検出部24は、複数の有効検出枠にもとづいて最終検出枠(最終検出位置)を決定する。具体的には、最終検出部24は、複数の有効検出枠のうち最も尤度の高いものを最終検出枠としてもよいし、複数の有効検出枠をそれぞれの尤度で重み付け加算平均することにより最終検出枠を求めてもよい。
【0119】
加重平均する場合は、加重平均する有効検出枠が所定数(たとえば2など)以上得られなかった場合、無効としてもよい。また、このとき、過去に得られた加重平均による最終検出枠も使用して加重平均してもよい。過去に得られた最終検出枠の位置は、現在のフレームにおいて動きによってずれた位置になっている場合がある。
【0120】
そこで、オプティカルフローを用いて最終検出枠の中心や平均により位置をずらしたり、中心と上部中央や左右の両端などの距離ずれの割合によって最終検出枠の大きさを変えたりしておいてもよい。また、最終検出枠で得られた領域全体を使用して平均や最小2乗法によって距離ずれの割合を計算してもよい。過去の最終検出枠を利用することにより、現在の仮検出枠がばらついている場合にもある程度スムージングされる。また、現在のフレームで最終検出枠が得られない(たとえば有効検出枠が2つ以上得られず無効とされた)場合は、過去の最終検出枠を所定のフレーム数(たとえば3フレーム)保持しておいてもよい。また、大きな加重平均結果の中に小さな加重平均結果が現れる場合があるので除去する。
【0121】
図16は、有効グリッドを用いて有効検出枠を抽出して求められる最終検出枠と、有効グリッドを用いずに求められる最終検出枠との違いの一例を示す説明図である。
【0122】
図16に示すように、現在のフレームで有効検出枠が得られない場合を想定する。有効グリッドを用いない場合、誤検出された仮検出枠も最終検出枠の決定に用いられてしまう。一方、有効グリッドを用いる場合、誤検出された仮検出枠は有効検出枠とはならず、したがって最終検出枠の決定は行われないため、過去の正しい最終検出枠を今回の最終検出枠として用いることも容易である。
【0123】
図9に示す手順により、最終検出部24は、複数のある1つの処理画像上に正規化された仮検出枠(位置候補領域)の重畳領域を求め、この重畳領域と複数の仮検出枠とにもとづいて最終検出枠を求めることができる。
【0124】
本実施形態に係る画像処理装置10は、複数の仮検出枠(位置候補領域)の重畳領域(密集度)を反映したカウントグリッドを生成し、このカウントグリッドと複数の仮検出枠とにもとづいて最終検出枠を求めることができる。このため、処理画像内の検出対象物42の形状が変化する場合であっても誤検出を低減しつつ正確に検出対象物42を検出することができる
【0125】
また、画像処理装置10は、現在のフレームおよび過去の複数のフレームにおける重畳領域の履歴(時間的連続性)を反映したフレームグリッドを用い現在のフレームの複数の仮検出枠から複数の有効位置候補領域(有効検出枠)を抽出することができる。このため、検出対象物42が存在する確率が高い位置を限定することができ、より誤検出を低減することができる。
【0126】
また、画像処理装置10は、一つ前のフレームと現在のフレームとの間のオプティカルフローを用いてフレームグリッドを拡張し、拡張後のフレームグリッドを用いて最終検出枠を求めることができる。このため、検出対象物42の動きが速い場合であっても、確実に安定して最終検出枠を求めることができる。
【0127】
(第2の実施形態)
次に、本発明に係る画像処理装置および画像処理プログラムの第2実施形態について説明する。
【0128】
この第2実施形態に示す画像処理装置10は、自車41からの距離に応じて複数のカウントグリッドおよびフレームグリッドを生成し最終検出部24が3次元的な処理を行う点で第1実施形態に示す画像処理装置10と異なる。仮検出部23の処理までは第1実施形態に示す画像処理装置10と同一であるため説明を省略する。
【0129】
本実施形態では、ピラミッド画像50の複数の処理画像を拡大縮小率に応じて、すなわち自車41からの距離に応じて複数に分類し、この分類ごとにカウントグリッド(3次元カウントグリッド)およびフレームグリッド(3次元フレームグリッド)を考える。
【0130】
まず、本実施形態に係るカウントグリッド生成処理について説明する。
【0131】
図17は、自車41からの距離に応じて生成される複数のカウントグリッドの一部の一例を示す説明図である。
【0132】
最終検出部24は、ピラミッド画像50の処理画像ごとにグリッドを生成してもよいし、処理画像の数よりも少ないグリッドを用意してもよい。また、自車41に近いピラミッド画像50の処理画像は解像度が粗いため、グリッドを粗くしてもよい。
【0133】
奥行方向に3次元カウントグリッドを設ける場合、各カウントグリッドのグリッド用画像は解像度が異なる。このため、各グリッド用画像に正規化された仮検出枠の大きさも異なる。最終検出部24は、
図17に示すように、仮検出枠の大きさに応じて、奥行き方向に分けられた3次元カウントグリッドごとに加算させる。このとき、3次元カウントグリッドのうち一番合っている奥行きのカウントグリッドの前後のいくつかの奥行き(たとえば前後1つずつ)のグリッドにも加算させてもよい。
【0134】
この場合、検出対象物42の最大速度をあらかじめ設定しておき、この最大速度に対応する距離内に該当する前後のカウントグリッドを、距離が近いほど多く加算させてもよい。また、過去の移動速度を計算しておき、その速度分ずらしたグリッドから前後いくつかの奥行きのグリッドに加算してもよい。
【0135】
フレームグリッドは、カウントグリッド同様に、奥行き方向に分けられた3次元のフレームグリッドとなっている。フレームグリッドの更新処理は第1実施形態に係る画像処理装置10の処理と同様であるため説明を省略する(たとえばカウントグリッドの各グリッドの値に応じて対応するフレームグリッドの各グリッドの加減算値を決定するなど、
図12、13参照)。
【0136】
次に、本実施形態に係るフレームグリッドの拡張処理について説明する。
【0137】
図18(a)はオプティカルフローの一例を示す説明図であり、(b)は第2実施形態において(a)に示すオプティカルフローを用いてフレームグリッドを拡張する様子の一例を示す説明図である。
【0138】
まず、ピラミッド画像50の所定の処理画像において前回(一つ前)のフレームと現在のフレームとの間のオプティカルフローを取得する。なお、奥行きが違う処理画像ごとにオプティカルフローを求める必要はなく、奥行きが違う処理画像でも解像度や大きさが異なるだけで元は同一の撮像画像である。このため、他の処理画像については所定の処理画像で求めたオプティカルフローを正規化して使用すればよい。
【0139】
本実施形態におけるフレームグリッドの拡張処理は、奥行き方向の拡張も必要となる。このため、第1実施形態に係る処理に加え次の処理を追加する。
【0140】
フレームグリッドのグリッドのうち0でないグリッドは、有効検出枠が属していたグリッドである。この有効検出枠ごとに、または有効検出枠の近いもの同士を加重平均して得られる枠ごとに拡張処理する。
【0141】
有効検出枠の中心や端の結果を利用することで、拡大率を得ることができる。このとき複数の有効検出枠のそれぞれで拡大率を求め、これらの拡大率にもとづいて最小2乗法などを施したものを拡大率として用いることにより誤差を減らしてもよい。
【0142】
拡大率が所定の値(たとえば1.1倍など)以上のとき、奥から手前に向かって、手前のフレームグリッドに有効検出枠が属するグリッド位置の値を拡張するとともに、有効検出枠のグリッド位置に奥のグリッドの値を拡張する。同様に拡大率がある値(たとえば1/1.1倍)以下のとき、手前から奥に向かって、奥のグリッドに現在の有効検出枠のグリッド位置の値を拡張するとともに、現在の有効検出枠のグリッド位置に手前のグリッドの値を拡張する。
【0143】
また、拡大率や縮小率が1倍より極端に違う場合は、グリッドを複数またいだ先の倍率の合うグリッドに有効検出枠のグリッド位置の値を拡張するとともに、有効検出枠のグリッド位置にグリッドを複数またいだ先の倍率の合うグリッドの値を拡張してもよい。この場合、前後に隣接するグリッドにも現在の有効検出枠のグリッド位置の結果を拡張するように、拡大率からの奥行きの範囲を定義(0.8倍から1.2倍など)し、この範囲内のグリッドに結果を拡張してもよい。
【0144】
また、オプティカルフロー分ずれた位置から値を拡張してもよい。また、有効検出枠の得られた奥行きのフレームグリッドのみではなく、得られなかった奥行きのフレームグリッドも同じ拡大率として拡張してもよい。
【0145】
フレームグリッドの拡張処理を実行した後、最終検出部24は、仮検出枠の大きさと一番合うグリッドを選んで、その奥行きのフレームグリッドの有効グリッドを用いて仮検出枠同士の位置や大きさの類似具合により有効検出枠を選別し、選別した有効検出枠をそれぞれの尤度で重み付け加算平均することにより最終検出枠を求める。このときの加重平均は、奥行きが異なっても近い奥行きのグリッドで得られたものは1つの結果とすればよい。
【0146】
第2実施形態に係る画像処理装置10は、第1実施形態にかかる画像処理装置10と同様の効果を奏する。また、第2実施形態に係る画像処理装置10によれば、奥行方向の確認が可能となるため、奥行きが異なる結果を誤検出することを防ぐことができる。
【0147】
なお、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【0148】
たとえば、仮検出枠の大きさや形状は、検出対象物42の種別に応じて走査枠に対して適宜変更してもよい。検出対象物42の移動速度が大きい方向ほど仮検出枠の幅を大きく、移動速度が小さい方向ほど仮検出枠の幅を小さく、走査枠に対して変更することにより、より高速に精度よく最終検出枠を求めることができる。
【0149】
たとえば人などのように、走査枠の形が縦長になり横幅が狭い場合には、検出対象物42が動いたときにフレーム間で枠同士が横幅方向に重畳しない場合が多く、フレームグリッドのカウントがオプティカルフローによる拡張処理を行ってもあがりにくくなる。
【0150】
そこで、検出対象物42の処理画像上の移動しやすさによって仮検出枠の形状を変えてもよい。たとえば、検出対象物42が、処理画像上において横方向に大きく縦方向に小さく移動しやすいものである場合であって仮検出枠が縦長である場合、仮検出枠の形状を横長に変換するとよい。
【0151】
また、仮検出枠の形状変更を行う場合、形状変更前の中心位置は同じ位置としてもよいし、処理画像の奥行きが異なっても重複した位置となるよう、たとえば縦方向の中心位置が水平線位置付近となるように所定の割合でずらしてもよい。また、仮検出枠の形状変更後の形状は長方形に限られず、楕円形や三角形であってもよい。
【0152】
また、自車41が回転した場合などでは、近くほど大きさに対する横の移動量は小さくなる。このため、得られる大きさや奥行きによって仮検出枠の形状を変えてもよい。このようにしてカウントグリッドを生成することにより重畳領域を確保することができ、最終検出枠の検出精度を維持することができる。また、移動が少ない方向の仮検出枠の幅を小さくすることにより、仮検出枠が属するグリッドの特定に係る演算を軽くすることができる。また、縦方向に移動しないことがわかっている場合には、縦方向のグリッド数を1つにすることにより、仮検出枠が属するグリッドの特定に係る演算を軽くすることができる。また、横方向も同様である。
【0153】
また、画像処理装置10が利用する撮像画像は、車両に設けられたカメラ11の撮像画像でなくともよく、たとえば街灯に設置されたカメラなどの一般的な周辺監視カメラにより撮像された画像であってもよい。