以下、図面を参照しつつ、本発明を実施するための最良の形態の説明を行う。
図1は、本発明の実施例に係る画像生成装置100の構成例を概略的に示すブロック図である。
画像生成装置100は、作業機械の周辺を監視する作業機械用周辺監視装置の1例であり、制御部1、カメラ2、入力部3、記憶部4、表示部5、及び距離画像センサ6で構成される。具体的には、画像生成装置100は、作業機械に搭載されたカメラ2が撮像した入力画像と距離画像センサ6が撮像した入力距離画像とに基づいて出力画像を生成しその出力画像を操作者に提示する。
図2は、画像生成装置100が搭載される作業機械としてのショベル60の構成例を示す図であり、ショベル60は、クローラ式の下部走行体61の上に、旋回機構62を介して、上部旋回体63を旋回軸PVの周りで旋回自在に搭載している。
また、上部旋回体63は、その前方左側部にキャブ(運転室)64を備え、その前方中央部に掘削アタッチメントEを備え、その右側面及び後面にカメラ2(右側方カメラ2R、後方カメラ2B)及び距離画像センサ6(右側方距離画像センサ6R、後方距離画像センサ6B)を備えている。なお、キャブ64内の操作者が視認し易い位置には表示部5が設置されている。
次に、画像生成装置100の各構成要素について説明する。
制御部1は、CPU(Central Processing Unit)、RAM(Random Access Memory)、ROM(Read Only Memory)、NVRAM(Non-Volatile Random Access Memory)等を備えたコンピュータであって、例えば、後述する座標対応付け手段10、画像生成手段11、画素抽出手段12、距離補正手段13、距離画像合成手段14、及び、及び運転支援手段15のそれぞれに対応するプログラムをROMやNVRAMに記憶し、一時記憶領域としてRAMを利用しながら各手段に対応する処理をCPUに実行させる。
カメラ2は、ショベル60の周囲を映し出す入力画像を取得するための装置であり、例えば、キャブ64にいる操作者の死角となる領域を撮像できるよう上部旋回体63の右側面及び後面に取り付けられる(図2参照。)、CCD(Charge Coupled Device)やCMOS(Complementary Metal Oxide Semiconductor)等の撮像素子を備えた右側方カメラ2R及び後方カメラ2Bである。なお、カメラ2は、上部旋回体63の右側面及び後面以外の位置(例えば、前面及び左側面である。)に取り付けられていてもよく、広い範囲を撮像できるよう広角レンズ又は魚眼レンズが装着されていてもよい。
また、カメラ2は、制御部1からの制御信号に応じて入力画像を取得し、取得した入力画像を制御部1に対して出力する。なお、カメラ2は、魚眼レンズ又は広角レンズを用いて入力画像を取得した場合には、それらレンズを用いることによって生じる見掛け上の歪曲やアオリを補正した補正済みの入力画像を制御部1に対して出力するが、その見掛け上の歪曲やアオリを補正していない入力画像をそのまま制御部1に対して出力してもよい。その場合には、制御部1がその見掛け上の歪曲やアオリを補正することとなる。
入力部3は、操作者が画像生成装置100に対して各種情報を入力できるようにするための装置であり、例えば、タッチパネル、ボタンスイッチ、ポインティングデバイス、キーボード等である。
記憶部4は、各種情報を記憶するための装置であり、例えば、ハードディスク、光学ディスク、又は半導体メモリ等である。
表示部5は、画像情報を表示するための装置であり、例えば、ショベル60のキャブ64(図2参照。)内に設置された液晶ディスプレイ又はプロジェクタ等であって、制御部1が出力する各種画像を表示する。
距離画像センサ6は、ショベル60の周囲に存在する地物の距離情報の二次元配列を取得するための装置であり、例えば、キャブ64にいる操作者の死角となる領域を撮像できるよう上部旋回体63の右側面及び後面に取り付けられる(図2参照。)。なお、距離画像センサ6は、上部旋回体63の前面、左側面、右側面、及び後面のうちの何れか1つに取り付けられていてもよく、全ての面に取り付けられていてもよい。
距離画像センサ6は、カメラ2が画素毎に輝度、色相値、彩度値等を取得するのに対し、画素毎に距離情報を取得するセンサであり、例えば、投光用LED、受光用CCDで構成される。具体的には、距離画像センサ6は、TOF(Time Of Flight)方式を採用し、投光用LEDから発せられた近赤外光が地物で反射してその反射光が受光用CCDで受光されるまでの時間を計測することで、画素毎に距離情報を取得する。そのため、以下では、距離画像センサ6による二次元配列の距離情報は、カメラ2の入力画像、出力画像と対比させ、入力距離画像、出力距離画像と称する。なお、距離画像センサ6は、パターン投影方式等の他の方式を採用してもよい。また、距離画像センサ6の入力距離画像、出力距離画像の解像度(画素数)は、カメラ2の入力画像、出力画像における解像度と同じであってもよく、異なるものであってもよい。また、カメラ2の入力画像、出力画像における1又は複数の画素と、距離画像センサ6の入力距離画像、出力距離画像における1又は複数の画素とは予め対応付けられていてもよい。
また、距離画像センサ6は、カメラ2と同様、上部旋回体63の右側面及び後面以外の位置(例えば、前面及び左側面である。)に取り付けられてもよく、広い範囲を撮像できるよう広角レンズ又は魚眼レンズが装着されてもよい。
また、距離画像センサ6は、カメラ2と同様、制御部1からの制御信号に応じて入力距離画像を取得し、取得した入力距離画像を制御部1に対して出力する。なお、距離画像センサ6は、カメラ2と同様、魚眼レンズ又は広角レンズを用いて入力距離画像を取得した場合には、それらレンズを用いることによって生じる見掛け上の歪曲やアオリを補正した補正済みの入力距離画像を制御部1に対して出力するが、その見掛け上の歪曲やアオリを補正していない入力距離画像をそのまま制御部1に対して出力してもよい。その場合には、制御部1がその見掛け上の歪曲やアオリを補正することとなる。
また、画像生成装置100は、入力画像に基づいて処理対象画像を生成し、その処理対象画像に画像変換処理を施すことによって周囲の地物との位置関係や距離感を直感的に把握できるようにする出力画像を生成した上で、その出力画像を操作者に提示するようにしてもよい。
画像生成装置100は、入力距離画像についても同様の処理を行う。その場合、処理対象画像は、処理対象距離画像で読み替えられる。以下の記載においても同様である。
「処理対象画像」は、入力画像に基づいて生成される、画像変換処理(例えば、スケール変換、アフィン変換、歪曲変換、視点変換処理等である。)の対象となる画像であり、例えば、地表を上方から撮像するカメラによる入力画像であってその広い画角により水平方向の画像(例えば、空の部分である。)を含む入力画像を画像変換処理で用いる場合に、その水平方向の画像が不自然に表示されないよう(例えば、空の部分が地表にあるものとして扱われないよう)その入力画像を所定の空間モデルに投影した上で、その空間モデルに投影された投影画像を別の二次元平面に再投影することによって得られる、画像変換処理に適した画像である。なお、処理対象画像は、画像変換処理を施すことなくそのまま出力画像として用いられてもよい。
「空間モデル」は、少なくとも、処理対象画像が位置する平面である処理対象画像平面以外の平面又は曲面(例えば、処理対象画像平面に平行な平面、又は、処理対象画像平面との間で角度を形成する平面若しくは曲面である。)を含む、一又は複数の平面若しくは曲面で構成される、入力画像の投影対象である。
なお、画像生成装置100は、処理対象画像を生成することなく、その空間モデルに投影された投影画像に画像変換処理を施すことによって出力画像を生成するようにしてもよい。また、投影画像は、画像変換処理を施すことなくそのまま出力画像として用いられてもよい。
図3は、入力画像が投影される空間モデルMDの一例を示す図であり、図3(A)は、ショベル60を側方から見たときのショベル60と空間モデルMDとの間の関係を示し、図3(B)は、ショベル60を上方から見たときのショベル60と空間モデルMDとの間の関係を示す。
図3で示されるように、空間モデルMDは、半円筒形状を有し、その底面内部の平面領域R1とその側面内部の曲面領域R2とを有する。
また、図4は、空間モデルMDと処理対象画像平面との間の関係の一例を示す図であり、処理対象画像平面R3は、例えば、空間モデルMDの平面領域R1を含む平面である。なお、図4は、明確化のために、空間モデルMDを、図3で示すような半円筒形状ではなく、円筒形状で示しているが、空間モデルMDは、半円筒形状及び円筒形状の何れであってもよいものとする。以降の図においても同様である。また、処理対象画像平面R3は、上述のように、空間モデルMDの平面領域R1を含む円形領域であってもよく、空間モデルMDの平面領域R1を含まない環状領域であってもよい。
次に、制御部1が有する各種手段について説明する。
座標対応付け手段10は、カメラ2が撮像した入力画像が位置する入力画像平面上の座標と、空間モデルMD上の座標と、処理対象画像平面R3上の座標とを対応付けるための手段であり、例えば、予め設定された、或いは、入力部3を介して入力される、カメラ2の光学中心、焦点距離、CCDサイズ、光軸方向ベクトル、カメラ水平方向ベクトル、射影方式等のカメラ2に関する各種パラメータと、予め決定された、入力画像平面、空間モデルMD、及び処理対象画像平面R3の相互の位置関係とに基づいて、入力画像平面上の座標と、空間モデルMD上の座標と、処理対象画像平面R3上の座標とを対応付け、それらの対応関係を記憶部4の入力画像・空間モデル対応マップ40及び空間モデル・処理対象画像対応マップ41に記憶する。
なお、座標対応付け手段10は、処理対象画像を生成しない場合には、空間モデルMD上の座標と処理対象画像平面R3上の座標との対応付け、及び、その対応関係の空間モデル・処理対象画像対応マップ41への記憶を省略する。
また、座標対応付け手段10は、距離画像センサが撮像した入力距離画像に対しても同様の処理を行う。その場合、カメラ、入力画像平面、処理対象画像平面は、距離画像センサ、入力距離画像平面、処理対象距離画像平面で読み替えられる。以下の記載においても同様である。
画像生成手段11は、出力画像を生成するための手段であり、例えば、処理対象画像にスケール変換、アフィン変換、又は歪曲変換を施すことによって、処理対象画像平面R3上の座標と出力画像が位置する出力画像平面上の座標とを対応付け、その対応関係を記憶部4の処理対象画像・出力画像対応マップ42に記憶し、座標対応付け手段10がその値を記憶した入力画像・空間モデル対応マップ40及び空間モデル・処理対象画像対応マップ41を参照しながら、出力画像における各画素の値(例えば、輝度値、色相値、彩度値等である。)と入力画像における各画素の値とを関連付けて出力画像を生成する。
また、画像生成手段11は、予め設定された、或いは、入力部3を介して入力される、仮想カメラの光学中心、焦点距離、CCDサイズ、光軸方向ベクトル、カメラ水平方向ベクトル、射影方式等の各種パラメータに基づいて、処理対象画像平面R3上の座標と出力画像が位置する出力画像平面上の座標とを対応付け、その対応関係を記憶部4の処理対象画像・出力画像対応マップ42に記憶し、座標対応付け手段10がその値を記憶した入力画像・空間モデル対応マップ40及び空間モデル・処理対象画像対応マップ41を参照しながら、出力画像における各画素の値(例えば、輝度値、色相値、彩度値等である。)と入力画像における各画素の値とを関連付けて出力画像を生成する。
なお、画像生成手段11は、仮想カメラの概念を用いることなく、処理対象画像のスケールを変更して出力画像を生成するようにしてもよい。
また、画像生成手段11は、処理対象画像を生成しない場合には、施した画像変換処理に応じて空間モデルMD上の座標と出力画像平面上の座標とを対応付け、入力画像・空間モデル対応マップ40を参照しながら、出力画像における各画素の値(例えば、輝度値、色相値、彩度値等である。)と入力画像における各画素の値とを関連付けて出力画像を生成する。この場合、画像生成手段11は、処理対象画像平面R3上の座標と出力画像平面上の座標との対応付け、及び、その対応関係の処理対象画像・出力画像対応マップ42への記憶を省略する。
また、画像生成手段11は、入力距離画像又は処理対象距離画像に対しても同様の処理を行う。その場合、出力画像平面は、出力距離画像平面で読み替えられる。以下の記載においても同様である。
画素抽出手段12は、距離画像センサ6の入力距離画像から所定の条件を満たす画素を抽出するための手段である。例えば、画素抽出手段12は、入力距離画像における、ショベル60の周囲の地物と距離画像センサ6との間の距離を表す画素値を有する画素から所定の条件を満たす画素を抽出する。
具体的には、画素抽出手段12は、ショベル60が位置する平面(以下、「設置面」とする。)と距離画像センサ6との間の距離(以下、「設置面距離」とする。)との差が所定距離以上となる画素を抽出する。なお、設置面は、傾斜面であってもよい。また、設置面距離は、距離画像センサ6の設置位置及び設置角度に基づいて、距離画像センサ6の入力距離画像における画素毎に予め設定される。そして、画素抽出手段12は、抽出しなかった画素の画素値を所定値(例えば、最小値としてのゼロである。)で置き換え、抽出した画素の画素値をそのまま維持することによって入力距離画像を補正する。なお、画素抽出手段12についてはその詳細を後述する。
距離補正手段13は、距離画像センサが取得する距離情報を補正するための手段である。例えば、距離補正手段13は、画像抽出手段12が抽出した画素の値を補正する。具体的には、距離補正手段13は、ショベル60の周囲の地物と距離画像センサ6との間の距離を表す画素の値を、距離画像センサ6の外部にある基準とその地物との間の距離を表す値に補正する。また、距離補正手段13は、画像抽出手段12による抽出の前に、距離画像センサ6が撮像した入力距離画像における画素の値を補正してもよい。なお、距離補正手段13についてはその詳細を後述する。
距離画像合成手段14は、カメラに関する画像と、距離画像センサに関する画像とを合成するための手段である。例えば、距離画像合成手段14は、画像生成手段11が生成した、カメラ2の入力画像に基づく出力画像と、距離画像センサ6の入力距離画像に基づく出力距離画像とを合成する。出力距離画像は、画像抽出手段12による抽出、及び、距離補正手段13による補正の少なくとも一方が施された後の出力距離画像である。但し、出力距離画像は、画像抽出手段12による抽出、及び、距離補正手段13による補正が施される前の出力距離画像であってもよい。なお、距離画像合成手段14についてはその詳細を後述する。
運転支援手段15は、ショベル60の運転を支援する手段である。例えば、運転支援手段15は、ショベル60の移動方向に所定の地物が存在すると判定した場合にショベル60の運転を支援する機能を実行する。
「所定の地物」は、例えば、ショベル60と衝突するおそれのある作業員等の人物、ショベル60の移動を阻む障害物等を含む。
運転を支援する機能(以下、「運転支援機能」とする。)は、例えば、警報の出力、表示部5における警告の表示、警告灯の点灯・点滅、ショベル60の減速、ショベル60の走行速度の制限、ショベル60の走行の停止等を含む。
具体的には、運転支援手段15は、ショベル60が移動(後退)しているときにショベル60の移動方向(後方)に障害物があると判定した場合に、表示部5に障害物の存在を知らせる警告を表示する。なお、ショベル60の移動方向は、例えば、操作レバーの操作内容(例えば、操作方向、操作量等である。)に基づいて検出される。
また、運転支援手段15は、ショベル60と障害物との間の距離が短くなるにつれてショベル60の移動(後退)速度を低下させてもよく、ショベル60と障害物との間の距離が所定距離以下となった場合にショベル60の移動(後退)を停止させてもよい。
また、運転支援手段15は、設置面から所定距離以上の高さを有する地物が距離画像センサ6によって検出された場合に、ショベル60と衝突するおそれのある障害物が存在すると判定してもよい。また、運転支援手段15は、入力距離画像における所定方向(ショベル60の移動方向)に沿った画素値の減少勾配に基づいて、ショベル60と衝突するおそれのある障害物が存在するか否かを判定してもよい。
次に、座標対応付け手段10及び画像生成手段11による具体的な処理の一例について説明する。
座標対応付け手段10は、例えば、ハミルトンの四元数を用いて、入力画像平面上の座標と空間モデル上の座標とを対応付けることができる。
図5は、入力画像平面上の座標と空間モデル上の座標との対応付けを説明するための図であり、カメラ2の入力画像平面は、カメラ2の光学中心Cを原点とするUVW直交座標系における一平面として表され、空間モデルは、XYZ直交座標系における立体面として表されるものとする。
最初に、座標対応付け手段10は、空間モデル上の座標(XYZ座標系上の座標)を入力画像平面上の座標(UVW座標系上の座標)に変換するため、XYZ座標系の原点を光学中心C(UVW座標系の原点)に並行移動させた上で、X軸をU軸に、Y軸をV軸に、Z軸を−W軸(符号「−」は方向が逆であることを意味する。これは、UVW座標系がカメラ前方を+W方向とし、XYZ座標系が鉛直下方を−Z方向としていることに起因する。)にそれぞれ一致させるようXYZ座標系を回転させる。
なお、カメラ2が複数存在する場合、カメラ2のそれぞれが個別のUVW座標系を有することとなるので、座標対応付け手段10は、複数のUVW座標系のそれぞれに対して、XYZ座標系を並行移動させ且つ回転させることとなる。
上述の変換は、カメラ2の光学中心CがXYZ座標系の原点となるようにXYZ座標系を並行移動させた後に、Z軸が−W軸に一致するよう回転させ、更に、X軸がU軸に一致するよう回転させることによって実現されるので、座標対応付け手段10は、この変換をハミルトンの四元数で記述することにより、それら二回の回転を一回の回転演算に纏めることができる。
ところで、あるベクトルAを別のベクトルBに一致させるための回転は、ベクトルAとベクトルBとが張る面の法線を軸としてベクトルAとベクトルBとが形成する角度だけ回転させる処理に相当し、その角度をθとすると、ベクトルAとベクトルBとの内積から、角度θは、
で表されることとなる。
また、ベクトルAとベクトルBとが張る面の法線の単位ベクトルNは、ベクトルAとベクトルBとの外積から
で表されることとなる。
なお、四元数は、i、j、kをそれぞれ虚数単位とした場合、
を満たす超複素数であり、本実施例において、四元数Qは、実成分をt、純虚成分をa、b、cとして、
で表されるものとし、四元数Qの共役四元数は、
で表されるものとする。
四元数Qは、実成分tを0(ゼロ)としながら、純虚成分a、b、cで三次元ベクトル(a,b,c)を表現することができ、また、t、a、b、cの各成分により任意のベクトルを軸とした回転動作を表現することもできる。
更に、四元数Qは、連続する複数回の回転動作を統合して一回の回転動作として表現することができ、例えば、任意の点S(sx,sy,sz)を、任意の単位ベクトルC(l,m,n)を軸としながら角度θだけ回転させたときの点D(ex,ey,ez)を以下のように表現することができる。
ここで、本実施例において、Z軸を−W軸に一致させる回転を表す四元数をQzとすると、XYZ座標系におけるX軸上の点Xは、点X'に移動させられるので、点X'は、
で表されることとなる。
また、本実施例において、X軸上にある点X'と原点とを結ぶ線をU軸に一致させる回転を表す四元数をQxとすると、「Z軸を−W軸に一致させ、更に、X軸をU軸に一致させる回転」を表す四元数Rは、
で表されることとなる。
以上により、空間モデル(XYZ座標系)上の任意の座標Pを入力画像平面(UVW座標系)上の座標で表現したときの座標P'は、
で表されることとなり、四元数Rがカメラ2のそれぞれで不変であることから、座標対応付け手段10は、以後、この演算を実行するだけで空間モデル(XYZ座標系)上の座標を入力画像平面(UVW座標系)上の座標に変換することができる。
空間モデル(XYZ座標系)上の座標を入力画像平面(UVW座標系)上の座標に変換した後、座標対応付け手段10は、カメラ2の光学中心C(UVW座標系上の座標)と空間モデル上の任意の座標PをUVW座標系で表した座標P'とを結ぶ線分CP'と、カメラ2の光軸Gとが形成する入射角αを算出する。
また、座標対応付け手段10は、カメラ2の入力画像平面R4(例えば、CCD面)に平行で且つ座標P'を含む平面Hにおける、平面Hと光軸Gとの交点Eと座標P'とを結ぶ線分EP'と、平面HにおけるU'軸とが形成する偏角φ、及び線分EP'の長さを算出する。
カメラの光学系は、通常、像高さhが入射角α及び焦点距離fの関数となっているので、座標対応付け手段10は、通常射影(h=ftanα)、正射影(h=fsinα)、立体射影(h=2ftan(α/2))、等立体角射影(h=2fsin(α/2))、等距離射影(h=fα)等の適切な射影方式を選択して像高さhを算出する。
その後、座標対応付け手段10は、算出した像高さhを偏角φによりUV座標系上のU成分及びV成分に分解し、入力画像平面R4の一画素当たりの画素サイズに相当する数値で除算することにより、空間モデルMD上の座標P(P')と入力画像平面R4上の座標とを対応付けることができる。
なお、入力画像平面R4のU軸方向における一画素当たりの画素サイズをaUとし、入力画像平面R4のV軸方向における一画素当たりの画素サイズをaVとすると、空間モデルMD上の座標P(P')に対応する入力画像平面R4上の座標(u,v)は、
で表されることとなる。
このようにして、座標対応付け手段10は、空間モデルMD上の座標と、カメラ毎に存在する一又は複数の入力画像平面R4上の座標とを対応付け、空間モデルMD上の座標、カメラ識別子、及び入力画像平面R4上の座標を関連付けて入力画像・空間モデル対応マップ40に記憶する。
また、座標対応付け手段10は、四元数を用いて座標の変換を演算するので、オイラー角を用いて座標の変換を演算する場合と異なり、ジンバルロックを発生させることがないという利点を有する。しかしながら、座標対応付け手段10は、四元数を用いて座標の変換を演算するものに限定されることはなく、オイラー角を用いて座標の変換を演算するようにしてもよい。
なお、複数の入力画像平面R4上の座標への対応付けが可能な場合、座標対応付け手段10は、空間モデルMD上の座標P(P')を、その入射角αが最も小さいカメラに関する入力画像平面R4上の座標に対応付けるようにしてもよく、操作者が選択した入力画像平面R4上の座標に対応付けるようにしてもよい。
次に、空間モデルMD上の座標のうち、曲面領域R2上の座標(Z軸方向の成分を持つ座標)を、XY平面上にある処理対象画像平面R3に再投影する処理について説明する。
図6は、座標対応付け手段10による座標間の対応付けを説明するための図であり、図6(A)は、一例として通常射影(h=ftanα)を採用するカメラ2の入力画像平面R4上の座標と空間モデルMD上の座標との間の対応関係を示す図であって、座標対応付け手段10は、カメラ2の入力画像平面R4上の座標とその座標に対応する空間モデルMD上の座標とを結ぶ線分のそれぞれがカメラ2の光学中心Cを通過するようにして、両座標を対応付ける。
図6(A)の例では、座標対応付け手段10は、カメラ2の入力画像平面R4上の座標K1を空間モデルMDの平面領域R1上の座標L1に対応付け、カメラ2の入力画像平面R4上の座標K2を空間モデルMDの曲面領域R2上の座標L2に対応付ける。このとき、線分K1−L1及び線分K2−L2は共にカメラ2の光学中心Cを通過する。
なお、カメラ2が通常射影以外の射影方式(例えば、正射影、立体射影、等立体角射影、等距離射影等である。)を採用する場合、座標対応付け手段10は、それぞれの射影方式に応じて、カメラ2の入力画像平面R4上の座標K1、K2を空間モデルMD上の座標L1、L2に対応付けるようにする。
具体的には、座標対応付け手段10は、所定の関数(例えば、正射影(h=fsinα)、立体射影(h=2ftan(α/2))、等立体角射影(h=2fsin(α/2))、等距離射影(h=fα)等である。)に基づいて、入力画像平面上の座標と空間モデルMD上の座標とを対応付ける。この場合、線分K1−L1及び線分K2−L2がカメラ2の光学中心Cを通過することはない。
図6(B)は、空間モデルMDの曲面領域R2上の座標と処理対象画像平面R3上の座標との間の対応関係を示す図であり、座標対応付け手段10は、XZ平面上に位置する平行線群PLであって、処理対象画像平面R3との間で角度βを形成する平行線群PLを導入し、空間モデルMDの曲面領域R2上の座標とその座標に対応する処理対象画像平面R3上の座標とが共に平行線群PLのうちの一つに乗るようにして、両座標を対応付ける。
図6(B)の例では、座標対応付け手段10は、空間モデルMDの曲面領域R2上の座標L2と処理対象画像平面R3上の座標M2とが共通の平行線に乗るとして、両座標を対応付けるようにする。
なお、座標対応付け手段10は、空間モデルMDの平面領域R1上の座標を曲面領域R2上の座標と同様に平行線群PLを用いて処理対象画像平面R3上の座標に対応付けることが可能であるが、図6(B)の例では、平面領域R1と処理対象画像平面R3とが共通の平面となっているので、空間モデルMDの平面領域R1上の座標L1と処理対象画像平面R3上の座標M1とは同じ座標値を有するものとなっている。
このようにして、座標対応付け手段10は、空間モデルMD上の座標と、処理対象画像平面R3上の座標とを対応付け、空間モデルMD上の座標及び処理対象画像R3上の座標を関連付けて空間モデル・処理対象画像対応マップ41に記憶する。
図6(C)は、処理対象画像平面R3上の座標と一例として通常射影(h=ftanα)を採用する仮想カメラ2Vの出力画像平面R5上の座標との間の対応関係を示す図であり、画像生成手段11は、仮想カメラ2Vの出力画像平面R5上の座標とその座標に対応する処理対象画像平面R3上の座標とを結ぶ線分のそれぞれが仮想カメラ2Vの光学中心CVを通過するようにして、両座標を対応付ける。
図6(C)の例では、画像生成手段11は、仮想カメラ2Vの出力画像平面R5上の座標N1を処理対象画像平面R3(空間モデルMDの平面領域R1)上の座標M1に対応付け、仮想カメラ2Vの出力画像平面R5上の座標N2を処理対象画像平面R3上の座標M2に対応付ける。このとき、線分M1−N1及び線分M2−N2は共に仮想カメラ2Vの光学中心CVを通過する。
なお、仮想カメラ2Vが通常射影以外の射影方式(例えば、正射影、立体射影、等立体角射影、等距離射影等である。)を採用する場合、画像生成手段11は、それぞれの射影方式に応じて、仮想カメラ2Vの出力画像平面R5上の座標N1、N2を処理対象画像平面R3上の座標M1、M2に対応付けるようにする。
具体的には、画像生成手段11は、所定の関数(例えば、正射影(h=fsinα)、立体射影(h=2ftan(α/2))、等立体角射影(h=2fsin(α/2))、等距離射影(h=fα)等である。)に基づいて、出力画像平面R5上の座標と処理対象画像平面R3上の座標とを対応付ける。この場合、線分M1−N1及び線分M2−N2が仮想カメラ2Vの光学中心CVを通過することはない。
このようにして、画像生成手段11は、出力画像平面R5上の座標と、処理対象画像平面R3上の座標とを対応付け、出力画像平面R5上の座標及び処理対象画像R3上の座標を関連付けて処理対象画像・出力画像対応マップ42に記憶し、座標対応付け手段10が記憶した入力画像・空間モデル対応マップ40及び空間モデル・処理対象画像対応マップ41を参照しながら、出力画像における各画素の値と入力画像における各画素の値とを関連付けて出力画像を生成する。
なお、図6(D)は、図6(A)〜図6(C)を組み合わせた図であり、カメラ2、仮想カメラ2V、空間モデルMDの平面領域R1及び曲面領域R2、並びに、処理対象画像平面R3の相互の位置関係を示す。
次に、図7を参照しながら、空間モデルMD上の座標と処理対象画像平面R3上の座標とを対応付けるために座標対応付け手段10が導入する平行線群PLの作用について説明する。
図7(A)は、XZ平面上に位置する平行線群PLと処理対象画像平面R3との間で角度βが形成される場合の図であり、図7(B)は、XZ平面上に位置する平行線群PLと処理対象画像平面R3との間で角度β1(β1>β)が形成される場合の図である。また、図7(A)及び図7(B)における空間モデルMDの曲面領域R2上の座標La〜Ldのそれぞれは、処理対象画像平面R3上の座標Ma〜Mdのそれぞれに対応するものとし、図7(A)における座標La〜Ldのそれぞれの間隔は、図7(B)における座標La〜Ldのそれぞれの間隔と等しいものとする。なお、平行線群PLは、説明目的のためにXZ平面上に存在するものとしているが、実際には、Z軸上の全ての点から処理対象画像平面R3に向かって放射状に延びるように存在するものとする。なお、この場合のZ軸を「再投影軸」と称することとする。
図7(A)及び図7(B)で示されるように、処理対象画像平面R3上の座標Ma〜Mdのそれぞれの間隔は、平行線群PLと処理対象画像平面R3との間の角度が増大するにつれて線形的に減少する(空間モデルMDの曲面領域R2と座標Ma〜Mdのそれぞれとの間の距離とは関係なく一様に減少する。)。一方で、空間モデルMDの平面領域R1上の座標群は、図7の例では、処理対象画像平面R3上の座標群への変換が行われないので、座標群の間隔が変化することはない。
これら座標群の間隔の変化は、出力画像平面R5(図6参照。)上の画像部分のうち、空間モデルMDの曲面領域R2に投影された画像に対応する画像部分のみが線形的に拡大或いは縮小されることを意味する。
次に、図8を参照しながら、空間モデルMD上の座標と処理対象画像平面R3上の座標とを対応付けるために座標対応付け手段10が導入する平行線群PLの代替例について説明する。
図8(A)は、XZ平面上に位置する補助線群ALの全てがZ軸上の始点T1から処理対象画像平面R3に向かって延びる場合の図であり、図8(B)は、補助線群ALの全てがZ軸上の始点T2(T2>T1)から処理対象画像平面R3に向かって延びる場合の図である。また、図8(A)及び図8(B)における空間モデルMDの曲面領域R2上の座標La〜Ldのそれぞれは、処理対象画像平面R3上の座標Ma〜Mdのそれぞれに対応するものとし(図8(A)の例では、座標Mc、Mdは、処理対象画像平面R3の領域外となるため図示されていない。)、図8(A)における座標La〜Ldのそれぞれの間隔は、図8(B)における座標La〜Ldのそれぞれの間隔と等しいものとする。なお、補助線群ALは、説明目的のためにXZ平面上に存在するものとしているが、実際には、Z軸上の任意の一点から処理対象画像平面R3に向かって放射状に延びるように存在するものとする。なお、図7と同様、この場合のZ軸を「再投影軸」と称することとする。
図8(A)及び図8(B)で示されるように、処理対象画像平面R3上の座標Ma〜Mdのそれぞれの間隔は、補助線群ALの始点と原点Oとの間の距離(高さ)が増大するにつれて非線形的に減少する(空間モデルMDの曲面領域R2と座標Ma〜Mdのそれぞれとの間の距離が大きいほど、それぞれの間隔の減少幅が大きくなる。)。一方で、空間モデルMDの平面領域R1上の座標群は、図8の例では、処理対象画像平面R3上の座標群への変換が行われないので、座標群の間隔が変化することはない。
これら座標群の間隔の変化は、平行線群PLのときと同様、出力画像平面R5(図6参照。)上の画像部分のうち、空間モデルMDの曲面領域R2に投影された画像に対応する画像部分のみが非線形的に拡大或いは縮小されることを意味する。
このようにして、画像生成装置100は、空間モデルMDの平面領域R1に投影された画像に対応する出力画像の画像部分(例えば、路面画像である。)に影響を与えることなく、空間モデルMDの曲面領域R2に投影された画像に対応する出力画像の画像部分(例えば、水平画像である。)を線形的に或いは非線形的に拡大或いは縮小させることができるので、ショベル60の近傍の路面画像(ショベル60を真上から見たときの仮想画像)に影響を与えることなく、ショベル60の周囲に位置する地物(ショベル60から水平方向に周囲を見たときの画像における地物)を迅速且つ柔軟に拡大或いは縮小させることができ、ショベル60の死角領域の視認性を向上させることができる。
次に、図9を参照しながら、画像生成装置100が処理対象画像を生成する処理(以下、「処理対象画像生成処理」とする。)、及び、生成した処理対象画像を用いて出力画像を生成する処理(以下、「出力画像生成処理」とする。)について説明する。なお、図9は、処理対象画像生成処理(ステップS1〜ステップS3)及び出力画像生成処理(ステップS4〜ステップS6)の流れを示すフローチャートである。また、カメラ2(入力画像平面R4)、空間モデル(平面領域R1及び曲面領域R2)、並びに、処理対象画像平面R3の配置は予め決定されているものとする。
最初に、制御部1は、座標対応付け手段10により、処理対象画像平面R3上の座標と空間モデルMD上の座標とを対応付ける(ステップS1)。
具体的には、座標対応付け手段10は、平行線群PLと処理対象画像平面R3との間に形成される角度を取得し、処理対象画像平面R3上の一座標から延びる平行線群PLの一つが空間モデルMDの曲面領域R2と交差する点を算出し、算出した点に対応する曲面領域R2上の座標を、処理対象画像平面R3上のその一座標に対応する曲面領域R2上の一座標として導き出し、その対応関係を空間モデル・処理対象画像対応マップ41に記憶する。なお、平行線群PLと処理対象画像平面R3との間に形成される角度は、記憶部4等に予め記憶された値であってもよく、入力部3を介して操作者が動的に入力する値であってもよい。
また、座標対応付け手段10は、処理対象画像平面R3上の一座標が空間モデルMDの平面領域R1上の一座標と一致する場合には、平面領域R1上のその一座標を、処理対象画像平面R3上のその一座標に対応する一座標として導き出し、その対応関係を空間モデル・処理対象画像対応マップ41に記憶する。
その後、制御部1は、座標対応付け手段10により、上述の処理によって導き出された空間モデルMD上の一座標と入力画像平面R4上の座標とを対応付ける(ステップS2)。
具体的には、座標対応付け手段10は、通常射影(h=ftanα)を採用するカメラ2の光学中心Cの座標を取得し、空間モデルMD上の一座標から延びる線分であり、光学中心Cを通過する線分が入力画像平面R4と交差する点を算出し、算出した点に対応する入力画像平面R4上の座標を、空間モデルMD上のその一座標に対応する入力画像平面R4上の一座標として導き出し、その対応関係を入力画像・空間モデル対応マップ40に記憶する。
その後、制御部1は、処理対象画像平面R3上の全ての座標を空間モデルMD上の座標及び入力画像平面R4上の座標に対応付けたか否かを判定し(ステップS3)、未だ全ての座標を対応付けていないと判定した場合には(ステップS3のNO)、ステップS1及びステップS2の処理を繰り返すようにする。
一方、制御部1は、全ての座標を対応付けたと判定した場合には(ステップS3のYES)、処理対象画像生成処理を終了させた上で出力画像生成処理を開始させ、画像生成手段11により、処理対象画像平面R3上の座標と出力画像平面R5上の座標とを対応付ける(ステップS4)。
具体的には、画像生成手段11は、処理対象画像にスケール変換、アフィン変換、又は歪曲変換を施すことによって出力画像を生成し、施したスケール変換、アフィン変換、又は歪曲変換の内容によって定まる、処理対象画像平面R3上の座標と出力画像平面R5上の座標との間の対応関係を処理対象画像・出力画像対応マップ42に記憶する。
或いは、画像生成手段11は、仮想カメラ2Vを用いて出力画像を生成する場合には、採用した射影方式に応じて処理対象画像平面R3上の座標から出力画像平面R5上の座標を算出し、その対応関係を処理対象画像・出力画像対応マップ42に記憶するようにしてもよい。
或いは、画像生成手段11は、通常射影(h=ftanα)を採用する仮想カメラ2Vを用いて出力画像を生成する場合には、その仮想カメラ2Vの光学中心CVの座標を取得した上で、出力画像平面R5上の一座標から延びる線分であり、光学中心CVを通過する線分が処理対象画像平面R3と交差する点を算出し、算出した点に対応する処理対象画像平面R3上の座標を、出力画像平面R5上のその一座標に対応する処理対象画像平面R3上の一座標として導き出し、その対応関係を処理対象画像・出力画像対応マップ42に記憶するようにしてもよい。
その後、制御部1は、画像生成手段11により、入力画像・空間モデル対応マップ40、空間モデル・処理対象画像対応マップ41、及び処理対象画像・出力画像対応マップ42を参照しながら入力画像平面R4上の座標と空間モデルMD上の座標との対応関係、空間モデルMD上の座標と処理対象画像平面R3上の座標との対応関係、及び処理対象画像平面R3上の座標と出力画像平面R5上の座標との対応関係を辿り、出力画像平面R5上の各座標に対応する入力画像平面R4上の座標が有する値(例えば、輝度値、色相値、彩度値等である。)を取得し、その取得した値を、対応する出力画像平面R5上の各座標の値として採用する(ステップS5)。なお、出力画像平面R5上の一座標に対して複数の入力画像平面R4上の複数の座標が対応する場合、画像生成手段11は、それら複数の入力画像平面R4上の複数の座標のそれぞれの値に基づく統計値(例えば、平均値、最大値、最小値、中間値等である。)を導き出し、出力画像平面R5上のその一座標の値としてその統計値を採用するようにしてもよい。
その後、制御部1は、出力画像平面R5上の全ての座標の値を入力画像平面R4上の座標の値に対応付けたか否かを判定し(ステップS6)、未だ全ての座標の値を対応付けていないと判定した場合には(ステップS6のNO)、ステップS4及びステップS5の処理を繰り返すようにする。
一方、制御部1は、全ての座標の値を対応付けたと判定した場合には(ステップS6のYES)、出力画像を生成して、この一連の処理を終了させる。
なお、画像生成装置100は、処理対象画像を生成しない場合には、処理対象画像生成処理を省略し、出力画像生成処理におけるステップS4の"処理対象画像平面上の座標"を"空間モデル上の座標"で読み替えるものとする。
以上の構成により、画像生成装置100は、ショベル60の周囲の地物とショベル60との位置関係を操作者に直感的に把握させることが可能な処理対象画像及び出力画像を生成することができる。
また、画像生成装置100は、処理対象画像平面R3から空間モデルMDを経て入力画像平面R4に遡るように座標の対応付けを実行することにより、処理対象画像平面R3上の各座標を入力画像平面R4上の一又は複数の座標に確実に対応させることができ、入力画像平面R4から空間モデルMDを経て処理対象画像平面R3に至る順番で座標の対応付けを実行する場合と比べ(この場合には、入力画像平面R4上の各座標を処理対象画像平面R3上の一又は複数の座標に確実に対応させることができるが、処理対象画像平面R3上の座標の一部が、入力画像平面R4上の何れの座標にも対応付けられない場合があり、その場合にはそれら処理対象画像平面R3上の座標の一部に補間処理等を施す必要がある。)、より良質な処理対象画像を迅速に生成することができる。
また、画像生成装置100は、空間モデルMDの曲面領域R2に対応する画像のみを拡大或いは縮小する場合には、平行線群PLと処理対象画像平面R3との間に形成される角度を変更して空間モデル・処理対象画像対応マップ41における曲面領域R2に関連する部分のみを書き換えるだけで、入力画像・空間モデル対応マップ40の内容を書き換えることなく、所望の拡大或いは縮小を実現させることができる。
また、画像生成装置100は、出力画像の見え方を変更する場合には、スケール変換、アフィン変換又は歪曲変換に関する各種パラメータの値を変更して処理対象画像・出力画像対応マップ42を書き換えるだけで、入力画像・空間モデル対応マップ40及び空間モデル・処理対象画像対応マップ41の内容を書き換えることなく、所望の出力画像(スケール変換画像、アフィン変換画像又は歪曲変換画像)を生成することができる。
同様に、画像生成装置100は、出力画像の視点を変更する場合には、仮想カメラ2Vの各種パラメータの値を変更して処理対象画像・出力画像対応マップ42を書き換えるだけで、入力画像・空間モデル対応マップ40及び空間モデル・処理対象画像対応マップ41の内容を書き換えることなく、所望の視点から見た出力画像(視点変換画像)を生成することができる。
図10は、ショベル60に搭載された二台のカメラ2(右側方カメラ2R及び後方カメラ2B)の入力画像を用いて生成される出力画像を表示部5に表示させたときの表示例である。
画像生成装置100は、それら二台のカメラ2のそれぞれの入力画像を空間モデルMDの平面領域R1及び曲面領域R2上に投影した上で処理対象画像平面R3に再投影して処理対象画像を生成し、その生成した処理対象画像に画像変換処理(例えば、スケール変換、アフィン変換、歪曲変換、視点変換処理等である。)を施すことによって出力画像を生成して、ショベル60の近傍を上空から見下ろした画像(平面領域R1における画像)と、ショベル60から水平方向に周囲を見た画像(処理対象画像平面R3における画像)とを同時に表示している。
なお、出力画像は、画像生成装置100が処理対象画像を生成しない場合には、空間モデルMDに投影された画像に画像変換処理(例えば、視点変換処理である。)を施すことによって生成されるものとする。
また、出力画像は、ショベル60が旋回動作を行う際の画像を違和感なく表示できるよう、円形にトリミングされ、その円の中心CTRが空間モデルMDの円筒中心軸上で、且つ、ショベル60の旋回軸PV上となるように生成されており、ショベル60の旋回動作に応じてその中心CTRを軸に回転するように表示される。この場合、空間モデルMDの円筒中心軸は、再投影軸と一致するものであってもよく、一致しないものであってもよい。
なお、空間モデルMDの半径は、例えば、5メートルであり、平行線群PLが処理対象画像平面R3との間で形成する角度、又は、補助線群ALの始点高さは、ショベル60の旋回中心から掘削アタッチメントEの最大到達距離(例えば12メートルである。)だけ離れた位置に地物(例えば、作業員である。)が存在する場合にその地物が表示部5で十分大きく(例えば、7ミリメートル以上である。)表示されるように、設定され得る。
更に、出力画像は、ショベル60のCG画像を、ショベル60の前方が表示部5の画面上方と一致し、且つ、その旋回中心が中心CTRと一致するように配置するようにしてもよい。ショベル60と出力画像に現れる地物との間の位置関係をより分かり易くするためである。なお、出力画像は、方位等の各種情報を含む額縁画像をその周囲に配置するようにしてもよい。
次に、図11〜図18を参照しながら、画像生成装置100が生成する出力画像の詳細について説明する。
図11は、画像生成装置100を搭載するショベル60の上面図である。図11に示す実施例では、ショベル60は、3台のカメラ2(左側方カメラ2L、右側方カメラ2R、及び後方カメラ2B)と3台の距離画像センサ6(左側方距離画像センサ6L、右側方距離画像センサ6R、及び後方距離画像センサ6B)とを備える。なお、図11の一点鎖線で示す領域CL、CR、CBは、それぞれ、左側方カメラ2L、右側方カメラ2R、後方カメラ2Bの撮像範囲を示す。また、図11の点線で示す領域ZL、ZR、ZBは、それぞれ、左側方距離画像センサ6L、右側方距離画像センサ6R、後方距離画像センサ6Bの撮像範囲を示す。
なお、本実施例では、距離画像センサ6の撮像範囲がカメラ2の撮像範囲よりも狭いが、距離画像センサ6の撮像範囲は、カメラ2の撮像範囲と同じでもよく、カメラ2の撮像範囲より広くてもよい。また、距離画像センサ6の撮像範囲は、カメラ2の撮像範囲内において、ショベル60の近傍に位置するが、ショベル60からより遠い領域にあってもよい。
図12は、ショベル60に搭載された3台のカメラ2のそれぞれの入力画像と、それら入力画像を用いて生成される出力画像とを示す図である。
画像生成装置100は、3台のカメラ2のそれぞれの入力画像を空間モデルMDの平面領域R1及び曲面領域R2上に投影した上で処理対象画像平面R3に再投影して処理対象画像を生成する。また、画像生成装置100は、生成した処理対象画像に画像変換処理(例えば、スケール変換、アフィン変換、歪曲変換、視点変換処理等である。)を施すことによって出力画像を生成する。その結果、画像生成装置100は、ショベル60の近傍を上空から見下ろした画像(平面領域R1における画像)と、ショベル60から水平方向に周囲を見た画像(処理対象画像平面R3における画像)とを同時に表示する。なお、出力画像の中央に表示される画像は、ショベル60のCG画像60CGである。
図12において、右側方カメラ2Rの入力画像、及び、後方カメラ2Bの入力画像はそれぞれ、右側方カメラ2Rの撮像範囲と後方カメラ2Bの撮像範囲との重複領域内に人物を捉えている(右側方カメラ2Rの入力画像における二点鎖線で囲まれる領域R10、及び、後方カメラ2Bの入力画像における二点鎖線で囲まれる領域R11参照。)。
しかしながら、出力画像平面上の座標が入射角の最も小さいカメラに関する入力画像平面上の座標に対応付けられるものとすると、出力画像は、重複領域内の人物を消失させてしまう(出力画像内の一点鎖線で囲まれる領域R12参照。)。
そこで、画像生成装置100は、重複領域に対応する出力画像部分において、後方カメラ2Bの入力画像平面上の座標が対応付けられる領域と、右側方カメラ2Rの入力画像平面上の座標が対応付けられる領域とを混在させ、重複領域内の物体が消失するのを防止する。
図13は、2つのカメラのそれぞれの撮像範囲の重複領域における物体の消失を防止する画像消失防止処理を説明するための図である。
図13(A)は、右側方カメラ2Rの撮像範囲と後方カメラ2Bの撮像範囲との重複領域に対応する出力画像部分を示す図であり、図12の点線で示す矩形領域R13に対応する。
また、図13(A)において、灰色で塗り潰された領域PR1は、後方カメラ2Bの入力画像部分が配置される画像領域であり、領域PR1に対応する出力画像平面上の各座標には後方カメラ2Bの入力画像平面上の座標が対応付けられる。
一方、白色で塗り潰された領域PR2は、右側方カメラ2Rの入力画像部分が配置される画像領域であり、部分PR2に対応する出力画像平面上の各座標には右側方カメラ2Rの入力画像平面上の座標が対応付けられる。
本実施例では、領域PR1と領域PR2とが縞模様を形成するように配置され、領域PR1と領域PR2とが縞状に交互に並ぶ部分の境界線は、ショベル60の旋回中心を中心とする水平面上の同心円によって定められる。
図13(B)は、ショベル60の右斜め後方の空間領域の状況を示す上面図であり、後方カメラ2B及び右側方カメラ2Rの双方によって撮像される空間領域の現在の状況を示す。また、図13(B)は、ショベル60の右斜め後方に棒状の立体物OBが存在することを示す。
図13(C)は、図13(B)が示す空間領域を後方カメラ2B及び右側方カメラ2Rで実際に撮像して得られた入力画像に基づいて生成される出力画像の一部を示す。
具体的には、画像OB1は、後方カメラ2Bの入力画像における立体物OBの画像が、路面画像を生成するための視点変換によって、後方カメラ2Bと立体物OBとを結ぶ線の延長方向に伸長されたものを表す。すなわち、画像OB1は、後方カメラ2Bの入力画像を用いて出力画像部分における路面画像を生成した場合に表示される立体物OBの画像の一部である。
また、画像OB2は、右後方カメラ2Rの入力画像における立体物OBの画像が、路面画像を生成するための視点変換によって、右側方カメラ2Rと立体物OBとを結ぶ線の延長方向に伸長されたものを表す。すなわち、画像OB2は、右側方カメラ2Rの入力画像を用いて出力画像部分における路面画像を生成した場合に表示される立体物OBの画像の一部である。
このように、画像生成装置100は、重複領域において、後方カメラ2Bの入力画像平面上の座標が対応付けられる領域PR1と、右側方カメラ2Rの入力画像平面上の座標が対応付けられる領域PR2とを混在させる。その結果、画像生成装置100は、1つの立体物OBに関する2つの画像OB1及び画像OB2の双方を出力画像上に表示させ、立体物OBが出力画像から消失するのを防止する。
図14は、図12の出力画像と、図12の出力画像に画像消失防止処理を適用することで得られる出力画像との違いを表す対比図であり、図14(A)が図12の出力画像を示し、図14(B)が画像消失防止処理を適用した後の出力画像を示す。図14(A)における一点鎖線で囲まれる領域R12では人物が消失しているのに対し、図14(B)における一点鎖線で囲まれる領域R14では人物が消失せずに表示されている。
次に、図15を参照しながら、画像生成装置100が生成する出力距離画像について説明する。なお、図15は、ショベル60に搭載された3台の距離画像センサ6のそれぞれの入力距離画像と、それら入力距離画像を用いて生成される出力距離画像とを示す図である。
画像生成装置100は、それら3台の距離画像センサ6のそれぞれの入力距離画像を空間モデルMDの平面領域R1及び曲面領域R2上に投影した上で処理対象距離画像平面R3に再投影して処理対象距離画像を生成する。また、画像生成装置100は、生成した処理対象距離画像に画像変換処理(例えば、スケール変換、アフィン変換、歪曲変換、視点変換処理等である。)を施すことによって出力距離画像を生成する。そして、画像生成装置100は、ショベル60の近傍を上空から見下ろした距離画像(平面領域R1における距離画像)と、ショベル60から水平方向に周囲を見た距離画像(処理対象距離画像平面R3における画像)とを同時に表示する。なお、出力距離画像の中央に表示される画像は、ショベル60のCG画像60CGである。
なお、図15の入力距離画像及び出力距離画像は、画素値(距離画像センサ6からの距離)が小さいほど白く(薄く)、画素値が大きいほど黒く(濃く)なるように表示される。なお、路面及び上部旋回体63のそれぞれに相当する部分の画素値(距離)は、ショベル60の周囲に存在する地物の出力距離画像における視認性を高めるため、最大値(無限遠)に設定される。すなわち、路面及び上部旋回体63のそれぞれに相当する部分は黒色で表される。
図15において、右側方距離画像センサ6Rの入力画像、及び、後方距離画像センサ6Bの入力距離画像はそれぞれ、右側方距離画像センサ6Rの撮像範囲と後方距離画像センサ6Bの撮像範囲との重複領域内に人物を捉えている(右側方距離画像センサ6Rの入力距離画像における二点鎖線で囲まれる領域R15、及び、後方距離画像センサ6Bの入力距離画像における二点鎖線で囲まれる領域R16参照。)。
しかしながら、出力距離画像平面上の座標が、最も近い位置にある距離画像センサに関する入力距離画像平面上の座標に対応付けられるものとすると、出力距離画像は、重複領域内の人物を消失させてしまう(出力距離画像内の一点鎖線で囲まれる領域R17参照。)。
そこで、画像生成装置100は、重複領域に対応する出力距離画像部分では、後方距離画像センサ6Bの入力距離画像平面上の座標、及び、右側方距離画像センサ6Rの入力距離画像平面上の座標のうち、画素値(距離)が小さい方の座標を、出力距離画像平面上の座標に対応付けるようにする。その結果、画像生成装置100は、1つの立体物に関する2つの距離画像を出力距離画像上に表示させ、立体物が出力距離画像から消失するのを防止する。なお、以下では、2つの距離画像センサのそれぞれの撮像範囲の重複領域における物体の消失を防止するこの処理を距離画像消失防止処理と称する。
図16は、図15の出力距離画像と、図15の出力距離画像に距離画像消失防止処理を適用することで得られる出力距離画像との違いを表す対比図であり、図16(A)が図15の出力画像を示し、図16(B)が距離画像消失防止処理を適用した後の出力距離画像を示す。図16(A)における一点鎖線で囲まれる領域R17では人物が消失しているのに対し、図16(B)における一点鎖線で囲まれる領域R17では人物が消失せずに表示されている。
次に、図17及び図18を参照しながら、画像生成装置100が出力画像に出力距離画像を合成する処理(以下、「距離画像合成処理」とする。)について説明する。
図17は、出力画像に出力距離画像を合成して得られる合成後出力画像の一例を示す図である。
画像生成装置100の距離画像合成手段14は、例えば、図16(B)に示すように、画素抽出手段12が抽出した抽出画素の画素値(距離)を輝度値、色相値、彩度値等に変換した上で、図14(B)に示す出力画像にその抽出画素を重畳表示させる。重畳表示される抽出画素は、例えば、距離画像センサ6からの距離に応じた色を有し、その距離が大きくなるにつれて、赤色、黄色、緑色、青色というように段階的に或いは無段階にその色を変化させる。なお、重畳表示される抽出画素は、距離画像センサ6からの距離に応じた輝度を有し、距離が大きくなるにつれて、その輝度を段階的に或いは無段階に減少させるようにしてもよい。図17の領域EX1〜EX5は、それら抽出画素によって形成される領域であり、以下では、地物領域と称する。
また、距離画像合成手段14は、所定数以上の隣接する抽出画素によって形成される地物領域EX1〜EX5の距離情報を出力画像上に重畳表示させてもよい。具体的には、距離画像合成手段14は、例えば、地物領域EX1を構成する画素の画素値(距離)の最小値、最大値、平均値、中間値等を、地物領域EX1までの距離を表す代表値として出力画像上に重畳表示させる。なお、距離画像合成手段14は、その代表値が所定値未満の場合に限りその代表値を出力画像上に重畳表示するようにしてもよい。ショベル60に比較的近い地物、すなわち接触の可能性が比較的高い地物をより認識し易くするためである。
図18は、出力画像に出力距離画像を合成して得られる合成後出力画像の別の一例を示す図である。
図18では、距離画像合成手段14は、抽出画素の色や輝度を変更して重畳表示する代わりに、図17の地物領域EX1〜EX5のそれぞれに対応する枠RF1〜RF5を重畳表示する。なお、枠の線種は、点線、実線、破線、一点鎖線等を含め任意であり、枠の形状も、矩形、円形、楕円形、多角形を含め任意である。
また、距離画像合成手段14は、枠RF1〜RF5のそれぞれに対応する距離情報を出力画像上に重畳表示させてもよい。具体的には、距離画像合成手段14は、例えば、枠RF1に対応する地物領域EX1を構成する画素の画素値(距離)の最小値、最大値、平均値、中間値等を、枠RF1に対応する距離の代表値として出力画像上に重畳表示させる。なお、距離画像合成手段14は、その代表値が所定値未満の場合に限りその代表値を出力画像上に重畳表示するようにしてもよい。ショベル60に比較的近い地物、すなわち接触の可能性が比較的高い地物をより認識し易くするためである。
また、距離画像合成手段14は、対応する距離情報に応じて枠の色を変化させてもよい。具体的には、距離画像合成手段14は、その距離が大きくなるにつれて、赤色、黄色、緑色、青色というように段階的に或いは無段階に枠の色を変化させる。なお、距離画像合成手段14は、距離が大きくなるにつれて、枠の輝度を段階的に或いは無段階に減少させるようにしてもよい。
上述のような合成後出力画像を見ることによって、ショベル60の操作者は、ショベル60の周囲に存在する地物の位置、及びその地物までの距離をより容易に認識することができる。また、ショベル60の操作者は、操作者から見て死角となる領域に存在する地物の位置、及びその地物までの距離をより容易に認識することができる。
以上の構成により、画像生成装置100は、距離画像センサ6が撮像する入力距離画像に基づいて生成される出力距離画像を、カメラ2が撮像する入力画像に基づいて生成される出力画像上に合成する。そのため、画像生成装置100は、ショベル60の周囲の比較的広い範囲に存在する各地物までの距離を比較的高い分解能で測定することができる。その結果、画像生成装置100は、信頼性の高い合成後出力画像を生成することができる。
また、カメラ2及び距離画像センサ6は、それぞれの撮像範囲がショベル60の周囲を取り囲むように配置される。そのため、画像生成装置100は、ショベル60の周囲を上空から見たときの様子を表す合成後出力画像を生成することができる。その結果、ショベル60の操作者は、ショベル60の周囲に存在する地物の位置、及びその地物までの距離をより容易に認識することができる。
また、画像生成装置100は、処理対象画像に対して施される画像変換処理と同じ画像変換処理を処理対象距離画像に対して施すようにする。そのため、画像生成装置100は、出力画像平面における座標と出力距離画像平面における座標を容易に対応付けることができる。
また、画像生成装置100は、距離画像センサ6からの距離に応じて、すなわち、ショベル60からの距離に応じて、抽出画素又は枠の色を段階的に或いは無段階に変化させる。そのため、ショベル60の操作者は、感覚的に接触の危険の有無を判断することができる。
次に、図19〜図23を参照しながら、画像生成装置100が入力距離画像から所定の条件を満たす画素を抽出して入力距離画像を補正する処理(以下、「画素抽出処理」とする。)について説明する。なお、本実施例では、後方距離画像センサ6Bが撮像する入力距離画像における画素の値は、設置面距離に等しいか、設置面距離より小さいものとする。
図19は、画像生成装置100を搭載するショベル60の部分右側面図である。図19に示す実施例では、ショベル60は、1台のカメラ2(後方カメラ2B)と1台の距離画像センサ6(後方距離画像センサ6B)とを備える。なお、図19の点線で示す領域ZBは、後方距離画像センサ6Bの撮像範囲を示す。
また、図19は、ショベル60の後方に、地面から鉛直上方に伸びる物体P3と地面の隆起部P4とが存在することを示す。さらに、図19は、後方距離画像センサ6Bにより、物体P3までの距離E1aが検出され、且つ、隆起部P4までの距離E2aが検出されたことを示す。
また、図19は、仮に物体P3及び隆起部P4が存在しなかった場合には、後方距離画像センサ6Bが、距離E1a、E2aの代わりに、設置面距離E1、E2を検出していたことを示す。
また、図19は、設置面距離E1と距離E1aとの差(E1−E1a)が距離(以下、「差分距離」とする。)E1bであり、設置面距離E2と距離E2aとの差(E2−E2a)が差分距離E2bであることを示す。
図20は、図19における隆起部P4の拡大図である。図19及び図20に示すように、後方距離画像センサ6Bから見た隆起部P4上の点と距離画像センサ6Bとを結ぶ線分は、設置面との間に角度(以下、「設置面角度」とする。)γ4を形成する。この場合、隆起部P4の設置面からの高さ(以下、「推定高さ」とする。)H1bは、差分距離E2b×sin(γ4)で表される。また、設置面角度は、設置面距離と同様、後方距離画像センサ6Bの設置位置及び設置角度に基づいて、後方距離画像センサ6Bの入力距離画像における画素毎に予め設定される。
また、距離画像センサ6Bが撮像する入力距離画像における画素の値は、地物と距離画像センサ6Bとの間の距離を表す。そのため、入力距離画像における各画素の値と各画素に対応する設置面距離との差である差分距離に、各画素に対応する設置面角度の正弦を乗算することによって、その地物の推定高さを求めることができる。本実施例では、差分距離E2bにsin(γ4)を乗算することによって隆起部P4の推定高さH1bを求めることができる。
ところで、後方距離画像センサ6Bが撮像する入力距離画像における画素の値は、上述のように、地物と後方距離画像センサ6Bとの間の距離を表す。そのため、後方距離画像センサ6Bからの距離に応じて色又は輝度を変化させる処理を入力距離画像に施して出力距離画像を生成する場合、入力距離画像における画素値をそのまま用いると出力距離画像の視認性を損なうおそれがある。具体的には、その出力距離画像は、ショベル60から離れるにつれて段階的に変化する色又は輝度で地面(設置面)を表すこととなり、物体P3及び隆起部P4の存在を分かり難くするおそれがある。
そこで、画像生成装置100の画素抽出手段12は、例えば、後方距離画像センサ6Bの入力距離画像から所定の条件を満たす画素を抽出し、その抽出結果に基づいて入力距離画像を補正する。具体的には、画素抽出手段12は、入力距離画像における各画素のうち、各画素に対応する設置面距離より小さい画素値を有する画素を抽出する。そして、画素抽出手段12は、設置面距離に等しい画素値を有する画素のその画素値を所定値(例えば、最小値としてのゼロである。)で置き換える。一方で、画素抽出手段12は、設置面距離より小さい画素値を有する画素の画素値をそのまま維持する。この場合、設置面距離に等しい画素値は、所定の幅を有する値であってもよい。
また、画素抽出手段12は、入力距離画像における各画素のうち、差分距離が所定距離以上の画素を抽出してもよい。この場合、画素抽出手段12は、差分距離が所定距離未満の画素の画素値を所定値(例えば、最小値としてのゼロである。)で置き換え、差分距離が所定距離以上の画素の画素値をそのまま維持する。例えば、図20に示すように、画素抽出手段12は、差分距離E2bが所定距離E2b1未満であるため、差分距離E2bに対応する画素の画素値をゼロに設定する。なお、所定距離E2b1は、所定高さH1に対応する距離である。或いは、図20に示すように、画素抽出手段12は、設置面高さH1bが所定高さH1未満であると判断し、設置面高さH1bに対応する画素の画素値をゼロに置き換えてもよい。或いは、画素抽出手段12は、設置面距離E2に占める差分距離E2bの比率(以下、「差分比率」とする。)が所定比率未満であると判断し、対応する画素の画素値をゼロに置き換えてもよい。なお、所定距離、所定高さ、所定比率等は、後方距離画像センサ6Bの設置位置及び設置角度に基づいて、後方距離画像センサ6Bの入力距離画像における画素毎又は画素行毎若しくは画素列毎に予め設定される。また、所定高さ、所定比率は、入力距離画像における全ての画素に関して共通であってもよい。
図21は、後方距離画像センサ6Bの出力距離画像の例を示す図である。図21(A)は、画素抽出手段12による抽出を行わずに入力距離画像における全ての画素の画素値をそのまま用いた場合の出力距離画像を示す。図21(B)は、画素抽出手段12により、入力距離画像における各画素のうち、各画素に対応する設置面距離より小さい画素値を有する画素が抽出された場合の出力距離画像を示す。また、図21(C)は、画素抽出手段12により、入力距離画像における各画素のうち、差分距離が所定距離以上となる画素、又は、推定高さが所定高さ以上となる画素が抽出された場合の出力距離画像を示す。
図21(A)に示すように、画素の抽出が行われない場合、出力距離画像は、ショベル60から離れるにつれて段階的に輝度が減少する態様で設置面を表し、物体P3及び隆起部P4の存在を分かり難くする。
一方、図21(B)に示すように、入力距離画像における各画素のうち設置面距離より小さい画素値を有する画素の抽出を行う場合、出力距離画像は、設置面上に存在する地物の視認性を向上させる。具体的には、図21(B)の出力距離画像は、設置面距離に等しい画素値を有する全ての画素の画素値がゼロに置き換えられるため、ショベル60からの距離にかかわらず、設置面の色及び輝度を一様にする。その結果、図21(B)の出力距離画像は、物体P3及び隆起部P4の距離画像を設置面の距離画像から際立たせ、その視認性を向上させることができる。
さらに、図21(C)に示すように、入力距離画像における各画素のうち差分距離が所定距離以上となる画素の抽出を行う場合、出力距離画像は、設置面高さが所定高さ以上の地物の視認性を向上させる。具体的には、図21(C)の出力距離画像は、差分距離が所定距離未満の全ての画素の画素値がゼロに設定されるため、ショベル60からの距離にかかわらず、設置面高さが所定高さ未満の地物(設置面を含む。)の色及び輝度を一様にする。その結果、図21(C)の出力距離画像は、設置面高さH1bが所定高さH1未満である隆起部P4の距離画像を設置面の距離画像とともに単一の色及び輝度にする。そして、図21(C)の出力距離画像は、設置面高さが所定高さH1以上である物体P3の距離画像のみを他の距離画像から際立たせ、その視認性を向上させることができる。
なお、図21(C)の出力距離画像は、物体P3の付け根部分(設置面高さが所定高さH1未満の部分)に対応する画素の画素値をゼロにしてその部分の距離画像を設置面の距離画像とともに単一の色及び輝度にする。しかしながら、物体P3の一部であると判断される部分に対応する画素は、差分距離が所定距離未満であっても、或いは、設置面高さが所定高さH1未満であっても、入力距離画像における画素値をそのまま維持してもよい。なお、特定の画素が物体P3の距離画像の一部に属するか否かは、例えば、周囲の画素に関する差分距離又は設置面高さとその特定の画素に関する差分距離又は設置面高さとに基づいて判断され得る。
図22は、後方カメラ2Bの出力画像の例を示す図である。図22(A)は、図21(A)の出力距離画像を重畳させた場合の出力画像を示す。図22(B)は、図21(B)の出力距離画像を重畳させた場合の出力画像を示す。また、図22(C)は、図21(C)の出力距離画像を重畳させた場合の出力画像を示す。
図22(A)に示すように、図21(A)の出力距離画像を重畳した出力画像は、ショベル60から離れるにつれて段階的に輝度が減少する態様で設置面を表し、物体P3及び隆起部P4の存在を際立たせることができない。
一方、図22(B)に示すように、ショベル60からの距離にかかわらず設置面の色及び輝度を一様にした出力距離画像を重畳した出力画像は、物体P3及び隆起部P4の画像を設置面の画像から際立たせ、その視認性を向上させる。また、図22(B)の出力画像は、物体P3及び隆起部P4のそれぞれと後方距離画像センサ6Bとの間の距離の値を重畳表示する。これにより、物体P3及び隆起部P4の存在をさらに際立たせることができる。なお、物体P3と後方距離画像センサ6Bとの間の距離の値には、例えば、距離補正手段13によって補正された値が採用される。また、物体P3と後方距離画像センサ6Bとの間の距離の値は、所定値以下の場合に限り、重畳表示されるようにしてもよい。ショベル60に近いところにある地物の存在をさらに際立たせるためである。また、その距離(画素値)の値の輝度又は色は、その距離(画素値)の大きさに応じて決定される。例えば、その距離(画素値)の値の色は、その距離(画素値)が小さくなるにつれて、紫、青、緑、黄、赤のように変化する。また、その距離の値は、画素抽出手段12が抽出した、入力距離画像における物体P3の距離画像領域に含まれる画素の画素値のうちの最小値であってもよい。隆起部P4と後方距離画像センサ6Bとの間の距離の値についても同様である。
さらに、図22(C)に示すように、ショベル60からの距離にかかわらず設置面高さが所定高さ未満の地物(設置面を含む。)の色及び輝度を一様にした出力距離画像を重畳した出力画像は、物体P3の視認性を向上させる。具体的には、その出力画像は、設置面高さが所定高さ以上である物体P3の画像の上部のみを他の画像から際立たせ、その視認性を向上させる。また、図22(C)の出力画像は、設置面高さが所定高さ以上である物体P3と後方距離画像センサ6Bとの間の距離の値のみを重畳表示する。これにより、設置面高さが所定高さ以上である物体P3の存在のみをさらに際立たせることができる。
また、上述において、画像生成装置100は、後方距離画像センサ6Bの出力距離画像を後方カメラ2の出力画像に重畳させて表示部5に表示する。しかしながら、画像生成装置100は、出力距離画像のみを表示部5に表示させてもよく、出力距離画像と出力画像とを並べて表示部5に表示させてもよい。
また、画像生成装置100は、物体P3及び隆起部P4のそれぞれと後方距離画像センサ6Bとの間の距離の値を表示する代わりに、或いは、その距離の値の表示に加えて、図18に示すような枠を表示してもよい。
また、画像生成装置100は、距離(画素値)と色又は輝度との関係を表す距離目盛り付きの棒状インジケータ等の指標(図示せず。)を出力距離画像又は出力画像の端部に表示してもよい。
次に、図23を参照しながら、画素抽出処理の流れについて説明する。なお、図23は、画素抽出処理の流れを示すフローチャートである。画像生成装置100の画素抽出手段12は、例えば、入力距離画像を取得する度にこの画素抽出処理を実行する。
最初に、画素抽出手段12は、入力距離画像における1つの画素(以下、「対象画素」とする。)に関する設置面距離をROM等から読み出して取得する(ステップS11)。なお、画素抽出手段12は、設置面角度をROM等から読み出して取得してもよい。
その後、画素抽出手段12は、設置面距離からその対象画素の画素値を減算することによって差分距離を算出する(ステップS12)。なお、画素抽出手段12は、算出した差分距離と設置面距離とに基づいて差分比率を算出してもよく、算出した差分距離と設置面角度とに基づいて推定高さを算出してもよい。
その後、画素抽出手段12は、算出した差分距離とROM等に記憶された所定距離とを比較する(ステップS13)。なお、画素抽出手段12は、算出した差分比率とROM等に記憶された所定比率とを比較してもよく、算出した推定高さとROM等に記憶された所定高さとを比較してもよい。
差分距離が所定距離以上の場合(ステップS13のYES)、画素抽出手段12は、現在の画素値をそのまま維持する画素としてその対象画素を抽出する。差分比率が所定比率以上の場合、或いは、推定高さが所定高さ以上の場合についても同様である。
一方、差分距離が所定距離未満の場合(ステップS13のNO)、画素抽出手段12は、現在の画素値をそのまま維持する画素としてその対象画素を抽出しない。具体的には、画素抽出手段12は、その対象画素の画素値をROM等に記憶された所定値で置き換える(ステップS14)。差分比率が所定比率未満の場合、或いは、推定高さが所定高さ未満の場合についても同様である。
なお、上述の実施例では、抽出しなかった対象画素の画素値を所定値に置き換える処理は、各対象画素について抽出の要否を判断したときに行われるが、複数の或いは全ての対象画素について抽出の要否を判断した後で一括して行われてもよい。
その後、画素抽出手段12は、取得した入力距離画像における全ての画素について抽出要否の判断を行ったか否かを判定する(ステップS15)。
未だ全ての画素について抽出要否の判断を行っていないと判定した場合(ステップS15のNO)、画素抽出手段12は、別の対象画素に関してステップS11以降の処理を実行する。
全ての画素について抽出要否の判断を行ったと判定した場合(ステップS15のYES)、画素抽出手段12は、今回の画素抽出処理を完了する。
以上の構成により、画像生成装置100は、設置面に関する距離画像の詳細表示を省略することで、ショベル60が接触するおそれのある地物に関する距離画像の視認性を向上させることができる。
また、画像生成装置100は、設置面高さが所定高さ未満の地物の詳細表示を省略することで、設置面高さが所定高さ以上の地物(例えば、作業員)の視認性を向上させることができる。
その結果、画像生成装置100は、ショベル60が地物に衝突するのをより確実に防止することができる。
次に、図24を参照しながら、運転支援手段15が運転支援機能を実行する処理(以下、「運転支援処理」とする。)について説明する。なお、図24は、運転支援処理の流れを示すフローチャートであり、運転支援手段15は、ショベル60の作動中に所定周期で繰り返しこの運転支援処理を実行する。
最初に、運転支援手段15は、ショベル60の操作レバー(図示せず。)の操作方向に基づいてショベル60の作動方向(移動方向、旋回方向、及び掘削アタッチメントEの動作方向等)を検出する(ステップS31)。
その後、運転支援手段15は、ショベル60の作動方向に所定の地物が存在するか否かを判定する(ステップS32)。本実施例では、運転支援手段15は、例えば、ショベル60が後方に移動していることを検出した場合、後方距離画像センサ6Bが取得した入力距離画像に基づいて、後退するショベル60の後方に、障害物が存在するか否かを判定する。
障害物が存在すると判定した場合(ステップS32のYES)、運転支援手段15は、運転支援機能を実行する(ステップS33)。本実施例では、運転支援手段15は、警報を吹鳴させるとともに、障害物が存在する旨を通知する警告メッセージを表示部5に表示する。また、運転支援手段15は、障害物までの距離が短くなるにつれてショベル60の後退速度を低減させてもよく、障害物までの距離が所定値を下回った場合にショベル60を停止させてもよい。なお、運転支援手段15は、ショベル60が旋回していることを検出した場合、或いは、掘削アタッチメントEが動作していることを検出した場合も同様に、障害物までの距離が短くなるにつれてショベル60の旋回速度又は掘削アタッチメントEの動作速度を低減させてもよく、障害物までの距離が所定値を下回った場合にショベル60の旋回又は掘削アタッチメントEの動作を停止させてもよい。また、運転支援手段15は、走行、旋回、及び掘削アタッチメントEの動作の2つ以上が同時に行われる場合には、それらの制限を個別に実行してもよく、それらの制限を組み合わせて実行してもよい。
一方、障害物が存在しないと判定した場合(ステップS32のNO)、運転支援手段15は、運転支援機能を実行することなく、今回の運転支援処理を終了させる。
以上の構成により、画像生成装置100は、距離画像センサ6の出力に基づいて所定の地物の存否を自動的に判定し、必要に応じて運転支援機能を実行することで、ショベル60の操作の安全性をさらに向上できる。
次に、図25〜図28を参照しながら、画像生成装置100が入力距離画像の画素値(距離)を補正する処理(以下、「距離補正処理」とする。)について説明する。
図25は、画像生成装置100を搭載するショベル60を示す図であり、図25(A)がその上面図であり、図25(B)がその部分右側面図である。図25に示す実施例では、ショベル60は、1台のカメラ2(後方カメラ2B)と1台の距離画像センサ6(後方距離画像センサ6B)とを備える。なお、図25の一点鎖線で示す領域CBは、後方カメラ2Bの撮像範囲を示す。また、図25の点線で示す領域ZBは、後方距離画像センサ6Bの撮像範囲を示す。
図25に示すように、ショベル60の後方には、地面から鉛直上方に伸びる2つの物体P1、P2が存在する。2つの物体P1、P2は、高さの異なる棒状の物体であり、後方距離画像センサ6Bから見て異なる方向に存在する。具体的には、図25(B)で示すように、物体P1の高さは、物体P2の高さよりも低い。しかしながら、2つの物体P1、P2のそれぞれと後方距離画像センサ6Bとの間の最短距離は、何れも距離Dで等しいものとなっている。低いほうの物体P1が、高いほうの物体P2よりもショベル60に近いところに存在するためである。
また、図25(B)に示すように、距離画像センサ6Bから見た物体P1上の最も近い点と距離画像センサ6Bとを結ぶ線分は、水平面との間に角度γ1を形成する。同様に、距離画像センサ6Bから見た物体P2上の最も近い点と距離画像センサ6Bとを結ぶ線分は、水平面との間に角度γ2を形成する。この場合、物体P1とショベル60の後面を含む平面との間の水平距離D1は、D×cos(γ1)で表され、物体P2とショベル60の後面を含む平面との間の水平距離D2は、D×cos(γ2)で表される。なお、水平距離D2は、水平距離D1より大きい。
距離画像センサ6Bが撮像する入力距離画像における画素の値は、地物と距離画像センサ6Bとの間の距離を表す。そのため、入力距離画像における画素値をそのまま用いた場合、距離画像センサ6Bからの距離に応じて表示色又は輝度を変化させる処理では、物体P1の頂部と物体P2の頂部が同じ色又は同じ輝度で表示されることとなる。この表示は、上述のように物体P2に比べ物体P1がショベル60により近いところにある場合であっても、物体P1及び物体P2がショベル60の後面から同じ距離に存在するものと操作者に誤認させるおそれがある。
このような状況が生じるのは、後方距離画像センサ6Bが、上部旋回体63の上部に取り付けられた状態で斜め下方を撮像することに起因する。すなわち、操作者が認識する距離がショベル60からの水平距離であるのに対し、距離画像センサ6が取得する距離は、距離画像センサ6からの直線距離であることに起因する。なお、距離画像センサ6Bの取り付け位置は、周囲の地物との接触からセンサを保護できるよう、上部旋回体63の上部とされている。
そこで、画像生成装置100の距離補正手段13は、例えば、物体P1、P2のそれぞれと距離画像センサ6Bとの間の距離を表す画素値を、物体P1、P2のそれぞれとショベル60の後面を含む平面との間の水平距離を表す画素値に補正する。
具体的には、距離補正手段13は、距離画像センサ6Bから見た物体P1上の任意の点に対応する入力距離画像における画素の座標から、距離画像センサ6Bと物体P1上の任意の点とを結ぶ線分が水平面との間に形成する角度γを導き出す。距離画像センサ6Bの取り付け位置、取り付け角度が既知であるため、距離補正手段13は、その画素の座標から角度γを導き出すことができる。
その後、距離補正手段13は、その地物上の任意の点に対応する画素の座標から導き出した角度γの余弦cos(γ)に、その画素の画素値、すなわち、距離画像センサ6Bと物体P1上の任意の点との間の距離を乗じる。このようにして、距離補正手段13は、距離画像センサ6Bと物体P1上の任意の点との間の水平距離を算出し、その任意の点に対応する画素の画素値を、算出した水平距離で置き換える。
同様に、距離補正手段13は、距離画像センサ6Bと物体P2上の任意の点とを結ぶ線分が水平面との間に形成する角度γを導き出す。そして、角度γの余弦cos(γ)に、その画素値、すなわち、距離画像センサ6Bと物体P2上の任意の点との間の距離を乗じる。そして、距離画像センサ6Bと物体P2上の任意の点との間の水平距離を算出し、その任意の点に対応する画素の画素値を、算出した水平距離で置き換える。
ここで、図26及び図27を参照しながら、距離補正手段13による補正の効果について説明する。
図26は、距離補正処理が施されていない入力距離画像に基づく出力距離画像(以下、「補正前出力距離画像」とする。)と、距離補正処理が施された入力距離画像に基づく出力距離画像(以下、「補正済出力距離画像」とする。)との違いを表す対比図であり、図26(A)が補正前出力距離画像を示し、図26(B)が補正済出力距離画像を示す。なお、本実施例では、入力距離画像に対して画素抽出処理が既に施されている。
また、図27は、カメラ2Bの入力画像に基づいて生成される出力画像に補正前出力距離画像を合成した合成後出力画像(以下、「補正前合成後出力画像」とする。)と、その出力画像に補正済出力距離画像を合成した合成後出力画像(以下、「補正済合成後出力画像」とする。)との違いを表す対比図であり、図27(A)が補正前合成後出力画像を示し、図27(B)が補正済合成後出力画像を示す。
図26(A)及び図27(A)に示すように、補正前出力距離画像及び補正前合成後出力画像では、物体P1と物体P2が同じような配色で表される。具体的には、物体P1及び物体P2は何れも、頂部に近いほど白く(薄く)、底部近いほど黒く(濃く)表示される。そのため、操作者は、何れの物体がショベル60により近いのかを判断し難い。
これに対し、図26(B)及び図27(B)に示すように、補正済出力距離画像及び補正済合成後出力画像では、物体P1と物体P2が異なる色で表される。具体的には、物体P1が全体的に薄く表示され、物体P2が全体的に濃く表示される。そのため、操作者は、物体P2よりも物体P1のほうがショベル60により近い位置にあることを容易に認識することができる。
図28は、補正前合成後出力画像と補正済合成後出力画像との違いを表す対比図の別の例であり、枠が重畳表示される場合の例を示す。
図28(A)に示すように、補正前合成後出力画像では、地物領域に含まれる画素の画素値の最小値がその地物領域の代表値として採用された場合、物体P1と物体P2が何れもショベル60から1メートルの距離にあるものとして表示される。
これに対し、図28(B)に示すように、補正済合成後出力画像では、物体P1、P2のそれぞれとショベル60の後面を含む平面との間の水平距離D1、D2が表示される。すなわち、物体P1がショベル60の後面から1メートルの距離にあり、物体P2がショベル60の後面から1.5メートルの距離にあることが表示される。そのため、操作者は、物体P2よりも物体P1のほうがショベル60により近い位置にあることを容易に認識することができる。
以上の構成により、画像生成装置100は、距離画像センサ6が撮像する入力距離画像における画素値がショベル60からの水平距離を表すように画素値を補正する。その結果、画像生成装置100は、周囲の地物の状況をより分かり易く操作者に伝えることができる。
また、上述の実施例では、距離補正手段13は、画素抽出手段12が抽出した画素の画素値を個別に補正する。しかしながら、本発明はこれに限定されるものではない。例えば、距離補正手段13は、上述のように余弦を用いて水平距離を算出することなく、入力距離画像平面における画素行毎、画素列毎、又は予め区分された領域毎に所定の補正を纏めて行うようにしてもよい。演算負荷を抑制しながら、簡易な補正により、余弦を用いて水平距離を算出する場合と同様の効果を得るためである。具体的には、距離補正手段13は、例えば、入力距離画像平面の上方にある画素行ほど距離の増大補正が大きくなるように、或いは、入力距離画像平面の下方にある画素行ほど距離の減少補正が大きくなるように、所定の補正量による補正を一括して実行するようにしてもよい。
また、上述の実施例では、距離補正手段13は、距離画像センサ6Bが上部旋回体63の後面上部に取り付けられて斜め下方を撮像する場合の補正を実行する。しかしながら、本発明はこれに限定されるものではない。例えば、距離補正手段13は、距離画像センサが水平方向を撮像する場合の補正を実行してもよく、距離画像センサが斜め上方を撮像する場合の補正を実行してもよい。
また、上述の実施例では、距離補正手段13は、ショベル60の後面を含む平面を基準とし、地物領域に含まれる画素の画素値を、その地物とショベル60の後面を含む平面との間の水平距離を表す画素値に補正する。しかしながら、本発明はこれに限定されることはない。例えば、距離補正手段13は、ショベル60の旋回軸PVを基準とし、地物領域に含まれる画素の画素値を、その地物とショベル60の旋回軸PVとの間の水平距離を表す画素値に補正してもよい。
また、距離補正手段13は、地物領域に含まれる画素の画素値を、その地物とショベル60との間の最短水平距離を表す画素値に補正してもよい。この場合、距離補正手段13は、その地物の実在位置に応じて、ショベル60の右側面を含む平面、ショベル60の左側面を含む平面、ショベル60の後面を含む平面等から基準を選択する。
なお、最短水平距離は、ショベル60の移動方向、すなわち、下部走行体61の前後方向に平行な方向における最短水平距離であってもよい。この場合、ショベル60の移動方向にない地物に関する画素の値は、その地物がショベル60の近くにあったとしても、最大値(無限遠)に補正される。その結果、操作者は、ショベル60の移動方向にある地物をより容易に認識することができる。
以上、本発明の好ましい実施例について詳説したが、本発明は、上述した実施例に制限されることはなく、本発明の範囲を逸脱することなしに上述した実施例に種々の変形及び置換を加えることができる。
例えば、上述の実施例において、画像生成装置100は、空間モデルとして円筒状の空間モデルMDを採用するが、多角柱等の他の柱状の形状を有する空間モデルを採用してもよく、底面及び側面の二面から構成される空間モデルを採用してもよく、或いは、側面のみを有する空間モデルを採用してもよい。
また、画像生成装置100は、バケット、アーム、ブーム、旋回機構等の可動部材を備えながら自走するショベルに、カメラ及び距離画像センサと共に搭載され、周囲画像をその操作者に提示しながらそのショベルの移動及びそれら可動部材の操作を支援する操作支援システムを構成する。しかしながら、画像生成装置100は、フォークリフト、アスファルトフィニッシャ等のように旋回機構を有しない作業機械、又は、産業用機械若しくは固定式クレーン等のように可動部材を有するが自走はしない作業機械に、カメラ及び距離画像センサと共に搭載され、それら作業機械の操作を支援する操作支援システムを構成してもよい。
また、上述の実施例において、距離画像合成手段14は、出力距離画像を生成した上で、生成した出力距離画像を出力画像に合成する。しかしながら、本発明はこれに限定されるものではない。距離画像合成手段14は、例えば、入力画像と入力距離画像とを合成して合成後入力画像を生成し、距離画像に関する情報が重畳表示された合成後処理対象画像を生成した上で、合成後出力画像を生成してもよい。また、距離画像合成手段14は、例えば、処理対象画像と処理対象距離画像とを合成して合成後処理対象画像を生成した上で、合成後出力画像を生成してもよい。