以下、図面を参照しつつ、本発明を実施するための最良の形態の説明を行う。
図1は、本発明に係る画像生成装置の構成例100を概略的に示すブロック図である。
画像生成装置100は、例えば、建設機械に搭載されたカメラ2が撮影した入力画像に基づいて出力画像を生成しその出力画像を運転者に提示する装置であって、制御部1、カメラ2、入力部3、記憶部4、及び表示部5で構成される。
図2は、画像生成装置100が搭載されるショベル60の構成例を示す図であり、ショベル60は、クローラ式の下部走行体61の上に、旋回機構62を介して、上部旋回体63を旋回軸PVの周りで旋回自在に搭載している。
また、上部旋回体63は、その前方左側部にキャブ(運転室)64を備え、その前方中央部に掘削アタッチメントEを備え、その右側面、左側面、及び後面にカメラ2(右側方カメラ2R、左側方カメラ2L、後方カメラ2B)を備えている。なお、キャブ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のそれぞれに対応するプログラムをROMやNVRAMに記憶し、一時記憶領域としてRAMを利用しながら各手段に対応する処理をCPUに実行させる。
カメラ2は、ショベル60の周辺を映し出す入力画像を取得するための装置であり、例えば、キャブ64にいる運転者の死角となる領域を撮影できるよう上部旋回体63の右側面、左側面、及び後面に取り付けられる(図2参照。)、CCD(Charge Coupled Device)やCMOS(Complementary Metal Oxide Semiconductor)等の撮像素子を備えた右側方カメラ2R、左側方カメラ2L、及び後方カメラ2Bである。なお、カメラ2は、上部旋回体63の右側面、左側面、及び後面以外の位置(例えば、前面である。)に取り付けられていてもよく、広い範囲を撮影できるよう広角レンズ又は魚眼レンズが装着されていてもよい。
また、カメラ2は、制御部1からの制御信号に応じて入力画像を取得し、取得した入力画像を制御部1に対して出力する。なお、カメラ2は、魚眼レンズ又は広角レンズを用いて入力画像を取得した場合には、それらレンズを用いることによって生じる見掛け上の歪曲やアオリを補正した補正済みの入力画像を制御部1に対して出力するが、その見掛け上の歪曲やアオリを補正していない入力画像をそのまま制御部1に対して出力してもよい。その場合には、制御部1がその見掛け上の歪曲やアオリを補正することとなる。
入力部3は、操作者が画像生成装置100に対して各種情報を入力できるようにするための装置であり、例えば、タッチパネル、ボタンスイッチ、ポインティングデバイス、キーボード等である。
記憶部4は、各種情報を記憶するための装置であり、例えば、ハードディスク、光学ディスク、又は半導体メモリ等である。
表示部5は、画像情報を表示するための装置であり、例えば、建設機械のキャブ64(図2参照。)内に設置された液晶ディスプレイ又はプロジェクタ等であって、制御部1が出力する各種画像を表示する。
また、画像生成装置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への記憶を省略する。
出力画像生成手段11は、出力画像を生成するための手段であり、例えば、処理対象画像にスケール変換、アフィン変換、又は歪曲変換を施すことによって、処理対象画像平面R3上の座標と出力画像が位置する出力画像平面上の座標とを対応付け、その対応関係を記憶部4の処理対象画像・出力画像対応マップ42に記憶し、座標対応付け手段10がその値を記憶した入力画像・空間モデル対応マップ40及び空間モデル・処理対象画像対応マップ41を参照しながら、出力画像における各画素の値(例えば、輝度値、色相値、彩度値等である。)と入力画像における各画素の値とを関連付けて出力画像を生成する。
また、出力画像生成手段11は、予め設定された、或いは、入力部3を介して入力される、仮想カメラの光学中心、焦点距離、CCDサイズ、光軸方向ベクトル、カメラ水平方向ベクトル、射影方式等の各種パラメータに基づいて、処理対象画像平面R3上の座標と出力画像が位置する出力画像平面上の座標とを対応付け、その対応関係を記憶部4の処理対象画像・出力画像対応マップ42に記憶し、座標対応付け手段10がその値を記憶した入力画像・空間モデル対応マップ40及び空間モデル・処理対象画像対応マップ41を参照しながら、出力画像における各画素の値(例えば、輝度値、色相値、彩度値等である。)と入力画像における各画素の値とを関連付けて出力画像を生成する。
なお、出力画像生成手段11は、仮想カメラの概念を用いることなく、処理対象画像のスケールを変更して出力画像を生成するようにしてもよい。
また、出力画像生成手段11は、処理対象画像を生成しない場合には、施した画像変換処理に応じて空間モデルMD上の座標と出力画像平面上の座標とを対応付け、入力画像・空間モデル対応マップ40を参照しながら、出力画像における各画素の値(例えば、輝度値、色相値、彩度値等である。)と入力画像における各画素の値とを関連付けて出力画像を生成する。この場合、出力画像生成手段11は、処理対象画像平面R3上の座標と出力画像平面上の座標との対応付け、及び、その対応関係の処理対象画像・出力画像対応マップ42への記憶を省略する。
旋回時画像制御手段12は、上部旋回体63の旋回時における出力画像の表示部5への表示態様を制御する手段である。なお、旋回時画像制御手段12の詳細については後述する。
次に、座標対応付け手段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及び図10を参照しながら、空間モデルMDに投影された画像から直接的に出力画像を生成する場合と、空間モデルMDに投影された画像を処理対象画像に再投影しその再投影された処理対象画像から出力画像を生成する場合との違いを説明する。
図9(A)は、XZ平面上に位置する平行線群PLと処理対象画像平面R3との間で角度βが形成される場合の図であり、図9(B)は、XZ平面上に位置する平行線群PLと処理対象画像平面R3との間で角度β2(β2<β)が形成される場合の図である。また、図9(A)における空間モデルMDの平面領域R1及び曲面領域R2、処理対象画像平面R3、並びに、通常射影(h=ftanα)を採用する仮想カメラ2Vの出力画像平面R5及び光学中心CVの位置と、図9(B)のそれぞれとは、共通するものとする。
また、図9(A)及び図9(B)において、平面領域R1を含む処理対象画像平面R3上の座標M1は、出力画像平面R5上の座標N1に対応し、曲面領域R2上の座標L2は、処理対象画像平面R3上の座標M2、及び出力画像平面R5上の座標N2に対応し、距離D1(D3)は、出力画像平面R5の中心点(仮想カメラ2Vの光軸GVとの交点)と座標N1との間のX軸上の距離を示し、距離D2(D4)は、出力画像平面R5の中心点と座標N2との間のX軸上の距離を示す。
図9(A)及び図9(B)で示されるように、平行線群PLと処理対象画像平面R3との間の角度がβのときの距離D2(図9(A)参照。)は、その角度が減少するにつれて増大し、その角度がβ2のときに距離D4(図9(B)参照。)となるが、その角度がβのときの距離D1(図9(A)参照。)は、その角度の変化にかかわらず一定であり、その角度がβ2のときの距離D3(図9(B)参照。)に等しい。
このように距離D2が距離D4に変化すること、及び、距離D1(D3)が不変であることは、図7及び図8で説明した作用と同様に、出力画像平面R5上の画像部分のうち、空間モデルMDの曲面領域R2に投影された画像に対応する画像部分(例えば、水平画像である。)のみが拡大或いは縮小されることを意味する。
なお、空間モデルMDに投影された画像に基づいて直接的に出力画像を生成した場合には、空間モデルMDの平面領域R1と曲面領域R2とを別々に取り扱うことができないため(別々に拡大縮小処理の対象とすることができないため)、曲面領域R2に投影された画像に対応する出力画像平面R5上の画像部分のみを拡大或いは縮小することができないこととなる。
図10は、XZ平面上に位置する平行線群PLと処理対象画像平面R3との間で角度βが形成される場合の図であり、通常射影(h=ftanα)を採用する仮想カメラ2Vの光学中心CVを空間モデルMDの外側(光学中心CVのX座標の値を平面領域R1の半径よりも大きくした状態をいう。)に移動させたときの状態を示す。
図10で示されるように、出力画像生成手段11は、処理対象画像平面R3(平面領域R1)上の座標M1と出力画像平面R5上の座標N1とを、線分M1−N1が光学中心CVを通るように対応付け、また、曲面領域R2上の座標L2に対応する処理対象画像平面R3上の座標M2と出力画像平面R5上の座標N2とを、線分M2−N2が光学中心CVを通るように対応付けるので、空間モデルMDの曲面領域R2に投影された画像から直接的に出力画像を生成する場合のように、円筒の側壁外面を見ることとなって適切な出力画像を生成できないという問題(空間モデルMD上の座標と出力画像平面R5上の座標とを対応付けることができないという問題)を引き起こすことなく、適切な出力画像を生成することができる。
なお、図9及び図10は、通常射影を採用する仮想カメラ2Vに関する説明であるが、通常射影以外の射影方式(例えば、正射影、立体射影、等立体角射影、等距離射影等である。)を採用する仮想カメラ2Vについても同様の説明が適用され、その場合、出力画像生成手段11は、処理対象画像平面R3(平面領域R1)上の座標M1と出力画像平面R5上の座標N1とを、線分M1−N1が光学中心CVを通るように(関数h=ftanαに従って)対応付ける代わりに、それぞれの射影方式に対応する関数(例えば、正射影(h=fsinα)、立体射影(h=2ftan(α/2))、等立体角射影(h=2fsin(α/2))、等距離射影(h=fα)等である。)に従って出力画像平面R5上の座標と処理対象画像平面R3上の座標とを対応付ける。この場合、線分M1−N1が仮想カメラ2Vの光学中心CVを通過することはない。
次に、図11を参照しながら、画像生成装置100が処理対象画像を生成する処理(以下、「処理対象画像生成処理」とする。)、及び、生成した処理対象画像を用いて出力画像を生成する処理(以下、「出力画像生成処理」とする。)について説明する。なお、図11は、処理対象画像生成処理(ステップ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は、建設機械と周辺障害物との位置関係を操作者に直感的に把握させることが可能な処理対象画像及び出力画像を生成することができる。
また、画像生成装置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の内容を書き換えることなく、所望の視点から見た出力画像(視点変換画像)を生成することができる。
次に、図12〜図14を参照しながら、カメラ2と空間モデルMDとの間の位置関係について説明する。なお、図12〜図14では、説明の便宜上、右側方カメラ2R及び後方カメラ2Bの2つのカメラと空間モデルMDとの間の位置関係を説明するが、左側方カメラ2Lを加えた3つのカメラが存在する場合や4つ以上のカメラが存在する場合にも同様の説明が適用される。
図12(A)は、図3(B)と同様に、ショベル60を上方から見たときのカメラ2と空間モデルMDとの間の位置関係を示す図であり、図12(B)は、図4と同様に、空間モデルMDを斜め上方から見たときのカメラ2と空間モデルMDとの間の位置関係を示す図であり、図12(C)は、画像生成装置100が生成する処理対象画像を示す図である。
また、図12(B)で最も分かり易く示されるように、円筒状の空間モデルMDの円筒中心軸は、再投影軸及びショベル60の旋回軸PV(Z軸)に一致するものとし、Y軸上には、Z軸方向に平行に延びる棒状の物体OBJが存在するものとする。
図12(B)において、後方カメラ2Bの光軸G1及び右側方カメラ2Rの光軸G2はそれぞれ、空間モデルMDの平面領域R1及び処理対象画像平面R3が位置する平面(XY平面)と交差し、また、光軸G1と光軸G2とは、円筒中心軸(再投影軸)上の点J1で交差するものとする。なお、光軸G1と光軸G2とは、XY平面に平行な一平面に投影されたときの成分のそれぞれが円筒中心軸(再投影軸)上の点で交差するものであれば、ねじれの位置の関係にあってもよい。
また、後方カメラ2Bの光学中心から円筒中心軸(再投影軸)に下ろした垂線は、右側方カメラ2Rの光学中心から円筒中心軸(再投影軸)に下ろした垂線と互いに垂直な関係にあるものとする。なお、本実施例では、それら二つの垂線は、平面領域R1及び処理対象画像平面R3が位置する平面と平行な一平面上に存在しながら点J2で直交しているが、それぞれ別の平面上に位置し、ねじれの位置の関係にあるものであってもよい。
図12(A)及び図12(B)で示されたカメラ2と空間モデルMDとの間の位置関係により、画像生成装置100は、図12(C)で示されるように、Y軸上においてZ軸方向に平行に延びる棒状の物体OBJが、平面領域R1に投影された画像に対応する路面画像部分でY軸方向に平行な方向(右側方カメラ2Rの光学中心と物体OBJ上の点とを通る直線の方向)に延在し、且つ、曲面領域R2に投影された画像に対応する水平画像部分で同じくY軸方向に平行な方向(再投影軸上の点(平行線群PL又は補助線群ALの始点)と物体OBJ上の点とを通る直線の方向)に延在するよう(すなわち、路面画像部分と水平画像部分との間の境界で折れ曲がることなく)、処理対象画像を生成することができる。
図13(A)〜(C)は、図12(A)〜(C)と同様の図であり、円筒状の空間モデルMDの円筒中心軸は、再投影軸及びショベル60の旋回軸PV(Z軸)に一致するものとし、Y軸上には、Z軸方向に平行に延びる棒状の物体OBJが存在し、更に、右側方カメラ2Rの光軸G2の方向にも、XY平面からZ軸方向に平行に延びる棒状の物体OBJ1が存在するものとする。
図13(B)において、後方カメラ2Bの光軸G1及び右側方カメラ2Rの光軸G2はそれぞれ、図12の位置関係と同様、空間モデルMDの平面領域R1及び処理対象画像平面R3が位置する平面(XY平面)と交差し、また、光軸G1と光軸G2とは、円筒中心軸(再投影軸)上の点J1で交差するものとする。なお、光軸G1と光軸G2とは、XY平面に平行な一平面に投影されたときの成分のそれぞれが円筒中心軸(再投影軸)上の点で交差するものであれば、ねじれの位置の関係にあってもよい。
一方、後方カメラ2Bの光学中心から円筒中心軸(再投影軸)に下ろした垂線は、右側方カメラ2Rの光学中心から円筒中心軸(再投影軸)に下ろした垂線と互いに垂直な関係とはならず、後方カメラ2Bの光学中心から円筒中心軸(再投影軸)に下ろした垂線が、右側方カメラ2Rの光学中心からその垂線に下ろした垂線と円筒中心軸(再投影軸)上にない点J2で直交するものとする。なお、本実施例では、後方カメラ2B及び右側方カメラ2Rの光学中心は、平面領域R1及び処理対象画像平面R3が位置する平面と平行な一平面上に存在しているが、それぞれ別の平面上に位置し、互いの垂線がねじれの位置の関係にあるものであってもよい。
図13(A)及び図13(B)で示されたカメラ2と空間モデルMDとの間の位置関係により、画像生成装置100は、図13(C)で示されるように、Y軸上においてZ軸方向に平行に延びる棒状の物体OBJが、平面領域R1に投影された画像に対応する路面画像部分でY軸方向から僅かに離れる方向(右側方カメラ2Rの光学中心と物体OBJ上の点とを通る直線の方向)に延在し、且つ、曲面領域R2に投影された画像に対応する水平画像部分でY軸方向に平行な方向(再投影軸上の点(平行線群PL又は補助線群ALの始点)と物体OBJ上の点とを通る直線の方向)に延在するよう(すなわち、路面画像部分と水平画像部分との間の境界で僅かに折れ曲がって)、処理対象画像を生成することとなる。
一方で、画像生成装置100は、図13(C)で示されるように、右側方カメラ2Rの光軸G2の方向にあるZ軸方向に平行に延びる棒状の物体OBJ1が、平面領域R1に投影された画像に対応する路面画像部分で光軸G2方向に平行な方向(右側方カメラ2Rの光学中心と物体OBJ上の点とを通る直線の方向)に延在し、且つ、曲面領域R2に投影された画像に対応する水平画像部分で同じく光軸G2方向に平行な方向(再投影軸上の点(平行線群PL又は補助線群ALの始点)と物体OBJ上の点とを通る直線の方向)に延在するよう(すなわち、路面画像部分と水平画像部分との間の境界で折れ曲がることなく)、処理対象画像を生成することができる。
図14(A)〜(C)は、図12(A)〜(C)と同様の図であり、円筒状の空間モデルMDの円筒中心軸は、再投影軸及びショベル60の旋回軸PV(Z軸)に一致するものとし、Y軸上には、Z軸方向に平行に延びる棒状の物体OBJが存在するものとし、更に、右側方カメラ2Rの光軸G2の方向にも、XY平面からZ軸方向に平行に延びる棒状の物体OBJ2が存在するものとする。
図14(B)において、後方カメラ2Bの光軸G1及び右側方カメラ2Rの光軸G2はそれぞれ、図12の位置関係と同様、空間モデルMDの平面領域R1及び処理対象画像平面R3が位置する平面(XY平面)と交差し、後方カメラ2Bの光学中心から円筒中心軸(再投影軸)に下ろした垂線は、右側方カメラ2Rの光学中心から円筒中心軸(再投影軸)に下ろした垂線と互いに垂直な関係であるものとする。なお、本実施例では、後方カメラ2B及び右側方カメラ2Rの光学中心は、平面領域R1及び処理対象画像平面R3が位置する平面と平行な一平面上に存在するが、それぞれ別の平面上に位置し、互いの垂線がねじれの位置の関係にあるものであってもよい。
一方、光軸G1と光軸G2とは、円筒中心軸(再投影軸)上で交差することなく、円筒中心軸(再投影軸)上にない点J1で交差するものとする。なお、光軸G1と光軸G2とは、XY平面に平行な一平面に投影されたときの成分のそれぞれが円筒中心軸(再投影軸)上にない点で交差するものであれば、ねじれの位置の関係にあってもよい。
図14(A)及び図14(B)で示されたカメラ2と空間モデルMDとの間の位置関係により、画像生成装置100は、図14(C)で示されるように、右側方カメラ2Rの光軸G2の方向にあるZ軸方向に平行に延びる棒状の物体OBJ2が、平面領域R1に投影された画像に対応する路面画像部分で光軸G2方向に平行な方向(右側方カメラ2Rの光学中心と物体OBJ上の点とを通る直線の方向)に延在し、且つ、曲面領域R2に投影された画像に対応する水平画像部分でY軸方向にほぼ平行な方向(再投影軸上の点(平行線群PL又は補助線群ALの始点)と物体OBJ2上の点とを通る直線の方向)に延在するよう(すなわち、路面画像部分と水平画像部分との間の境界で僅かに折れ曲がって)、処理対象画像を生成することとなる。
一方、画像生成装置100は、図14(C)で示されるように、Y軸上においてZ軸方向に平行に延びる棒状の物体OBJが、平面領域R1に投影された画像に対応する路面画像部分でY軸方向に平行な方向(右側方カメラ2Rの光学中心と物体OBJ上の点とを通る直線の方向)に延在し、且つ、曲面領域R2に投影された画像に対応する水平画像部分で同じくY軸方向に平行な方向(再投影軸上の点(平行線群PL又は補助線群ALの始点)と物体OBJ上の点とを通る直線の方向)に延在するよう(すなわち、路面画像部分と水平画像部分との間の境界で折れ曲がることなく)、処理対象画像を生成することができる。
このように、画像生成装置100は、空間モデルMDの円筒中心軸(再投影軸)とカメラの光軸とを交差させるようにして空間モデルMDを配置することによって、カメラの光軸方向にある物体が路面画像部分と水平画像部分との間の境界で折れ曲がることがないように、処理対象画像を生成することができる。なお、この利点は、カメラが一台のみの場合にもカメラが三台以上の場合にも当てはまる。
また、画像生成装置100は、後方カメラ2B及び右側方カメラ2Rの光学中心のそれぞれから空間モデルMDの円筒中心軸(再投影軸)に下ろした垂線のそれぞれが互いに垂直となるようにして空間モデルMDを配置することによって、ショベル60の右真横及び真後ろにある物体が路面画像部分と水平画像部分との間の境界で折れ曲がることがないように、処理対象画像を生成することができる。なお、この利点は、カメラが三台以上の場合にも当てはまる。
なお、図12〜図14で示されるカメラ2(右側方カメラ2R、後方カメラ2B)と空間モデルMDとの間の位置関係及び作用効果は、画像生成装置100が処理対象画像を生成する場合に対応するものであるが、画像生成装置100が処理対象画像を生成しない場合(処理対象画像平面R3が存在しない場合)にも当てはまるものであり、この場合、図12(C)、図13(C)、及び図14(C)の処理対象画像は、空間モデルMDに投影された画像を用いて生成される出力画像で読み替えられるものとする。
図15は、ショベル60に搭載された3台のカメラ2(右側方カメラ2R、左側方カメラ2L、及び後方カメラ2B)の入力画像を用いて生成される出力画像を表示部5に表示させたときの表示例であり、画像生成装置100は、入力画像の一部を空間モデルMDの平面領域R1に投影し、且つ、入力画像の別の一部を空間モデルMDの曲面領域R2に投影した上で処理対象画像平面R3に再投影して処理対象画像を生成し、その生成した処理対象画像に基づいて、平面領域R1に投影された画像に対応する、ショベル60の近傍を上空から見下ろす画像と、曲面領域R2に投影された画像に対応する、すなわち、処理対象画像平面R3に再投影された画像に対応する、ショベル60から水平方向に周辺を見た画像とを組み合わせて表示している。
なお、出力画像は、画像生成装置100が処理対象画像を生成しない場合には、空間モデルMDに投影された画像に画像変換処理(例えば、視点変換処理である。)を施すことによって生成されるものとする。
また、出力画像は、ショベル60の周囲の画像を違和感なく表示できるよう、円形にトリミングされ、その円の中心CTRが空間モデルMDの円筒中心軸上で、且つ、ショベル60の旋回軸PV上となるように生成される。この場合、空間モデルMDの円筒中心軸は、再投影軸と一致するものであってもよく、一致しないものであってもよい。
なお、空間モデルMDの半径は、例えば、5メートルであり、平行線群PLが処理対象画像平面R3との間で形成する角度、又は、補助線群ALの始点高さは、ショベル60の旋回中心から掘削アタッチメントEの最大到達距離(例えば12メートルである。)だけ離れた位置に物体(例えば、作業員である。)が存在する場合にその物体が表示部5で十分大きく(例えば、7ミリメートル以上である。)表示されるように、設定され得る。
更に、出力画像は、ショベル60のCG(Computer Graphic)画像70を、掘削アタッチメントEの向きが表示部5の画面上方と一致し、且つ、その旋回中心が中心CTRと一致するように配置する。ショベル60と出力画像に現れる物体との間の位置関係をより分かり易くするためである。なお、出力画像は、方位等の各種情報を含む額縁画像をその周囲に配置するようにしてもよい。
この状態において、画像生成装置100は、図9で示されるように、平面領域R1に投影された画像に対応する出力画像における画像部分に影響を与えることなく、曲面領域R2に投影され更に処理対象画像平面R3に再投影された画像に対応する出力画像における画像部分のみを拡大或いは縮小させたり、図10で示されるように、曲面領域R2に投影され更に処理対象画像平面R3に再投影された画像に対応する出力画像における画像部分を真上から見下ろすべく、その画像部分を表示部5の画面領域における任意の位置(例えば、中央)に移動させたりすることができる。
ここで、図16〜図18を参照しながら、上部旋回体63の旋回時における出力画像の表示部5への表示について詳細に説明する。なお、図16は、旋回時画像制御手段12の構成例を示すブロック図である。
図16に示すように、旋回時画像制御手段12は、例えば、旋回状態検出手段120、CG画像表示制御手段121、及び出力画像更新制御手段122で構成される。
旋回状態検出手段120は、上部旋回体63の旋回状態を検出する機能要素であり、例えば、旋回操作レバー(図示せず。)の出力に基づいて、操作者による上部旋回体63の旋回操作が行われたか否かを検出する。また、旋回状態検出手段120は、旋回操作レバーの出力に基づいて、上部旋回体63の旋回方向、旋回速度、旋回角度等を検出してもよい。なお、旋回状態検出手段120は、旋回機構62に取り付けられた旋回機構62の旋回状態を検出するレゾルバ(図示せず。)の出力に基づいて、上部旋回体63の旋回方向、旋回速度、旋回角度等を検出してもよい。
また、旋回状態検出手段120は、カメラ2が撮像した入力画像、又は、出力画像生成手段11が生成する出力画像における被写体の動きに基づいて、上部旋回体63の旋回方向、旋回速度、旋回角度等を検出してもよい。具体的には、旋回状態検出手段120は、入力画像又は出力画像に対してオプティカルフローを適用し、上部旋回体63の旋回方向、旋回速度、旋回角度等を検出してもよい。
CG画像表示制御手段121は、ショベル60のCG画像70の表示態様を制御する機能要素であり、例えば、上部旋回体63の旋回時に、上部旋回体63の旋回に合わせてCG画像70を中心CTR周りに旋回させる。
CG画像70は、例えば、ショベル60のうちの上部旋回体63を簡略化して表現した画像である。
CG画像表示制御手段121は、掘削アタッチメントEの状態に合わせてその掘削アタッチメントEに相当する部分の画像を伸縮させてもよい。具体的には、CG画像表示制御手段121は、ブームを上昇させたりアームを閉じたりしたときにその掘削アタッチメントEに相当する部分の画像を短縮し、ブームを下降させたりアームを開いたりしたときにその掘削アタッチメントEに相当する部分の画像を伸長する。
また、CG画像表示制御手段121は、旋回状態検出手段120の検出結果に応じて、CG画像70の旋回を制御する。具体的には、CG画像表示制御手段121は、旋回状態検出手段120が検出する上部旋回体63の旋回方向及び旋回速度に合致するようにCG画像70の旋回方向及び旋回速度を制御する。
出力画像更新制御手段122は、所定のフレームレートで更新されるリアルタイム画像としての出力画像の更新の継続・停止を制御する機能要素である。
出力画像更新制御手段122は、例えば、旋回状態検出手段120の検出結果に応じて出力画像の更新の継続・停止を切り換える。具体的には、出力画像更新制御手段122は、旋回状態検出手段120により上部旋回体63の旋回の開始が検出された場合に、出力画像の更新を停止させる。その後、出力画像更新制御手段122は、旋回状態検出手段120により上部旋回体63の旋回の停止が検出された場合に、出力画像の更新を再開させる。
次に、図17及び図18を参照しながら、旋回時画像制御手段12が上部旋回体63の旋回時に出力画像の表示態様を制御する処理(以下、「第一旋回時画像制御処理」とする。)の流れについて説明する。なお、図17は、第一旋回時画像制御処理の流れを示すフローチャートである。また、図18は、第一旋回時画像制御処理にしたがって上部旋回体63の旋回時に表示部5に表示される出力画像の推移を示す図である。なお、旋回時画像制御手段12は、ショベル60が稼働中、所定周期で繰り返しこの第一旋回時画像制御処理を実行する。
最初に、旋回時画像制御手段12は、旋回状態検出手段120により、上部旋回体63の旋回が開始されたか否かを判定する(ステップS11)。
上部旋回体63の旋回が開始されていないと判定した場合(ステップS11のNO)、旋回時画像制御手段12は、今回の第一旋回時画像制御処理を終了させる。
図18(A)は、上部旋回体63の旋回が開始されていないときに表示部5に表示される出力画像の一例を示し、図15に対応する。また、図18(A)は、CG画像70から見て右斜め上方向に物体71に対応する画像が存在し、CG画像70から見て右斜め下方向に物体72に対応する画像が存在する状態を示す。なお、領域R6は、カメラ2によって撮像されていない領域を示す。ショベル60の前方は操作者が肉眼で視認可能であるためショベル60の前方にはカメラが設置されていないためである。但し、画像生成装置100はこの構成に限定されず、ショベル60の前方にもカメラが設置された構成を採用してもよい。この場合、領域R6は存在せず、画像生成装置100は、ショベル60を中心とした全方位の出力画像を表示部5に表示する。
一方、上部旋回体63の旋回が開始されたと判定した場合(ステップS11のYES)、旋回時画像制御手段12は、出力画像更新制御手段122により、出力画像の更新を停止させ(ステップS12)、CG画像表示制御手段121により、出力画像内でCG画像70を中心CTR周りに旋回させる(ステップS13)。出力画像の更新を停止させるのは、出力画像を見易くするためである。具体的には、出力画像の更新を停止させずに上部旋回体63を旋回させると、出力画像は、上部旋回体63の旋回方向とは反対の方向に回転する。例えば、上部旋回体63を右方向に旋回させると、出力画像は、表示部5において左方向(反時計回り)に回転する。このような表示は、CG画像70の出力画像内での旋回状態に対して表示されている出力画像の位置関係がずれるため、操作者に違和感を与えるおそれがある。旋回時画像制御手段12は、操作者にこのような違和感を与えるのを防止するため、出力画像の更新を停止させる。
図18(B)は、上部旋回体63が右方向に90度旋回するときに表示部5に表示される出力画像の状態を示す。また、破線で示すCG画像は、画面上方向を向いていたCG画像70が、90度旋回後の状態に相当する画面右方向を向くCG画像70に推移することを表し、実際には表示されない。但し、CG画像表示制御手段121は、旋回開始前のCG画像を旋回中のCG画像70とは別にそのまま表示させておいてもよい。旋回開始直後からの旋回角度をより分かり易く表示するためである。なお、CG画像70の右方向(時計回り)の回転速度は、旋回状態検出手段120が検出した上部旋回体63の右方向の旋回速度に一致するように調整される。出力画像を見た操作者が上部旋回体63の旋回方向、旋回速度、旋回角度等を正確且つ容易に認識できるようにするためである。
また、図18(B)は、出力画像更新制御手段122により出力画像の更新が停止されているため、図18(A)の状態と比べ、物体71及び物体72の位置が変化していないことを示す。
この場合、旋回時画像制御手段12は、上部旋回体63が旋回中であることを表すテキストメッセージやシンボル画像を出力画像上に表示させるようにしてもよく、出力画像の更新が停止されていることを表すテキストメッセージやシンボル画像を表示させるようにしてもよい。表示部5に表示されている出力画像がリアルタイム画像でないことを操作者に認識させるためである。
また、制御部1は、出力画像の更新が停止された場合であっても、カメラ2が撮像した入力画像に基づいて、ショベル60の周辺の物体と旋回中の上部旋回体63との接近を検知するようにしてもよい。更新が停止された出力画像には現れない物体と上部旋回体63との接触を防止するためである。なお、制御部1は、出力画像の更新が停止されたか否かにかかわらず、カメラ2が撮像した入力画像に基づいて、ショベル60の周辺の物体と旋回中の上部旋回体63との接近を検知するようにしてもよい。また、制御部1は、図示しないレーダセンサや赤外線センサ等の出力に基づいてショベル60の周辺の物体と旋回中の上部旋回体63との接近を検知するようにしてもよい。
制御部1は、ショベル60の周辺の物体と旋回中の上部旋回体63との接近が検知された場合、警報や警告メッセージを音声出力し、警告メッセージを表示部5に表示する。旋回時画像制御手段12は、ショベル60の周辺の物体と旋回中の上部旋回体63との接近が検知された場合、出力画像の更新を再開させ、現在の状況をリアルタイムに表示する。上部旋回体63に接近する物体を操作者が確実に認識できるようにするためである。
その後、旋回時画像制御手段12は、旋回状態検出手段120により、上部旋回体63の旋回が停止されたか否かを判定する(ステップS14)。
上部旋回体63の旋回が停止されていないと判定した場合(ステップS14のNO)、旋回時画像制御手段12は、CG画像表示制御手段121により、出力画像内でのCG画像70の旋回を継続させる。
一方、上部旋回体63の旋回が停止されたと判定した場合(ステップS14のYES)、旋回時画像制御手段12は、CG画像表示制御手段121により、CG画像70を旋回開始前の状態に復帰させ(ステップS15)、出力画像更新制御手段122により、出力画像の更新を再開させる(ステップS16)。
具体的には、旋回時画像制御手段12は、CG画像表示制御手段121により、CG画像70が画面上方向を向くようにCG画像70の配置を瞬時に切り換える。また、旋回時画像制御手段12は、この切り換えとほぼ同時に出力画像の更新を再開させ、カメラ2が撮像した画像が再びリアルタイムで表示部5に表示されるようにする。
図18(C)は、上部旋回体63が右方向に90度旋回して停止したときに表示部5に表示される出力画像の状態を示す。また、図18(C)は、図18(A)及び図18(B)においてCG画像70から見て右斜め上方向にあった物体71に対応する画像、及び、右斜め下方向にあった物体72に対応する画像のそれぞれが、CG画像から見て左斜め上方向、右斜め上方向に移動した状態を示す。上部旋回体63の旋回により物体71及び物体72と上部旋回体63との間の位置関係が変化したためである。なお、破線で示すCG画像は旋回停止直前の上部旋回体63の配置を表し、破線で示す2つの矩形は出力画像の更新が再開される直前の物体71及び物体72のそれぞれに対応する画像の配置を表すが、何れも実際には表示されない。
次に、図19を参照しながら、旋回時画像制御手段12が上部旋回体63の旋回時に出力画像の表示態様を制御する処理の別の一例(以下、「第二旋回時画像制御処理」とする。)について説明する。なお、図19は、第二旋回時画像制御処理にしたがって上部旋回体63の旋回時に表示部5に表示される出力画像の推移を示す図であり、図18に対応する。また、旋回時画像制御手段12は、ショベル60が稼働中、所定周期で繰り返しこの第二旋回時画像制御処理を実行する。
図19に示す第二旋回時画像制御処理は、下部走行体61の前進方向を画面上方向に一致させる点で、第一旋回時画像制御処理と相違する。具体的には、下部走行体61の向きと上部旋回体63の旋回位置(旋回方向、旋回角度)に基づいて、画像処理により、下部走行体61の前進方向を画面上方向に一致させるように出力画像を変換した上で表示部5に表示している。図18に示す第一旋回時画像制御処理は、掘削アタッチメントEの延在方向、すなわち、操作者の向きを画面上方向に一致させるためである。しかしながら、第二旋回時画像制御処理は、その他の点に関しては、第一旋回時画像制御処理と同様であるため、以下では相違点のみを詳細に説明する。
図19(A)は、上部旋回体63の旋回が開始されていないときに表示部5に表示される出力画像の状態を示す。また、図19(A)は、CG画像70から見て左斜め上方向に物体73に対応する画像が存在し、CG画像70から見て右斜め下方向に物体74に対応する画像が存在する状態を示す。なお、領域R6は、カメラ2によって撮像されていない領域を示す。但し、画像生成装置100は、ショベル60の前方にもカメラが設置された構成を採用してもよい。その場合、領域R6は存在しない。
図19(B)は、上部旋回体63が右方向に90度旋回するときに、表示部5に表示される出力画像の状態を示す。また、破線で示すCG画像は、左斜め下方向を向いていたCG画像70が、90度旋回後の状態に相当する左斜め上方向を向くCG画像70に推移することを表し、実際には表示されない。但し、CG画像表示制御手段121は、旋回開始前のCG画像を旋回中のCG画像70とは別にそのまま表示させておいてもよい。旋回開始直後からの旋回角度をより分かり易く表示するためである。なお、CG画像の右方向(時計回り)の回転速度は、旋回状態検出手段120が検出した上部旋回体63の右方向の旋回速度に一致するように調整される。出力画像を見た操作者が上部旋回体63の旋回方向、旋回速度、旋回角度等を正確且つ容易に認識できるようにするためである。
また、図19(B)は、出力画像更新制御手段122により出力画像の更新が停止されているため、図19(A)の状態と比べ、物体73及び物体74の位置が変化していないことを示す。
図19(C)は、上部旋回体63が右方向に90度旋回して停止したときに表示部5に表示される出力画像の状態を示す。なお、破線で示す矩形は出力画像の更新が再開される直前の物体73に対応する画像の配置を表すが、実際には表示されない。
また、図19(C)は、CG画像70から見て左斜め下方向にあった領域R6が左斜め上方向に移動した状態を示す。これは、第二旋回時画像制御処理では、下部走行体61の前進方向が画面上方向に一致するよう、出力画像が制御されるためである。したがって、旋回状態検出手段120により上部旋回体63の旋回の停止が検出された場合であっても、CG画像表示制御手段121は、CG画像70を旋回開始前の状態に復帰させない。その結果、旋回状態検出手段120により上部旋回体63の旋回の停止が検出され、出力画像更新制御手段122により出力画像の更新が再開されると、左斜め下方向にあった領域R6は、上部旋回体63の旋回後の向きに合わせて、左斜め上方向に移動する。
以上の構成により、画像生成装置100は、旋回時画像制御手段12により上部旋回体63の旋回に合わせて出力画像上のCG画像70を旋回させるので、旋回状態を操作者に容易に認識させることができ、操作者にとって見易い出力画像を生成することができる。
また、画像生成装置100は、旋回時画像制御手段12により上部旋回体63の旋回中に出力画像の更新を停止させるので、旋回中に出力画像が旋回方向とは反対の方向に回転することによって操作者に違和感を抱かせてしまうのを防止することができる。
なお、旋回時画像制御手段12は、画像処理により、旋回方向とは反対の方向への出力画像の回転を見かけ上相殺した上で、出力画像の更新を継続させてもよい。この場合、旋回時画像制御手段12は、旋回中に出力画像が旋回方向とは反対の方向に回転するのを防止しながらも、リアルタイム画像を表示部5に表示させることができる。
また、画像生成装置100は、旋回時画像制御手段12により、上部旋回体63の旋回方向、旋回速度、及び旋回角度に合わせて出力画像上のCG画像70を旋回させるので、旋回状態を操作者に正確に認識させることができる。
また、画像生成装置100は、旋回状態検出手段120が旋回の停止を検出した場合に、CG画像表示制御手段121により、旋回させたCG画像70を旋回前の状態に復帰させた上で、出力画像更新制御手段122により、停止させた出力画像の更新を再開させる。その結果、画像生成装置100は、上部旋回体63の旋回が停止した後、操作者を混乱させることなく速やかにリアルタイム画像の表示を再開させることができる。
以上、本発明の好ましい実施例について詳説したが、本発明は、上述した実施例に制限されることはなく、本発明の範囲を逸脱することなしに上述した実施例に種々の変形及び置換を加えることができる。
例えば、上述の実施例において、画像生成装置100は、空間モデルとして円筒状の空間モデルMDを採用するが、多角柱等の他の柱状の形状を有する空間モデルを採用してもよく、底面及び側面の二面から構成される空間モデルを採用してもよく、或いは、側面のみを有する空間モデルを採用してもよい。
また、画像生成装置100は、バケット、アーム、ブーム、旋回機構等の可動部材を備えながら自走する建設機械にカメラと共に搭載され、周囲画像をその運転者に提示しながらその建設機械の移動及びそれら可動部材の操作を支援する操作支援システムに組み込まれているが、産業用機械若しくは固定式クレーン等のように旋回動作可能な可動部材を有するが自走はしない他の被操作体にカメラと共に搭載され、それら他の被操作体の操作を支援する操作支援システムに組み入れられてもよい。