【解決手段】カメラ2ごとに、そのカメラ2によって撮影され、指定駐車枠83の全体が映っているキャリブレーション用映像70をキャリブレーション用俯瞰映像72に変換する俯瞰変換部50と、各カメラ2のキャリブレーション用俯瞰映像72に現れた指定駐車枠83に基づいて、それぞれのカメラのパラメータを推定するパラメータ推定部56とを備える。パラメータ推定部56は、各カメラ2のキャリブレーション用俯瞰映像72における一対の枠線83Aのずれ、並びに、それぞれの指定駐車枠83の間の相対関係に基づいて、各カメラ2のパラメータを推定する。
車両のフロント部、リア部、左サイド部、及び右サイド部のそれぞれに設けられたカメラの前記車両への取付に係るパラメータをキャリブレーションするキャリブレーション方法において、
前記カメラごとに、そのカメラによって撮影され、所定の駐車枠の全体が映っているキャリブレーション用映像を取得する第1ステップと、
各カメラのキャリブレーション用映像をキャリブレーション用俯瞰映像に変換する第2ステップと、
各カメラのキャリブレーション用俯瞰映像に現れた前記駐車枠に基づいて、それぞれのカメラのパラメータを推定する第3ステップと、を備え、
前記第1ステップでは、
いずれか2つのカメラによって同じタイミングで撮影されている前記キャリブレーション用映像の組を、前記カメラのそれぞれについて取得し、
前記第3ステップでは、
各カメラのキャリブレーション用俯瞰映像に現れた前記駐車枠が含む、対向する一対の枠線のずれに基づいて、各カメラのピッチ角、ロール角、及び取付高さに係るパラメータを推定した後、
同じタイミングで撮影されている前記キャリブレーション用映像の組から生成された前記キャリブレーション用俯瞰映像のそれぞれの前記駐車枠の間の相対関係に基づいて、各カメラのヨー角、及び、前記車両の平面視における取付位置に係るパラメータを推定する、
ことを特徴とするキャリブレーション方法。
車両のフロント部、リア部、左サイド部、及び右サイド部のそれぞれに設けられたカメラの前記車両への取付に係るパラメータをキャリブレーションするキャリブレーション装置において、
前記カメラごとに、そのカメラによって撮影され、所定の駐車枠の全体が映っているキャリブレーション用映像を取得する駐車枠映像取得部と、
各カメラのキャリブレーション用映像をキャリブレーション用俯瞰映像に変換する俯瞰変換部と、
各カメラのキャリブレーション用俯瞰映像に現れた前記駐車枠に基づいて、それぞれのカメラのパラメータを推定するパラメータ推定部と、を備え、
前記駐車枠映像取得部は、
いずれか2つのカメラによって同じタイミングで撮影されている前記キャリブレーション用映像の組を、前記カメラのそれぞれについて取得し、
前記パラメータ推定部は、
各カメラのキャリブレーション用俯瞰映像に現れた前記駐車枠が含む、対向する一対の枠線のずれに基づいて、各カメラのピッチ角、ロール角、及び取付高さに係るパラメータを推定した後、
同じタイミングで撮影されている前記キャリブレーション用映像の組から生成された前記キャリブレーション用俯瞰映像のそれぞれの前記駐車枠の間の相対関係に基づいて、各カメラのヨー角、及び、前記車両の平面視における取付位置に係るパラメータを推定する、
ことを特徴とするキャリブレーション装置。
【発明を実施するための形態】
【0013】
以下、図面を参照して本発明の実施形態について説明する。
図1は、本実施形態に係る車載カメラシステム1の機能的構成を示す図である。
図2は、車両3へのカメラ2の設置態様を示す図である。
車載カメラシステム1は、車両3(
図2)に取り付けられているカメラ2が車両3の外部を撮影した撮影映像4に基づいて、車両3の周囲を映した適宜の態様の表示映像5を運転者に向けて表示する車載システムである。かかる車載カメラシステム1は、
図1に示すように、撮影部8と、画像処理装置10と、操作装置12と、表示装置14と、を備える。操作装置12は、ユーザ操作を入力する装置であり、ユーザ操作の入力手法には、操作子の操作入力や、タッチパネルのタッチ操作、音声入力操作といった適宜の手法が用いられる。表示装置14は、各種の情報、及び上記表示映像5などの映像を表示する装置である。
【0014】
撮影部8は、上記4台のカメラ2を備え、各カメラ2の撮影映像4を画像処理装置10に出力する。
図2に示すように、カメラ2は、車両3のフロント部3F、リア部3B、左サイド部3L、及び右サイド部3Rのそれぞれに1台ずつ設置されており、これらのカメラ2によって、車両3の前方DF、後方DB、左方DL、及び右方DRのそれぞれが撮影される。少ない数のカメラ2で車両3の全周囲を隙間無く撮影可能にするために、カメラ2には、画角が比較的広いのもの(例えば超広角の魚眼カメラ)が用いられる。
なお、以下の説明では、必要に応じて、カメラ2の各々をフロントカメラ2F、リアカメラ2B、左サイドカメラ2L、及び右サイドカメラ2Rと称することで互いに区別する。
【0015】
画像処理装置10は、各カメラ2の撮影映像4を画像処理することで表示映像5を生成し、それを表示装置14に出力する装置であり、前掲
図1に示すように、制御部20と、画像入力部22と、ユーザ操作取得部24と、を備える。
画像処理装置10は、プログラム実行機能を有した、例えばECU(Electronic Control Unit)を備えて構成される。ECUは、マイクロコントローラを有し、当該マイクロコントローラには、撮影部8や操作装置12、表示装置14との間で通信する通信デバイスと、CPUやMPUなどのプロセッサと、ROMやRAMなどのメモリデバイスとが実装されている。そして、プロセッサがメモリデバイスに格納されたコンピュータプログラムを実行することで、
図1に示す機能ブロックが実現される。
【0016】
制御部20は、上記プロセッサによって実現されており、画像処理装置10の各部を制御する機能と、表示装置14に表示する表示映像5の種類に応じて各カメラ2の撮影映像4を画像処理する機能と、を備えている。
画像入力部22は、撮影部8が出力する撮影映像4の入力インターフェースとして機能する。また画像入力部22は、各カメラ2の撮影映像4を一時的に記憶し、それを順次に制御部20に出力する画像記憶部23を備える。ユーザ操作取得部24は、操作装置12に入力されたユーザ操作を取得し、それを制御部20に出力する。
【0017】
本実施形態では、表示装置14が表示する表示映像5の種類には、少なくともトップビュー映像30(俯瞰合成映像とも呼ばれる)が含まれている。
トップビュー映像30は、
図3に示すように、車両3、及びその周囲を当該車両3の上方に設定した仮想視点Fから視た映像である。かかるトップビュー映像30は、制御部20によって次のようにして生成される。
すなわち、制御部20は、カメラ2のそれぞれが撮影した車両3の撮影映像4を仮想視点Fから視た俯瞰映像32に射影変換(視点変換とも言う)し、これらの俯瞰映像32を仮想視点Fを基準に合成することでトップビュー映像30を生成する。
【0018】
射影変換には、撮影映像4の二次元座標系(以下、「撮影映像座標系Mg」と言う、
図3参照)を、俯瞰映像32の二次元座標系(以下、「俯瞰映像座標系Mf」と言う、
図3参照)に変換する公知又は周知の座標変換式、或いは、当該座標変換式に基づいて作成された座標変換テーブルが用いられる。
ここで、撮影映像座標系Mgは、それを撮影したカメラ2ごとに設定される三次元座標系(以下、「カメラ座標系Mc」と言う)に対応する。
具体的には、
図4に示すように、カメラ座標系Mcは直交座標系であり、カメラ2の取付位置Pを原点とし、例えばZc軸などの1つの座標軸をカメラ2の撮影方向Kに合致させて設定される。そして、カメラ座標系Mcにおいて、撮影方向Kに垂直な平面の直交座標系が撮影映像座標系Mgに相当している。
一方、車両3には、前掲
図2に示すように、車両3の上下方向(高さ方向)をZv軸に合致させて設定した3次元直交座標系(以下、「車両座標系Mv」という)が設定されており、このZv軸(車両3の高さ方向)に垂直な平面の直交座標系が俯瞰映像座標系Mfに相当している。本実施形態では、車両座標系Mvにおいて、
図2に示すように、車両3の一対の前輪40を結ぶ線をXv軸と定義し、車両3の車幅の中心線をYv軸と定義している。
【0019】
射影変換においては、カメラ2ごとに異なる撮影映像座標系Mgが先ず車両座標系Mvに変換され、次いで俯瞰映像座標系Mfに変換されることで、互いに座標系が異なる各カメラ2の撮影映像4から俯瞰映像32が生成される。
かかる俯瞰映像32の生成のために、画像処理装置10には、前掲
図1に示すように、俯瞰変換部50と、パラメータ記憶部52と、が備えられている。
【0020】
俯瞰変換部50は、上述の射影変換を用いて撮影映像4を俯瞰映像32に変換するものであり、パラメータ記憶部52は、この射影変換に用いられる各種のパラメータを記憶する。
かかるパラメータには、カメラ座標系Mcを特定するための情報(換言すれば、カメラ2の取付時の姿勢を特定する情報)として、各カメラ2の取付位置P、及び撮影方向K(すなわち、カメラ座標系Mcの原点、及び軸方向)が少なくとも含まれる。撮影方向Kは、カメラ2が備える撮影光学系の光軸方向に一致し、このカメラ取付時の光軸方向の向きは、カメラ2の取付角度Aによって一意に特定される。パラメータ記憶部52には、取付角度Aが各カメラ2の撮影方向Kとして記憶される。また、パラメータ記憶部52には、各カメラ2のパラメータの値として、個々に独立したカメラ座標系Mcではなく車両座標系Mvを用いて表した値が記憶される。
【0021】
ここで、取付角度A(撮影方向K)は、
図5に示すように、三次元直交座標系では、ピッチ角α、ヨー角β、及びロール角γの3つの回転角度によって一意に特定される。一般に、これらの回転角度のうち、ピッチ角αはY軸からZ軸方向への回転角度と定義され、ヨー角βはX軸からY軸方向への回転角度と定義され、ロール角γはX軸からZ軸への回転角度と定義される。
しかしながら、本実施形態の車両3においては各カメラ2間で撮影方向Kが全く異なるため、前掲
図4に示すように、各カメラ2のカメラ座標系Mcの軸方向が車両座標系Mvの軸方向と必ずしも一致してはいない。このため、車両座標系Mvにおいて用いられる上記3つの回転角度が示す回転方向は、各カメラ2を個々のカメラ座標系Mcからみた場合に、カメラ座標系Mcの対応する回転角度とは全く異なる回転方向を示すことになる。
【0022】
そこで、本実施形態では、カメラ2の取付角度Aを、カメラ座標系Mcからみている場合には、上記3つの回転角度のそれぞれを、
図4に示すように、カメラ座標系ピッチ角αc、カメラ座標系ヨー角βc、及びカメラ座標系ロール角γcと称し、車両座標系Mvにおける回転角度と区別することにする。
この場合において、
図4に示すように、カメラ座標系ピッチ角αcは、撮影映像4の上下方向(カメラ座標系McにおけるYc軸からZc軸方向)への回転角度であり、カメラ座標系ヨー角βcは、撮影映像4の左右方向(カメラ座標系McにおけるXc軸からYc軸方向)への回転角度である。またカメラ座標系ロール角γcは撮影映像4の映像面に直交する方向(カメラ座標系McにおけるXc軸からZc軸方向)への回転角度である。
【0023】
また以下の説明において、必要がある場合、各カメラ2の撮影映像4を前方映像4F、後方映像4B、左サイド映像4L、及び右サイド映像4Rと称することで、それぞれを区別する。俯瞰映像32についても同様に、前方俯瞰映像32F、後方俯瞰映像32B、左サイド俯瞰映像32L、右サイド俯瞰映像32Rと称することで、それぞれを必要に応じて区別する。
【0024】
かかる構成の下、車載カメラシステム1において、例えば運転者などのユーザが操作装置12を操作してトップビュー映像30の表示を指示すると、画像処理装置10の制御部20が各カメラ2の撮影映像4を、対応するカメラ2のパラメータを用いた射影変換によって俯瞰映像32に変換し、各俯瞰映像32を合成してトップビュー映像30を生成する。
ところで、各カメラ2の取付時には、取付位置Pや取付角度Aのパラメータに、設計値からのずれや誤差を生じることが多々ある。この場合、かかるパラメータを用いて生成された俯瞰映像32にもずれが生じることで、トップビュー映像30において、俯瞰映像32の接合箇所にずれが生じる等の問題がある。
【0025】
そこで本実施形態の画像処理装置10は、プロセッサがメモリデバイスに格納されたコンピュータプログラムを実行することで、各カメラ2のパラメータ(取付位置P、及び取付角度A)をキャリブレーションするキャリブレーション装置の機能を実現するように構成されている。
本実施形態のキャリブレーションは、所定の駐車枠80(
図8)が映った撮影映像4をキャリブレーションに用いるものであり、車両3が駐車枠80の中に駐車していなくとも、車両3が駐車枠80の外を移動することで、キャリブレーションができるようになっている。
【0026】
画像処理装置10は、かかるキャリブレーションを実現するために、前掲
図1に示すように、駐車枠映像取得部54と、パラメータ推定部56と、が制御部20に更に備えられている。
【0027】
駐車枠映像取得部54は、キャリブレーションに利用する撮影映像4(以下、「キャリブレーション用映像70」と言う)を取得し、上述の俯瞰変換部50に出力する。キャリブレーション用映像70は、ユーザによって指定された駐車枠80(以下、「指定駐車枠83」と言う、
図8)の全体が映った撮影映像4である。
俯瞰変換部50は、キャリブレーション用映像70を、パラメータ記憶部52に記憶されているパラメータを用いた射影変換により、キャリブレーション用俯瞰映像72を生成し、パラメータ推定部56に出力する。
【0028】
パラメータ推定部56は、各カメラ2に対応するキャリブレーション用俯瞰映像72に基づいて、各カメラ2のパラメータの現実値を推定し、その値をパラメータ記憶部52に更新保存する。これにより、各カメラ2のパラメータがキャリブレーションされる。
【0029】
ここで、本実施形態において、パラメータ推定部56は、各カメラ2のキャリブレーション用俯瞰映像72に現れた指定駐車枠83の正確性に基づいて、各カメラ2のパラメータの現実値を推定する。
具体的には、パラメータ推定部56は、指定駐車枠83の全体の現実の平面視寸法形状と、キャリブレーション用俯瞰映像72に現れた指定駐車枠83の全体の寸法形状との差がなく、なおかつ、各カメラ2のキャリブレーション用俯瞰映像72に現れた指定駐車枠83の間の相対関係(位置や傾き)が適切になるパラメータの値を求めることで、当該パラメータの現実値を推定する。
【0030】
なお、キャリブレーションに用いる駐車枠80は、
図6に示すように、対向する一対の枠線83Aを含むものであればよく、矩形枠や、3本線枠、平行枠、斜め枠、T字枠などを用いることができる。以下では、駐車枠80が矩形枠である場合を例示する。
【0031】
次いで、画像処理装置10のキャリブレーション動作について、より詳細に説明する。
図7は、キャリブレーション処理のフローチャートである。このキャリブレーション処理は、上記操作装置12を通じてユーザ(例えば運転者)によって指示された場合に画像処理装置10によって実行される。
【0032】
キャリブレーション処理において、画像処理装置10の制御部20は、先ず、全てのカメラ2での撮影を開始し(ステップS1)、車両3の周囲の映像を表示装置14に表示する。そして、制御部20は、表示装置14などの適宜の出力装置に指示メッセージを出力することで、その映像に映った駐車枠80の中からキャリブレーションに用いる指定駐車枠83をユーザに指定させる(ステップS2)。このステップS2の処理は、車両3が停車しているときに行われる。また指定駐車枠83は車両3の前方DFに位置するものから指定されるものとする。
【0033】
なお、ステップS2において、ある駐車枠80がユーザに指定された場合に、制御部20は、その駐車枠80の輪郭線の鮮明度や形状などを画像処理によって特定し、その特定結果に基づいて、指定駐車枠83に適切か否かを判定してもよい。判定結果が不適切である場合、制御部20は、他の駐車枠80をユーザに指定させるように指示メッセージを出力する。その他にも、ステップS2において、表示装置14への映像表示の際に、不適切な駐車枠80をユーザが指定しないように、或いは、指定できないように制御部20が制御してもよい。
かかる処理が実行されることで、不適切な指定駐車枠83が用いられることによって、キャリブレーションによるパラメータの推定が不正確になったり、推定不能に陥いったりする事態を予め回避できる。
【0034】
指定駐車枠83が指定されると、制御部20は、全てのカメラ2からキャリブレーション用映像70を得るための処理を開始する。車両3が指定駐車枠83の外を移動する場合、左サイドカメラ2L、及び右サイドカメラ2Rのいずれか一方においては、指定駐車枠83が撮影されない。したがって、左サイドカメラ2L、及び右サイドカメラ2Rのそれぞれで指定駐車枠83が撮影されるようにするために、制御部20は、指定駐車枠83の外で車両3を往復移動させることをユーザに指示する。
【0035】
具体的には、制御部20は、
図8示すように、開始位置Qaからみて指定駐車枠83の外を横切った先の適宜の地点に折返位置Qbを設定し、現地地点から折返位置Qbまでの進路を表示装置14の映像に重ねて表示し、当該進路に沿って車両3を直進させることをユーザに指示する(
図7:ステップS3)。車両3が折返位置Qbに到達すると、制御部20は、回転運転や切り返し運転などによって車両3の進行方向を反転させることをユーザに指示する(
図7:ステップS4)。次いで、制御部20は、折返位置Qb(或いは、そのときの現在位置)からみて指定駐車枠83の外を横切った先の適宜の地点に終了位置Qcを設定し、折返位置Qbから終了位置Qcまでの進路を表示装置14の映像に重ねて表示し、当該進路に沿って車両3を直進させることをユーザに指示する(
図7:ステップS5)。
これらの処理により、指定駐車枠83の外を横切るように車両3が往復移動し、左サイドカメラ2L、及び右サイドカメラ2Rのそれぞれで指定駐車枠83が撮影される。
【0036】
ステップS3からステップS5において、各カメラ2の画角(撮影範囲)内に指定駐車枠83を確実に入れるために、開始位置Qa、及び折返位置Qbは、指定駐車枠83までの距離A1(
図8)が第1所定距離以上離れた地点に設定され、また進行経路は、指定駐車枠83までの距離A2(
図8)が第2所定距離以下の箇所に設定される。これら第1所定距離、及び第2所定距離はカメラ2の画角に基づいて決定される。
また、ステップS3からステップS5において、車両3の現在位置の検出や進路の案内は、車両3が備える自車位置検出装置(例えばGPSやジャイロセンサなど)と、経路案内装置(ナビゲーション装置や自動走行制御装置など)と制御部20が協働することで実現される。
【0037】
図7に戻り、制御部20(駐車枠映像取得部54)は、車両3が往復移動している間に各カメラ2で撮影された撮影映像4からキャリブレーション用映像70をカメラ2ごとに抽出する(ステップS6)。
【0038】
詳述すると、車両3が往路又は復路を直進している間の撮影によって、
図9示すように、指定駐車枠83に対面している側の左サイドカメラ2L又は右サイドカメラ2R(
図9では左サイドカメラ2L)と、フロントカメラ2Fと、リアカメラ2Bと、の3台のカメラ2のそれぞれによって指定駐車枠83の全体が撮影される。これにより、指定駐車枠83の全体が映った撮影映像4として、前方映像4Fと、後方映像4Bと、左サイド映像4Lまたは右サイド映像4R(
図9では左サイド映像4L)と、が得られる。
そして、ステップS6では、制御部20は、これらの撮影映像4の中からキャリブレーション用映像70として、往路、及び復路ごとに、サイド−フロント映像セットG1と、サイド−リア映像セットG2とを抽出する。
【0039】
図10は、往路、及び復路の直進走行によって取得されるキャリブレーション用映像70を模式図である。
図10に示すように、サイド−フロント映像セットG1は、往路又は復路を車両3が進行している間に、指定駐車枠83に対面している側の左サイドカメラ2L又は右サイドカメラ2Rと、フロントカメラ2Fとのそれぞれによって同じタイミング(図示例ではタイミングT1、T3)で撮影され、かつ、指定駐車枠83の全体が映っている左サイド映像4L又は右サイド映像4Rと、前方映像4Fとの組である。
サイド−リア映像セットG2は、往路又は復路を車両3が進行している間に、指定駐車枠83に対面している側の左サイドカメラ2L又は右サイドカメラ2Rと、リアカメラ2Bとのそれぞれによって同じタイミング(図示例ではタイミングT2、T4)で撮影され、かつ、指定駐車枠83の全体が映っている左サイド映像4L又は右サイド映像4Rと、後方映像4Bとの組である。
【0040】
制御部20は、ステップS6において、サイド−フロント映像セットG1と、サイド−リア映像セットG2とを抽出できない場合(ステップS7:No)、ステップS2から再度処理を繰り返す。
【0041】
次いで制御部20は、サイド−フロント映像セットG1、及びサイド−リア映像セットG2のそれぞれに対し、駐車枠80を認識する画像認識処理を実行し、それぞれの映像における指定駐車枠83の位置情報(以下、「指定駐車枠位置情報」と言う)を取得し、RAMなどのメモリデバイスに保存する(ステップS8)。この指定駐車枠位置情報には、例えば、各カメラ2のキャリブレーション用映像70における指定駐車枠83の端点の位置などが用いられる。
【0042】
次いで制御部20(俯瞰変換部50)は、各カメラ2のパラメータの値をパラメータ記憶部52から読み出し、各カメラ2のキャリブレーション用映像70を、対応するカメラ2のパラメータの値を用いて射影変換することで、カメラ2ごとにキャリブレーション用俯瞰映像72を生成する(ステップS9)。
【0043】
次いで制御部20(パラメータ推定部56)は、各カメラ2のキャリブレーション用俯瞰映像72に基づいて、各カメラ2のパラメータの現実値を推定する推定処理を開始する。
具体的には、制御部20は、指定駐車枠83の全体の現実の平面視寸法形状と、キャリブレーション用俯瞰映像72に現れた指定駐車枠83の全体の寸法形状との差がなく、なおかつ、各カメラ2のキャリブレーション用俯瞰映像72に現れた指定駐車枠83の間の相対関係(位置や傾き)が適切になるパラメータの値を求めることで、当該パラメータの現実値を推定する。
【0044】
さらに詳述すると、キャリブレーション用俯瞰映像72に現れた指定駐車枠83のうち、対向する一対の枠線83A(
図11参照)の平行度、一対の枠線83A同士の長さの差、及び一対の枠線83Aの間隔は、上記パラメータの中でも、カメラ座標系ロール角γc、カメラ座標系ピッチ角αc、及び車両3における取付高さ(車両座標系MvのZv軸)のずれの影響を受ける。
【0045】
また、各カメラ2のキャリブレーション用俯瞰映像72に現れた指定駐車枠83同士の傾きの差は、上記パラメータの中でも、カメラ座標系ヨー角βcに影響される。
【0046】
さらにまた、同一タイミングで撮影されたキャリブレーション用映像70から生成された2つのキャリブレーション用俯瞰映像72において、それぞれに現れた指定駐車枠83同士の位置の差は、上記パラメータの中でも、車両座標系MvのXY平面におけるカメラ2の取付位置Pのずれに影響される。
【0047】
そこで、制御部20は、
図7に示すように、先ず、各キャリブレーション用俯瞰映像72に現れた指定駐車枠83の一対の枠線83Aに基づいて、各カメラ2のパラメータの現実値を推定する(ステップS10:第1キャリブレーション)。
【0048】
すなわち、制御部20は、各カメラ2のキャリブレーション用俯瞰映像72における一対の枠線83Aの平行度と現実の平行度との差を無くす(ゼロにする)、取付角度Aに係るパラメータを求め、そのパラメータの値を現実値として推定する(ステップS10A)。このときの取付角度Aに係るパラメータは、カメラ2がフロントカメラ2F及びリアカメラ2Bである場合はカメラ座標系ロール角γcであり、カメラ2が左サイドカメラ2L及び右サイドカメラ2Rである場合はカメラ座標系ピッチ角αcである。
なお、一般的な駐車枠80では、一対の枠線83Aは互いに平行に描かれているので、ステップS10Aでは、キャリブレーション用俯瞰映像72における一対の枠線83Aを互いに平行にするパラメータの値を求めてもよい。
【0049】
次いで制御部20(俯瞰変換部50)は、ステップS10Aで推定したパラメータの値を用いて、再度、各カメラ2のキャリブレーション用俯瞰映像72を生成する(ステップS10B)。これにより、
図11に示すように、各キャリブレーション用俯瞰映像72において、一対の枠線83Aが現実の平行度で描かれるようになる。
【0050】
次いで制御部20は、各カメラ2のキャリブレーション用俯瞰映像72における一対の枠線83A同士の長さの差を無くす(ゼロにする)、取付角度Aに係るパラメータを求め、そのパラメータの値を現実値として推定する(ステップS10C)。このときの取付角度Aに係るパラメータは、カメラ2がフロントカメラ2F及びリアカメラ2Bである場合はカメラ座標系ピッチ角αcであり、カメラ2が左サイドカメラ2L及び右サイドカメラ2Rである場合はカメラ座標系ロール角γcである。
【0051】
そして制御部20(俯瞰変換部50)は、ステップS10Cで推定したパラメータの値を用いて、再度、各カメラ2のキャリブレーション用俯瞰映像72を生成する(ステップS10D)。これにより、
図11に示すように、各キャリブレーション用俯瞰映像72において、現実に合った長さで一対の枠線83Aが描かれる。
【0052】
次いで制御部20は、各カメラ2の指定駐車枠83における一対の枠線83Aの間隔と、現実の間隔との差を無くす(ゼロにする)、取付位置Pに係るパラメータを求め、そのパラメータの値を現実値として推定する(ステップS10E)。このときの取付位置Pに係るパラメータは、カメラ2の取付高さ(車両座標系MvにおけるZv軸の座標値)である。なお、一対の枠線83Aの現実の間隔には、一般的な駐車枠の値(固定値)や、撮影映像4に対する画像認識から求めた値、公知または周知の手法を用いて測距した値などを用いることができる。
【0053】
そして制御部20(俯瞰変換部50)は、ステップS10Eで推定したパラメータの値を用いて、再度、各カメラ2のキャリブレーション用俯瞰映像72を生成する(ステップS10F)。これにより、
図11に示すように、各キャリブレーション用俯瞰映像72において、現実の間隔で一対の枠線83Aが描かれる。
【0054】
これらステップS10A〜S10Fの処理により、各キャリブレーション用俯瞰映像72において、指定駐車枠83が現実の枠線83Aの寸法形状に照らして正確に描かれるようになる。
ただし、各カメラ2のパラメータのうち、カメラ座標系ヨー角βc、及び、車両座標系MvにおけるXY平面内の取付位置Pについてはキャリブレーションされていないため、この時点で制御部20が上記トップビュー映像30を生成した場合には、俯瞰映像32の接続箇所にずれが生じる可能性がある。
【0055】
そこで制御部20は各キャリブレーション用俯瞰映像72に現れた指定駐車枠83の互いの相対関係に基づいて、残りのパラメータについても現実値を推定する(ステップS11:第2キャリブレーション)。なお、この処理では、制御部20は、ステップS8において求められている指定駐車枠83の位置情報に基づいて、各カメラ2のキャリブレーション用俯瞰映像72の指定駐車枠83の位置を特定している。
【0056】
すなわち、制御部20は、往路、及び復路のそれぞれのサイド−フロント映像セットG1において、フロントカメラ2Fのキャリブレーション用俯瞰映像72に現れた指定駐車枠83の傾きに、左サイドカメラ2L又は右サイドカメラ2Rのキャリブレーション用俯瞰映像72に現れた指定駐車枠83の傾きを一致させる、取付角度Aに係るパラメータを求め、その値を現実値として推定する(ステップS11A)。この取付位置Pに係るパラメータは、左サイドカメラ2L又は右サイドカメラ2Rのカメラ座標系ヨー角βcである。
【0057】
そして制御部20(俯瞰変換部50)は、ステップS11Aで推定した左サイドカメラ2L又は右サイドカメラ2Rのカメラ座標系ヨー角βcを用いて、再度、これら左サイドカメラ2L又は右サイドカメラ2Rのキャリブレーション用俯瞰映像72を生成する(ステップS11B)。
これにより、
図12に示すように、フロントカメラ2F、左サイドカメラ2L、及び右サイドカメラ2Rのキャリブレーション用俯瞰映像72のそれぞれにおいて、そこに現れた指定駐車枠83の傾きがフロントカメラ2Fを基準に揃えられる。
なお、
図12では、動作の理解を容易にするために、異なるタイミングで撮影された指定駐車枠83が、各カメラ2のキャリブレーション用俯瞰映像72に一緒に描かれている。
【0058】
次いで制御部20は、往路、及び復路のそれぞれのサイド−リア映像セットG2において、左サイドカメラ2L又は右サイドカメラ2Rのキャリブレーション用俯瞰映像72に現れた指定駐車枠83の傾きに、リアカメラ2Bのキャリブレーション用俯瞰映像72に現れた指定駐車枠83の傾きを一致させる、取付角度Aに係るパラメータを求め、その値を現実値として推定する(ステップS11C)。この取付位置Pに係るパラメータは、リアカメラ2Bのカメラ座標系ヨー角βcである。
【0059】
そして制御部20(俯瞰変換部50)は、ステップS11Cで推定したリアカメラ2Bのカメラ座標系ヨー角βcを用いて、再度、当該リアカメラ2Bのキャリブレーション用俯瞰映像72を生成する(ステップS11D)。これにより、
図12に示すように、フロントカメラ2F、左サイドカメラ2L、右サイドカメラ2R、及びリアカメラ2Bの全てのキャリブレーション用俯瞰映像72において、そこに現れた指定駐車枠83の傾きがフロントカメラ2Fを基準に揃えられる。
【0060】
次いで、制御部20は、往路、又は復路のいずれかのサイド−フロント映像セットG1において、フロントカメラ2Fのキャリブレーション用俯瞰映像72に現れた指定駐車枠83の位置に、左サイドカメラ2L又は右サイドカメラ2Rのキャリブレーション用俯瞰映像72に現れた指定駐車枠83の位置を一致させる、当該左サイドカメラ2L又は右サイドカメラ2Rの取付位置P(XY座標値)を求め、その値を現実値として推定する(ステップS11E)。
【0061】
そして制御部20(俯瞰変換部50)は、ステップS11Eで推定した左サイドカメラ2L又は右サイドカメラ2Rの取付位置Pを用いて、再度、これら左サイドカメラ2L又は右サイドカメラ2Rのキャリブレーション用俯瞰映像72を生成する(ステップS11F)。
これにより、
図13に示すように、フロントカメラ2F、左サイドカメラ2L、及び右サイドカメラ2Rのキャリブレーション用俯瞰映像72のそれぞれにおいて、そこに現れた指定駐車枠83の位置がフロントカメラ2Fを基準に揃えられる。
なお、
図13では、動作の理解を容易にするために、異なるタイミングで撮影された指定駐車枠83が、各カメラ2のキャリブレーション用俯瞰映像72に一緒に描かれている。
【0062】
次いで、制御部20は、往路、又は復路のいずれかのサイド−リア映像セットG2において、左サイドカメラ2L又は右サイドカメラ2Rのキャリブレーション用俯瞰映像72に現れた指定駐車枠83の位置に、リアカメラ2Bのキャリブレーション用俯瞰映像72に現れた指定駐車枠83の位置を一致させる、当該リアカメラ2Bの取付位置P(XY座標値)を求め、その値を現実値として推定する(ステップS11G)。これにより、全てのカメラ2の取付位置P(XY座標値)がキャリブレーションされる。
【0063】
そして制御部20(俯瞰変換部50)は、ステップS11Gで推定したリアカメラ2Bの取付位置P(XY座標値)を用いて、再度、当該リアカメラ2Bのキャリブレーション用俯瞰映像72を生成する(ステップS11H)。これにより、
図13に示すように、フロントカメラ2F、左サイドカメラ2L、右サイドカメラ2R、及びリアカメラ2Bの全てのキャリブレーション用俯瞰映像72において、そこに現れた指定駐車枠83の位置がフロントカメラ2Fを基準に揃えられる。
【0064】
これらステップS11A〜ステップS11Hの処理により、各カメラ2のキャリブレーション用俯瞰映像72のそれぞれの指定駐車枠83がフロントカメラ2Fを基準に互いに一致するようになる。
ただし、ここまでのパラメータの推定は、各カメラ2のカメラ座標系Mcにおいて行われている。したがって、
図14に示すように、各キャリブレーション用俯瞰映像72の指定駐車枠83が重なるように各カメラ2のパラメータが推定されても、それらの値は車両座標系Mvからみると、ずれている場合がある。
【0065】
そこで制御部20は、車両座標系Mvにおけるずれを無くすように各カメラ2のパラメータを調整する(ステップS12:第3キャリブレーション)。かかる調整は、フロントカメラ2F、及びリアカメラ2Bの取付位置Pの初期値(キャリブレーション前の値、あるいは設計値)に基づいて行われる。
【0066】
具体的には、制御部20は、ステップS11までの処理で得られている各カメラ2の間の取付位置P、及び取付角度Aの相対関係を維持した状態で、フロントカメラ2Fの取付位置Pが、その取付位置Pの初期値に一致するように、各カメラ2の取付位置Pを調整する(ステップS12A)。
各カメラ2のキャリブレーション後の取付位置Pの中で、初期値からの変動はフロントカメラ2Fの取付位置Pが最も小さいため、当該フロントカメラ2Fの取付位置Pを基準に他のカメラ2の取付位置Pを調整することで、各カメラ2のパラメータの誤差を最も抑え、調整後のパラメータの値を現実値に、より近付けることができる。
【0067】
次いで、制御部20は、フロントカメラ2Fとリアカメラ2Bの取付位置Pが結ぶ線E(
図14)と、それらの取付位置Pの初期値が結ぶ線Es(
図14)とが一致するように、各カメラ2の間の取付位置P、及び取付角度Aの相対関係を維持した状態で、フロントカメラ2Fの取付位置Pを中心に回転したときの各カメラ2の取付位置P、及び取付角度Aを調整する(ステップS12B)。
【0068】
ステップS12Bで調整された値は、各カメラ2のキャリブレーション用俯瞰映像72の指定駐車枠83を現実の指定駐車枠83に一致させ、各キャリブレーション用俯瞰映像72の指定駐車枠83同士のずれも無くし、なおかつ、各カメラ2の取付位置Pが車両3(車両座標系Mv)からみて妥当な値になるものである。すなわち、かかる調整値をトップビュー映像30の生成時に用いることで、各俯瞰映像32の接合箇所のずれが抑えられ、高品位な映像が得られることとなる。
制御部20は、かかる調整値を、各カメラ2の取付位置P、及び取付角度Aの現実値、すなわちキャリブレーションされた値として、パラメータ記憶部52に記憶し、キャリブレーション処理を終了する。
【0069】
本実施形態によれば、次の効果を奏する。
【0070】
本実施形態では、指定駐車枠83の全体が映っている各カメラ2のキャリブレーション用映像70がキャリブレーションに用いられている。これにより、指定駐車枠83の外に車両3が位置した状態で撮影された各カメラ2の撮影映像4からキャリブレーション用映像70を取得できるので、従来技術のように、キャリブレーションのために車両3を指定駐車枠83の中に駐車させる必要がなく、より簡単にキャリブレーションを行うことができる。
【0071】
また本実施形態では、制御部20は、先ず、各カメラ2のキャリブレーション用俯瞰映像72に現れた指定駐車枠83が含む、対向する一対の枠線83Aのずれに基づいて、各カメラ2のピッチ角α、ロール角γ、及び取付高さZvに係るパラメータ(カメラ座標系ピッチ角αc、カメラ座標系ロール角γc、取付高さZv)を推定する。
その後、制御部20は、同じタイミングで撮影されているキャリブレーション用映像70の組から生成されたキャリブレーション用俯瞰映像72のそれぞれの指定駐車枠83の間の相対関係に基づいて、各カメラ2のヨー角β、及び、車両3の平面視における取付位置Xv、Yvに係るパラメータ(カメラ座標系ヨー角βc、取付位置Xv、Yv)を推定する。
これらの推定により、各カメラ2のキャリブレーション用俯瞰映像72において指定駐車枠83が現実の指定駐車枠83に一致し、かつ、各カメラ2のキャリブレーション用俯瞰映像72の指定駐車枠83同士のずれを無くすパラメータを推定できる。
これにより、各カメラ2の俯瞰映像32を合成した際に、その接続箇所のずれが抑えされる。
【0072】
本実施形態では、制御部20は、各カメラ2の推定後のパラメータのそれぞれを、車両3と各カメラ2との位置関係に基づいて調整するので、各カメラ2の取付位置Pが車両3(車両座標系Mf)からみて妥当な値に調整され、各カメラ2の俯瞰映像32の各位置が車両3に見合った位置に調整される。
【0073】
本実施形態では、制御部20は、車両3のフロント部3Fに設けられたフロントカメラ2Fの位置を、車両3と各カメラ2の位置関係の基準にして、各カメラ2の推定後のパラメータのそれぞれを調整する。
これにより、各カメラ2のパラメータの誤差を抑え、調整後の値を現実値に、より近付けることができる。
【0074】
本実施形態では、キャリブレーション用映像70は、指定駐車枠83の外を横切るように車両3が往復する間にカメラ2の各々が撮影した撮影映像4から取得する。
これにより、往路、及び復路のそれぞれの撮影映像4から効率良く、各キャリブレーション用映像70を取得できる。さらに指定駐車枠83が斜め枠(
図6)であり、一対の枠線83Aが車両3の進行方向に対して傾斜している場合でも、その傾斜がパラメータの推定に与える影響を抑えることができる。
【0075】
なお、上述した実施形態は、あくまでも本発明の一態様の例示であり、本発明の主旨を逸脱しない範囲において任意に変形、及び応用が可能である。
【0076】
キャリブレーション用映像70は、前掲
図10に示すように、カメラ2ごとに2枚ずつ得られているが、第1キャリブレーション(
図7:ステップS10)においては、制御部20は、パラメータの推定を、カメラ2ごとに1枚のキャリブレーション用映像70を使って行ってもよい。
また、制御部20は、カメラ2に対応する2枚のキャリブレーション用映像70のそれぞれからパラメータの現実値を個別に推定し、両者の推定値の平均を、その処理段階の最終的な値としてもよい。
【0077】
図1に示す機能ブロックは、本願発明を理解容易にするために、車載カメラシステム1の構成要素を主な処理内容に応じて分類して示した概略図である。特に、画像処理装置10の構成要素は、処理内容に応じて、さらに多くの構成要素に分類することもできる。また、1つの構成要素がさらに多くの処理を実行するように分類することもできる。
【0078】
また、
図1に示す画像処理装置10の各構成要素の処理は、1つのハードウェアで実行されてもよいし、複数のハードウェアにより実行されてもよい。また、各構成要素の処理は、1つのプログラムで実現されてもよいし、複数のプログラムで実現されてもよい。
【0079】
また本発明に係るキャリブレーション装置は、車載型の装置に限定されるものではなく、任意のコンピュータを用いて実現できる。