(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-09-27
(45)【発行日】2022-10-05
(54)【発明の名称】カメラパラメータ推定装置、カメラパラメータ推定方法、およびカメラパラメータ推定プログラム
(51)【国際特許分類】
H04N 5/232 20060101AFI20220928BHJP
G06T 7/70 20170101ALI20220928BHJP
G08G 1/16 20060101ALN20220928BHJP
【FI】
H04N5/232 290
G06T7/70 Z
G08G1/16 C
(21)【出願番号】P 2018200798
(22)【出願日】2018-10-25
【審査請求日】2021-09-28
(73)【特許権者】
【識別番号】000000011
【氏名又は名称】株式会社アイシン
(73)【特許権者】
【識別番号】505026686
【氏名又は名称】国立大学法人滋賀大学
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】早川 和孝
(72)【発明者】
【氏名】佐藤 智和
【審査官】吉川 康男
(56)【参考文献】
【文献】特開2014-101075(JP,A)
【文献】特開2012-123750(JP,A)
【文献】特開2014-021525(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 5/232
G06T 7/70
G08G 1/16
(57)【特許請求の範囲】
【請求項1】
車両に搭載される周辺監視用のカメラによって取得される撮像画像に基づいて推定される、前記カメラに対して設定されたカメラ座標系における前記カメラの推定上の位置および姿勢を取得するカメラ位置姿勢取得部と、
前記車両の直進時における前記カメラの推定上の位置の遷移に基づいて、前記カメラ座標系における前記車両の進行方向に対応した第1ベクトルを算出する第1ベクトル算出部と、
前記車両の旋回時における前記カメラの推定上の位置の遷移に基づいて、前記カメラ座標系における、前記車両が走行する路面に対応した平面の法線方向に対応した第2ベクトルを算出する第2ベクトル算出部と、
前記カメラ座標系において前記第1ベクトルと前記第2ベクトルとに直交する第3ベクトルを算出する第3ベクトル算出部と、
前記第1ベクトルと、前記第2ベクトルと、前記第3ベクトルと、前記第1ベクトルで示される方向に沿って前記カメラの推定上の位置が移動する場合における前記カメラの推定上の姿勢と、に基づいて、前記車両における前記カメラの実際の設置姿勢を、前記カメラのキャリブレーションのためのカメラパラメータとして推定するカメラパラメータ推定部と、
を備える、カメラパラメータ推定装置。
【請求項2】
前記カメラの推定上の位置の遷移が直線で近似される分布を示すか否かに基づいて、前記車両が直進したか否かを判定する第1判定部をさらに備え、
前記第1ベクトル算出部は、前記車両が直進したと前記第1判定部により判定された区間における前記カメラの推定上の位置の遷移を近似する前記直線に基づいて、前記第1ベクトルを算出する、
請求項1に記載のカメラパラメータ推定装置。
【請求項3】
前記第1判定部は、所定以上の長さを有する所定区間における前記カメラの推定上の位置の遷移が前記直線で近似される分布を示すか否かに基づいて、前記所定区間において前記車両が直進したか否かを判定する、
請求項2に記載のカメラパラメータ推定装置。
【請求項4】
前記車両の走行状態を検出するセンサの出力を含むセンサ情報を取得するセンサ情報取得部をさらに備え、
前記第1判定部は、前記カメラの推定上の位置の遷移が前記直線で近似される分布を示すか否かと、前記センサ情報と、のうち少なくとも一方に基づいて、前記車両が直進したか否かを判定する、
請求項2または3に記載のカメラパラメータ推定装置。
【請求項5】
前記カメラの推定上の位置の遷移が、互いに交差する方向に延びる2つの直線と、当該2つの直線の間で所定以上の曲率を有して延びる少なくとも1つの曲線と、で近似される分布を示すか否かに基づいて、前記車両が旋回したか否かを判定する第2判定部をさらに備え、
前記第2ベクトル算出部は、前記車両が旋回したと前記第2判定部により判定された区間における前記カメラの推定上の位置の遷移を近似する少なくとも前記2つの直線に基づいて、前記第2ベクトルを算出する、
請求項1~4のうちいずれか1項に記載のカメラパラメータ推定装置。
【請求項6】
前記第2判定部は、さらに、前記カメラの推定上の位置の遷移が、少なくとも前記2つの直線に対応した1つの平面で近似される分布を示すか否かに基づいて、前記車両が旋回したか否かを判定し、
前記第2ベクトル算出部は、前記1つの平面の法線方向に対応したベクトルを、前記第2ベクトルとして算出する、
請求項5に記載のカメラパラメータ推定装置。
【請求項7】
前記第2判定部は、前記カメラの推定上の位置の遷移のうち、前記少なくとも1つの曲線に対応した第1部分を除外し、残りの部分のうち、前記2つの直線に対応した第2部分が、前記1つの平面で近似される分布を示すか否かに基づいて、前記車両が旋回したか否かを判定する、
請求項6に記載のカメラパラメータ推定装置。
【請求項8】
前記車両の走行状態を検出するセンサの出力を含むセンサ情報を取得するセンサ情報取得部をさらに備え、
前記第2判定部は、前記カメラの推定上の位置の遷移が前記2つの直線と前記少なくとも1つの曲線とで近似される分布を示すか否かと、前記センサ情報と、のうち少なくとも一方に基づいて、前記車両が旋回したか否かを判定する、
請求項5~7のうちいずれか1項に記載のカメラパラメータ推定装置。
【請求項9】
前記車両の走行状態を検出するセンサの出力を含むセンサ情報を取得するセンサ情報取得部と、
前記撮像画像に基づいて推定される、前記カメラ座標系における、前記車両が走行する路面の推定上の三次元位置を含む、前記車両の周囲の状況を表す三次元情報を取得する三次元情報取得部と、
をさらに備え、
前記カメラパラメータ推定部は、前記センサ情報に基づいて特定される前記車両の走行距離と、当該走行距離に対応した区間における前記カメラの推定上の位置の遷移と、前記三次元情報に含まれる前記路面の推定上の三次元位置と、に基づいて、前記車両における前記カメラの実際の設置高さを、前記カメラパラメータとして推定する、
請求項1~8のうちいずれか1項に記載のカメラパラメータ推定装置。
【請求項10】
前記カメラパラメータ推定部により推定された前記カメラパラメータに基づいて、前記キャリブレーションを実行する補正部をさらに備える、
請求項1~9のうちいずれか1項に記載のカメラパラメータ推定装置。
【請求項11】
前記カメラパラメータ推定部により推定された前記カメラパラメータに基づいて、前記キャリブレーションを実行する必要性を通知する通知部をさらに備える、
請求項1~9のうちいずれか1項に記載のカメラパラメータ推定装置。
【請求項12】
車両に搭載される周辺監視用のカメラによって取得される撮像画像に基づいて推定される、前記カメラに対して設定されたカメラ座標系における前記カメラの推定上の位置および姿勢を取得するカメラ位置姿勢取得ステップと、
前記車両の直進時における前記カメラの推定上の位置の遷移に基づいて、前記カメラ座標系における前記車両の進行方向に対応した第1ベクトルを算出する第1ベクトル算出ステップと、
前記車両の旋回時における前記カメラの推定上の位置の遷移に基づいて、前記カメラ座標系における、前記車両が走行する路面に対応した平面の法線方向に対応した第2ベクトルを算出する第2ベクトル算出ステップと、
前記カメラ座標系において前記第1ベクトルと前記第2ベクトルとに直交する第3ベクトルを算出する第3ベクトル算出ステップと、
前記第1ベクトルと、前記第2ベクトルと、前記第3ベクトルと、前記第1ベクトルで示される方向に沿って前記カメラの推定上の位置が移動する場合における前記カメラの推定上の姿勢と、に基づいて、前記車両における前記カメラの実際の設置姿勢を、前記カメラのキャリブレーションのためのカメラパラメータとして推定するカメラパラメータ推定ステップと、
を備える、カメラパラメータ推定方法。
【請求項13】
コンピュータに、
車両に搭載される周辺監視用のカメラによって取得される撮像画像に基づいて推定される、前記カメラに対して設定されたカメラ座標系における前記カメラの推定上の位置および姿勢を取得するカメラ位置姿勢取得ステップと、
前記車両の直進時における前記カメラの推定上の位置の遷移に基づいて、前記カメラ座標系における前記車両の進行方向に対応した第1ベクトルを算出する第1ベクトル算出ステップと、
前記車両の旋回時における前記カメラの推定上の位置の遷移に基づいて、前記カメラ座標系における、前記車両が走行する路面に対応した平面の法線方向に対応した第2ベクトルを算出する第2ベクトル算出ステップと、
前記カメラ座標系において前記第1ベクトルと前記第2ベクトルとに直交する第3ベクトルを算出する第3ベクトル算出ステップと、
前記第1ベクトルと、前記第2ベクトルと、前記第3ベクトルと、前記第1ベクトルで示される方向に沿って前記カメラの推定上の位置が移動する場合における前記カメラの推定上の姿勢と、に基づいて、前記車両における前記カメラの実際の設置姿勢を、前記カメラのキャリブレーションのためのカメラパラメータとして推定するカメラパラメータ推定ステップと、
を実行させる、カメラパラメータ推定プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、カメラパラメータ推定装置、カメラパラメータ推定方法、およびカメラパラメータ推定プログラムに関する。
【背景技術】
【0002】
従来、車両に搭載される周辺監視用のカメラにより、路面に設けられる特定の路面標示を撮像することで得られる撮像画像に基づいて、当該特定の路面標示の図形的な特徴を検出し、検出結果に基づいて、車両におけるカメラの実際の設置姿勢を含むカメラパラメータを推定する技術が知られている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記のような従来の技術によってカメラパラメータを推定するためには、特定の路面標示を設けることと、当該特定の路面標示の図形的な特徴を表す正規のデータを撮像画像から検出される特徴との照合用に予め記憶しておくことと、が前提となるので、柔軟性に欠ける。
【0005】
そこで、本開示の課題の一つは、特定の路面標示に依存することなく、カメラパラメータを柔軟に推定することが可能なカメラパラメータ推定装置、カメラパラメータ推定方法、およびカメラパラメータ推定プログラムを提供することである。
【課題を解決するための手段】
【0006】
本開示の一例としてのカメラパラメータ推定装置は、車両に搭載される周辺監視用のカメラによって取得される撮像画像に基づいて推定される、カメラに対して設定されたカメラ座標系におけるカメラの推定上の位置および姿勢を取得するカメラ位置姿勢取得部と、車両の直進時におけるカメラの推定上の位置の遷移に基づいて、カメラ座標系における車両の進行方向に対応した第1ベクトルを算出する第1ベクトル算出部と、車両の旋回時におけるカメラの推定上の位置の遷移に基づいて、カメラ座標系における、車両が走行する路面に対応した平面の法線方向に対応した第2ベクトルを算出する第2ベクトル算出部と、カメラ座標系において第1ベクトルと第2ベクトルとに直交する第3ベクトルを算出する第3ベクトル算出部と、第1ベクトルと、第2ベクトルと、第3ベクトルと、第1ベクトルで示される方向に沿ってカメラの推定上の位置が移動する場合におけるカメラの推定上の姿勢と、に基づいて、車両におけるカメラの実際の設置姿勢を、カメラのキャリブレーションのためのカメラパラメータとして推定するカメラパラメータ推定部と、を備える。
【0007】
上述したカメラパラメータ推定装置によれば、第1ベクトルと第2ベクトルと第3ベクトルとに基づいて、カメラ座標系におけるカメラの推定上の姿勢を、現実世界における車両の向きに整合するように変換することで、車両におけるカメラの実際の設置姿勢を、カメラパラメータとして推定することができる。これにより、特定の路面標示に依存することなく、カメラパラメータを柔軟に推定することができる。
【0008】
上述したカメラパラメータ推定装置は、カメラの推定上の位置の遷移が直線で近似される分布を示すか否かに基づいて、車両が直進したか否かを判定する第1判定部をさらに備え、第1ベクトル算出部は、車両が直進したと第1判定部により判定された区間におけるカメラの推定上の位置の遷移を近似する直線に基づいて、第1ベクトルを算出する。このような構成によれば、直線近似の結果に基づいて、車両が直進したか否かの判定と、第1ベクトルの算出と、を容易に実行することができる。
【0009】
この場合において、第1判定部は、所定以上の長さを有する所定区間におけるカメラの推定上の位置の遷移が直線で近似される分布を示すか否かに基づいて、所定区間において車両が直進したか否かを判定する。このような構成によれば、所定以上の長さの距離分の情報を利用して、車両が直進したか否かを精度良く判定することができる。
【0010】
上述した第1判定部を備えたカメラパラメータ推定装置は、車両の走行状態を検出するセンサの出力を含むセンサ情報を取得するセンサ情報取得部をさらに備え、第1判定部は、カメラの推定上の位置の遷移が直線で近似される分布を示すか否かと、センサ情報と、のうち少なくとも一方に基づいて、車両が直進したか否かを判定する。このような構成によれば、直線近似の結果とセンサ情報とのうち少なくとも一方に基づいて、車両が直進したか否かを、容易にまたは精度良く判定することができる。
【0011】
また、上述したカメラパラメータ推定装置は、カメラの推定上の位置の遷移が、互いに交差する方向に延びる2つの直線と、当該2つの直線の間で所定以上の曲率を有して延びる少なくとも1つの曲線と、で近似される分布を示すか否かに基づいて、車両が旋回したか否かを判定する第2判定部をさらに備え、第2ベクトル算出部は、車両が旋回したと第2判定部により判定された区間におけるカメラの推定上の位置の遷移を近似する少なくとも2つの直線に基づいて、第2ベクトルを算出する。このような構成によれば、直線近似および曲線近似の結果に基づいて、車両が旋回したか否かの判定と、第2ベクトルの算出と、を容易に実行することができる。
【0012】
この場合において、第2判定部は、さらに、カメラの推定上の位置の遷移が、少なくとも2つの直線に対応した1つの平面で近似される分布を示すか否かに基づいて、車両が旋回したか否かを判定し、第2ベクトル算出部は、1つの平面の法線方向に対応したベクトルを、第2ベクトルとして算出する。このような構成によれば、平面近似の結果に基づいて、車両が走行する路面が勾配を含んでいる場合を除外し、車両が旋回したか否かの判定と、第2ベクトルの算出と、をより容易に実行することができる。
【0013】
また、この場合において、第2判定部は、カメラの推定上の位置の遷移のうち、少なくとも1つの曲線に対応した第1部分を除外し、残りの部分のうち、2つの直線に対応した第2部分が、1つの平面で近似される分布を示すか否かに基づいて、車両が旋回したか否かを判定する。このような構成によれば、車両の進行方向が変化する際の縦Gなどの影響により信頼性が低下しやすい情報としての第1部分を除外することで、車両が旋回したか否かの判定の精度を高めることができる。
【0014】
上述した第2判定部を備えたカメラパラメータ推定装置は、車両の走行状態を検出するセンサの出力を含むセンサ情報を取得するセンサ情報取得部をさらに備え、第2判定部は、カメラの推定上の位置の遷移が2つの直線と少なくとも1つの曲線とで近似される分布を示すか否かと、センサ情報と、のうち少なくとも一方に基づいて、車両が旋回したか否かを判定する。このような構成によれば、直線近似および曲線近似の結果とセンサ情報とのうち少なくとも一方に基づいて、車両が旋回したか否かを、容易にまたは精度良く判定することができる。
【0015】
上述したカメラパラメータ推定装置は、車両の走行状態を検出するセンサの出力を含むセンサ情報を取得するセンサ情報取得部と、撮像画像に基づいて推定される、カメラ座標系における、車両が走行する路面の推定上の三次元位置を含む、車両の周囲の状況を表す三次元情報を取得する三次元情報取得部と、をさらに備え、カメラパラメータ推定部は、センサ情報に基づいて特定される車両の走行距離と、当該走行距離に対応した区間におけるカメラの推定上の位置の遷移と、三次元情報に含まれる路面の推定上の三次元位置と、に基づいて、車両におけるカメラの実際の設置高さを、カメラパラメータとして推定する。このような構成によれば、センサ情報と路面の推定上の三次元位置とカメラの推定上の位置の遷移とに基づいて、特定の路面標示に依存することなく、カメラの実際の設置高さを、カメラパラメータとして柔軟に推定することができる。
【0016】
また、上述したカメラパラメータ推定装置は、カメラパラメータ推定部により推定されたカメラパラメータに基づいて、カメラのキャリブレーションを実行する補正部をさらに備える。このような構成によれば、補正部により、カメラのキャリブレーションを容易に(自動で)実行することができる。
【0017】
また、上述したカメラパラメータ推定装置は、カメラパラメータ推定部により推定されたカメラパラメータに基づいて、カメラのキャリブレーションを実行する必要性を通知する通知部をさらに備える。このような構成によれば、通知部により、カメラのキャリブレーションを実行する必要性を容易に(自動で)通知することができる。
【0018】
本開示の他の一例としてのカメラパラメータ推定方法は、車両に搭載される周辺監視用のカメラによって取得される撮像画像に基づいて推定される、カメラに対して設定されたカメラ座標系におけるカメラの推定上の位置および姿勢を取得するカメラ位置姿勢取得ステップと、車両の直進時におけるカメラの推定上の位置の遷移に基づいて、カメラ座標系における車両の進行方向に対応した第1ベクトルを算出する第1ベクトル算出ステップと、車両の旋回時におけるカメラの推定上の位置の遷移に基づいて、カメラ座標系における、車両が走行する路面に対応した平面の法線方向に対応した第2ベクトルを算出する第2ベクトル算出ステップと、カメラ座標系において第1ベクトルと第2ベクトルとに直交する第3ベクトルを算出する第3ベクトル算出ステップと、第1ベクトルと、第2ベクトルと、第3ベクトルと、第1ベクトルで示される方向に沿ってカメラの推定上の位置が移動する場合におけるカメラの推定上の姿勢と、に基づいて、車両におけるカメラの実際の設置姿勢を、カメラのキャリブレーションのためのカメラパラメータとして推定するカメラパラメータ推定ステップと、を備える。
【0019】
上述したカメラパラメータ推定方法によれば、第1ベクトルと第2ベクトルと第3ベクトルとに基づいて、カメラ座標系におけるカメラの推定上の姿勢を、現実世界における車両の向きに整合するように変換することで、車両におけるカメラの実際の設置姿勢を、カメラパラメータとして推定することができる。これにより、特定の路面標示に依存することなく、カメラパラメータを柔軟に推定することができる。
【0020】
本開示のさらに他の一例としてのカメラパラメータ推定プログラムは、コンピュータに、車両に搭載される周辺監視用のカメラによって取得される撮像画像に基づいて推定される、カメラに対して設定されたカメラ座標系におけるカメラの推定上の位置および姿勢を取得するカメラ位置姿勢取得ステップと、車両の直進時におけるカメラの推定上の位置の遷移に基づいて、カメラ座標系における車両の進行方向に対応した第1ベクトルを算出する第1ベクトル算出ステップと、車両の旋回時におけるカメラの推定上の位置の遷移に基づいて、カメラ座標系における、車両が走行する路面に対応した平面の法線方向に対応した第2ベクトルを算出する第2ベクトル算出ステップと、カメラ座標系において第1ベクトルと第2ベクトルとに直交する第3ベクトルを算出する第3ベクトル算出ステップと、第1ベクトルと、第2ベクトルと、第3ベクトルと、第1ベクトルで示される方向に沿ってカメラの推定上の位置が移動する場合におけるカメラの推定上の姿勢と、に基づいて、車両におけるカメラの実際の設置姿勢を、カメラのキャリブレーションのためのカメラパラメータとして推定するカメラパラメータ推定ステップと、を実行させる。
【0021】
上述したカメラパラメータ推定プログラムによれば、第1ベクトルと第2ベクトルと第3ベクトルとに基づいて、カメラ座標系におけるカメラの推定上の姿勢を、現実世界における車両の向きに整合するように変換することで、車両におけるカメラの実際の設置姿勢を、カメラパラメータとして推定することができる。これにより、特定の路面標示に依存することなく、カメラパラメータを柔軟に推定することができる。
【図面の簡単な説明】
【0022】
【
図1】
図1は、実施形態にかかる車両の車室内の構成を示した例示的かつ模式的な図である。
【
図2】
図2は、実施形態にかかる車両を上方から見た外観を示した例示的かつ模式的な図である。
【
図3】
図3は、実施形態にかかる車両のシステム構成を示した例示的かつ模式的なブロック図である。
【
図4】
図4は、実施形態にかかるカメラパラメータ推定装置の機能を示した例示的かつ模式的なブロック図である。
【
図5】
図5は、実施形態にかかるカメラ座標系および車両座標系の一例を示した例示的かつ模式的な図である。
【
図6】
図6は、実施形態にかかる直進ベクトルの算出方法を示した例示的かつ模式的な図である。
【
図7】
図7は、実施形態にかかる法線ベクトルの算出方法を示した例示的かつ模式的な図である。
【
図8】
図8は、実施形態にかかる直交ベクトルの算出方法を示した例示的かつ模式的な図である。
【
図9】
図9は、実施形態にかかるカメラパラメータ推定装置がカメラパラメータとして車載カメラの実際の設置姿勢を推定する際に実行する処理を示した例示的かつ模式的なフローチャートである。
【
図10】
図10は、実施形態にかかるカメラパラメータ推定装置がカメラパラメータとして車載カメラの実際の設置高さを推定する際に実行する処理を示した例示的かつ模式的なフローチャートである。
【
図11】
図11は、実施形態にかかるカメラパラメータ推定装置がキャリブレーションを実行する際に実行する処理を示した例示的かつ模式的なフローチャートである。
【
図12】
図12は、実施形態の変形例にかかるカメラパラメータ推定装置の機能を示した例示的かつ模式的なブロック図である。
【発明を実施するための形態】
【0023】
以下、本開示の実施形態および変形例を図面に基づいて説明する。以下に記載する実施形態および変形例の構成、ならびに当該構成によってもたらされる作用および結果(効果)は、あくまで一例であって、以下の記載内容に限られるものではない。
【0024】
<実施形態>
まず、
図1および
図2を用いて、実施形態にかかる車両1の概略的な構成について説明する。
図1は、実施形態にかかる車両1の車室2a内の構成を示した例示的かつ模式的な図であり、
図2は、実施形態にかかる車両1を上方から見た外観を示した例示的かつ模式的な図である。
【0025】
図1に示されるように、実施形態にかかる車両1は、ユーザとしての運転者を含む乗員が乗車する車室2aを有している。車室2a内には、ユーザが座席2bから操作可能な状態で、制動部(制動操作部)301aや、加速部(加速操作部)302a、操舵部303a、変速部(変速操作部)304aなどが設けられている。
【0026】
制動部301aは、たとえば、運転者の足下に設けられたブレーキペダルであり、加速部302aは、たとえば、運転者の足下に設けられたアクセルペダルである。また、操舵部303aは、たとえば、ダッシュボード(インストルメントパネル)から突出したステアリングホイールであり、変速部304aは、たとえば、センターコンソールから突出したシフトレバーである。なお、操舵部303aは、ハンドルであってもよい。
【0027】
車室2a内には、各種の画像を出力可能な表示部8と、各種の音を出力可能な音声出力部9と、を有するモニタ装置11が設けられている。モニタ装置11は、たとえば、車室2a内のダッシュボードの幅方向(左右方向)の中央部に設けられる。なお、表示部8は、たとえばLCD(液晶ディスプレイ)やOELD(有機エレクトロルミネセンスディスプレイ)などで構成されている。
【0028】
ここで、表示部8において画像が表示される領域としての表示画面には、操作入力部10が設けられている。操作入力部10は、たとえば、指やスタイラスなどの指示体が近接(接触を含む)した位置の座標を検出可能なタッチパネルとして構成されている。これにより、ユーザ(運転者)は、表示部8の表示画面に表示される画像を視認することができるとともに、操作入力部10上で指示体を用いたタッチ(タップ)操作などを行うことで、各種の操作入力を実行することができる。
【0029】
なお、実施形態では、操作入力部10が、スイッチや、ダイヤル、ジョイスティック、押しボタンなどといった、各種の物理的なインターフェースであってもよい。また、実施形態では、車室2a内におけるモニタ装置11の位置とは異なる位置に、他の音声出力装置が設けられていてもよい。この場合、音声出力部9および他の音声出力装置の両方から、各種の音情報を出力することができる。また、実施形態では、モニタ装置11が、ナビゲーションシステムやオーディオシステムなどの各種システムに関する情報を表示可能に構成されていてもよい。
【0030】
また、
図1および
図2に示されるように、実施形態にかかる車両1は、左右2つの前輪3Fと、左右2つの後輪3Rと、を有した四輪の自動車として構成されている。以下では、簡単化のため、前輪3Fおよび後輪3Rを、総称して車輪3と記載することがある。実施形態では、4つの車輪3の一部または全部の横滑り角が、操舵部303aの操作などに応じて変化(転舵)する。
【0031】
また、車両1には、周辺監視用の複数(
図1および
図2に示される例では4つ)の車載カメラ15a~15dが搭載されている。車載カメラ15aは、車体2の後側の端部2e(たとえば、リヤトランクのドア2hの下方)に設けられ、車両1の後方の領域を撮像する。また、車載カメラ15bは、車体2の右側の端部2fのドアミラー2gに設けられ、車両1の右側方の領域を撮像する。また、車載カメラ15cは、車体2の前側の端部2c(たとえば、フロントバンパ)に設けられ、車両1の前方の領域を撮像する。また、車載カメラ15dは、車体2の左側の端部2dのドアミラー2gに設けられ、車両1の左側方の領域を撮像する。以下では、簡単化のため、車載カメラ15a~15dを、総称して車載カメラ15と記載することがある。
【0032】
車載カメラ15は、たとえば、CCD(電荷結合素子)やCIS(CMOS(相補性金属酸化膜半導体)イメージセンサ)などといった撮像素子を有したいわゆるデジタルカメラである。車載カメラ15は、所定のフレームレートで車両1の周囲の撮像を行い、当該撮像によって得られた撮像画像の画像データを出力する。車載カメラ15により得られる画像データは、フレーム画像として動画像を構成することが可能である。
【0033】
なお、実施形態では、車両1の周囲の状況をセンシングするための構成として、上述した車載カメラ15に加えて、車両1の周囲に存在する立体物までの距離を検出(算出、特定)する測距センサが設けられていてもよい。このような測距センサとしては、たとえば、音波を送信し、車両1の周囲に存在する物体から反射された音波を受信するソナーや、光などの電波を送信し、車両1の周囲に存在する物体から反射された電波を受信するレーザーレーダなどが用いられる。
【0034】
次に、
図3を用いて、実施形態にかかる車両1において各種の制御を実現するために設けられるシステム構成について説明する。なお、
図3に示されるシステム構成は、あくまで一例であるので、様々に設定(変更)可能である。
【0035】
図3は、実施形態にかかる車両1のシステム構成を示した例示的かつ模式的なブロック図である。
図3に示されるように、実施形態にかかる車両1は、制動システム301と、加速システム302と、操舵システム303と、変速システム304と、障害物センサ305と、走行状態センサ306と、車載カメラ15と、モニタ装置11と、制御装置310と、車載ネットワーク350と、を有している。
【0036】
制動システム301は、車両1の減速を制御する。制動システム301は、制動部301aと、制動制御部301bと、制動部センサ301cと、を有している。
【0037】
制動部301aは、たとえば上述したブレーキペダルなどといった、車両1を減速させるための装置である。
【0038】
制動制御部301bは、たとえば、CPU(Central Processing Unit)などといったハードウェアプロセッサを有したマイクロコンピュータとして構成される。制動制御部301bは、たとえば車載ネットワーク350経由で入力される指示に基づいてアクチュエータ(不図示)を駆動し、制動部301aを作動させることで、車両1の減速度合を制御する。
【0039】
制動部センサ301cは、制動部301aの状態を検出するための装置である。たとえば、制動部301aがブレーキペダルとして構成される場合、制動部センサ301cは、制動部301aの状態として、ブレーキペダルの位置または当該ブレーキペダルに作用している圧力を検出する。制動部センサ301cは、検出した制動部301aの状態を車載ネットワーク350に出力する。
【0040】
加速システム302は、車両1の加速を制御する。加速システム302は、加速部302aと、加速制御部302bと、加速部センサ302cと、を有している。
【0041】
加速部302aは、たとえば上述したアクセルペダルなどといった、車両1を加速させるための装置である。
【0042】
加速制御部302bは、たとえば、CPUなどといったハードウェアプロセッサを有したマイクロコンピュータとして構成される。加速制御部302bは、たとえば車載ネットワーク350経由で入力される指示に基づいてアクチュエータ(不図示)を駆動し、加速部302aを作動させることで、車両1の加速度合を制御する。
【0043】
加速部センサ302cは、加速部302aの状態を検出するための装置である。たとえば、加速部302aがアクセルペダルとして構成される場合、加速部センサ302cは、アクセルペダルの位置または当該アクセルペダルに作用している圧力を検出する。加速部センサ302cは、検出した加速部302aの状態を車載ネットワーク350に出力する。
【0044】
操舵システム303は、車両1の進行方向を制御する。操舵システム303は、操舵部303aと、操舵制御部303bと、操舵部センサ303cと、を有している。
【0045】
操舵部303aは、たとえば上述したステアリングホイールやハンドルなどといった、車両1の転舵輪を転舵させる装置である。
【0046】
操舵制御部303bは、たとえば、CPUなどといったハードウェアプロセッサを有したマイクロコンピュータとして構成される。操舵制御部303bは、たとえば車載ネットワーク350経由で入力される指示に基づいてアクチュエータ(不図示)を駆動し、操舵部303aを作動させることで、車両1の進行方向を制御する。
【0047】
操舵部センサ303cは、操舵部303aの状態を検出するための装置である。たとえば、操舵部303aがステアリングホイールとして構成される場合、操舵部センサ303cは、ステアリングホイールの位置または当該ステアリングホイールの回転角度を検出する。なお、操舵部303aがハンドルとして構成される場合、操舵部センサ303cは、ハンドルの位置または当該ハンドルに作用している圧力を検出してもよい。操舵部センサ303cは、検出した操舵部303aの状態を車載ネットワーク350に出力する。
【0048】
変速システム304は、車両1の変速比を制御する。変速システム304は、変速部304aと、変速制御部304bと、変速部センサ304cと、を有している。
【0049】
変速部304aは、たとえば上述したシフトレバーなどといった、車両1の変速比を変更するための装置である。
【0050】
変速制御部304bは、たとえば、CPUなどといったハードウェアプロセッサを有したコンピュータとして構成される。変速制御部304bは、たとえば車載ネットワーク350経由で入力される指示に基づいてアクチュエータ(不図示)を駆動し、変速部304aを作動させることで、車両1の変速比を制御する。
【0051】
変速部センサ304cは、変速部304aの状態を検出するための装置である。たとえば、変速部304aがシフトレバーとして構成される場合、変速部センサ304cは、シフトレバーの位置または当該シフトレバーに作用している圧力を検出する。変速部センサ304cは、検出した変速部304aの状態を車載ネットワーク350に出力する。
【0052】
障害物センサ305は、車両1の周囲に存在しうる障害物に関する情報を検出するための装置である。障害物センサ305は、たとえば上述したソナーやレーザーレーダなどといった測距センサを含んでいる。障害物センサ305は、検出した情報を車載ネットワーク350に出力する。
【0053】
走行状態センサ306は、車両1の走行状態を検出するための装置である。走行状態センサ306は、たとえば、車両1の車輪速を検出する車輪速センサや、車両1の前後方向または左右方向の加速度を検出する加速度センサや、車両1の旋回速度(角速度)を検出するジャイロセンサなどを含んでいる。走行状態センサ306は、検出した走行状態を車載ネットワーク350に出力する。
【0054】
制御装置310は、車両1に設けられる各種のシステムを統括的に制御する装置である。詳細は後述するが、実施形態にかかる制御装置310は、車載カメラ15によって得られる情報に基づいて、車両1における車載カメラ15の実際の設置姿勢(および設置高さ)を含むカメラパラメータを推定し、推定結果に基づいて、車載カメラ15の光軸補正を含むキャリブレーションを実行する機能を有している。
【0055】
より具体的に、制御装置310は、CPU(Central Processing Unit)310aと、ROM(Read Only Memory)310bと、RAM(Random Access Memory)310cと、SSD(Solid State Drive)310dと、表示制御部310eと、音声制御部310fと、を有したECU(Electronic Control Unit)として構成されている。
【0056】
CPU310aは、制御装置310を統括的に制御するハードウェアプロセッサである。CPU310aは、ROM310bなどに記憶された各種の制御プログラム(コンピュータプログラム)を読み出し、当該各種の制御プログラムに規定されたインストラクションにしたがって各種の機能を実現する。各種の制御プログラムには、乗員モニタリング処理を実現するための乗員モニタリングプログラムが含まれる。
【0057】
ROM310bは、上述した各種の制御プログラムの実行に必要なパラメータなどを記憶する不揮発性の主記憶装置である。
【0058】
RAM310cは、CPU310aの作業領域を提供する揮発性の主記憶装置である。
【0059】
SSD310dは、書き換え可能な不揮発性の補助記憶装置である。なお、実施形態にかかる制御装置310においては、補助記憶装置として、SSD310dに替えて(またはSSD310dに加えて)、HDD(Hard Disk Drive)が設けられてもよい。
【0060】
表示制御部310eは、制御装置310で実行されうる各種の処理のうち、主として、車載カメラ15から得られた撮像画像に対する画像処理や、モニタ装置11の表示部8に出力する画像データの生成などを司る。
【0061】
音声制御部310fは、制御装置310で実行されうる各種の処理のうち、主として、モニタ装置11の音声出力部9に出力する音声データの生成などを司る。
【0062】
車載ネットワーク350は、制動システム301と、加速システム302と、操舵システム303と、変速システム304と、障害物センサ305と、走行状態センサ306と、モニタ装置11の操作入力部10と、制御装置310と、を通信可能に接続する。
【0063】
ところで、従来、上述した車載カメラ15のような、車両に搭載される周辺監視用のカメラにより、路面に設けられる特定の路面標示を撮像することで得られる撮像画像に基づいて、当該特定の路面標示の図形的な特徴を検出し、検出結果に基づいて、車両におけるカメラの実際の設置姿勢を含むカメラパラメータを推定する技術が知られている。
【0064】
しかしながら、上記のような従来の技術によってカメラパラメータを推定するためには、特定の路面標示を設けることと、当該特定の路面標示の図形的な特徴を表す正規のデータを撮像画像から検出される特徴との照合用に予め記憶しておくことと、が前提となるので、柔軟性に欠ける。
【0065】
そこで、実施形態は、次の
図4に示されるような機能を有したカメラパラメータ推定装置400を制御装置310内に実現することで、特定の路面標示に依存することなく、カメラパラメータを柔軟に推定することを実現する。
【0066】
図4は、実施形態にかかるカメラパラメータ推定装置400の機能を示した例示的かつ模式的なブロック図である。
図4に示される機能は、ソフトウェアとハードウェアとの協働によって制御装置310内に実現される。すなわち、
図4に示される機能は、制御装置310のCPU310aがROM310bなどに記憶された所定の制御プログラム(カメラパラメータ推定プログラム)を読み出して実行した結果として実現される。なお、実施形態では、
図4に示される機能の少なくとも一部が専用のハードウェア(回路)によって実現されてもよい。
【0067】
図4に示されるように、実施形態にかかるカメラパラメータ推定装置400は、センサ情報取得部401と、三次元情報取得部402と、カメラ位置姿勢取得部403と、直進判定部404と、直進ベクトル算出部405と、旋回判定部406と、法線ベクトル算出部407と、直交ベクトル算出部408と、カメラパラメータ推定部409と、補正部410と、を有している。
【0068】
なお、直進判定部404は、「第1判定部」の一例であるとともに、直進ベクトル算出部405は、「第1ベクトル算出部」の一例である。また、旋回判定部406は、「第2判定部」の一例であるとともに、法線ベクトル算出部407は、「第2ベクトル算出部」の一例である。また、直交ベクトル算出部408は、「第3ベクトル算出部」の一例である。
【0069】
センサ情報取得部401は、車両1の走行状態を検出する走行状態センサ306の出力を含むセンサ情報を取得する。このようなセンサ情報からは、たとえば、車両1の走行距離(移動距離)を算出することが可能である。
【0070】
三次元情報取得部402は、車載カメラ15によって取得される撮像画像に基づいて推定される、車両1の周囲の状況を表す三次元情報を取得する。三次元情報は、車両1が走行する路面の(推定上の)三次元位置を含んでいる。三次元情報は、たとえば、Structure from MotionやVisual Slam、Visual Odometryなどといった、複数の(連続したフレームの)撮像画像を利用した画像処理によって算出することが可能である。
【0071】
なお、三次元情報を算出するための上記のような画像処理は、車両1の走行経路の周辺の地図を車両1が自律的に作成するための技術として利用されることがある。したがって、実施形態において、三次元情報取得部402は、上記のような画像処理を自分自身で実行することで三次元情報を算出してもよいし、カメラパラメータ推定装置400とは別に構成される地図作成機能によって算出された三次元情報を通信などによって取得してもよい。
【0072】
カメラ位置姿勢取得部403は、車載カメラ15によって取得される撮像画像に基づいて推定される、車載カメラ15の(推定上の)位置および姿勢を取得する。車載カメラ15の推定上の位置および姿勢は、上述した三次元情報と同様に、複数の撮像画像を利用した画像処理によって算出することが可能である。したがって、車載カメラ15の推定上の位置および姿勢は、上述した三次元情報と同様に、カメラ位置姿勢取得部403自身で算出されたものであってもよいし、カメラパラメータ推定装置400とは別に構成される地図作成機能によって算出されたものであってもよい。
【0073】
ところで、複数の撮像画像を利用した上記のような画像処理は、基本的には、車載カメラ15と他の物体との相対的な位置関係を求めるための技術である。つまり、車載カメラ15自身の絶対的な位置および姿勢は、上記のような画像処理だけでは求めることができない。したがって、カメラ位置姿勢取得部403によって取得される車載カメラ15の推定上の位置および姿勢は、現実世界に対応した(絶対的な)情報ではなく、あくまで、車載カメラ15に対して設定されたカメラ座標系(後述する
図5参照)を基準とした情報である。
【0074】
これに対して、車載カメラ15のキャリブレーションにおいて着目すべき情報は、車両1における車載カメラ15の実際の(つまり現実世界に対応した絶対的な)設置位置および設置姿勢を含むカメラパラメータである。したがって、実施形態では、カメラパラメータを求めるために、上記のような画像処理によって得られるカメラ座標系を基準とした情報を、現実世界に対応した座標系、たとえば車両1の向きと整合した車両座標系(後述する
図5参照)を基準とした情報に変換する必要がある。
【0075】
ここで、上述した2種類の座標系について簡単に説明する。
図5は、実施形態にかかるカメラ座標系および車両座標系の一例を示した例示的かつ模式的な図である。
図5に示される例では、便宜的に、車両1に設けられた車載カメラ15が強調されてイラスト化されている。
【0076】
図5に示される例においては、互いに直交する3本の軸Ax11~Ax13を有する座標系CS1が、車載カメラ15aに設定されるカメラ座標系に該当する。車載カメラ15aから得られる複数の撮像画像に基づく上記のような画像処理によれば、座標系CS1における車載カメラ15aの位置および姿勢を推定することが可能である。なお、座標系CS1において、位置は、軸Ax11~Ax13にそれぞれ対応した3つの成分で表すことが可能であり、姿勢は、軸Ax11~Ax13周りの3つの回転角度として表すことが可能である。
【0077】
たとえば、カメラ座標系としての座標系CS1の原点が、所定時刻における車載カメラ15aの存在位置として表される場合、軸Ax11は、当該所定時刻における車載カメラ15aの光軸として表され、軸Ax12は、光軸と垂直でかつ撮像画像の縦方向(上下方向)に対応した方向に延びる軸として表され、軸Ax13は、光軸と垂直でかつ撮像画像の横方向(左右方向)に対応した方向に延びる軸として表される。
【0078】
なお、
図5に示される例では、車載カメラ15aに設定されるカメラ座標系としての座標系CS1のみが図示されているが、他の車載カメラ15b~15dにもそれぞれ固有のカメラ座標系が設定されることは言うまでもない。他の車載カメラ15b~15dにそれぞれ設定されるカメラ座標系については、簡単化のため、図示が省略されている。
【0079】
一方、
図5に示される例においては、互いに直交する3本の軸Ax1~Ax3を有する座標系CS0が、車両1を基準とした車両座標系に該当する。たとえば、軸Ax1は、車両1の前後方向(進行方向)に対応し、軸Ax2は、車両1の上下方向(鉛直方向)に対応し、軸Ax3は、車両1の左右方向(幅方向)に対応する。
【0080】
なお、
図5に示される例では、座標系CS0の軸Ax1の向きと座標系CS1の軸Ax11の向きとがそれぞれ逆になっており、かつ、座標系CS0の軸Ax2およびAx3の向きと座標系CS1の軸Ax12およびAx13の向きとがそれぞれ一致するように図示されているが、これはあくまで一例である。実施形態では、座標系CS0の軸Ax1~Ax3と座標系CS1の軸Ax11~Ax13との関係は、必ずしも
図5に示されるような関係でなくてもよい。
【0081】
このように、車両座標系とカメラ座標系とは、原点および座標軸が互いに異なる3次元座標系であるため、車載カメラ15aの位置および姿勢がずれる毎に、キャリブレーションが必要となる。
【0082】
ここで、車両座標系としての座標系CS0の軸Ax1~Ax3のそれぞれの向きを、カメラ座標系としての座標系CS1におけるベクトルとして求めることができれば、カメラ座標系における車載カメラ15aの姿勢を、車両座標系における車載カメラ15aの姿勢として変換することができる。したがって、実施形態は、以下に説明するような方法により、車両座標系としての座標系CS0の軸Ax1~Ax3のそれぞれの向きを、カメラ座標系としての座標系CS1におけるベクトルとして求める。
【0083】
なお、以下の説明において明らかになるが、実施形態の技術は、車両座標系の原点まで求める技術ではない。すなわち、実施形態の技術は、車両座標系の原点と3つの軸の向きとの全てを特定することなく、車両座標系の3つの軸の向きのみを特定することで、カメラパラメータとして、車両1における車載カメラ15の実際の設置位置を求める技術である。
【0084】
図4に戻り、直進判定部404は、車載カメラ15の推定上の位置の遷移が直線で近似される分布を示すか否かに基づいて、車両1が直進したか否かを判定する。そして、直進ベクトル算出部405は、車両の直進時における車載カメラ15の推定上の位置の遷移、すなわち、車両1が直進したと直進判定部404により判定された区間における車載カメラ15の推定上の位置の遷移、を近似する直線に基づいて、カメラ座標系における車両1の進行方向に対応した直進ベクトルを算出する。直進ベクトルは、「第1ベクトル」の一例であり、
図5に示される軸Ax1の向きに対応する。
【0085】
図6は、実施形態にかかる直進ベクトルの算出方法を示した例示的かつ模式的な図である。
図6に示される例は、カメラ座標系における車載カメラ15の推定上の位置が、位置P61から、位置P62~P64を経て、位置P65に遷移した状況を表している。
【0086】
図6に示される例において、位置P61~P65までの遷移は、直線SL60によく当てはまるので、直線SL60で近似される分布を示すといえる。したがって、
図6に示される例では、直線SL60の延びる方向に対応したベクトルV60が、直進ベクトルとして算出される。なお、直線SL60の探索には、従来から知られている様々な探索方法を利用することが可能である。
【0087】
ただし、直線近似の対象となるポイントの数が少ないと、求めた直線の正確性を担保することができない。つまり、車両1が直進したことを精度よく判定するためには、カメラ座標系における車載カメラ15の推定上の位置の遷移を、一定以上の距離分、取得することが望ましい。したがって、実施形態において、直進判定部404は、所定以上の長さを有する所定区間における車載カメラ15の推定上の位置の遷移が直線で近似される分布を示すか否かに基づいて、所定区間において車両1が直進したか否かを判定する。
【0088】
また、実施形態では、センサ情報取得部401により取得されるセンサ情報も、車両1が直進したか否かの判定に有用である。したがって、実施形態において、直進判定部404は、車載カメラ51の推定上の位置の遷移が直線で近似される分布を示すか否かと、センサ情報と、のうち少なくとも一方に基づいて、車両1が直進したか否かを判定することも可能である。なお、ここで用いられるセンサ情報は、たとえば、車輪3の舵角や、車両1のヨー角速度などである。
【0089】
図4に戻り、旋回判定部406は、車載カメラ15の推定上の位置の遷移が、互いに交差する方向に延びる2つの直線と、当該2つの直線の間で所定以上の曲率を有して延びる少なくとも1つの曲線と、で近似される分布を示すか否かに基づいて、車両1が旋回したか否かを判定する。なお、所定以上の曲率を要求する理由は、車両1の進行方向がある程度大きく変化した場合のみを車両1の旋回とみなすようにするためである。
【0090】
そして、法線ベクトル算出部407は、車両1の旋回時における車載カメラ15の推定上の位置の遷移、すなわち、車両1が旋回したと旋回判定部406により判定された区間における車載カメラ15の推定上の位置の遷移、を近似する少なくとも2つの直線に基づいて、カメラ座標系における、車両1が走行する路面に対応した平面の法線方向に対応した法線ベクトルを算出する。法線ベクトルは、「第2ベクトル」の一例であり、
図5に示される軸Ax2の向きに対応する。
【0091】
図7は、実施形態にかかる法線ベクトルの算出方法を示した例示的かつ模式的な図である。
図7に示される例は、カメラ座標系における車載カメラ15の推定上の位置が、平面P70に略沿って、位置P711から、位置P712~P724を経て、位置P725に遷移した状況を表している。
【0092】
図7に示される例において、位置P711~P716までの遷移は、直線SL71によく当てはまり、位置P716~P720までの遷移は、曲線CL70によく当てはまり、位置P720~P725までの遷移は、直線SL72によく当てはまる。したがって、位置P711~P725までの遷移は、互いに交差する方向に延びる2つの直線SL71およびSL72と、当該2つの直線SL71およびSL72の間で延びる曲線CL70と、で近似される分布を示すといえる。
【0093】
なお、
図7に示される例において、直線SL71およびSL72の探索と、曲線CL70との探索とには、従来から知られている様々な方法を利用することが可能である。また、
図7に示される例では、直線SL71と曲線CL70と直線SL72とが連続的につながっているが、実施形態では、これら3つの線がつながっていない場合も想定される。さらに、
図7に示される例では、説明の簡単化のため、曲線CL70以外の曲線が存在していないが、実施形態では、曲線CL70の他に1つ以上の曲線が存在する場合も想定される。
【0094】
ここで、
図7に示される例では、直線SL71で近似される位置P711~P716までの遷移と、直線SL72で近似される位置P716~P720までの遷移と、曲線CL70で近似される位置P716~P720までの遷移とが、同一の平面P70によく当てはまる分布を示している。すなわち、
図7に示される例では、少なくとも2つの直線SL71およびSL72が、同一の平面P70上に配置される。これは、車両1が旋回時に走行する路面が、勾配を含まない、平面P70と略平行な平坦面であることを意味している。
【0095】
したがって、
図7に示される例では、少なくとも2つの直線SL71およびSL72に基づいて特定される平面P70の法線方向に対応したベクトルV70が、法線ベクトルとして算出される。なお、2つの直線SL71およびSL72が同一の平面P70上に配置されることを前提とすれば、平面P70そのものを特定しなくても、法線ベクトルは、直線SL71の延びる方向に対応したベクトルV71と、直線SL72の延びる方向に対応したベクトルV72と、に直交するベクトルV70として容易に算出することが可能である。
【0096】
なお、図示は省略するが、実施形態では、車載カメラ15の推定上の位置の遷移が2つの直線と少なくとも1つの曲線とで近似される分布を示す場合であっても、車両1が走行する路面が勾配を含んでいる場合には、2つの直線(および少なくとも1つの曲線)が同一の平面上に配置されないような状況も発生する。このような状況では、車両1が走行する路面と略平行な平面を特定することが困難であるので、法線ベクトルを算出することが困難である。したがって、法線ベクトルを容易に算出するためには、車載カメラ15の推定上の位置の遷移が2つの直線と少なくとも1つの曲線とで近似される分布を示すという条件に加えて、車両1が走行する路面が勾配を含んでいないという条件、すなわち、車載カメラ15の位置の遷移が1つの平面で近似される分布を示すという条件も必要となる。
【0097】
そこで、実施形態において、旋回判定部406は、車載カメラ15の推定上の位置の遷移が2つの直線と少なくとも1つの曲線とで近似される分布を示すか否かに加えて、さらに、車載カメラ15の推定上の位置の遷移が2つの直線に対応した1つの平面で近似される分布を示すか否かに基づいて、車両1が旋回したか否かを判定する。そして、法線ベクトル算出部407は、当該1つの平面の法線方向に対応したベクトルを、法線ベクトルとして算出する。
【0098】
このようにして、実施形態では、現実世界における路面の法線ベクトルを、カメラ座標系基準の情報として算出することができる。換言すれば、カメラ座標系内で、車両座標系の軸Ax2(車両1の上下方向)を特定することができる。
【0099】
ここで、
図7に示される例では、前述したように、車載カメラ15の推定上の位置の遷移が、直線SL71で近似される部分と、曲線CL70で近似される部分と、直線SL72で近似される部分と、の全てについて、同一の平面P70によく当てはまる分布を示している。しかしながら、一般に、車両1の旋回時において、車両1の進行方向が変化している最中は、その前後の進行方向が変化していない時に比べて、縦Gなどの影響により、車載カメラ15の推定上の位置の信頼性が低下しやすい。
【0100】
したがって、
図7に示される例では、曲線CL70で近似される部分の情報は、直線SL71およびSL72で近似される部分の情報に比べて、信頼性が低いことがある。このため、実施形態において、車両1が旋回したか否かの判定基準となる1つの平面を特定する際には、車両1の進行方向が変化している最中に取得される車載カメラ15の推定上の位置を考慮から外した方が望ましい。
【0101】
そこで、実施形態において、旋回判定部406は、車載カメラ15の推定上の位置の遷移のうち、車両1の進行方向が変化している最中に対応した第1部分を除外し、残りの部分のうち、車両1の進行方向が変化していない時に対応した第2部分が、1つの平面で近似されるか否かに基づいて、車両1が旋回したか否かを判定する。たとえば、
図7に示される例において、第1部分は、曲線CL70で近似される部分の情報であり、第2部分は、直線SL71および直線SL72で近似される部分の情報である。
【0102】
さらに、実施形態においては、車両1が直進したか否かの判定と同様、車両1が旋回したか否かの判定に、センサ情報取得部401により取得されるセンサ情報を利用することが可能である。したがって、実施形態において、旋回判定部406は、車載カメラ15の推定上の位置の遷移が2つの直線と少なくとも1つの曲線とで近似される分布を示すか否かと、センサ情報と、のうち少なくとも一方に基づいて、車両1が旋回したか否かを判定することが可能である。
【0103】
図4に戻り、直交ベクトル算出部408は、カメラ座標系において、直進ベクトル算出部405により算出された直進ベクトルと、法線ベクトル算出部407により算出された法線ベクトルと、に直交する直交ベクトルを算出する。直交ベクトルは、「第3ベクトル」の一例であり、
図5に示される軸Ax3の向きに対応する。
【0104】
図8は、実施形態にかかる直交ベクトルの算出方法を示した例示的かつ模式的な図である。直交ベクトルは、直進ベクトルと法線ベクトルとに直交するベクトルであるので、直進ベクトルと法線ベクトルとを算出することができれば、ベクトル積などにより容易に算出することが可能である。たとえば、
図8に示される例において、ベクトルV81が直進ベクトルとして算出され、ベクトルV82が法線ベクトルとして算出されたものとすると、直交ベクトルは、ベクトルV83として算出される。
【0105】
以上のような3つのベクトル(直進ベクトル、法線ベクトル、および直交ベクトル)によれば、カメラ座標系における車載カメラ15の推定上の姿勢を、車両1の向きを基準とした車両座標系における車載カメラ15の実際の設置姿勢に変換することが可能である。
【0106】
すなわち、
図4に戻り、カメラパラメータ推定部409は、直進ベクトル算出部405により算出された直進ベクトルと、法線ベクトル算出部407により算出された法線ベクトルと、直交ベクトル算出部408により算出された直交ベクトルと、直進ベクトルが算出された時点での車載カメラ15の推定上の姿勢と、に基づいて、車両1におけるカメラの実際の設置姿勢を、キャリブレーションのためのカメラパラメータとして推定する。なお、ここで考慮される車載カメラ15の推定上の姿勢は、直進ベクトルで示される方向に沿って車載カメラ15の推定所の位置が移動する場合のものであれば、直進ベクトルが算出された時点でのものでなくてもよい。
【0107】
ところで、前述したように、車載カメラ15のキャリブレーションにおいて着目すべきカメラパラメータは、車両1における車載カメラ15の設置姿勢だけでなく、車載カメラ15の設置位置も含んでいる。特に、車載カメラ15の設置位置のうち設置高さは、撮像画像に写っている物体までの距離などの検出の精度に影響を及ぼすので、重要なパラメータである。
【0108】
したがって、実施形態において、カメラパラメータ推定部409は、以下に説明するような方法により、車両1における車載カメラ15の実際の設置高さを、カメラパラメータとして推定する。
【0109】
より具体的に、カメラパラメータ推定部409は、まず、三次元情報取得部402により取得される三次元情報から、車両1が走行する路面の三次元位置を取得する。
【0110】
ここで、三次元情報は、前述したように、複数の撮像画像を利用した画像処理によって算出されるものであるので、路面の三次元位置は、カメラ座標系を基準とした情報である。したがって、この路面の三次元位置と、カメラ位置姿勢取得部403により取得される、カメラ座標系における車載カメラ15の推定上を表す情報のうちの高さ成分と、を考慮すれば、路面に対する車載カメラ15のカメラ座標系での設置高さを求めることが可能である。
【0111】
しかしながら、前述したように、カメラ座標系は、現実世界に対応した絶対的な情報ではないので、カメラ座標系でのスケールと、現実世界でのスケールとを、何らかの方法で対応付けることが求められる。
【0112】
そこで、実施形態は、センサ情報取得部401により取得されるセンサ情報に基づいて特定される車両1の走行距離と、当該走行距離に対応した区間における車載カメラ15の推定上の位置の遷移と、の関係性に着目する。すなわち、前者は現実世界に対応した情報であり、後者はカメラ座標系に対応した情報であるが、両者は同等の内容の情報を示しているはずなので、両者の関係性に着目すれば、路面に対する車載カメラ15のカメラ座標系での設置高さを、現実世界での車両1における車載カメラ15の実際の設置高さに変換することが可能になる。
【0113】
したがって、実施形態において、カメラパラメータ推定部409は、センサ情報取得部401により取得されるセンサ情報に基づいて特定される車両1の走行距離と、当該走行距離に対応した区間における車載カメラ15の推定上の位置の遷移と、三次元情報に含まれる路面の推定上の三次元位置と、に基づいて、車両1における車載カメラ15の実際の設置高さをカメラパラメータとして推定する。
【0114】
なお、実施形態において、補正部410は、カメラパラメータ推定部409により推定されたカメラパラメータに基づいて、光軸補正などを含む車載カメラ15のキャリブレーションを実行する。
【0115】
補正部410によるキャリブレーションは、カメラパラメータが新たに推定される毎に、最新のカメラパラメータに基づいて実行されてもよいし、所定の基準のもとでキャリブレーションが必要と判断された場合にのみ実行されてもよい。後者の場合、たとえば、補正部410は、複数回にわたって蓄積したカメラパラメータの推定結果のばらつきを分散などの統計量に基づいて算出し、当該ばらつきが所定未満のレベルであり、かつ、カメラパラメータの推定結果と現在のカメラパラメータとのズレが所定以上になっているか否かを基準として、キャリブレーションの実行の有無を切り替えてもよい。
【0116】
以下、
図9~
図11を参照して、実施形態にかかるカメラパラメータ推定装置400が実行する処理について説明する。
【0117】
図9は、実施形態にかかるカメラパラメータ推定装置400がカメラパラメータとして車載カメラ15の設置姿勢を推定する際に実行する処理を示した例示的かつ模式的なフローチャートである。
【0118】
図9に示されるように、実施形態では、まず、S901において、センサ情報取得部401は、車両1の走行状態を検出する走行状態センサ306の出力を含むセンサ情報を取得する。
【0119】
そして、S902において、カメラ位置姿勢取得部403は、車載カメラ15に設定されたカメラ座標系における、車載カメラ15の推定上の位置および姿勢を取得する。
【0120】
そして、S903において、カメラパラメータ推定装置400(たとえば旋回判定部406)は、直進ベクトルが既に算出済か否かを判断する。
【0121】
S903において、直進ベクトルが既に算出済でないと判断された場合、S904に処理が進む。そして、S904において、直進判定部404は、直進ベクトルを算出可能か否か、すなわち、S902で取得された車載カメラ15の推定上の位置の遷移が直線で近似される分布を示すか否かを判断する。
【0122】
S904において、直進ベクトルを算出不可能であると判断された場合、S901に処理が戻る。しかしながら、S904において、直進ベクトルを算出可能であると判断された場合、S905に処理が進む。
【0123】
S905において、直進ベクトル算出部405は、車両1の前後方向(進行方向)に対応した直進ベクトルを算出する。より具体的に、直進ベクトル算出部405は、車載カメラ15の推定上の位置の遷移を近似する直線の方向に対応したベクトルを、直進ベクトルとして算出する。そして、S901に処理が戻る。
【0124】
一方、S903において、直進ベクトルが既に算出済であると判断された場合、S906に処理が進む。そして、S906において、旋回判定部406は、法線ベクトルを算出可能か否か、すなわち、S902で取得された車載カメラ15の推定上の位置の遷移が2つの直線と少なくとも1つの曲線とで近似され、かつ当該2つの直線に対応した1つの平面で近似される分布を示すか否かを判断する。
【0125】
S906において、法線ベクトルを算出不可能であると判断された場合、S901に処理が戻る。しかしながら、S906において、法線ベクトルを算出可能であると判断された場合、S907に処理が進む。
【0126】
S907において、法線ベクトル算出部407は、車両1の上下方向(鉛直方向)に対応した法線ベクトルを算出する。より具体的に、法線ベクトル算出部407は、車載カメラ15の推定上の位置の遷移を近似する2つの直線に直交する方向に対応したベクトル、すなわち、車載カメラ15の推定上の位置の遷移を近似する1つの平面の法線方向に対応したベクトルを、法線ベクトルとして算出する。
【0127】
そして、S908において、直交ベクトル算出部408は、車両1の左右方向(幅方向)に対応した直交ベクトルを算出する。より具体的に、直交ベクトル算出部408は、S905で算出された直進ベクトルと、S907で算出された法線ベクトルと、のベクトル積などに基づいて、直進ベクトルと法線ベクトルとに直交する直交ベクトルを算出する。
【0128】
そして、S909において、カメラパラメータ推定部409は、車載カメラ15の実際の設置姿勢をカメラパラメータとして推定する。より具体的に、カメラパラメータ推定部409は、S905で算出された直進ベクトルと、S907で算出された法線ベクトルと、S908で算出された直交ベクトルと、に基づいて、カメラ座標系を基準とした情報としてS902で取得された車載カメラ15の推定上の姿勢を、現実世界に対応した車両座標系を基準とした情報に変換する。そして、処理が終了する。
【0129】
図10は、実施形態にかかるカメラパラメータ推定装置400がカメラパラメータとして車載カメラ15の設置高さを推定する際に実行する処理を示した例示的かつ模式的なフローチャートである。
【0130】
図10に示されるように、実施形態では、まず、S1001において、センサ情報取得部401は、車両1の走行状態を検出する走行状態センサ306の出力を含むセンサ情報を取得する。
【0131】
そして、S1002において、カメラ位置姿勢取得部403は、車載カメラ15に設定されたカメラ座標系における、車載カメラ15の推定上の位置を取得する。
【0132】
そして、S1003において、三次元情報取得部402は、車両1が走行する路面の(推定上の)三次元位置を含んだ、車両1の周囲の状況を表す三次元情報を取得する。前述したように、三次元情報は、S1002で取得される車載カメラ15の推定上の位置と同様、カメラ座標系を基準とした情報である。
【0133】
そして、S1004において、カメラパラメータ推定部409は、車載カメラ15の実際の設置高さをカメラパラメータとして推定する。より具体的に、カメラパラメータ推定部409は、S1002で取得される車載カメラ15の推定上の位置のうちの高さ成分と、S1003で取得される三次元情報に含まれる路面の三次元位置と、に基づいて、路面に対する車載カメラ15の設置高さを、カメラ座標系を基準とした情報として求める。そして、カメラパラメータ推定部409は、S1001で取得されるセンサ情報のうちの車両1の走行距離と、S1002で取得される車載カメラ15の推定上の位置の遷移と、の関係性を求め、当該関係性に基づいて、路面に対する車載カメラ15のカメラ座標系での設置高さを、現実世界での車両1における車載カメラ15の実際の設置高さに変換する。そして、処理が終了する。
【0134】
図11は、実施形態にかかるカメラパラメータ推定装置400がキャリブレーションを実行する際に実行する処理を示した例示的かつ模式的なフローチャートである。この
図11に示されるフローチャートは、補正部410がキャリブレーションの要否を判定し、必要に応じてキャリブレーションを実行する例に対応する。
【0135】
図11に示されるように、実施形態では、まず、S1101において、補正部410は、キャリブレーションが必要か否かを判断する。この判断は、たとえば、複数回にわたって蓄積したカメラパラメータの推定結果のばらつきを分散などの統計量に基づいて算出し、当該ばらつきが所定未満のレベルであり、かつ、直近のカメラパラメータの推定結果と現在のカメラパラメータとのズレが所定以上になっているか否か、を基準として実行される。
【0136】
S1101において、キャリブレーションが必要であると判断された場合、S1102に処理が進む。そして、S1102において、補正部410は、直近のカメラパラメータの推定結果に基づいて、車載カメラ15のキャリブレーションを実行する。そして、処理が終了する。
【0137】
なお、S1101において、キャリブレーションが必要でないと判断された場合、キャリブレーションは実行されず、そのまま処理が終了する。
【0138】
以上説明したように、実施形態にかかるカメラパラメータ推定装置400は、カメラ位置姿勢取得部403と、直進ベクトル算出部405と、法線ベクトル算出部407と、直交ベクトル算出部408と、カメラパラメータ推定部409と、を備えている。カメラ位置姿勢取得部403は、車両1に搭載される周辺監視用の車載カメラ15によって取得される撮像画像に基づいて推定される、車載カメラ15に対して設定されたカメラ座標系における車載カメラ15の推定上の位置および姿勢を取得する。直進ベクトル算出部405は、車両1の直進時における車載カメラ15の推定上の位置の遷移に基づいて、カメラ座標系における車両1の進行方向に対応した直進ベクトルを算出する。法線ベクトル算出部407は、車両1の旋回時における車載カメラ15の推定上の位置の遷移に基づいて、カメラ座標系における、車両1が走行する路面に対応した平面の法線方向に対応した法線ベクトルを算出する。直交ベクトル算出部408は、カメラ座標系において直進ベクトルと法線ベクトルとに直交する直交ベクトルを算出する。カメラパラメータ推定部409は、直進ベクトルと、法線ベクトルと、直交ベクトルと、直進ベクトルで示される方向に沿って車載カメラ15の推定上の位置が移動する場合における車載カメラ15の推定上の姿勢と、に基づいて、車両1における車載カメラ15の実際の設置姿勢を、車載カメラ15のキャリブレーションのためのカメラパラメータとして推定する。
【0139】
実施形態にかかるカメラパラメータ推定装置400によれば、直進ベクトルと法線ベクトルと直交ベクトルとに基づいて、カメラ座標系における車載カメラ15の推定上の姿勢を、現実世界における車両1の向きと整合するように変換することで、車両1における車載カメラ15の実際の設置姿勢を、カメラパラメータとして推定することができる。これにより、特定の路面標示に依存することなく、カメラパラメータを柔軟に推定することができる。
【0140】
上述した実施形態において、カメラパラメータ推定装置400は、車載カメラ15の推定上の位置の遷移が直線で近似される分布を示すか否かに基づいて、車両1が直進したか否かを判定する直進判定部404を有している。そして、直進ベクトル算出部405は、車両1が直進したと直進判定部404により判定された区間における車載カメラ15の推定上の位置の遷移を近似する直線に基づいて、直進ベクトルを算出する。このような構成によれば、直線近似の結果に基づいて、車両1が直進したか否かの判定と、直進ベクトルの算出と、を容易に実行することができる。
【0141】
また、上述した実施形態において、直進判定部404は、所定以上の長さを有する所定区間における車載カメラ15の推定上の位置の遷移が直線で近似される分布を示すか否かに基づいて、所定区間において車両1が直進したか否かを判定する。このような構成によれば、所定以上の長さの距離分の情報を利用して、車両1が直進したか否かを精度良く判定することができる。
【0142】
また、上述した実施形態において、カメラパラメータ推定装置400は、車両1の走行状態を検出する走行状態センサ306の出力を含むセンサ情報を取得するセンサ情報取得部401を有している。そして、直進判定部404は、車載カメラ15の推定上の位置の遷移が直線で近似される分布を示すか否かと、センサ情報と、のうち少なくとも一方に基づいて、車両1が直進したか否かを判定しうる。このような構成によれば、直線近似の結果とセンサ情報とのうち少なくとも一方に基づいて、車両1が直進したか否かを、容易にまたは精度良く判定することができる。
【0143】
また、上述した実施形態において、カメラパラメータ推定装置400は、車載カメラ15の推定上の位置の遷移が、互いに交差する方向に延びる2つの直線と、当該2つの直線の間で所定以上の曲率を有して延びる少なくとも1つの曲線と、で近似される分布を示すか否かに基づいて、車両1が旋回したか否かを判定する旋回判定部406を有している。そして、法線ベクトル算出部407は、車両1が旋回したと旋回判定部406により判定された区間におけるカメラの推定上の位置の遷移を近似する少なくとも2つの直線に基づいて、法線ベクトルを算出する。このような構成によれば、直線近似および曲線近似の結果に基づいて、車両1が旋回したか否かの判定と、法線ベクトルの算出と、を容易に実行することができる。
【0144】
また、上述した実施形態において、旋回判定部406は、さらに、車載カメラ15の推定上の位置の遷移が、少なくとも2つの直線に対応した1つの平面で近似される分布を示すか否かに基づいて、車両1が旋回したか否かを判定する。そして、法線ベクトル算出部407は、1つの平面の法線方向に対応したベクトルを、法線ベクトルとして算出する。このような構成によれば、平面近似の結果に基づいて、車両1が走行する路面が勾配を含んでいる場合を除外し、車両1が旋回したか否かの判定と、法線ベクトルの算出と、をより容易に実行することができる。
【0145】
また、上述した実施形態において、旋回判定部406は、車載カメラ15の推定上の位置の遷移のうち、少なくとも1つの曲線に対応した第1部分を除外し、残りの部分のうち、2つの直線に対応した第2部分が、1つの平面で近似される分布を示すか否かに基づいて、車両1が旋回したか否かを判定する。このような構成によれば、車両1の進行方向が変化する際の横Gなどの影響により信頼性が低下しやすい情報としての第1部分を除外することで、車両1が旋回したか否かの判定の精度を高めることができる。
【0146】
また、上述した実施形態において、旋回判定部406は、車載カメラ15の推定上の位置の遷移が2つの直線と少なくとも1つの曲線とで近似される分布を示すか否かと、走行状態センサ306の出力を含むセンサ情報と、のうち少なくとも一方に基づいて、車両1が旋回したか否かを判定しうる。このような構成によれば、直線近似および曲線近似の結果とセンサ情報との少なくとも一方に基づいて、車両1が旋回したか否かを、容易にまたは精度良く判定することができる。
【0147】
また、上述した実施形態において、カメラパラメータ推定装置400は、撮像画像に基づいて推定される、カメラ座標系における、車両1が走行する路面の推定上の三次元位置を含む、車両1の周囲の状況を表す三次元情報を取得する三次元情報取得部402を有している。そして、カメラパラメータ推定部409は、走行状態センサ306の出力を含むセンサ情報に基づいて特定される車両1の走行距離と、当該走行距離に対応した区間における車載カメラ15の推定上の位置の遷移と、三次元情報に含まれる路面の推定上の三次元位置と、に基づいて、車両1における車載カメラ15の実際の設置高さを、カメラパラメータとして推定する。このような構成によれば、センサ情報と路面の推定上の三次元位置と車載カメラ15の推定上の位置の遷移とに基づいて、特定の路面標示に依存することなく、車載カメラ15の実際の設置高さを、カメラパラメータとして柔軟に推定することができる。
【0148】
また、上述した実施形態において、カメラパラメータ推定装置400は、カメラパラメータ推定部409により推定されたカメラパラメータに基づいて、車載カメラ15のキャリブレーションを実行する補正部410を備えている。このような構成によれば、補正部410により、車載カメラ15のキャリブレーションを容易に(自動で)実行することができる。
【0149】
なお、実施形態にかかる制御装置310において実行されるカメラパラメータ推定プログラムは、インターネットなどのネットワーク経由で提供または配布されてもよい。すなわち、実施形態にかかる制御装置310において実行されるカメラパラメータ推定プログラムは、インターネットなどのネットワークに接続されたコンピュータ上に格納された状態で、ネットワーク経由でのダウンロードを受け付ける、といった形で提供されてもよい。
【0150】
<変形例>
上述した実施形態では、カメラパラメータ推定装置が補正部によってキャリブレーションを自動で実行する構成が例示されている。しかしながら、補正部を有しない、カメラパラメータを推定するだけの構成も、上述した実施形態と同様に有益である。さらに、たとえば次の
図12に示される変形例のように、キャリブレーションを自動で実行することなく、キャリブレーションの必要性を通知してキャリブレーションの実行を促す構成も、上述した実施形態と同様に有益である。
【0151】
図12は、実施形態の変形例にかかるカメラパラメータ推定装置1200の機能を示した例示的かつ模式的なブロック図である。なお、
図12において、
図4と同一の機能には同一の符号が付されている。
【0152】
図12に示されるように、変形例にかかるカメラパラメータ推定装置1200は、
図4に示された実施形態にかかる補正部410に代えて、通知部1210を有している。この通知部1210は、カメラパラメータ推定部409により推定されたカメラパラメータに基づいて、キャリブレーションを実行する必要性を通知する。
【0153】
たとえば、通知部1210は、複数回にわたって蓄積したカメラパラメータの推定結果のばらつきを分散などの統計量に基づいて算出し、当該ばらつきが所定未満のレベルであり、かつ、カメラパラメータの推定結果と現在のカメラパラメータとのズレが所定以上になっている場合に、キャリブレーションが必要である旨を、モニタ装置11(
図3参照)などを介して通知する。そして、変形例では、通知部1210による通知を受け取った者が車両1の点検を業者などに依頼することで、業者によりキャリブレーションが実行される。
【0154】
以上説明したように、変形例にカメラパラメータ推定装置1200は、カメラパラメータ推定部409により推定されたカメラパラメータに基づいて、車載カメラ15のキャリブレーションを実行する必要性を通知する通知部1210を備えている。このような構成によれば、通知部1210により、車載カメラ15のキャリブレーションを実行する必要性を容易に(自動で)通知することができる。
【0155】
以上、本開示の実施形態および変形例を説明したが、上述した実施形態および変形例はあくまで一例であって、発明の範囲を限定することは意図していない。上述した新規な実施形態および変形例は、様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。上述した実施形態および変形例は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0156】
1 車両
15 車載カメラ(カメラ)
306 走行状態センサ(センサ)
400、1200 カメラパラメータ推定装置
401 センサ情報取得部
402 三次元情報取得部
403 カメラ位置姿勢取得部
404 直進判定部(第1判定部)
405 直進ベクトル算出部(第1ベクトル算出部)
406 旋回判定部(第2判定部)
407 法線ベクトル算出部(第2ベクトル算出部)
408 直交ベクトル算出部(第3ベクトル算出部)
409 カメラパラメータ推定部
410 補正部
1210 通知部