(57)【要約】【課題】撮像画像に含まれる特定の画像をより正確に検出する。【解決手段】データベースに、車両画像を含む第１矩形画像から第１ハッシュ関数で予め算出した第１メッセージダイジェスト値を格納する。撮像画像から、撮像画像内での垂直位置に応じた大きさの矩形画像を抽出し、抽出された矩形画像を第１矩形画像に対して正規化する。正規化された矩形画像から第１ハッシュ関数で第２メッセージダイジェスト値を算出して、第１メッセージダイジェスト値と算出された第２メッセージダイジェスト値とを比較して、データベースに第２メッセージダイジェスト値と一致する第１メッセージダイジェスト値が格納されているか否かを判定する。【選択図】図１
2014021510.tif 000002
【特許請求の範囲】
【請求項１】
特定の画像を含む第１矩形画像から第１方法で予め算出した第１メッセージダイジェスト値を格納する格納部と、
撮像画像から、該撮像画像内での垂直位置に応じた大きさの矩形画像を抽出する抽出部と、
前記抽出部で抽出された前記矩形画像を前記第１矩形画像に対して正規化し、正規化された該矩形画像から前記第１方法で第２メッセージダイジェスト値を算出する算出部と、
前記第１メッセージダイジェスト値と前記第２メッセージダイジェスト値とを比較して、前記格納部に該第２メッセージダイジェスト値と一致する前記第１メッセージダイジェスト値が格納されている場合に、前記矩形画像が前記特定の画像と対応する画像を含むと決定する比較部と
を有する
ことを特徴とする画像処理装置。
【請求項２】
前記撮像画像から、水平エッジと、該水平エッジの該撮像画像内での前記垂直位置とを検出する検出部をさらに有し、
前記抽出部は、
前記撮像画像から、前記検出部で検出された前記水平エッジを底辺とする所定高さの前記矩形画像を抽出する
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
格納部は、さらに、
前記第１矩形画像から第２方法で予め生成した第３メッセージダイジェスト値を格納し、
前記算出部は、さらに、
前記矩形画像から前記第２方法で第４メッセージダイジェスト値を生成し、
前記比較部は、さらに、
前記第３メッセージダイジェスト値と前記第４メッセージダイジェスト値とを比較して、前記格納部に、該第２メッセージダイジェスト値と一致する前記第１メッセージダイジェスト値が格納されていると共に、該第４メッセージダイジェスト値と一致する該第３メッセージダイジェスト値が格納されているか否かを判定する
ことを特徴とする請求項１または請求項２に記載の画像処理装置。
【請求項４】
前記第１矩形画像は、前記特定の画像を認識可能であるノイズのパターンを含み、
前記格納部は、
全ての前記ノイズのパターンについて、前記第１の矩形画像を予め格納する
ことを特徴とする請求項１乃至請求項３の何れか１項に記載の画像処理装置。
【請求項５】
前記特定の画像は、特定の車種の車両画像である
ことを特徴とする請求項１乃至請求項４の何れか１項に記載の画像処理装置。
【請求項６】
撮像画像から、該撮像画像内での垂直位置に応じた大きさの矩形画像を抽出する抽出ステップと、
前記抽出ステップにより抽出された前記矩形画像を、格納部に格納される、所定の方法で予め算出した第１メッセージダイジェスト値の元になる、特定の画像を含む第１矩形画像に対して正規化し、正規化された該矩形画像から前記ハッシュ関数で第２メッセージダイジェスト値を算出する算出ステップと、
前記第１メッセージダイジェスト値と前記第２メッセージダイジェスト値とを比較して、前記格納部に該第２メッセージダイジェスト値と一致する前記第１メッセージダイジェスト値が格納されている場合に、前記矩形画像が前記特定の画像と対応する画像を含むと決定する比較ステップと
を有する
ことを特徴とする画像処理方法。
【請求項７】
撮像画像から、該撮像画像内での垂直位置に応じた大きさの矩形画像を抽出する抽出ステップと、
前記抽出ステップにより抽出された前記矩形画像を、格納部に格納される、所定の方法で予め算出した第１メッセージダイジェスト値の元になる、特定の画像を含む第１矩形画像に対して正規化し、正規化された該矩形画像から前記ハッシュ関数で第２メッセージダイジェスト値を算出する算出ステップと、
前記第１メッセージダイジェスト値と前記第２メッセージダイジェスト値とを比較して、前記格納部に該第２メッセージダイジェスト値と一致する前記第１メッセージダイジェスト値が格納されている場合に、前記矩形画像が前記特定の画像と対応する画像を含むと決定する比較ステップと
をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像検索を行う画像処理装置および画像処理方法、ならびに、プログラムに関する。
【背景技術】
【０００２】
近年、車載カメラの普及が著しい。自車の前方を撮像するように設置された車載カメラにて走行中に撮影された画像データに基づき、自車の前方を走行する車両の位置を特定し、運転を支援する技術が知られている。例えば、自車との前方の車両との間の距離を特定することで、追突の防止や、車間距離の確保などを支援することができる。
【０００３】
このような車両画像の検出技術は、従来から様々に提案されており、その中でも、画像のエッジ情報に基づき車両の画像を特定する手法が多く知られている。例えば、特許文献１には、画像からエッジを検出し、パターンマッチングにより車両の画像を特定する技術が開示されている。また、特許文献２には、画像からノイズと考えられるエッジを除去した上で、車両の画像を特定する技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第４０７４５７７号公報
【特許文献２】特開２００９−１４０２８９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来の技術では、車両画像の特徴を一般化し、撮像された画像が一般化された車両画像と一致した場合に、当該撮像された画像が車両であると判断している。そのため、誤検出の可能性を排除するのが難しいという問題点があった。
【０００６】
例えば、従来の技術では、非車両の画像を車両画像であると誤判断してしまうおそれがあった。また、従来の技術では、車種により車両画像の大きさが異なる場合がある点が考慮されておらず、車両画像の車両までの距離を誤判定してしまうおそれがあった。
【０００７】
本発明は、上記に鑑みてなされたものであって、撮像画像に含まれる特定の画像をより正確に検出することを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するために、本発明は、特定の画像を含む第１矩形画像から第１方法で予め算出した第１メッセージダイジェスト値を格納する格納部と、撮像画像から、撮像画像内での垂直位置に応じた大きさの矩形画像を抽出する抽出部と、抽出部で抽出された矩形画像を第１矩形画像に対して正規化し、正規化された矩形画像から第１ハッシュ関数で第２メッセージダイジェスト値を算出する算出部と、第１メッセージダイジェスト値と第２メッセージダイジェスト値とを比較して、格納部に第２メッセージダイジェスト値と一致する第１メッセージダイジェスト値が格納されている場合に、前記矩形画像が前記特定の画像と対応する画像を含むと決定する比較部とを有することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、撮像画像に含まれる特定の画像をより正確に検出できるという効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施形態による画像処理装置の一例の構成を示すブロック図である。
【図２】図２は、実施形態に係るデータベースに格納されるデータの例について説明するための図である。
【図３】図３は、実施形態に係るデータベースに格納されるデータの例について説明するための図である。
【図４】図４は、実施形態に係るデータベースに格納されるデータの例について説明するための図である。
【図５】図５は、実施形態に係る車両候補画像抽出の一例の処理を示すフローチャートである。
【図６】図６は、実施形態に係る、撮像画像の例を示す図である。
【図７】図７は、実施形態に係る、撮像画像から検出した水平エッジによる水平エッジ画像の例を示す図である。
【図８】図８は、実施形態に係る、Ｙ座標Ｈiにおいて算出された最小幅Ｗminおよび最大幅Ｗmaxの例を示す図である。
【図９】図９は、実施形態に係る車両候補画像の抽出処理について、より具体的に説明するための図である。
【図１０】図１０は、実施形態に係る、水平エッジ画像から検出した各矩形領域から車両画像を抽出する一例の処理について説明するための図である。
【図１１】図１１は、実施形態に係る、水平エッジ画像から検出した各矩形領域から車両画像を抽出する一例の処理を示すフローチャートである。
【図１２】図１２は、実施形態による画像処理装置を適用可能な情報処理装置の一例の構成を示すブロック図である。
【発明を実施するための形態】
【００１１】
以下に図面を参照しながら、本発明に係る画像処理装置および画像処理方法、ならびに、プログラムの好適な実施形態を説明する。図１は、本発明の実施形態による画像処理装置１の一例の構成を示す。図１において、画像処理装置１は、取得部１１、検出部１２、抽出部１３、算出部１４および比較部１５、ならびに、データベース１６を有する。取得部１１、検出部１２、抽出部１３、算出部１４および比較部１５は、互いに協働する個別のハードウェアで実現してもよいし、一部または全部を図示されないＣＰＵ(Central  Processing  Unit)上で動作するプログラムにより実現してもよい。
【００１２】
画像処理装置１において、取得部１１は、撮像部１０で撮像されて得られた撮像画像から所定の矩形領域を抽出して正規化し、正規化した矩形領域の画像データを示す情報と、データベース１６に予め格納される矩形領域の画像データを示す情報とを比較して、データベース１６に、撮像画像に基づく矩形領域の画像データを示す情報と一致する情報が格納されているか否かを判定する。
【００１３】
このとき、実施形態による画像処理装置１は、矩形領域の画像データを示す情報として、当該画像データから所定の方法で生成したメッセージダイジェスト値を用いる。
【００１４】
ここで、メッセージダイジェストについて、概略的に説明する。メッセージダイジェストとは、ある数値データをハッシュ関数に通すことによって得られる数値データである。ハッシュ関数とは、あるデータが与えられた場合にそのデータを代表する数値を得る操作、または、そのような数値を得るための関数である。ハッシュ関数から得られた数値を、ハッシュ値または単にハッシュという。
【００１５】
ハッシュ関数には、米国のＮＩＳＴ(National  Institute  of  Standards  and  Technology）で標準化されているｆｉｐｓ１８０−２（非特許文献１参照）や、ＲＳＡ暗号の開発者の一人Ronald  Linn  Rivestによって開発されたＭＤ５（Message  Digest  Algorithm  5：非特許文献２参照）などが、電子署名などで幅広く使用されている。なお、ｆｉｐｓ１８０−２は、一般的にはＳＨＡ(Secure  Hash  Algorithm)と呼ばれている。
【００１６】
非特許文献１：SECURE  HASH  STANDARD  (Federal  Information  Processing  Standards  Publication  180-2)  ,  2002  August  1
非特許文献２：The  MD5  Message-Digest  Algorithm  (Request  for  Comments:  1321)  R.  Rivest  ,  April  1992
【００１７】
ハッシュ関数は、その出力であるメッセージダイジェスト値が一様に分布される性質を持っているため、データベースとの照合の一意性が得られる。また、ハッシュ関数により、データが要約され固定長のメッセージダイジェスト値とされるため、膨大な量のデータに対する比較処理を高速に行うことができる。
【００１８】
画像処理装置１において、撮像画像から抽出して正規化した矩形領域の画像データからメッセージダイジェスト値を生成する。一方、データベース１６には、正規化した矩形領域の画像データから生成したメッセージダイジェスト値が予め複数、格納されている。データベース１６に格納される第１のメッセージダイジェスト値と、撮像画像から抽出した矩形領域に基づき生成した第２のメッセージダイジェスト値とを比較して、データベース１６に、第２のメッセージダイジェスト値と一致する第１のメッセージダイジェスト値が格納されているか否かを判定する。
【００１９】
そして、データベース１６に、第２のメッセージダイジェスト値と一致する第１のメッセージダイジェスト値が格納されていると判定した場合に、撮像画像から抽出して正規化した矩形領域の画像データが、データベース１６に格納される第１のメッセージダイジェスト値の元になる矩形領域の画像データと対応する画像データであると決定する。
【００２０】
例えば、撮像画像の所定の矩形領域内に撮像される所望の被写体が取り得る全ての画像パターンによる画像データのメッセージダイジェスト値をそれぞれ生成して、データベース１６に格納する。画像データは、画素単位のデジタル値であるので、所望の被写体が取り得る全ての画像パターンによる画像データの総数は有限であり、当該画像データそれぞれのメッセージダイジェスト値を生成することが可能である。
【００２１】
したがって、撮像画像に基づく、所望の被写体の画像が含まれる矩形領域の画像データから生成した第２のメッセージダイジェスト値と一致する第１のメッセージダイジェスト値を、データベース１６から極めて高い確率で検索することが可能である。
【００２２】
データベース１６に格納されるデータの例について説明する。以下、撮像部１０が車両内の所定位置に設置される車載カメラであって、画像処理装置１が、撮像部１０で撮像して得られた撮像画像に基づき、自車の前方の車両を特定する画像処理を行うものとして説明する。撮像部１０は、例えば車両内のフロントガラスの中央上部に設置される。
【００２３】
先ず、幅ｗ×高さｈ×色数ｎの矩形画像データの全パターンを、車両による画像データのパーンと、非車両による画像データのパターンとに分ける。矩形画像データのパターン数Ｍａは、下記の式（１）で求められる。ここで、矩形画像データの全パターン数Ｍａのうち、車両画像が含まれる矩形画像データ数Ｍｃは、全パターン数Ｍａに対して十分少ないことが容易に推測できる。
Ｍａ＝ｎw×h    …（１）
【００２４】
図２〜図４を用いて、より具体的に説明する。説明のため、幅ｗ＝８画素、高さｈ＝８画素、色数ｎ＝２（白の画素値＝１、黒の画素値＝０）の矩形画像（この場合、正方形）データを考える。この矩形画像データの全パターン数Ｍａは、上述の式（１）から、Ｍａ＝２64である。
【００２５】
この矩形画像データは、図２に例示されるように、８画素×８画素の全ての画素値が０（全黒）の矩形画像データ３００1から、１の画素の画素値が１で他の６３画素の画素値が０の矩形画像データ３００2、…、６３の画素の画素値が１で他の１の画素の画素値が０の矩形画像データ３００3、全ての画素値が１（全白）の矩形画像データ３００4までの、２64通りの矩形画像データとして表される。
【００２６】
この２64通りの矩形画像データのうち、図３に例示されるように、例えば特定の車両の画像に対応する矩形画像データ３００を１つ選択して、当該特定の車両の車両画像３１０を含む車両画像データとし、他の（２64−１）通りの矩形画像データを、全て当該特定の車両に対応しない非車両データとする。
【００２７】
図３に例示される車両画像データである矩形画像データ３００に関し、左上隅の画素を原点とし、水平方向および垂直方向に順次各画素の画素値を並べて、下記の６４ビット長のビット列（式（２）とする）で表すことができる。また、この式（２）のビット列を１６進数で表現したものを、式（３）に示す。
００００００００  ００１１１１００  ００１００１００  ００１００１００  ０１００００１０  ０１００００１０  ０１１１１１１０  ０１００００１０    …（２）
００  ３Ｃ  ２４  ２４  ４２  ４２  ７Ｅ  ４２    …（３）
【００２８】
この式（３）に示される値から、ハッシュ関数のＳＨＡ−１関数およびＭＤ５関数により算出した各メッセージダイジェスト値を、下記の式（４）および式（５）にそれぞれ示す。ハッシュ関数によれば、任意の長さのデータを、固定長のメッセージダイジェスト値で表すことができる。
０Ｅ９３Ｅ７６８１７２Ｃ８４Ａ３Ｄ５３４５ＦＤ７３０３４Ｆ７４０７３７８ＦＤ９Ｃ    …（４）
７１Ｄ７Ｆ８７８ＢＣＦ４３Ｅ５Ｃ０４Ｄ８ＦＡ６３Ａ２１４４ＡＢＣ    …（５）
【００２９】
データベース１６に対して、上述の式（４）および式（５）に示される各メッセージダイジェスト値を、例えば対応する車両の属性情報に関連付けて格納する。車両の属性情報は、例えば当該車両の車種名、水平サイズを含む各仕様などが考えられる。
【００３０】
なお、１の矩形画像データ３００に対して異なる２のハッシュ関数を用いて２のメッセージダイジェスト値を算出するのは、２の異なるデータに対して１のハッシュ関数を用いて算出した２のメッセージダイジェスト値において、僅かではあるが、衝突の可能性があるからである。そのため、同一のデータに対して複数の異なるハッシュ関数を用いてそれぞれメッセージダイジェスト値を算出してデータベース１６に保持することで、照合の一意性をより確実にする。
【００３１】
なお、上述では、特定の車両の画像に対応する矩形画像データを１つ選択するように説明したが、これはこの例に限定されない。撮像画像には、電気的なノイズや画像的なノイズが含まれる可能性がある。一方、メッセージダイジェスト値は、連続性を持たない値であるため、データベース１６に格納されるメッセージダイジェスト値の元になる矩形画像データに対して、撮像画像から抽出した矩形画像データが１ビットでも異なる場合、当該矩形画像データからは、データベース１６に格納されるメッセージダイジェスト値とは全く異なる値が算出されることになる。
【００３２】
すなわち、撮像画像から抽出した矩形画像データに、データベース１６に格納されるメッセージダイジェスト値の元になる矩形画像データに対するブレがあると、的確な検索結果が得られないことになる。
【００３３】
そのため、図４（ａ）および図４（ｂ）に例示されるように、本来の車両画像３１０に対してノイズ３２０、３２０、…を加えた矩形画像データ３１１および３１２から算出した各メッセージダイジェスト値を、データベース１６に対してさらに格納する。ノイズ３２０、３２０、…を加えた矩形画像データ３１１や３１２は、当該矩形画像データ３１１や３１２から車両画像３１０を認識可能な全てのパターンについて、作成し、データベース１６に格納する。
【００３４】
このノイズ３２０、３２０、…が加えられた矩形画像データ３１１および３１２に基づく各メッセージダイジェスト値を、ノイズを含まない矩形画像データ３００に基づくメッセージダイジェスト値と同等に扱う。これにより、撮像画像から抽出した矩形画像データにおけるブレに対応することができる。
【００３５】
なお、ノイズ３２０、３２０、…を含む矩形画像データ３１１、３１２が車両画像か非車両画像であるかは、例えば人が目視で判別することが考えられる。人が目視で車両画像であると判別した矩形画像データについてメッセージダイジェスト値を算出し、データベース１６に格納する。これに限らず、ノイズ３２０の割合やノイズ３２０の出現位置などに基づき自動判定してもよい。
【００３６】
上述では、メッセージダイジェスト値を算出する矩形画像データのサイズを、８画素×８画素、各画素のビット深度が１ビット（色数＝２）であるものとして説明したが、これはこの例に限定さない。すなわち、当該矩形画像データのサイズおよび色数は、画像処理装置１の処理能力や、データベース１６の容量などに応じて適切な値を設定することができる。矩形画像データのサイズおよび色数は、それぞれ値が大きい程、高い効果が得られる。
【００３７】
また、データベース１６には、あらゆる車種の車両画像についてメッセージダイジェスト値を算出し、格納しておくことが望ましい。これに限らず、特定地域における車種の出現頻度などの統計情報に基づき、データベース１６に格納する車種を限定してもよい。
【００３８】
図１の説明に戻り、画像処理装置１において、取得部１１は、撮像部１０から一定のフレームレート（例えば３０フレーム／毎秒）で出力される撮像画像を、所定間隔で１フレームずつ取得する。
【００３９】
検出部１２は、取得部１１で取得した１フレームの撮像画像に対して水平エッジの検出処理を施す。例えば、検出部１２は、撮像画像に対してゾーベルフィルタ処理を施して水平エッジを検出し、撮像画像に基づく水平エッジ画像を出力する。
【００４０】
抽出部１３は、検出部１２から出力された水平エッジ画像に基づき、車両画像の候補を抽出する。より具体的には、抽出部１３は、検出部１２から出力された水平エッジ画像から、垂直方向の位置に応じて決まる所定の幅に収まる水平エッジを抽出する。すなわち、車載カメラによる撮像画像において、撮像画像の上方向が遠距離側、下方向が近距離側となり、水平方向の幅が同一の被写体の水平エッジ画像内での幅は、撮像画像の上方向でより狭くなり、下方向でより広くなる。そのため、水平エッジ画像での垂直方向の位置に応じて、水平エッジ幅に対して、車両から被写体までの距離に応じた重み付けを行う。
【００４１】
抽出部１３は、上述したようにして、検出された水平エッジを底辺とした、当該水平エッジ画像での垂直方向の位置に応じた所定高さの矩形領域を決定する。
【００４２】
算出部１４は、取得部１１で取得された撮像画像から、抽出部１３で抽出された矩形領域内の画像を、車両候補の画像として取り出す。算出部１４は、撮像画像から取り出した車両候補の画像の画像データのフォーマットを、データベース１６に格納される各メッセージダイジェスト値の元となる矩形画像データと同じフォーマットに変換する。すなわち、算出部１４は、車両候補画像の画像データを、幅ｗ、高さｈおよび色数ｎの画像データに変換し、車両候補画像データをデータベース１６に格納される矩形画像データに対して正規化する。
【００４３】
そして、算出部１４は、正規化された車両候補画像の画像データに対してハッシュ関数を用い、図２および図３で説明したようにしてメッセージダイジェスト値を算出する。このとき、算出部１４は、複数の異なるハッシュ関数を用いて、それぞれメッセージダイジェスト値を算出する。例えば、算出部１４は、ＭＤ５関数およびＳＨＡ−１関数の２のハッシュ関数を用いて、１の車両候補画像データから互いに異なる２のメッセージダイジェスト値を算出する。
【００４４】
比較部１５は、算出部１４で算出されたメッセージダイジェスト値と、データベース１６に格納されている各メッセージダイジェスト値とを比較し、データベース１６に格納されている各メッセージダイジェスト値の中に、算出部１４で算出されたメッセージダイジェスト値と一致する値があるか否かを判定する。算出部１４で算出されたメッセージダイジェスト値と一致するメッセージダイジェスト値がデータベース１６に格納されている場合、算出部１４で算出されたメッセージダイジェスト値の元の車両候補画像データは、車両画像データであると判断できる。
【００４５】
データベース１６において、各メッセージダイジェスト値に対して、上述した、当該メッセージダイジェスト値の元の車両画像の車両の属性情報が関連付けられている場合、比較部１５の比較結果により判断された車両画像データに対応する車両の車種名や車幅の情報を取得することができる。また、取得された車幅の情報と、抽出部１３で抽出された当該車両画像データによる画像の水平エッジ幅とに基づき、当該車両画像データの車両の、自車との距離を求めることができる。
【００４６】
ここで、算出部１４において１の車両候補画像の画像データに対して複数の異なるメッセージダイジェスト値を算出した場合、これら複数の異なるメッセージダイジェスト値それぞれについて、データベース１６内の対応する種類のメッセージダイジェスト値との比較を行う。そして、比較の結果、複数の異なるメッセージダイジェスト値の全てが、データベース１６内の対応する種類のメッセージダイジェスト値と一致した場合に、算出部１４で算出されたメッセージダイジェスト値の元の矩形画像データは、車両画像データであると判断できる。
【００４７】
図５は、実施形態に係る画像処理装置１における車両候補画像抽出の一例の処理を示すフローチャートである。この図５のフローチャートと、図６〜図９とを用いて、実施形態に係る画像処理をより詳細に説明する。
【００４８】
先ず、ステップＳ１００で、取得部１１は、撮像部１０から出力された１フレームの撮像画像データを取得する。図６は、取得部１１が取得した撮像画像データによる撮像画像１００の例を示す。なお、図６では、説明のため、撮像画像１００が２値の輪郭画像として示されている。図６の例では、撮像画像１００において、道路１０１と、車両１０２と、標識１０３と、標識１０３を支持する支柱１０４とが被写体画像として含まれている。
【００４９】
次のステップＳ１０１で、検出部１２は、取得部１１が取得した撮像画像１００から水平エッジを検出し、検出された水平エッジによる水平エッジ画像を生成する。図７は、撮像画像１００から検出した水平エッジによる水平エッジ画像１１０の例を示す。
【００５０】
なお、図７において、水平エッジ画像１１０がＹ軸方向にＨライン（画素）、Ｘ軸方向にＷ画素であるものする。したがって、水平エッジ画像１１０において、左上隅を原点の座標(０，０)としたとき、右下隅が座標(Ｈ−１，Ｗ−１)となる。また、撮像画像１００からフィルタ処理などで水平エッジを検出する場合、検出された水平エッジ部分の画素値が例えば１（白画素）、水平エッジ部分以外の画素値が例えば０（黒画素）となるが、図７および後述する図８および図９では、説明のため階調を反転させ、黒部分が検出された水平エッジ部分を示している。
【００５１】
図７の例では、道路１０１の縁部分１１１ａおよび１１１ｃと、センターライン部分１１１ｂにおいて、水平エッジが検出されている。また、車両１０２の輪郭部分１１２において水平エッジが検出されている。さらに、標識１０３の上下および文字の輪郭部分１１３において水平エッジが検出されている。支柱１０４の基部１１４において水平エッジが検出されている。
【００５２】
次のステップＳ１０２は、ステップＳ１０９との間の処理を、水平エッジ画像１１０のＹ軸方向に、Ｙ座標「０」〜Ｙ座標「Ｈ−１」まで繰り返すことを示す。
【００５３】
ステップＳ１０３で、抽出部１３は、第ｉラインにおいて車両画像の候補と判定できる水平（Ｘ軸方向）エッジの最小幅Ｗminおよび最大幅Ｗmaxを算出する。撮像部１０による撮像角、すなわち撮像方向における水平と撮像部１０の光軸とのなす撮像角が固定であれば、被写体のＸ軸方向の幅は、撮像画像の底辺から消失点のＹ軸方向の高さまでの範囲で、被写体の撮像画像内のＹ座標（ライン）をパラメータとする関数となる。なお、撮像部１０は、撮像角が０°となるように設置することが望ましい。
【００５４】
そこで、抽出部１３は、第ｉラインで、当該第ｉラインのＹ座標Ｈiをパラメータとして、そのＹ座標Ｈiにおいて車両と判定することができる水平エッジの最小幅Ｗminおよび最大幅Ｗmaxを、Ｙ座標Ｈi（ライン位置）に応じて動的に算出する。最小幅Ｗminおよび最大幅Ｗmaxは、例えば次式（６）および式（７）により求めることができる。なお、式（６）および式（７）において、値ｐおよび値ｑは、所定に設定された定数であって、ｐ＜ｑである。
Ｗmin＝(Ｈi／Ｈ)×ｐ    …（６）
Ｗmax＝(Ｈi／Ｈ)×ｑ    …（７）
【００５５】
図８は、Ｙ座標Ｈiにおいて算出された最小幅Ｗminおよび最大幅Ｗmaxの例を示す。この図８から分かるように、Ｙ座標Ｈiにおいて、検出された水平エッジの幅が最小幅Ｗmin以上、且つ、最大幅Ｗmax以下であれば、この水平エッジが車両画像を示す矩形領域の底辺である可能性がある。
【００５６】
ステップＳ１０４で、抽出部１３は、第ｉラインにおいて、画素値が水平エッジを示す画素が連続する長さ（水平エッジ幅）と位置とを求める。この水平エッジ幅の開始点のＸ軸上の位置（座標）を、開始位置ｘstとする。
【００５７】
次のステップＳ１０５で、抽出部１３は、ステップＳ１０４で取得した水平エッジ幅がステップＳ１０３で算出した最小幅Ｗmin以上であるか否かを判定する。若し、取得した水平エッジ幅が最小幅Ｗmin未満であると判定された場合、処理がステップＳ１０９に移行され、次の第（ｉ＋１）ラインについて処理がなされる。
【００５８】
一方、ステップＳ１０５で、ステップＳ１０４で取得した水平エッジ幅が最小幅Ｗmin以上であると判定された場合、処理はステップＳ１０６に移行される。ステップＳ１０６では、抽出部１３は、取得した水平エッジ幅が最大幅Ｗmax以下であるか否かを判定する。若し、水平エッジ幅が最大幅Ｗmax以下であると判定された場合、処理がステップＳ１０７に移行される。
【００５９】
ステップＳ１０７で、抽出部１３は、ステップＳ１０１で水平エッジ画像１１０を検出した元の撮像画像１００における、第ｉラインにおける開始位置ｘstから、「開始位置Ｘst＋水平エッジ幅」までを底辺とする、所定高さの矩形領域内の画像を、車両候補画像とする。そして、処理はステップＳ１０９からステップＳ１０２に戻され、次の第（ｉ＋１）ラインについて処理がなされる。
【００６０】
一方、ステップＳ１０６で、水平エッジの幅が最大幅Ｗmaxを超えると判定された場合、処理がステップＳ１０８に移行される。ステップＳ１０８で、抽出部１３は、撮像画像１００における、第ｉラインにおける開始位置ｘstから、「開始位置ｘst＋最大幅Ｗmax」までを底辺とする、所定高さの矩形領域内の画像を、車両候補画像とする。そして、処理はステップＳ１０９からステップＳ１０２に戻され、次の第（ｉ＋１）ラインについて処理がなされる。
【００６１】
なお、ステップＳ１０４で第ｉラインから複数の水平エッジ幅が取得された場合には、ステップＳ１０５〜ステップＳ１０７またはステップＳ１０８の処理を、取得された水平エッジそれぞれについて実行する。
【００６２】
図９を用いて、実施形態に係る車両候補画像の抽出処理について、より具体的に説明する。図９は、図５のフローチャートに従い水平エッジ画像１１０から抽出された各矩形領域の例を抜粋して示す。図９から、画像の下部になるほど矩形領域のサイズが大きく取られることが分かる。
【００６３】
図９の例では、標識１０３の輪郭部分１１３における上端側の水平エッジに関して、図中の矩形領域２００の左端から矩形領域２０１の右端までの水平エッジが存在する。この場合、当該水平エッジのライン位置に応じた水平エッジ幅の最大値Ｗmaxに制限され、最大値Ｗmaxを底辺の幅とする左端側の矩形領域２００から右端側の矩形領域２０１まで、画素単位で車両候補画像を示す矩形領域がそれぞれ検出される。
【００６４】
標識１０３の輪郭部分１１３における下端側の水平エッジについても同様に、当該水平エッジのライン位置に応じた最大値Ｗmaxを底辺の幅とする、左端側の矩形領域２０２から右端側の矩形領域２０３まで、画素単位で車両候補画像を示す矩形領域がそれぞれ検出される。
【００６５】
図９では、説明のため、矩形領域２００および右端側の矩形領域２０１の間に、Ｘ軸方向に画素単位でずれて検出される各水平エッジに基づく矩形領域を、左端および右端の矩形領域２００および２０１で代表させて示している。
【００６６】
図９において領域２０４内に示される支柱１０４の基部１１４については、水平エッジの幅がライン位置に応じた最小幅Ｗminに満たないため、車両候補画像を示す矩形領域としては検出されない。
【００６７】
車両１０２の輪郭部分１１２の上端側の水平エッジは、幅がライン位置に応じた最大値Ｗmaxおよび最小値Ｗminの間に含まれ、当該水平エッジを底辺とする矩形領域２０６が車両候補画像を示す矩形領域として検出される。また、当該輪郭部分１１２の下端側の水平エッジについても、幅がライン位置に応じた最大値Ｗmaxおよび最小値Ｗminの間に含まれ、当該水平エッジを底辺とする矩形領域２０５が車両候補画像を示す矩形領域として検出される。
【００６８】
なお、矩形領域２０５および２０６に関し、実際には、ライン位置に応じた最大幅Ｗmax以下、且つ、最小幅Ｗmin以上の条件を満たす水平エッジ幅がＸ軸方向に画素単位で複数、連続的に検出される可能性がある。図９では、説明のため、これら複数検出された場合の水平エッジ幅による矩形領域を、それぞれ矩形領域２０５および２０６で代表させて示している。
【００６９】
図１０および図１１を用いて、上述のようにして水平エッジ画像１１０から検出した各矩形領域から車両画像を抽出する一例の処理について説明する。以下の処理では、撮像画像１００の画像データから、水平エッジ画像１１０から検出した矩形領域に対応する車両候補画像データ２０５’を抽出し（図１０の左側参照）、抽出した車両候補画像データ２０５’からハッシュ関数を用いてメッセージダイジェスト値２１０ａおよび２１０ｂを算出する（図１０の右側参照）。
【００７０】
この例では、データベース１６に対して、ハッシュ関数であるＭＤ５関数と、ＳＨＡ−１関数とを用いて２種類のメッセージダイジェスト値を格納している。そこで、車両候補画像データ２０５’に対しても、これらＭＤ５関数と、ＳＨＡ−１関数とを用いて２種類のメッセージダイジェスト値２１０ａおよび２１０ｂを算出し、データベース１６に格納されるメッセージダイジェスト値に一致するものがあるか否かを判定する。
【００７１】
図１１は、上述のようにして水平エッジ画像１１０から検出した各矩形領域から車両画像を抽出する一例の処理を示すフローチャートである。ステップＳ２００は、ステップＳ２０５までの処理を、検出された矩形領域数分繰り返すことを示す。例えば、水平エッジ画像１１０において、検出された各矩形領域２００〜２０６に対応する撮像画像１００における各画像すなわち各車両候補画像に対して所定の順序で番号を付し、ｊ番目の車両候補画像の画像データに対して処理を行う。
【００７２】
ステップＳ２０１で、抽出部１３は、ｊ番目の車両候補画像データのサイズおよび色数の変換を行う。すなわち、抽出部１３は、ステップＳ２０１で、処理対象の車両候補画像データのサイズおよび色数を、データベース１６に格納されているメッセージダイジェスト値の元になる車両画像データのサイズおよび色数に合わせるように変換する、正規化処理を行う。
【００７３】
一例として、データベース１６に格納されるメッセージダイジェスト値の元になる車両画像データが、サイズを２４画素×２４画素、ビット深度が８ビットのグレイスケール（２５６階調）であるとする。ｊ番目の車両候補画像データのサイズが４８画素×４８画素、ビット深度が１６ビット（６５５３６色）である場合、例えば、当該車両候補画像データに対して間引き処理や補間処理を行なってサイズを２４画素×２４画素に縮小し、その後、色情報を取り除いてグレイスケールとし、さらに階調処理を施してビット深度を８ビットとする。ｊ番目の車両候補画像データが変換されて正規化されたら、処理がステップＳ２０２に移行される。
【００７４】
ステップＳ２０２で、算出部１４は、ステップＳ２０１で正規化されたｊ番目の車両候補画像データから、所定のハッシュ関数を用いてメッセージダイジェスト（ＭＤ）値を算出する。このとき、データベース１６において、１の車両画像データに対して複数種類のハッシュ関数を用いて算出された複数のメッセージダイジェスト値が格納されている場合、算出部１４は、ｊ番目の車両候補画像データに対してこの複数種類のハッシュ関数を用いて、複数のメッセージダイジェスト値を算出する。
【００７５】
上述した図１０の左側は、図９の矩形領域２０５に対応する、撮像画像１００における車両候補画像の画像データを正規化した車両候補画像データ２０５’の例を示す。このように、車両候補画像データ２０５’は、正規化により、データベース１６に格納されるメッセージダイジェスト値の元になる車両画像データと同じフォーマットの、サイズが２４画素×２４画素、ビット深度が８ビットのグレイスケールとされた画像データとなる。この車両候補画像データ２０５’から、それぞれハッシュ関数であるＭＤ５関数とＳＨＡ−１関数とで、各メッセージダイジェスト値２１０ａおよび２１０ｂを算出する。
【００７６】
メッセージダイジェスト値が算出されたら、処理がステップＳ２０３に移行される。ステップＳ２０３で、比較部１５は、ステップＳ２０２で算出されたメッセージダイジェスト値２１０ａおよび２１０ｂを、データベース１６に格納されている、それぞれ対応するハッシュ関数で算出された各メッセージダイジェスト値と比較する。そして、比較部１５は、データベース１６に、算出されたメッセージダイジェスト値２１０ａおよび２１０ｂと一致するメッセージダイジェスト値が格納されているか否かを判定する。
【００７７】
若し、算出されたメッセージダイジェスト値２１０ａおよび２１０ｂと一致するメッセージダイジェスト値がデータベース１６に格納されていないと判定した場合、当該ｊ番目の車両候補画像データは非車両の画像データであるとされる。この場合、処理がステップＳ２０５からステップＳ２００に戻され、次の（ｊ＋１）番目のデータに対して同様の処理がなされる。
【００７８】
一方、算出されたメッセージダイジェスト値２１０ａおよび２１０ｂと一致するメッセージダイジェスト値がデータベース１６に格納されていると判定した場合、処理がステップＳ２０４に移行される。比較部１５は、ステップＳ２０４で、各メッセージダイジェスト値２１０ａおよび２１０ｂの元となる、ｊ番目の車両候補画像データを、車両の画像データであると特定する。そして、処理がステップＳ２０５からステップＳ２００に戻され、次の（ｊ＋１）番目のデータに対して同様の処理がなされる。
【００７９】
以上説明したように、実施形態では、撮像画像から検出した水平エッジによる水平エッジ画像のＹ軸方向の位置（ライン位置）に応じた水平エッジ幅を底辺とする矩形領域の画像を、車両候補画像としているため、車両画像の誤検出を抑制することができる。
【００８０】
また、実施形態では、データベースに予めあらゆる車種の車両画像それぞれからハッシュ関数を用いて算出した各メッセージダイジェスト値を格納しておく。そして、撮像画像から検出された車両画像をＹ軸方向の位置に応じて正規化し、正規化された車両画像からハッシュ関数を用いてメッセージダイジェスト値を算出し、算出されたメッセージダイジェスト値を、データベースに格納される各メッセージダイジェスト値と比較するようにしている。そのため、極めて高い確率で、車両画像を特定することができる。
【００８１】
実施形態による画像処理装置１は、コンピュータなど一般的な情報処理装置を用いて実現可能である。図１２は、実施形態による画像処理装置１を適用可能な情報処理装置４００の一例の構成を示す。
【００８２】
図１２に示される情報処理装置４００において、バス４０１に対してＣＰＵ４０２、ＲＯＭ(Read  Only  Memory)４０３、ＲＡＭ(Random  Access  Memory)４０４および表示部４０５が接続される。また、バス４０１に対して、記憶部４０７、入出力Ｉ／Ｆ４０８、通信Ｉ／Ｆ４１０および撮像部４２０が接続される。記憶部４０７は、データを不揮発に記憶することが可能な記憶媒体であって、例えばフラッシュメモリなどの不揮発性の半導体メモリである。これに限らず、記憶部４０７としてハードディスクドライブを用いてもよい。
【００８３】
ＣＰＵ４０２は、ＲＯＭ４０３および記憶部４０７に記憶されるプログラムに従い、ＲＡＭ４０４をワークメモリとして用いて、この情報処理装置４００の全体を制御する。表示部４０５は、ＣＰＵ４０２により生成された表示制御信号に基づく画面を表示デバイスに対して表示する。
【００８４】
記憶部４０７は、上述のＣＰＵ４０２が実行するためのプログラムや各種データが格納される。入出力Ｉ／Ｆ４０８は、外部からのデータの入力や、外部に対するデータ出力を行う。例えば、入出力Ｉ／Ｆ４０８は、ユーザ入力を受け付ける入力デバイスを含むことができる。この入力デバイスは、例えば表示デバイスと一体的に構成され、押圧位置に応じた制御信号を出力するようにした所謂タッチパネルを適用することができる。これに限らず、入力デバイスとして、ユーザ操作を受け付ける操作子を設けてもよい。
【００８５】
また、入出力Ｉ／Ｆ４０８として、例えば、ＵＳＢ(Universal  Serial  Bus)やＩＥＥＥ１３９４(Institute  of  Electrical  and  Electronics  Engineers  1394)などによる、外部からのデータの入力を行うインタフェースを適用することができる。
【００８６】
通信Ｉ／Ｆ４１０は、所定のプロトコルを用いて、ＬＡＮ(Local  Area  Network)やインターネットといった外部のネットワークと通信を行う。また、撮像部４２０は、光学系と、撮像素子と、光学系および撮像素子の制御駆動回路とを有し、撮像素子から出力される信号に所定の処理を施して画像データとして出力する。
【００８７】
このような構成において、記憶部４０７内にデータベース１６を構成し、各メッセージダイジェスト値や、各メッセージダイジェスト値に対応する属性情報などを予め格納しておく。また、撮像部４２０は、例えば車内の所定位置に固定させて設置しておく。さらに、情報処理装置４００に対して、実施形態の画像処理を実行するためのプログラムを予めインストールしておく。
【００８８】
撮像部４２０で撮像されて得られた撮像画像１００は、バス４０１を介してＣＰＵ４０２に供給される。ＣＰＵ４０２は、プログラムに従い上述した取得部１１、検出部１２、抽出部１３および算出部１４の処理を行い、撮像画像１００に基づく車両候補画像データからメッセージダイジェスト値を算出する。そして、ＣＰＵ４０２は、プログラムに従い上述した比較部１５の処理を行い、記憶部４０７内のデータベース１６に対し、算出部１４で算出されたメッセージダイジェスト値と一致するメッセージダイジェスト値が格納されているか否かを判定する。
【００８９】
実施形態による画像処理装置１における取得部１１、検出部１２、抽出部１３、算出部１４および比較部１５は、ＣＰＵ４０２上で動作するプログラムによって実現される。実施形態のプログラムは、通信Ｉ／Ｆ４１０にネットワークを介して接続されたコンピュータ上に格納し、当該ネットワーク経由でダウンロードさせることにより提供するように構成される。また、実施形態のプログラムを、当該ネットワーク経由で提供または配布するように構成してもよい。このプログラムを、ＲＯＭ４０３に予め記憶させて提供することもできる。
【００９０】
これに限らず、実施形態のプログラムは、インストール可能な形式または実行可能な形式のファイルでＣＤ、ＤＶＤなどのコンピュータで読み取り可能な記録媒体に記録して提供してもよい。この場合、例えば入出力Ｉ／Ｆ４０８に接続された外部のドライブ装置を介して、当該プログラムが情報処理装置４００に供給される。
【００９１】
実施形態のプログラムは、例えば、上述した各部（取得部１１、検出部１２、抽出部１３、算出部１４および比較部１５）を含むモジュール構成となっており、実際のハードウェアとしてはＣＰＵ４０２が例えば記憶部４０７から当該プログラムを読み出して実行することにより上記各部が主記憶装置（例えばＲＡＭ４０４）上にロードされ、各部が主記憶装置上に生成されるようになっている。
【００９２】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【符号の説明】
【００９３】
１  画像処理装置
１０  撮像部
１１  取得部
１２  検出部
１３  抽出部
１４  算出部
１５  比較部
１６  データベース
１００  撮像画像
１１０  水平エッジ画像
２１０ａ，２１０ｂ  メッセージダイジェスト値
３００，３１１，３１２  矩形画像データ
３１０  車両画像
３２０  ノイズ
【図１】
2014021510.tif 000003
【図２】
2014021510.tif 000004
【図３】
2014021510.tif 000005
【図４】
2014021510.tif 000006
【図５】
2014021510.tif 000007
【図１１】
2014021510.tif 000008
【図１２】
2014021510.tif 000009
【図６】
2014021510.tif 000010
【図７】
2014021510.tif 000011
【図８】
2014021510.tif 000012
【図９】
2014021510.tif 000013
【図１０】
2014021510.tif 000014