(57)【要約】【課題】パートモデルを生成する必要なく、人の一部が隠れている場合であっても、精度よく人を検知できる検知装置、検知プログラムおよび検知方法を提供する。【解決手段】検知装置（２）は、予め定めたパラメータを用いたニューラルネットワーク処理を行って、入力画像内に設定される複数の領域のそれぞれに対し、前記入力画像に人が存在するか否かの識別結果と、前記入力画像における人の位置の回帰結果と、を出力するニューラルネットワーク処理部（２２）を備える。前記パラメータは、人の少なくとも一部を含む画像と、その画像における前記人の位置の真値と、からなる複数のポジティブサンプルと、人を含まない画像からなるネガティブサンプルと、に基づく学習によって定められる。【選択図】図２
2016006626.tif 000002
【特許請求の範囲】
【請求項１】
予め定めたパラメータを用いたニューラルネットワーク処理を行って、入力画像内に設定される複数の領域のそれぞれに対し、前記入力画像に人が存在するか否かの識別結果と、前記入力画像における人の位置の回帰結果と、を出力するニューラルネットワーク処理部を備え、
前記パラメータは、
人の少なくとも一部を含む画像と、その画像における前記人の位置の真値と、からなる複数のポジティブサンプルと、
人を含まない画像からなるネガティブサンプルと、に基づく学習によって定められる、検知装置。
【請求項２】
人が存在すると識別された領域における人の位置の回帰結果を統合して、前記入力画像における前記人の位置を特定する統合部をさらに備える、請求項１に記載の検知装置。
【請求項３】
前記パラメータの数は、前記ポジティブサンプルの数および前記ネガティブサンプルの数に依存しない、請求項１または２に記載の検知装置。
【請求項４】
前記人の位置は、前記人の下端位置を含む、請求項１乃至３のいずれかに記載の検知装置。
【請求項５】
前記入力画像は、車両本体に取り付けられたカメラにより生成され、
当該検知装置は、特定された人の下端位置に基づいて、前記人と前記車両本体との距離を算出する算出部をさらに備える、請求項４に記載の検知装置。
【請求項６】
前記人の位置は、前記人の下端位置に加え、特定の部位の位置を含み、
前記算出部は、人の足元から前記特定の部位までの高さが一定であることを利用し、ある時刻において前記カメラにより生成された入力画像を処理して特定された前記人の位置と、その後の時刻において前記カメラにより生成された入力画像を処理して特定された前記人の位置と、を用いて前記人と前記車両本体との距離を補正する、請求項５に記載の検知装置。
【請求項７】
前記算出部は、
前記人と前記車両本体との距離の時間発展、および、人の足元から前記特定の部位までの高さが一定であることを示すシステムモデルを記述する方程式と、
前記人の位置と、前記人と前記車両本体との距離と、の関係を示す観測モデルを記述する方程式と、
からなる状態空間モデルを時系列の観測値を使って解くことで、前記人と前記車両本体との距離を補正する、請求項６に記載の検知装置。
【請求項８】
前記特定の部位は人の上端位置であり、前記算出部は、人の身長が一定であることを利用して補正を行う、請求項６または７に記載の検知装置。
【請求項９】
前記人の位置は、水平方向における前記人の中心位置を含む、請求項１乃至８のいずれかに記載の検知装置。
【請求項１０】
前記統合部は、
前記人が存在すると識別された領域をグルーピングし、
各グループについて、当該グループに属する人の位置の回帰結果を統合する、
請求項１乃至９のいずれかに記載の検知装置。
【請求項１１】
前記統合部は、前記人の位置の回帰結果のうち、回帰精度が高い回帰結果を重視して前記人の位置の回帰結果を統合する、請求項１乃至１０のいずれかに記載の検知装置。
【請求項１２】
前記パラメータは、前記入力画像に人が存在するか否かの識別に関する第１項と、人の位置の回帰に関する第２項と、を含むコスト関数が収束するよう設定される、請求項１乃至１１のいずれかに記載の検知装置。
【請求項１３】
前記人の位置は、人の複数の部位の位置を含み、
前記第２項は、前記複数の部位の位置のそれぞれに対する係数を含む、請求項１２に記載の検知装置。
【請求項１４】
コンピュータを、
予め定めたパラメータを用いたニューラルネットワーク処理を行って、入力画像内に設定される複数の領域のそれぞれに対し、前記入力画像に人が存在するか否かの識別結果と、前記入力画像における人の位置の回帰結果と、を出力するニューラルネットワーク処理部として機能させ、
前記パラメータは、
人の少なくとも一部を含む画像と、その画像における前記人の位置の真値と、からなる複数のポジティブサンプルと、
人を含まない画像からなるネガティブサンプルと、に基づく学習によって定められる、検知プログラム。
【請求項１５】
人の少なくとも一部を含む画像と、その画像における前記人の位置の真値と、からなる複数のポジティブサンプルと、人を含まない画像からなるネガティブサンプルと、に基づく学習によって、ニューラルネットワーク処理用のパラメータを算出するステップと、
前記パラメータを用いたニューラルネットワーク処理を行って、入力画像内に設定される複数の領域のそれぞれに対し、前記入力画像に人が存在するか否かの識別結果と、前記入力画像における人の位置の回帰結果と、を出力するステップと、を備える、検知方法。
【請求項１６】
車両本体と、
前記車両本体に取り付けられ、前記車両本体の前方を撮影するカメラと、
前記カメラにより生成された画像を入力画像とし、予め定めたパラメータを用いたニューラルネットワーク処理を行って、前記入力画像内に設定される複数の領域のそれぞれに対し、前記入力画像に人が存在するか否かの識別結果と、前記入力画像における人の下端位置の回帰結果と、を出力するニューラルネットワーク処理部と、
人が存在すると識別された領域における人の位置の回帰結果を統合して、前記入力画像における前記人の下端位置を特定する統合部と、
特定された人の下端位置に基づいて、前記人と前記車両本体との距離を算出する算出部と、
前記人と前記車両本体との距離を示す画像を表示するディスプレイと、を備え、
前記パラメータは、
人の少なくとも一部を含む画像と、その画像における前記人の位置の真値と、からなる複数のポジティブサンプルと、
人を含まない画像からなるネガティブサンプルと、に基づく学習によって定められる、車両。
【請求項１７】
人の少なくとも一部を含む画像と、その画像における前記人の位置の真値と、からなる複数のポジティブサンプルと、人を含まない画像からなるネガティブサンプルと、に基づく学習によって、ニューラルネットワーク処理用のパラメータを算出するパラメータ算出部を備える、パラメータ算出装置。
【請求項１８】
コンピュータを、
人の少なくとも一部を含む画像と、その画像における前記人の位置の真値と、からなる複数のポジティブサンプルと、人を含まない画像からなるネガティブサンプルと、に基づく学習によって、ニューラルネットワーク処理用のパラメータを算出するパラメータ算出部として機能させる、パラメータ算出プログラム。
【請求項１９】
人の少なくとも一部を含む画像と、その画像における前記人の位置の真値と、からなる複数のポジティブサンプルと、人を含まない画像からなるネガティブサンプルと、に基づく学習によって、ニューラルネットワーク処理用のパラメータを算出する、パラメータ算出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、人を検知する検知装置、検知プログラムおよび検知方法に関する。また、本発明は、そのような検知装置を備える車両に関する。さらに、本発明は、そのような検知装置で使用され得るパラメータを算出するパラメータ算出装置、パラメータ算出プログラムおよびパラメータ算出方法に関する。
【背景技術】
【０００２】
自動車の安全運転支援のために、歩行者の検知が１つの技術課題となっている。通常の環境では、歩行者の一部分が自動車や標識などに隠れていることも多い。そのため、歩行者の一部のみが見えている場合であっても、その歩行者を検知できるアルゴリズムが必要である。
【０００３】
そこで、非特許文献１では、以下のような手法が提案されている。まず、カメラで得られた画像の矩形領域から得られる画像特徴量に対して、歩行者が含まれるか否かを判定する線形識別器を学習する。その後、その矩形領域をさらに細かく分割したブロックごとに、そのブロックに対応する線形識別器の（部分）スコアを配置し、その分布から部分的隠れが生じている箇所をセグメンテーションを適用することで推定する。部分的隠れが生じていない部分に対し、あらかじめ作成しておいたパートモデル（上半身識別器などを指す）を適用し、スコアを補正する。
【０００４】
このようにすることで、一部が隠れている場合でも頑健な検知が可能であることが非特許文献１に示されている
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】X. Wang, T. X. Han, S. Yan, "An HOG-LBP Detector with Partial Occlusion Handling", IEEE 12th International Conference on Computer Vision (ICCV), 2009.
【非特許文献２】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.
【発明の概要】
【発明が解決しようとする課題】
【０００６】
非特許文献１に開示された手法では、予め体のパートモデルを独立に生成しておく必要がある。しかしながら、体をいくつの部分にどのようなサイズに分けるか、という点が恣意的であり、理論的指針がないのが現状である。
【０００７】
本発明はこのような問題点に鑑みてなされたものであり、その課題は、パートモデルを生成する必要なく、人の一部が隠れている場合であっても、精度よく人を検知できる検知装置、検知プログラムおよび検知方法を提供すること、ならびに、そのような検知装置を備える車両を提供することである。また、本発明の別の課題は、そのような検知装置で使用され得るパラメータを算出するパラメータ算出装置、パラメータ算出プログラムおよびパラメータ算出方法を提供することである。
【課題を解決するための手段】
【０００８】
本発明の一態様によれば、予め定めたパラメータを用いたニューラルネットワーク処理を行って、入力画像内に設定される複数の領域のそれぞれに対し、前記入力画像に人が存在するか否かの識別結果と、前記入力画像における人の位置の回帰結果と、を出力するニューラルネットワーク処理部を備える検知装置が提供される。この検知装置において、前記パラメータは、人の少なくとも一部を含む画像と、その画像における前記人の位置の真値と、からなる複数のポジティブサンプルと、人を含まない画像からなるネガティブサンプルと、に基づく学習によって定められる。
【０００９】
この構成により、人の少なくとも一部を含む画像に基づくパラメータを用いたニューラルネットワーク処理を行うため、人の一部が隠れている場合でも、精度よく人を検知できる。
【００１０】
検知装置は、人が存在すると識別された領域における人の位置の回帰結果を統合して、前記入力画像における前記人の位置を特定する統合部をさらに備えていてもよい。
【００１１】
この構成により、回帰結果を統合するため、安定して人の位置を特定できる。
【００１２】
前記パラメータの数は、前記ポジティブサンプルの数および前記ネガティブサンプルの数に依存しないのが望ましい。
【００１３】
この構成により、パラメータの数を増やすことなく、ポジティブサンプルおよびネガティブサンプルの数を多くすることができ、メモリ容量やメモリアクセス時間の増大を伴うことなく検知の精度を向上できる。
【００１４】
前記人の位置は、前記人の下端位置を含んでいてもよい。この場合、前記入力画像は、車両本体に取り付けられたカメラにより生成され、当該検知装置は、特定された人の下端位置に基づいて、前記人と前記車両本体との距離を算出する算出部をさらに備えるのが望ましい。
【００１５】
この構成により、人の下端位置に基づいて人と車両との距離を算出するため、安全運転の支援に貢献できる。
【００１６】
前記人の位置は、前記人の下端位置に加え、特定の部位の位置を含み、前記算出部は、人の足元から前記特定の部位までの高さが一定であることを利用し、ある時刻において前記カメラにより生成された入力画像を処理して特定された前記人の位置と、その後の時刻において前記カメラにより生成された入力画像を処理して特定された前記人の位置と、を用いて前記人と前記車両本体との距離を補正してもよい。
【００１７】
その具体例として、前記算出部は、前記人と前記車両本体との距離の時間発展、および、人の足元から前記特定の部位までの高さが一定であることを示すシステムモデルを記述する方程式と、前記人の位置と、前記人と前記車両本体との距離と、の関係を示す観測モデルを記述する方程式と、からなる状態空間モデルを時系列の観測値を使って解くことで、前記人と前記車両本体との距離を補正してもよい。
【００１８】
この構成により、補正することによって、人と車両本体との距離の推定精度を向上できる。
【００１９】
一例として、前記特定の部位は人の上端位置であり、前記算出部は、人の身長が一定であることを利用して補正してもよい。
【００２０】
前記人の位置は、水平方向における前記人の中心位置を含んでいてもよい。
【００２１】
この構成により、人の中心位置が特定されるため、人がどのあたりにいるのかを把握できる。
【００２２】
前記統合部は、前記人が存在すると識別された領域をグルーピングし、各グループについて、当該グループに属する人の位置の回帰結果を統合してもよい。
【００２３】
この構成により、グルーピングすることによって、入力画像に複数の人が含まれる場合でも、人の位置を特定できる。
【００２４】
前記統合部は、前記人の位置の回帰結果のうち、回帰精度が高い回帰結果を重視して前記人の位置の回帰結果を統合してもよい。
【００２５】
この構成により、回帰精度が高い回帰結果を重視するため、検知の精度を向上できる。
【００２６】
前記パラメータは、前記入力画像に人が存在するか否かの識別に関する第１項と、人の位置の回帰に関する第２項と、を含むコスト関数が収束するよう設定されてもよい。
【００２７】
この構成により、ニューラルネットワーク処理部が、人が存在するか否かの識別、および、人の位置についての回帰の両方を行うことができる。
【００２８】
前記人の位置は、人の複数の部位の位置を含み、前記第２項は、前記複数の部位の位置のそれぞれに対する係数を含んでいてもよい。
【００２９】
この構成により、係数を適切に設定することで、人の複数の部位のいずれかが支配的または非支配的になるのを防止できる。
【００３０】
また、本発明の別の態様によれば、コンピュータを、予め定めたパラメータを用いたニューラルネットワーク処理を行って、入力画像内に設定される複数の領域のそれぞれに対し、前記入力画像に人が存在するか否かの識別結果と、前記入力画像における人の位置の回帰結果と、を出力するニューラルネットワーク処理部として機能させる検知プログラムが提供される。この検知プログラムにおいて、前記パラメータは、人の少なくとも一部を含む画像と、その画像における前記人の位置の真値と、からなる複数のポジティブサンプルと、人を含まない画像からなるネガティブサンプルと、に基づく学習によって定められる。
【００３１】
この構成によっても、人の少なくとも一部を含む画像に基づくパラメータを用いたニューラルネットワーク処理を行うため、人の一部が隠れている場合でも、パートモデルを生成することなく、精度よく人を検知できる。
【００３２】
また、本発明の別の態様によれば、人の少なくとも一部を含む画像と、その画像における前記人の位置の真値と、からなる複数のポジティブサンプルと、人を含まない画像からなるネガティブサンプルと、に基づく学習によって、ニューラルネットワーク処理用のパラメータを算出するステップと、前記パラメータを用いたニューラルネットワーク処理を行って、入力画像内に設定される複数の領域のそれぞれに対し、前記入力画像に人が存在するか否かの識別結果と、前記入力画像における人の位置の回帰結果と、を出力するステップと、を備える、検知方法が提供される。
【００３３】
この構成によっても、人の少なくとも一部を含む画像に基づくパラメータを用いたニューラルネットワーク処理を行うため、人の一部が隠れている場合でも、パートモデルを生成することなく、精度よく人を検知できる。
【００３４】
また、本発明の別の態様によれば、車両本体と、前記車両本体に取り付けられ、前記車両本体の前方を撮影するカメラと、前記カメラにより生成された画像を入力画像とし、予め定めたパラメータを用いたニューラルネットワーク処理を行って、前記入力画像内に設定される複数の領域のそれぞれに対し、前記入力画像に人が存在するか否かの識別結果と、前記入力画像における人の下端位置の回帰結果と、を出力するニューラルネットワーク処理部と、人が存在すると識別された領域における人の下端位置の回帰結果を統合して、前記入力画像における前記人の位置を特定する統合部と、特定された人の下端位置に基づいて、前記人と前記車両本体との距離を算出する算出部と、前記人と前記車両本体との距離を示す画像を表示するディスプレイと、を備える車両が提供される。この車両において、前記パラメータは、人の少なくとも一部を含む画像と、その画像における前記人の位置の真値と、からなる複数のポジティブサンプルと、人を含まない画像からなるネガティブサンプルと、に基づく学習によって定められる。
【００３５】
この構成によっても、人の少なくとも一部を含む画像に基づくパラメータを用いたニューラルネットワーク処理を行うため、人の一部が隠れている場合でも、パートモデルを生成することなく、精度よく人を検知できる。
【００３６】
また、本発明の別の態様によれば、人の少なくとも一部を含む画像と、その画像における前記人の位置の真値と、からなる複数のポジティブサンプルと、人を含まない画像からなるネガティブサンプルと、に基づく学習によって、ニューラルネットワーク処理用のパラメータを算出するパラメータ算出部を備える、パラメータ算出装置が提供される。
【００３７】
この構成により、人の少なくとも一部を含む画像に基づいてパラメータを算出するため、このパラメータを用いたニューラルネットワーク処理を行うことで、人の一部が隠れている場合でも、パートモデルを生成することなく、精度よく人を検知できる。
【００３８】
また、本発明の別の態様によれば、コンピュータを、人の少なくとも一部を含む画像と、その画像における前記人の位置の真値と、からなる複数のポジティブサンプルと、人を含まない画像からなるネガティブサンプルと、に基づく学習によって、ニューラルネットワーク処理用のパラメータを算出するパラメータ算出部として機能させる、パラメータ算出プログラムが提供される。
【００３９】
この構成によっても、人の少なくとも一部を含む画像に基づいてパラメータを算出するため、このパラメータを用いたニューラルネットワーク処理を行うことで、人の一部が隠れている場合でも、パートモデルを生成することなく、精度よく人を検知できる。
【００４０】
また、本発明の別の態様によれば、人の少なくとも一部を含む画像と、その画像における前記人の位置の真値と、からなる複数のポジティブサンプルと、人を含まない画像からなるネガティブサンプルと、に基づく学習によって、ニューラルネットワーク処理用のパラメータを算出する、パラメータ算出方法が提供される。
【００４１】
この構成によっても、人の少なくとも一部を含む画像に基づいてパラメータを算出するため、このパラメータを用いたニューラルネットワーク処理を行うことで、人の一部が隠れている場合でも、パートモデルを生成することなく、精度よく人を検知できる。
【発明の効果】
【００４２】
パートモデルを生成する必要なく、人の一部が隠れている場合であっても、精度よく人を検知できる。
【図面の簡単な説明】
【００４３】
【図１】一実施形態に係る車両の概略構成を示す図。
【図２】検知装置２の概略構成を示すブロック図。
【図３】パラメータ算出部５の処理手順の一例を示すフローチャート。
【図４】ポジティブサンプルを説明する図。
【図５】ネガティブサンプルを説明する図。
【図６】ニューラルネットワーク処理部２２の処理を説明する図。
【図７】ニューラルネットワーク処理部２２におけるＣＮＮの構造を示す図。
【図８】出力層２２３ｃの構造を模式的に示す図。
【図９】生の検知結果の一例を示す図。
【図１０】グループ化の処理手順の一例を示すフローチャート。
【図１１】下端位置についての推定精度を説明する図。
【図１２】算出部２４の処理を説明する図。
【図１３】画像生成部２５が生成する画像データを模式的に示す図。
【図１４】状態空間モデルを説明する図。
【図１５】距離推定の実験結果を示すグラフ。
【発明を実施するための形態】
【００４４】
以下、本発明に係る実施形態について、図面を参照しながら説明する。なお、以下に説明する実施形態は、本発明を実施する場合の一例を示すものであって、本発明を以下に説明する具体的構成に限定するものではない。本発明の実施にあたっては、実施形態に応じた具体的構成が適宜採用されてよい。
【００４５】
（第１の実施形態）
図１は、一実施形態に係る車両の概略構成を示す図である。この車両は、カメラ１と、検知装置２と、ディスプレイ３と、車両本体４とを備えている。
【００４６】
カメラ１は、車両本体４のルームミラーの裏側など運転の妨げにならない位置に、光軸が水平方向を向くよう取り付けられる。光軸が厳密に水平方向を向いているのが望ましいが、多少の誤差があっても構わない。カメラ１は車両本体４の前方を撮影して画像を生成し、この画像を検知装置２に出力する。１台のみのカメラ１を用いることで、システムを簡略化でき、コストも削減できる。
【００４７】
検知装置２はカメラ１からの画像が入力画像として入力される。そして、検知装置２は、入力画像に歩行者などの人が存在するか否か、存在する場合にその人の位置はどこであるか、の検知を行う。そして、検知装置２は検知結果を示す画像データを生成する。
【００４８】
ディスプレイ３は車両本体４内のダッシュボードやオーディオスペースなどに取り付けられる。そして、ディスプレイ３には、検知装置２による検知結果として、車両本体４の前方に人がいるか否か、いる場合にはどこにいるのか、といった情報が表示される。
【００４９】
以下、検知装置２について説明する。
【００５０】
図２は、検知装置２の概略構成を示すブロック図である。検知装置２は、メモリ部２１と、ニューラルネットワーク処理部２２と、統合部２３と、算出部２４と、画像生成部２５とを有する。これら各部は１台の装置に内蔵されてもよいし、複数台の装置に分散していてもよい。また、ニューラルネットワーク処理部２２、統合部２３、算出部２４および画像生成部２５の一部または全部は、コンピュータのプロセッサが所定のプログラムを実行することによって実現される機能であってもよいし、ハードウェアによって実装されてもよい。各部の概要は以下の通りである。
【００５１】
メモリ部２１には、パラメータ算出部５によって予め算出された畳み込みニューラルネットワーク（Convolutional Neural Network：ＣＮＮ）処理用の重みＷが、パラメータとして記憶されている。なお、パラメータ算出部５は、検知装置２とは別個のパラメータ算出装置内に設けられてもよいし、検知装置２内に設けられてもよい。いずれの場合でも、パラメータ算出部５は所定のプログラムを実行することによって実現される機能であってもよい。
【００５２】
ニューラルネットワーク処理部２２は入力画像内に複数の領域を設定する。そして、ニューラルネットワーク処理部２２は、ニューラルネットワーク処理を行って、複数の領域のそれぞれに対し、入力画像に人が存在するか否かの識別結果、および、存在する場合に入力画像における人の位置の回帰結果を出力する。ニューラルネットワーク処理の際に、ニューラルネットワーク処理部２２はメモリ部２１に記憶された重みＷを用いる。
【００５３】
ここで、識別（Classification）とは、人が存在するか否かの２値の推定をいう。また、回帰（Regression）とは、入力画像における人の位置についての連続値の推定をいう。
【００５４】
本実施形態では、人の位置が、人の上端（頭頂部）、下端（接地点）および水平方向の中心位置である例を示すが、人の位置がこれらの一部のみであってもよいし、別の位置を含んでいてもよい。
【００５５】
統合部２３は、人が存在すると識別された領域での回帰結果である、人の上端、下端および中心位置をそれぞれ統合し、入力画像における人の上端、下端および中心位置を特定する。
【００５６】
算出部２４は、特定された人の位置に基づいて、その人と車両本体４との距離などを算出する。
【００５７】
画像生成部２５は、統合部２３および算出部２４の処理結果に基づいて、図１のディスプレイ３に表示するための画像データを生成する。望ましくは、画像生成部２５は、人が車両本体４前方のどのあたりにいるのか、および、車両本体４と人との距離が把握できるような画像データを生成する。この画像データはディスプレイ４に出力される。
【００５８】
続いて、各部の詳細を説明する。
【００５９】
図３は、パラメータ算出部５の処理手順の一例を示すフローチャートである。メモリ部２１には、同図に示す手順に従って算出されたＣＮＮ処理用の重みＷが記憶される。
【００６０】
まず、パラメータ算出部５には、教師データとして、ポジティブサンプルおよびネガティブサンプルが入力される（ステップＳ１）。
【００６１】
図４は、ポジティブサンプルを説明する図である。ポジティブサンプルは、ＣＮＮの入力となる２次元配列の画像と、それに対応したＣＮＮの出力となるターゲット値との組である。ターゲット値は、当該画像に人が存在するということと、その人の上端、下端および中心位置である。
【００６２】
ポジティブサンプル用に、図４（ａ）に示すような人を含む画像が用いられる。この画像はグレースケールであってもよいし、ＲＧＢなどの要素を持つカラー画像であってもよい。この画像内に、人の少なくとも一部、すなわち一部または全体が含まれるよう、図４（ｂ）に示すように画像の一部を切り出す。切り出すサイズはランダムであり、その縦横比は一定とする。そして、切り出された部分を一定のサイズにリサイズして小画像を生成する。
【００６３】
人の一部とは、頭部、肩、腹、腕、脚、上半身、下半身、あるいは、それらの一部や組み合わせなどである。人の部位が互いに異なる多くの小画像を用意するのが望ましい。また、人の一部または全体が、その中心に含まれる小画像、端に含まれる小画像など、含まれる位置が互いに異なる多くの小画像を用意するのが望ましい。さらに、小画像に対して、人の一部または全体が大きいものや小さいものなど、多くの小画像を用意するのが望ましい。
【００６４】
このような小画像が多数の画像（例えば数千枚）から生成される。種々の小画像を用いることで、位置ずれに対して頑強なＣＮＮ処理を行うことができる。
【００６５】
また、各小画像には、人の位置として、その上端、下端および中心位置の座標の真値が関連づけられている。ここで、各座標は図４（ａ）の元画像における絶対座標ではなく、各小画像における相対座標である。例えば、各小画像の中心を原点、水平方向をｘ軸、垂直方向をｙ軸とするｘｙ座標系で、人の上端、下端および中心位置が定義される。以下では、上端、下端および中心位置の相対座標の真値を順に、上端位置ｙｔｏｐ、下端位置ｙｂｔｍ，中心位置ｘｃとする。
【００６６】
以上のような各小画像および位置ｙｔｏｐ，ｙｂｔｍ，ｘｃからなるポジティブサンプルがパラメータ算出部５に入力される。
【００６７】
図５は、ネガティブサンプルを説明する図である。ネガティブサンプルは、ＣＮＮの入力となる２次元配列の画像と、それに対応したＣＮＮの出力となるターゲット値との組である。ターゲット値は、当該画像に人が存在しないということである。
【００６８】
ネガティブサンプル用に、人を含む画像（図５（ａ））および人を含まない画像が用いられ得る。いずれの場合でも、人の一部または全体が含まれないよう、図５（ｂ）に示すように画像の一部を切り出す。切り出すサイズはランダムであり、その縦横比は一定とする。そして、切り出された部分を一定のサイズにリサイズして小画像を生成する。切り出すサイズや元画像内での位置が互いに異なる多くの小画像を用意するのが望ましい。このような小画像が多数の画像（例えば数千枚）から生成される。
【００６９】
以上のような各小画像からなるネガティブサンプルがパラメータ算出部５に入力される。なお、ネガティブサンプルは人を含まないので、人の位置が関連づけられている必要はない。
【００７０】
図３に戻り、パラメータ算出部５は、ポジティブサンプルおよびネガティブサンプルに基づいて、コスト関数Ｅ（Ｗ）を設定する（ステップＳ２）。本実施形態では、パラメータ算出部５が識別および回帰の両方を考慮したコスト関数Ｅ（Ｗ）を設定する。コスト関数Ｅ（Ｗ）は、例えば下記（１）式で定義される。
【００７１】
【数１】
2016006626.tif 000003
【００７２】
ここで、Ｎはポジティブサンプルおよびネガティブサンプルの総数である。Ｗはニューラルネットワークにおける各層の重みの総称であり、後続ステップによりコスト関数Ｅ（Ｗ）が小さくなるよう最適化される。
【００７３】
上記（１）式の右辺第１項は識別（すなわち、人が存在するか否かの２値の推定）に関する項であり、例えば負のクロスエントロピーとして下記（２）式で定義される。
【００７４】
【数２】
2016006626.tif 000004
【００７５】
ここで、ｃnはｎ番目のサンプルｘnの識別の正解値であり、２値をとり得る。より具体的には、ｃnは、ポジティブサンプルが入力される場合は「１」であり、ネガティブサンプルが入力される場合は「０」である。また、ｆcl（ｘn；Ｗ）はシグモイド関数と呼ばれる関数である。シグモイド関数ｆcl（ｘn；Ｗ）は、サンプルｘnに対する識別の出力であり、０より大きく１より小さい。
【００７６】
ｃn＝１すなわちポジティブサンプルが入力される場合、上記（２）式は、下記（２ａ）式となる。
【００７７】
【数３】
2016006626.tif 000005
【００７８】
この場合、コスト関数Ｅ（Ｗ）を小さくするために、シグモイド関数ｆcl（ｘn；Ｗ）が１に近づくよう重みＷが最適化される。
【００７９】
一方、ｃn＝０すなわちネガティブサンプルの場合、上記（２）式は、下記（２ｂ）式となる。
【００８０】
【数４】
2016006626.tif 000006
【００８１】
ｃn＝０の場合、コスト関数Ｅ（Ｗ）を小さくするために、シグモイド関数ｆcl（ｘn；Ｗ）が０に近づくよう重みＷが最適化される。
【００８２】
以上から分かるように、シグモイド関数ｆcl（ｘn；Ｗ）がｃnに近づくよう、重みＷが最適化される。
【００８３】
また、上記（２）式の右辺第２項は回帰（すなわち、人の位置についての連続値の推定）に関する項であり、回帰における誤差の二乗和として例えば下記（３）式で定義される。
【００８４】
【数５】
2016006626.tif 000007
【００８５】
ここで、ｒn1は、ｎ番目のポジティブサンプルにおける人の中心位置ｘｃの真値である。ｒn2は、ｎ番目のポジティブサンプルにおける人の上端位置ｙｔｏｐの真値である。ｒn3は、ｎ番目のポジティブサンプルにおける人の下端位置ｙｂｔｍの真値である。
【００８６】
ｆre1（ｘn；Ｗ）は、ｎ番目のポジティブサンプルにおける人の中心位置の回帰の出力である。ｆre2（ｘn；Ｗ）は、ｎ番目のポジティブサンプルにおける人の上端位置の回帰の出力である。ｆre3（ｘn；Ｗ）は、ｎ番目のポジティブサンプルにおける人の下端位置の回帰の出力である。
【００８７】
コスト関数Ｅ（Ｗ）を小さくするために、シグモイド関数ｆrej（ｘn；Ｗ）が真値ｒnj（ｊ＝１，２，３）に近づくよう重みＷが最適化される。
【００８８】
また、より望ましい例として、回帰における人の中心位置、上端位置および下端位置どうしのバランスや、識別と回帰とのバランスを調整すべく、上記（２）式の右辺第２項は下記（３’）で定義されてもよい。
【００８９】
【数６】
2016006626.tif 000008
【００９０】
上記（３’）式では係数αjが乗じられている。すなわち、この式は、人の中心位置、上端位置および下端位置に対する係数α1，α2，α3をそれぞれ含んでいる。（３’）式において、α1＝α2＝α3＝１としたものが（３）式と考えることもできる。係数αjは予め設定された定数である。係数αjを適切に設定することで、第２項のｊ＝１，２，３（人の中心位置、上端位置および下端位置にそれぞれ対応）のいずれかが支配的または非支配的になることを防止できる。
【００９１】
通常、人は横（幅）より縦（高さ）が長い。したがって、人の中心位置の誤差はそれほど大きくならないと考えられる。一方で、人の上端位置および下端位置は相対的に誤差が大きくなると考えられる。そのため、上記（３）式を用いた場合、人の上端位置および下端位置の誤差を優先的に小さくするよう重みＷが最適化され得る。その結果、人の中心位置の回帰精度が学習とともに低くなっていかない可能性がある。
【００９２】
このようは場合には、上記（３’）式を用い、係数α1を係数α2，α3より大きく設定する。これにより、人の中心位置、上端位置および下端位置のいずれもがバランスよい精度で回帰結果が出力される。
【００９３】
また、同様にして、係数αjにより、識別および回帰のいずれかが支配的になることも防止できる。例えば、上記（３）式を用いた場合に識別の精度が高く回帰の精度が極端に低い場合、係数α1，α2，α3を全体的に１より高く設定すればよい。
【００９４】
このようにして設定されるコスト関数Ｅ（Ｗ）に対し、パラメータ算出部５は重みＷを更新する（ステップＳ３）。より具体的には、パラメータ算出部５は誤差逆伝搬法を適用し、下記（４）式に従って重みＷを更新する。
【００９５】
【数７】
2016006626.tif 000009
【００９６】
次いで、パラメータ算出部５はコスト関数Ｅ（Ｗ）が収束したか否かを判定する（ステップＳ４）。コスト関数Ｅ（Ｗ）が収束していない場合（ステップＳ４のＮＯ）、パラメータ算出部５は再度重みＷを更新する（ステップＳ３）。コスト関数Ｅ（Ｗ）が収束するまで（ステップＳ４のＹＥＳ）、パラメータ算出部５が以上の処理を繰り返すことで重みＷが算出される。そして、パラメータ算出部５は重みＷをニューラルネットワークの全層のそれぞれについて算出する。
【００９７】
なお、ＣＮＮは順伝搬型のニューラルネットワークの一種である。ある層の信号は、１つ前の層の信号および層間の重みの関数であり、この関数は微分可能である。よって、ＣＮＮの場合も、通常のニューラルネットワークと同様に、逆誤差伝搬法を適用して重みＷを最適化できる。
【００９８】
このように、機械学習の枠組みでコスト関数Ｅ（Ｗ）が最適化される。言い換えると、重みＷは多種多様のポジティブサンプルおよびネガティブサンプルに基づく学習によって算出される。ポジティブサンプルには、体の一部のみを含む画像が含まれる。そのため、パートモデルを明示的に学習することなく、ニューラルネットワーク処理部２２において、一部が隠れた人であっても、その存在や位置を精度よく検知できる。すなわち、特定したい位置の隠れに対して頑健であり、例えば、人の下端が隠れていたり画像外にあったりしても、人の下端位置を検知できる。また、多くのサイズのポジティブサンプルおよびネガティブサンプルを用いるため、入力画像に存在する人の大きさに対しても頑健である。
【００９９】
以上のようにして算出される重みＷの数は、ポジティブサンプルおよびネガティブサンプルの数には依存しない。そのため、ポジティブサンプルおよびネガティブの数を多くしても、重みＷの数は増えない。よって、多くのポジティブサンプルおよびネガティブサンプルを用いることで、メモリ部２１で必要な記憶容量が増大したりメモリアクセスの時間が長くなったりすることなく、検知の精度を向上できる。
【０１００】
続いて、図２のニューラルネットワーク処理部２２について詳しく説明する。ニューラルネットワーク処理部２２は、ニューラルネットワーク処理を行って、入力画像内に設定される複数の領域のそれぞれに対し、入力画像に人が存在するか否かの識別結果、および、存在する場合に入力画像における人の上端、下端および中心位置についての回帰結果を出力する。なお、ＣＮＮ処理については非特許文献２に説明されている。
【０１０１】
図６は、ニューラルネットワーク処理部２２の処理を説明する図である。図６（ａ）に示すように、まず、ニューラルネットワーク処理部２２は入力画像内の左上に領域６ａを設定する。領域６ａのサイズはポジティブサンプルおよびネガティブサンプルにおける小画像のサイズと等しい。そして、この領域６ａに対して、ニューラルネットワーク処理部２２は処理を行う。続いて、図６（ｂ）に示すように、ニューラルネットワーク処理部２２は、入力画像内の別の一部、より具体的には、領域６ａのわずかに右であってこれと一部が重複する位置に、同サイズの領域６ｂを設定する。そして、この領域６ｂに対して、ニューラルネットワーク処理部２２は処理を行う。
【０１０２】
その後、ニューラルネットワーク処理部２２は、領域の位置を右にずらしながら、処理を行う。その後、図６（ｃ）に示す、入力画像の右端に設定された領域６ｃの処理が終了すると、図６（ｄ）に示すように、領域６ａのわずかに下であってこれと一部が重複する位置に領域６ｄを設定する。
【０１０３】
以下、ニューラルネットワーク処理部２２は左上から右下の順に領域をずらしながら全領域に対して処理を行う。少しずつずらしながら各領域が設定されることから、各領域はスライディングウインドウとも呼ばれる。
【０１０４】
ここで、メモリ部２１に記憶される重みＷは、多くのサイズのポジティブサンプルおよびネガティブサンプルに基づいて算出されている。そのため、ニューラルネットワーク処理部２２は入力画像に対して固定サイズのスライディングウインドウを設定すればよい。もちろん、検知の精度を向上させるために、ニューラルネットワーク処理部２２は、入力画像をリサイズして得られる複数のピラミッド画像に対してこのような処理を行ってもよい。少ない数のピラミッド画像であっても、十分な精度が得られる。いずれにしてもニューラルネットワーク処理部２２での処理量がそれほど多くならないため、短時間での処理が可能である。
【０１０５】
図７は、ニューラルネットワーク処理部２２におけるＣＮＮの構造を示す図である。ＣＮＮは、１または複数の畳み込み部２２１およびプーリング部２２２の組と、多層ニューラルネットワーク構造２２３とを有する。
【０１０６】
畳み込み部２２１は各スライディングウインドウに対してフィルタ２２１ａを適用し畳み込みを行う。フィルタ２２１ａはｎピクセル×ｎピクセル（ｎは正の整数であり、例えば５）の要素を持つ重みである。各重みはバイアスを含んでいてもよい。この重みは、パラメータ算出部５によって算出され、メモリ部２１に記憶されたものである。畳み込み演算された値は、シグモイド関数などの活性化関数（Activation Function）によって、非線形写像が行われる。こうして得られた信号は、２次元配列で記述される画像信号となる。
【０１０７】
プーリング部２２２は畳み込み部２２１からの画像信号の解像度を下げるプーリング操作を行う。
【０１０８】
プーリング操作の具体例として、プーリング部２２２は、上述の２次元配列を２×２のグリッドに分割し、各グリッドの４つの信号値の最大値を抽出する最大値プーリング（Max Pooling）を行う。このプーリング操作により、上述の二次元配列はその４分の１のサイズに縮小される。プーリング操作により、画像の位置に関する特徴を失わずに情報を圧縮できる。プーリング操作の結果得られた２次元配列をマップ（map）と呼ぶ。マップの集まりがＣＮＮにおいて１つの隠れ層を形成する。
【０１０９】
プーリング操作の別の例として、プーリング部２２２は、２×２のグリッドのある１つの要素（例えば左上の（１，１）要素）だけを取り出すサブサンプリング（subsampling）を行ってもよいし、グリッドの中で最大となる要素だけを取り出す最大値プーリング（Max pooling）を行ってもよい。また、プーリング部２２２は、グリッド同士をオーバーラップするようにして、最大値プーリングを行ってもよい。いずれにしても、畳み込みされた２次元配列を縮小する点は同じである。
【０１１０】
通常、畳み込み部２２１とプーリング部２２２との組は複数設けられる。図７の例では２組が設けられるが、３組以上あってもよいし１組でもよい。畳み込み部２２１およびプーリング部２２２によってスライディングウインドウを充分に圧縮した後、（畳み込みではない）通常の多層ニューラルネットワーク構造２２３が通常のニューラルネットワーク処理を行う。
【０１１１】
多層ニューラルネットワーク構造２２３は、入力層２２３ａと、１または複数の隠れ層２２３ｂと、出力層２２３ｃとを有する。入力層２２３ａには、畳み込み部２２１およびプーリング部２２２によって圧縮された画像信号が入力される。隠れ層２２３ｂはメモリ部２１に記憶された重みＷを用いて積和演算を行う。出力層２２３ｃはニューラルネットワーク処理の最終結果を出力する。
【０１１２】
図８は、出力層２２３ｃの構造を模式的に示す図である。出力層２３３ｃは、閾値処理部３１と、識別ユニット３２と、回帰ユニット３３ａ〜３３ｃとを有する。
【０１１３】
閾値処理部３１には、隠れ層２２３ｂから識別結果に関する値が入力される。この値は０以上１以下の値であり、０に近いほど入力画像に人が存在する可能性が低いことを意味し、１に近いほど入力画像に人が存在する可能性が高いことを意味する。閾値処理部３１はこの値と所定の閾値とを比較し、０または１が識別ユニット３２に設定される。なお、後述するように、閾値処理部３１へ入力される値を統合部２３で用いてもよい。
【０１１４】
回帰ユニット３３ａ〜３３ｃには、隠れ層２２３ｂから、人の上端、下端および中心位置がそれぞれ回帰結果として設定される。回帰ユニット３３ａ〜３３ｃには、各位置として任意の値が設定され得る。
【０１１５】
以上説明したニューラルネットワーク処理部２２により、スライディングウインドウごとに、入力画像に人が存在するか否か、および、人の上端、下端および中心位置が出力される。以下では、これを「生の検知結果」と呼ぶ。
【０１１６】
図９は、生の検知結果の一例を示す図である。同図では、人が存在すると識別されたスライディングウインドウにおける、上端、下端および中心位置を「Ｉ」型で模式的に示している。この時点では、正確に検知されたものもあれば、そうでないものもある。なお、分かりやすさのために図９では数個のみの検知結果を示しているが、実際には多くのスライディングウインドウにおいて、入力画像に人が存在すると識別される。
【０１１７】
続いて、図２の統合部２３について詳しく説明する。
【０１１８】
統合部２３は、第１段階として、人が存在すると識別されたスライディングウインドウにおける検知結果を、近いものが同一グループに属するようグルーピングする。そして、統合部２３は、第２段階として、各グループについて、当該グループに属する生の検知結果を統合する。これにより、入力画像に複数の人が存在する場合でも、その人の入力画像における上端、下端および中心位置を特定できる。このように、本実施形態によれば、入力画像から直接的に下端位置を特定できる。
【０１１９】
まず、第１段階のグルーピングについて説明する。
【０１２０】
図１０は、グループ化の処理手順の一例を示すフローチャートである。まず、統合部２３は生の検知結果のそれぞれに対して矩形の枠を設定する（ステップＳ１１）。より具体的には、統合部２３は、生の検知結果における人の上端、下端および中心位置とそれぞれ一致するよう、枠の上端、下端および水平方向の中心位置を定める。さらに、統合部２３は、枠のアスペクト比が予め定めた一定値（例えば、横：縦＝０．４：１）となるよう、枠５２の幅を定める。言い換えると、統合部２３は、人の上端位置と下端位置との差に基づいて、枠の幅を定める。
【０１２１】
続いて、統合部２３は、各枠にラベル「０」を付与するとともに、パラメータｋを０に初期設定する（ステップＳ１２）。以下、ラベル「ｋ」が付与された枠を「ラベルｋの枠」と表記する。
【０１２２】
そして、統合部２３は、ラベル０の枠のうち、最もスコアが高い枠にラベルｋ＋１を付与する（ステップＳ１３）。スコアが高いとは検知の精度が高いことを意味し、例えば図８の閾値処理部３１で閾値処理される前の値が１に近いほどスコアが高いとする。
【０１２３】
その後、統合部２３は、ラベル０の枠のうち、ラベルｋ＋１の枠とオーバーラップする枠にラベルｋ＋１を付与する（ステップＳ１４）。オーバーラップするか否かの判定例として、統合部２３は、枠と枠の積集合の面積と和集合の面積との比に対して、閾値判定を行ってもよい。
【０１２４】
そして、統合部２３はパラメータｋを１だけインクリメントする（ステップＳ１５）。以降、統合部２３はラベル０の枠が残らなくなるまで以上の処理を繰り返す（ステップＳ１６）。これにより、生の検知結果がｋ個のグループに分類される。これは、入力画像にｋ人の人が存在することに対応する。
【０１２５】
次に、第２段階の統合について説明する。
【０１２６】
統合部２３は、各グループにおいて、上端、下端および中心位置の単純な平均を算出することにより、統合してもよい。また、統合部２３は各位置の刈り込み平均を算出することにより統合してもよい。すなわち、統合部２３は、各位置の上位および下位の予め定めた割合を除外し、それ以外の位置を平均してもよい。
【０１２７】
また、統合部２３は、平均を算出する際、推定精度が高いと思われる位置を重視してもよい。
【０１２８】
その一例として、統合部２３は検証用データを使って推定精度を見積もってもよい。検証用データとは、正解データを持つ、学習に使わないデータである。検証用データに検知および回帰を行うことで、推定精度を見積もることができる。
【０１２９】
図１１は、下端位置についての推定精度を説明する図である。横軸は下端位置の推定値であり、縦軸は誤差（真値と推定値との差）の絶対値である。図示のように、下端位置の推定値がある程度大きくなると、誤差の絶対値が大きくなる。その理由は、下端位置が小さい場合は人の下端がスライディングウインドウ内に含まれており、下端が含まれるスライディングウインドウから下端位置を推定するため、その精度は高くなる。一方、下端位置が大きい場合、下端がスライディングウインドウ内には含まれておらず、下端が含まれないスライディングウインドウから下端位置を推定するために推定精度は低くなる。
【０１３０】
よって、統合部２３は、図１１に示すような下端位置の推定値と誤差との関係を記憶しておき、各スライディングウインドウで推定された下端位置における誤差に基づく重みを用いて重み付き平均を算出してもよい。
【０１３１】
重みは、例えば、誤差の絶対値の逆数や平均二乗誤差の逆数でもよいし、下端位置の推定値が所定の閾値を超えるか否かに応じた２値のいずれかでもよい。
【０１３２】
なお、下端位置ではなく、上端位置や中心位置がスライディングウインドウに含まれるか否かなど、スライディングウインドウにおける人の相対位置に応じて、重み付けしてもよい。
【０１３３】
別の例として、統合部２３は、ニューラルネットワーク処理部２２による処理過程における、図８の閾値処理部３１に入力される値を重みとする重み付き平均を算出してもよい。この値が１に近いほど入力画像に人が存在する可能性が高く、位置に関する推定精度も高いと考えられるためである。
【０１３４】
以上のようにして、入力画像に人が存在する場合に、その人の上端、下端および中心位置が特定される。本実施形態では、多数のスライディングウインドウにおいて人の存在が検知される。そして、その多数のスライディングウインドウにおける「生の検知結果」を統合するため、統計的に安定した推定結果が得られる。
【０１３５】
続いて、図２の算出部２４について詳しく説明する。算出部２４は、統合後の人の下端位置に基づいて、車両本体４と人との距離を算出する。
【０１３６】
図１２は、算出部２４の処理を説明する図である。カメラ１が既知の高さＣ（例えば１３０ｃｍ）に設置されているとする。また、カメラ１の焦点距離をｆとする。さらに、画像座標系として、画像の中心を原点、水平方向をｘ軸、垂直方向をｙ軸とする（下向きを正）。そして、統合部２３によって得られた人の下端位置の座標がｂであったとする。
【０１３７】
このとき、図示のように、三角形の相似関係から、算出部２４は下記（５）式に基づいてカメラ１と人との距離Ｄを算出する。
【０１３８】
Ｄ＝Ｃｆ／ｂ  ・・・（５）
必要に応じて、算出部２４は、カメラ１と人との距離Ｄを、車両本体４と人との距離Ｄ’に変換する。
【０１３９】
また、算出部２４は、人の上端位置ｔに基づいて、人の身長を算出してもよい。図示のように、三角形の相似関係から、算出部２４は下記（６）式に基づいて人の身長Ｈを算出する。
【０１４０】
Ｈ＝｜ｔ｜Ｄ／ｆ＋Ｃ  ・・・（６）
人の身長Ｈに基づいて、この人が大人であるか子供であるかなどを推定できる。
【０１４１】
続いて、図２の画像生成部２５について詳しく説明する。
【０１４２】
図１３は、画像生成部２５が生成する画像データを模式的に示す図である。カメラ１が生成した画像に人が存在すると識別された場合、ディスプレイ３での表示用に、画像生成部２５は人を模したマーク４１を含む画像データを生成する。画像データにおけるマーク４１の水平座標ｘは、統合部２３で得られた人の水平位置に基づく。また、マーク４１の垂直座標ｙは、算出部２４で算出された、カメラ１と人との距離Ｄ（または、車両本体４と人との距離Ｄ’）に基づく。このような画像データにおいて、マーク４１の有無により車両本体４の前方に人がいるか否かが把握される。また、マーク４１の水平座標ｘおよび垂直座標ｙにより車両本体４前方のどのあたりに人がいるのかが把握される。
【０１４３】
また、カメラ１が連続的に前方を撮影することで、人の移動方向が分かる。そこで、画像データは人の移動方向を示す矢印４２を含んでいてもよい。
【０１４４】
さらに、算出部２４が人の身長Ｈを算出している場合、人が大人であるか子供であるかに応じて異なるマークとしてもよい。
【０１４５】
以上のような画像データを画像生成部２５はディスプレイ３に出力する。そして、図１３に示す画像がディスプレイ３に表示される。
【０１４６】
このように、第１の実施形態では、人の一部または全体を含む多数のポジティブサンプルに基づくパラメータを用いたニューラルネットワーク処理を行って、入力画像に人が存在するか否か、および、存在する場合にその人の位置はどこであるかの検知を行う。そのため、パートモデルを予め生成することなく、人の一部が隠れている場合でも、精度よく人を検知できる。
【０１４７】
（第２の実施形態）
次に説明する第２の実施形態は、人の身長が一定であること、および、カメラ１から取得される複数フレームからの検知結果を利用して、カメラ１と人との距離Ｄを補正するものである。
【０１４８】
図２に示す検知装置２において、本実施形態のニューラルネットワーク処理部２２および統合部２３は、カメラ１からの入力画像から、当該入力画像における人の中心位置ｃ、上端位置ｔおよび下端位置ｂを特定する。図１２を用いて説明した上記（５）式から分かるように、距離Ｄを算出するためには下端位置ｂさえあればよい。しかしながら、本実施形態では、距離Ｄの精度向上のために上端位置ｔをも利用する。
【０１４９】
そして、本実施形態の算出部２４は、ある時刻ｔでのフレームに対するニューラルネットワーク処理および統合処理によって特定された、画像における人の中心位置ｃ、上端位置ｔおよび下端位置ｂから、距離Ｄｔおよび人の身長Ｈｔを算出する。さらに、算出部２４は、ある時刻ｔ＋１におけるフレームから特定された、画像における人の中心位置ｃ、上端位置ｔおよび下端位置ｂから、距離Ｄｔ＋１および人の身長Ｈｔ＋１を算出する。そして、本来身長は一定であって身長Ｈｔ，Ｈｔ＋１がほぼ時不変であることを利用して、距離Ｄｔ、Ｄｔ＋１を補正する。これにより、距離Ｄｔ，Ｄｔ＋１の精度を向上できる。以下、拡張カルマンフィルタを利用して補正を行う例を詳しく説明する。なお、各式では路面が平坦であると仮定している。
【０１５０】
図１４は、状態空間モデルを説明する図である。図示のように、カメラ１の光軸をＺ軸、鉛直方向下向きをＹ軸、Ｚ軸およびＹ軸と直交する方向であって水平方向右手座標系により定まる方向をＸ軸とする。
【０１５１】
状態変数ｘｔを下記（７）式のように定義する。
【０１５２】
【数８】
2016006626.tif 000010
【０１５３】
ここで、Ｚｔは人の位置のＺ成分（以下では、単にＺ位置とも呼ぶ）であり、上記図１２における車両本体４と人との距離Ｄに対応する。なお、添え字ｔは時刻ｔにおける値であることを示しており、他の変数においても同様である。Ｘｔは人の位置のＸ成分（以下では、単にＸ位置とも呼ぶ）である。また、Ｚｔ’は人の速度のＺ成分（以下では、単にＺ方向速度とも呼ぶ）であり、Ｚ位置Ｚｔの時間微分である。Ｘｔ’は人の速度のＸ成分（以下では、単にＸ方向速度とも呼ぶ）であり、Ｘ位置Ｘｔの時間微分である。そして、Ｈｔは人の身長である。
【０１５４】
状態変数の時間発展を記述する方程式はシステムモデルと呼ばれ、例えば等速直線運動モデルに身長の時不変性を加味したものとすることができる。すなわち、変数Ｚｔ，Ｘｔ，Ｚｔ’，Ｘｔ’の時間発展は加速度のＺ成分Ｚｔ’’（以下では、Ｚ方向加速度とも呼ぶ）およびＸ成分Ｘｔ’’（以下では、Ｘ方向加速度とも呼ぶ）をそれぞれシステムノイズとした等速直線運動として与えられる。一方、身長は時不変であるので、原則として異なる値に時間発展しない。ただし、歩行動作中には膝関節の曲げ伸ばしなどによって、身長Ｈｔが微小に変動することもあるため、システムノイズｈｔを設けてもよい。
【０１５５】
以上から、例として、システムモデルは下記（８）〜（１３）式で記述される。ただし、カメラ１で生成される画像を連続的に処理するものとして、時間間隔を１（すなわち１フレーム）としている。
【０１５６】
【数９】
2016006626.tif 000011
【０１５７】
ここで、上記（１２），（１３）式に示すように、システムノイズｗｔは平均値０のガウス分布で与えられるものと仮定する。そして、システムノイズｗｔは、Ｚ方向およびＸ方向に関して等方的であるとして、Ｚ方向加速度Ｚｔ’’およびＸ方向加速度Ｘｔ’’の分散はともにσQ2とする。一方、身長Ｈｔは本来一定であり、時間変動があるとしても微小であるので、身長Ｈｔの分散σH2は分散σQ2と比べて十分小さくするか０とする。
【０１５８】
上記（８）式の第１行は下記（８ａ）式となる。
【０１５９】
Ｚｔ＋１＝Ｚｔ＋Ｚｔ’＋Ｚｔ’’／２  ・・・（８ａ）
この式は、Ｚ位置に関して、一般的な等加速度直線運動における変位の時間発展を示しており、時刻ｔ＋１におけるＺ位置Ｚｔ＋１（左辺）は、時刻ｔにおけるＺ位置Ｚｔ（右辺第１項）から、速度に起因する移動量Ｚｔ’（右辺第２項）および加速度（システムノイズ）に起因する移動量Ｚｔ’’／２（右辺第３項）だけ変化したものとなっている。上記（８）式の第２行も同様である。
【０１６０】
上記（８）式の第３行は下記（８ｂ）式となる。
【０１６１】
Ｚｔ＋１’＝Ｚｔ’＋Ｚｔ’’  ・・・（８ｂ）
この式は、Ｚ方向速度に関して、一般的な等加速度直線運動における速度の時間発展を示しており、時刻ｔ＋１におけるＺ方向速度Ｚｔ＋１’（左辺）は、時刻ｔにおけるＺ方向速度Ｚｔ’（右辺第１項）からＺ方向加速度（システムノイズ）Ｚｔ’’だけ変化したものとなっている。上記（８）式の第４行も同様である。
【０１６２】
上記（８）式の第５行は下記（８ｃ）式となる。
【０１６３】
Ｈｔ＋１＝Ｈｔ＋ｈｔ  ・・・（８ｃ）
この式は、時刻ｔ＋１における身長Ｈｔ＋１は、時刻ｔにおける身長Ｈｔからシステムノイズｈｔだけ変化したものとなっている。繰り返しになるが、上述したように身長Ｈｔの時間変動は小さいため分散σH2は小さく設定されており、システムノイズｈｔも小さい。すなわち、上記（８ｃ）式は、人の身長が一定であることを示している。
【０１６４】
続いて、画像平面における観測モデルを説明する。画像平面上において、右方向をＸ軸とし、鉛直下方向をＹ軸とする。観測変数ｙｔは下記（１４）式で表される。
【０１６５】
【数１０】
2016006626.tif 000012
【０１６６】
ここで、ｃｅｎＸｔは画像における人の中心位置のＸ成分（以下では、単に中心位置とも呼ぶ）であり、上記の中心位置ｃに対応する。ｔｏｅＹｔは画像における人の下端位置のＹ成分（以下では、単に下端位置とも呼ぶ）であり、図１２の下端位置ｂに対応する。ｔｏｐＹｔは画像における人の上端位置のＹ成分（以下では、単に上端位置とも呼ぶ）であり、図１２の上端位置ｔに対応する。
【０１６７】
上記状態変数ｘｔと観測変数ｙｔとの関係を記述する方程式は観測モデルと呼ばれる。図１２に示すように、カメラ１の焦点距離ｆと、Ｚ位置Ｚｔ（図１２ではＤ）との間の透視投影が、状態変数ｘｔと観測変数ｙｔとの関係となる。観測ノイズｖｔを含む具体的な観測モデルは下記（１５）式で記述される。
【０１６８】
【数１１】
2016006626.tif 000013
【０１６９】
ここで、上記（１７），（１８）式に示すように、観測モデルにおける観測ノイズｖｔも平均値０のガウス分布で与えられるものと仮定する。
【０１７０】
上記（１５）式の第１行および第２行はそれぞれ下記（１５ａ），（１５ｂ）式となる。
【０１７１】
ｃｅｎＸｔ＝ｆＸｔ／Ｚｔ＋Ｎ（０，σx（ｔ）2）  ・・・（１５ａ）
ｔｏｅＹｔ＝  ｆＣ／Ｚｔ＋Ｎ（０，σy（ｔ）2）  ・・・（１５ｂ）
システムノイズである右辺第２項を除けば、これらの関係が成立することは図１２から明らかである。このように、中心位置ｃｅｎＸｔは人のＺ位置ＺｔおよびＸ位置Ｘｔの関数であり、下端位置ｔｏｅＹｔはＺ位置Ｚｔの関数である。
【０１７２】
上記（１５）式の第３行は下記（１５ｃ）式となる。
【０１７３】
ｔｏｐＹｔ＝ｆ（Ｃ−Ｈｔ）／Ｚｔ＋Ｎ（０，σy（ｔ）2）  ・・・（１５ｃ）
ここで注目すべきは、上端位置ｔｏｐＹｔはＺ位置Ｚｔのみならず身長Ｈｔの関数となっている点である。このことは、身長Ｈｔを介して上端位置ｔｏｐＹｔとＺ位置Ｚｔ（すなわち、車両本体４と人との距離Ｄ）とが関連しており、上端位置ｔｏｐＹｔの推定精度が距離Ｄの推定精度に影響することを示唆している。
【０１７４】
ある時刻ｔでの１フレームに対する処理の結果として図２の統合部２３から出力される、人の中心位置ｃｅｎＸｔ、上端位置ｔｏｐＹｔおよび下端位置ｔｏｅＹｔを上記（１５）式の左辺に代入し、観測ノイズを全て０と置くことにより、当該１フレームから推定されるＺ位置Ｚｔ、Ｘ位置Ｘｔおよび身長Ｈｔが得られる。
【０１７５】
次の時刻ｔ＋１での１フレームに対する処理の結果として図２の統合部２３から出力される、人の中心位置ｃｅｎＸｔ＋１、上端位置ｔｏｐＹｔ＋１および下端位置ｔｏｅＹｔ＋１を上記（１５）式の左辺に代入し、観測ノイズを全て０と置くことにより、当該１フレームから推定されるＺ位置Ｚｔ＋１、Ｘ位置Ｘｔｔ＋１および身長Ｈｔ＋１が得られる。
【０１７６】
以上得られた時刻ｔにおけるＺｔ，Ｘｔ，Ｈｔと、時刻ｔ＋１におけるＺｔ＋１，Ｘｔ＋１，Ｈｔ＋１は、いずれも１フレームのみからの推定結果であるため、必ずしも精度が高いわけではなく、上記（８）式のシステムモデルを満たさないこともある。
【０１７７】
そこで、身長Ｈｔ，Ｈｔ＋１は本来一定であって、ほぼ時不変であることを考慮し、公知の拡張カルマンフィルタによって、システムモデル（上記（８）式）および観測モデル（上記（１５）式）からなる状態空間モデルを、両式を可能な限り満たすよう、算出部２４は各状態Ｚｔ，Ｘｔ，Ｚｔ’，Ｘｔ’，Ｈｔを過去に得られた観測値の時系列から推定する。このようして得られた各状態Ｚｔ，Ｘｔ，Ｈｔの推定値は、上述の式に基づいて１フレームのみからの推定値とは一般的に一致しない。前者の推定値は運動モデルと身長の時不変性の条件が課された上での最適解を算出しているのに対し、後者の推定値はどちらの条件も持たず、観測ノイズの影響により時間方向に安定しない解を算出するためである。このような補正により、人のＺ方向位置Ｚｔの精度が向上する。
【０１７８】
このような補正の効果を確かめるための実験を行った。歩行者が実際に歩行する動画を固定カメラで取得するとともに、各時刻におけるカメラと歩行者との距離の真値を取得した。この動画を使い、
（１）統合部２３が出力する下端位置ｂからフレームごとに独立して推定された距離Ｄ１
（２）距離Ｄ１を、上記（７）式の状態変数から身長Ｈｔを除くとともに、上記（１５）式の観測モデルから第３行である（１５ｃ）式を除いて、状態空間モデルを拡張おカルマンフィルタで解いて得られた補正後の距離Ｄ２
（３）本実施形態によって得られた補正後の距離Ｄ３
を算出した。
【０１７９】
図１５は、距離推定の実験結果を示すグラフである。同図（ａ）に示すように、補正を行わない距離Ｄ１はバラつきが大きいが、補正を行った距離Ｄ２，Ｄ３はバラつきを軽減できている。また、同図（ｂ）に示すように真値に対する誤差の指標ＲＭＳＥ（Root Mean Squared Error）は距離Ｄ３が最も小さく、距離Ｄ１に対して約１６．７％改善できており、距離Ｄ２に対しても約５．１％改善できた。
【０１８０】
このように、第２の実施形態では、ニューラルネットワーク処理部２２および統合部２３が、人の下端位置ｔｏｅＹのみならず上端位置ｔｏｐＹｔを特定する。そして、算出部２４は、身長Ｈｔがほぼ時不変であること、および、複数フレームの画像からの特定結果を利用して、Ｚ方向位置Ｚｔ（すなわち、車両本体４と人との距離Ｄ）を補正する。そのため、単眼カメラであっても精度よく距離Ｄを推定できる。
【０１８１】
なお、第２の実施形態においては、人の上端位置ｔｏｐＹｔから身長Ｈｔを算出する具体例を説明したが、他の特定の部位を用いてもよい。例えば、カメラ１で生成された画像における人の目の位置を特定し、人の足下から目までの高さが一定であることを利用してもよい。
【０１８２】
また、上述した実施形態では路面が平坦であることを仮定して立式していたが、本発明は、非平坦な路面に対しても適用可能である。路面が非平坦である場合、標高情報を持つ詳細な地図と、地図におけるＧＰＳレシーバのような自車位置特性手段とを組み合わせ、人の下端位置と路面との交点を特定すればよい。
【０１８３】
さらに、拡張カルマンフィルタを使ってシステムモデルおよび観測モデルの方程式を解く例を示したが、他の手法によって状態空間モデルを時系列の観測値を使って解いてもよい。
【０１８４】
上述した実施形態は、本発明が属する技術分野における通常の知識を有する者が本発明を実施できることを目的として記載されたものである。上記実施形態の種々の変形例は、当業者であれば当然になしうることであり、本発明の技術的思想は他の実施形態にも適用しうることである。したがって、本発明は、記載された実施形態に限定されることはなく、特許請求の範囲によって定義される技術的思想に従った最も広い範囲とすべきである。
【符号の説明】
【０１８５】
１  カメラ
２  検知装置
２１  メモリ部
２２  ニューラルネットワーク処理部
２３  統合部
２４  算出部
２５  画像生成部
２２１  畳み込み部
２２２  プーリング部
２２３  多層ニューラルネットワーク構造
３  ディスプレイ
４  車両本体
５  パラメータ算出部
【図１】
2016006626.tif 000014
【図２】
2016006626.tif 000015
【図３】
2016006626.tif 000016
【図４】
2016006626.tif 000017
【図５】
2016006626.tif 000018
【図６】
2016006626.tif 000019
【図７】
2016006626.tif 000020
【図８】
2016006626.tif 000021
【図９】
2016006626.tif 000022
【図１０】
2016006626.tif 000023
【図１１】
2016006626.tif 000024
【図１２】
2016006626.tif 000025
【図１３】
2016006626.tif 000026
【図１４】
2016006626.tif 000027
【図１５】
2016006626.tif 000028