以下、図面を参照して、本発明の実施形態について説明する。ここでは、運搬車両としてのダンプトラックを自走式産業機械として適用している。ただし、自走式産業機械はダンプトラックには限定されない。例えば、下部走行体を有する自走式の建設機械を自走式産業機械として適用してもよい。ダンプトラックとしてはリジットタイプとアーティキュレートタイプとがあるが、何れを適用してもよい。要は、所定の作業(運搬や掘削等)を行う任意の自走式産業機械に本実施形態の画像処理装置を適用することができる。なお、以下において、「左」とは運転室から見たときの左方であり、「右」とは運転室から見たときの右方である。
また、本実施形態における「塵埃」には、土煙や霧、煙、粉塵等のような空中の浮遊物が含まれる。この塵埃が発生すると、視界が良好でなくなる。塵埃が発生する要因としては、地面(路面)の土埃が自然的に空中に舞い上がることにより発生する場合もあり、他の車両が走行したときの風圧により土埃が空中に舞い上がることにより発生する場合もある。
図1は、本実施形態のダンプトラック1の一例を示している。ダンプトラック1は、車体フレーム2と前輪3(3Lおよび3R)と後輪4(4Lおよび4R)とベッセル5とカメラ6と運転室7と画像処理装置8とモニタ9とを備えて構成している。車体フレーム2はダンプトラック1の本体を形成するものであり、車体フレーム2の前方に前輪3、後方に後輪4を設けている。なお、前輪3Rは右方の前輪3であり、前輪3Lは左方の前輪3である。また、後輪4Rは右方の後輪4であり、後輪4Lは左方の後輪4である。ベッセル5は荷台であり、土砂や鉱物等を積載する。ベッセル5は起伏可能に構成されている。
ダンプトラック1には任意の位置に撮像部としてのカメラ6を設置することができる。図2はダンプトラック1の側面図を示しており、カメラ6は運転室7の前方に取り付けられている。そして、カメラ6はダンプトラック1の前方の斜め下方を俯瞰するような視野範囲AR(図中の破線の範囲)で撮影を行っている。カメラ6が撮影した映像は画像データとして画像処理装置8に出力される。なお、カメラ6の視野範囲ARはダンプトラック1の前方の斜め下方には限定されない。例えば、ダンプトラック1の後方の斜め下方を撮影するようにしてもよい。これにより、ダンプトラック1を後進させるときに、後方の状況をモニタ9に表示することができる。
運転室7はオペレータが搭乗してダンプトラック1を操作する各種の操作手段が設けられている。例えば、ダンプトラック1を前進または後進させるシフトレバー等が操作手段として設けられている。運転室7には画像処理装置8とモニタ9とが設けられており、カメラ6が撮影することにより生成される画像データは画像処理装置8で所定の画像処理が行われる。画像処理が行われた画像データはモニタ9に表示される。モニタ9は表示装置であり、基本的にモニタ9にはカメラ6が撮影する映像が表示されている。
図2においては、視野範囲ARはダンプトラック1の前方の斜め下方の領域となっており、この中に塵埃領域DAと作業員Mとが存在している。また、視野範囲ARには前方構造物10が含まれている。前方構造物10はダンプトラック1の車体フレーム2の前方の構造物であり、視野範囲ARの一部に前方構造物10が含まれるようになっている。なお、図2に示した視野範囲ARは一例であり、他の作業機械やサービスカー等が視野範囲ARに含まれることもある。
図3は画像処理装置8の構成を示している。画像処理装置8はカメラ6が撮影した画像データに対して画像処理を行う画像処理コントローラである。そして、画像処理を行った画像データをモニタ9に表示する。画像処理装置8は、画像データ記憶部21と高輝度画素検出部22と鮮鋭化処理部23と非エッジ画素検出部24と重複画素検出部25と塵埃領域生成部26と移動体領域検出部27と塵埃領域除去部28と塵埃領域走査部29と障害物判定部30と障害物移動認識部31と画面作成部32とを備えて構成している。
画像データ記憶部21はカメラ6が撮影した映像を画像データとして記憶する。カメラ6は所定の撮像周期で画像データを画像データ記憶部21に出力している。従って、画像データ記憶部21には、最新の画像データから順番に時間的に古い画像データが記憶される。画像データ記憶部21に記憶される画像データの量が多くなったときには、最も古い画像データから削除される。カメラ6は所定の撮像周期(周期)で画像データを生成するが、画像データを生成するタイミングは非周期的であってもよい。
高輝度画素検出部22は画像データ記憶部21に記憶されている最新の画像データの中から高輝度の画素を検出する。画像データはX方向(横方向)およびY方向(縦方向)に所定の画素数から構成されている。高輝度画素検出部22は画像データの全ての画素について高輝度画素であるか否かを判定する。判定する対象の画素の輝度値が所定の閾値以上のときに当該画素は高輝度画素として判定される。このときの閾値は、塵埃と特定する輝度値に設定することができる。塵埃の輝度値は比較的高いため、塵埃の輝度値よりも高い輝度値の画素を高輝度画素とする。なお、塵埃と特定する閾値は任意に設定することができる。
鮮鋭化処理部23は、最新の画像データの全ての画素について鮮鋭化処理を行う。鮮鋭化処理は1つの画素を中心画素として、その周囲の8画素を周辺画素とした合計9画素について、中心画素と周辺画素との輝度値の差異を強調する処理である。従って、輝度値の差異を強調する処理であれば任意の処理を適用できる。ここでは、後述する鮮鋭化フィルタを用いてフィルタリング処理を行い、中心画素と周辺画素との差異を強調している。
非エッジ画素検出部24は、鮮鋭化処理された画像データの全ての画素について非エッジ画素の検出を行う。ダンプトラック1が走行する地面には凹凸のエッジが存在している。当該エッジを含む画像を撮影すると、画像データ中のエッジ部分における隣接する画素間の輝度値に比較的大きな差異を生じる。そこで、中心画素と周辺画素の輝度値の差異が所定の閾値未満のときに、エッジがないものとして検出する。逆に、輝度値の差異が所定の閾値以上のときには、エッジが存在していることになる。
非エッジ画素検出部24が非エッジ画素を検出するときの閾値は、地面に凹凸エッジが存在しているときに検出される輝度値の差異を基準とすることができ、このときの閾値は任意に設定することができる。非エッジ画素検出部24が非エッジ画素を検出するために、鮮鋭化処理を行っている。つまり、鮮鋭化処理を行うことで、輝度値の差異が強調されるため、非エッジ画素検出部24が非エッジ画素を検出しやすくなる。よって、非エッジ画素検出部24が非エッジ画素を検出できれば、鮮鋭化処理部23は省略できるが、確実に非エッジ画素を検出するために、鮮鋭化処理部23を設けることが望ましい。
重複画素検出部25は高輝度画素検出部22で検出された高輝度画素と非エッジ画素検出部24で検出された非エッジ画素とが重複している画素を重複画素として検出する。画像データの対応する画素について、高輝度画素であり且つ非エッジ画素である画素のみを重複画素として抽出する。画像データの中の各画素が重複画素であるか否かの情報が塵埃領域生成部26に出力される。
塵埃領域生成部26は重複画素に基づいて、画像データ中の塵埃領域を特定する。重複画素により一定の領域が形成されるときに、当該領域を重複画素領域とする。この重複画素領域が所定の領域(面積)以上のときに、当該重複画素領域を塵埃領域として特定する。前記の所定の領域は塵埃として特定できる領域が基準となる。通常の塵埃領域はある程度の大きさの領域となっているため、重複画素領域が所定の領域以上のときに、塵埃領域を特定することができる。勿論、この所定の領域は任意の値に設定することができる。ただし、塵埃領域は少なくとも作業員よりは大きな領域とする。重複画素領域が塵埃領域であるか否かは画素数を基準としてもよいが、後述するように外接矩形を使用して特定してもよい。
移動体領域検出部27は画像データの中の移動体領域を検出する。移動体領域は一定の領域を形成しており、時間的に異なる画像データを比較したときに、移動体領域が異なる位置に移動しているときに、当該領域を移動体領域として検出する。移動体領域の検出には任意の手法を用いることができる。本実施形態では、オプティカルフロー検出手法のブロックマッチングを用いているが、異なる時間の画像データに基づいて、所定の領域が移動していることを移動体領域として検出できるものであれば、任意の手法を用いることができる。
例えば、画像データの各画素における明るさの空間的勾配と時間的勾配の間の関係を用いて検出する勾配法を用いてもよいし、移動体領域がないときの画像データと最新の画像データとの差分を検出する背景差分法、或いは時間の異なる3枚の画像データを用いて2枚の差分画像を生成して移動体領域を検出するフレーム間差分法等の任意の手法を用いることができる。
塵埃領域除去部28は、移動体領域検出部27から移動体領域を入力し、塵埃領域生成部26から塵埃領域を入力する。画像データの中で作業員のような障害物も移動体であり、塵埃領域も移動体である。そこで、塵埃領域除去部28は移動体から塵埃領域を除去する処理を行う。塵埃領域を除去した移動体領域は障害物判定部30に出力される。そして、障害物判定部30において、塵埃領域を除去した移動体領域を障害物候補として障害物であるか否かが判定される。なお、この障害物候補は塵埃領域外の障害物候補となる。
塵埃領域走査部29は、塵埃領域の内側に障害物候補が存在しているか否かを検出する。塵埃領域走査部29は塵埃領域生成部26より塵埃領域を入力しており、この塵埃領域の中に障害物候補が存在しているか否かを判定する。塵埃が発生すると、地面の凹凸エッジは塵埃領域に覆われる。このため、地面のエッジをほぼ判別不能となる。そのため、障害物の境界を検出しやすくなる。そこで、塵埃領域走査部29は塵埃領域の内側の全ての画素について、中心画素と周辺画素との輝度値の差異が所定の閾値以上であるか否かを判定する。
このときの閾値は塵埃領域内の障害物の境界を検出できる輝度値の差異として設定する。勿論、この閾値は任意の値に設定できる。塵埃領域走査部29は検出した障害物の境界の情報を障害物判定部30に出力する。そして、障害物判定部30において、障害物の境界により形成される領域が障害物候補として障害物であるか否かが判定される。なお、この障害物候補は塵埃領域内の障害物候補となる。
障害物判定部30は、塵埃領域外の障害物候補、塵埃領域内の障害物候補またはその両方の障害物候補に基づいて、障害物を判定する。障害物候補は所定の領域を形成しており、障害物候補の領域が所定の閾値以上のときに障害物候補は障害物として判定される。このときの閾値は、視野範囲ARのうち最も遠い場所に通常の人間が位置しているときの領域とすることができる。勿論、この閾値は任意に設定することができる。これにより、作業員を障害物として検出でき、また作業員よりも大きい他の自走式産業機械やサービスカー等も障害物として検出できる。
一方、障害物候補が塵埃領域の境界に位置しているときには、障害物候補の一部が塵埃領域外に位置しており、残部が塵埃領域内に位置している。従って、塵埃領域外の障害物候補のみでは障害物として判定されない。また、塵埃領域内の障害物候補のみでは障害物として判定されない。そこで、塵埃領域外の障害物候補と塵埃領域内の障害物候補とが連続しているときには、連続している領域を連続領域として、この連続領域が前述した閾値以上であるか否かを判定する。閾値以上であれば、当該連続領域は障害物として判定される。これにより、障害物候補が塵埃領域の境界に位置しているときの障害物の判定が行われる。
障害物移動認識部31は、障害物が移動しているか否かを認識する。つまり、画像データの中で障害物の位置が移動しているか否かを判定する。障害物が移動しているか否かの検出は任意の手法を用いることができる。画像データは周期的に取得されることから、画像データの中で検出された障害物の位置が画像データの中で変化していれば、障害物が移動していることを認識する。
障害物移動認識部31は主に作業員を検出する。つまり、通常の人間が歩行する速度で移動する障害物を認識する。ここでは、障害物の周囲に画素を形成して、これを周囲画素とする。障害物移動認識部31は、2つの手法により障害物の移動を検出する。第1の手法では、時間的に前後する画像データの中で障害物の画素の周囲の画素(周囲画素)が部分的に重複しているときに、障害物の移動を検出する。また、第2の手法では、時間的に前後する画像データのうち一方の周囲画素の全ての画素が他方の周囲画素の内側にあるときに、障害物の移動を検出する。障害物移動認識部31は、第1の手法と第2の手法との何れか一方のみを行う機能を有していてもよいし、両者を行う機能を有していてもよい。これにより、作業員が歩行により移動していることを検出することができる。
画面作成部32は、画像データ記憶部21に記憶されている最新の画像データをモニタ9に表示する画面を作成する。画面作成部32には塵埃領域生成部26から塵埃領域が入力され、障害物判定部30から障害物が入力される。画面作成部32は、画像データに塵埃領域や障害物を特定する描画する画像処理を行う。ここでは、画面作成部32は塵埃領域や障害物に外郭を描画する処理を行う。この画像処理を行った画像データを表示画面として作成し、モニタ9に出力する。モニタ9は入力した表示画面を表示する。なお、画面作成部32は、塵埃領域と障害物との何れか一方のみに外郭を描画してもよい。
以上が構成である。次に、動作について説明する。カメラ6はダンプトラック1の前方の斜め下方を視野範囲ARとして撮影を行っている。カメラ6には所定の撮像周期(フレーム/秒)が存在し、撮像周期ごとに1フレーム分の画像データを画像データ記憶部21に出力する。従って、カメラ6からは、撮像周期に依存した転送周期で画像データが画像データ記憶部21に記憶される。なお、カメラ6が撮影した画像データは直接的に高輝度画素検出部22と鮮鋭化処理部23と画面作成部32とに入力してもよい。つまり、カメラ6から直接的に入力した画像データに基づいて、高輝度画素検出部22と鮮鋭化処理部23と画面作成部32とは、それぞれの処理を行うことが可能である。
前述したように、移動体領域検出部27は移動体領域を検出する。このとき、カメラ6の撮像周期が高速であると、移動体領域が移動しているとしても、殆ど移動していないように認識される。このため、移動体領域として検出されなくなる。逆に、撮像周期が低速であると、移動体領域が高速に移動しているように認識される。この場合も、移動体領域として検出されなくなる。そこで、撮像周期が高速の場合には、最新の画像データと複数周期前の画像データとを用い、撮像周期が低速の場合には、最新の画像データと1周期前の画像データとを用いて処理を行う。これにより、時系列の繋がりを確保する。
最初に、画像データの中の塵埃領域を特定する処理について、図4のフローチャートを参照して説明する。カメラ6は所定の撮像周期で画像データを画像データ記憶部21に出力しており、画像データ記憶部21は最新の画像データを記憶する。図5は画像データ(PDとする)の一例を示している。ダンプトラック1の周辺には塵埃が発生しており、画像データPDの中に塵埃領域DAが含まれている。ただし、この時点では、塵埃領域DAが塵埃であるとは特定されていない。
画像データPDには、他に地面の凹凸のエッジEGが含まれており、またダンプトラック1の前方構造物10が映し出されている。前方構造物10が画像データPDに映し出されているのは、カメラ6が前方の斜め下方を俯瞰的に撮影しており、視野範囲ARに前方構造物10の一部が含まれているためである。画像データ記憶部21には最新の画像データPDが記憶されており、高輝度画素検出部22は最新の画像データPDを取得する(ステップS1)。なお、高輝度画素検出部22にはカメラ6から直接的に画像データPDを入力させるようにしてもよい。
高輝度画素検出部22は、画像データの全ての画素に対して塵埃と特定できる輝度値よりも高い輝度値を持つ画素を検出する(ステップS2)。図6は画像データPDから高輝度画素を検出した高輝度画像データを示している。図6の高輝度画像データのうち黒い部分は高輝度画素として検出された画素である。この高輝度画像データは重複画素検出部25に入力される。
図6に示す高輝度画像データには一定の領域が形成される。これを高輝度領域とする。この高輝度領域は図5に示した塵埃領域DAに近い領域となっている。これは、塵埃領域DAの輝度値が高いため、高輝度領域として検出されるためである。ただし、高輝度領域だけでは、日照条件や照明条件等により、塵埃領域DA以外を高輝度領域として検出する可能性がある。また、本来は高輝度画素として検出される画素が検出されなくなる可能性がある。従って、高輝度領域のみによって、塵埃領域DAを特定しない。
次に、鮮鋭化処理部23は画像データ記憶部21から画像データPDを読み出す。鮮鋭化処理部23は画像データPDの全ての画素に対して鮮鋭化処理を行う(ステップS3)。鮮鋭化処理部23が行う鮮鋭化処理は、図7に示す鮮鋭化フィルタを用いて行う。同図に示すように、鮮鋭化フィルタは中心画素とその周囲の8画素の周辺画素とにより構成されている。中心画素は+K(Kは1以上の整数)、周辺画素は−L(Lは1以上の整数)の値となっている。
鮮鋭化フィルタを用いて最新の画像データPDの全てに画素についてフィルタリング処理を行う。このフィルタリング処理を行うことで、画像データPDの中心画素の輝度値に+Kの値が乗算され、周辺画素の8画素にそれぞれ対応する画素に−Lの値が乗算される。そして、乗算後の中心画素の輝度値に乗算後の周辺画素の輝度値を加算する。この加算した結果が鮮鋭化値となる。この鮮鋭化値は中心画素の輝度値を示している。
これにより、図8に示すような鮮鋭化画像データが得られる。鮮鋭化画像データは画像データPDに対して鮮鋭化処理を行った画像データであり、隣接する画素間に輝度値の差異を強調している。このため、図8に示すように、塵埃領域DAの境界とエッジEGとが強調された画像データになっている。
鮮鋭化処理は地面のエッジEGを強調するための処理である。地面の凹凸のエッジEGがある部分は画像データPDの中で輝度値にある程度の差異を生じる。そこで、鮮鋭化処理を行うことで、地面のエッジEGがより強調されて検出される。従って、鮮鋭化フィルタのフィルタ係数KおよびLはエッジEGが画像データPDの中で強調して出現されるような値に設定する。この鮮鋭化画像データが非エッジ画素検出部24に出力される。
非エッジ画素検出部24は鮮鋭化画像データの全ての画素について非エッジ画素の検出を行う(ステップS4)。鮮鋭化画像データはエッジEGが強調された画像になっている。そこで、非エッジ画素検出部24はエッジEGを除外した画像を非エッジ画像データとして生成する。図9は非エッジ画像データを示している。図9の非エッジ画像データのうち、黒い画素が非エッジ画素として検出された画素である。
非エッジ画素検出部24は、エッジEGを除外した画像を生成するために、隣接する画素間の輝度値の差異が所定の閾値未満の画素を非エッジ画素として検出する。このときの閾値は、前述したようにエッジEGがあるときの輝度値の差異を基準とすることができる。従って、図8ではエッジEGが存在していた部分は非エッジ画素としては検出されず、エッジEGが存在していない部分が非エッジ画素として検出される。これが、図9に示す非エッジ画像データである。
ここでは、エッジEGを判定するために、中心画素の輝度値を8画素の周辺画素の輝度値の平均値で微分を行い、微分値が所定の閾値よりも小さい場合に、中心画素を非エッジ画素として判定する。このときの閾値はエッジEGがあるときの微分値を基準とすることができる。これにより、隣接する画素間の輝度値の差異に基づいて、非エッジ画素を検出することができる。勿論、輝度値の差異に基づいてエッジでない画素を検出する手法であれば任意の手法を用いることができる。
前述したように、鮮鋭化処理により、画像データPDの中でエッジEGが強調された鮮鋭化画像データに基づいて、非エッジ画像データを生成している。従って、エッジEGの部分の輝度値の差異は明確になっているため、非エッジ画素を検出する精度が飛躍的に向上する。これにより、図9のように、エッジEGを除外した非エッジ画像データを生成することができる。なお、同図の非エッジ画像データに示すように、塵埃領域DAの境界部分についても、輝度値の差異が大きいため、非エッジ画素としては検出されていない。
重複画素検出部25は、高輝度画素検出部22から高輝度画像データを入力し、非エッジ画素検出部24から非エッジ画像データを入力する。高輝度画像データも非エッジ画像データも画像データPDに基づいて作成されている。よって、高輝度画像データと非エッジ画像データとは同じ画素数を有しており、各画素が対応している。重複画素検出部25は高輝度画素と非エッジ画素とが重複している画素を重複画素としている(ステップS5)。つまり、重複画素は高輝度画素であり、且つ非エッジ画素の画素となる。
図10は、重複画素検出処理を示している。図6に示した高輝度画素(黒い画素)と図9に示した非エッジ画素(黒い画素)とが重複している画素を重複画素として検出している。図10に示すように、重複画素により一定の領域が形成される。この領域を重複画素領域とする。重複画素領域は高輝度領域とほぼ近い形状をしている。この重複画素領域を含む重複画像データが塵埃領域生成部26に入力される。
塵埃領域生成部26は、重複画素領域に基づいて塵埃領域DAを特定する。このために、重複画素領域が所定の領域以上のときに、当該重複画素領域を塵埃領域DAとして判定する(ステップS6)。塵埃領域DAはある程度の大きさを有しているため、小さい領域は塵埃領域DAとは判定しない。少なくとも、作業員と同程度の大きさの領域は塵埃領域DAとして判定しない。これにより、重複画素領域から塵埃領域DAを特定することができる。塵埃領域DAが特定された画像データを塵埃領域画像データとする。
重複画素領域の面積の判定の手法は任意の手法を用いることができる。単純に、画素数の比較を行ってもよい。つまり、重複画素領域の画素数が所定の画素数以上のときに、当該重複画素領域を塵埃領域DAとして特定することができる。このときの所定の画素数は塵埃領域DAを特定する面積の画素数とすることができる。
また、図11に示すように、外接矩形を用いて判定を行ってもよい。重複画素領域に外接矩形(図中の破線)を形成し、外接矩形が所定の閾値以上の重複画素領域を塵埃領域DAとしてもよい。前記の閾値としては、視野範囲ARの最も遠い場所に通常の大きさの人間が位置しているときの画素数(障害物画素数)を基準とすることができる。この障害物画素数は、障害物を検出できる最大距離、カメラ6の取り付け高さ・俯角、カメラ6の画素数と画角との情報に基づいて、画像データPDの障害物が前記の最大距離の位置に存在するときの画素数とすることができる。
塵埃領域DAは少なくとも人間よりもサイズが大きいため、障害物画素数よりも画素数が大きな重複画素領域を塵埃領域DAとすることができる。外接矩形を形成した画像データを外接矩形画像データとして、障害物画素数を基準として塵埃領域DAを特定した画像データが塵埃領域画像データとなる。
ところで、重複画素領域は基本的には高輝度領域に近い領域であり、高輝度画素と非エッジ画素とが重複している領域となっている。塵埃は輝度が高いため、高輝度画素として検出される。このため、前述したように、高輝度領域は塵埃領域DAと近い領域になっている。ただし、日照条件や照明条件等によっては、塵埃領域DAを正確に検出することができない。従って、高輝度領域のみによっては塵埃領域DAを特定しない。
そこで、非エッジ画素検出部24で非エッジ画素を検出し、高輝度画素と非エッジ画素とが重複(共通)している画素を重複画素として、重複画素により形成される重複画素領域のみを塵埃領域の候補としている。カメラ6の視野範囲ARに塵埃領域DAが発生すると、地面は塵埃に覆われ、地面を認識することが殆どできなくなる。このため、塵埃領域DAでは地面の凹凸のエッジEGは検出されなくなる。その性質を利用して、重複画素領域は高輝度画素と非エッジ画素とが重複している領域としている。
従って、塵埃領域DAは、高輝度画素だけでなく、非エッジ画素を満たすことを条件としている。つまり、高輝度画素と非エッジ画素との両方の条件を具備した画素のみを重複画素としているため、正確に塵埃領域DAを検出することができる。そして、塵埃領域DAは狭小な領域ではなく、比較的広範な領域となる。従って、塵埃領域DAとして特定できる領域以上の重複画素領域を塵埃領域DAとすることで、塵埃領域DAの検出精度はさらに向上する。以上により、塵埃領域生成部26は画像データPDの中で塵埃領域DAを生成する。塵埃領域DAを特定した塵埃領域画像データは画面作成部32に出力される。
画面作成部32には画像データ記憶部21から最新の画像データPDが入力されている。つまり、カメラ6が撮影した画像データPDが画面作成部32に入力される。画面作成部32には塵埃領域画像データが入力されている。この塵埃領域画像データはもともと画像データPDに基づいて生成されたものであるから、画像データPDと対応している。そこで、塵埃領域画像データの塵埃領域DAの境界部分を画像データPDに描画する。
図12は画像データPD中に塵埃領域DAの境界部分を外郭として描画している。この外郭は塵埃外郭41となる。つまり、塵埃外郭41で囲まれた領域が塵埃領域DAとなる。画面作成部32は画像データPDに塵埃外郭41を描画した画面を作成する(ステップS7)。そして、モニタ9に作成された画面を出力する。モニタ9は入力した画面を表示する(ステップS8)。
運転室7に搭乗するオペレータは、モニタ9に表示されている画像データPDに塵埃外郭41で囲まれた塵埃領域DAを視認することで、塵埃外郭41で囲まれた領域は塵埃領域DAであることを一見して把握することができる。これにより、ダンプトラック1の前方に塵埃領域DAが発生していることをオペレータに認識させることができる。塵埃領域DAの中ではオペレータの視界は良好でなくなるため、オペレータに塵埃領域DAが発生していることの注意喚起を行うことができる。これにより、ダンプトラック1の周囲の状況を正確に認識することができる。
塵埃領域DAは流動的に移動するため、塵埃外郭41で囲まれた塵埃領域DAは刻々と移動する。ただし、塵埃領域DAは塵埃の領域であることが明確に認識されるため、塵埃領域DAが他の障害物(例えば、作業員や作業機械、サービスカー等)と認識されることはない。従って、塵埃領域DAと障害物とを明確に区別することができる。
画像処理により移動体領域を検出して障害物を検出する場合には、塵埃領域DAも障害物として検出される。従って、画像処理を行うことにより移動体領域を障害物として検出する場合には、塵埃領域も移動体領域に含まれることから、正確に障害物を検出できなくなる。そこで、塵埃領域DAを明確に特定することで、障害物と塵埃領域DAとを区別することができ、画像処理により正確な障害物の検出を行うことができる。
また、塵埃が発生している場合には、モニタ9に塵埃を含んだ画像データが表示される。塵埃を含んだ画像データはノイズとして誤認識されやすく、異常な画像データとなる。しかし、塵埃領域DAを特定して塵埃外郭41で囲うように描画することで、画像データには塵埃領域DAが含まれており、ノイズを生じた異常な画像データでないことを、オペレータは一見して把握することができる。
なお、図2の例では、画像データPDにダンプトラック1の前方構造物10の一部が含まれるようにカメラ6の視野範囲ARを設定している。これにより、画像データPDには前方構造物10が表示され、且つ塵埃領域DAの塵埃外郭41も描画されている。従って、オペレータはモニタ9を視認することで、前方構造物10と塵埃領域DAとの距離感を認識することができる。
次に、画像データPDの中に障害物が含まれており、障害物を特定する例について説明する。障害物としては主に作業員が想定されるが、他の作業機械やサービスカー等も障害物となる。障害物の検出は、障害物が塵埃領域DAの外側に位置している場合と、塵埃領域DAの内側に位置している場合と、塵埃領域DAの境界に位置している場合と、で検出の態様が異なる。以下、それぞれの場合に分けて説明する。
最初に、障害物を作業員Mとして、作業員Mが塵埃領域DAの外側の領域に存在している場合について説明する。図13は、カメラ6が撮影した画像データPDを示している。この図に示すように、作業員Mは塵埃領域DAの外側の領域に位置している。作業員Mを検出するために、移動体領域検出部27は移動体領域を検出する。
作業現場において、通常は、作業員Mは移動している。そこで、移動体領域検出部27が移動体領域を検出することで、作業員Mを検出する。画像データPDの中で移動体領域を検出するために任意の手法を用いることができる。ここでは、オプティカルフロー検出手法のブロックマッチングを用いた場合を説明するが、時間の異なる2つ以上の画像データPDに基づいて移動体領域を検出することができれば、移動体領域検出部27は任意の手法を用いて、移動体領域の検出を行うことができる。
移動体領域検出部27は、カメラ6の撮像周期によって1周期前または複数周期前の画像データPD(ここでは、1周期前の画像データPD)と最新の画像データPDとを読み出す。オプティカルフロー検出手法では、画像データPDのうち所定の画素数からなる注目領域NAを設定する。図14の例では、X方向に4画素、Y方向に4画素の合計16画素の領域を注目領域NAとしている。勿論、注目領域NAの画素数は任意に設定することができる。そして、注目領域NAを中心として、注目領域NAよりも縦横に大きな領域を検索領域SAとする。図14の例では、X方向およびY方向にそれぞれ8画素、合計64画素の領域を検索領域SAとしている。
移動体領域検出部27は、検索領域SAの中を注目領域NAと同じ大きさの領域(比較領域CAとする)で検索を行う。つまり、比較領域CAと注目領域NAとは同じ大きさの領域であり、4画素×4画素の合計16画素となっている。図15の例では、比較領域CAを検索領域SAの左上からX方向に1画素ずつずらして、X方向の検索を行う。次に、Y方向に1画素ずらして、再びX方向に1画素ずらしてX方向の検索を行う。これにより、検索領域SAの全体を検索(スキャン)することができる。
移動体領域検出部27は注目領域NAが検索領域SAの中で移動しているか否かを検出する。このために、1転送周期前の画像データPDの注目領域NAと最新の画像データPDの比較領域CAとの対応する画素間の輝度値の差分を演算する。図16は注目領域NAと比較領域CAとの比較を示している。注目領域NAと比較領域CAとは4画素×4画素の合計16画素であり、注目領域NAの1画素と比較領域CAの1画素とは対応している。
そこで、対応している画素間の輝度値の差分を演算することで、画素ごとに差分値が得られる。移動体領域検出部27は16個の差分値をそれぞれ二乗する演算を行い、差分値を二乗した値を合計する演算を行う。このときの合計値が小さければ、注目領域NAと比較領域CAとは同じであると判定する。合計値が小さいか否かを判断する閾値は、注目領域NAと比較領域CAとが同一の障害物とみなせるか否かを基準とすることができる。勿論、このときの閾値は任意に設定することができる。
検索領域SAの全領域を検索して、注目領域NAと比較領域CAとの位置に変化が生じていれば、注目領域NAを移動体領域として検出することができる。位置に変化を生じていなければ、移動体領域として検出されない。以上により、移動体領域検出部27は移動体領域の検出を行うことができる。検索領域SAは任意に設定できるが、カメラ6の撮像周期の1周期の間(カメラ6の撮像周期が高速な場合は複数周期の間)に人間が通常の速度で歩行したときの移動量の限界に基づいて設定することができる。これにより、作業員Mを移動体として検出することができる。
ところで、塵埃領域DAも流動的に移動する。従って、塵埃領域DAも移動体領域として検出されることがある。そこで、移動体領域検出部27が検出した移動体領域は塵埃領域除去部28に出力され、塵埃領域除去部28で塵埃領域DAが移動体領域から除去される。塵埃領域除去部28には塵埃領域生成部26から塵埃領域DAを入力しており、この塵埃領域DAを移動体領域から除去する。これにより、移動体領域は塵埃領域DAを含まなくなる。
障害物判定部30には塵埃領域DAを含んでいない移動体領域が入力される。この移動体領域が障害物候補となる。障害物判定部30では塵埃領域除去部28から入力した障害物候補の領域の大きさを判定する。前述したように、視野範囲ARの最も遠い位置に通常の大きさの人間が存在しているときの画素数(障害物画素数)を基準として、障害物候補が障害物画素数以上であれば、障害物として判定し、それ以外の場合は障害物として判定しない。これにより、作業員Mが障害物と検出され、同様に作業員Mよりも大きな作業機械やサービスカー等も障害物として認識される。認識された障害物は画面作成部32に出力される。
画面作成部32は、障害物の周囲に障害物外郭42を描画する。ここでは、障害物外郭42は外接矩形として表示しているが、障害物外郭42は矩形でなくてもよい。画面作成部32は塵埃領域DAの境界に塵埃外郭41を描画し、且つ障害物としての作業員Mの周囲に障害物外郭42を描画する。これにより、図17のような画像データPDが作成される。
従って、画像データPDの中に塵埃外郭41を描画することで、オペレータは塵埃領域DAを把握することができるだけでなく、障害物外郭42を描画することで、作業員Mの存在を一見して把握することができる。塵埃外郭41と障害物外郭42とを異なる表示態様の外郭で表示することにより、塵埃領域と障害物との何れであるかを直感的に認識することができる。例えば、塵埃外郭41と障害物外郭42とで異なる線種を用いることで、両者の違いを明確に把握することができる。図17の例では、塵埃外郭41に破線を用い、障害物外郭42に実線を用いている。
以上により、塵埃領域DAの外側に障害物が存在している場合、塵埃領域と障害物(作業員M)とをオペレータに認識させることができる。これにより、画像データPDをモニタ9に表示することで、ダンプトラック1の周囲の状況を確実に認識することができる。
次に、塵埃領域DAの内側に障害物(作業員M)が存在している場合について説明する。図18は塵埃領域DAの内側に作業員Mが位置している状態の画像データPDを示している。塵埃領域DAの内側の視界は良好でないため、画像データPDの中で作業員Mは鮮明に表示されていない。そこで、この塵埃領域DAの内側の作業員Mを検出する。
塵埃領域生成部26により最新の画像データPDの中で塵埃領域DAが生成される。これにより、画像データのPDの中の塵埃領域DAが特定される。前述したように、塵埃領域DAの内側は、地面のエッジEGが覆われているため、エッジEGは検出されない。よって、塵埃領域DAの内側においては、地面のエッジEGは検出されないため、障害物の境界部が際立つことになる。
塵埃領域生成部26が生成した塵埃領域DAは塵埃領域走査部29に出力される。塵埃領域走査部29は塵埃領域DAの内側を走査する。この走査は中心画素とその周囲の8画素の周辺画素との間の輝度値の差異が大きいか否かに基づいて行われる。輝度値の差異が大きければ障害物と特定され、それ以外の場合は障害物とは特定されない。
ここでは、塵埃領域走査部29は、中心画素の輝度値を周辺画素の輝度値の平均値で微分する。このときの微分値が所定の閾値以上であれば、障害物の境界を検出し、それ以外の場合は障害物の境界を検出しない。ここでは、前記の閾値を障害物の境界を検出する輝度値の差異に設定する。この処理を塵埃領域DAの全ての画素について行う。これにより、障害物の境界の画素が検出される。
塵埃領域走査部29が走査をした結果、障害物の境界により形成される領域(障害物境界領域)を障害物候補として障害物判定部30に出力する。障害物判定部30は、障害物候補が前述した障害物画素数以上であるか否かによって障害物を判定する。障害物候補が障害物画素数以上のときに、障害物として判定する。これにより、塵埃領域DAの内側の作業員Mが障害物として検出され、作業機械やサービスカー等も障害物として検出される。
障害物判定部30が判定した障害物は画面作成部32に出力される。これにより、図19に示すように、塵埃領域DAの塵埃外郭41が描画され、塵埃領域DAの中に障害物外郭42が描画される。このときの画像データPDをモニタ9に表示することで、オペレータは塵埃領域DAの中に障害物(作業員M)が存在していることを認識することができる。
塵埃領域走査部29は、塵埃領域DAの各画素について輝度値の差異に基づいて、塵埃領域DAの中の障害物の境界を検出していた。このために、中心画素を周辺画素の平均値で微分していたが、他の手法により障害物の境界を検出してもよい。例えば、障害物のコーナーを特徴点として検出するコーナー検出法や直線を特徴点として抽出する直線抽出手法を用いてもよい。これらは単独で用いてもよいし、併用してもよい。要は、塵埃領域DAの内側の障害物の境界を検出できる手法であれば任意の手法を用いることができる。
次に、障害物が塵埃領域DAの境界に位置している場合について説明する。図20はカメラ6が撮影した画像データPDである。この画像データPDでは、作業員Mは塵埃領域DAの境界に位置している。このため、上半身が塵埃領域DAの内側にあり、下半身が塵埃領域DAの外側にある。なお、作業員Mは移動しているものとする。
従って、塵埃領域走査部29により作業員Mのうち塵埃領域DAの内側の部分が障害物候補となるが、この障害物候補は障害物と判定するために設定した領域を有していない。従って、作業員Mを障害物として認識することができない。同様に、塵埃領域除去部28により作業員Mのうち塵埃領域DAの外側の部分が障害物候補となるが、この障害物候補は障害物と判定できる領域を有していない。従って、作業員Mを障害物として認識することができない。
そこで、障害物判定部30は、塵埃領域除去部28から入力する移動体領域と塵埃領域走査部29から入力する障害物境界領域とが連続しているか否かを判定し、連続しているときには移動体領域と障害物境界領域とが連続している領域を連続領域として判定する。塵埃領域DAの境界に作業員Mが位置している場合の画像処理について図21乃至図24を用いて説明する。
図21に示すように、移動体領域検出部27は、1周期前の画像データPDと最新の画像データPDとに基づいて、移動体領域を検出している。図中の黒い部分が移動体領域となる。前述したように、塵埃領域DAも移動体領域として検出されるため、図21では塵埃領域DAの一部も移動体領域として検出されている。また、作業員Mも移動しているため、移動体領域として検出されている。図21のうち「M」で示しているが、作業員Mの移動体領域となる。移動体領域を検出した画像を移動体領域画像データとする。
塵埃領域除去部28は、塵埃領域生成部26から塵埃領域画像データを入力し、移動体領域検出部27から移動体領域画像データを入力する。そして、図22に示すように、塵埃領域除去部28は、移動体領域から塵埃領域DAを除去する。これにより、塵埃を除外した移動体の領域を得ることができる。塵埃領域除去部28が生成する画像を塵埃領域除去画像データとする。なお、塵埃領域除去画像データには、作業員M(の一部)だけでなく、移動体領域から塵埃領域DAを除外した他の領域も含まれている。
次に、塵埃領域走査部29は塵埃領域DAの内側を走査する。図23は、塵埃領域画像データと最新画像データPDとを入力して、塵埃領域DAを詳細に特定して、塵埃領域DAの内側の障害物の境界を検出するために、塵埃領域DAの内側の障害物の境界を検出する。障害物の境界を検出した画像データを塵埃領域走査画像データとする。なお、塵埃領域走査画像データには、作業員Mの一部以外も境界が検出されている。
図24に示すように、障害物判定部30は、塵埃領域除去部28から塵埃領域除去画像データを入力し、塵埃領域走査部29から塵埃領域走査データを入力する。そして、同図に示すように、障害物判定部30は2つの画像データを合成する。つまり、移動体領域と障害物境界領域とがそれぞれ障害物候補を構成する障害物候補領域画像データを生成する。障害物判定部30は移動体領域と障害物境界領域とが連続しているときには、連続領域として判定する。ここでは、「M」で示す部分が連続領域となる。そして、この連続領域、移動体領域および障害物境界領域が障害物候補となり、各障害物候補に外接矩形を形成する。これを、外接矩形形成画像データとする。
障害物判定部30は形成した外接矩形の領域判定処理を行う。つまり、障害物候補の外接矩形の領域(面積)が障害物として判定する面積を有している場合には、障害物として判定する。図24では、連続領域のみが障害物として判定されている。この連続領域は障害物としての作業員Mである。これにより、塵埃領域DAの境界に作業員Mが位置しているときに、作業員Mの検出を行うことができる。この作業員Mの検出を行った画像データが障害物画像データである。
なお、障害物判定部30は外接矩形を用いて面積判定処理を行っているが、前述したように、障害物候補の画素数が障害物と判定できる画素数以上のときに、当該障害物候補を障害物として判定してもよい。つまり、連続領域の画素数が障害物と判定できる画素数以上のときに、連続領域を障害物と判定することができる。
従って、塵埃領域DAの境界に位置している作業員Mを特定することができる。画面作成部32は、塵埃領域DAの塵埃外郭41を描画すると共に、障害物判定部30で判定された作業員Mの障害物外郭42を描画する。これにより、図25に示すように、塵埃領域DAが特定され、且つ塵埃領域DAの境界に位置している作業員Mも特定される。
ところで、作業員Mは、通常は作業現場で歩行により移動しているものであり、障害物判定部30により判定された障害物が移動している場合に、障害物が作業員Mであることを特定することができる。障害物が移動しているか否かの検出の手法は任意の手法を用いることができる。つまり、障害物として認識された画像データPDの中の領域が移動しているか否かを検出することができれば任意の手法を用いることができる。障害物移動認識部31が障害物の移動を検出するが、ここでは障害物移動認識部31は第1の手法または第2の手法を用いて、障害物の移動を検出する。
まず、第1の手法について説明する。図26は、第1の手法による障害物の移動を検出している状態を説明している。カメラ6は所定の撮像周期で撮像を行っており、画像データ記憶部21に最新の画像データPDから順番に古い画像データPDが記憶されている。
そこで、障害物判定部30は、最新の画像データを含む時間の異なる複数の画像データPDに基づいて、障害物が移動しているか否かを検出する。図26に示すように、最新の画像データPDの中で障害物を検出したときに、当該障害物の周囲に周囲画素を形成する。そして、図26では、1周期前および2周期前の障害物にも周囲画素を形成している。障害物移動認識部31は最新の画像データPDから順番に周囲画素が部分的に重複しているか否かを判定する。
周囲画素が部分的に重複していれば、障害物が移動していることが認識される。これにより、障害物は作業員Mとして認識することができる。一方、完全に重複している場合には、移動していないため、障害物は移動していないと判定する。そして、周囲画素が離間している場合には、やはり作業員Mとは認識しない。カメラ6には一定の撮像周期があり、通常の作業員Mの歩行であれば、撮像周期の間に移動できる移動量も限られている。そこで、周囲画素が離間しているような場合には、障害物が高速で移動しているため、これも作業員Mとしては検出しない。
従って、カメラ6の撮像周期によって、周囲画素が部分的に重複している場合のみ、障害物が移動していると判定し、当該障害物を作業員Mとして認識する。これにより、作業員Mを認識できる精度を向上させることができる。ダンプトラック1の周囲で最も注意を払う必要があるのは作業員Mであり、この作業員Mを検出することで、ダンプトラック1を発進するときの安全性を確保することができる。
このときに、図25等で示した障害物外郭42を、作業員Mと特定できるような描画を行うことで(例えば、線種を変えることで)、塵埃領域DAが発生している画像データPDの中で障害物が単なる障害物ではなく、作業員Mであることを直感的に認識することができる。
次に、障害物移動検出部31が行う第2の手法について説明する。第1の手法では、周囲画素が部分的に重複しているときに障害物が移動していると判定しているが、第2の手法では、周囲画素が重複していない場合であっても障害物の移動を検出している。図27は、その一例を示している。同図(A)は2周期前の障害物の画素とその周囲画素とを示している。なお、破線で示した画素は次の1周期前の周囲画素を示している。同図(B)は1周期前の障害物の画素とその周囲画素とを示している。なお、破線で示した画素は最新の周囲画素を示している。同図(C)は最新の障害物の画素とその周囲画素を示している。
2周期前の障害物は画素数が少ないが、最新の障害物は画素数が多い。これは、カメラ6の光軸上を障害物が移動しているときに同図(A)〜(C)のようになる。すなわち、障害物がカメラ6の光軸上をダンプトラック1に対して近接する移動を行っているときに、障害物の画素は同図(A)〜(C)のように変化する。同図(A)および(B)に示すように、時間的に前後する周囲画素は重複していない。しかし、時間的に前後する周囲画素が重複していなくても、障害物がカメラ6の光軸上を移動している場合には、障害物移動認識部31は障害物の移動を認識する。
第2の手法においては、障害物移動認識部31は、時間的に前後する周囲画素のうち一方の周囲画素の全ての画素が他方の周囲画素の内側にあるときに、障害物の移動を検出する。同図(A)の2周期前の周囲画素の全ての画素は1周期前の周囲画素の領域の内側にある。また、同図(B)の1周期前の周囲画素の全ての画素は最新の周囲がその領域の内側にある。つまり、時間的に前後する周囲画素は重複していないが、障害物は移動している。同図(A)〜(C)では、カメラ6の光軸上に沿って、徐々に障害物がダンプトラック1に近づいている状態を示しているが、障害物がダンプトラック1から遠ざかる場合(離間する場合)も同様である。
従って、第2の手法により障害物移動認識部31が障害物の移動を検出すると、当該障害物を作業員Mとして認識する。これにより、作業員Mを認識できる精度を向上させることができる点は第1の手法と同様である。第2の手法では、作業員Mが徐々にダンプトラック1に接近していることを認識することができる。これにより、ダンプトラック1を発進するときの安全性をさらに確保することができる。
障害物移動検出部31は第1の手法を行う機能だけを有してもよいし、第2の手法を行う機能だけを有していてもよい。ただし、所が異物移動検出部31は第1の手法と第2の手法との両者を行う機能を具備し、第1の手法または第2の手法の何れかの手法を用いて障害物の移動を検出することが望ましい。
なお、第2の手法において、障害物がカメラ6の光軸と完全に一致した方向に移動している場合だけでなく、光軸から僅かにずれた方向に移動している場合でも、障害物の移動検出を行うことができる。この場合でも、時間的に前後する周囲画素のうち一方の周囲画素の全ての画素が他方の周囲画素の内側に入っているときに、障害物の移動が検出される。
図28は、画面作成部32が行う処理のフローを示している。前述したように、塵埃領域生成部26が塵埃領域DAを生成する。このとき、塵埃領域生成部26は塵埃領域DAが存在しているか否かを判定する(ステップS11)。画面作成部32は、塵埃領域DAが存在していれば、塵埃外郭41を画像データPDに描画する(ステップS12)。一方、塵埃領域DAが存在していなければ塵埃外郭41を描画しない。
また、障害物判定部30は障害物候補に基づいて障害物が存在しているか否かを判定する(ステップS13)。障害物判定部30により障害物が存在していると判定されたときには、画面作成部32は障害物外郭42を画像データPDに描画する(ステップS14)。一方、障害物が存在していなければ障害物外郭42を描画しない。
ところで、高輝度画素検出部22は高輝度画素を検出している。そして、高輝度画素と非エッジ画素とが重複している画素を重複画素として、重複画素が一定の領域を形成しているときに重複画素領域としている。この重複画素領域が所定領域以上のときに、塵埃領域DAを特定している。
このとき、塵埃領域DAの境界部分をより高精度に検出したい場合には、高輝度画素の検出に別の手法を用いることができる。図29を参照して、説明する。最新の画像データPDのうち、X方向にP(Pは1以上の整数)画素、Y方向にQ(Qは1以上の整数)画素の注目画素領域を設定する。この注目画素領域の画素数は、例えば前述した障害物画素数とすることができる。
そして、注目画素領域を中心として、注目画素領域よりも大きな画素領域を周辺画素領域とする。ここでは、周辺画素領域は、注目画素領域を中心として、上下左右にR(Rは1以上の整数)画素の分を大きくした画素領域になる。そして、高輝度画素検出部22は注目画素領域の各画素の輝度値の平均値(1画素の場合は、その画素の輝度値)を算出し、周辺画素領域の各画素の輝度値の平均値を算出する。
このときに、注目画素領域の輝度値の平均値が周辺画素領域の輝度値の平均値よりも高ければ、高輝度画素検出部22は、注目画素領域は高輝度画素の領域として判定できる。高輝度画素検出部22は画像データPDの全領域に注目画素領域を走査させて、輝度値の平均値の比較を行う。そして、高輝度画素の領域として判定された注目画素領域により一定の領域が形成されたときには、その領域を高輝度領域として認識することができる。
この手法を用いることにより、高輝度画素検出部22は高輝度領域の境界部分を詳細に認識することができる。なお、この手法では、高輝度領域の境界が高輝度画素として認識される。よって、高輝度画素を検出して、一定の高輝度領域として認識するときには、高輝度画素により形成される領域の内側を高輝度領域として認識する。