(57)【特許請求の範囲】
【請求項１】
ソナー（２０〜２３）またはレーダー（３０）の少なくとも何れかと車載カメラ（１０）とを備えた車両（１）に搭載されて、該車載カメラで撮影した撮影画像を解析することにより、該撮影画像に写った歩行者を検出する歩行者検出装置（１００）であって、
前記撮影画像に写った前記歩行者の形状が備える複数の特徴を数値化して記述した識別辞書を、該数値を異ならせて複数種類記憶している識別辞書記憶部（１０１）と、
前記識別辞書記憶部に記憶されている前記複数種類の識別辞書について、前記撮影画像の中で該識別辞書に記述された特徴を有する箇所を探索することにより、該撮影画像に写った前記歩行者を検出して、該歩行者が検出された検出位置を、該識別辞書毎に検出結果として蓄積する検出結果蓄積部（１０２）と、
前記車両の周辺に存在する前記歩行者を前記ソナーまたは前記レーダーの少なくとも何れかを用いて検出し、該歩行者が検出された歩行者位置を蓄積する歩行者位置蓄積部（１０３）と、
前記歩行者位置蓄積部に蓄積された前記歩行者位置と、前記検出結果蓄積部に前記検出結果として前記識別辞書毎に蓄積された前記歩行者の検出位置とを比較することにより、該検出位置が該歩行者位置と整合する前記識別辞書を検出識別辞書として選択する識別辞書選択部（１０４）と、
前記撮影画像の中で前記検出識別辞書に記述された特徴を有する箇所を探索することにより、該撮影画像中の前記歩行者を検出する歩行者検出部（１０５）と
を備える歩行者検出装置。
【請求項２】
請求項１に記載の歩行者検出装置であって、
前記検出結果蓄積部は、前記撮影画像中で前記歩行者が検出された位置に基づいて、前記車両から該歩行者までの距離に関する情報を取得し、該歩行者までの距離が所定の閾値距離以内であった場合に（Ｓ２０６：ｙｅｓ、Ｓ２５６：ｙｅｓ）、該歩行者の検出位置を前記検出結果として蓄積する蓄積部である
歩行者検出装置。
【請求項３】
請求項１または請求項２に記載の歩行者検出装置であって、
前記検出識別辞書による前記歩行者の検出位置と、前記ソナーまたは前記レーダーの少なくとも何れかを用いて検出した前記歩行者位置とを蓄積して、該検出識別辞書の検出精度を評価する検出精度評価部（１０６）と、
前記検出精度評価部による前記評価の結果に基づいて、前記検出識別辞書の再選択の要否を判断する再選択要否判断部（１０７）と
を備え、
前記検出結果蓄積部は、前記再選択要否判断部が前記検出識別辞書の再選択を要すると判断した場合に（Ｓ１０４：ｙｅｓ）、前記識別辞書毎の前記検出結果を蓄積する蓄積部である
歩行者検出装置。
【請求項４】
請求項１ないし請求項３の何れか一項に記載の歩行者検出装置であって、
前記歩行者検出部は、
前記撮影画像中で探索しようとする箇所に写った対象画像を、前記歩行者の形状が備える前記複数の特徴について数値化することにより、該対象画像から複数の特徴量を抽出する特徴量抽出部（Ｓ２０２、Ｓ２５２）と、
前記識別辞書に記述された前記複数の数値と、前記対象画像から抽出された前記複数の特徴量との内積値を算出する内積値算出部（Ｓ２０３、Ｓ２５３）と
を備え、
前記内積値算出部によって得られた前記内積値が所定閾値を超える場合に（Ｓ２０４：ｙｅｓ、Ｓ２５４：ｙｅｓ）、前記対象画像に前記歩行者が写っていると判断することによって該歩行者を検出する検出部である
歩行者検出装置。
【請求項５】
請求項４に記載の歩行者検出装置であって、
前記歩行者検出部による前記歩行者の検出結果の正誤を、前記ソナーまたは前記レーダーの少なくとも何れかを用いて確認する検出結果確認部（Ｓ６０３、Ｓ６０５）と、
前記歩行者検出部によって前記歩行者が検出され、且つ、該検出の結果が前記検出結果確認部によって正しいと判断された場合に、該歩行者が検出された前記対象画像から得られた前記特徴量を正検知特徴量として蓄積する正検知特徴量蓄積部（Ｓ６０４）と、
前記歩行者検出部によって前記歩行者が検出され、且つ、該検出の結果が前記検出結果確認部によって正しくないと判断された場合に、該歩行者が検出された前記対象画像から得られた前記特徴量を誤検知特徴量として蓄積する誤検知特徴量蓄積部（Ｓ６０６）と、
前記正検知特徴量に対しては前記内積値算出部によって得られる前記内積値が増加し、前記誤検知特徴量に対しては前記内積値算出部によって得られる前記内積値が減少するように、前記検出識別辞書の前記複数の数値を学習することによって、学習識別辞書を生成する学習識別辞書生成部（Ｓ６５０）と、
前記学習識別辞書を前記識別辞書として前記識別辞書記憶部に追加する学習識別辞書追加部（Ｓ７００）と
を備える歩行者検出装置。
【請求項６】
請求項５に記載の歩行者検出装置であって、
前記識別辞書記憶部に記憶されている前記識別辞書の種類数が所定の上限数に達するか否かを判断し、該上限数に達する場合には、前記識別辞書記憶部に記憶されている前記学習識別辞書の中で前記学習識別辞書追加部が最も古いタイミングで追加した前記学習識別辞書を削除する識別辞書削除部（Ｓ７０６）を備える
歩行者検出装置。
【請求項７】
ソナーまたはレーダーの少なくとも何れかと車載カメラとを備えた車両に適用されて、該車載カメラで撮影した撮影画像を解析することにより、該撮影画像に写った歩行者を検出する歩行者検出方法であって、
前記撮影画像に写った前記歩行者の形状が備える複数の特徴を数値化して記述した複数種類の識別辞書について、前記撮影画像の中で該識別辞書に記述された特徴を有する箇所を探索することにより、該撮影画像に写った前記歩行者を検出して、該歩行者が検出された検出位置を、該識別辞書毎に検出結果を蓄積する検出結果蓄積工程（Ｓ２００、Ｓ２５０）と、
前記車両の周辺に存在する前記歩行者を前記ソナーまたは前記レーダーの少なくとも何れかを用いて検出し、該歩行者が検出された歩行者位置を蓄積する歩行者位置蓄積工程（Ｓ１０１、Ｓ１５１）と、
前記歩行者位置蓄積工程で蓄積された前記歩行者位置と、前記検出結果蓄積工程で前記検出結果として前記識別辞書毎に蓄積された前記歩行者の検出位置とを比較することにより、該検出位置が該歩行者位置と整合する前記識別辞書を検出識別辞書として選択する識別辞書選択工程（Ｓ５００）と、
前記撮影画像の中で前記検出識別辞書に記述された特徴を有する箇所を探索することにより、該撮影画像中の前記歩行者を検出する歩行者検出工程（Ｓ２００、Ｓ２５０）と
を備える歩行者検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車載カメラで得られた撮影画像を解析することによって、撮影画像に写った歩行者を検出する技術に関する。
【背景技術】
【０００２】
今日の車両では、安全な走行を確保するために、あるいは運転者の運転操作を支援するために、様々な技術を用いて車両の周辺の状況を監視している。その中の代表的な技術としては、車載カメラから得られた撮影画像を解析して、撮影画像に写った歩行者を検出する技術が知られている。
【０００３】
この撮影画像に写った歩行者を検出する際には、検出しようとする歩行者の主に外形形状に着目して、歩行者の特徴を記憶しておき、撮影画像中で歩行者の特徴を有する箇所を探索する。そして、歩行者の特徴を有する箇所が見つかったら、その箇所に歩行者が写っていると判断する（例えば、特許文献１）。
【０００４】
ここで、撮影画像中の歩行者は、歩行者が単独で写っているわけではない。従って、撮影画像中で歩行者の特徴を有する箇所を探索する際には、歩行者の周囲も写った画像から、全体として歩行者の特徴を有する箇所を探索することになる。
そして、撮影画像に写った歩行者の周囲の状況は、撮影時の環境要因によって変化する。例えば、天気が良い時に撮影した場合には、歩行者の影が歩行者と一緒に写り込む。また、撮影した季節や時刻によって、影の長さや、背景とのコントラストが変化する。更には、季節や地域によって服装が変わるので、歩行者の外形形状自体も変化する。
そこで、撮影画像中の歩行者を探索する際には、歩行者の特徴を完全には有していなくても、大まかに歩行者の特徴を有していれば、その箇所には歩行者が写っているものと判断することとしている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１２−２２０３７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、上述した従来の技術では、歩行者の検出精度を改善することには限界があるという問題があった。これは、次のような理由による。先ず、歩行者の検出精度を向上させるためには、歩行者の検出率（撮影画像に写った歩行者の総数に対する歩行者の検出数の比率）と、正答率（歩行者として検出した画像に本当に歩行者が写っている比率）とを同時に向上させる必要がある。
当然ながら、環境要因の変化で歩行者が検出できなくなったのでは検出率を向上させることができない。そこで、歩行者の特徴を有するか否かの判断を緩やかにして、環境要因が変化しても歩行者が検出できるようにすると、撮影画像中でたまたま歩行者に近い形に見える箇所を、歩行者として誤検出してしまうので正答率が低下する。逆に、誤検出による正答率の低下を回避するために、歩行者の特徴を有するか否かの判断を厳しくすると、今度は、環境要因の変化による影響で歩行者を検出することが困難となるので、検出率が低下してしまう。このように、歩行者の検出精度がある程度まで改善された後は、歩行者の検出率と正答率とが二律背反の関係となってしまうために、それ以上に歩行者の検出精度を改善することが難しいという問題があった。
【０００７】
この発明は、従来技術が有する上述した課題に鑑みてなされたものであり、撮影画像中の歩行者を検出する際の検出精度を改善することが可能な技術の提供を目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決するために本発明の歩行者検出装置および歩行者検出方法は、複数種類の識別辞書を記憶しておき、それぞれの識別辞書について、歩行者の検出位置を検出結果として蓄積しておく。また、ソナーまたはレーダーによる歩行者の検出結果も蓄積しておく。そして、複数種類の識別辞書の中から、ソナーまたはレーダーによる検出結果と、最も整合する識別辞書を選択して、選択した識別辞書を用いて撮影画像中の歩行者を検出する。
【０００９】
こうすれば、環境要因が変化しても、複数種類の識別辞書から最も適した識別辞書を選択して、撮影画像中の歩行者を検出することができるので、歩行者の検出精度を改善することが可能となる。
【００１０】
尚、本発明の歩行者検出装置および歩行者検出方法は、次のような態様で把握することも可能である。すなわち、
ソナー（２０〜２３）またはレーダー（３０）の少なくとも何れかと車載カメラ（１０）とを備えた車両（１）に搭載されて、該車載カメラで撮影した撮影画像を解析することにより、該撮影画像に写った歩行者を検出する歩行者検出装置（１００）であって、
前記撮影画像に写った前記歩行者の形状が備える複数の特徴を数値化して記述した識別辞書を記憶している識別辞書記憶部（１０１）と、
前記撮影画像中で探索しようとする箇所に写った対象画像を、前記歩行者の形状が備える前記複数の特徴について数値化することにより、該対象画像から複数の特徴量を抽出する特徴量抽出部（Ｓ２０２、Ｓ２５２）と、
前記識別辞書に記述された前記複数の数値と、前記対象画像から抽出された前記複数の特徴量との内積値を算出する内積値算出部（Ｓ２０３、Ｓ２５３）と、
前記内積値算出部によって得られた前記内積値が所定閾値を超える場合に（Ｓ２０４：ｙｅｓ、Ｓ２５４：ｙｅｓ）、前記対象画像に前記歩行者が写っていると判断することによって該歩行者を検出する歩行者検出部（１０５）と、
前記歩行者検出部による前記歩行者の検出結果の正誤を、前記ソナーまたは前記レーダーの少なくとも何れかを用いて確認する検出結果確認部（Ｓ６０３、Ｓ６０５）と、
前記歩行者検出部によって前記歩行者が検出され、且つ、該検出の結果が前記検出結果確認部によって正しいと判断された場合に、該歩行者が検出された前記対象画像から得られた前記特徴量を正検知特徴量として蓄積する正検知特徴量蓄積部（Ｓ６０４）と、
前記歩行者検出部によって前記歩行者が検出され、且つ、該検出の結果が前記検出結果確認部によって正しくないと判断された場合に、該歩行者が検出された前記対象画像から得られた前記特徴量を誤検知特徴量として蓄積する誤検知特徴量蓄積部（Ｓ６０６）と、
前記正検知特徴量に対しては前記内積値算出部によって得られる前記内積値が増加し、前記誤検知特徴量に対しては前記内積値算出部によって得られる前記内積値が減少するように、前記検出識別辞書の前記複数の数値を学習することによって、学習識別辞書を生成する学習識別辞書生成部（Ｓ６５０）と、
前記学習識別辞書を前記識別辞書として前記識別辞書記憶部に書き込む識別辞書書込部（Ｓ７００）と
を備える歩行者検出装置として把握することもできる。
【００１１】
このような態様で把握される歩行者検出装置は、環境の変化に応じて識別辞書を学習することができるので、環境の変化によらず高い検出精度で歩行者を検出することが可能となる。
【図面の簡単な説明】
【００１２】
【図１】本実施例の歩行者検出装置１００を搭載した車両１を示す説明図である。
【図２】歩行者検出装置１００の大まかな内部構成を示す説明図である。
【図３】撮影画像に写った歩行者を検出する方法の概要を示した説明図である。
【図４】歩行者を含まない対象画像を例示した説明図である。
【図５】識別辞書と対象画像との特徴量空間での内積値を用いて撮影画像中の歩行者を検出する方法についての説明図である。
【図６】環境要因の影響で歩行者の検出精度が低下する理由を示した説明図である。
【図７】予め記憶されている複数の識別辞書を例示した説明図である。
【図８】第１実施例の歩行者検出処理の前半部分のフローチャートである。
【図９】第１実施例の歩行者検出処理の後半部分のフローチャートである。
【図１０】撮影画像中の歩行者を探索する歩行者探索処理のフローチャートである。
【図１１】歩行者の検出精度を算出する検出精度算出処理のフローチャートである。
【図１２】撮影画像中の歩行者の検出結果を例示した説明図である。
【図１３】ソナーによる歩行者の検出結果を例示した説明図である。
【図１４】複数の識別辞書の検出精度を評価する識別辞書評価処理のフローチャートである。
【図１５】歩行者を検出するために用いる検出識別辞書を複数の識別辞書の評価結果に基づいて変更する検出識別辞書選択処理のフローチャートである。
【図１６】歩行者の検出精度を向上させることが可能な理由を示した説明図である。
【図１７】第２実施例の歩行者検出処理の前半部分のフローチャートである。
【図１８】第２実施例の歩行者検出処理の後半部分のフローチャートである。
【図１９】第２実施例の歩行者検出処理の中で歩行者を探索する歩行者探索処理のフローチャートである。
【図２０】識別辞書を学習する識別辞書学習処理のフローチャートである。
【図２１】識別辞書学習処理の中で識別辞書の設定値を変更する識別辞書設定値変更処理の前半部分のフローチャートである。
【図２２】識別辞書設定値変更処理の後半部分のフローチャートである。
【図２３】学習によって得られた識別辞書を新たな識別辞書として登録する学習識別辞書登録処理のフローチャートである。
【図２４】学習識別辞書登録処理で新たな識別辞書が追加される様子を示した説明図である。
【図２５】ソナーの代わりにレーダーを搭載した変形例の車両１を例示した説明図である。
【発明を実施するための形態】
【００１３】
以下では、上述した本願発明の内容を明確にするために実施例について説明する。
Ａ．装置構成  ：
図１には、歩行者検出装置１００を搭載した車両１が示されている。図示されるように車両１には、歩行者検出装置１００に加えて、車両１の前方を撮影する車載カメラ１０と、複数のソナー２０〜２３とが搭載されている。
車載カメラ１０は車両１から前方の方向を所定の撮影周期で撮影して、得られた撮影画像を歩行者検出装置１００に出力する。
【００１４】
また、車両１の前方に向かって左側の正面には、前方に向けて音波を放射するソナー２０が搭載されており、ソナー２０よりも左外側の位置には、前方斜め左方向に向けて音波を放射するソナー２２が搭載されている。同様に、車両１の前方に向かって右側の正面にも、前方に向けて音波を放射するソナー２１が搭載されており、ソナー２１よりも右外側の位置には、前方斜め右方向に向けて音波を放射するソナー２３が搭載されている。これらソナー２０〜２３は、放射した音波が歩行者などに当たって戻ってきた反射波を検出することにより、歩行者などを検出することができる。そして、得られた検出結果を歩行者検出装置１００に出力する。上述したように、それぞれのソナー２０〜２３は異なる方向に向けて音波を放射しているから、歩行者検出装置１００は、何れのソナー２０〜２３で歩行者などを検出したかによって、歩行者などの大まかな位置を検出することができる。
【００１５】
尚、図１では、車載カメラ１０は車両１から前方を撮影する向きに搭載され、ソナー２０〜２３は車両１の前方に搭載されているものとしているが、車載カメラ１０を車両１から後方を撮影する向きに搭載し、ソナー２０〜２３を車両１の後方に搭載してもよい。あるいは、車載カメラ１０を車両１から側方を撮影する向きに搭載し、ソナー２０〜２３を車両１の側方に搭載してもよい。更には、これらを組み合わせて、例えば、前方を撮影する車載カメラと、後方を撮影する車載カメラと、車両１の前方および斜め前方に音波を放射する複数のソナーと、後方および斜め後方に音波を放射する複数のソナーとを搭載してもよい。
また、図１では、ソナー２０〜２３を用いて歩行者などを検出するものとしているが、これに限らずレーダーを用いて歩行者などを検出してもよい。
【００１６】
図２には、本実施例の歩行者検出装置１００の大まかな内部構成が示されている。図示されるように本実施例の歩行者検出装置１００は、識別辞書記憶部１０１と、検出結果蓄積部１０２と、歩行者位置蓄積部１０３と、識別辞書選択部１０４と、歩行者検出部１０５と、検出精度評価部１０６と、再選択要否判断部１０７とを備えている。
尚、これら７つの「部」は、撮影画像に写った歩行者を検出する歩行者検出装置１００の機能に着目して、歩行者検出装置１００の内部を便宜的に分類した抽象的な概念であり、歩行者検出装置１００が物理的に７つの部分に区分されることを表すものではない。従って、これらの「部」は、ＣＰＵで実行されるコンピュータープログラムとして実現することもできるし、ＬＳＩやメモリーを含む電子回路として実現することもできるし、更にはこれらを組合せることによって実現することもできる。
以下では、これら７つの「部」の動作について説明するが、その準備として、識別辞書を用いて撮影画像中の歩行者を検出する方法について簡単に説明しておく。
【００１７】
図３には、識別辞書を用いて撮影画像中の歩行者を検出する大まかな方法が示されている。例えば、図３（ａ）に示したように、歩行者Ｈ１〜Ｈ３が写った撮影画像が得られたものとする。尚、ここでは理解を容易にするために、歩行者Ｈ１〜Ｈ３は、同じ大きさで写っているものとする。
【００１８】
それぞれの歩行者Ｈ１〜Ｈ３の外形形状は異なっているが、歩行者である以上は、外形形状が共通する部分も存在する。例えば、撮影画像中で歩行者Ｈ１が写った部分の画像（図３（ｂ）参照）と、歩行者Ｈ２が写った部分の画像（図３（ｃ）参照）と、歩行者Ｈ３が写った部分の画像（図３（ｄ）参照）とを切り出して、それら画像の輝度の平均を取ったとする。すると、図３（ｅ）に模式的に示したように、ぼんやりとした人型の輝度分布が得られるものと考えられる。そこで、撮影画像中で、このような輝度分布をしている箇所を探索して、そのような箇所が見つかったら、その箇所には歩行者が写っている可能性が高いと思われる。従って、このような輝度分布は、撮影画像に写った歩行者の形状が備える特徴と考えて良い。
尚、ここでは、歩行者の形状が備える特徴の例として、最も理解が容易な輝度分布に着目した特徴について説明したが、歩行者の形状が備える特徴は、これに限られるものではない。実際には、様々な方法によって抽出された様々な種類の特徴が提案されており、何れの特徴を用いても構わない。
【００１９】
続いて、得られた特徴（ここでは、人型の輝度分布）を数値化する。数値化する方法は、特徴を数値によって表すことが可能でありさえすれば、どのような方法を適用しても良い。また、特徴を数値によって表すには複数個の数値が必要となるから、特徴を数値化することによって、図３（ｆ）に示すように、複数個の数値を得ることができる。
このような一組の数値（ここでは、人型の輝度分布を表す複数個の数値）が「識別辞書」である。また、識別辞書がＮ個の数値によって形成されているとき、その識別辞書はＮ次元の識別辞書と呼ばれる。更に、特徴を表す数値の１つ１つは「特徴量」と呼ばれる。
【００２０】
そこで、識別辞書に含まれる複数個の特徴量を座標軸に取った空間（特徴量空間）を考える。識別辞書がＮ次元である場合、特徴量もＮ個となり、座標軸もＮ本となるので、Ｎ次元の特徴量空間となる。特徴量空間を用いれば、特徴量空間の座標点として識別辞書を表すことができる。
【００２１】
ここで、図３（ｅ）に示した人型の輝度分布の画像を識別辞書に変換した方法と同様にして、図３（ｂ）に示した歩行者Ｈ１が写った画像を数値化したとする。図３（ｂ）に示した画像にも歩行者Ｈ１が写っているから、得られた複数の特徴量は、識別辞書と似ている筈である。尚、以下では、特徴量を抽出する画像を「対象画像」と称することにする。
従って、特徴量空間では、図３（ｂ）の画像（対象画像Ｇ１）から得られた複数の特徴量に対応する座標点は、識別辞書を表す座標点の近くに存在する筈である。
【００２２】
また、図３（ｃ）に示した画像（対象画像Ｇ２）についても同様に、対象画像Ｇ２には歩行者Ｈ２が写っているから、対象画像Ｇ２から得られた複数の特徴量に対応する座標点は、特徴量空間では、識別辞書を表す座標点の近くに存在する筈である。図３（ｄ）に示した対象画像Ｇ３についても同様に、対象画像Ｇ３に対応する座標点は、識別辞書の座標点の近くに存在すると思われる。
このように、対象画像に歩行者が写っていれば、特徴量空間でその対象画像に対応する座標点は、識別辞書を表す座標点の近くにあると考えて良い。
【００２３】
これに対して、図４（ａ）に例示したように、歩行者とは無関係の対象画像Ｇ４の場合は、対象画像Ｇ４には歩行者が写っていないので、特徴量空間で対象画像Ｇ４に対応する座標点は、識別辞書を表す座標点から離れた位置にある筈である。
また、図４（ｂ）に例示したように、歩行者の一部が写ってはいるが、歩行者が写っているとは言えない対象画像Ｇ５の場合も、特徴量空間で対象画像Ｇ５に対応する座標点は、識別辞書を表す座標点から離れた位置にある筈である。
このように、対象画像に歩行者が写っていなければ、特徴量空間でその対象画像に対応する座標点は、識別辞書を表す座標点から離れた位置にあると考えて良い。
以上のことから、対象画像を特徴量空間の座標点に変換した時に、その座標点が識別辞書の近くに存在するか否かによって、対象画像に歩行者が写っているか否かを判断することができる。
【００２４】
図５には、識別辞書が３次元であるものとして、対象画像に歩行者が写っているか否かを判断する様子が示されている。例えば、識別辞書Ｄ１が、ｄ１ｘ、ｄ１ｙ、ｄ１ｚの３つの数値によって構成されていた場合、歩行者を含んだ対象画像に対応する座標点は、識別辞書Ｄ１の周囲に集まった状態となる。図中に破線で囲った範囲は、このような歩行者を含んだ対象画像の座標点の存在範囲を示している。従って、対象画像Ｇ１や、対象画像Ｇ２、対象画像Ｇ３に対応する座標点も、破線で囲った範囲内に存在する。
また、歩行者を含まない対象画像Ｇ４や対象画像Ｇ５に対応する座標点は、破線で囲った範囲の外側に存在する。
【００２５】
従って、特徴量空間での識別辞書（正確には、識別辞書の座標点を表すベクトル）と、対象画像（正確には、対象画像の座標点を表すベクトル）との内積値を算出すれば、対象画像に歩行者が写っているか否かを判断することができる。すなわち、対象画像の歩行者が写っていれば、対象画像の座標点は識別辞書の近くに存在するから、内積値は大きくなる。逆に、対象画像の歩行者が写っていなければ、対象画像の座標点は識別辞書から離れた位置に存在するから、内積値は小さくなる。
結局、特徴量空間での識別辞書と対象画像との内積値が、所定閾値よりも大きければ歩行者が写っていると判断し、所定閾値よりも小さければ歩行者は写っていないと判断することができる。
【００２６】
以上が、識別辞書を用いて歩行者を検出する方法の概要である。もっとも、このような方法は、環境要因の変化によって歩行者の検出精度が低下する虞がある。すなわち、歩行者の画像を撮影した時の天気や、時刻、季節などの影響によって、歩行者が写る状態も少しずつ変化するから、特徴量空間での座標点の分布範囲も変化する。
図６には、環境要因が様々に変化することで、歩行者が写った対象画像の存在範囲が変化する様子が概念的に示されている。当初は、図中に破線で示した存在範囲であったにも拘わらず、その後、環境要因が変化することによって存在範囲が変化し、結局、様々な環境要因の変化を考慮すると、図中に一点鎖線で示した範囲まで、歩行者が写った対象画像の存在範囲が広がる。そして、このように存在範囲が広がると、歩行者が写っているにも拘わらず識別辞書Ｄ１との内積値が小さな値となって、歩行者が写っていない画像（例えば図５の対象画像Ｇ５）と区別できない事態が生じる。
【００２７】
そこで、本実施例の歩行者検出装置１００では、環境要因の影響を受けることなく高い検出精度で歩行者を検出可能とするために、図２に示した７つの「部」を備えている。
７つの「部」の中の識別辞書記憶部１０１は、複数種類の識別辞書を記憶している。図７には、識別辞書記憶部１０１に記憶された５種類の識別辞書Ｄ１〜Ｄ５が例示されている。尚、図７では、図示の関係から識別辞書の次元が３次元であるものとして表示しているが、識別辞書の次元は３次元以上とすることができる。また、識別辞書記憶部１０１に記憶されている識別辞書の種類についても、５種類より多くても良く、あるいは５種類より少なくても良い。
【００２８】
検出結果蓄積部１０２は、車載カメラ１０からの撮影画像を受け取ると、識別辞書記憶部１０１に記憶されている複数種類の識別辞書を用いて、撮影画像中の歩行者を検出し、識別辞書毎に、歩行者の検出結果を蓄積する。撮影画像中の歩行者を検出する処理の詳細については後述する。
歩行者位置蓄積部１０３は、ソナー２０〜２３を用いて歩行者を検出することにより、歩行者が検出された位置（歩行者位置）を蓄積する。図１を用いて前述したように、ソナー２０〜２３は、それぞれ異なる方向に存在する歩行者などを検出している。このため歩行者位置蓄積部１０３は、何れのソナー２０〜２３が歩行者を検出したかに基づいて、歩行者の大まかな位置を検出することが可能であり、検出した歩行者位置を蓄積する。
【００２９】
識別辞書選択部１０４は、ソナー２０〜２３による歩行者位置の検出結果を歩行者位置蓄積部１０３から読み出して、検出結果蓄積部１０２に識別辞書毎に蓄積された歩行者の検出結果と比較する。そして、歩行者の検出結果が、ソナー２０〜２３による歩行者位置と最も整合する識別辞書を、検出識別辞書として選択する。検出識別辞書を選択する処理の詳細についても後述する。
歩行者検出部１０５は、車載カメラ１０から撮影画像を受け取ると、識別辞書選択部１０４で選択された識別辞書（検出識別辞書）を用いて、撮影画像中の歩行者を検出する。
【００３０】
検出精度評価部１０６は、歩行者検出部１０５が検出識別辞書を用いて検出した歩行者の検出結果と、ソナー２０〜２３で検出した歩行者位置とを受け取って、検出識別辞書の検出精度を算出する。検出識別辞書の検出精度を算出する処理については後述する。
再選択要否判断部１０７は、検出精度評価部１０６で算出した検出精度に基づいて、検出識別辞書の再選択の要否を判断する。そして、再選択を要すると判断した場合は、その旨を検出結果蓄積部１０２に出力して、歩行者位置蓄積部１０３で識別辞書毎に歩行者の検出結果の蓄積を再開する。
このようにすることで、本実施例の歩行者検出装置１００では、環境要因の影響を受けることなく、撮影画像中の歩行者を高い精度で検出することが可能となる。以下では、本実施例の歩行者検出装置１００が歩行者を検出する処理（歩行者検出処理）について詳しく説明する。
【００３１】
Ｂ．第１実施例の歩行者検出処理  ：
図８および図９には、第１実施例の歩行者検出処理のフローチャートが示されている。この処理は、車載カメラ１０が一定周期で画像を撮影する度に、歩行者検出装置１００によって実行される。
図示されるように、歩行者検出処理では先ず始めに、車載カメラ１０から撮影画像を取得する（Ｓ１００）。
【００３２】
続いて、ソナー２０〜２３から歩行者位置を取得して、歩行者位置の検出時刻と共に、歩行者検出装置１００内の図示しないメモリーに記憶する（Ｓ１０１）。
前述したようにソナー２０〜２３は、車両１の前方のそれぞれ異なる範囲で歩行者を検出するから、何れのソナー２０〜２３で歩行者を検出したかによって、大まかな歩行者位置を知ることができる。例えば、ソナー２０で歩行者が検出されたのであれば、車両１の前方左側に歩行者が存在し、ソナー２２で歩行者が検出されたのであれば、車両１の左斜め前方に歩行者が存在すると判断することができる。Ｓ１０１では、このようにして得られた大まかな歩行者位置を、検出時刻を示すタイムスタンプと共に蓄積する。
が上述した７つの「部」を用いて実行する。
【００３３】
こうして、撮影画像を取得して（Ｓ１００）、歩行者位置を蓄積したら（Ｓ１０１）、歩行者を検出するために用いる検出識別辞書を識別辞書記憶部１０１から読み出す（Ｓ１０２）。検出識別辞書は、識別辞書記憶部１０１に記憶されている複数種類の識別辞書の中から、後述する方法によって予め選択されている。また、まだ識別辞書が選択されていない場合は、識別辞書記憶部１０１に記憶されている複数種類の識別辞書の中で標準として設定されている識別辞書（図７に示した例では、識別辞書Ｄ１）を読み出す。
【００３４】
そして、読み出した検出識別辞書を用いて、撮影画像中の歩行者を探索する歩行者探索処理を開始する（Ｓ２００）。詳細については後述するが、歩行者探索処理では、撮影画像の中から歩行者の有無を判断しようとする対象画像を切り出して、対象画像から歩行者の特徴を抽出することにより、対象画像を特徴量空間の座標点に変換する（図５参照）。そして、特徴量空間での検出識別辞書（正確には検出識別辞書の座標点を表すベクトル）と、対象画像（正確には対象画像の座標点を表すベクトル）との内積値を算出することによって、対象画像に歩行者が写っているか否かを判断する。このような操作を撮影画像の全範囲に亘って実行することにより、撮影画像に写った歩行者を探索する。
【００３５】
続いて、検出識別辞書による歩行者の検出精度を算出する検出精度算出処理を開始する（Ｓ３００）。検出精度算出処理の詳細についても後述するが、この処理では次のようにして、検出識別辞書による検出精度を算出する。先ず、歩行者探索処理（Ｓ２００）で得られた歩行者の検出結果を、ソナー２０〜２３から得られた歩行者位置と比較することによって、歩行者が正しく検出されているか否かを判断して、その判断結果を蓄積しておく。そして、判断結果の蓄積数が、検出精度を精度良く算出するために必要な蓄積数（必要数）に達したら、検出識別辞書の検出精度を算出する。
【００３６】
その後、検出識別辞書の検出精度が得られたか否かを判断する（Ｓ１０３）。上述したように、検出識別辞書の検出精度は、歩行者が正しく検出されているか否かの判断結果の蓄積数が必要数に達していなければ算出できない。従って、蓄積数が必要数に達していない場合は、検出精度が未だ算出できていないと判断されることになる（Ｓ１０３：ｎｏ）。
これに対して、蓄積数が必要数に達していれば、検出精度算出処理（Ｓ３００）で検出識別辞書の検出精度が算出されているので、検出精度が算出できたと判断する（Ｓ１０３：ｙｅｓ）。
【００３７】
そして、検出精度が算出できた場合は（Ｓ１０３：ｙｅｓ）、検出識別辞書の再選択が必要か否かを判断する（Ｓ１０４）。すなわち、Ｓ３００で算出された検出識別辞書の検出精度を所定の許容精度と比較して、許容精度を超えている場合は、再選択は不要と判断する（Ｓ１０４：ｎｏ）。
これに対して、算出した検出精度が許容精度を下回っている場合は、検出識別辞書の再選択が必要と判断する（Ｓ１０４：ｙｅｓ）。
【００３８】
そして、再選択が必要と判断した場合は（Ｓ１０４：ｙｅｓ）、識別辞書評価処理を開始する（Ｓ４００）。詳細な処理内容については後述するが、識別辞書評価処理（Ｓ４００）では、識別辞書記憶部１０１に記憶されている複数種類の識別辞書の中から検出精度が最も高い識別辞書を選択して、新たな検出識別辞書の候補となる識別辞書（候補識別辞書）に設定する。
【００３９】
続いて、候補識別辞書が得られたか否かを判断する（Ｓ１０５）。すなわち、前述したように識別辞書の検出精度を精度良く算出するためには、識別辞書による検出結果を必要数以上蓄積する必要がある。従って、必要な蓄積数に達していない場合は、識別辞書毎の検出精度を算出することができず、候補識別辞書を設定することができない。そこで、このような場合は、候補識別辞書が得られていないと判断する（Ｓ１０５：ｎｏ）。
【００４０】
これに対して、候補識別辞書が得られたと判断した場合は（Ｓ１０５：ｙｅｓ）、候補識別辞書の検出精度と、検出識別辞書の検出精度とを比較して、候補識別辞書の検出精度の方が高い場合には、候補識別辞書を新たな検出識別辞書として選択する検出識別辞書選択処理を開始する（Ｓ５００）。検出識別辞書選択処理の詳細な処理内容についても後述する。
尚、候補識別辞書が得られていないと判断した場合は（Ｓ１０５：ｎｏ）、検出識別辞書選択処理（Ｓ５００）は省略する。また、そもそも、検出識別辞書の検出精度が算出されていないと判断した場合（Ｓ１０３：ｎｏ）や、検出識別辞書の再選択は不要と判断した場合（Ｓ１０４：ｎｏ）は、識別辞書評価処理（Ｓ４００）および検出識別辞書選択処理（Ｓ５００）を省略する。
【００４１】
その後、歩行者の検出を終了するか否かを判断する（図９のＳ１０６）。そして、歩行者の検出を終了しないと判断した場合は（Ｓ１０６：ｎｏ）、処理の先頭に戻って、車載カメラ１０から撮影画像を取得した後（図８のＳ１００）、上述した一連の処理（Ｓ１０１〜Ｓ１０６）を開始する。
これに対して、歩行者の検出を終了すると判断した場合は（Ｓ１０６：ｙｅｓ）、図８および図９に示した第１実施例の歩行者検出処理を終了する。
【００４２】
Ｂ−１．歩行者探索処理  ：
図１０には、撮影画像中で歩行者が写っている位置を探索する歩行者探索処理（Ｓ２００）のフローチャートが示されている。前述したようにこの処理は、第１実施例の歩行者検出処理の中で歩行者検出装置１００によって実施される。
【００４３】
図示されるように、歩行者探索処理では先ず始めに、歩行者を探索する対象となる対象画像を撮影画像中に設定する（Ｓ２０１）。撮影画像中で対象画像を設定する位置は任意の位置とすることができるが、撮影画像の全範囲に隈無く対象画像を設定するためには、始めは撮影画像の隅の位置に設定した対象画像を、少しずつ位置をずらして設定することが望ましい。
【００４４】
次に、撮影画像中に設定した対象画像を切り出して、対象画像から歩行者の特徴量を抽出する（Ｓ２０２）。こうすることによって、対象画像は、図５を用いて前述した特徴量空間の座標点に変換される。
そして、特徴量空間での対象画像の特徴量が示す座標点と、識別辞書に対応する座標点との内積値を算出する（Ｓ２０３）。尚、ここで、内積値の算出に用いる識別辞書は、対象画像に歩行者が写っているか否かを判断するために用いる識別辞書である。従って、検出識別辞書を用いて歩行者を検出するために歩行者探索処理（Ｓ２００）を実施しているのであれば、検出識別辞書が、ここで言う識別辞書に該当する。これに対して、後述する識別辞書評価処理（Ｓ４００）の中で複数の識別辞書を評価している場合には、識別辞書記憶部１０１に記憶された個々の識別辞書が、ここで言う識別辞書に該当する。
【００４５】
その後、算出した内積値が、所定の閾値よりも大きいか否かを判断する（Ｓ２０４）。そして、内積値が閾値よりも大きい場合は（Ｓ２０４：ｙｅｓ）、対象画像に歩行者が写っていると判断することができるので、撮影画像中に対象画像を設定した位置を、歩行者が検出された位置として、歩行者検出装置１００内の図示しないメモリーに記憶する（Ｓ２０５）。
これに対して、内積値が閾値よりも大きくなかった場合は（Ｓ２０４：ｎｏ）、対象画像に歩行者が写っていないと判断することができるので、撮影画像中に対象画像を設定した位置は記憶しない。
【００４６】
続いて、撮影画像中で歩行者が検出された位置が、撮影画像の下辺から所定距離以内にあるか否かを判断する（Ｓ２０６）。このような判断を行うのは、次のような理由による。
後述する検出精度算出処理では、歩行者探索処理（Ｓ２００）で検出された歩行者の位置と、ソナー２０〜２３で検出された歩行者位置とを比較することによって、歩行者の検出精度を算出する。ここで、歩行者探索処理（Ｓ２００）では撮影画像に歩行者が写っていれば、歩行者を検出できるのに対して、ソナー２０〜２３で歩行者を検出可能な距離には限界があり、所定距離以上、遠くに存在する歩行者はソナー２０〜２３では検出することができない。
そこで、撮影画像中では、遠くの歩行者ほど画像の上部に写ることに着目して、撮影画像に写った歩行者までの大まかな距離を推定する。すなわち、撮影画像中で画像の下辺から歩行者が検出された位置までの距離を取得する。この距離は、歩行者までの大まかな距離に対応する。そこで、撮影画像の下辺からの距離が所定距離以内であれば（Ｓ２０６：ｙｅｓ）、その歩行者はソナー２０〜２３でも検出可能な距離にいると判断できるので、歩行者が検出された位置（撮影画像中で対象画像を設定した位置）を、検出精度算出用の検出結果として記憶する（Ｓ２０７）。
これに対して、撮影画像の下辺からの距離が所定距離以内に無かった場合は（Ｓ２０６：ｎｏ）、検出精度算出用の検出結果は記憶しない。
【００４７】
そして、撮影画像中の全範囲に対象画像を設定して歩行者を探索したか否かを判断する（Ｓ２０８）。その結果、歩行者を探索していない箇所が残っている場合は（Ｓ２０８：ｎｏ）、処理の先頭に戻って、撮影画像中の新たな位置に探索画像を設定した後（Ｓ２０１）、上述した続く一連の処理（Ｓ２０２〜Ｓ２０８）を開始する。
【００４８】
このような処理を繰り返すことによって、撮影画像中の全範囲を探索したと判断したら（Ｓ２０８：ｙｅｓ）、図１０に示す第１実施例の歩行者探索処理を終了して、図８の歩行者検出処理に復帰する。そして、前述したように歩行者検出処理では、歩行者探索処理から復帰すると、検出精度算出処理（Ｓ３００）を開始する。
【００４９】
Ｂ−２．検出精度算出処理  ：
図１１には、第１実施例の歩行者検出処理の中で実施される検出精度算出処理のフローチャートが示されている。
図示されるように検出精度算出処理（Ｓ３００）では、上述した歩行者探索処理（Ｓ２００）で検出精度算出用に記憶した歩行者の検出結果（検出識別辞書を用いて歩行者が検出された位置）を読み出す（Ｓ３０１）。また、歩行者探索処理（Ｓ２００）で、検出精度算出用に複数の検出結果が記憶されていた場合には、全ての検出結果を読み出してやる。
【００５０】
次に、ソナー２０〜２３を用いて検出した歩行者位置を読み出す（Ｓ３０２）。図８および図９を用いて前述したように、歩行者検出処理では、車載カメラ１０から撮影画像を取得すると（Ｓ１００）、続いて、ソナー２０〜２３を用いて検出した歩行者位置を、タイムスタンプと共に、歩行者検出装置１００内のメモリーに記憶している（Ｓ１０１）。そこで、検出精度算出処理のＳ３０２では、タイムスタンプの情報に基づいて、撮影画像を取得した時点に対応する歩行者位置を読み出す。また、該当する歩行者位置が複数記憶されている場合には、全ての歩行者位置を読み出してやる。
【００５１】
そして、撮影画像から得られた歩行者の検出結果（Ｓ３０１で読み出した検出結果）と、ソナー２０〜２３から得られた歩行者位置（Ｓ３０２で読み出した歩行者位置）とを照合することによって、正検知の歩行者を検出して、検出した歩行者数（正検知数）を蓄積する（Ｓ３０３）。正検知の歩行者を検出するには、撮影画像中で歩行者が検出された位置のそれぞれについて、ソナー２０〜２３でも対応する位置で歩行者が検出されているか否かを判断する。
【００５２】
例えば、撮影画像中で歩行者が検出された検出結果として、図１２に示すように検出位置Ｐ１および検出位置Ｐ２が記憶されていたとする。また、ソナー２０〜２３によって検出された歩行者位置としては、図１３に示すように歩行者位置Ｓ１および歩行者位置Ｓ２が記憶されていたとする。この場合、図１２の検出位置Ｐ１については、ソナー２０〜２３でも歩行者が検出されているので（図１３の歩行者位置Ｓ１）、正検知と判断することができる。これに対して、図１２の検出位置Ｐ２については、ソナー２０〜２３では歩行者が検出されていないので、誤検知と判断する。従って、図１２および図１３に示した例では、正検知数は１となる。
そして、図１１に示した検出精度算出処理のＳ３０３では、こうして検出した正検知数を、検出精度を算出しようとする識別辞書（ここでは検出識別辞書）について既に得られた正検知数に加算することによって、検出識別辞書の正検知数を蓄積していく。
【００５３】
正検知数の蓄積に続いて、誤検知した歩行者の数（誤検知数）を蓄積する（Ｓ３０４）。誤検知した歩行者は、撮影画像から検出された歩行者（Ｓ３０１で読み出した歩行者）の中から、正検知の歩行者（Ｓ３０３で正検知と判定された歩行者）を除いた歩行者となる。上述の図１２および図１３に示した例を用いて説明すると、図１２の検出位置Ｐ２が、ソナー２０〜２３では歩行者が検出されていないので誤検知と判断される。また、この場合の誤検知数は１となる。
そして、図１１に示した検出精度算出処理のＳ３０４では、こうして検出した誤検知数を、検出識別辞書について既に得られた誤検知数に加算することによって、誤検知数を蓄積していく。
【００５４】
正検知数および誤検知数の蓄積に続いて、未検知の歩行者の数（未検知数）を蓄積する（Ｓ３０５）。ここで、未検知の歩行者とは、ソナー２０〜２３では検出されているにも拘わらず、撮影画像中では検出されていない歩行者である。従って、未検知の歩行者を検出するには、Ｓ３０２で読み出した歩行者位置に着目して、撮影画像中の該当する位置が、歩行者が検出された位置としてＳ３０１で読み出されているか否かを調べればよい。
例えば、図１３の歩行者位置Ｓ１については、撮影画像中でも歩行者が検出されているので（図１２の検出位置Ｐ１）、未検知ではないと判断することができる。これに対して、図１３の歩行者位置Ｓ２については、撮影画像中では歩行者が検出されていないので、未検知と判断する。従って、図１２および図１３に示した例では、未検知数は１となる。
そして、図１１に示した検出精度算出処理のＳ３０５では、こうして検出した未検知数を、検出識別辞書について既に得られた未検知数に加算することによって、未検知数を蓄積していく。
【００５５】
こうして、正検知数と誤検知数と未検知数とを蓄積したら（Ｓ３０３〜Ｓ３０５）、正検知数と誤検知数と未検知数とを合計することによって合計検知数を算出する（Ｓ３０６）。そして算出した合計検知数が、検出精度を算出するための必要数に達したか否かを判断する（Ｓ３０７）。
十分な精度で検出精度を算出するためには、必要数は十分に大きな数であることが望ましい。その一方で、必要数があまりに大きくなると、稀にしか検出精度を算出できなくなる。こうした観点から、必要数は、数千〜数万の範囲（代表的には、１万程度）の数に設定される。
【００５６】
その結果、合計検知数が必要数に達していない場合は（Ｓ３０７：ｎｏ）、検出精度を算出することなく、図１１の検出精度算出処理（Ｓ３００）を終了して、図８の歩行者検出処理に復帰する。
そして、歩行者検出処理では、検出精度が得られていないと判断されて（図８のＳ１０３：ｎｏ）、歩行者検出を終了するか否かが判断される（Ｓ１０６）。その結果、歩行者検出を終了しないと判断した場合は（Ｓ１０６：ｎｏ）、再び先頭から歩行者検出処理が実行され、その中で検出精度算出処理（Ｓ３００）が開始されて、検出識別辞書についての正検知数と誤検知数と未検知数とが蓄積される（図１１のＳ３０３〜Ｓ３０５）。
【００５７】
こうした処理を繰り返すうちに、やがて正検知数と誤検知数と未検知数との合計検知数が必要数に達して、Ｓ３０７では「ｙｅｓ」と判断されるので、蓄積した正検知数を合計検知数で除算することによって検出精度を算出する（Ｓ３０８）。
また、検出精度が算出できたら、蓄積していた正検知数、誤検知数、未検知数は何れも初期化した後（Ｓ３０９）、図１１の検出精度算出処理（Ｓ３００）を終了して、図８の歩行者検出処理に復帰する。
【００５８】
そして、歩行者検出処理では、検出精度が得られたと判断され（図８のＳ１０３：ｙｅｓ）、続いて、その検出精度が許容精度を下回っている場合は、検出識別辞書の再選択が必要と判断されて（Ｓ１０４：ｙｅｓ）、識別辞書評価処理（Ｓ４００）が開始される。
【００５９】
Ｂ−３．識別辞書評価処理  ：
図１４には、識別辞書評価処理（Ｓ４００）のフローチャートが示されている。
図示されるように、識別辞書評価処理（Ｓ４００）を開始すると、先ず始めに、ソナー２０〜２３によって検出されて、タイムスタンプと共にメモリーに記憶されていた歩行者位置を読み出す（Ｓ４０１）。
【００６０】
続いて、識別辞書記憶部１０１に記憶されている複数種類の識別辞書の中から、検出識別辞書以外の識別辞書を１つ選択し（Ｓ４０２）、その識別辞書を用いて歩行者探索処理を開始する（Ｓ２００）。図８および図９を用いて前述した歩行者検出処理では、検出識別辞書が選択されて（Ｓ１０２）、検出識別辞書に対して歩行者探索処理（Ｓ２００）が開始されたが、図１４の識別辞書評価処理（Ｓ４００）では、Ｓ４０２で選択された識別辞書に対して歩行者探索処理（Ｓ２００）が開始されることになる。歩行者探索処理（Ｓ２００）の詳細な処理については、図１０を用いて説明済みなので、ここでは説明は省略する。
【００６１】
選択した識別辞書を用いて撮影画像中の歩行者を探索したら（Ｓ２００）、歩行者探索処理（Ｓ２００）で検出精度算出用に記憶した歩行者の検出結果を用いて、識別辞書の正検知数および誤検知数を蓄積する（Ｓ４０３、Ｓ４０４）。識別辞書の正検知数および誤検知数を蓄積する方法については、図１１〜図１３を用いて前述した検出識別辞書の正検知数および誤検知数を蓄積する方法と同様なので、ここでは説明を省略する。
【００６２】
そして、識別辞書記憶部１０１に記憶された全ての識別辞書（検出識別辞書は除く）を選択したか否かを判断する（Ｓ４０５）。そして、まだ選択していない識別辞書が残っていた場合は（Ｓ４０５：ｎｏ）、Ｓ４０２に戻って新たな識別辞書を選択した後、その識別辞書に対して、上述した処理（Ｓ２００、Ｓ４０３、Ｓ４０４）を行う。
こうした処理を繰り返した結果、検出識別辞書を除く全ての識別辞書を選択したと判断したら（Ｓ４０５：ｙｅｓ）、今度は、蓄積した正検知数および誤検知数を識別辞書毎に合計することによって、識別辞書毎の合計検知数を算出する（Ｓ４０６）。
そして、識別辞書毎に算出した合計検知数の中で最小の合計検知数が、検知精度を算出するための必要数に達しているか否かを判断する（Ｓ４０７）。
【００６３】
その結果、最小の合計検知数が必要数に達していた場合は（Ｓ４０７：ｙｅｓ）、識別辞書毎の正検知数を合計検知数で除算することによって、識別辞書毎に検出精度を算出する（Ｓ４０８）。そして、識別辞書毎に得られた検出精度の中で検知精度が最も高い識別辞書を、候補識別辞書として選択した後（Ｓ４０９）、図１４の識別辞書評価処理を終了する。
これに対して、Ｓ４０６で算出した合計検知数の中の最小の合計検知数が、必要数に達していないと判断した場合は（Ｓ４０７：ｎｏ）、候補識別辞書を選択することなく、そのまま図１４の識別辞書評価処理を終了して、図８の歩行者検出処理に復帰する。
【００６４】
そして、図８を用いて前述したように歩行者検出処理では、識別辞書評価処理（Ｓ４００）から復帰すると、候補識別辞書が得られたか否かを判断して（Ｓ１０５）、候補識別辞書が得られている場合は（Ｓ１０５：ｙｅｓ）、後述する検出識別辞書選択処理（Ｓ５００）を開始する。これに対して、候補識別辞書が得られていない場合は（Ｓ１０５：ｎｏ）、検出識別辞書選択処理（Ｓ５００）は省略する。
【００６５】
Ｂ−４．検出識別辞書選択処理  ：
図１５には、検出識別辞書選択処理のフローチャートが示されている。前述したように、この処理は、図８の歩行者検出処理の中で検出識別辞書の再選択が必要と判断され（Ｓ１０４：ｙｅｓ）、候補識別辞書が得られた場合（Ｓ１０５：ｙｅｓ）に、歩行者検出装置１００によって開始される。
【００６６】
図示されるように、検出識別辞書選択処理（Ｓ５００）を開始すると先ず始めに、現状の検出識別辞書の検出精度を取得する（Ｓ５０１）。検出識別辞書の検出精度は、図１１を用いて前述した検出精度算出処理（Ｓ３００）の中で求められて、歩行者検出装置１００内のメモリーに記憶されている。
【００６７】
続いて、候補識別辞書の検出精度を取得する（Ｓ５０２）。候補識別辞書の検出精度は、図１４を用いて前述した識別辞書評価処理（Ｓ４００）の中で求められて、歩行者検出装置１００内のメモリーに記憶されている。
【００６８】
尚、本実施例では、検出識別辞書の検出精度は既に検出精度算出処理（Ｓ３００）で求められているので、識別辞書評価処理（Ｓ４００）では、検出識別辞書以外の識別辞書について検出精度を算出するものとして説明した。このため、図１５の検出識別辞書選択処理では、検出精度算出処理（Ｓ３００）で求めておいた検出識別辞書の検出精度を取得し（Ｓ５０１）、識別辞書評価処理（Ｓ４００）で求めた候補識別辞書の検出精度を取得している（Ｓ５０２）。
しかし、識別辞書評価処理（Ｓ４００）で他の識別辞書の検出精度を算出する際に、検出識別辞書の検出精度も算出してもよい。そして、検出識別辞書を除いた識別辞書の中で検出精度が最も高い識別辞書を、候補識別辞書として選択しても良い。この場合は、図１５の検出識別辞書選択処理では、識別辞書評価処理（Ｓ４００）で求めた検出識別辞書および候補識別辞書の検出精度を、それぞれＳ５０１およびＳ５０２で取得する。こうすれば、検出識別辞書の検出精度と、候補識別辞書の検出精度とを、同じ撮影画像から算出することができるので、２つの識別辞書の検出精度を正確に比較することができる。
【００６９】
もっとも、前述したように識別辞書の検出精度は、十分な数の検知結果を用いて算出するので、検出精度の算出に用いた撮影画像の違いが実用上の問題となることはない。従って、検出識別辞書の検出精度については、検出精度算出処理（Ｓ３００）で既に求めた検出精度を流用することとし、識別辞書評価処理（Ｓ４００）では、検出識別辞書以外の識別辞書の検出精度を算出することによって、処理負荷を軽減することが可能となる。
【００７０】
こうして、検出識別辞書および候補識別辞書の検出精度を取得したら（Ｓ５０１、Ｓ５０２）、候補識別辞書の検出精度が、検出識別辞書の検出精度よりも高いか否かを判断する（Ｓ５０３）。
その結果、候補識別辞書の検出精度の方が、検出識別辞書の検出精度よりも高いと判断した場合は（Ｓ５０３：ｙｅｓ）、候補識別辞書を新たな検出識別辞書として設定する（Ｓ５０４）。この結果、候補識別辞書が、それ以降の歩行者検出処理では検出識別辞書として使用されることになる。
これに対して、検出識別辞書の検出精度の方が、候補識別辞書の検出精度よりも高かった場合は（Ｓ５０３：ｎｏ）、候補識別辞書を検出識別辞書として設定することはない。この結果、現状の検出識別辞書がそのまま使用されることになる。
【００７１】
以上のようにして、それ以降に使用する検出識別辞書が選択されたら、その検出識別辞書や候補識別辞書を含めて、各識別辞書について求めた検出精度を初期化しておく（Ｓ５０５）。そして、図１５の検出識別辞書選択処理（Ｓ５００）を終了して、図８の歩行者検出処理に復帰する。
【００７２】
図８および図９を用いて前述したように、歩行者検出処理では、検出識別辞書選択処理（Ｓ５００）から復帰すると、歩行者検出を終了するか否かを判断する（図９のＳ１０６）。
その結果、歩行者検出を終了しないと判断した場合は（Ｓ１０６：ｎｏ）、歩行者検出処理の先頭に戻って、車載カメラ１０から新たな撮影画像を取得し（図８のＳ１００）、上述した続く一連の処理を開始する。
これに対して、歩行者検出を終了すると判断した場合は（Ｓ１０６：ｙｅｓ）、図８および図９に示した第１実施例の歩行者検出処理を終了する。
【００７３】
第１実施例の歩行者検出装置１００は、上述した歩行者検出処理によって撮影画像中の歩行者を検出しているので、環境要因の影響を受けることなく、高い検出精度で歩行者を検出することが可能である。これは次のような理由による。
【００７４】
先ず、図６を用いて前述したように、歩行者が写った対象画像の特徴量空間での存在範囲が、破線で囲った狭い範囲に存在している場合は、歩行者を精度良く検出することができる。すなわち、適切な識別辞書Ｄ１を設定しておくことで、歩行者が写った何れの対象画像についても識別辞書Ｄ１との内積値が大きな値となるようにすることができる。このため、対象画像に歩行者が写っていれば歩行者を確実に検出することができ、また、歩行者が写っていない対象画像を、歩行者が写っていると誤検出することもない。
【００７５】
これに対して、様々な環境要因の影響で、歩行者が写った対象画像の存在範囲が、一点鎖線で囲った範囲に広がったとする。すると、どのような識別辞書Ｄ１を設定しても、歩行者が写っているにも拘わらず、識別辞書Ｄ１との内積値が十分には大きな値とならない対象画像が生じるようになる。そして、このような対象画像の歩行者を検出しようとすると、歩行者が写っていない対象画像（例えば、図５中の対象画像Ｇ４や対象画像Ｇ５）との区別が困難となるので誤検出が増加する。これを避けるために、歩行者が写っているか否かの判断基準となる内積値の閾値を高くすると、対象画像に歩行者が写っているにも拘わらず、歩行者を検出できない場合が増加するので、検出率が低下する。
【００７６】
ここで、従来は、環境要因の変化による影響で、図６中の破線で囲った範囲が一点鎖線で囲った範囲に広がるものとして考えられてきた。しかし、様々な環境要因をひとまとめに見るのではなく、画像撮影時の個々の環境に着目すれば、環境が違ったからといって、歩行者が写った対象画像の存在範囲が大きく広がるとは考えにくい。従って、実際には、環境要因の変化による影響は、歩行者が写った対象画像の存在範囲を広げるものではなく、存在範囲を移動させるものであると考えられる。
すなわち、図１６に概念的に示したように、画像撮影時の環境が環境Ａであった場合は、歩行者が写った対象画像の存在範囲は、図中に破線で囲った範囲となるが、環境Ｂでは、一点鎖線で囲った範囲に移動する。また、環境Ｃでは、二点鎖線で囲った範囲に移動する。そして、これら様々な環境をひとまとめにすると、図６中に一点鎖線で示したように、歩行者が写った対象画像の存在範囲が広がるものと考えられる。
【００７７】
従って、図１６に示したように、環境Ｂで得られた撮影画像については、識別辞書Ｄ５を用いて歩行者を検出すればよい。環境Ｂで得られた撮影画像であれば、歩行者が写った対象画像は、図中に一点鎖線で囲った範囲内に存在するから、歩行者が写った何れの対象画像についても識別辞書Ｄ５との内積値が大きな値となる。このため、対象画像に写った歩行者を確実に検出することができ、また、歩行者が写っていない対象画像を、歩行者が写っていると誤検出することもない。
同様にして、環境Ｃで得られた撮影画像については、識別辞書Ｄ３を用いて歩行者を検出すればよい。更に、環境Ａから環境Ｂに変化する途中であれば、識別辞書Ｄ４を用いて歩行者を検出し、環境Ａから環境Ｃに変化する途中であれば、識別辞書Ｄ２を用いて歩行者を検出すればよい。
前述したように、第１実施例の歩行者検出処理では、複数種類の識別辞書を評価して（図８のＳ４００）、検出識別辞書を変更することができるから（Ｓ５００）、環境の変化に応じて適切な識別辞書を選択することができる。その結果、環境要因の影響を受けることなく、高い検出精度で歩行者を検出することが可能となる。
【００７８】
Ｃ．第２実施例の歩行者検出処理  ：
上述した第１実施例の歩行者検出処理では、識別辞書記憶部１０１に記憶されている複数種類の識別辞書は予め決まっており、画像撮影時の環境が変化すると、既定の識別辞書の中から適切な識別辞書を選択するものとして説明した。
しかし、学習によって新たな識別辞書を生成して、識別辞書記憶部１０１に記憶してもよい。そして、学習によって追加された識別辞書を含む複数種類の識別辞書の中から、適切な識別辞書を選択するものとしても良い。
【００７９】
図１７および図１８には、第２実施例の歩行者検出処理のフローチャートが示されている。この処理も、図８および図９を用いて前述した第１実施例の歩行者検出処理と同様に、車載カメラ１０が一定周期で画像を撮影する度に、歩行者検出装置１００によって実行される。
図示されるように、第２実施例の歩行者検出処理を開始すると、車載カメラ１０から撮影画像を取得した後（Ｓ１５０）、ソナー２０〜２３から歩行者位置を取得して、歩行者位置の検出時刻（タイムスタンプ）と共に、歩行者検出装置１００内の図示しないメモリーに記憶する（Ｓ１５１）。
【００８０】
続いて、検出識別辞書を識別辞書記憶部１０１から読み出して（Ｓ１５２）、第２実施例の歩行者探索処理を開始する（Ｓ２５０）。第２実施例の歩行者探索処理（Ｓ２５０）は、図１０を用いて前述した第１実施例の歩行者探索処理（Ｓ２００）に準じた処理であるが、第２実施例の歩行者探索処理（Ｓ２５０）では、歩行者が検出された場合に、歩行者が検出された対象画像の位置だけでなく、対象画像から抽出された特徴量を記憶する。第２実施例の歩行者探索処理（Ｓ２５０）の詳細な処理内容については後述する。
【００８１】
その後、第２実施例の歩行者検出処理では、識別辞書を学習する識別辞書学習処理（Ｓ６００）を開始する。詳細については後述するが、識別辞書の学習に際しては、歩行者探索処理（Ｓ２５０）で得られた歩行者の検出結果（すなわち、対象画像を設定した位置と、対象画像から抽出した特徴量）を使用する。
【００８２】
続いて、識別辞書学習処理（Ｓ６００）で新たな識別辞書が学習されたか否かを判断する（Ｓ１５３）。後述するように、識別辞書の学習には、ある程度の数の歩行者の検出結果が蓄積されている必要があるから、蓄積された検出結果が足らない場合は、識別辞書学習処理（Ｓ６００）で新たな識別辞書を学習することができない。
そこで、新たな識別辞書が学習されたか否かを判断し（Ｓ１５３）、学習されていた場合には（Ｓ１５３：ｙｅｓ）、その新たな識別辞書が、登録に値する識別辞書か否かを判断して、登録に値していれば識別辞書記憶部１０１に新たな識別辞書として登録する学習識別辞書登録処理（Ｓ７００）を実施する。学習識別辞書登録処理（Ｓ７００）の詳細な処理内容については後述する。
【００８３】
続いて、新たな識別辞書が登録されたか否かを判断する（Ｓ１５４）。その結果、新たな識別辞書が登録されていた場合は（Ｓ１５４：ｙｅｓ）、識別辞書評価処理（Ｓ４００）を開始する。
識別辞書評価処理（Ｓ４００）の処理内容については、図１４を用いて前述した第１実施例の識別辞書評価処理（Ｓ４００）と同様である。すなわち、識別辞書記憶部１０１に記憶されている複数種類の識別辞書の中から検出精度が最も高い識別辞書を選択して、新たな検出識別辞書の候補となる識別辞書（候補識別辞書）に設定する。
そして、候補識別辞書が得られたか否かを判断して（図１８のＳ１５５）、候補識別辞書が得られていれば（Ｓ１５５：ｙｅｓ）、検出識別辞書選択処理（Ｓ５００）を開始する。検出識別辞書選択処理（Ｓ５００）の処理内容については、図１５を用いて前述した第１実施例の検出識別辞書選択処理（Ｓ５００）と同様であるため、説明は省略する。
【００８４】
尚、候補識別辞書が得られていない場合は（Ｓ１５５：ｎｏ）、検出識別辞書選択処理（Ｓ５００）は省略する。
また、学習された新たな識別辞書が登録されていないと判断した場合は（Ｓ１５４：ｎｏ）、識別辞書評価処理（Ｓ４００）および検出識別辞書選択処理（Ｓ５００）は省略する。
更に、そもそも、新たな識別辞書が学習されていないと判断した場合は（Ｓ１５３：ｎｏ）、学習識別辞書登録処理（Ｓ７００）や、識別辞書評価処理（Ｓ４００）、検出識別辞書選択処理（Ｓ５００）は省略する。
【００８５】
その後、歩行者の検出を終了するか否かを判断する（Ｓ１５６）。そして、歩行者の検出を終了しないと判断した場合は（Ｓ１５６：ｎｏ）、処理の先頭に戻って、車載カメラ１０から撮影画像を取得した後（図１７のＳ１５０）、上述した一連の処理（Ｓ１５１〜Ｓ１５６）を開始する。
これに対して、歩行者の検出を終了すると判断した場合は（Ｓ１５６：ｙｅｓ）、図１７および図１８に示した第２実施例の歩行者検出処理を終了する。
【００８６】
Ｃ−１．歩行者探索処理  ：
図１９には、第２実施例の歩行者探索処理（Ｓ２５０）のフローチャートが示されている。前述したように第２実施例の歩行者探索処理（Ｓ２５０）は、図１０を用いて前述した第１実施例の歩行者探索処理に対して、歩行者が検出された場合に、検出された位置（対象画像を設定した位置）だけでなく、その対象画像から抽出した特徴量も記憶する点が異なっている。以下では、第１実施例の歩行者探索処理（Ｓ２００）との相違点を中心に、第２実施例の歩行者探索処理（Ｓ２５０）について簡単に説明する。
【００８７】
図示されるように、第２実施例の歩行者探索処理でも、先ず始めに、歩行者を探索する対象となる対象画像を撮影画像中に設定し（Ｓ２５１）、対象画像から歩行者の特徴量を抽出する（Ｓ２５２）。
そして、特徴量空間での対象画像の特徴量が示す座標点と、識別辞書に対応する座標点との内積値を算出して（Ｓ２５３）、得られた内積値が、所定の閾値よりも大きいか否かを判断する（Ｓ２５４）。
その結果、内積値が閾値よりも大きかった場合は（Ｓ２５４：ｙｅｓ）、対象画像に歩行者が写っていると判断することができるので、撮影画像中に対象画像を設定した位置を、歩行者の検出結果として記憶する（Ｓ２５５）。
これに対して、内積値が閾値よりも大きくなかった場合は（Ｓ２５４：ｎｏ）、対象画像に歩行者が写っていないと判断することができるので、検出結果は記憶しない。
【００８８】
続いて、撮影画像中で歩行者が検出された位置が、撮影画像の下辺から所定距離以内にあるか否かを判断する（Ｓ２５６）。すなわち、ソナー２０〜２３で歩行者を検出可能な距離には限界があり、遠くに存在する歩行者は検出することができない。そこで、撮影画像の下辺から歩行者が検出された位置までの距離に基づいて、その歩行者が、ソナー２０〜２３でも検出可能な距離にいるか否かを判断する。その結果、撮影画像の下辺からの距離が所定距離以内であれば（Ｓ２５６：ｙｅｓ）、その歩行者はソナー２０〜２３でも検出可能と判断して、歩行者が検出された位置（撮影画像中で対象画像を設定した位置）と、対象画像から抽出された特徴量とを、識別辞書学習用の検出結果として記憶する（Ｓ２５７）。
これに対して、撮影画像の下辺からの距離が所定距離以内に無かった場合は（Ｓ２５６：ｎｏ）、識別辞書学習用の検出結果は記憶しない。
【００８９】
そして、撮影画像中の全範囲に対象画像を設定して歩行者を探索したか否かを判断する（Ｓ２５８）。その結果、歩行者を探索していない箇所が残っている場合は（Ｓ２５８：ｎｏ）、処理の先頭に戻って、撮影画像中の新たな位置に探索画像を設定した後（Ｓ２５１）、上述した続く一連の処理（Ｓ２５２〜Ｓ２５８）を開始する。また、撮影画像中の全範囲を探索したと判断したら（Ｓ２５８：ｙｅｓ）、図１９に示す第２実施例の歩行者探索処理を終了して、図１７の歩行者検出処理に復帰する。
そして、前述したように第２実施例の歩行者検出処理では、歩行者探索処理から復帰すると、識別辞書学習処理（Ｓ６００）を開始する。
【００９０】
Ｃ−２．識別辞書学習処理  ：
図２０には、第２実施例の歩行者検出処理の中で実施される識別辞書学習処理のフローチャートが示されている。
図示されるように識別辞書学習処理（Ｓ６００）では、上述した歩行者探索処理（Ｓ２５０）で識別辞書学習用に記憶した歩行者の検出結果（歩行者が検出された対象画像の位置、および対象画像から抽出された特徴量）を読み出す（Ｓ６０１）。
【００９１】
次に、ソナー２０〜２３を用いて検出した歩行者位置を読み出す（Ｓ６０２）。そして、図１１を用いて前述した検出精度算出処理のＳ３０３で、正検知数を蓄積した処理と同様にして、識別辞書学習用の検出結果の中から正検知の検出結果を抽出して（Ｓ６０３）、正検知の対象画像の特徴量（正検知特徴量）を蓄積する（Ｓ６０４）。また、検出精度算出処理のＳ３０４で誤検知数を蓄積した処理と同様にして、識別辞書学習用の検出結果の中から誤検知の検出結果を抽出して（Ｓ６０５）、誤検知の対象画像の特徴量（誤検知特徴量）を蓄積する（Ｓ６０６）。
例えば、図１２および図１３に示した例では、正検知特徴量としては、検出位置Ｐ１に設定した対象画像から抽出した特徴量を蓄積し、誤検知特徴量としては、検出位置Ｐ２に設定した対象画像から抽出した特徴量を蓄積する。
【００９２】
その後、正検知数または誤検知数の何れか小さい方が、識別辞書の学習に必要な必要数に達したか否かを判断する。すなわち、正検知数は誤検知数よりも大きいか否かを判断し（Ｓ６０７）、正検知数の方が大きかった場合は（Ｓ６０７：ｙｅｓ）、誤検知数が必要蓄積数に達したか否かを判断する（Ｓ６０８）。これに対して、誤検知数の方が大きかった場合は（Ｓ６０７：ｎｏ）、正検知数が必要蓄積数に達したか否かを判断する（Ｓ６０９）。
【００９３】
その結果、誤検知数または正検知数の何れか小さい方が必要蓄積数に達していた場合には（Ｓ６０８：ｙｅｓ、またはＳ６０９：ｙｅｓ）、学習によって新たな識別辞書を生成するために、検出識別辞書の設定値を変更する処理（識別辞書設定値変更処理）を開始する（Ｓ６５０）。詳細な処理内容については後述するが、識別辞書設定値変更処理（Ｓ６５０）では、Ｓ６０３で蓄積した正検知特徴量と、Ｓ６０６で蓄積した誤検知特徴量とを用いて、新たな識別辞書を生成する。
尚、学習によって適切な識別辞書を得るためには、十分な数の正検知特徴量および誤検知特徴量が蓄積されていることが望ましい。その一方で、蓄積に要する時間があまりに長くなると、画像を撮影する環境が変わってしまう可能性が生じる。そこで、必要蓄積数は、数十〜数千の範囲（代表的には、１００程度）の数に設定される。
【００９４】
これに対して、誤検知数または正検知数の何れか小さい方が必要数に達していなかった場合には（Ｓ６０８：ｎｏ、またはＳ６０９：ｎｏ）、学習に必要な数の正検知特徴量および誤検知特徴量が、まだ蓄積されていないと考えられる。そこで、識別辞書設定値変更処理（Ｓ６５０）は開始せずに、図２０の識別辞書学習処理を終了して、図１７の歩行者検出処理に復帰する。
そして、前述したように歩行者検出処理では、新たな識別辞書が学習されていないと判断されて（図１７のＳ１５３：ｎｏ）、歩行者検出を終了するか否かが判断される（図１８のＳ１５６）。その結果、歩行者検出を終了しない場合は（Ｓ１５６：ｎｏ）、再び先頭から歩行者検出処理が実行され、その中で識別辞書学習処理（Ｓ６００）が開始されて、正検知数および正検知特徴量が蓄積され（図２０のＳ６０３）、誤検知数および誤検知特徴量が蓄積される（Ｓ６０６）。
【００９５】
こうした処理を繰り返すことによって、やがては、正検知数または誤検知数の小さい方が必要蓄積数に達するので（Ｓ６０８：ｙｅｓ、またはＳ６０９：ｙｅｓ）、以下に説明する識別辞書設定値変更処理（Ｓ６５０）を開始する（Ｓ６５０）。
【００９６】
Ｃ−３．識別辞書設定値変更処理  ：
図２１および図２２には、識別辞書設定値変更処理（Ｓ６５０）のフローチャートが示されている。
識別辞書設定値変更処理（Ｓ６５０）では、先ず始めに、検出識別辞書に設定された特徴量（以下では、対象画像の特徴量と区別するために「設定値」と称する）を１つ選択する（Ｓ６５１）。Ｎ次元の識別辞書であれば、Ｎ個の設定値を備えているから、その中の１つを選択する。
【００９７】
次に、選択した設定値を、所定量だけ増加させる（Ｓ６５２）。その結果、検出識別辞書に対して少しだけ設定値が異なる新たな識別辞書が生成される。
そして、選択した設定値を増加させることによって、蓄積しておいた正検知特徴量との内積値が増加するか否かを判断する（Ｓ６５３）。この時、蓄積しておいた全ての正検知特徴量との内積値が増加することが望ましいが、所定比率以下（例えば１０％以下）であれば、内積値が増加しない正検知特徴量が存在している場合も、正検知特徴量との内積値が増加したと判断することとしても良い。
【００９８】
正検知特徴量との内積値が増加したと判断した場合は（Ｓ６５３：ｙｅｓ）、今度は、その設定値を増加させることによって、誤検知特徴量との内積値が減少するか否かを判断する（Ｓ６５４）。ここでも、蓄積しておいた全ての誤検知特徴量との内積値が減少することが望ましいが、所定比率以下（例えば１０％以下）であれば、内積値が減少しない誤検知特徴量が存在している場合も、誤検知特徴量との内積値が減少したと判断することとしても良い。
【００９９】
その結果、選択した設定値を増加させることによって、正検知特徴量との内積値は増加し（Ｓ６５３：ｙｅｓ）、誤検知特徴量との内積値は減少する場合は（Ｓ６５４：ｙｅｓ）、その設定値については所定量だけ増加させるものと判断して、検出識別辞書の全ての設定値を選択したか否かを判断する（図２２のＳ６６１）。その結果、未選択の設定値が残っている場合は（Ｓ６６１：ｎｏ）、処理の先頭に戻って、新たな設定値を１つ選択する（図２１のＳ６５１）。
【０１００】
これに対して、選択した設定値を増加させることで正検知特徴量との内積値は増加したが（Ｓ６５３：ｙｅｓ）、誤検知特徴量との内積値は減少しなかった場合は（Ｓ６５４：ｎｏ）、その設定値については増加も減少もさせるべきではないと判断できる。そこで、設定値を増加前の値に変更した後（Ｓ６５５）、検出識別辞書の全ての設定値を選択したか否かを判断する（図２２のＳ６６１）。
【０１０１】
一方、選択した設定値を増加させることで、正検知特徴量との内積値が増加しなかった場合は（Ｓ６５３：ｎｏ）、その設定値については増加させるのではなく、減少させるべきである可能性がある。
そこで、増加させた設定値を増加前の値に戻した後（Ｓ６５６）、今度は、その設定値を所定量だけ減少させる（Ｓ６５７）。
【０１０２】
そして、選択した設定値を減少させることによって、蓄積しておいた正検知特徴量との内積値が増加するか否かを判断する（Ｓ６５８）。この時、蓄積しておいた全ての正検知特徴量との内積値が増加することが望ましいが、所定比率以下（例えば１０％以下）であれば、内積値が増加しない正検知特徴量が存在している場合も、正検知特徴量との内積値が増加したと判断することとしても良い。
【０１０３】
設定値の減少によって正検知特徴量との内積値が増加したと判断した場合は（Ｓ６５８：ｙｅｓ）、今度は、誤検知特徴量との内積値が減少するか否かを判断する（Ｓ６５９）。ここでも、蓄積しておいた全ての誤検知特徴量との内積値が減少することが望ましいが、所定比率以下（例えば１０％以下）であれば、内積値が減少しない誤検知特徴量が存在している場合も、誤検知特徴量との内積値が減少したと判断することとしても良い。
【０１０４】
その結果、選択した設定値を減少させることによって、正検知特徴量との内積値は増加し（Ｓ６５８：ｙｅｓ）、誤検知特徴量との内積値は減少する場合は（Ｓ６５９：ｙｅｓ）、その設定値については所定量だけ減少させるものと判断して、検出識別辞書の全ての設定値を選択したか否かを判断する（図２２のＳ６６１）。
【０１０５】
これに対して、選択した設定値の減少によって正検知特徴量との内積値は増加したが（Ｓ６５８：ｙｅｓ）、誤検知特徴量との内積値は減少しなかった場合（Ｓ６５９：ｎｏ）、あるいは、正検知特徴量との内積値が増加しなかった場合は（Ｓ６５８：ｎｏ）、その設定値については増加も減少もさせるべきではないと判断できる。そこで、その設定値を減少前の値に変更した後（図２２のＳ６６０）、検出識別辞書の全ての設定値を選択したか否かを判断する（Ｓ６６１）。
【０１０６】
このような処理を、検出識別辞書の全ての設定値に対して実行したら、Ｓ６６１では「ｙｅｓ」と判断されるので、図２１および図２２に示した識別辞書設定値変更処理を終了して、図２０の識別辞書学習処理に復帰した後、識別辞書学習処理も終了して、図１７および図１８に示した第２実施例の歩行者検出処理に復帰する。
そして、前述したように第２実施例の歩行者検出処理では、識別辞書学習処理（Ｓ６００）から復帰すると、新たな識別辞書が学習されたか否かを判断し（図１７のＳ１５３）、新たな識別辞書が学習されていた場合には（Ｓ１５３：ｙｅｓ）、学習識別辞書登録処理（Ｓ７００）を開始する。
尚、上述した識別辞書学習処理によって学習された新たな識別辞書が、本発明の「学習識別辞書」に対応する。
【０１０７】
Ｃ−４．学習識別辞書登録処理  ：
図２３には、学習識別辞書登録処理（Ｓ７００）のフローチャートが示されている。
図示されるように、学習識別辞書登録処理（Ｓ７００）を開始すると、先ず始めに、既存の識別辞書（識別辞書記憶部１０１に登録されている識別辞書）を１つ選択する（Ｓ７０１）。この時、使用中の検出識別辞書を選択しても良い。
【０１０８】
続いて、選択した識別辞書と、学習によって得られた新たな識別辞書との内積値を算出する（Ｓ７０２）。仮に、選択した識別辞書と、学習によって得られた識別辞書とが、全く異なる識別辞書であれば内積値は小さな値となり、逆に、よく似た識別辞書であれば内積値は大きな値となる筈である。
従って、内積値が所定値よりも小さかった場合は（Ｓ７０３：ｙｅｓ）、学習によって得られた識別辞書は、Ｓ７０１で選択した識別辞書とは大きく異なっていると考えられる。そこでこの場合は、既存の識別辞書を全て選択したか否かを判断する（Ｓ７０４）。選択していない識別辞書が残っている場合は（Ｓ７０４：ｎｏ）、先頭に戻って新たな識別辞書を選択した後（Ｓ７０１）、その識別辞書との内積値を算出する（Ｓ７０２）。そして、内積値が所定値よりも小さい場合は（Ｓ７０３：ｙｅｓ）、他の識別辞書についても同様な処理を繰り返す。
【０１０９】
こうした処理を繰り返すうちに、何れかの識別辞書との内積値が小さくない（Ｓ７０３：ｎｏ）と判断される場合が起こり得る。この場合は、学習によって得られた識別辞書は、識別辞書記憶部１０１に記憶されている既存の識別辞書の少なくとも１つと似ていると判断できる。従って、このような識別辞書は、新たな識別辞書として登録する必要はないので、そのまま図２３の学習識別辞書登録処理を終了する。
これに対して、全ての識別辞書とも内積値が小さかった場合は（Ｓ７０４：ｙｅｓ）、学習によって得られた識別辞書は、識別辞書記憶部１０１に記憶されている既存の識別辞書の何れとも似ていないので、新たな識別辞書として登録する価値があると判断できる。
【０１１０】
もっとも、既存の識別辞書と似ていない識別辞書が得られる度に、その識別辞書を登録していくと、識別辞書記憶部１０１に記憶されている識別辞書の種類が増えすぎてしまう可能性がある。記憶されている識別辞書の種類が多くなると、大きなメモリー容量が必要となるだけでなく、歩行者を迅速に検出することも困難となる。この理由は、図１７および図１８で説明した歩行者検出処理の中で、識別辞書記憶部１０１に記憶されている複数の識別辞書を評価する識別辞書評価処理（Ｓ４００）に時間が掛かるようになってしまうためである。
また、識別辞書記憶部１０１に記憶されている識別辞書が増えると、新たな識別辞書が学習された場合に、その識別辞書が登録する価値があるか否かを判断する処理（図２３のＳ７０１〜Ｓ７０４）に要する時間も増加する。
【０１１１】
そこで、学習によって得られた新たな識別辞書が、既存の何れの識別辞書との内積値も小さい（新たな識別辞書として登録する価値がある）と判断された場合は（Ｓ７０４：ｙｅｓ）、識別辞書記憶部１０１に記憶されている既存の識別辞書の種類数が、所定の上限数に達したか否かを判断する（Ｓ７０５）。
その結果、既存の識別辞書の種類数が上限数に達していた場合は（Ｓ７０５：ｙｅｓ）、識別辞書記憶部１０１に記憶されている識別辞書の種類数が増えすぎたと判断できる。そこでこの場合は、識別辞書記憶部１０１に記憶されている識別辞書の中で、学習によって得られた最も古い識別辞書を削除する（Ｓ７０６）。識別辞書記憶部１０１の識別辞書の中に、学習によって登録されたのではなく、標準の識別辞書が予め記憶されていた場合には、標準の識別辞書を除いて最も古い識別辞書を削除する。
【０１１２】
そして、識別辞書記憶部１０１に記憶されている識別辞書の種類を１つ減らした上で、
学習によって得られた識別辞書を識別辞書記憶部１０１に記憶することによって、新たな識別辞書として登録する（Ｓ７０７）。
こうすれば、識別辞書記憶部１０１に記憶されている識別辞書の種類数を上限数に抑えたまま、車載カメラ１０が画像を撮影する環境の変化に応じた最新の識別辞書を記憶することができる。また、古いタイミングで学習された識別辞書は、その識別辞書を学習した時の環境が、現在の環境とは大きく異なってしまい、検出精度が低下している可能性が高いので、削除しても実害は少ないと考えられる。
もちろん、現在の環境が変化して、削除した識別辞書を学習した環境に近付いていく可能性もある。しかし、その場合でも、環境の変化に応じて識別辞書を学習することができるので、最も古いタイミングで学習された識別辞書については、削除することによる実害は僅かと考えられる。
【０１１３】
尚、最も古いタイミングで学習した識別辞書は、その辞書を学習した時の環境が現在の環境から大きく異なっているので、検出精度も大きく低下していると考えられる。従って、図２３のＳ７０６では、学習したタイミングが最も古い識別辞書を削除する代わりに、学習して登録された識別辞書の中で検出精度が最も低い識別辞書を削除するようにしてもよい。識別辞書の検出精度は改めて算出しても良いし、図１４を用いて前述したように識別辞書評価処理（Ｓ４００）の中で算出された検出精度を利用しても良い。
また、ここでは、識別辞書記憶部１０１に記憶された識別辞書を削除してから（Ｓ７０６）、新たな識別辞書を記憶する（Ｓ７０７）ものとして説明した。しかし、新たな識別辞書を識別辞書記憶部１０１に記憶した後に（Ｓ７０７）、識別辞書記憶部１０１の識別辞書を削除することとしてもよい（Ｓ７０６）。
【０１１４】
これに対して、識別辞書記憶部１０１に記憶されている既存の識別辞書の種類数が上限数に達していない場合は（Ｓ７０５：ｎｏ）、学習によって得られた識別辞書を識別辞書記憶部１０１に追加して記憶することによって、新たな識別辞書として登録する（Ｓ７０７）。
こうして、学習によって得られた識別辞書を識別辞書記憶部１０１に登録したら（Ｓ７０７）、図２３の学習識別辞書登録処理を終了する。
【０１１５】
図２４には、上述した学習識別辞書登録処理（Ｓ７００）によって識別辞書が登録されている様子が概念的に示されている。
例えば、図２４（ａ）に示すように、識別辞書記憶部１０１に記憶されている識別辞書が１つ（識別辞書Ｄ１）の時に、図中に黒丸で表示した識別辞書が学習されたものとする。この場合、学習した識別辞書と、既存の識別辞書Ｄ１との内積値は小さくなるので、学習した識別辞書を新たな識別辞書Ｄ２として、識別辞書記憶部１０１に追加する。
次に、図２４（ｂ）に示したように、識別辞書Ｄ１および識別辞書Ｄ２が記憶されている状態で、図中に黒丸で表示した識別辞書が学習されたものとする。この場合、学習した識別辞書は、識別辞書Ｄ１との内積値は小さくなるが、識別辞書Ｄ２との内積値は小さくならない。そこで、この識別辞書については識別辞書記憶部１０１に追加しない。
更に、図２４（ｃ）に示したように、識別辞書Ｄ１および識別辞書Ｄ２が記憶されている状態で、図中に黒丸で表示した別の識別辞書が学習されたものとする。この識別辞書については、識別辞書Ｄ１との内積値も、識別辞書Ｄ２との内積値も小さくなるので、この識別辞書については新たな識別辞書として識別辞書記憶部１０１に追加する。
【０１１６】
このように、図２３に示した学習識別辞書登録処理（Ｓ７００）では、識別辞書学習処理（Ｓ６００）で新たな識別辞書が学習されると、その識別辞書が既存の識別辞書と似ているか否か（内積値が所定値よりも小さいか否か）を判断して、既存の識別辞書と似ていない場合は、新たな識別辞書として登録する。その結果、第２実施例の歩行者検出処理では、識別辞書学習処理（Ｓ６００）で、既存の識別辞書と似ていない新たな識別辞書が学習される度に、識別辞書記憶部１０１に記憶されている識別辞書が増加していくことになる。
【０１１７】
こうして、図２３の学習識別辞書登録処理（Ｓ７００）を終了したら、第２実施例の歩行者検出処理に復帰する。
その後は、図１７および図１８を用いて前述したように、新たな識別辞書が登録されたか否かを判断して（図１７のＳ１５４）、新たな識別辞書が登録されていたら（Ｓ１５４：ｙｅｓ）、前述した識別辞書評価処理（Ｓ４００）を開始し、識別辞書評価処理（Ｓ４００）で候補識別辞書が得られていた場合には（図１８のＳ１５５：ｙｅｓ）、前述した検出識別辞書選択処理（Ｓ５００）を開始する。
そして、検出識別辞書選択処理（Ｓ５００）を終了したら、歩行者検出を終了するか否かを判断し（Ｓ１５６）、歩行者検出を終了しない場合は（Ｓ１５６：ｎｏ）、第２実施例の歩行者検出処理の先頭に戻って、車載カメラ１０から新たな撮影画像を取得した後（図１７のＳ１５０）、上述した続く一連の処理を開始する。
これに対して、歩行者検出を終了すると判断した場合は（Ｓ１５６：ｙｅｓ）、図１７および図１８に示した第２実施例の歩行者検出処理を終了する。
【０１１８】
以上に示した第２実施例の歩行者検出処理では、画像を撮影する環境の変化に応じて識別辞書を学習して、識別辞書の種類を増やしていくことができるので、様々に環境が変化した場合でも、撮影画像中の歩行者を高い精度で検出することが可能となる。
【０１１９】
以上、各種の実施例について説明したが、本発明は上記の実施例および変形例に限られるものではなく、その要旨を逸脱しない範囲において種々の態様で実施することができる。
【０１２０】
例えば、上述した各種の実施例では、ソナー２０〜２３を用いて歩行者位置を検出するものとして説明した。しかし、図２５に示したように、ソナー２０〜２３の代わりにレーダー３０を用いて歩行者位置を検出することとしてもよい。
【符号の説明】
【０１２１】
１…車両、    １０…車載カメラ、    ２０〜２３…ソナー、    ３０…レーダー、    １００…歩行者検出装置、      １０１…識別辞書記憶部、
１０２…検出結果蓄積部、      １０３…歩行者位置蓄積部、
１０４…識別辞書選択部、      １０５…歩行者検出部、
１０６…検出精度評価部、      １０７…再選択要否判断部。
【図１】
0006256239.tif 000002
【図２】
0006256239.tif 000003
【図３】
0006256239.tif 000004
【図４】
0006256239.tif 000005
【図５】
0006256239.tif 000006
【図６】
0006256239.tif 000007
【図７】
0006256239.tif 000008
【図８】
0006256239.tif 000009
【図９】
0006256239.tif 000010
【図１０】
0006256239.tif 000011
【図１１】
0006256239.tif 000012
【図１２】
0006256239.tif 000013
【図１３】
0006256239.tif 000014
【図１４】
0006256239.tif 000015
【図１５】
0006256239.tif 000016
【図１６】
0006256239.tif 000017
【図１７】
0006256239.tif 000018
【図１８】
0006256239.tif 000019
【図１９】
0006256239.tif 000020
【図２０】
0006256239.tif 000021
【図２１】
0006256239.tif 000022
【図２２】
0006256239.tif 000023
【図２３】
0006256239.tif 000024
【図２４】
0006256239.tif 000025
【図２５】
0006256239.tif 000026