図1は、本発明に係る物体検出装置100の構成例を概略的に示すブロック図である。物体検出装置100は、主に、制御部1、撮像部2、表示部3、及び音声出力部4で構成される。
制御部1は、CPU(Central Processing Unit)、RAM(Random Access Memory)、ROM(Read Only Memory)、NVRAM(Non-Volatile Random Access Memory)等を備えたコンピュータである。制御部1は、例えば、ROMやNVRAMに保存された、後述する部分画像抽出部10、評価値決定部11、及び物体存否判定部12のそれぞれの機能要素に対応するプログラムをRAMに展開し、各機能要素に対応する処理をCPUに実行させる。
撮像部2は、画像を取得する装置であり、例えば、少なくとも2つのカメラで構成されるステレオビジョン装置である。撮像部2は、所定周期で撮像する画像データを制御部1に対して出力する。
撮像部2を構成する少なくとも2つのカメラは、所定距離を隔てて配置され、同じ空間領域を撮像する。以下では、少なくとも2つのカメラが撮像する共通の空間領域を「被撮像空間」と称する。
表示部3は、各種情報を表示するための装置であり、例えば、液晶ディスプレイ、プロジェクタ等であって、制御部1が出力する各種画像を表示する。
音声出力部4は、各種情報を音声出力するための装置であり、例えば、ブザー、スピーカ等であって、制御部1が出力する制御信号に応じて各種情報を音声出力する。
部分画像抽出部10は、撮像部2が撮像した画像から部分画像を抽出する機能要素である。
具体的には、部分画像抽出部10は、撮像部2を構成する複数のカメラのそれぞれが撮像したカメラ画像から、検査点に対応する画素を含む所定サイズの部分画像を抽出する。部分画像は、例えば、検査点に対応する画素を中心画素とする矩形画像である。なお、部分画像は、円形、楕円形等の他の形状を有していてもよい。
「検査点」とは、三次元空間である被撮像空間を通る仮想直線(以下、「測定ライン」とする。)上の点である。検査点は、好適には、物体検出装置100の検出対象に応じて予め設定される。この場合、物体検出装置100は、三次元空間に定義される三次元座標系における各検査点の三次元座標と、複数のカメラ画像のそれぞれに対して定義される二次元座標系における対応する二次元座標とを予め関連付けて保持する。但し、検査点は、物体検出装置100の検出対象に応じて動的に設定されてもよい。この場合、物体検出装置100は、測定ライン及び検査点を動的に設定し、各検査点の三次元座標に基づいて、複数のカメラ画像のそれぞれにおける対応する二次元座標を動的に算出する。
図2は、撮像部2と測定ラインVLとの関係の一例を示す図であり、撮像部2を構成する2つのカメラ2a、2bとカメラ2a、2bに関する被撮像空間を通る測定ラインVL上に配置される8個の検査点IP1〜IP8とを示す。
測定ラインVLは、被撮像空間を通る任意の直線であるが、好適には、物体検出装置100の検出対象である物体が存在する可能性の高い空間領域、又は、物体検出装置100の検出対象である物体が移動する可能性の高い空間領域を貫くように配置される。
また、測定ラインVL上に配置される検査点間の距離は任意であり、等間隔であってもよく、不等間隔であってもよい。なお、検査点間の距離が長い程、すなわち、検査点の数が少ない程、物体検出装置100が物体を検出するために要する演算負荷は減少する。一方、検査点間の距離が短い程、すなわち、検査点の数が多い程、物体検出装置100の分解能は高くなる。
図3は、図2に示す2台のカメラ2a、2bのそれぞれが撮像するカメラ画像2aR、2bRと8つの検査点IP1〜IP8との関係を示す。カメラ2aが撮像するカメラ画像2aRは、検査点IP1〜IP8のそれぞれに対応する画素2aP1〜2aP8を中心とする部分画像2aR1〜2aR8を含む。同様に、カメラ2bが撮像するカメラ画像2bRは、検査点IP1〜IP8のそれぞれに対応する画素2bP1〜2bP8を中心とする部分画像2bR1〜2bR8を含む。なお、部分画像2aR1〜2aR8及び部分画像2bR1〜2bR8のそれぞれのサイズは共通である。部分画像2bR1〜2bR8のサイズを共通とした場合、演算処理がしやすいというメリットがある。そのため、図3では、検査点IP2〜IP7のそれぞれを中心画素とする、カメラ画像2aR、2bRのそれぞれにおける部分画像の範囲の図示を省略する。なお、部分画像のサイズは、同じ検査点に対応する部分画像間で共通であれば、カメラからの距離に応じて検査点毎に変更されてもよい。この場合、カメラからの距離に応じて変化する、物体のカメラ画像内での映り込みサイズに、部分画像のサイズを合わせられるというメリットがある。なお、カメラ画像2aRのサイズは、カメラ画像2bRのサイズと同じである。また、図3は、カメラ2aの設置位置とカメラ2bの設置位置との違いに起因して、カメラ2aが撮像するカメラ画像2aRとカメラ2bが撮像するカメラ画像2bRとの間に視差が存在することを示す。
図4は、検出対象50を撮像する2台のカメラ2a、2bが出力するカメラ画像2aR、2bRを示す。なお、図4に示す測定ラインは、図3に示す測定ラインVLとは延在方向が異なるが、説明の便宜のため、同じ参照符号VLを用いて説明する。検査点IP1〜IP5についても同様である。
図4において、カメラ2a、2bは、床面から500mmの高さに設置される。また、測定ラインVLは、床面からの高さが500mmの平面上で、カメラ2aとカメラ2bとを結ぶ線分の中点MPを通り、カメラ2a、2bの光軸方向に平行に伸びる。また、5つの検査点IP1〜IP5は、測定ラインVL上に等間隔(例えば、250mm間隔)に配置され、中点MPとの距離が最も小さい検査点IP1は、中点MPから1000mmの地点に配置される。また、検出対象50はヘルメットであり、中点MPから1750mmの地点に配置される。
図5は、図4の2つのカメラ画像2aR、2bRのそれぞれにおける、5つの検査点IP1〜IP5のそれぞれに対応する画素を含む、2つ1組の5組の部分画像を示す。
部分画像2aR1は、カメラ2aが撮像したカメラ画像2aRにおける、検査点IP1に対応する画素2aP1を中心画素とする部分画像である。また、部分画像2bR1は、カメラ2bが撮像したカメラ画像2bRにおける、検査点IP1に対応する画素2bP1を中心画素とする部分画像である。
同様に、部分画像2aR2〜2aR5のそれぞれは、カメラ画像2aRにおける、検査点IP2〜IP5のそれぞれに対応する画素2aP2〜2aP5のそれぞれを中心画素とする部分画像である。また、部分画像2bR2〜2bR5のそれぞれは、カメラ画像2bRにおける、検査点IP2〜IP5のそれぞれに対応する画素2bP2〜2bP5のそれぞれを中心画素とする部分画像である。
このようにして、部分画像抽出部10は、複数の検査点のそれぞれに対応する画素のそれぞれを中心画素とする所定サイズの部分画像を各カメラ画像から抽出する。
評価値決定部11は、互いに対応する部分画像の類似度に基づいて検査点に関する評価値を決定する機能要素である。
具体的には、評価値決定部11は、特定の検査点に対応する画素を中心画素とする部分画像同士の類似度に基づいてその特定の検査点に関する評価値を決定する。
図6は、評価値決定部11が検査点に関する評価値を決定する処理(以下、「評価値決定処理」とする。)の流れを示すフローチャートである。
最初に、評価値決定部11は、部分画像における各画素の輝度勾配方向を算出する(ステップS1)。
「輝度勾配方向」とは、ある注目画素において輝度変化が最大である方向を意味し、本実施例では、水平方向(画面横方向)の輝度の微分値と鉛直方向(画面縦方向)の輝度の微分値dIy(i、j)とが形成する角度θで表される。
具体的には、カメラ画像2aR、2bRのそれぞれにおける座標(i、j)の画素の輝度をI(i、j)で表すと、水平方向の輝度の微分値dIx(i、j)、鉛直方向の輝度の微分値dIy(i、j)、及び、輝度勾配方向θは、以下の式で表される。
図7は、水平方向の輝度の微分値dIx(i、j)、鉛直方向の輝度の微分値dIy(i、j)、及び、輝度勾配方向θの三者の関係を示す図であり、輝度勾配方向θが、水平方向の輝度の微分値dIx(i、j)と鉛直方向の輝度の微分値dIy(i、j)との間の角度であることを示す。
また、図8は、カメラ画像2aRにおける、検査点IP1に対応する画素2aP1を中心画素とする部分画像2aR1における各画素の輝度勾配方向を示す。具体的には、図8(A)は、部分画像2aR1の全体像を示し、図8(B)は、図8(A)の破線円部分の拡大図を示す。なお、図8(A)は、説明の便宜のため、部分画像2aR1を縦9ピクセル、横9ピクセルのサイズで示す。また、図8(B)は、各画素の輝度勾配方向を矢印で示す。
このようにして、評価値決定部11は、部分画像における各画素の輝度勾配方向θを算出する。
部分画像における各画素の輝度勾配方向θを算出した後、評価値決定部11は、その算出した輝度勾配方向θを量子化する(ステップS2)。
図9は、評価値決定部11による輝度勾配方向θの量子化方法の一例を説明する図である。
図9(A)で示すように、評価値決定部11は、輝度勾配方向θが0度以上45度未満の場合に輝度勾配方向を値「0」に変換する。同様に、評価値決定部11は、輝度勾配方向θが45度以上90度未満、90度以上135度未満、135度以上180度未満、180度以上225度未満、225度以上270度未満、270度以上315度未満、315度以上360度未満の場合に、輝度勾配方向をそれぞれ値「1」、値「2」、値「3」、値「4」、値「5」、値「6」、値「7」に変換する。図9(B)は、量子化の結果の一例を示し、図8(B)に対応する。
このようにして、評価値決定部11は、特定の検査点に対応する画素を中心画素とする部分画像における各画素の輝度勾配方向θを量子化する。
輝度勾配方向θを量子化した後、評価値決定部11は、その量子化した輝度勾配方向の値のヒストグラムを作成する(ステップS3)。
図10は、評価値決定部11による輝度勾配方向の値のヒストグラムの作成方法の一例を説明する図である。なお、図10(A)の部分画像2aR1は、図9(A)の部分画像2aR1に対応する。
図10(A)で示すように、評価値決定部11は、部分画像2aR1を、中心画素2aP1を含む列より左側にある4列で構成される左側領域と、中心画素2aP1を含む1列、及び中心画素2aP1を含む列より右側にある4列で構成される右側領域とに分割する。
その上で、評価値決定部11は、左側領域に含まれる各画素の輝度勾配方向の値の出現頻度を「0」〜「7」の値毎に計数する。同様に、評価値決定部11は、右側領域に含まれる各画素の輝度勾配方向の値の出現頻度を「0」〜「7」の値毎に計数する。
図10(B)は、左側領域に関する「0」〜「7」の値と右側領域に関する「0」〜「7」の値とで構成される16種類(次元)の値のそれぞれの出現頻度の分布を示すヒストグラムの一例である。
このようにして、評価値決定部11は、特定の検査点に対応する画素を中心画素とする部分画像の特徴を表すヒストグラムを作成する。
特定の検査点に関連する複数の部分画像のそれぞれの特徴を表すヒストグラムを作成した後、評価値決定部11は、その特定の検査点に関する評価値CGRAを決定する(ステップS4)。
具体的には、評価値決定部11は、検査点IP1に関連する、カメラ2aが撮像したカメラ画像2aRにおける部分画像2aR1の特徴を表すヒストグラムと、同じく検査点IP1に関連する、カメラ2bが撮像したカメラ画像2bRにおける部分画像2bR1の特徴を表すヒストグラムとに基づいて、検査点IP1に関する評価値CGRAを決定する。
評価値CGRAは、例えば、以下の式で表されるようなヒストグラム同士の各要素の強度差に基づく評価値が採用される。
なお、Kは次元数を表し、本実施例では、輝度勾配方向の値の種類の数に相当する「16」である。また、Ig(k)は、一方の部分画像におけるk次元目の値を表し、例えば、Ig(1)は、部分画像2aR1における輝度勾配方向の値「0」の出現頻度(1次元目の値)を表す。また、Tg(k)は、他方の部分画像におけるk次元目の値を表し、例えば、Tg(1)は、部分画像2bR1における輝度勾配方向の値「0」の出現頻度(1次元目の値)を表す。
この場合、検査点IP1に関する評価値CGRAが小さい程2つの部分画像2aR1、2bR1の類似度が高く、その評価値CGRAが大きい程2つの部分画像2aR1、2bR1の類似度が低い。なお、評価値CGRAの大小と類似度の高低との関係は、評価値CGRAの計算方法によっては反対となり得る。
また、特定の検査点に関連する部分画像が3つ以上存在する場合、すなわち撮像部2が3つ以上のカメラで構成される場合には、評価値決定部11は、それら3つ以上の部分画像のうちの2つの間の評価値CGRAを全ての組み合わせについて算出した上で、算出した複数の評価値CGRAに基づいて最終的な評価値CGRAを導き出すようにする。この場合、評価値決定部11は、例えば、複数の評価値CGRAの統計値(平均値、最大値、最小値、中間値等である。)を最終的な評価値CGRAとして導き出してもよい。
このようにして、評価値決定部11は、特定の検査点に対応する画素を中心画素とする、互いに対応する部分画像の類似度に基づいて、その特定の検査点に関する評価値CGRAを決定する。
また、評価値決定部11は、予め設定された複数の検査点のそれぞれについて、上述の評価値決定処理を実行し、予め設定された複数の検査点のそれぞれに関する評価値CGRAを決定する。
物体存否判定部12は、評価値決定部11が決定する、複数の検査点のそれぞれに関する評価値CGRAに基づいて物体の存否を判定する機能要素である。
図11〜図13は、16個の検査点IP1〜IP16のそれぞれに関する評価値CGRAの分布を示す図である。
図11〜図13において、カメラ2a、2bは、床面から500mmの高さに設置される。また、測定ラインVLは、床面からの高さが500mmの平面上で、カメラ2aとカメラ2bとを結ぶ線分の中点MPを通り、カメラ2a、2bの光軸方向に平行に伸びる。また、16個の検査点IP1〜IP16は、測定ラインVL上に250mm間隔に配置され、中点MPとの距離が最も小さい検査点IP1は、中点MPから1000mmの地点に配置される。また、検出対象50はヘルメットであり、図11では中点MPから1500mmの地点に配置され、図12では中点MPから2250mmの地点に配置され、図13では中点MPから3000mmの地点に配置される。
図11のケースでは、物体存否判定部12は、測定ラインVL上に並ぶ検査点IP1〜IP16のそれぞれに関する評価値CGRAの分布ら、中点MPから1500mmの地点に対応する検査点IP3に関する評価値CGRAが極値(最小値)であると判断する。そして、物体存否判定部12は、中点MPから1500mmの地点に検出対象50が存在すると判定する。また、図12のケースでは、物体存否判定部12は、中点MPから2250mmの地点に対応する検査点IP6に関する評価値CGRAが極値(最小値)であると判断し、中点MPから2250mmの地点に検出対象50が存在すると判定する。同様に、図13のケースでは、物体存否判定部12は、中点MPから3000mmの地点に対応する検査点IP9に関する評価値CGRAが極値(最小値)であると判断し、中点MPから3000mmの地点に検出対象50が存在すると判定する。
このようにして、物体存否判定部12は、複数の評価値CGRAから極値(最小値)を抽出し、その極値となる評価値CGRAを有する検査点(以下、「採用点」と称する。)の位置に物体が存在すると判定する。
この判定は、物体が存在する地点に対応する検査点に関する部分画像間の類似度が比較的高くなる一方で、物体が存在しない地点に対応する検査点に関する部分画像間の類似度が比較的低くなるという事実に基づく。物体が存在する地点に対応する検査点に関する、カメラ2aによる部分画像とカメラ2bによる部分画像とは、その物体を共通の被写体として含むのに対し、物体が存在しない地点に対応する検査点に関する、カメラ2aによる部分画像とカメラ2bによる部分画像とは、別々の物体(互いに異なる地点に存在するより遠方の物体)を被写体として含み得るためである。
また、物体存否判定部12は、複数の評価値CGRAの分布に基づいて物体の存否を判定してもよい。
具体的には、物体存否判定部12は、採用点の評価値CGRAと採用点の周囲にある検査点の評価値CGRAとの間の関係に基づいて物体の存否を判定してもよい。この場合、採用点の周囲にある検査点の評価値CGRAは、例えば、採用点に隣接する複数の検査点の評価値CGRAの平均値、最大値、最小値、中間値等である。
例えば、物体存否判定部12は、採用点の評価値CGRAと採用点の周囲にある検査点の評価値CGRAとの間の差が所定値以上の場合に限り、採用点の位置に物体が存在すると判定してもよい。すなわち、物体存否判定部12は、その差が所定値未満の場合には、採用点の位置に物体が存在しないと判定してもよい。検査点の位置に物体が存在しない場合であっても、背景の輝度が均一な場合、その評価値CGRAは、物体が存在する場合と同じ程度に低くなるためである。また、物体が存在する場合には特定の1つの検査点の評価値CGRAが低くなり易いのに対し、物体が存在せず且つ背景の輝度が均一な場合には、隣接する複数の検査点の評価値CGRAが一様に低くなり易いためである。
また、物体検出装置100は、物体存否判定部12の判定結果を表示部3及び音声出力部4を通じて操作者に伝えるようにする。
具体的には、物体検出装置100は、カメラ2a、2bの何れか一方が撮像した画像を表示部3に表示し、物体存否判定部12により物体が存在すると判定された位置に対応する採用点の周囲の画像領域を他の画像領域と異ならせて表示する。例えば、物体検出装置100は、採用点の周囲の画像領域の色を他の画像領域の色と異ならせて表示する。
また、物体検出装置100は、例えば、音声出力部4を通じて警報を出力したり、「Xメートルの地点に物体が存在します」といった音声メッセージを音声出力部4から出力したりする。
次に、図14を参照しながら、物体検出装置100が物体を検出する処理(以下、「物体検出処理」とする。)の流れについて説明する。なお、図14は、物体検出処理の流れを示すフローチャートであり、物体検出装置100は、所定周期で繰り返しこの物体検出処理を実行する。また、測定ラインVLは、検出対象の物体が存在する可能性の高い空間領域を横切るように予め設定される。検査点は、測定ラインVL上に等間隔に所定数だけ予め配置される。また、撮像部2は、2台のカメラ2a、2bで構成され、カメラ2a、2bは、カメラ画像2aR、2bRを制御部1に対して出力する。
最初に、物体検出装置100の制御部1は、部分画像抽出部10により、複数の検査点のうちの1つに対応する画素を中心画素とする部分画像を、カメラ画像2aR、2bRのそれぞれから抽出する(ステップS11)。
その後、制御部1は、評価値決定部11により、上述の評価値決定処理を実行し、その検査点に関する評価値CGRAを決定する(ステップS12)。
その後、制御部1は、予め設定された全ての検査点に関する評価値CGRAを決定したか否かを判定する(ステップS13)。
予め設定された全ての検査点に関する評価値CGRAを未だ決定していないと判定した場合(ステップS13のNO)、制御部1は、評価値CGRAが未だ決定されていない検査点に関してステップS11及びステップS12を実行する。
予め設定された全ての検査点に関する評価値CGRAを決定したと判定した場合(ステップS13のYES)、制御部1は、物体存否判定部12により、全ての検査点に関する評価値CGRAの分布に基づいて物体の存否を判定する(ステップS14)。
なお、本実施例では、物体検出装置100は、1本の測定ラインVL上に配置された複数の検査点のそれぞれに関する評価値CGRAの分布に基づいて、その1本の測定ラインVLが通る空間における物体の存否を判定する。しかしながら、本発明は、これに限定されない。物体検出装置100は、複数本の測定ラインのそれぞれに配置された複数の検査点のそれぞれに関する評価値CGRAの分布に基づいて、測定ライン毎に物体の存否を判定してもよい。
以上の構成により、物体検出装置100は、特定の検査点に対応する画素を中心画素とする、複数のカメラ画像のそれぞれにおける部分画像間の類似度に基づく評価値を用いて物体の存否を判定する。その結果、物体検出装置100は、エッジ検出等の画像処理により特徴点を見つけ出す必要なく物体の存否を判定することができ、物体の存否を判定するのに必要な演算コストを低減させることができる。
また、物体検出装置100は、検査点の位置を任意に設定可能とするので、測定範囲を必要最小限に制限することができ、物体の存否を判定するのに必要な演算コストを更に低減させることができる。
また、物体検出装置100は、検査点の位置を任意に設定可能とするので、特定領域の物体検出の分解能を高めることができる。
次に、図15〜図19を参照しながら、物体検出装置100が移動体としてのショベル60に搭載される場合の測定ライン及び検査点の配置について説明する。
図15は、物体検出装置100が搭載されるショベル60の構成例を示す図であり、図15(A)がショベル60の側面図を示し、図15(B)がショベル60の上面図を示す。
ショベル60は、クローラ式の下部走行体61の上に、旋回機構62を介して、上部旋回体63を旋回軸PVの周りで旋回自在に搭載している。
また、上部旋回体63は、その前方左側部にキャブ(運転室)64を備え、その前方中央部に掘削アタッチメントEを備え、その後面に撮像部2を備える。なお、キャブ64内の運転者が視認し易い位置には表示部3が設置される。また、キャブ64内には、制御部1、音声出力部4、及び動作状態検出部65が設置される。
動作状態検出部65は、ショベル60の動作状態を検出する機能要素であり、検出結果を制御部1に対して出力する。動作状態検出部65は、例えば、CPU、RAM、ROM、NVRAM等を備えたコンピュータであり、制御部1に統合されてもよい。
動作状態検出部65は、例えば、図示しない操作レバーの出力に基づいてショベル60の動作状態を検出する。ショベル60の動作状態は、停止状態、前進状態、後進状態、左旋回状態、右旋回状態、掘削アタッチメント伸長状態、掘削アタッチメント短縮状態等を含む。
また、動作状態検出部65は、旋回機構62の旋回速度を検出するリゾルバ、掘削アタッチメントEの姿勢を検出する角度センサ、下部走行体61の移動速度を検出する速度センサ等の出力に基づいてショベル60の動作状態を検出してもよい。
図16は、ショベル60に搭載される物体検出装置100が採用する測定ラインの配置の一例を示す図である。図16では、7本の測定ラインVLa〜VLgが配置され、7本の測定ラインVLa〜VLgのそれぞれには、4つの検査点が等間隔に配置される。なお、4つの検査点は、不等間隔に配置されてもよい。
具体的には、測定ラインVLa上には4つの検査点IPa1〜IPa4が配置され、測定ラインVLb上には4つの検査点IPb1〜IPb4が配置され、測定ラインVLc上には4つの検査点IPc1〜IPc4が配置される。また、測定ラインVLd上には4つの検査点IPd1〜IPd4が配置され、測定ラインVLe上には4つの検査点IPe1〜IPe4が配置され、測定ラインVLf上には4つの検査点IPf1〜IPf4が配置され、測定ラインVLg上には4つの検査点IPg1〜IPg4が配置される。
物体検出装置100は、7本の測定ラインVLa〜VLfのそれぞれに配置された4つの検査点のそれぞれに関する評価値CGRAの分布に基づいて、測定ライン毎に物体の存否を判定する。
7本の測定ラインVLa〜VLgは、ショベル60の上部旋回体63の後部を中心として、ショベル60の後方に放射状に伸び、隣接する2本の測定ラインの間の角度が等しくなるように配置される。なお、隣接する2本の測定ラインの間の角度は、異なるものであってもよい。また、7本の測定ラインVLa〜VLgは、水平面に平行に伸び、検出対象に応じて地面からの高さが決定される。
7本の測定ラインVLa〜VLgのこの配置により、物体検出装置100は、ショベル60の後方の様々な方向に存在する物体を検出することができる。また、この配置により、測定ライン上に等間隔に配置される検査点の配置密度は、ショベル60に近いほど密となる。したがって、この配置は、ショベル60の操作者の死角となるショベル60の後方に存在する物体の検出を可能にし、且つ、ショベル60に近い程より詳細な物体の検出を可能にする。
また、7本の測定ラインVLa〜VLgは、上部旋回体63を基準とする座標系で定義されているので、測定ラインVLa〜VLg上の各検査点は、上部旋回体63に固定された撮像部2の動きとともに、すなわち、ショベル60の前後進、又は、上部旋回体63の旋回とともに移動する。その結果、物体検出装置100は、ショベル60の前後進、又は、上部旋回体63の旋回にかかわらず、常に、上部旋回体63の後方に存在する物体を検出できる。
図17は、ショベル60に搭載される物体検出装置100の検出結果を表示する検出結果表示画面D1の一例である。物体検出装置100は、表示部3に検出結果を出力し、表示部3上に検出結果表示画面D1を表示させる。
検出結果表示画面D1は、ショベル60の位置を表すCG(Computer Graphics)画像70を画面中央上部に表示する。なお、CG画像70は、ショベル60の掘削アタッチメントEに相当する画像部分が画面上方向を向くように配置される。
図17では、検出結果表示画面D1は、図16で示された、測定ラインVLa上の検査点IPa3、測定ラインVLb上の検査点IPb4、測定ラインVLc上の検査点IPc3、測定ラインVLd上の検査点IPd3、及び測定ラインVLf上の検査点IPf4で物体が存在すると判定され、測定ラインVLe及び測定ラインVLg上で物体が存在しないと判定された場合の状態を示す。
図17で示すように、物体検出装置100は、物体が存在すると判定された地点の画像部分に円形のマークを重畳表示する。物体の存在を操作者に伝えるためである。なお、物体検出装置100は、物体が存在すると判定された地点の画像部分の色を変えたり、点滅させたりする等の他の表示方法により、物体の存在を操作者に伝えるようにしてもよい。このようにして、物体検出装置100は、撮像部2を用いた物体の存否の判定結果を操作者に分かり易く認識させることができる。
図18は、ショベル60に搭載される物体検出装置100が採用する測定ラインの配置の別の例を示す図である。図18では、4本の測定ラインVLh〜VLkが配置され、4本の測定ラインVLh〜VLkのそれぞれには、5つの検査点が等間隔に配置される。なお、5つの検査点は、不等間隔に配置されてもよい。
具体的には、測定ラインVLh上には5つの検査点IPh1〜IPh5が配置され、測定ラインVLi上には5つの検査点IPi1〜IPi5が配置され、測定ラインVLj上には5つの検査点IPj1〜IPj5が配置され、測定ラインVLk上には5つの検査点IPk1〜IPk5が配置される。
物体検出装置100は、4本の測定ラインVLh〜VLkのそれぞれに配置された5つの検査点のそれぞれに関する評価値CGRAの分布に基づいて、測定ライン毎に物体の存否を判定する。
4本の測定ラインVLh〜VLkは、ショベル60の後方において、ショベル60の上部旋回体63の側部端面(撮像部2の光軸)に平行に伸びる。また、4本の測定ラインVLh〜VLkは、水平面に平行に伸び、検出対象に応じて地面からの高さが決定される。なお、4本の測定ラインVLh〜VLkは、ショベル60の後方において、ショベル60の上部旋回体63の後端面に平行に伸びるものであってもよい。
4本の測定ラインVLh〜VLkのこの配置により、測定ライン上に等間隔に配置される検査点の配置密度は、ショベル60からの距離にかかわらず一定となる。したがって、4本の測定ラインVLh〜VLkのこの配置は、ショベル60の操作者の死角となるショベル60の後方に存在する物体の検出を可能にし、且つ、ショベル60から比較的離れた地点に存在する物体を、ショベル60に比較的近い地点に存在する物体を検出する場合と同様の分解能で検出できるようにする。
図19は、ショベル60に搭載される物体検出装置100が採用する測定ラインの配置のさらに別の例を示す図である。図19では、5本の測定ラインVLv〜VLzが配置され、5本の測定ラインVLv〜VLzのそれぞれには、4つの検査点が等間隔に配置される。なお、4つの検査点は、不等間隔に配置されてもよい。
物体検出装置100は、5本の測定ラインVLv〜VLzのそれぞれに配置された4つの検査点のそれぞれに関する評価値CGRAの分布に基づいて、測定ライン毎に物体の存否を判定する。
5本の測定ラインVLv〜VLzは、ショベル60の上部旋回体63の後部を中心として、ショベル60の後方に放射状に伸び、隣接する2本の測定ラインの間の角度が等しくなるように配置される。なお、隣接する2本の測定ラインの間の角度は、異なるものであってもよい。また、5本の測定ラインVLv〜VLzは、1つの鉛直面上に配置される。
5本の測定ラインVLv〜VLzのこの配置により、物体検出装置100は、ショベル60の後方に存在する様々な高さの物体を検出することができる。また、この配置により、測定ライン上に等間隔に配置される検査点の配置密度は、ショベル60に近いほど密となる。したがって、この配置は、ショベル60の操作者の死角となるショベル60の後方に存在する物体の検出を可能にし、且つ、ショベル60に近い程より詳細な物体の検出を可能にする。
また、5本の測定ラインVLv〜VLzは、上部旋回体63を基準とする座標系で定義されているので、測定ラインVLv〜VLz上の各検査点は、上部旋回体63に固定された撮像部2の動きとともに、すなわち、ショベル60の前後進、又は、上部旋回体63の旋回とともに移動する。その結果、物体検出装置100は、ショベル60の前後進、又は、上部旋回体63の旋回にかかわらず、常に、上部旋回体63の後方に存在する物体を検出できる。
なお、物体検出装置100を搭載するショベル60に関する上述の実施例では、水平方向に放射状に伸びる複数本の測定ラインと、垂直方向に放射状に伸びる複数本の測定ラインとを別々に説明したが、これらの測定ラインは、組み合わせて配置されてもよい。その場合、測定ラインは、例えば、立体的に放射状に伸びるように配置され得る。
また、上述の実施例では、撮像部2は、上部旋回体63の後部に取り付けられ、測定ラインは、ショベル60の後方にある物体を検出するのに適した配置となっている。しかしながら、本発明はこれに限定されない。例えば、撮像部2は、追加的に或いは代替的に、上部旋回体63の側部の一方又は双方に取り付けられていてもよい。その場合、測定ラインは、上部旋回体63の側方にある物体を検出するのに適した配置となり、例えば、上部旋回体63の側方に放射状に伸びるように配置される。
また、上述の実施例では、物体検出装置100は、旋回機構62を備えたショベル60に搭載され、撮像部2が下部走行体61とともに前後進し、且つ、上部旋回体63とともに旋回する。しかしながら、本発明は、これに限定されない。例えば、撮像部2は、下部走行体61とともに前後進するが、上部旋回体63とともに旋回しないように取り付けられていてもよい。この場合、物体検出装置100は、上部旋回体63の旋回にかかわらず、常に、下部走行体61の後方に存在する物体を検出できる。また、物体検出装置100は、旋回機構を持たない車両等の移動体に搭載されてもよく、移動方向が限定される移動体に搭載されてもよい。
次に、図20を参照しながら、ショベル60に搭載される物体検出装置100が採用する測定ラインがショベル60の動作状態に応じて動的に設定される例について説明する。なお、図20は、活性状態・非活性状態が切り換え可能な測定ラインの配置例を示す図である。
図20において、ショベル60は、上部旋回体63の右側部に撮像部2Rを備え、上部旋回体63の左側部に撮像部2Lを備え、上部旋回体63の後部に撮像部2Bを備える。撮像部2Rは、2つのカメラ2Ra、2Rbで構成される。同様に、撮像部2Lは、2つのカメラ2La、2Lbで構成され、撮像部2Bは、2つのカメラ2Ba、2Bbで構成される。
図20で示すように、物体検出装置100は、上部旋回体63の旋回中心から平面的又は立体的に放射状に伸びる複数の測定ラインを予め設定する。なお、図20において破線で表されるこれら複数の測定ラインは、個別に活性状態・非活性状態の切り換えが可能であることを示す。
「測定ラインを活性状態にする」とは、その測定ラインが通る空間を物体検出処理の対象とすることを意味する。すなわち、物体検出装置100は、その測定ライン上の検査点のそれぞれに関する評価値を算出してその測定ライン上にある物体の存否を判定する。具体的には、物体検出装置100は、各検査点の検査点情報に活性状態・非活性状態を表す活性状態フラグを用意する。そして、物体検出装置100は、活性状態にしようとする測定ライン上にある検査点のそれぞれに関するこの活性状態フラグを活性状態(例えば、値「1」である。)に切り換えることによって、その測定ラインを活性状態にする。なお、検査点情報は、制御部1のNVRAM等に予め記憶される情報であり、三次元空間における検査点に対応するカメラ座標系上の座標点に関する情報を含む。
一方、「測定ラインを非活性状態にする」とは、その測定ラインが通る空間を物体検出処理の対象としないことを意味する。すなわち、物体検出装置100は、その測定ライン上の検査点に関する評価値の算出を省略し、その測定ライン上にある物体の存否を判定しない。具体的には、物体検出装置100は、非活性状態にしようとする測定ライン上にある検査点のそれぞれに関する活性状態フラグの値を値「0」に切り換えることによって、その測定ラインを非活性状態にする。
このような構成により、物体検出装置100は、動作状態検出部65が検出するショベル60の動作状態に応じて複数の測定ラインのそれぞれの活性状態・非活性状態を切り換える。
なお、物体検出装置100は、複数の測定ラインのそれぞれに配置される複数の検査点の活性状態・非活性状態を個別に切り換えるようにしてもよい。
図21は、ショベル60の動作状態に応じて動的に設定される測定ラインの例を示す図である。
図21(A)は、ショベル60が停止状態のときに活性状態となる測定ラインの配置例であり、上部旋回体63の旋回中心から、約36度の角度間隔で側方及び後方の約216度の角度範囲に放射状に伸びる7本の測定ラインを示す。
物体検出装置100は、動作状態検出部65によりショベル60が停止状態にあると判断すると、7本の測定ラインのそれぞれに配置された検査点に関する評価値CGRAを決定し、決定した評価値CGRAの分布に基づいて、測定ライン毎に物体の存否を判定する。なお、所定時間毎に非活性状態の測定ラインと活性状態の測定ラインとを順次切り換えるようにして一回の処理の対象とする7本の測定ラインを決定し、時分割で全ての測定ラインを巡回して判定を行うようにしてもよい。
このように、物体検出装置100は、ショベル60が停止状態にある場合には、比較的大きな角度間隔(約36度間隔)で測定ラインを配置し、ショベル60の側方及び後方の比較的広い角度範囲(約216度)を対象として物体検出処理を実行する。その結果、物体検出装置100は、物体検出処理に要する演算コストを抑制しながら、広範囲の監視を実行できる。
図21(B)は、ショベル60が後進状態のときに活性状態となる測定ラインの配置例であり、上部旋回体63の旋回中心から、約18度の角度間隔で後方の約72度の角度範囲に放射状に伸びる5本の測定ラインを示す。
物体検出装置100は、動作状態検出部65によりショベル60が後進状態にあると判断すると、5本の測定ラインのそれぞれに配置された検査点に関する評価値CGRAを決定し、決定した評価値CGRAの分布に基づいて、測定ライン毎に物体の存否を判定する。
このように、物体検出装置100は、ショベル60が後進状態にある場合には、停止状態のときに比べ比較的小さな角度間隔(約18度間隔)で測定ラインを配置し、ショベル60の後方の比較的狭い角度範囲(約72度)を対象として物体検出処理を実行する。その結果、物体検出装置100は、物体検出処理に要する演算コストを抑制しながら、ショベル60が到達可能な後方の空間領域を重点的に監視することができる。
図21(C)は、図21(B)の状態に比べショベル60が比較的高速で後進するときに活性状態となる測定ラインの配置例であり、上部旋回体63の旋回中心から、約18度の角度間隔で後方の約72度の角度範囲に放射状に伸びる5本の測定ラインを示す。また、図21(C)は、各測定ライン上に配置される検査点の間隔が、図21(B)の場合に比べて大きいことを示す。
物体検出装置100は、動作状態検出部65によりショベル60の後進速度が所定速度以上に達したと判断すると、5本の測定ラインのそれぞれに配置された検査点の間隔を図21(B)の状態から図21(C)の状態に拡大する。その後、物体検出装置100は、5本の測定ラインのそれぞれに配置された検査点に関する評価値CGRAを決定し、決定した評価値CGRAの分布に基づいて、測定ライン毎に物体の存否を判定する。
このように、物体検出装置100は、ショベル60が所定速度以上の後進状態にある場合には、所定速度未満の後進状態のときと同じ角度範囲を対象としながら、検査点の間隔を拡大して物体検出処理を実行する。その結果、物体検出装置100は、物体検出処理に要する演算コストを増大させることなく、ショベル60が到達可能な後方のより遠方の空間領域をも監視することができる。
図21(D)は、ショベル60が右旋回状態のときに活性状態となる測定ラインの配置例であり、上部旋回体63の旋回中心から、約18度の角度間隔で旋回中心に対し右斜め前方の約36度の角度範囲に放射状に伸びる3本の測定ラインと、旋回中心に対し左斜め後方に伸びる2本の測定ラインとを示す。
物体検出装置100は、動作状態検出部65によりショベル60が右旋回状態にあると判断すると、5本の測定ラインのそれぞれに配置された検査点に関する評価値CGRAを決定し、決定した評価値CGRAの分布に基づいて、測定ライン毎に物体の存否を判定する。
このように、物体検出装置100は、ショベル60が右旋回状態にある場合には、停止状態のときに比べ比較的小さな角度間隔(約18度間隔)で測定ラインを配置する。また、物体検出装置100は、掘削アタッチメントEの旋回方向(時計回り方向)にある比較的狭い角度範囲(約36度)と、上部旋回体63の後部(カウンタウェイト部)の旋回方向(時計回り方向)にある比較的狭い角度範囲(約18度)とを対象として物体検出処理を実行する。その結果、物体検出装置100は、物体検出処理に要する演算コストを抑制しながら、旋回する掘削アタッチメントE及びカウンタウェイト部のそれぞれが到達可能な空間領域を重点的に監視することができる。
図21(E)は、図21(D)の状態に比べ掘削アタッチメントEが短縮された状態(例えば、ブームが上昇させられ、アームが閉じられ、バケットが閉じられた状態である。)でショベル60が右旋回するときに活性状態となる測定ラインの配置例を示す。また、図21(E)は、上部旋回体63の旋回中心から、約18度の角度間隔で旋回中心に対し右斜め前方の約36度の角度範囲に放射状に伸びる3本の測定ラインと、旋回中心に対し左斜め後方に伸びる2本の測定ラインとを示す。また、図21(E)は、旋回中心に対し右斜め前方の約36度の角度範囲に放射状に伸びる3本の測定ライン上に配置される検査点の間隔が、図21(D)の場合に比べて小さいことを示す。
物体検出装置100は、動作状態検出部65により掘削アタッチメントEの旋回半径が所定値未満の状態で右旋回が開始されたと判断すると、その3本の測定ラインのそれぞれに配置された検査点の間隔を図21(D)の状態から図21(E)の状態に縮小する。その後、物体検出装置100は、3本の測定ラインのそれぞれに配置された検査点に関する評価値CGRAを決定し、決定した評価値CGRAの分布に基づいて、測定ライン毎に物体の存否を判定する。
このように、物体検出装置100は、掘削アタッチメントEの旋回半径が所定値未満の状態で右旋回が開始された場合には、所定値以上の旋回半径で右旋回が開始されたときと同じ角度範囲を対象としながら、検査点の間隔を縮小して物体検出処理を実行する。その結果、物体検出装置100は、物体検出処理に要する演算コストを増大させることなく、旋回する掘削アタッチメントEが到達可能な空間領域をより効率的に監視することができる。
図21(F)は、ショベル60が左旋回状態のときに活性状態となる測定ラインの配置例であり、図21(D)に対応する。また、図21(G)は、図21(F)の状態に比べ掘削アタッチメントEが短縮された状態でショベル60が左旋回するときに活性状態となる測定ラインの配置例であり、図21(E)に対応する。図21(D)と図21(F)との間の違いは、旋回方向のみであるため、説明を省略する。図21(E)と図21(G)との間の違いについても同様である。
また、物体検出装置100は、図21(D)〜図21(G)に示すように掘削アタッチメントEの伸縮状態に応じて測定ラインや検査点の配置を変更することに代えて或いは加えて、上部旋回体63の旋回速度に応じて測定ラインや検査点の配置を変更してもよい。例えば、物体検出装置100は、上部旋回体63の旋回速度が大きい程、測定ライン間の角度間隔を大きくし、より広い角度範囲を監視するようにしてもよい。
図21(H)は、ショベル60が後進状態のときに活性状態となる測定ラインの別の配置例を示す。図21(H)の配置は、図20に示す測定ラインの基本配置(放射状配置)とは異なる配置(格子状配置)を用いて形成され、図21(B)に示す配置の代わりに採用され得る。また、図21(I)は、図21(H)の状態に比べショベル60が比較的高速で後進するときの測定ラインの配置例であり、図21(C)に示す配置の代わりに採用され得る。なお、図21(I)の配置は、各測定ライン上に配置される検査点の間隔が、図21(H)の場合に比べて大きいことを示す。
このように、物体検出装置100は、複数の測定ラインが放射状に配置される場合と同様、複数の測定ラインが平行に配置される場合であっても、ショベル60が所定速度以上の後進状態にある場合には、検査点の間隔を拡大して物体検出処理を実行する。その結果、物体検出装置100は、物体検出処理に要する演算コストを増大させることなく、ショベル60が到達可能な後方のより遠方の空間領域をも監視することができる。また、物体検出装置100は、測定ラインが放射状に配置される場合と比べ、測定ラインが平行に配置される場合には、ショベル60から比較的離れた地点に存在する物体を、ショベル60に比較的近い地点に存在する物体を検出する場合と同様の分解能で検出することができる。
なお、上述の実施例において、物体検出装置100は、個別に活性状態・非活性状態の切り換えが可能な検査点のカメラ座標系における座標点を予め記憶し、それら検査点の活性状態・非活性状態を切り換えることによって、測定ラインを動的に設定する。しかしながら、本発明はこれに限定されない。例えば、物体検出装置100は、検査点を動的に設定しながら、すなわち、検査点に対応するカメラ座標系上の座標点を動的に設定しながら、測定ラインを動的に設定してもよい。
以上の構成により、物体検出装置100は、ショベル60の動作状態に応じて動的に測定ライン及び検査点の配置を切り換えるので、動作状態によっては物体の存否を判定する必要のない範囲を測定範囲から適切に除外することができ、物体検出処理に要する演算コストを更に低減させることができる。
また、物体検出装置100は、動作状態によっては物体の存否を判定する必要のない範囲を測定範囲から除外することで低減させた演算コストを、物体の存否を判定する必要のある範囲をより詳細に監視するために利用することにより、演算コストを増大させることなく検出範囲の分解能を高めることができる。
以上、本発明の好ましい実施例について詳説したが、本発明は、上述した実施例に制限されることはなく、本発明の範囲を逸脱することなしに上述した実施例に種々の変形及び置換を加えることができる。
例えば、上述の実施例において、物体検出装置100は、評価値CGRAとしてヒストグラム同士の各要素の強度差に基づく評価値を採用するが、輝度差の二乗和SSD(Sum of Squared Difference)、輝度差の総和SAD(Sum of Absolute Difference)、正規化相互相関ZNCC(Zero-mean Normalized Cross-Correlation)等を評価値として採用してもよい。また、物体検出装置100は、評価値を決定するために、SIFT(Scale-Invariant Feature Transform)、HOG(Histograms of Oriented Gradients)等のアルゴリズムを用いてもよい(藤吉弘亘、"Gradientベースの特徴抽出−SIFTとHOG−"、情報処理学会、研究報告CVIM 160, pp.211-214, 2007参照。)。