(58)【調査した分野】(Int.Cl.,DB名)
上記画像追跡部は、上記カメラにより撮像された上記撮像画像上の走行方向前方の遠点位置に設定された目標領域の上記撮像画像内での左右位置が維持されるように、上記移動車両に搭載された自動操舵装置により上記移動車両の操舵が自動制御された状態で、上記移動車両の移動に伴い変化する撮像画像内において上記複数の追跡領域内の画像をそれぞれ追跡することを特徴とする請求項1〜4の何れか1項に記載の車載カメラの取付方向パラメータ算出装置。
【発明を実施するための形態】
【0016】
以下、本発明の一実施形態を図面に基づいて説明する。
図1は、本実施形態による車載カメラの取付方向パラメータ算出装置(以下、単に取付方向パラメータ算出装置という)を実施した移動車両の一形態である農用車両の側面図である。
【0017】
図1に示すように、農用車両1は、車両客室2、前輪3、後輪4、ステアリングホイール9とステアリングシャフト10とを含むステアリング機構、操舵駆動機構6およびブレーキ機構7を備え、農用車両1の後方には作業機8が取り付けられている。作業機8は、例えば、圃場100において播種や畝立て、耕うんなどの作業をするためのものである。
【0018】
また、農用車両1は、直進走行などの自動操舵を行う自動操舵装置を搭載している。自動操舵装置は、カメラ11、画像処理装置12およびECU(Electronic control unit)13を備えて構成される。カメラ11は、車両客室2の上部に配置され、 農用車両1の走行方向前方を撮像する。カメラ11は、撮像した画像を画像処理装置12に出力する。
【0019】
画像処理部12は、カメラ11から取得した撮像画像を処理することにより、農用車両1のヨー角を検出し、ECU13に供給する。ECU13は、画像処理装置12から供給されるヨー角に基づいて、操舵駆動機構6を介して前輪3の操舵を制御する。これにより、ECU13は、前方に向かってまっすぐ直進走行するように農用車両1の走行を制御する。
【0020】
ステアリング機構は、ステアリングホイール9と、ステアリングシャフト10と、当該ステアリングシャフト10の動きを前輪3の動きに変換するギヤ装置(不図示)とを有する。ステアリング機構は、ハンドルとしてのステアリングホイール9の回動を前輪3の転舵運動に変換する。ステアリングホイール9は、車両客室2内に設けられ、運転者によって回動操作される。ステアリングシャフト10は、ステアリングホイール9とともに回転するように一端がステアリングホイール9に連結されており、ステアリングホイール9の回転をギヤ装置に伝達する回転軸として機能する。
【0021】
操舵駆動機構6は、舵角センサ(不図示)およびモータ(不図示)を備える。操舵駆動機構6は、モータを駆動し、ステアリング機構に転舵力を与える。舵角センサは、ステアリング機構のステアリングシャフト10やギヤ装置に設けられ、ステアリングホイール9による操舵角および操舵方向を検出する。操舵駆動機構6はECU13に接続されており、舵角センサの検出値はECU13に出力される。
【0022】
ブレーキ機構7は、運転者のブレーキペダル(不図示)の操作量に応じて後輪4に制動力を与える。ブレーキペダルは、左後輪用ブレーキペダルと右後輪用ブレーキペダルとを有する。運転者が各ブレーキペダルを操作することで、左後輪と右後輪に対して個別に制動力を与えることができる。例えば、農用車両1を右方向に旋回するとき、運転者が、右後輪用ブレーキペダルを踏み込んで右後輪に制動力を与えることで、右後輪を軸として農用車両1を旋回させることができる。ブレーキ機構7はECU13に接続され、ECU13により後輪4に与える制動力が制御される。なお、農用車両1の前輪3にブレーキ機構は無くてよい。
【0023】
また、農用車両1は、本実施形態の取付方向パラメータ算出装置も搭載している。本実施形態の取付方向パラメータ算出装置は、画像処理装置12により構成される。
図2は、本実施形態による画像処理装置12の機能構成例を示すブロック図である。
【0024】
図2に示すように、本実施形態の画像処理装置12は、その機能構成として、画像取得部200、自動操舵部201、取付方向パラメータ算出部202および記憶部203を備えて構成されている。自動操舵部201は、目標領域設定部21およびヨー角検出部22を備えている。また、取付方向パラメータ算出部202は、追跡領域設定部23、画像追跡部24、消失点算出部25、取付パラメータ算出部26および取付パラメータ設定部27を備えている。
【0025】
画像処理装置12が備える各機能ブロック200〜202は、ハードウェア、DSP(Digital Signal Processor)、ソフトウェアの何れによっても構成することが可能である。例えばソフトウェアによって構成する場合、上記各機能ブロック200〜202は、実際にはコンピュータのCPU、RAM、ROMなどを備えて構成され、RAMやROM、ハードディスクまたは半導体メモリ等の記録媒体に記憶されたプログラムが動作することによって実現される。
【0026】
画像取得部200は、カメラ11により撮像された走行方向前方の画像を取得する。本実施形態では、画像取得部200は、カメラ11から撮像画像を所定の時間間隔(例えば、0.1秒毎)で取得する。
【0027】
自動操舵部201の目標領域設定部21は、画像取得部200により取得された撮像画像上の走行方向前方の遠点位置に目標領域を設定する。この目標領域は、自動操舵装置が直進走行のための自動操舵制御を行う際に用いるものである。目標領域設定部21は、例えば、あらかじめ設定したカメラ11のヨー角およびピッチ角に基づいて、農用車両1の正面方向および地平線の位置を算出し、その算出した位置に目標領域を設定する。
【0028】
図3は、目標領域設定部21により設定される目標領域300の一例を示す図である。
図3において、目標領域300の中に示されている縦線は、事前に入力したカメラ11のヨー角の値に基づいて算出した農用車両1の正面方向の位置である。また、目標領域300の中に示されている横線は、事前に入力したカメラ11のピッチ角の値に基づいて算出した地平線の位置である。以下では、この縦横の十字線の交点を無限遠点と呼ぶ。
【0029】
目標領域設定部21は、このような無限遠点の位置に目標領域300を設定し、その目標領域300内の遠方風景の画像(以下、目標画像という)を記憶部203に記憶させる。目標領域300は、
図3に示されるように、無限遠点を中心とし、複数の画素値から構成される所定サイズの矩形領域である。
【0030】
なお、事前に入力されるヨー角およびピッチ角は、必ずしもカメラ11の実際の取付姿勢に合致した正しい値を示したものとは限らない。そのため、農用車両1の実際の正面方向および実際の地平線が交わる位置に無限遠点が設定されるとは限らない。本実施形態では、以下に説明するようにカメラ11の実際のヨー角とピッチ角を算出し、算出した値で取付パラメータを設定し直す。これにより、取付パラメータの算出後は、目標領域300を正しい位置に設定することが可能となる。
【0031】
なお、目標領域300の設定は、事前に入力されたヨー角およびピッチ角から算出される無限遠点の位置に設定する方法に限らない。例えば、作業者が撮像画像上の無限遠点と思われる位置に目標領域300を手動で設定するようにしてもよい。すなわち、カメラ11または画像処理装置12にモニタを設け、撮像画像上に重ねて目標領域300の表示枠を表示させる。そして、作業者がカメラ11または画像処理装置12に設けた操作部により、この表示枠を移動させて確定することにより、目標領域300の設定を行うようにすることも可能である。
【0032】
自動操舵部201のヨー角検出部22は、農用車両1の移動に伴い変化する撮像画像内において、目標領域設定部21により設定された目標領域300内の目標画像を追跡し、追跡した目標領域300の位置に基づいて、目標領域300内の無限遠点に対する農用車両1のヨー角を検出する。このヨー角検出部22により検出されるヨー角は、無限遠点の方向に対して、農用車両1の正面がどちらにどの程度向いているかを示す値である。
【0033】
すなわち、ヨー角検出部22は、画像取得部200によりカメラ11からの撮像画像が所定時間毎(0.1秒毎)に取得される都度、当該撮像画像と記憶部203に記憶しておいた目標画像とを比較することにより、目標画像と合致する合致領域を撮像画像内から検出する。そして、合致領域の位置と農用車両1の正面方向(無限遠点の方向)の位置との差異から、目標領域300内の無限遠点に対する農用車両1のヨー角を検出する。
【0034】
ECU13は、ヨー角検出部22により検出されたヨー角に基づいて、農用車両1の操舵を制御する。すなわち、ECU13は、ヨー角検出部22により検出されたヨー角に基づいて、操舵駆動機構6を介して前輪3の操舵を制御することにより、農用車両1が前方に向かってまっすぐ直進走行するように制御する。
【0035】
取付方向パラメータ算出部202の追跡領域設定部23は、カメラ11により撮像された走行方向前方の撮像画像内の地面上に複数の追跡領域を設定する。例えば、追跡領域設定部23は、目標領域設定部21により算出された無限遠点の下方で、あらかじめ設定した画像上の同じ高さ(例えば、撮像画像の下端から無限遠点までの高さの2/7)の位置に、複数の追跡領域を横一列に設定し、各追跡領域内の画像(以下、追跡用画像という)を記憶部203に記憶させる。
【0036】
図4は、追跡領域設定部23により設定される複数の追跡領域401〜404の一例を示す図である。
図4に示すように、本実施形態では一例として、撮像画像内の同じ高さの位置で左右方向に4個の追跡領域401〜404を設定している。4個の追跡領域401〜404は、撮像画像の左右方向で無限遠点がある位置を境界として、左右対称の位置に設定する。なお、追跡領域の設定数は4個に限らず、2個、3個または5個以上であってもよい。
【0037】
画像追跡部24は、農用車両1の移動に伴い変化する撮像画像内において、追跡領域設定部23により設定された複数の追跡領域401〜404内の追跡用画像をそれぞれ追跡することにより、複数の追跡領域401〜404の移動後の位置をそれぞれ検出する。
【0038】
例えば、画像追跡部24は、画像取得部200によりカメラ11からの撮像画像が所定時間後(この時間間隔は、ヨー角検出部22がヨー角を検出する時間間隔と同じ0.1秒としてもよいし、それとは異なる時間間隔としてもよい)に取得されたとき、当該撮像画像と記憶部203に記憶しておいた各追跡領域401〜404の追跡用画像とを比較することにより、各追跡用画像と合致する合致領域を撮像画像内からそれぞれ検出する。そして、それぞれの合致領域を、4個の追跡領域401〜404の移動後の位置として検出する。
【0039】
図5は、追跡領域401〜404の移動前後の位置の一例を示す図である。
図5において、4個の追跡領域401〜404は、農用車両1の走行開始前に追跡領域設定部23により当初の位置に初期設定されたものである。一方、4個の追跡領域401’〜404’は、農用車両1が走行を開始してから所定時間後に画像追跡部24により検出された4個の移動後の追跡領域である。
図5に示すように、追跡領域設定部23により初期設定された4個の追跡領域401〜404は、農用車両1の移動に伴って、当初の設定位置から、4個の追跡領域401’〜404’で示される撮像画像の下方の位置へと移動する。
【0040】
なお、追跡領域401〜404内の画像は、農用車両1の走行に伴うカメラ11と追跡領域401〜404との距離の接近により、その大きさが拡大する。ここでは、推定される距離に応じて、追跡領域401〜404の内部の画像を拡大した後、追跡領域401〜404の周囲にはみ出した部分はカットして、元の追跡領域401〜404の大きさを保持する手法を採用するので、各図における追跡領域401〜404,401’〜404’の大きさは一定として表記する。
【0041】
なお、農用車両1の移動に関しては、作業者がステアリングホイール9をマニュアルで操作しながら走行するようにしてもよいが、自動操舵装置による自動操舵制御を用いて農用車両1を自動走行させるのが好ましい。すなわち、画像追跡部24は、目標領域設定部21により設定された目標領域300の撮像画像内での左右位置が維持されるように、自動操舵装置により農用車両1の操舵が自動制御された状態で、農用車両1の移動に伴い変化する撮像画像内において複数の追跡領域401〜404内の画像をそれぞれ追跡する。
【0042】
消失点算出部25は、追跡領域設定部23により設定された複数の追跡領域401〜404の位置および画像追跡部24により検出された移動後の複数の追跡領域401’〜404’の位置に基づいて、移動前後の追跡領域を結ぶ軌跡線から走行方向前方の消失点を算出する。
【0043】
図6は、消失点算出部25による消失点の算出例を示す図である。
図6に示すように、消失点算出部25は、例えば、追跡領域設定部23により初期設定された追跡領域401〜404の各中心点と、画像追跡部24により検出された移動後の追跡領域401’〜404’の各中心点とを結ぶ直線601〜604を、追跡領域の軌跡線として求める。そして、これら複数の直線601〜604の交点を消失点605として算出する。
【0044】
なお、追跡領域設定部23が3個以上の追跡領域を設定して、消失点算出部25が3本以上の軌跡線を算出した場合は、それら軌跡線の交点が唯一に定まるとは限らない。
図6の例では4本の直線601〜604があるので、それらの交点が唯一に定まるとは限らない。この場合、消失点算出部25は、4本の直線601〜604から求められる複数の交点を統計処理することによって定まる1点を、消失点605として算出することにより、尤度の高い交点の位置を算出する。統計処理の一例として、複数の交点の位置の平均化を適用することが可能である。
【0045】
移動前後の追跡領域を結ぶ軌跡線を算出する際、初期設定された追跡領域401〜404の各中心点の位置情報と、移動後の追跡領域401’〜404’の各中心点の位置情報とがあれば軌跡線を算出することが可能である。そこで、追跡領域設定部23が追跡領域401〜404を設定した際に、追跡領域401〜404内の追跡用画像を記憶部203に記憶させることに加え、追跡領域401〜404の各中心点の位置情報も記憶部203に記憶させるようにしてもよい。このようにすれば、画像追跡部24により検出された移動後の追跡領域401’〜404’の各中心点の位置情報と、記憶部203に記憶されている初期設定された追跡領域401〜404の各中心点の位置情報とから、軌跡線を求めることが可能である。
【0046】
なお、追跡領域401〜404の位置情報を記憶部203に記憶させることに代えて、画像追跡部24により移動後の追跡領域401’〜404’が検出された際に、追跡領域設定部23が4個の追跡領域401〜404を当初の位置に追加設定するようにしてもよい。この場合、消失点算出部25は、画像追跡部24により検出された移動後の追跡領域401’〜404’の各中心点の位置情報と、追跡領域設定部23により追加設定された追跡領域401〜404の各中心点の位置情報とから、軌跡線を求めることが可能である。
【0047】
ここでは、追跡領域401〜404,401’〜404’の各中心点を通る軌跡線を求めて消失点605を算出する例について説明したが、中心点を用いるのはあくまでも一例であって、他の代表点であってもよい。例えば、追跡領域401〜404の下端の中央の位置を代表点としてもよい。または、追跡領域の4つの角のうち何れか1つを代表点としてもよい。ただし、後者の場合、初期設定する追跡領域401〜404の位置も変える必要がある。
【0048】
取付パラメータ算出部26は、消失点算出部25により算出された消失点605の撮像画像内での高さ方向の位置からカメラ11のピッチ角を算出するとともに、消失点605の撮像画像内での左右方向の位置からカメラ11のヨー角を算出する。
【0049】
ここで、
図9および
図10を用いて、カメラ11のピッチ角の算出方法を説明する。なお、撮像画像上の座標は、
図9のように、左下隅を原点として右方向にI座標、上方向にJ座標を設定し、単位は画素とする(例えば、
図9の画像のサイズは横752画素、縦480画素である)。また、実空間上の座標は、
図10のように、カメラ11の直下の地面上の位置を原点として、左右方向にX軸、高さ方向にY軸、農用車両1の直進走行方向にZ軸を設定するものとする。
【0050】
カメラ11のピッチ角は、
図10(a)に示すθvcであり、カメラ11の光軸方向、すなわち画面中心方向Jcと、地面に対して平行な方向、すなわち地平線方向Jvとが成す角度である。
図9のような撮像画像上では、Jvは地平線方向のJ座標値、Jcは画面中心のJ座標であり、ピッチ角θvcは次の式(P1)で計算される。
tan(θvc) = PWH×(Jv−Jc) ・・・(P1)
なお、PWHは1画素当たりの視野角のtan値である。
【0051】
また、カメラ11のヨー角は、カメラ11の光軸方向と、農用車両1の方向とが成す水平方向の角度であるが、農用車両1の「方向」の取り方によって、定義は異なるものとなる。例えば、カメラ11の撮像画像をモニタに表示し、運転者が車外を監視する目的で撮像画像が使用される場合は、カメラ11のヨー角は、車体フレームの中心線の方向に対する、カメラ11の光軸方向が成す角度と定義される。
【0052】
一方、本実施形態のようにカメラ11の撮像画像を使って自動操舵を行い、農用車両1を走行制御する場合には、カメラ11のヨー角は、農用車両1の走行における正面方向に対する、カメラ11の光軸方向の角度と定義される。ここで、「車両の走行における正面方向」とは、農用車両1が旋回せずに直進走行できる方向である。例えば、農用車両1の後輪車軸の取り付け誤差や左右の車輪の磨耗状態の違いなどによって、車両の走行における正面方向は車体フレームの中心線の方向とは差異が生じてくる。
【0053】
よって、農用車両1を精確に直進走行させ、その状態において消失点算出部25により撮像画像上の消失点605を求め、消失点605の撮像画像内での左右方向の位置、すなわちI座標Ivと、カメラ11の光軸方向、すなわち画面中心方向Icとから、ヨー角θyは次の式(Y1)で計算される。
tan(θy) = PWH×(Iv−Ic) ・・・(Y1)
なお、検出された消失点605の位置は、画像処理では無限遠点の位置として使用される。
【0054】
取付パラメータ算出部26は、さらに、4個の追跡領域401〜404のうち、左側に設定された追跡領域の移動前後の移動量と、右側に設定された追跡領域の移動前後の移動量との差分に基づいて、カメラ11のロール角を算出する。ここで、左側に設定された追跡領域とは、一番左の追跡領域401または左から2番目の追跡領域402である。また、右側に設定された追跡領域とは、一番右の追跡領域404または右から2番目の追跡領域403である。ここでは、左右対称の位置にある追跡領域の移動量を用いる。
【0055】
図7および
図8は、カメラ11のロール角の算出方法を説明するための図である。なお、
図7において、撮像画像上の座標は、
図9と同様、左下隅を原点として右方向にI座標、上方向にJ座標を設定し、単位は画素とする(例えば、
図7の画像のサイズは横752画素、縦480画素である)。また、
図8において、実空間上の座標は、
図10と同様、カメラ11の直下の地面上の位置を原点として、左右方向にX軸、高さ方向にY軸、農用車両1の直進走行方向にZ軸を設定するものとする。
【0056】
図7において、GL,Gc,Ghは、画面上で水平の位置に設定した地面点であり、J座標はいずれもJ0である。Gcは画面の左右の中心方向Ic上の点、GLは画面中心点Gcから左方向(I軸に平行)に所定画素離れた点、Ghは画面中心点Gcから右方向(I軸に平行)に所定画素離れた点である。これらの地面点GL,Gc,Ghは、各追跡領域の各中心点に相当するものであり、説明の簡素化のため、各追跡領域の各中心点を地面点GL,Gc,Ghとして説明する。これらの地面点GL,Gc,Ghは、農用車両1の前方への移動に伴って、撮像画像の下方の位置へと移動する。カメラ11にロール角がなく、撮像画像のI軸が地面と平行であれば、移動後の地面点GL’,Gc’,Gh’もI軸と平行になる。しかし、ロール角がある場合には、移動後の地面点GL’,Gc’,Gh’は、
図7のようにI軸と平行ではなくなる。
【0057】
図7において、J1Lは、左側に設定された地面点GLの移動後の地面点GL’の画面下端からの高さ(J座標値)である。J1hは、右側に設定された地面点Ghの移動後の地面点Gh’の画面下端からの高さ(J座標値)である。
図7では、左側の地面点GL’の高さJ1Lと、右側の地面点Gh’の高さJ1hとが異なる値を示している。これらの値J1L,J1hと、設定した地面点GL,Gc,GhのJ座標、すなわちJ0とから、カメラ11のロール角が算出される。
【0058】
図7のようにカメラ11にロール角がある状態を、カメラ11に対して真横の方向から見た状態は、
図8(a)のようになる。すなわち、XYZ座標軸において、左右方向のX軸を、カメラ11の横方向のI軸と平行に回転させた状態である。よって、カメラ11の正面位置での地面点Gcからカメラ11までの高さはCAHとなるのに対して、左側の地面点GLからカメラ11までの高さはCAH よりもdyだけ高くなる。一方、右側の地面点Ghからカメラ11までの高さはCAH よりもdyだけ低くなる。この結果、
図7のように画面上では水平の位置に設定した地面点GL,Gc,Ghについても、カメラ11の直下の地面上の位置までの距離は、正面の地面点Gcの距離Z0cに対し、左右の地面点GL, Ghの距離Z0L,Z0hが異なる値となる(3点を結ぶ直線は地面上では前後方向に斜めの直線となる)。
【0059】
次に、農用車両1が距離Zdだけ前進した
図8(b)の状態では、
図7に示すように、地面点GL’,Gc’,Gh’は撮像画像上でも水平ではなくなる。これは、
図8(b)において、点Bの位置にあるカメラ11から、それぞれの地面点GL’,Gc’,Gh’を見込む角度θ1L,θ1c,θ1hに差異が生じることに相当する現象である。
【0060】
ここで、走行前における各地面点GL,Gc,Ghのカメラ位置Aからの距離Z0L,Z0c,Z0hは、それぞれの次のように表される。
Z0L = (CAH+dy)/(PWH×(Jv−J0)) ・・・(1)
Z0c = CAH/(PWH×(Jv−J0)) ・・・ (2)
Z0h = (CAH−dy)/(PWH×(Jv−J0)) ・・・(3)
なお、PWHは1画素当たりの視野角のtan値、Jvは地平線方向のJ座標値、J0は地面点GL,Gc,Gh方向のJ座標値である。
【0061】
また、走行後における各地面点GL’,Gc’,Gh’のカメラ位置Bからの距離Z1L,Z1c,Z1hは、それぞれの次のように表される。
Z1L = Z0L−Zd = (CAH+dy)/(PWH×(Jv−J1L)) ・・・(4)
Z1c = Z0c−Zd = CAH/(PWH×(Jv−J1c)) ・・・(5)
Z1h = Z0h−Zd = (CAH−dy)/(PWH×(Jv−J1h)) ・・・(6)
【0062】
ここで、式(1)に式(4)を、式(3)に式(6)を代入して変形すると、
Zd = (CAH+dy)/(PWH×(Jv−J0))−(CAH+dy)/(PWH×(Jv−J1L)) ・・・(7)
Zd = (CAH−dy)/(PWH×(Jv−J0))−(CAH−dy)/(PWH×(Jv−J1h)) ・・・(8)
となる。さらに、式(7)に式(8)を代入して変形すると、
(CAH+dy)/(PWH×(Jv−J0))−(CAH−dy)/(PWH×(Jv−J0))
=(CAH+dy)/(PWH×(Jv−J1L))−(CAH−dy)/(PWH×(Jv−J1h)) ・・・(9)
となる。
【0063】
さらに、式(9)を整理すると、次のように表すことができる。
(2×dy)/(Jv−J0) = (CAH+dy)/(Jv−J1L)−(CAH−dy)/(Jv−J1h) ・・・(10)
この式(10)に対してカメラ11の高さCAH、Jv,J0などの画像上の各設定値、およびJ1L,J1hなどの画像上の計測値を代入することで、高低差dyが算出される。
【0064】
次に、左右の地面点GL,GhのX座標XL,Xhは、下記の近似式で算出することができる。
XL = (CAH+dy)×(IL−Iv)/(Jv−J0) ・・・(11)
Xh = (CAH−dy)×(Ih−Iv)/(Jv−J0) ・・・(12)
なお、dyは式(10)で算出した値、Ivは無限遠点のI座標値であり、ここでは説明の簡単化のため、撮像画像の左右方向の中心における地面点GcのI座標値Icと一致するものとする。また、ILは左側の地面点GLのI座標値、Ihは右側の地面点GhのI座標値である。
【0065】
ここで、ロール角を左右方向の傾き、すなわちdY/dXと定義すると、左右の地面点GL,Ghの左右方向の距離の差dXおよび高さ方向の差dYの値は、次に式(13a),(13b)に示す通りとなる。
dX = Xh−XL ・・・(13a)
dY = dy×2 ・・・(13b)
以上により、ロール角dY/dXは、式(13)のように算出される。
dY/dX = (2×dy)/(Xh−XL) ・・・(13)
【0066】
ここで、左右の地面点GL,GhのX座標XL,Xhを求める式(11),(12)について補足する。
図9および
図10は、式(11),(12)による地面点のX座標の算出方法を説明するための図である。なお、X座標の求め方は左右で同様なので、
図9では代表として地面点GのX座標を求める方法を説明している。
【0067】
図9に示す地面点Gは、画面上のI座標およびJ座標がそれぞれIg,Jgであり、Z座標Zgは、厳密には式(14)で表され、近似的には式(15)で表すことができる。
Zg = CAH/tan(θvc+θcg) ・・・(14)
Zg = CAH/(PWH×(Jv−Jg)) ・・・(15)
なお、
図10(a)に示すように、θvcは地平線方向Jvと画面中心方向Jcとが成す角度、θcgは画面中心方向Jcと地面点Gの方向とが成す角度である。
【0068】
カメラ11の位置をAとすると、点AG間の側面距離Dg、カメラ中心線上の点AC間の距離Dcは、それぞれ次のように表される。
Dg = CAH/sin(θvc+θcg) ・・・(16)
Dc = Dg×cos(θcg) ・・・(17)
【0069】
また、地面点GのX座標Xgは、次のように表される。
Xg = Dc×tan(θhg) ・・・(18)
tan(θhg) = PWH×(Ig−Iv) ・・・(19)
なお、
図10(b)は、
図10(a)における画像中心Jcの線に対して、垂直方向から俯瞰した図であり、θhgは画像中心線上の点Cと地面上の点Gとの間の水平方向の角度である。
【0070】
以上をまとめると、点GのX座標Xgは、厳密には以下のように表される。
Xg = CAH/sin(θvc+θcg)×cos(θcg)×PWH×(Ig−Iv) ・・・(20)
これに対し、sin,cosを以下の式(21)、(22)のように近似すると、点GのX座標Xgは式(23)のように簡素化することができる。
sin(θvc+θcg0) = PWH×(Jv−Jg) ・・・(21)
cos(θcg) = 1.0 ・・・(22)
Xg = CAH×(Ig−Iv)/(Jv−Jg) ・・・(23)
【0071】
取付パラメータ設定部27は、以上のようにして取付パラメータ算出部26により算出されたカメラ11の取付パラメータ(ピッチ角、ヨー角、ロール角)を画像処理装置12に設定する。画像処理装置12に設定された取付パラメータは、以後の各種の画像処理に反映される。なお、取付パラメータ算出部26により算出された取付パラメータの値をモニタ等に表示させることにより、カメラ11の取付方向の調整を作業者に促すようにしてもよい。あるいは、取付パラメータ算出部26により算出された取付パラメータの値に基づいて、カメラ11の取付方向をECU13等が自動的に調整するようにしてもよい。
【0072】
図11は、以上のように構成した本実施形態による画像処理装置12の動作例を示すフローチャートである。
【0073】
まず、画像取得部200は、カメラ11により撮像された走行方向前方の画像を取得する(ステップS1)。次に、目標領域設定部21は、あらかじめ設定したカメラ11のヨー角およびピッチ角に基づいて、農用車両1の正面方向と地平線とが交わる無限遠点を算出し(ステップS2)、その算出した無限遠点を中心点とする矩形形状の目標領域を設定する(ステップS3)。次いで、追跡領域設定部23は、目標領域設定部21により算出された無限遠点の下方で、あらかじめ設定した画像上の同じ高さの位置に、複数の追跡領域を横一列に設定する(ステップS4)。これで、初期の準備が完了する。
【0074】
準備が完了したら、作業者が自動操舵による走行開始ボタンを押下することにより、農用車両1の自動走行を開始する(ステップS5)。自動走行の開始後に、画像取得部200は、カメラ11により撮像された走行方向前方の画像を再び取得する(ステップS6)。そして、画像追跡部24は、自動走行の開始から所定時間が経過したか否かを判定する(ステップS7)。所定時間がまだ経過していない場合、処理はステップS6に戻る。
【0075】
図11のフローチャート上には図示していないが、ステップS6,S7のループ処理が繰り返されている間、ヨー角検出部22は、画像取得部200によりカメラ11からの撮像画像が所定時間毎に取得される都度、農用車両1の移動に伴い変化する撮像画像内において目標画像との比較により目標領域を追跡し、追跡した目標領域の位置に基づいて、無限遠点に対する農用車両1のヨー角を検出する。そして、検出したヨー角に基づいてECU13が農用車両1の直進走行を制御する。
【0076】
そして、自動走行の開始から所定時間が経過したと判定された場合、画像追跡部24は、そのとき画像取得部200により取得された撮像画像と、ステップS4で追跡領域設定部23により設定された追跡領域内の追跡用画像とを比較することにより、撮像画像内において各追跡用画像と合致する合致領域を、移動後の複数の追跡領域として検出する(ステップS8)。
【0077】
次に、消失点算出部25は、ステップS4で追跡領域設定部23により設定された複数の追跡領域の位置と、ステップS8で画像追跡部24により検出された移動後の複数の追跡領域の位置とに基づいて、移動前後の追跡領域を結ぶ軌跡線から走行方向前方の消失点を算出する(ステップS9)。
【0078】
次いで、取付パラメータ算出部26は、消失点算出部25により算出された消失点の撮像画像内での高さ方向の位置からカメラ11のピッチ角を算出するとともに、消失点の撮像画像内での左右方向の位置からカメラ11のヨー角を算出する(ステップS10)。さらに、取付パラメータ算出部26は、左側に設定された追跡領域の移動前後の移動量と、右側に設定された追跡領域の移動前後の移動量との差分に基づいて、カメラ11のロール角を算出する(ステップS11)。
【0079】
そして、取付パラメータ設定部27は、以上のようにして取付パラメータ算出部26により算出されたカメラ11の取付パラメータ(ピッチ角、ヨー角、ロール角)を画像処理装置12に設定する(ステップS12)。これにより、
図11に示すフローチャートの処理を終了する。
【0080】
なお、ステップS6で新たな画像が取得される毎に、ステップS8の追跡用画像と合致する合致領域の検出を行い、追跡用画像の移動量が十分に発生したことが判断された後、ステップS9の消失点の算出を行うようにしてもよい。
【0081】
以上詳しく説明したように、本実施形態では、カメラ11により撮像された撮像画像内の地面上に複数の追跡領域を設定し、農用車両1の移動に伴い変化する撮像画像内において、複数の追跡領域内の画像をそれぞれ追跡することにより、複数の追跡領域の移動後の位置をそれぞれ検出する。そして、移動前後の追跡領域を結ぶ軌跡線から走行方向前方の消失点を算出し、当該消失点の撮像画像内での高さ方向の位置からカメラのピッチ角を算出するとともに、消失点の撮像画像内での左右方向の位置からカメラのヨー角を算出するようにしている。また、本実施形態では、撮像画像内の地面上の同じ高さの位置で左右方向に複数の追跡領域を設定するようにし、上述のように追跡した左右方向の追跡領域の移動量の差分に基づいて、カメラのロール角を算出するようにしている。
【0082】
このように構成した本実施形態によれば、撮像画像内に設定される追跡領域の移動軌跡から撮像画像内に消失点が算出され、その撮像画像内の消失点からカメラ11のピッチ角とヨー角とが直接的に算出される。また、本実施形態によれば、撮像画像内に設定される追跡領域の移動量からカメラ11のロール角が直接的に算出される。このため、従来のように図形的な処理によって撮像画像の範囲外に計算されるような誤差の大きい消失点を用いて取付パラメータが算出されることはない。これにより、農用車両1に搭載したカメラ11の取付方向を示す取付パラメータの算出精度を向上させることができる。
【0083】
また、本実施形態では、自動操舵によって農用車両1を精確に直進走行させ、これによって農用車両1の走行における正面方向を検出することができるというメリットも有する。上述したように、「農用車両1の走行における正面方向」とは、農用車両1が旋回せずに直進走行できる方向であり、車体フレーム上の正面方向とは異なる。操舵制御を精確に実行するには、実際の走行における正面方向を精確に把握しておくことが重要である。例えば、農用車両1の後輪車軸が、製造誤差や経年劣化などで車体に対して前後に斜めになっていると、農用車両1は車体を斜めにして直進する状態となる(カニ走り)。このような状態は、停止した農用車両1を観察しても容易には分らないが、本実施形態によれば、精確な検出を容易に行うことが可能となる。
【0084】
なお、上記実施形態では、農用車両1の自動走行を開始してから所定時間が経過したときに、画像追跡部24による追跡領域の追跡を行う例について説明したが、本発明はこれに限定されない。例えば、自動走行を開始してから農用車両1が所定距離走行したことを検出したときに、画像追跡部24による追跡領域の追跡を行うようにしてもよい。また、新たな画像が取得される毎に追跡用画像の探索を行い、追跡用画像の移動量が十分に発生したことを検出したときに、移動前後の追跡領域を結ぶ軌跡線から走行方向前方の消失点を算出するようにしてもよい。または、初期設定した追跡領域が、当該追跡領域と重ならない位置まで移動したことを検出したときに、画像追跡部24による追跡領域の追跡を行うようにしてもよい。
【0085】
また、上記実施形態では、初期設定した追跡領域401〜404と、移動後の追跡領域401’〜404’との2組から軌跡線を求めて消失点を算出す例について説明したが、本発明はこれに限定されない。例えば、
図12に示すように、画像追跡部24は、画像取得部200によりカメラ11からの撮像画像が所定時間毎に取得される都度、移動後の追跡領域を検出するようにしてもよい。この場合、消失点算出部25は、例えば、追跡領域設定部23により初期設定された追跡領域の各中心点と、画像追跡部24により所定時間毎に検出されたそれぞれの追跡領域の各中心点とから近似直線を算出し、当該近似直線の交点を消失点として検出する。
【0086】
このようにすることにより、より精確な位置に消失点を検出することが可能となる。すなわち、農用車両1の自動走行をしているとき、路面の凹凸や傾斜等により農用車両1に揺れが生じる場合がある。
図6のように2組の追跡領域から軌跡線を算出した場合、移動後の追跡領域401’〜404’を検出したときにたまたま農用車両1が大きく揺れていると、精確な位置に消失点を検出することができない。これに対し、
図12のように3組以上の追跡領域から軌跡線を算出した場合、どこかのタイミングで農用車両1が大きく揺れていたとしても、近似直線からほぼ精確な位置に消失点を算出することが可能となる。
【0087】
なお、ここでは、
図12のように複数組の追跡領域がそれぞれ離間して配置される例について示しているが、互いに重複するように配置してもよい。
【0088】
また、上記実施形態では、移動車両の一例として農用車両1を挙げて説明したが、本発明はこれに限定されない。例えば、建設機械の車両や一般の自動車にも適用可能である。
【0089】
その他、上記実施形態は、何れも本発明を実施するにあたっての具体化の一例を示したものに過ぎず、これによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその要旨、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。