以下、本発明の例示的な実施形態について、図面を参照しながら詳細に説明する。以下の説明では、移動体として車両を例にとり説明するが移動体であれば車両に限定されない。また以下の説明では、車両の直進進行方向であって、運転席からハンドルに向かう方向を「前方向」とする。また、車両の直進進行方向であって、ハンドルから運転席に向かう方向を「後方向」とする。また、車両の直進進行方向及び鉛直線に垂直な方向であって、前方向を向いている運転者の右側から左側に向かう方向を「左方向」とする。また、車両の直進進行方向及び鉛直線に垂直な方向であって、前方向を向いている運転者の左側から右側に向かう方向を「右方向」とする。
<1.カメラずれ検出システム>
図1は、本発明の実施形態に係るカメラずれ検出システムSYSの構成を示すブロック図である。カメラずれ検出システムSYSは、例えば車両の工場出荷時における取付け状態等、基準となる取付け状態からの車載カメラのずれを検出するシステムである。システムSYSは異常検出システムである。図1に示すように、カメラずれ検出システムSYSは、カメラずれ検出装置1と、撮影部2と、入力部3と、センサ部4とを備える。
カメラずれ検出装置1は、車載カメラの取付けのずれを検出する装置である。検出装置1は、移動体に搭載されるカメラの異常を検出する異常検出装置である。取付けのずれには、取付け位置のずれや取付け角度のずれが含まれる。カメラずれ検出装置1は、車載カメラを搭載する各車両に備えられる。カメラずれ検出装置1は、撮影部2に含まれる車載カメラ21〜24で撮影された撮影画像、および、当該装置1の外部に設けられるセンサ部4からの情報を処理して、車載カメラ21〜24の取付け位置や取付け角度のずれを検出する。カメラずれ検出装置1の詳細については後述する。
なお、カメラずれ検出装置1は、不図示の表示装置や運転支援装置に処理情報を出力してよい。表示装置は、カメラずれ検出装置1から出力される情報に基づいて、適宜、警告等を画面に表示する。運転支援装置は、カメラずれ検出装置1から出力される情報に基づいて、適宜、運転支援機能を停止したり、撮影情報の補正を行って運転支援を行ったりする。運転支援装置は、例えば自動運転を支援する装置、自動駐車を支援する装置、緊急ブレーキを支援する装置等であってよい。
撮影部2は、車両周辺の状況を監視する目的で車両に設けられる。本実施形態では、撮影部2は、4つの車載カメラ21〜24を備える。各車載カメラ21〜24は、有線または無線によってカメラずれ検出装置1に接続される。図2は、車載カメラ21〜24が車両7に配置される位置を例示する図である。図2は、車両7を上から見た図である。
車載カメラ21は車両7の前端に設けられる。このため、車載カメラ21をフロントカメラ21とも呼ぶ。フロントカメラ21の光軸21aは車両7の前後方向に沿っている。フロントカメラ21は車両7の前方向を撮影する。車載カメラ22は車両7の後端に設けられる。このため、車載カメラ22をバックカメラ22とも呼ぶ。バックカメラ22の光軸22aは車両7の前後方向に沿っている。バックカメラ22は車両7の後方向を撮影する。フロントカメラ21及びバックカメラ22の取付け位置は、車両7の左右中央であることが好ましいが、左右中央から左右方向に多少ずれた位置であってもよい。
車載カメラ23は車両7の左側ドアミラー71に設けられる。このため、車載カメラ23を左サイドカメラ23とも呼ぶ。左サイドカメラ23の光軸23aは車両7の左右方向に沿っている。左サイドカメラ23は車両7の左方向を撮影する。車載カメラ24は車両7の右側ドアミラー72に設けられる。このため、車載カメラ24を右サイドカメラ24とも呼ぶ。右サイドカメラ24の光軸24aは車両7の左右方向に沿っている。右サイドカメラ24は車両7の右方向を撮影する。
各車載カメラ21〜24は魚眼レンズで構成され、水平方向の画角θは180°以上である。このため、車載カメラ21〜24によって、車両7の水平方向における全周囲を撮影することができる。なお、本実施形態では、車載カメラの数は4つであるが、この数は適宜変更されてよく、複数でも単数でもよい。例えば、車両7がバックで駐車することを支援する目的で車載カメラが搭載されている場合には、撮影部2が有する車載カメラは、バックカメラ22、左サイドカメラ23、右サイドカメラ24の3つで構成されてよい。
図1に戻って、入力部3は、カメラずれ検出装置1に対する指示を入力可能とする。入力部3は、例えば、タッチパネル、ボタン、レバー等で構成されてよい。入力部3は、有線または無線によってカメラずれ検出装置1に接続される。
センサ部4は、車載カメラ21〜24が搭載される車両7に関する情報を検出する複数のセンサを有する。本実施形態では、センサ部4は、車速センサ41と舵角センサ42とを含む。車速センサ41は、車両7の速度を検出する。舵角センサ42は、車両7のステアリングホイール(ハンドル)の回転角を検出する。車速センサ41および舵角センサ42は、通信バス50を介してカメラずれ検出装置1と繋がる。すなわち、車速センサ41で取得された車両7の速度情報は、通信バス50を介してカメラずれ検出装置1に入力される。舵角センサ42で取得された車両7のステアリングホイールの回転角情報は、通信バス50を介してカメラずれ検出装置1に入力される。なお、通信バス50は、例えばCAN(Controller Area Network)バスであってよい。
<2.カメラずれ検出装置>
図1に示すように、カメラずれ検出装置1は、画像取得部11と、制御部12と、記憶部13とを備える。
画像取得部11は、4つの車載カメラ21〜24のそれぞれから、撮影画像を取得する。画像取得部11は、アナログの撮影画像をデジタルの撮影画像に変換するA/D変換機能などの基本的な画像処理機能を有する。画像取得部11は、取得した撮影画像に所定の画像処理を行い、処理後の撮影画像を制御部12に入力する。
制御部12は、例えばマイクロコンピュータであり、カメラずれ検出装置1の全体を統括的に制御する。制御部12は、CPU、RAMおよびROM等を備える。記憶部13は、例えば、フラッシュメモリ等の不揮発性のメモリであり、各種の情報を記憶する。記憶部13は、ファームウェアとしてのプログラムや各種のデータを記憶する。
詳細には、制御部12は、導出部121と、推定部122と、判定部123とを備える。すなわち、カメラずれ検出装置1は、導出部121と、推定部122と、判定部123とを備える。制御部12が備えるこれら各部121〜123の機能は、例えば記憶部13に記憶されるプログラムに従ってCPUが演算処理を行うことによって実現される。
なお、制御部12の導出部121、推定部122、および、判定部123の少なくともいずれか1つは、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等のハードウェアで構成されてもよい。また、導出部121、推定部122、および、判定部123は、概念的な構成要素である。1つの構成要素が実行する機能を複数の構成要素に分散させたり、複数の構成要素が有する機能を1つの構成要素に統合したりしてよい。
導出部121は、車載カメラ21〜24によって所定時間をおいて入力された2つの画像間における特徴点の動きであるオプティカルフロー(動きベクトル)を特徴点ごとに導出する。なお、本実施形態では、車両7は4つの車載カメラ21〜24を有する。このために、導出部121は、各車載カメラ21〜24について、オプティカルフローを特徴点ごとに導出する。特徴点は、撮影画像中のエッジの交点など、撮影画像において際立って検出できる輝度値の変化点である。特徴点は、例えば路面に描かれた白線のエッジ、路面上のひび、路面上のしみ、路面上の砂利等である。特徴点は、通常、1つの撮影画像の中に多数存在する。導出部121は、例えば、ハリスオペレータ等の公知の手法を用いて撮影画像の特徴点を導出する。
推定部122は、複数のオプティカルフローに基づいて車載カメラ21〜24を搭載する車両7の移動量を統計処理によって推定する。すなわち、推定部122は、複数のオプティカルフローを統計処理し、車載カメラ21〜24を搭載する車両7の移動量を推定する。なお、本実施形態では、車両7が4つの車載カメラ21〜24を有するために、推定部122は、車載カメラ21〜24ごとに、車両7の移動量の推定値を求める。本実施形態では、推定部122が行う統計処理は、ヒストグラムを用いた処理である。ヒストグラムを用いた移動量の推定処理の詳細については後述する。
判定部123は、推定部122で得られた推定情報に基づいて車載カメラ21〜24のずれを判定する。判定部123は、推定部122で推定された移動量に基づいて車載カメラ21〜24のずれを判定する。詳細には、判定部123は、推定部122で得られた推定情報と、車載カメラ21〜24以外の外部センサから入力される車両7の移動に関わる実測情報とに基づいて車載カメラ21〜24のずれを判定する。なお、本実施形態では、車両7が4つの車載カメラ21〜24を有するために、判定部123は、車載カメラ21〜24ごとにカメラずれの判定を行う。
本実施形態では、判定部123は、推定部122で推定された移動量と、車両7の速度情報から取得される車両7の移動量とに基づいて車載カメラ21〜24のずれを判定する。車両7の速度情報は車速センサ41から入力される。すなわち、本実施形態においては、実測情報は、通信バス50を介して判定部123に入力される車両7の速度情報を含む。このように構成した場合、車両7の実際の移動量を簡単且つ正確に取得して、車載カメラ21〜24のずれを判定することができる。
なお、車両7の移動に関わる実測情報は、車速センサ41から取得される車両7の速度情報に限定されない。例えば、車両7の移動に関わる実測情報は、GPS(Global Positioning System)受信機から取得される車両7の移動距離情報(移動量情報)であってもよい。また、車両7の移動に関わる実測情報は、1つの情報ではなく、複数の情報であってよい。例えば、車両7の移動に関わる実測情報は、車速センサ41から取得される車両7の速度情報と、舵角センサ42から取得される車両7におけるステアリングホイールの回転角情報との2つの情報であってもよい。
本実施形態の構成によれば、カメラずれ検出装置1は、車載カメラ21〜24の撮影画像と、車速センサ41等の車両7が既に備えるセンサを用いてカメラずれを検出することができるために、カメラずれを検出するための構成に要するコストを抑制することができる。また、本実施形態の構成では、撮影画像の大部分が路面であると想定することで、路面の特徴点のオプティカルフローを利用した統計処理によって、カメラずれを検出することができる。
図3は、カメラずれ検出装置1によるカメラずれの検出フローの一例を示すフローチャートである。なお、本実施形態では、4つの車載カメラ21〜24のそれぞれについて、図3に示すカメラずれの検出フローが実施される。重複説明を避けるために、ここでは、フロントカメラ21の場合を代表例として、カメラずれの検出フローを説明する。
図3に示すように、まず、制御部12は、フロントカメラ21を搭載する車両7が直進しているか否かを確認する(ステップS1)。車両7が直進しているか否かは、例えば、舵角センサ42から得られるステアリングホイールの回転角情報に基づいて判断することができる。例えば、ステアリングホイールの回転角がゼロの時に車両7が完全にまっすぐに進むとした場合に、回転角がゼロの場合だけなく、回転角がプラス方向とマイナス方向の一定範囲内の回転である場合を含めて、車両7が直進していると判断してよい。なお、直進には、前進方向の直進と、後退方向の直進との両方が含まれる。
制御部12は、車両7が直進していると判断されるまで、ステップS1の確認を繰り返す。車両7が直進走行しない限り、カメラずれを判定するための情報が取得されない。換言すると、判定部123による車載カメラ(フロントカメラ)21のずれ判定は、車載カメラ以外の外部センサ(ここでは舵角センサ42)によって車両7が直進していると判断される場合に取得された情報を用いて行われる。これによれば、車両7の進行方向が曲がっている場合の情報を用いてカメラずれの判定が行われないために、カメラずれを判定するための情報処理が複雑になることを避けられる。
車両7が直進していると判断される場合(ステップS1でYes)、制御部12は、車両7の速度が所定速度範囲内であるか否かを確認する(ステップS2)。所定速度範囲は、例えば時速3km以上時速5km以下である。本実施形態では、車両7の速度は、車載カメラ21〜24以外の外部センサである車速センサ41によって取得することができる。なお、ステップS1とステップS2とは、順番が入れ替わってもよい。また、ステップS1とステップS2とは同時に処理が行われてもよい。
制御部12は、車両7の速度が所定速度範囲外である場合(ステップS2でNo)、ステップS1に戻って車両7の直進判断を行う。車両7の速度が所定速度範囲内でない限り、カメラずれを判定するための情報が取得されない。換言すると、判定部123による車載カメラ(フロントカメラ)21のずれ判定は、車載カメラ21〜24以外の外部センサ(ここでは車速センサ41)によって車両7が所定速度範囲内で走行していると判断される場合に取得された情報を用いて行われる。例えば、車両7の速度が速すぎると、オプティカルフローの導出が不確かになり易くなる。一方で、車両7の速度が遅すぎると、車速センサ41から取得される車両7の速度の信頼性が低下する。この点、本実施形態の構成によれば、車両7の速度が速すぎる場合や遅すぎる場合を除いてカメラずれの判定を行うことができるために、カメラずれの判定の信頼性を向上することができる。
なお、所定速度範囲は設定変更可能であることが好ましい。これによれば、所定速度範囲を各車両に適した値にすることができ、カメラずれの判定の信頼性を向上することができる。本実施形態では、所定速度範囲の設定は入力部3によって行うことができる。
車両7が所定速度範囲内で走行していると判断される場合(ステップS2でYes)、導出部121によって特徴点の抽出が行われる(ステップS3)。換言すると、車両7が所定の低速で直進走行している場合に、導出部121によって特徴点の抽出が行われる。導出部121による特徴点の抽出は、例えば、停止している車両7が動き出す場合や、走行している車両7が止まる場合等に行われる。
図4は、特徴点FPを抽出する手法を説明するための図である。図4は、フロントカメラ21で撮影される撮影画像Pを模式的に示している。特徴点FPは路面RS上に存在する。図4においては、特徴点FPの数は2つとされているが、この数は便宜的なものであり、実際の数を示すものではない。通常、多数の特徴点が取得される。図4に示すように、導出部121は特徴点FPを所定領域RE内で抽出する。所定領域REは、撮影画像Pの中心部Cを含む広範囲に設定される。これにより、特徴点FPの発生箇所が均一でなく偏った範囲である場合でも、特徴点FPを抽出することができる。なお、所定領域REは、車両7のボディBOが映る領域は避けて設定される。
特徴点FPが抽出されると、導出部121は、抽出した特徴点FPごとにオプティカルフローを導出する(ステップS4)。図5は、オプティカルフローOFを導出する手法を説明するための図である。図5は、図4と同様に便宜的に示された模式図である。図5は、図4に示す撮影画像(前フレームP)の撮影後、所定時間が経過した後にフロントカメラ21で撮影された撮影画像(現フレームP´)である。図4に示す撮影画像Pの撮影後、所定時間が経過するまでの間に、車両7は後退している。図5に示す破線の丸印は、図4に示す撮影画像Pの撮影時点における特徴点FPの位置を示す。
図5に示すように、車両7が後退すると、車両7の前方に存在する特徴点FPは車両7から離れる。すなわち、特徴点FPは、現フレームP´と前フレームPとで異なる位置に現れる。導出部121は、現フレームP´の特徴点FPと前フレームPの特徴点FPとを、その近傍の画素値に基づいて対応付け、対応付けた特徴点FPのそれぞれの位置に基づいてオプティカルフローOFを導出する。
オプティカルフローOFが導出されると、推定部122は、カメラ座標系で得られた各オプティカルフローOFを、ワールド座標系のオプティカルフローに変換する(ステップS5)。図6は、座標変換処理を説明するための図である。図6に示すように、推定部122は、フロントカメラ21の位置(視点VP1)から見たオプティカルフローOFを、車両7が存在する路面の上方の視点VP2から見たオプティカルフローOF_Cに変換する。推定部122は、撮影画像Pにおける各オプティカルフローOFを、路面に相当する仮想平面RS_Vに投影することで、ワールド座標系のオプティカルフローOF_Cに変換する。
次に、推定部122は、ワールド座標系の各オプティカルフローOF_Cに基づいてヒストグラムを生成する(ステップS6)。本実施形態では、推定部122は、各オプティカルフローOF_Cを前後方向と左右方向との2成分に分けて、第1ヒストグラムと第2ヒストグラムとを生成する。図7は、推定部122によって生成される第1ヒストグラムHG1の一例を示す図である。図8は、推定部122によって生成される第2ヒストグラムHG2の一例を示す図である。なお、図7および図8はカメラずれが発生していない場合に得られるヒストグラムを示す。
図7に示す第1ヒストグラムHG1は、各オプティカルフローOF_Cの前後方向成分に基づいて得られたヒストグラムである。第1ヒストグラムHG1は、オプティカルフローOF_Cの数を度数とし、前後方向への移動量(オプティカルフローOF_Cの前後方向成分の長さ)を階級とするヒストグラムである。図8に示す第2ヒストグラムHG2は、オプティカルフローOF_Cの左右方向成分に基づいて得られたヒストグラムである。第2ヒストグラムHG2は、オプティカルフローOF_Cの数を度数とし、左右方向への移動量(オプティカルフローOF_Cの左右方向成分の長さ)を階級とするヒストグラムである。
図7および図8は、カメラずれが発生しておらず、車両7が後方に直進した場合に得られるヒストグラムである。このために、第1ヒストグラムHG1は、後退側の特定の移動距離(階級)に偏って度数が多くなっている。一方、第2ヒストグラムHG2は、移動量ゼロの近傍の階級に偏って度数が多くなっている。
図9は、カメラずれが発生した場合のヒストグラムの変化を例示する図である。図9は、フロントカメラ21がチルト方向(鉛直方向)に回転してずれた場合を例示する。図9において、上段(a)はカメラずれが発生していない場合(正常時)の第1ヒストグラムHG1であり、下段(b)はカメラずれが発生した場合の第1ヒストグラムHG1である。フロントカメラ21のチルト方向の回転ずれは、主にオプティカルフローOF_Cの前後方向成分に影響を与える。図9に示す例では、フロントカメラ21のチルト方向の回転ずれによって、度数が大きくなる階級が正常時に比べて前方側にずれている。
なお、フロントカメラ21のチルト方向の回転ずれは、オプティカルフローOF_Cの左右方向成分に対する影響は小さい。このために、図示は省略するが、第2ヒストグラムHG2のカメラずれ前後の変化は、第1ヒストグラムHG1の場合に比べて小さい。ただし、これは、フロントカメラ21がチルト方向にずれた場合であり、フロントカメラ21が、例えばパン方向(水平方向)やロール方向(光軸を中心とする回転方向)等にずれを生じた場合には、異なったヒストグラム変化が発生する。
推定部122は、生成したヒストグラムHG1、HG2によって車両7の移動量を推定する(ステップS7)。本実施形態では、推定部122は、第1ヒストグラムHG1によって、車両7の前後方向の移動量を推定する。推定部122は、第2ヒストグラムHG2によって、車両7の左右方向の移動量を推定する。すなわち、推定部122で得られた推定情報には、車両7の前後方向および左右方向の移動量の推定値が含まれる。これによれば、車両7の前後方向および左右方向の移動量の推定値を用いてカメラずれの検出を行うことができるために、カメラずれの検出結果の信頼性を向上することができる。なお、本実施形態では、特定の条件下で抽出される特徴点が路面RS上に存在するとの前提の下に車両7の移動量を推定する。
本実施形態では、推定部122は、第1ヒストグラムHG1の中央値(メジアン)を前後方向の移動量の推定値とする。推定部122は、第2ヒストグラムHG2の中央値を左右方向の移動量の推定値とする。ただし、推定部122による推定値の決定方法は、これに限定されない。推定部122は、例えば、各ヒストグラムHG1、HG2の度数が最大となる階級を移動量の推定値としてもよい。また、推定部122は、例えば、各ヒストグラムHG1、HG2において、平均値を移動量の推定値としてもよい。
なお、図9に示す例では、一点鎖線はフロントカメラ21が正常である場合の前後方向の移動量の推定値を示し、二点鎖線はカメラずれが発生した場合の前後方向の移動量の推定値を示す。図9に示すように、カメラずれの発生によって、前後方向の移動量の推定値に差Δが生じていることがわかる。
推定部122で車両7の移動量の推定値が得られると、判定部123はフロントカメラ21のずれ判定を行う(ステップS8)。判定部123は、車両7の前後方向の移動量と、車両7の左右方向の移動量と、車両7の前後方向および左右方向の移動量に基づいて得られる特定量とのうち少なくともいずれか1つについて、推定部122で得られた推定値と、車載カメラ21〜24以外の外部センサから入力される車両7の移動に関わる実測情報によって得られる値との差が所定の閾値以上になった場合に、車載カメラ(フロントカメラ)21のずれが発生していると判定する。これによれば、車載カメラから得られる車両7の移動量の推定値と、外部センサを用いた実測情報から得られる車両7の移動量とを比較して、車載カメラのずれを適切に検出することができる。
本実施形態では、車載カメラ21〜24以外の外部センサから入力される車両7の移動に関わる実測情報は、車速センサ41から入力される車両7の速度情報である。この速度情報から推定値と比較する車両7の移動量が算出される。詳細には、当該移動量は、オプティカルフローOFを導出するための2つの撮影画像の撮影時間間隔と、その間の車速センサ41によって得られる車両7の速度とによって算出される。また、当該移動量は、推定部122で得られる移動量の推定値が前後方向と左右方向との2つであることに対応して、前後方向と左右方向との2つの値が存在する。ただし、本実施形態では、車両7が前後方向に直進している場合にオプティカルフローOFを導出するための撮影画像を撮影する構成であるために、この間に車両7は左右方向に移動しておらず、速度情報から算出される左右方向の移動量は常にゼロになる。
図10は、判定部123によって行われるカメラずれ判定処理の一例を示すフローチャートである。まず、判定部123は、前後方向の移動量について、推定部122で推定された推定値と、車速センサ41から得られる車両7の速度情報によって求められる値との差の大きさが第1閾値より小さいか否かを確認する(ステップS11)。両者の差の大きさが第1閾値以上である場合(ステップS11でNo)、判定部123は、フロントカメラ21の取付け状態が異常であり、カメラずれが生じていると判定する(ステップS15)。一方、両者の差の大きさが第1閾値より小さい場合(ステップS11でYes)、判定部123は、前後方向の移動量からは異常が検出されないと判定する。
前後方向の移動量から異常が検出されない場合、判定部123は、左右方向の移動量について、推定部122で推定された推定値と、車速センサ41から得られる車両7の速度情報によって求められる値との差の大きさが第2閾値より小さいか否かを確認する(ステップS12)。両者の差の大きさが第2閾値以上である場合(ステップS12でNo)、判定部123は、フロントカメラ21の取付け状態が異常であり、カメラずれが生じていると判定する(ステップS15)。一方、両者の差の大きさが第2閾値より小さい場合(ステップS12でYes)、判定部123は、左右方向の移動量からは異常が検出されないと判定する。
左右方向の移動量からも異常が検出されない場合、判定部123は、前後方向および左右方向の移動量に基づいて得られる特定量について、推定部122で推定された推定値と、車速センサ41から得られる車両7の速度情報によって求められる値との差の大きさが第3閾値より小さいか否かを確認する(ステップS13)。本実施形態では、特定量は、前後方向の移動量を二乗して得られる値と、左右方向の移動量を二乗して得られる値との和の平方根値である。ただし、これは例示にすぎず、特定量は、例えば、前後方向の移動量を二乗して得られる値と、左右方向の移動量を二乗して得られる値との和であってもよい。
特定量の推定値と、速度情報によって求められる値との差の大きさが第3閾値以上である場合(ステップS13でNo)、判定部123は、フロントカメラ21の取付け状態が異常であり、カメラずれが生じていると判定する(ステップS15)。一方、両者の差の大きさが第3閾値より小さい場合(ステップS13でYes)、判定部123は、フロントカメラ21の取付け状態は正常であると判定する(ステップS14)。
本実施形態では、前後方向の移動量、左右方向の移動量、および、特定量のうち、いずれか1つでも、推定部122で得られる推定値と、速度情報によって得られる値との比較により異常が認められると、カメラずれが発生していると判定する。これによれば、カメラずれが発生しているにもかかわらず、カメラずれが発生していないと判定する可能性を低減できる。ただし、これは例示である。例えば、前後方向の移動量、左右方向の移動量、および、特定量の全てにおいて、推定部122で得られる推定値と、速度情報から得られる値との比較により異常が認められる場合に限って、カメラずれが発生していると判定する構成としてもよい。カメラずれの判定基準は、入力部3によって適宜変更することができることが好ましい。
本実施形態では、前後方向の移動量、左右方向の移動量、および、特定量について、推定値と速度情報から得られる値との比較を順番に行う構成としたが、これらの比較は同じタイミングで行われてもよい。また、前後方向の移動量、左右方向の移動量、および、特定量について、推定値と速度情報から得られる値との比較を順番に行う構成の場合、その順番は特に限定されず、図10に示す順番とは異なる順番とされてもよい。なお、本実施形態では、移動量に基づいてカメラずれを判定したが、速度に基づいてカメラずれを判定してもよい。この場合、オプティカルフローから推定した移動量と、オプティカルフローの算出に使用したフレーム間の時間を基に前後方向および左右方向の速度を推定し、車速センサ41から得られる車両7の速度と比較することでカメラずれを判定すればよい。この場合の車速センサ41から得られる車両7の速度は前後方向の速度であり、左右方向の速度は0である。すなわち、本実施形態では、移動量と速度は同義である。
なお、カメラずれが検出された場合、カメラずれ検出装置1は、そのことを運転者等に報知するための処理を行うことが好ましい。また、カメラずれ検出装置1は、車載カメラ21〜24からの情報を用いて運転支援を行う運転支援装置に、カメラずれが発生していることを通知する処理を行うことが好ましい。本実施形態では、4つの車載カメラ21〜24が存在するが、4つの車載カメラ21〜24のうちの1つでもカメラずれが発生した場合には、上記報知処理及び通知処理を行うことが好ましい。
<3.統計処理の詳細>
推定部122は、車載カメラ21〜24以外の外部センサから得られる車両7の移動情報に基づいて、導出部121で導出された複数のオプティカルフローOFの中から統計処理に用いるオプティカルフローOFを絞り込み、車両7の移動量の推定を行う。
導出部121で導出されるオプティカルフローOFは、路面状況等の影響を受け易く、導出された複数のオプティカルフローOFの中には車両7の動きを正確に反映していないものが含まれることがある。本実施形態では、カメラずれ検出装置1の外部に設けられるセンサから得られる車両7の移動情報を利用して、車両7の動きを正確に反映していない可能性が高いオプティカルフローOFを除外して車両7の移動量の推定値を求めることができる。このために、判定部123におけるカメラずれの判定処理の信頼性を向上することができる。
なお、本実施形態の手法は、車載カメラ21〜24の大きなずれを検出するよりも、比較的小さな車載カメラ21〜24のずれを検出するのに好適である。また、本実施形態においては、統計処理には、複数のオプティカルフローOFに基づいて移動量の分布を示すヒストグラムを生成する処理が含まれる。
外部センサから得られる車両7の移動情報には、車両7の速度情報が含まれる。車両7の速度情報は、例えば車速センサ41から通信バス50を介して取得されてよい。ただし、車両7の速度情報は、例えばGPSセンサ等の他のセンサから取得されてもよい。推定部122は、統計処理に用いるオプティカルフローOFを、速度情報に基づいて設定された一定範囲内の移動量を示すオプティカルフローOFに絞り込み、移動量の推定を行う。これによれば、車両7の速度情報から推測される移動量から大きくかけ離れたオプティカルフローOFを除外して車両7の移動量の推定値を求めることができ、カメラずれの判定処理の信頼性を向上することができる。
図11は、車両7の速度情報に基づいて統計処理に用いるオプティカルフローOFを絞り込む手法を説明するための図である。図11は、前後方向の移動量ヒストグラム(第1ヒストグラムHG1)を例示する。詳細には、推定部122は、座標変換されたオプティカルフローOF_Cを用いて統計処理に用いるオプティカルフローの絞込みを行う。推定部122は、座標変換された複数のオプティカルフローOF_Cの中から、前後方向成分の大きさ(移動量)が、一定範囲内となるオプティカルフローOF_Cを抽出する。図11において、斜線を施した部分が一定範囲に該当する。抽出したオプティカルフローOF_Cを用いて生成されるヒストグラムを用いて車両7の移動量の推定が行われる。
なお、本実施形態では、前後方向と左右方向との移動量ヒストグラムが生成されるが、両者の生成に際して、上述の抽出処理によって抽出したオプティカルフローOF_Cのみが用いられる。また、本実施形態では、オプティカルフローOFの絞り込みに際して、前後方向成分のみが用いられているが、これに限定されず、左右方向成分のみが用いられたり、前後方向成分と左右方向成分の両方が用いられたりしてよい。
速度情報に基づいて設定される一定範囲は、車両7の速度情報から算出される車両7の実際の移動量を基準として、前後方向に所定量の幅を持たせた範囲である。なお、車両7の実際の移動量は、オプティカルフローOFを導出するための2つ画像の撮影時間間隔に車両7が移動する量である。本実施形態では、車両7の実際の移動量は、前後方向の移動量である。また、所定量は、カメラずれを検出できることを前提として、例えば実験やシミュレーション等によって適宜決められる。
なお、推定部122は、車両7の速度が所定の速度範囲外である場合に、所定の速度範囲内の場合に比べて一定範囲の設定基準を変更してよい。本実施形態では、オプティカルフローOFは、車両7の速度が時速3km以上時速5km以下の場合にのみ取得される構成であり、一定範囲の設定基準は一定としている。ただし、オプティカルフローOFは、車両7の速度が例えば時速1km程度の超低速や、時速5km以上の速度の場合に取得されてもよい。しかし、車両7の速度が超低速になると、車速センサ41によって得られる速度の精度が低下する。また、車両7の速度が比較的高速になると、オプティカルフローOFの精度が低下する。このために、車両7の速度が例えば時速3km以上時速5km以下等の所定の速度範囲内である場合と、所定の速度範囲外である場合とで一定範囲の設定基準を変更することが好ましい。例えば、車両7の速度が時速3km以上時速5km以下の範囲外である場合の方が、車両7の速度が時速3km以上時速5km以下の範囲内である場合に比べて、実際の車両7の移動距離に対して幅を持たせる所定量を大きくして一定範囲を設定することが好ましい。
外部センサから得られる車両7の移動情報には、車両7の進行方向情報が含まれる。車両7の進行方向情報は、例えば舵角センサ42から通信バス50を介して取得されてよい。ただし、車両7の進行方向情報は、例えばGPSセンサ等の他のセンサから取得されてもよい。推定部122は、進行方向情報によってオプティカルフローOFを取得した際に車両7が前後方向に直進していたと判断される場合に、左右方向の移動量が所定の範囲外になるオプティカルフローOFを除いて移動量の推定を行う。これによれば、車両7の進行方向成分を持たない方向に向く信頼性の低いオプティカルフローOFを除外して車両7の移動量の推定値を求めることができ、カメラずれの判定処理の信頼性を向上することができる。
図12は、車両7の進行方向情報に基づいて統計処理に用いるオプティカルフローOFを絞り込む手法を説明するための図である。図12は、左右方向の移動量ヒストグラム(第2ヒストグラムHG2)を例示する。本実施形態では、オプティカルフローOFは、車両7が前後方向に直進している場合にのみ取得される。このために、推定部122は、導出部121で導出された複数のオプティカルフローOFの全てについて、座標変換されたオプティカルフローOF_Cの左右方向成分の大きさ(移動量)が所定の範囲外になるか否かを判断する。図12において、斜線を施した部分が所定の範囲外に該当する。推定部122は、左右方向成分の移動量が所定の範囲外になるオプティカルフローOF_Cを除いて生成されるヒストグラムを用いて車両7の移動量の推定を行う。所定の範囲は、例えば実験やシミュレーション等によって適宜決められる。
なお、本実施形態では、前後方向と左右方向との移動量ヒストグラムが生成されるが、両者の生成に際して、上述の処理により除外されたオプティカルフローOF_Cは使用されない。また、車両7の移動情報を利用したオプティカルフローOFの絞り込み処理は、上述した速度情報を利用した絞込みと、進行方向情報を利用した絞込みとのうち、いずれか一方のみが実施されてもよい。
図13は、推定部122で得られる推定値の信頼性を更に向上する第1手法を説明するための図である。図13は、前後方向の移動量ヒストグラム(第1ヒストグラムHG1)を例示する。図13に示すように、推定部122は、ヒストグラムの度数が一定数より少ない移動量階級を除いて推定処理を行ってよい。すなわち、推定部122は、ヒストグラムの度数が一定数より少ない移動量階級を除いたヒストグラムを用いて移動量の推定を行ってよい。図13において、破線DLが前記一定数に該当する。一定数は、例えば実験やシミュレーション等によって適宜決められる。度数が極端に低い移動量階級は、信頼性の低いデータである可能性が高いために、本構成により、推定部122で得られる推定値の信頼性を向上することができる。なお、ヒストグラムの度数が一定数より少ない移動量階級を除く処理は、第1ヒストグラムHG1を用いた処理だけなく、第2ヒストグラムHG2を用いた処理にも適用してよい。
図14は、推定部122で得られる推定値の信頼性を更に向上する第2手法を説明するための図である。図14は、前後方向の移動量ヒストグラム(第1ヒストグラムHG1)を例示する。推定部122は、ヒストグラムの分散度合に応じて車両7の移動量の推定に用いるヒストグラムの移動量階級の範囲を設定して推定処理を行ってよい。すなわち、推定部122は、ヒストグラムの分散度合に応じて設定した範囲内の移動量階級のヒストグラムを用いて移動量の推定を行ってよい。なお、当該処理は、第1ヒストグラムHG1を用いた処理だけなく、第2ヒストグラムHG2を用いた処理にも適用してもよい。
図15は、車載カメラ21〜24で撮影される撮影画像Pの模式図である。図15に示すように、車載カメラ21〜24で撮影される撮影画像Pには、車両7(自車両)の影SHが映ることがある。そして、図15に示すように、影SHが特徴点FPを抽出する所定領域RE内に入ると、導出部121が影SHに由来する特徴点FPを抽出することがある。影SHに由来する特徴点FPは車両7とともに移動するために、当該特徴点FPに基づくオプティカルフローOFの大きさはゼロとなり、車両7の動きを反映しない。図14に示す例は、車両7の影SHが所定領域REの一部に映り込んだ場合に得られるヒストグラムを例示している。車両7が移動しているにもかかわらず、移動量ゼロの近傍にもピークが生じ、ヒストグラムは分散した状態になっている。
図14に示す例では、推定部122は、車速センサ41から得られる速度情報に基づいて、車両7の移動量の推定に用いるヒストグラムの移動量階級の範囲を設定することができる。詳細には、速度情報から車両7が移動していると判断される場合、移動量ゼロ近傍に生じるピークは不適切なデータである可能性が高い。このために、図14に斜線で示すように、推定部122は、移動量ゼロから離れた位置にあるピークを中心として移動量の推定を行う範囲を設定して、当該設定を行った範囲内のデータを用いて移動量の推定を行う。このような構成とすることで、車両7の影SH等の影響によってヒストグラムの分散が大きくなった場合でも、信頼性の高い推定値を得ることができる。なお、推定部122は、ヒストグラムの分散が大きい場合に、速度情報を用いるのではなく、単にピークから一定量離れた部分を移動量の推定に用いる範囲から除外して、移動量の推定を行ってもよい。一定量は、例えば実験やシミュレーション等によって適宜決められ、予め記憶部13に記憶されてよい。
その他、推定部122は、先に行われた車両7の移動量の推定処理に基づいて車両7の移動量の推定に用いるヒストグラムの移動量階級の範囲を設定して推定処理を行ってもよい。すなわち、推定部122は、先に行われた移動体の移動量の推定処理に基づいて設定した範囲内の移動量階級のヒストグラムを用いて移動量の推定を行ってもよい。なお、当該処理は、第1ヒストグラムHG1を用いた処理だけなく、第2ヒストグラムHG2を用いた処理にも適用してもよい。本構成では、先に推定部122で行われた車両7の推定処理の条件や結果が記憶部13に記憶される。記憶部13に記憶されるデータは、直前の推定処理データだけでもよいが、それ以前の少なくとも1つの推定処理データが含まれてよい。また、記憶部13には、推定部122による過去の推定処理に関する情報だけでなく、判定部123による過去の判定処理に関する情報も記憶されることが好ましい。
本構成によれば、例えば、過去の連続して車載カメラ21〜24の取付け状態が正常であると判定された結果等を読み出して、推定部122は、信頼性の高い条件で移動量の推定値を得ることができる。また、本構成によれば、先に異常が検出された場合に、先の推定処理と比較して異なる条件でヒストグラム処理を行うことが可能になる。
<4.変形例等>
<4−1.第1変形例>
以上においては、判定部123によって、カメラずれが生じていると一度判定されただけで、カメラずれが発生しているとの判定を確定し、カメラずれを検出する構成としている。これに限らず、判定部123によってカメラずれが生じていると判定された場合に、少なくとも1回、再判定を行い、再判定によって更にカメラずれが生じていると判定された場合に、カメラずれが発生しているとの判定を確定してもよい。再判定は、単純に、図3に示すステップS1〜S8を少なくとも1回繰り返す構成であってよいが、別の構成であってもよい。
図16は、カメラずれの再判定処理の一例について説明するための図である。図16においては特徴点の記載は省略されている。図16に示すように、判定部123は、画像の中心部Cを含む第1領域RE1内の特徴点のオプティカルフローを用いて推定された推定情報に基づいて車載カメラがずれていると判定した場合に、画像の中心部Cを含まない第2領域RE2内の特徴点のオプティカルフローを用いて求められた推定情報によって車載カメラのずれを再判定してよい。再判定で用いる画像は、先のカメラずれの判定に用いた画像と同じであってよいが、場合によっては、先のカメラずれの判定に用いた画像の撮影後に再度撮影された画像であってもよい。
第2領域RE2は、1つでもよいが複数であってもよい。図16に示す例では、第2領域RE2は2つであるが3つ以上であってもよい。第2領域RE2が複数である場合、各第2領域RE2において、導出部121によるオプティカルフローOFの導出、推定部122による移動量の推定値の取得、および、判定部123によるカメラずれの判定が行われる。第2領域RE2は、第1領域RE1に比べて小さい領域であることが好ましい。
車載カメラ21〜24のカメラずれが生じた場合、画像の中心部Cよりも中心部Cから離れた領域の方が、推定部122によって得られる車両7の移動量と、車速センサ41等のセンサから得られる実測情報によって得られる車両7の移動量との差が大きくなり易い。このために、画像の中心部Cから離れて位置する第2領域RE2を用いた再判定を行うことによって、カメラずれの検出精度を向上することができる。
<4−2.第2変形例>
図17は、カメラずれ検出装置1によるカメラずれの検出フローの変形例を示すフローチャートである。図17に示すステップS1からステップS7の処理は、上述した図3に示す処理と同様であるために説明は省略する。本変形例では、ステップS7によって移動量の推定値を求めた後に、求めた移動量の推定値を先に求めた移動量の累積値に足し合わせる処理が行われる(ステップS9)。当該処理は、例えば推定部122又は判定部123で行われてよい。なお、累積値算出処理は、前後方向の移動量の推定値、および、左右方向の移動量の推定値に対して行われる。また、第1回目の推定値が求められた際には、先に求めた累積値が無いために、累積値算出処理で得られる累積値は、ステップS7で取得した推定値そのものになる。
累積値の算出が行われると、車両7の移動量が所定の移動距離に到達したか否かが確認される(ステップS10)。本変形例では、ここで言う車両7の移動量は、オプティカルフローOFを導出するための2つの画像の撮影時間間隔に車両7が前後方向に移動する量を積算したものである。車両7の前後方向の移動量は、車速センサ41によって得られる速度情報から算出される。当該移動量の積算の開始は、推定値の累積処理の開始に合わせて行われる。車両7の前後方向の移動量が所定の移動距離に到達しない場合(ステップS10でNo)、ステップS1に戻って、ステップS1〜ステップS7およびステップS9が順次行われる。
一方、車両7の前後方向の移動量が所定の移動距離に到達すると(ステップS10でYes)、判定部123によってカメラずれの判定が行われる(ステップS8A)。判定部123は、移動量の推定値として累積値を用いる。本実施形態では、累積値には、前後方向の累積値と、左右方向の累積値とが存在する。比較対象となる値は、オプティカルフローOFを導出するための2つの画像の撮影時間間隔に車両7が移動する量を積算したもので、車速センサ41によって得られる速度情報から算出される。当該値には、前後方向の移動量と、左右方向の移動量とが存在する。ただし、本変形例では、車両7が前後方向に直進している場合にオプティカルフローOFを導出するための撮影画像を撮影する構成であるために、この間に車両7は左右方向に移動しておらず、左右方向の移動量(左右方向の累積値と比較する比較値)はゼロである。
本変形例では、車両7の移動量が所定距離に到達するまで推定部122で得られた推定値を足し合わせて累積値を求める処理が行われ、判定部123は、車両の移動量が所定距離に到達した時点で累積値に基づいて車載カメラのずれを判定する。これによれば、カメラずれが生じている場合に、推定値と、実測情報から得られる値との差が明確に表れるタイミングでずれ判定を行うことができ、ずれ判定の信頼性を向上することができる。
<4−3.その他>
本明細書における実施形態や変形例の構成は、本発明の例示にすぎない。実施形態や変形例の構成は、本発明の技術的思想を超えない範囲で適宜変更されてもよい。また、複数の実施形態及び変形例は、可能な範囲で組み合わせて実施されてよい。
以上においては、車載カメラ21〜24のずれ判定に用いるデータは、車両7が直進走行している場合に収集される構成とした。ただし、これは例示であり、車載カメラ21〜24のずれ判定に用いるデータは、車両7が直進走行していない場合に収集されてもよい。車速センサ41から得られる速度情報と舵角センサ42から得られる情報とを用いれば、車両7の前後方向および左右方向の実際の移動量を正確に求めることができるために、車両7が直進走行していない場合でも上述のずれ判定を行うことができる。
また、以上においては、推定部122は、前後方向の移動量の推定値と、左右方向の移動量の推定値とを求める構成としたが、いずれか一方だけを求める構成としてもよい。ただし、いずれか一方だけの推定値を求める構成とする場合には、推定部122は、前後方向の移動量の推定値のみを求めることが好ましい。この場合、例えば、判定部123は、前後方向の移動量について、推定部122で得られる推定値と、センサ部4で取得される実測情報から得られる値とを比較してカメラずれの判定を行ってよい。
また、推定部122は、車両7に搭載されたフロントカメラ21から得た画像の変化に基づき、車両7の移動速度を推定してもよい。また、判定部123は、推定部122が推定した車両7の移動速度とセンサ部4の車速センサ41から得られる車両7の移動速度とを比較し、フロントカメラ21の異常を判定してもよい。異常とは、上述のカメラずれである。判定部123は、推定した車両7の移動速度と車速センサ41から得られる移動速度とに一定以上の乖離があれば、フロントカメラ21の異常を判定できる。これにより、簡易にカメラずれを検出できる。
また、推定部122は、車両7が複数のカメラ(フロントカメラ21、左サイドカメラ22、右サイドカメラ23、バックカメラ24)を搭載している場合において、複数のカメラから得た画像の変化に基づき、複数のカメラ毎に車両7の車速を推定してもよい。判定部123は、複数のカメラ毎の車両7の移動速度を比較することにより、複数のカメラのうち異常が生じているカメラを判定してもよい。例えば、判定部123は、フロントカメラ21の画像に基づく移動速度のみが左サイドカメラ22、右サイドカメラ23及びバックカメラ24の各画像に基づく移動速度と異なる場合に、フロントカメラ21の異常を判定できる。これにより、簡易に複数のカメラからカメラずれのあるカメラを検出できる。