(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-11
(45)【発行日】2023-10-19
(54)【発明の名称】画像処理システムおよび画像処理方法
(51)【国際特許分類】
G06T 7/11 20170101AFI20231012BHJP
G06T 7/00 20170101ALI20231012BHJP
E02F 9/20 20060101ALI20231012BHJP
【FI】
G06T7/11
G06T7/00 350B
E02F9/20 Q
(21)【出願番号】P 2019017400
(22)【出願日】2019-02-01
【審査請求日】2022-01-20
【前置審査】
(73)【特許権者】
【識別番号】000001236
【氏名又は名称】株式会社小松製作所
(74)【代理人】
【識別番号】110001634
【氏名又は名称】弁理士法人志賀国際特許事務所
(72)【発明者】
【氏名】川本 駿
(72)【発明者】
【氏名】▲濱▼田 真太郎
(72)【発明者】
【氏名】梶原 陽介
【審査官】▲広▼島 明芳
(56)【参考文献】
【文献】特開2000-192514(JP,A)
【文献】特開2018-173814(JP,A)
【文献】国際公開第2019/016870(WO,A1)
【文献】特開2018-041176(JP,A)
【文献】国際公開第2008/018398(WO,A1)
【文献】特開2019-016294(JP,A)
【文献】特開2018-146347(JP,A)
【文献】特開平11-211438(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00 - 7/90
G06V 10/00 - 20/90
E02F 9/20
(57)【特許請求の範囲】
【請求項1】
作業機械のベッセルが写る撮像画像を取得するデータ取得部と、
前記撮像画像の各画素について前記ベッセルが写る画素であるか否かを判定し、前記撮像画像から前記ベッセルが写ると判定された画素からなる領域を特定する領域特定部と、
前記領域特定部で特定された領域から前記ベッセルの少なくとも一つの所定の面を特定するベッセル面特定部と、
を備える画像処理システム。
【請求項2】
前記領域特定部は、入力画像を入力することで、複数の画素それぞれの値が当該画素に対応する前記入力画像の画素に写る物体の種類を表す値をとる出力画像を出力する学習済みモデルであるセグメンテーションモデルと、前記撮像画像とに基づいて、前記ベッセルが写ると判定された画素からなる領域を特定する
請求項1に記載の画像処理システム。
【請求項3】
前記特定した面に基づいて前記ベッセルの位置を特定する姿勢特定部
を備える請求項1または請求項2に記載の画像処理システム。
【請求項4】
前記姿勢特定部は、前記特定した面に基づいて、さらに前記ベッセルの方位および姿勢を特定する
請求項3に記載の画像処理システム。
【請求項5】
前記撮像画像に基づいて、前記撮像画像の被写体の三次元形状を表す三次元データを生成する三次元データ生成部を備え、
前記姿勢特定部は、前記領域に係る三次元データにおける前記少なくとも一つの所定の面に基づいて前記ベッセルの位置を特定する
請求項3または請求項4に記載の画像処理システム。
【請求項6】
前記姿勢特定部は、前記領域に係る三次元データにおける前記少なくとも一つの所定の面と、前記ベッセルの形状を示す三次元モデルである対象モデルの前記所定の面とをフィッティングさせることにより、前記ベッセルの位置を特定する
請求項5に記載の画像処理システム。
【請求項7】
前記データ取得部は、前記撮像画像を撮像する撮像装置の撮像姿勢を取得し、
前記姿勢特定部は、前記領域と前記撮像姿勢とに基づいて、前記ベッセルの現場における三次元位置を特定する
請求項3から請求項6のいずれか1項に記載の画像処理システム。
【請求項8】
前記三次元データ生成部は、前記撮像画像に基づいて、前記ベッセルに積み込まれた運搬物の三次元位置を表す運搬物三次元データを生成し、
前記ベッセルにおける前記運搬物三次元データと、前記ベッセルの少なくとも一部の三次元位置とに基づいて、前記ベッセルにおける運搬物の量の分布を示す分布情報を生成する分布特定部
を備える請求項5または請求項6に記載の画像処理システム。
【請求項9】
コンピュータが、作業機械の運搬物のベッセルが写る撮像画像を取得するステップと、
前記コンピュータが、前記撮像画像の各画素について前記ベッセルが写る画素であるか否かを判定し、前記撮像画像のうち前記ベッセルが写ると判定された画素からなる領域を特定するステップと、
前記コンピュータが、前記ベッセルが写ると判定された画素からなる領域から前記ベッセルの少なくとも一つの所定の面を特定するステップと
を備える画像処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理システムおよび画像処理方法に関する。
【背景技術】
【0002】
特許文献1には、油圧ショベルに備えられた撮像装置によって撮像された画像からエッジを抽出することで、ダンプトラックのベッセルの位置を特定する技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、積込機械が存在する現場においては、道路が舗装されていないことがあり、地表に轍が生成される。轍とダンプトラックとが写る画像からエッジを抽出すると、ダンプトラックのエッジに加え、轍のエッジも生じる。そのため、特許文献1に記載の技術により撮像画像からダンプトラックのベッセル位置を特定する場合、轍の存在により、適切にベッセルの位置を特定することができない可能性がある。
本発明の目的は、撮像画像から運搬物の積み下ろし対象を、ロバストに特定することができる画像処理システム、画像処理方法、学習済みモデルの生成方法、および学習用データセットを提供することを目的とする。
【課題を解決するための手段】
【0005】
本発明の一態様によれば、画像処理システムは、作業機械の運搬物の積み下ろし対象が写る撮像画像を取得するデータ取得部と、前記撮像画像から前記積み下ろし対象を含む領域を特定する領域特定部と、前記積み下ろし対象を含む領域から前記積み下ろし対象の少なくとも一つの所定の面を特定する積み下ろし対象特定部と、を備える。
【発明の効果】
【0006】
上記態様によれば、画像処理システムは、積み下ろし対象を、ロバストに特定することができる。
【図面の簡単な説明】
【0007】
【
図1】一実施形態に係る積込場の構成を示す図である。
【
図2】一実施形態に係る油圧ショベルの外観図である。
【
図3】第1の実施形態に係る制御装置の構成を示す概略ブロック図である。
【
図4】第1の実施形態に係る画像のセグメンテーションの例を示す図である。
【
図5】ニューラルネットワークの構成の例を示す図である。
【
図7】第1の実施形態に係る制御装置によるガイダンス情報の表示方法を示すフローチャートである。
【
図8】第1の実施形態に係るセグメンテーションモデルの学習方法を示すフローチャートである。
【
図9】第2の実施形態に係る制御装置の構成を示す概略ブロック図である。
【
図10】第2の実施形態に係る油圧ショベルの制御方法を示すフローチャートである。
【
図11】第3の実施形態に係る制御装置の構成を示す概略ブロック図である。
【
図12】第3の実施形態に係るガイダンス情報の一例である。
【
図13】第3の実施形態に係る制御装置によるガイダンス情報の表示方法を示すフローチャートである。
【
図14】第5の実施形態に係る画像のセグメンテーションの例を示す図である。
【
図15】第5の実施形態に係る制御装置によるガイダンス情報の表示方法を示すフローチャートである。
【発明を実施するための形態】
【0008】
〈第1の実施形態〉
以下、図面を参照しながら実施形態について詳しく説明する。
図1は、一実施形態に係る積込場の構成を示す図である。
積込場には、積込機械である油圧ショベル100と運搬車両であるダンプトラック200とが配備される。油圧ショベル100は、施工現場から土砂等の運搬物Lをすくい、ダンプトラック200に積み込む。ダンプトラック200は、油圧ショベル100によって積み込まれた運搬物Lを所定の排土場に運搬する。ダンプトラック200は、運搬物Lを収容する容器であるベッセル210を備える。ベッセル210は、運搬物Lの積み下ろし対象の一例である。積込場は、現場の一例である。現場とは、積込機械による作業が行われる土地である。
【0009】
《油圧ショベルの構成》
図2は、一実施形態に係る油圧ショベルの外観図である。
油圧ショベル100は、油圧により作動する作業機110と、作業機110を支持する旋回体120と、旋回体120を支持する走行体130とを備える。
【0010】
作業機110は、ブーム111と、アーム112と、バケット113と、ブームシリンダ114と、アームシリンダ115と、バケットシリンダ116とを備える。
【0011】
ブーム111は、アーム112およびバケット113を支える支柱である。ブーム111の基端部は、旋回体120の前部にブームピンP1を介して取り付けられる。
アーム112は、ブーム111とバケット113とを連結する。アーム112の基端部は、ブーム111の先端部にアームピンP2を介して取り付けられる。
バケット113は、土砂などを掘削するための刃を有する容器である。バケット113の基端部は、アーム112の先端部にバケットピンP3を介して取り付けられる。
【0012】
ブームシリンダ114は、ブーム111を作動させるための油圧シリンダである。ブームシリンダ114の基端部は、旋回体120に取り付けられる。ブームシリンダ114の先端部は、ブーム111に取り付けられる。
アームシリンダ115は、アーム112を駆動するための油圧シリンダである。アームシリンダ115の基端部は、ブーム111に取り付けられる。アームシリンダ115の先端部は、アーム112に取り付けられる。
バケットシリンダ116は、バケット113を駆動するための油圧シリンダである。バケットシリンダ116の基端部は、アーム112に取り付けられる。バケットシリンダ116の先端部は、バケット113に取り付けられる。
【0013】
旋回体120には、オペレータが搭乗する運転室121が備えられる。運転室121は、旋回体120の前方かつ作業機110の左側(+Y側)に備えられる。
【0014】
《油圧ショベルの制御系》
油圧ショベル100は、作業機位置検出器122、位置方位演算器123、傾斜検出器124、ステレオカメラ125、操作装置126、制御装置127、表示装置128を備える。
【0015】
作業機位置検出器122は、作業機110の角度を検出する。第1の実施形態に係る作業機位置検出器122は、ブームシリンダ114、アームシリンダ115、およびバケットシリンダ116のそれぞれのストローク長を検出するストローク検出器である。これにより、後述する制御装置127は、ブームシリンダ114、アームシリンダ115、およびバケットシリンダ116のそれぞれのストローク長に基づいて作業機110の角度を検出することができる。他方、他の実施形態においては、これに限られず、作業機位置検出器122として、ストローク検出器に代えて、またはストローク検出器と併用して、IMU,ロータリーエンコーダや水平器等の角度検出器を用いてもよい。
【0016】
位置方位演算器123は、旋回体120の位置および旋回体120が向く方位を演算する。位置方位演算器123は、GNSS(Global Navigation Satellite System)を構成する人工衛星から測位信号を受信する2つの受信器を備える。2つの受信器は、それぞれ旋回体120の異なる位置に設置される。位置方位演算器123は、少なくとも一方の受信器が受信した測位信号に基づいて、現場座標系における旋回体120の代表点(車体座標系の原点)の位置を検出する。
位置方位演算器123は、2つの受信器がそれぞれ受信した測位信号を用いて、検出された2つの測位信号が示す位置と2つの受信器の接地位置とに基づいて旋回体120の方位を演算する。なお、他の実施形態に係る位置方位演算器123は、2つの受信器に代えて、ロータリーエンコーダやIMUなどの他の装置を備えることで旋回体120の方位を計測してもよい。
【0017】
傾斜検出器124は、旋回体120の加速度および角速度を計測し、計測結果に基づいて旋回体120の傾き(例えば、X軸に対する回転を表すロール、Y軸に対する回転を表すピッチ、およびZ軸に対する回転を表すヨー)を検出する。傾斜検出器124は、例えば運転室121の下面に設置される。傾斜検出器124は、例えば、慣性計測装置であるIMU(Inertial Measurement Unit)を用いることができる。
【0018】
ステレオカメラ125は、運転室121の上部に設けられる。ステレオカメラ125は、運転室121内の前方(+X方向)かつ上方(+Z方向)に設置される。ステレオカメラ125は、運転室121前面のフロントガラスを通して、運転室121の前方(+X方向)を撮像する。ステレオカメラ125は、少なくとも1対のカメラを備える。
【0019】
操作装置126は運転室121の内部に設けられる。操作装置126は、オペレータによって操作されることで作業機110のアクチュエータに作動油を供給する。操作装置126の操作量に応じて、ブームシリンダ114、アームシリンダ115、バケットシリンダ116、および図示しない旋回モータに作動油が供給され、作業機110および旋回体120が駆動する。
【0020】
制御装置127は、作業機位置検出器122、位置方位演算器123、傾斜検出器124およびステレオカメラ125から情報を取得し、バケット113とダンプトラック200のベッセルとの位置関係を示すガイダンス情報を生成する。
【0021】
表示装置128は、制御装置127が生成したガイダンス情報を表示する。
なお、実施形態によっては、油圧ショベル100は、作業機位置検出器122、位置方位演算器123、傾斜検出器124、ステレオカメラ125、および表示装置128を備えないものであってもよい。
【0022】
《ステレオカメラの構成》
第1の実施形態においては、ステレオカメラ125は、右側カメラ1251および左側カメラ1252を備える。各カメラの例としては、例えばCCD(Charge Coupled Device)センサ、およびCMOS(Complementary Metal Oxide Semiconductor)センサを用いたカメラが挙げられる。
【0023】
右側カメラ1251と左側カメラ1252は、それぞれ光軸が運転室121の床面に対して略平行となるように、左右方向(Y軸方向)に間隔を空けて設置される。ステレオカメラ125は撮像装置の一例である。制御装置127は、右側カメラ1251が撮像した画像と左側カメラ1252が撮像した画像とを用いることで、ステレオカメラ125と撮像対象との距離を算出することができる。以下、右側カメラ1251が撮像した画像を右目画像ともいう。また、左側カメラ1252が撮像した画像を左目画像ともいう。また、ステレオカメラ125の各カメラが撮像した画像の組み合わせをステレオ画像ともいう。なお、他の実施形態においては、ステレオカメラ125は、3個以上のカメラによって構成されてもよい。
【0024】
《制御装置の構成》
図3は、第1の実施形態に係る制御装置の構成を示す概略ブロック図である。
制御装置127は、プロセッサ91、メインメモリ92、ストレージ93、インタフェース94を備える。
【0025】
ストレージ93には、作業機110を制御するためのプログラムが記憶されている。ストレージ93の例としては、HDD(Hard Disk Drive)、不揮発性メモリ等が挙げられる。ストレージ93は、制御装置127のバスに直接接続された内部メディアであってもよいし、インタフェース94または通信回線を介して制御装置127に接続される外部メディアであってもよい。ストレージ93は、記憶部の一例である。
【0026】
プロセッサ91は、ストレージ93からプログラムを読み出してメインメモリ92に展開し、プログラムに従って処理を実行する。またプロセッサ91は、プログラムに従ってメインメモリ92に記憶領域を確保する。メインメモリ92は、記憶部の一例である。インタフェース94は、作業機位置検出器122、位置方位演算器123、傾斜検出器124、ステレオカメラ125、表示装置128、およびその他の周辺機器と接続され、信号の授受を行う。
【0027】
第1の実施形態に係る制御装置127は、表示装置128に、作業機械と運搬物の積み下ろし対象との相対位置を表すガイダンス情報を表示する。これにより、オペレータは、積み下ろし対象を視認しづらい場合であっても、ガイダンス情報を参照することで積み下ろし対象を認識することができる。
そのため、プロセッサ91は、プログラムの実行により、データ取得部1701、領域特定部1702、三次元データ生成部1703、積み下ろし対象特定部1704、モデルフィッティング部1705、作業機位置特定部1706、ガイダンス情報生成部1707、表示制御部1708、学習部1709を備える。また、ストレージ93には、カメラパラメータCP、セグメンテーションモデルM、および対象モデルDが記憶される。カメラパラメータCPとは、旋回体120と右側カメラ1251との位置関係、および旋回体120と左側カメラ1252との位置関係を示す情報である。対象モデルDは、ベッセル210の形状を表す三次元データである。
【0028】
なお、プログラムは、制御装置127に発揮させる機能の一部を実現するためのものであってもよい。例えば、プログラムは、ストレージ93に既に記憶されている他のプログラムとの組み合わせ、または他の装置に実装された他のプログラムとの組み合わせによって機能を発揮させるものであってもよい。なお、他の実施形態においては、制御装置127は、上記構成に加えて、または上記構成に代えてPLD(Programmable Logic Device)などのカスタムLSI(Large Scale Integrated Circuit)を備えてもよい。PLDの例としては、PAL(Programmable Array Logic)、GAL(Generic Array Logic)、CPLD(Complex Programmable Logic Device)、FPGA(Field Programmable Gate Array)が挙げられる。この場合、プロセッサによって実現される機能の一部または全部が当該集積回路によって実現されてよい。
【0029】
データ取得部1701は、インタフェース94を介して作業機位置検出器122、位置方位演算器123、傾斜検出器124、およびステレオカメラ125からデータを取得する。すなわち、データ取得部1701は、作業機110の角度、旋回体120の位置、方位、および傾き、ならびにステレオ画像を取得する。データ取得部1701は、画像取得部の一例である。以下、旋回体120の位置、方位、および傾きを、旋回体120の姿勢ともいう。またステレオカメラ125は旋回体120に設けられるため、旋回体120の位置、方位、および傾きは、ステレオカメラ125の姿勢を表す。
【0030】
図4は、第1の実施形態に係る画像のセグメンテーションの例を示す図である。
領域特定部1702は、データ取得部1701が取得したステレオ画像の右目画像を、ストレージ93に記憶されたセグメンテーションモデルMに入力することで、右目画像を、既知の複数の物体に対応する複数の領域に分割する。例えば、領域特定部1702は、入力画像である右目画像を、
図4に示すように、ダンプトラック200の車体、ベッセル210、運搬物L、作業機110、および地面の5つの物体に対応する複数の領域に分割したセグメント画像を生成する。なお、既知の複数の物体は、少なくとも積込対象であるベッセル210を含む。セグメント画像の各画素の値は、当該画素に対応する入力画像の画素に写る物体の種類を表す値をとる。すなわち、セグメント画像は、同じ値をとる複数の画素からなる複数の領域(セグメント)に分けられる。領域特定部1702は、セグメンテーションモデルMのセグメント画像に基づいて、データ取得部1701が取得したステレオ画像において、ベッセルが写る領域を特定する。
【0031】
セグメンテーションモデルMは、
図5に示すニューラルネットワーク140を含む。
図5は、ニューラルネットワークの構成の例を示す図である。セグメンテーションモデルMは、例えば、DNN(Deep Neural Network)の学習済みモデルによって実現される。学習済みモデルは、学習モデルと学習済みパラメータの組み合わせによって構成される。
図5に示すようにニューラルネットワーク140は、入力層141、1つまたは複数の中間層142(隠れ層)、及び出力層143を含む。各層141,142,143は、1又は複数のニューロンを備えている。中間層142のニューロンの数は、適宜設定することができる。出力層143は、出力画像のサイズに応じて適宜設定することができる。
【0032】
互いに隣接する層のニューロン同士は結合されており、各結合には重み(結合荷重)が設定されている。ニューロンの結合数は、適宜設定されてよい。各ニューロンには閾値が設定されており、各ニューロンへの入力値と重みとの積の和が閾値を超えているか否かによって各ニューロンの出力値が決定される。
【0033】
入力層141には、画像が入力される。入力層141に入力する画像は、複数の領域(複数の物体)の少なくとも1つに該当する物体が写る画像である。出力層143には、各画素の値が、当該画素に対応する入力層141に入力する画像の対応する画素に写る物体の種類を表す値をとるセグメント画像が入力される。つまり、セグメンテーションモデルMは、画像が入力されると、当該画像に写る物体別に領域分けされたセグメント画像を出力するように訓練された学習済みモデルである。
【0034】
セグメンテーションモデルMは、例えば、積込場で撮像された画像を学習データとし、ダンプトラック200の車体、ベッセル210、運搬物L、作業機110、および地面の別に画素の値を分けたセグメント画像を教師データとする学習用データセットを用いて訓練される。なお、本実施形態において「学習データ」とは、学習モデルの訓練時に入力層に入力されるデータをいう。本実施形態において「教師データ」とは、ニューラルネットワーク140の出力層の値と比較するための正解となるデータである。本実施形態において「学習用データセット」とは、学習データと教師データの組み合わせをいう。
【0035】
学習によって得られたセグメンテーションモデルMの学習済みパラメータは、ストレージ93に記憶されている。学習済みパラメータは、例えば、ニューラルネットワーク140の層数、各層におけるニューロンの個数、ニューロン同士の結合関係、各ニューロン間の結合の重み、及び各ニューロンの閾値を含む。
セグメンテーションモデルMのニューラルネットワーク140の構成としては、画像セグメンテーションに一般的に用いられるDNN構成が用いられる。セグメンテーションモデルMは、既存の学習済みのセグメンテーションモデルに、上記の学習用データセットを用いて転移学習したものであってもよい。なお、他の実施形態に係るセグメンテーションモデルMは、教師なし学習または強化学習によって訓練されたものであってもよい。
【0036】
三次元データ生成部1703は、領域特定部1702が特定したベッセル210が写る領域に基づいて、ステレオ画像の右目画像および左目画像のそれぞれから、当該領域に係る画素から構成される部分右目画像および部分左目画像を抽出する。なお、三次元データ生成部1703は、ベッセル210に分類された領域のみではなく、ベッセル210に分類された領域の近傍も含む領域から、部分右目画像および部分左目画像を抽出してもよい。例えば、三次元データ生成部1703は、ベッセル210に分類された領域に外接する矩形を上下左右に所定画素数だけ拡張した領域を、部分右目画像および部分左目画像として抽出してもよい。なお、ベッセル210に分類された領域の近傍も含む領域を抽出することで、セグメンテーションの誤りによってベッセルの一部が他の物体に分類された場合にもベッセル210が写る領域の欠落を防ぐことができる。
【0037】
三次元データ生成部1703は、部分右目画像および部分左目画像と、ストレージ93に記憶されたカメラパラメータCPと、データ取得部1701が取得した旋回体120の位置、方位、および傾きとに基づいて、ベッセル210が写る領域の現場座標系における位置を示す点群データを生成する。具体的には、三次元データ生成部1703は、以下の方法で点群データを生成する。まず、三次元データ生成部1703は、部分右目画像と、部分左目画像と、カメラパラメータCPとに基づく三角測量により、車体座標系に係る点群データを生成する。次に、三次元データ生成部1703は、旋回体120の位置、方位、および傾きに基づいて、車体座標系における各点の位置を、現場座標系における各点の位置に変換する。点群データは、撮像画像の被写体の三次元形状を表す三次元データの一例である。他の実施形態においては、三次元データとして、深度画像、ポリゴン、CADモデルなどを用いてもよい。
【0038】
積み下ろし対象特定部1704は、三次元データ生成部1703が生成した点群データの各点について、三次元特徴量(3D点群特徴量)を特定する。三次元特徴量の例としては、法線特徴、SHOT(Signature of Histograms of OrienTations)特徴、PFH(Point Feature Histograms)特徴などが挙げられる。例えば、点群に含まれるある点(注目点)の法線特徴は、注目点の周囲の点群の共分散行列の最小固有値に係る固有ベクトルを求めることで、得ることができる。積み下ろし対象特定部1704は、特徴量に基づいて、点群データをベッセル210の面ごとにグループ分けする。具体的には、積み下ろし対象特定部1704は、特徴量に基づいて、点群データを、フロントパネルに相当するグループ、サイドゲートに相当するグループ、テールゲートに相当するグループ、および底面に相当するグループに分ける。なお、ここで挙げた点群データの分割方法は一例であり、上記の4つ以外のグループに分けてもよい。例えば、他の実施形態においては、積み下ろし対象で隠れている可能性が高いため、積み下ろし対象特定部1704は、底面に相当するグループへのグループ分けを行わなくてもよい。積み下ろし対象特定部1704は、ベッセル面特定部の一例である。
【0039】
モデルフィッティング部1705は、面毎にグループ分けされた点群データの位置に基づいて、現場座標系で表される仮想空間に対象モデルDを配置することで、ベッセル210の現場座標系における位置、方位、および傾きを特定する。例えば、モデルフィッティング部1705は、点群データのグループの代表的な法線特徴と、ベッセル210の各面の法線特徴とが所定の誤差範囲内で一致するように、対象モデルDを配置する。なお、他の実施形態に係るモデルフィッティング部1705は、車体座標系またはカメラ座標系における各面の位置を特定してもよい。モデルフィッティング部1705は、姿勢特定部の一例である。モデルフィッティング部1705は、姿勢特定部の一例である。
【0040】
作業機位置特定部1706は、データ取得部1701が取得した作業機110の角度と旋回体120の位置、方位、および傾きとに基づいて、現場座標系におけるブーム111、アーム112、およびバケット113の位置を特定する。
【0041】
ガイダンス情報生成部1707は、モデルフィッティング部1705が特定したベッセル210の位置と、作業機位置特定部1706が特定したブーム111、アーム112、およびバケット113の位置と、データ取得部1701が取得した旋回体120の位置、方位、および傾きとに基づいて、ベッセル210とバケット113の位置関係を示すガイダンス情報を生成する。
【0042】
図6は、ガイダンス情報の一例である。ガイダンス情報生成部1707は、例えば
図6に示すように、作業機位置特定部1706が特定したブーム111、アーム112、およびバケット113の位置と、旋回体120の位置、方位、および傾きとに基づいて、仮想空間上に油圧ショベル100の三次元モデルを配置する。またガイダンス情報生成部1707は、ダンプトラック200の三次元モデルの三次元特徴量とに相当する部分を、モデルフィッティング部1705が特定したベッセル210の三次元特徴量との差が最小となるように、油圧ショベル100の三次元モデルを配置する。ガイダンス情報生成部1707は、仮想空間上に配置された油圧ショベル100およびダンプトラック200を任意の視点からレンダリングすることで、油圧ショベル100のバケット113とダンプトラック200のベッセル210との位置関係を表すガイダンス情報を生成する。
【0043】
なお、他の実施形態に係るガイダンス情報は、バケット113とベッセル210との位置関係をグラフィカルに描くものでなくてもよい。例えば、他の実施形態に係るガイダンス情報は、上方からの平面視においてバケット113がベッセル210の外枠内に位置するか否かを示す情報であってもよい。また、他の実施形態に係るガイダンス情報は、バケット113の目標の掘削位置の表示、またはバケット113の掘削位置に対するガイダンス情報(例えば、現状のバケット113の位置と目標の掘削位置との差分を示す情報、または表示)であってもよい。また、目標の掘削位置までどれくらいの操作が必要であるかを示す情報、または表示であってもよい。また、少なくともベッセル210とバケット113のみを表示するものであってもよい。
【0044】
表示制御部1708は、ガイダンス情報を表示する表示信号を表示装置128に出力する。
学習部1709は、セグメンテーションモデルMの学習処理を行う。なお、学習部1709は、制御装置127と別個の装置に設けられてもよい。この場合、別個の装置において学習された学習済みモデルが、ストレージ93に記録されることとなる。
【0045】
《表示方法》
図7は、第1の実施形態に係る制御装置によるガイダンス情報の表示方法を示すフローチャートである。
まず、データ取得部1701は、インタフェース94を介して作業機位置検出器122から作業機110の角度を取得し、位置方位演算器123から、旋回体120の位置および方位を取得し、傾斜検出器124から旋回体120の傾きを取得し、ステレオカメラ125からステレオ画像を取得する(ステップS1)。なお、他の実施形態においては、データ取得部1701は、作業機110の角度、旋回体120の位置、方位および傾きを取得しなくてもよい。次に、領域特定部1702は、データ取得部1701が取得したステレオ画像の右目画像を、ストレージ93に記憶されたセグメンテーションモデルMに入力することで、写った物体ごとの複数の領域に分割されたセグメント画像を得る(ステップS2)。なお、他の実施形態においては、領域特定部1702は、左目画像からセグメント画像を得てもよい。領域特定部1702は、セグメント画像に基づいて、データ取得部1701が取得したステレオ画像において、ベッセルが写る領域を特定する(ステップS3)。
【0046】
三次元データ生成部1703は、ステレオ画像の右目画像および左目画像のそれぞれから、ステップS3で特定したベッセル210が写る領域に係る部分右目画像および部分左目画像を抽出する(ステップS4)。三次元データ生成部1703は、部分右目画像および部分左目画像と、カメラパラメータCPとに基づく三角測量により、車体座標系に係る点群データを生成する(ステップS5)。次に、三次元データ生成部1703は、ステップS1で取得した旋回体120の位置、方位および傾きに基づいて、点群データの車体座標系における各点の位置を、現場座標系における各点の位置に変換する(ステップS6)。すなわち、三次元データ生成部1703は、ステップS1で取得した旋回体120の位置に基づいて点群データを平行移動し、方位および傾きに基づいて点群データを回転させる。なお、車体座標系から現場座標系への座標変換は、後述のステップS7の後、またはステップS8の後に行われてもよい。
【0047】
積み下ろし対象特定部1704は、ステップS6で得られた点群データの各点について、三次元特徴量を特定し、三次元特徴量に基づいて点群データをベッセル210の面ごとにグループ分けする(ステップS7)。これにより、積み下ろし対象特定部1704は、点群データからベッセル210の各面を特定することができる。
【0048】
モデルフィッティング部1705は、各グループに係る点群データの三次元特徴量と、ストレージ93に記憶された対象モデルDの三次元特徴量との差が最小となるように、現場座標系で表される仮想空間に対象モデルDを配置することで、ベッセル210の現場座標系における位置、方位、および傾きを特定する(ステップS8)。モデルフィッティング部1705が、点群データに基づいて対象モデルDを仮想空間に配置することによって、ステレオ画像においてベッセル210の一部等が障害物によって隠れている場合にも、ベッセル210の隠れた部分を推定することができ、ベッセル210の認識精度を向上させることができる。なお、他の実施形態においては、モデルフィッティング部1705は、ステップS7でグループ分けしたある面、またはある面の特定の点と、対象モデルDの対応する面、または特定の点とをフィッティングすることで、現場座標系に対象モデルDを配置してもよい。なお、制御装置127は、対象モデルDのフィッティングを行わずとも、ステップS7で特定した各面からベッセル210の位置、方位、および傾きを特定することができる。例えば、制御装置127は、特定された複数の面の重心位置などからベッセル210の位置を特定し、フロントパネルまたはテールゲートに相当する面の法線方向からベッセルの方位を特定し、さらにベッセル210の底面の法線方向からベッセルの傾きを特定することができる。他方、点群データにおける各面が必ずしも正確に抽出できるとは限らないため、制御装置127は、対象モデルDのフィッティングを行うことで、よりロバストにベッセル210の位置、方位、および傾きを特定することができる。
【0049】
作業機位置特定部1706は、データ取得部1701が取得した作業機110の角度と旋回体120の位置、方位、および傾きとに基づいて、現場座標系におけるブーム111、アーム112、およびバケット113の位置を特定する(ステップS9)。
【0050】
ガイダンス情報生成部1707は、ステップS8で特定したベッセル210の位置、方位、および傾きと、ステップS9で特定したブーム111、アーム112、およびバケット113の位置と、ステップS1で取得した旋回体120の位置、方位、および傾きとに基づいて、
図6に示すガイダンス情報を生成する(ステップS10)。表示制御部1708は、ガイダンス情報を表示する表示信号を表示装置128に出力する(ステップS11)。
【0051】
《学習方法》
図8は、第1の実施形態に係るセグメンテーションモデルの学習方法を示すフローチャートである。データ取得部1701は、学習データを取得する(ステップS101)。例えば、セグメンテーションモデルMにおける学習データは、積込場で撮像された画像、または3DCGやCADデータから生成された画像である。セグメンテーションモデルMの学習に用いる複数の学習データは、少なくともベッセル210が写る画像を含む。学習データは、ステレオカメラ125が撮像する画像から取得してもよい。また、他の作業機械が撮像した画像から取得してもよい。
【0052】
次に、学習部1709は、セグメンテーションモデルMの学習を行う。学習部1709は、ステップS101で取得した学習データと、学習データに係る画像に写る物体に対応する複数の領域に分割したセグメント画像である教師データとの組み合わせを学習用データセットとして、セグメンテーションモデルMの学習を行う(ステップS102)。例えば、学習部1709は、学習データを入力として用いて、ニューラルネットワーク140の順伝播方向の演算処理を行う。これにより、学習部1709は、ニューラルネットワーク140の出力層143から出力される出力値を得る。なお、学習用データセットは、メインメモリ92、またはストレージ93に記憶してもよい。次に、学習部1709は、出力層143からの出力値と、教師データとの誤差を算出する。学習部1709は、算出した出力値の誤差に基づき、各ニューロン間の結合の重みを更新する。
【0053】
学習部1709は、学習用データセットのうちセグメンテーションモデルMの学習に用いなかったものを評価データセットとして、評価データセットに係る学習データをセグメンテーションモデルMに入力し、セグメンテーションモデルMからの出力値が、評価データセットに係る教師データと一致するか否かを判定する(ステップS103)。なお、出力値と、教師データが異なる画素の数が所定数以内であれば、一致すると判定してもよい。セグメンテーションモデルMからの出力値が、教師データと一致しない場合(ステップS103:NO)、セグメンテーションモデルMからの出力値が、教師データと一致するまで、上記の処理を繰り返す。それにより、セグメンテーションモデルMのパラメータが最適化され、セグメンテーションモデルMを学習させることができる。
セグメンテーションモデルMからの出力値が、教師データと一致する場合(ステップS103:YES)、学習部1709は、学習によって最適化されたパラメータを含む学習済みモデルであるセグメンテーションモデルMを、ストレージ93に記録する(ステップS104)。
【0054】
《作用・効果》
このように、第1の実施形態によれば、制御装置127は、運搬物Lの積み下ろし対象であるベッセル210が写る撮像画像から、ベッセル210が写る領域を特定し、当該領域に基づいてベッセル210の位置を特定する。このように、第1の実施形態に係る制御装置127は、積み下ろし対象の位置を、画像に含まれるエッジによらずに特定することができる。これにより、第1の実施形態に係る制御装置127は、積み下ろし対象の変形等によってエッジが検出し難い場合においても、運搬物Lの積み下ろし対象の位置を、ロバストに特定することができる。また、ベッセル210に運搬物Lが積載されると、ベッセル210全体としての表面形状が変化するが、ベッセル210が写る領域を特定することで、運搬物Lとベッセル210とを識別することができるため、認識のロバスト性を向上することができる。なお、実施形態によっては、
図7に示す制御装置127による処理のうち、ステップS2~ステップS6、ステップS8~S11の処理が実施されなくてもよい。
【0055】
また、第1の実施形態に係る制御装置127は、ガイダンス情報を表示する。これにより、油圧ショベル100とダンプトラック200との相対位置によってオペレータがベッセル210を視認しづらい場合であっても、制御装置127は、オペレータに積み下ろし対象を認識させることができる。また、ガイダンス情報として表示されるベッセル210を目安に作業機110を操作することによって、作業効率を高めることができる。
【0056】
また、第1の実施形態によれば、制御装置127は、セグメンテーションモデルMと撮像画像とに基づいて、撮像画像において前記積み下ろし対象が写る領域を特定する。機械学習に係る学習済みモデルによって、画像に含まれる物体の切り分けであるセグメンテーションを精度よく実現することができることが知られている、そのため、第1の実施形態によれば、制御装置127は、セグメンテーションモデルMを用いてベッセル210を認識することで、精度よくベッセル210の所定の部分の位置を特定することができる。なお、他の実施形態においては、これに限られず、制御装置127は、機械学習技術以外の手法によって画像に写る物体の切り分けを行ってもよい。
【0057】
また、第1の実施形態によれば、制御装置127は、特定した領域に係る部分右目画像および部分左目画像を用いて点群データを生成する。これにより、ステレオ画像の全画素を用いて点群データを生成する場合と比較して、計算量を削減することができる。また、セグメンテーションによって特定した領域以外の余計な領域(例えば、運搬物L、作業機110、地面などの領域)が省かれるので、積み下ろし対象特定部1704は、による点群データのグループにおいてノイズが混入する可能性を低減することができる。なお、他の実施形態に係る制御装置127は、ステレオ画像の全画素を用いて点群データを生成し、当該点群データから特定した領域に係る部分を抽出してもよい。
また、他の実施形態においては、ステレオ画像に代えて、レーザスキャナが生成した距離画像を用いて、三次元データを生成してもよい。
【0058】
また、第1の実施形態に係る制御装置127は、撮像画像から、点群データを生成し、旋回体120の位置、方位および傾きに基づいて、点群データを現場座標系に配置する。これにより、油圧ショベル100の動作によりステレオカメラ125の位置、方位、および傾きが変わる場合にも、現場座標系におけるベッセル210の位置、方位、および傾きを特定することができる。なお、他の実施形態においては、ステレオカメラ125が施工現場に固設されたものである場合、旋回体120の位置、方位および傾きを得ることなく、点群データを現場座標系に配置してもよい。
【0059】
〈第2の実施形態〉
以下、図面を参照しながら第2の実施形態について説明する。第1の実施形態に係る制御装置127は、特定したベッセル210の位置、方位、および傾きに基づいてガイダンス情報を生成し、これをオペレータに提示する。これに対し、第2の実施形態に係る制御装置127は、特定したベッセル210の位置、方位、および傾きに基づいて作業機の積込作業を制御する。
【0060】
《制御装置の構成》
図9は、第2の実施形態に係る制御装置の構成を示す概略ブロック図である。
第2の実施形態に係るプロセッサ91は、第1の実施形態に係るガイダンス情報生成部1707および表示制御部1708に代えて、作業機械制御部1711を備える。
【0061】
作業機械制御部1711は、オペレータによって、操作装置126に設けられた自動積込ボタンの押下がなされた場合に、モデルフィッティング部1705が特定したベッセル210の位置、方位、および傾きに基づいて、旋回体120および作業機110の挙動を制御する。
【0062】
《油圧ショベルの制御方法》
図10は、第2の実施形態に係る油圧ショベルの制御方法を示すフローチャートである。
自動積込ボタンが押下されると、制御装置127は、第1の実施形態のステップS1からステップS9までと同様の処理により、ベッセル210および作業機110の現場座標系における位置を特定する。そして、作業機械制御部1711は、ベッセル210および作業機110の現場座標系における位置に基づいて、旋回体120および作業機110の制御信号を生成し、出力する(ステップS31)。
【0063】
例えば、作業機械制御部1711は、バケット113の高さがベッセル210の高さより低い場合、ブーム111を上げる制御信号を生成する。作業機械制御部1711は、バケット113の高さがベッセル210の高さ以上になった場合、ブーム111を上げる制御信号の出力を停止し、旋回体120を旋回させる制御信号の出力を開始する。作業機械制御部1711は、バケット113の高さがベッセル210の高さ以上であり、かつバケット113の上方から平面視したときの位置が、ベッセル210の位置から特定されるベッセル210の範囲内に位置する場合、旋回体120を旋回させる制御信号の出力を停止し、バケット113をダンプさせる制御信号を生成する。
【0064】
《作用・効果》
このように、第2の実施形態によれば、制御装置127は、撮像画像に基づいて油圧ショベル100を自動制御することができる。
【0065】
〈第3の実施形態〉
以下、図面を参照しながら第3の実施形態について説明する。第3の実施形態に係る制御装置127は、ベッセル210における運搬物Lの量の分布を示すベッセルマップを表示装置128に表示させる。これにより、制御装置127は、オペレータに、ベッセル210にバランスよく運搬物Lを積み込むための運搬物Lの積み下ろし位置を認識させる。
【0066】
図11は、第3の実施形態に係る制御装置の構成を示す概略ブロック図である。
第3の実施形態に係る制御装置127は、第1の実施形態に係る作業機位置特定部1706に代えて、分布特定部1721を備える。また、第3の実施形態に係る領域特定部1702、三次元データ生成部1703、ガイダンス情報生成部1707は、第1の実施形態と処理が異なる。
【0067】
領域特定部1702は、ステレオ画像においてベッセル210が写る領域に加え、運搬物Lが写る領域も特定する。
三次元データ生成部1703は、ベッセル210が写る領域に係る三次元データであるベッセル点群データおよび運搬物Lが写る領域に係る三次元データである運搬物点群データを生成する。なお、三次元データ生成部1703は、運搬物Lに分類された領域のみではなく、運搬物Lに分類された領域の近傍も含む領域から、運搬物点群データを生成してもよい。例えば、三次元データ生成部1703は、運搬物Lに分類された領域に外接する矩形を上下左右に所定画素数だけ拡張した領域に基づいて運搬物点群データを生成してもよい。なお、運搬物Lに分類された領域の近傍も含む領域を抽出することで、セグメンテーションの誤りによって運搬物Lの一部が他の物体に分類された場合にも運搬物Lが写る領域の欠落を防ぐことができる。
【0068】
分布特定部1721は、モデルフィッティング部1705が特定したベッセル210の底面の三次元位置と、三次元データ生成部1703が生成した運搬物点群データとに基づいて、ベッセル210における運搬物Lの量の分布を示すベッセルマップを生成する。ベッセルマップは、例えばベッセル210の底面を基準とした運搬物Lのエレベーションマップである。
【0069】
ガイダンス情報生成部1707は、分布特定部1721が生成したベッセルマップからガイダンス情報を生成する。
図12は、第3の実施形態に係るガイダンス情報の一例である。ガイダンス情報生成部1707は、例えば
図12に示すように、ベッセル210の底面から運搬物Lの表面までの高さの分布を表す二次元のヒートマップを表示するガイダンス情報を生成する。
図12に示すヒートマップにおける縦および横の分割の粒度は一例であり、他の実施形態ではこれに限られない。なお、他の実施形態に係るヒートマップは、例えばベッセル210の積載上限に係る高さに対する運搬物Lの高さの割合を表すものであってよい。
【0070】
《表示方法》
図13は、第3の実施形態に係る制御装置によるガイダンス情報の表示方法を示すフローチャートである。
まず、データ取得部1701は、インタフェース94を介して位置方位演算器123から旋回体120の位置および方位を取得し、傾斜検出器124から旋回体120の傾きを取得し、ステレオカメラ125からステレオ画像を取得する(ステップS51)。なお、他の実施形態においては、データ取得部1701は、作業機110の角度、旋回体120の位置、方位および傾きを取得しなくてもよい。次に、領域特定部1702は、データ取得部1701が取得したステレオ画像を、ストレージ93に記憶されたセグメンテーションモデルMに入力することで、写った物体ごとの複数の領域に分割されたセグメント画像を得る(ステップS52)。領域特定部1702は、セグメント画像に基づいて、データ取得部1701が取得したステレオ画像において、ベッセル210が写る領域および運搬物Lが写る領域を特定する(ステップS53)。
【0071】
三次元データ生成部1703は、ステレオ画像の右目画像および左目画像のそれぞれから、ステップS3で特定したベッセル210が写る領域に係る部分右目画像および部分左目画像、および運搬物Lが写る領域に係る部分右目画像および部分左目画像を抽出する(ステップS54)。三次元データ生成部1703は、ベッセル210が写る領域に係る部分右目画像および部分左目画像と、カメラパラメータCPとに基づく三角測量により、車体座標系に係るベッセル点群データを生成する。また、三次元データ生成部1703は、運搬物Lが写る領域に係る部分右目画像および部分左目画像と、カメラパラメータCPとに基づく三角測量により、車体座標系に係る運搬物点群データを生成する。(ステップS55)。三次元データ生成部1703は、旋回体120の位置、方位、および傾きに基づいて、ベッセル点群データおよび運搬物点群データの車体座標系における各点の位置を、現場座標系における各点の位置に変換する(ステップS56)。
【0072】
積み下ろし対象特定部1704は、ステップS56で得られたベッセル点群データの各点について、三次元特徴量を特定し、三次元特徴量に基づいてベッセル点群データをベッセル210の面ごとにグループ分けする(ステップS57)。モデルフィッティング部1705は、各グループに係るベッセル点群データの三次元特徴量と、ストレージ93に記憶された対象モデルDの三次元特徴量との差が最小となるように、現場座標系で表される仮想空間に対象モデルDを配置することで、ベッセル210の現場座標系における位置、方位、および傾きを特定する(ステップS58)。
【0073】
分布特定部1721は、ステップS55で生成した運搬物点群データと、ステップS58で配置した対象モデルDとに基づいて、ベッセル210の底面を基準高さとし、鉛直上方向に係る高さを表すエレベーションマップであるベッセルマップを生成する(ステップS59)。ベッセルマップは、高さデータを有しないグリッドを含みうる。なお、ステップS5において点群データがベッセル座標系に変換されている場合、分布特定部1721は、XY平面を基準高さとし、Z軸方向を高さ方向とするエレベーションマップを求めることでベッセルマップを生成することができる。
【0074】
ガイダンス情報生成部1707は、ベッセルマップに基づいて、
図12に示すガイダンス情報を生成する(ステップS60)。表示制御部1708は、ガイダンス情報を表示する表示信号を表示装置128に出力する(ステップS61)。
【0075】
《作用・効果》
このように、第3の実施形態によれば、制御装置127は、撮像画像に基づいて、運搬物Lの表面およびベッセル210の底面の三次元位置を特定し、これらに基づいてベッセル210における運搬物Lの量の分布を示すベッセルマップを生成する。これにより、制御装置127は、ベッセル210における運搬物Lの分布を特定することができる。オペレータは、ベッセル210における運搬物Lの分布を認識することで、ベッセル210にバランスよく運搬物Lを積み込むための運搬物Lの積み下ろし位置を認識することができる。
【0076】
なお、第3の実施形態においては、制御装置127は、ベッセルマップに基づいてガイダンス情報を生成するが、これに限られない。例えば、他の実施形態においては、制御装置127は、ベッセルマップに基づいて第2の実施形態のように油圧ショベル100を制御してもよい。例えば、作業機械制御部1711は、バケット113の高さがベッセル210の高さまたはベッセルマップにおける運搬物Lの分布のピークの高さより低い場合、ブーム111を上げる制御信号を生成する。作業機械制御部1711は、バケット113の高さがベッセル210の高さおよびベッセルマップにおける運搬物Lの分布のピークの高さ以上になった場合、ブーム111を上げる制御信号の出力を停止し、旋回体120を旋回させる制御信号の出力を開始する。作業機械制御部1711は、バケット113の高さがベッセル210の高さおよびベッセルマップにおける運搬物Lの分布のピークの高さ以上であり、かつバケット113の上方から平面視したときの位置が、ベッセル210の位置から特定されるベッセル210の範囲内に位置する場合、旋回体120を旋回させる制御信号の出力を停止し、バケット113をダンプさせる制御信号を生成する。
【0077】
〈第4の実施形態〉
第3の実施形態に係る制御装置127は、ベッセル点群データに対象モデルDをマッチングさせることでベッセル210の底面の三次元位置を特定する。これに対し、第4の実施形態に係る制御装置127は、対象モデルDを用いずにベッセル210の底面の三次元位置を特定する。つまり、第4の実施形態に係る制御装置127は、ストレージ93に対象モデルDを記憶しなくてよい。
【0078】
第4の実施形態に係るモデルフィッティング部1705は、ベッセル点群データに基づいて、天面のない直方体ポリゴンを当該ベッセル点群データに最もマッチングするように変形させる。モデルフィッティング部1705は、マッチングした直方体ポリゴンの底面の位置を、ベッセル210の底面の位置として特定する。
【0079】
このように、第4の実施形態によれば、ベッセル210の対象モデルDを用いることなく、ベッセル210の底面の位置を特定することができる。また第4の実施形態によれば、ベッセル点群データにノイズが含まれていたとしても、ベッセル210の底面の位置を特定することができる。
【0080】
〈第5の実施形態〉
図14は、第5の実施形態に係る画像のセグメンテーションの例を示す図である。
第1から第4の実施形態に係るセグメンテーションモデルMによって生成されるセグメント画像では、ベッセル210が写る領域を1つのセグメントによって表している。第5の実施形態に係るセグメンテーションモデルMは、ベッセル210が写る画像について、
図14に示すように、ガードフレームが写る領域、フロントパネルが写る領域、サイドゲートが写る領域、およびテールゲートが写る領域に分けるセグメント画像を生成するように訓練されたものを用いる。
【0081】
第5の実施形態に係る制御装置127は、第1の実施形態の構成のうち積み下ろし対象特定部1704を備えなくてよい。他方、第5の実施形態に係る制御装置127の領域特定部1702、三次元データ生成部1703、およびモデルフィッティング部1705の動作が異なる。
【0082】
領域特定部1702は、データ取得部1701が取得したステレオ画像の右目画像を、ストレージ93に記憶されたセグメンテーションモデルMに入力することで、右目画像を、既知の複数の物体に対応する複数の領域に分割する。このとき、既知の複数の物体は、少なくともガードフレーム、フロントパネル、サイドゲート、およびテールゲートを含む。
【0083】
三次元データ生成部1703は、ステレオ画像から、ガードフレーム、フロントパネル、サイドゲート、およびテールゲートのそれぞれの領域に係る点群データを生成する。
【0084】
モデルフィッティング部1705は、ガードフレーム、フロントパネル、サイドゲート、およびテールゲートのそれぞれの点群データの位置に基づいて、現場座標系で表される仮想空間に対象モデルDを配置することで、ベッセル210の現場座標系における位置、方位、および傾きを特定する。
【0085】
《表示方法》
図15は、第5の実施形態に係る制御装置によるガイダンス情報の表示方法を示すフローチャートである。
まず、データ取得部1701は、インタフェース94を介して作業機位置検出器122から作業機110の角度を取得し、位置方位演算器123から、旋回体120の位置および方位を取得し、傾斜検出器124から旋回体120の傾きを取得し、ステレオカメラ125からステレオ画像を取得する(ステップS71)。なお、他の実施形態においては、データ取得部1701は、作業機110の角度、旋回体120の位置、方位および傾きを取得しなくてもよい。次に、領域特定部1702は、データ取得部1701が取得したステレオ画像を、ストレージ93に記憶されたセグメンテーションモデルMに入力することで、写った物体ごとの複数の領域に分割されたセグメント画像を得る(ステップS72)。領域特定部1702は、セグメント画像に基づいて、データ取得部1701が取得したステレオ画像において、ベッセル210の面毎に領域を特定する(ステップS73)。つまり、領域特定部1702は、ガードフレームが写る領域、フロントパネルが写る領域、サイドゲートが写る領域、およびテールゲートが写る領域をそれぞれ特定する。
【0086】
三次元データ生成部1703は、ステレオ画像の右目画像および左目画像のそれぞれから、ステップS73で特定した各面に係る部分右目画像および部分左目画像を抽出する(ステップS74)。三次元データ生成部1703は、部分右目画像および部分左目画像と、カメラパラメータCPとに基づく三角測量により、車体座標系に係る各面の点群データを生成する(ステップS75)。次に、三次元データ生成部1703は、旋回体120の位置、方位、および傾きに基づいて、各面の点群データの車体座標系における各点の位置を、現場座標系における各点の位置に変換する(ステップS76)。このとき、点群データは、三次元特徴量を特定することなく、すでに面ごとのグループに分けられている。
【0087】
モデルフィッティング部1705は、各グループに係る点群データの位置と、ストレージ93に記憶された対象モデルDの各面の位置との差が最小となるように、現場座標系で表される仮想空間に対象モデルDを配置することで、ベッセル210の現場座標系における位置、方位、および傾きを特定する(ステップS77)。
【0088】
作業機位置特定部1706は、データ取得部1701が取得した作業機110の角度と旋回体120の位置、方位、および傾きとに基づいて、現場座標系におけるブーム111、アーム112、およびバケット113の位置を特定する(ステップS78)。
【0089】
ガイダンス情報生成部1707は、ステップS77で特定したベッセル210の位置、方位、および傾きと、ステップS78で特定したブーム111、アーム112、およびバケット113の位置と、ステップS71で取得した旋回体120の位置、方位、および傾きとに基づいて、ガイダンス情報を生成する(ステップS79)。表示制御部1708は、ガイダンス情報を表示する表示信号を表示装置128に出力する(ステップS80)。
【0090】
《作用・効果》
このように、第5の実施形態によれば、制御装置127は、セグメンテーションモデルMが、ベッセル210の各面を異なる領域に分割する。これにより、制御装置127は、三次元特徴量を算出することなく、三次元データと三次元モデルのマッチングを行うことができる。
【0091】
〈他の実施形態〉
以上、図面を参照して一実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、様々な設計変更等をすることが可能である。
例えば、上述の実施形態においては、制御装置127が三角測量に基づいてステレオ画像から三次元データを生成するが、これに限られない。例えば、他の実施形態に係る制御装置127は、ステレオ画像を入力することで深度画像を出力する学習済みモデルを用いて三次元データを生成してもよい。また他の実施形態においては、セグメンテーションモデルMが、ステレオ画像を入力することで、物体毎の領域に分割した深度画像を出力するように学習されてたものであってもよい。
【0092】
また、上述の実施形態においては、制御装置127は、ベッセル210の位置、方位および傾きを特定するが、他の実施形態においてはこれに限られない。例えば、他の実施形態に係る制御装置127は、ベッセル210の位置を特定し、方位および傾きを特定しないものであってもよい。また例えば、他の実施形態に係る制御装置127は、ベッセル210の位置および方位を特定し、傾きを特定しないものであってもよい。
【0093】
また、上述の実施形態に係る制御装置127は、油圧ショベル100に搭載されるが、これに限られない。例えば、他の実施形態に係る制御装置127は、遠隔のサーバ装置に設けられてもよい。また、制御装置127は、複数のコンピュータから実現されるものであってもよい。この場合、制御装置127の一部の構成が遠隔のサーバ装置に設けられるものであってもよい。すなわち、制御装置127は、複数の装置からなる画像処理システムとして実装されてもよい。また、油圧ショベル100は、完全自律型、一部自律型の油圧ショベルであってもよい。また、ガイダンス情報を表示する表示信号を作業機械を遠隔操作するための遠隔運転室に送信するものであってもよい。
【0094】
また、上述の実施形態に係る積み下ろし対象は、ダンプトラック200のベッセル210だが、これに限られない。例えば、他の実施形態に係る積み下ろし対象は、ホッパなどの他の積み下ろし対象であってもよい。
【0095】
また、上述の実施形態でフローチャートを用いて説明した動作は、上述した順番で実行されるものに限られない。例えば、
図7に示すガイダンス情報の表示方法では、ステップS6で点群データの座標系を現場座標系に変換した後に、ステップS7での面のグループ分け、およびステップS8でのベッセルの姿勢特定を行うが、これに限られない。例えば、他の実施形態においては、ステップS7での面のグループ分け、またはステップS8でのベッセルの姿勢特定の後に座標変換を行ってもよい。同様に、他の動作についても、適宜処理の順番を入れ替えることができる。
【0096】
また、上述の実施形態では、油圧ショベル100の制御装置がベッセル210の位置を特定するが、これに限られない。例えば、他の実施形態においては、移動式クレーンなどの他の作業機械の制御装置、ダンプトラック、ホイールローダー、ブルドーザ等の作業機械の制御装置、または現場に備え付けられた監視装置が、ベッセル210の位置を特定してもよい。
【符号の説明】
【0097】
100…油圧ショベル 110…作業機 120…旋回体 130…走行体 122…作業機位置検出器 123…位置方位演算器 124…傾斜検出器 125…ステレオカメラ 127…制御装置 128…表示装置 1701…データ取得部 1702…領域特定部 1703…三次元データ生成部 1704…積み下ろし対象特定部 1705…モデルフィッティング部 1706…作業機位置特定部 1707…ガイダンス情報生成部 1708…表示制御部 1709…学習部