(57)【要約】【課題】作業機の位置を求める。【解決手段】作業機械本体と、作業機械本体に取り付けられた作業機と、作業機を撮像する撮像装置５０と、コンピュータ１０２Ａとを備える、作業機械を含むシステムが提供される。コンピュータ１０２Ａは、学習済みの位置推定モデル８０を有している。コンピュータ１０２Ａは、撮像装置５０によって撮像される作業機の撮像画像を取得し、学習済みの位置推定モデル８０を用いて撮像画像５０から作業機の位置を推定した推定位置を求めるように、プログラムされている。【選択図】図５
2019214835.tif 000002
【特許請求の範囲】
【請求項１】
作業機械本体と、
前記作業機械本体に取り付けられた作業機と、
前記作業機を撮像する撮像装置と、
コンピュータとを備え、
前記コンピュータは、前記作業機の位置を求めるための学習済み位置推定モデルを有し、
前記コンピュータは、前記撮像装置によって撮像される前記作業機の撮像画像を取得し、前記学習済み位置推定モデルを用いて前記撮像画像から前記作業機の位置を推定した推定位置を求めるようにプログラムされている、作業機械を含むシステム。
【請求項２】
前記作業機の位置は、前記作業機械本体に対する前記作業機の相対位置である、請求項１に記載のシステム。
【請求項３】
前記作業機は、前記作業機械本体に連結されたブームと、前記ブームに連結されたアームと、前記アームに連結されたバケットとを有し、
前記推定位置は、前記作業機械本体に対する前記ブームの角度と、前記ブームに対する前記アームの角度と、前記アームに対する前記バケットの角度とを含む、請求項２に記載のシステム。
【請求項４】
前記撮像画像は、前記作業機の動画像から得られたフレーム画像である、請求項１〜３のいずれか１項に記載のシステム。
【請求項５】
前記撮像装置は、前記作業機械本体に取り付けられ、
前記作業機は、所定の動作平面上で動作し、
前記撮像装置の光軸が前記動作平面に交差する、請求項１〜４のいずれか１項に記載のシステム。
【請求項６】
前記コンピュータは、前記推定位置と、前記撮像画像を撮像した時点に前記相対位置を計測した計測位置との誤差に基づいて、前記学習済み位置推定モデルが更新されるようにプログラムされている、請求項１〜５のいずれか１項に記載のシステム。
【請求項７】
前記作業機は、アタッチメントを有し、
前記作業機の位置は、前記アタッチメントの位置である、請求項１に記載のシステム。
【請求項８】
コンピュータによって実行される方法であって、
作業機械本体に設けられた作業機を含んだ画像を取得する工程と、
前記作業機の位置を求めるための学習済み位置推定モデルを用いて前記画像から前記作業機の位置を推定した推定位置を求める工程と、
を備える方法。
【請求項９】
学習済みの位置推定モデルの製造方法であって、
作業機械本体に取り付けられた作業機の撮像画像と、前記撮像画像を撮像した時点の前記作業機の位置を計測した計測位置とを含む学習用データを取得することと、
前記学習用データにより前記位置推定モデルを学習させることと、を備える、製造方法。
【請求項１０】
前記学習させることは、
前記位置推定モデルを用いて前記撮像画像から前記作業機の位置を推定した推定位置を求めることと、
前記計測位置に対する前記推定位置の誤差を算出することと、
前記誤差に基づいて前記位置推定モデルを更新することとを含む、請求項９に記載の製造方法。
【請求項１１】
作業機の位置を求める位置推定モデルを学習させるための学習用データであって、
撮像装置によって撮像された前記作業機の撮像画像と、
前記撮像画像を撮像した時点の作業機の位置を計測した計測位置とを備える、学習用データ。
【請求項１２】
前記作業機の位置は、作業機械本体に対する前記作業機の相対位置である、請求項１１に記載の学習用データ。
【請求項１３】
前記作業機は、前記作業機械本体に連結されたブームと、前記ブームに連結されたアームと、前記アームに連結されたバケットとを有し、
前記計測位置は、前記作業機械本体に対する前記ブームの角度と、前記ブームに対する前記アームの角度と、前記アームに対する前記バケットの角度とを含む、請求項１２に記載の学習用データ。
【請求項１４】
学習済みの位置推定モデルの製造方法であって、
作業機械本体に取り付けられた作業機の撮像画像を取得することと、
学習済みの第１の位置推定モデルを用いて前記撮像画像から前記作業機の位置を推定した推定位置を求めることと、
前記撮像画像と前記推定位置とを含む学習用データにより、第２の位置推定モデルを学習させることと、を備える、製造方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、作業機械を含むシステム、コンピュータによって実行される方法、学習済みの位置推定モデルの製造方法、および学習用データに関する。
【背景技術】
【０００２】
油圧ショベルに関し、特許文献１には、ブームピンにブーム角度センサを取り付け、アームピンにアーム角度センサを取り付け、バケットリンクにバケット角度センサを取り付け、これら角度センサで検出した値に基づいてバケットの爪先の位置を算出する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１７−７１９８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記文献に記載の構成では、作業機の姿勢を取得するためにブーム、アームおよびバケットの各々の軸に角度センサを取り付ける必要があり、部品点数が増加する。
【０００５】
本開示では、作業機の位置を求めるための、作業機械を含むシステム、コンピュータによって実行される方法、学習済みの位置推定モデルの製造方法、および学習用データが提供される。
【課題を解決するための手段】
【０００６】
本開示のある局面に従うと、作業機械本体と、作業機械本体に取り付けられた作業機と、作業機を撮像する撮像装置と、コンピュータとを備える、作業機械を含むシステムが提供される。コンピュータは、作業機の位置を求めるための学習済み位置推定モデルを有している。コンピュータは、撮像装置によって撮像される作業機の撮像画像を取得し、学習済み位置推定モデルを用いて撮像画像から作業機の位置を推定した推定位置を求めるようにプログラムされている。
【０００７】
本開示のある局面に従うと、コンピュータによって実行される方法が提供される。当該方法は、以下の処理を備えている。第１の処理は、作業機械本体に設けられた作業機を含んだ画像を取得することである。第２の処理は、作業機の位置を求めるための学習済み位置推定モデルを用いて、取得した画像から作業機の位置を推定した推定位置を求めることである。
【０００８】
本開示のある局面に従うと、学習済みの位置推定モデルの製造方法が提供される。製造方法は、以下の処理を含んでいる。第１の処理は、学習用データを取得することである。学習用データは、作業機械本体に取り付けられた作業機の撮像画像と、撮像画像を撮像した時点の作業機の位置を計測した計測位置とを含んでいる。第２の処理は、学習用データにより位置推定モデルを学習させることである。
【０００９】
本開示のある局面に従うと、作業機の位置を求める位置推定モデルを学習させるための学習用データが提供される。学習用データは、撮像装置によって撮像された作業機の撮像画像と、撮像画像を撮像した時点の作業機の位置を計測した計測位置とを備えている。
【００１０】
本開示のある局面に従うと、学習済みの位置推定モデルの製造方法が提供される。製造方法は、以下の処理を備えている。第１の処理は、作業機械本体に取り付けられた作業機の撮像画像を取得することである。第２の処理は、学習済みの第１の位置推定モデルを用いて撮像画像から作業機の位置を推定した推定位置を求めることである。第３の処理は、撮像画像と推定位置とを含む学習用データにより、第２の位置推定モデルを学習させることである。
【発明の効果】
【００１１】
本開示に従えば、作業機の位置を精度よく取得することができる。
【図面の簡単な説明】
【００１２】
【図１】実施形態に基づく油圧ショベルの外観図である。
【図２】ブーム角度、アーム角度およびバケット角度について説明する、作業機の側面図である。
【図３】図１に示す油圧ショベルの模式的平面図である。
【図４】作業機械を含むシステムに含まれる、コンピュータの構成を示す模式図である。
【図５】出荷前の油圧ショベルのシステム構成を示すブロック図である。
【図６】学習済みの位置推定モデルの製造方法を示すフローチャートである。
【図７】位置推定モデルを学習させるための処理を示す概略図である。
【図８】撮像画像の一例を示す模式図である。
【図９】工場出荷される油圧ショベルのシステム構成を示すブロック図である。
【図１０】工場出荷後に作業機の相対位置を推定するためにコンピュータによって実行される処理を示すフローチャートである。
【図１１】学習済みの位置推定モデルを用いた、撮像画像から作業機の相対位置を推定する処理を示す模式図である。
【図１２】位置推定モデルの学習に関する変形例を示す概略図である。
【図１３】蒸留モデルを生成するための処理を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下、実施形態について図に基づいて説明する。以下の説明では、同一部品には、同一の符号を付している。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
【００１４】
実施形態においては、まず、本開示の思想を適用可能な作業機械の一例である油圧ショベルの構成について説明する。図１は、実施形態に基づく油圧ショベル１００の外観図である。
【００１５】
図１に示されるように、油圧ショベル１００は、本体１と、油圧により作動する作業機２とを有している。本体１は、旋回体３と、走行装置５とを有している。走行装置５は、一対の履帯５Ｃｒを有している。油圧ショベル１００は、履帯５Ｃｒの回転により走行可能である。なお、走行装置５が車輪（タイヤ）を有していてもよい。
【００１６】
旋回体３は、走行装置５の上に配置され、かつ走行装置５により支持されている。旋回体３は、旋回軸ＲＸを中心として走行装置５に対して旋回可能である。旋回体３は、キャブ４を有している。油圧ショベル１００の乗員（オペレータ）は、このキャブ４に搭乗して、油圧ショベル１００を操縦する。キャブ４には、オペレータが着座する運転席４Ｓが設けられている。オペレータは、キャブ４内において油圧ショベル１００を操作可能である。オペレータは、キャブ４内において、作業機２の操作が可能であり、走行装置５に対する旋回体３の旋回操作が可能であり、また走行装置５による油圧ショベル１００の走行操作が可能である。
【００１７】
旋回体３は、エンジンが収容されるエンジンルーム９と、旋回体３の後部に設けられるカウンタウェイトとを有している。エンジンルーム９には、図示しないエンジンおよび油圧ポンプなどが配置されている。
【００１８】
旋回体３において、エンジンルーム９の前方に手すり２９が設けられている。手すり２９には、アンテナ２１が設けられている。アンテナ２１は、たとえばＧＮＳＳ（Global  Navigation  Satellite  Systems：全地球航法衛星システム）用のアンテナである。アンテナ２１は、車幅方向に互いに離れるように旋回体３に設けられた第１アンテナ２１Ａおよび第２アンテナ２１Ｂを有している。
【００１９】
作業機２は、旋回体３に支持されている。作業機２は、ブーム６と、アーム７と、バケット８とを有している。ブーム６は、旋回体３に回動可能に連結されている。アーム７はブーム６に回動可能に連結されている。バケット８は、アーム７に回動可能に連結されている。バケット８は、複数の刃を有している。バケット８の先端部を、刃先８ａと称する。
【００２０】
ブーム６の基端部は、ブームピン１３を介して旋回体３に連結されている。アーム７の基端部は、アームピン１４を介してブーム６の先端部に連結されている。バケット８は、バケットピン１５を介してアーム７の先端部に連結されている。バケット８は、作業機２の先端に着脱可能に装着されたアタッチメントの一例である。作業の種類に応じて、アタッチメントが、ブレーカ、グラップル、またはリフティングマグネットなどに付け替えられる。
【００２１】
なお本実施形態においては、作業機２を基準として、油圧ショベル１００の各部の位置関係について説明する。
【００２２】
作業機２のブーム６は、旋回体３に対して、ブーム６の基端部に設けられたブームピン１３を中心に回動する。旋回体３に対して回動するブーム６の特定の部分、たとえばブーム６の先端部が移動する軌跡は円弧状である。その円弧を含む平面が、図１に示す動作平面Ｐとして特定される。油圧ショベル１００を平面視した場合に、動作平面Ｐは直線として表される。この直線の延びる方向が、油圧ショベル１００の本体１の前後方向、または旋回体３の前後方向であり、以下では単に前後方向ともいう。油圧ショベル１００の本体１の左右方向（車幅方向）、または旋回体３の左右方向とは、平面視において前後方向と直交する方向であり、以下では単に左右方向ともいう。
【００２３】
前後方向において、油圧ショベル１００の本体１から作業機２が突き出している側が前方向であり、前方向と反対方向が後方向である。前方向を視て左右方向の右側、左側がそれぞれ右方向、左方向である。
【００２４】
前後方向とは、キャブ４内の運転席に着座したオペレータの前後方向である。運転席に着座したオペレータに正対する方向が前方向であり、運転席に着座したオペレータの背後方向が後方向である。左右方向とは、運転席に着座したオペレータの左右方向である。運転席に着座したオペレータが正面に正対したときの右側、左側がそれぞれ右方向、左方向である。
【００２５】
ブーム６は、ブームピン１３を中心に回動可能である。アーム７は、アームピン１４を中心に回動可能である。バケット８は、バケットピン１５を中心に回動可能である。アーム７およびバケット８のそれぞれは、ブーム６の先端側で移動可能な可動部材である。ブームピン１３、アームピン１４およびバケットピン１５は、動作平面Ｐと直交する方向、すなわち左右方向に延びている。動作平面Ｐは、ブーム６、アーム７およびバケット８の各々の回動中心となる軸線の、少なくとも一つ（実施形態の場合、三つ全て）と直交している。
【００２６】
上述した通り、ブーム６は動作平面Ｐ上で旋回体３に対して回動動作する。同様に、アーム７は動作平面Ｐ上でブーム６に対して回動動作し、バケット８は動作平面Ｐ上でアーム７に対して回動動作する。実施形態の作業機２は、その全体が動作平面Ｐ上で動作する。バケット８の刃先８ａは、動作平面Ｐ上を移動する。動作平面Ｐは、作業機２の可動範囲を含む垂直な平面である。動作平面Ｐは、ブーム６、アーム７およびバケット８の各々と交差している。動作平面Ｐは、ブーム６、アーム７およびバケット８の左右方向の中心に設定することができる。
【００２７】
図１に示すように、本明細書において、動作平面Ｐ上における水平な方向にＸ軸を設定し、動作平面Ｐ上における垂直上向き方向にＹ軸を設定する。Ｘ軸とＹ軸とは、互いに直交している。
【００２８】
作業機２は、ブームシリンダ１０と、アームシリンダ１１と、バケットシリンダ１２とを有している。ブームシリンダ１０は、ブーム６を駆動する。アームシリンダ１１は、アーム７を駆動する。バケットシリンダ１２は、バケット８を駆動する。ブームシリンダ１０、アームシリンダ１１、およびバケットシリンダ１２のそれぞれは、作動油によって駆動される油圧シリンダである。
【００２９】
作業機２は、バケットリンクを有している。バケットリンクは、第１リンク部材１６と、第２リンク部材１７とを有している。第１リンク部材１６の先端と第２リンク部材１７の先端とは、バケットシリンダトップピン１９を介して、相対回転可能に連結されている。バケットシリンダトップピン１９は、バケットシリンダ１２の先端に連結されている。したがって第１リンク部材１６および第２リンク部材１７は、バケットシリンダ１２にピン連結されている。
【００３０】
第１リンク部材１６の基端は、アーム７の先端部のバケットピン１５の近傍において、第１リンクピン１８を介してアーム７に回転可能に連結されている。第１リンク部材１６は、アーム７にピン連結されている。第２リンク部材１７の基端は、第２リンクピン２０を介して、バケット８の根元部分のブラケットに回転可能に連結されている。第２リンク部材１７は、バケット８にピン連結されている。
【００３１】
油圧ショベル１００は、撮像装置５０を有している。実施形態の撮像装置５０は、単眼カメラである。
【００３２】
撮像装置５０は、旋回体３に取り付けられている。撮像装置５０は、キャブ４に取り付けられている。撮像装置５０は、キャブ４の内部に取り付けられている。撮像装置５０は、キャブ４の左フロントピラーの上端付近に取り付けられている。撮像装置５０は、キャブ４の内部空間における、左右方向において作業機２からより離れる位置である左フロントピラーの近傍に配置されている。撮像装置５０は、左右方向において、作業機２の動作平面Ｐから離れて配置されている。撮像装置５０は、動作平面Ｐよりも左方に配置されている。
【００３３】
図２は、ブーム角度θｂ、アーム角度θａ、およびバケット角度θｋについて説明する、作業機２の側面図である。
【００３４】
図２に示すように、側方視において、ブームピン１３とアームピン１４とを通る直線と、上下方向に延びる直線との成す角度を、ブーム角度θｂとする。ブーム角度θｂは、旋回体３に対するブーム６の角度を表す。
【００３５】
側方視において、ブームピン１３とアームピン１４とを通る直線と、アームピン１４とバケットピン１５とを通る直線との成す角度を、アーム角度θａとする。アーム角度θａは、ブーム６に対するアーム７の角度を表す。
【００３６】
側方視において、アームピン１４とバケットピン１５とを通る直線と、バケットピン１５と刃先８ａとを通る直線との成す角度を、バケット角度θｋとする。バケット角度θｋは、アーム７に対するバケット８の角度を表す。
【００３７】
動作平面Ｐ上における作業機２の姿勢は、ブーム角度θｂ、アーム角度θａおよびバケット角度θｋの組み合わせで決まる。たとえば、アーム７の先端部の第１リンクピン１８の動作平面Ｐ上の位置、すなわちＸＹ座標は、ブーム角度θｂおよびアーム角度θａの組み合わせで決まる。バケット８の動作に追随して変位するバケットシリンダトップピン１９の動作平面Ｐ上の位置、すなわちＸＹ座標は、ブーム角度θｂ、アーム角度θａおよびバケット角度θｋの組み合わせで決まる。
【００３８】
図３は、図１に示す油圧ショベル１００の模式的平面図である。図３には、図１を参照して説明した作業機２、旋回体３、キャブ４、および撮像装置５０が、模式的に図示されている。動作平面Ｐは、図３においては、図中の上下方向に延びる直線であり、二点鎖線で図示されている。図３に一点鎖線で図示されている光軸ＡＸは、撮像装置５０の光軸である。光軸ＡＸの延びる方向と、動作平面Ｐの延びる方向とは、非平行である。光軸ＡＸの延びる方向は、動作平面Ｐの延びる方向に対して傾斜している。光軸ＡＸは、動作平面Ｐに交差している。
【００３９】
撮像装置５０は、作業機２の動作平面を斜め方向から見る位置に装着されている。撮像装置５０は、動作平面Ｐに対して０°より大きい角度で、作業機２を撮像する。作業機２と撮像装置５０との両方が旋回体３に取り付けられているために、油圧ショベル１００が走行または旋回しても、動作平面Ｐに対する撮像装置５０の位置関係は変化しない。動作平面Ｐに対する撮像装置５０の取付位置は、油圧ショベル１００の機種毎に予め決定されている。
【００４０】
撮像装置５０は、作業機２を撮像する。撮像装置５０は、作業機２の動作平面Ｐを撮像する。撮像装置５０は、動作平面Ｐ上を移動する作業機２を撮像する。撮像装置５０による撮像画像は、作業機２の少なくとも一部を含んでいる。
【００４１】
図４は、作業機械を含むシステムに含まれる、コンピュータ１０２Ａの構成を示す模式図である。実施形態に係るシステムは、作業機械本体（本体１）に対する作業機２の相対位置を求めるためのシステムである。実施形態に係るシステムは、図１〜３を参照して説明した作業機械の一例としての油圧ショベル１００と、図４に示されるコンピュータ１０２Ａとを含んでいる。
【００４２】
コンピュータ１０２Ａは、実施形態に係るシステム用に専用に設計されたものであってもよく、または汎用のＰＣ（Personal  Computer）であってもよい。コンピュータ１０２Ａは、プロセッサ１０３と、記憶装置１０４と、通信インタフェース１０５と、Ｉ／Ｏインタフェース１０６とを有している。プロセッサ１０３は、たとえばＣＰＵ（Central  Processing  Unit）である。
【００４３】
記憶装置１０４は、記憶されたプログラムおよびデータなどの情報をプロセッサ１０３が読み取り可能なように記憶する媒体を含んでいる。記憶装置１０４は、ＲＡＭ（Random  Access  Memory）、またはＲＯＭ（Read  Only  Memory）などのシステムメモリと、補助記憶装置とを含んでいる。補助記憶装置は、たとえばハードディスクなどの磁気的記録媒体、ＣＤ（Compact  Disc）、ＤＶＤ（Digital  Versatile  Disc）などの光学的記録媒体、またはフラッシュメモリなどの半導体メモリであってもよい。記憶装置１０４は、コンピュータ１０２Ａに内蔵されてもよい。記憶装置１０４は、コンピュータ１０２Ａに着脱可能に接続される外部記録媒体１０９を含んでもよい。外部記録媒体１０９は、ＣＤ−ＲＯＭであってもよい。
【００４４】
通信インタフェース１０５は、たとえば有線ＬＡＮ（Local  Area  Network）モジュール、または無線ＬＡＮモジュールなどであり、通信ネットワークを介した通信を行うためのインタフェースである。Ｉ／Ｏインタフェース１０６は、たとえばＵＳＢ（Universal  Serial  Bus）ポートなどであり、外部装置と接続するためのインタフェースである。
【００４５】
コンピュータ１０２Ａは、Ｉ／Ｏインタフェース１０６を介して、入力装置１０７、および出力装置１０８と接続される。入力装置１０７は、ユーザがコンピュータ１０２Ａへの入力を行うための装置である。入力装置１０７は、たとえば、マウス、またはトラックボールなどのポインティングデバイスを含んでいる。入力装置１０７は、キーボードなどの文字入力のための装置を含んでもよい。出力装置１０８は、たとえば、ディスプレイを含んでいる。
【００４６】
図５は、出荷前の油圧ショベル１００のシステム構成を示すブロック図である。図５に示されるプロセッサ１０３および記憶装置１０４は、図４に示されるコンピュータ１０２Ａの一部構成をなすものである。プロセッサ１０３は、画像処理部６１と、作業機位置推定部６５とを有している。記憶装置１０４には、学習済みの位置推定モデル８０が保存されている。
【００４７】
画像処理部６１は、撮像装置（カメラ）５０から、撮像装置５０により撮像された撮像画像の入力を受ける。画像処理部６１は、入力された撮像画像を画像処理する。
【００４８】
位置推定モデル８０は、本体１に対する作業機２の相対位置を求めるための人工知能モデルである。位置推定モデル８０は、撮像画像から作業機２の相対位置を求めるように構成されている。コンピュータ１０２Ａは、人工知能の位置推定モデルを用いることで、作業機２の相対位置を推定する。作業機位置推定部６５は、位置推定モデル８０を用いて、撮像画像から作業機２の相対位置を推定した推定位置を求める。より具体的には、作業機位置推定部６５は、記憶装置１０４から位置推定モデル８０を読み出し、位置推定モデル８０に撮像画像を入力することで、ブーム角度θｂ、アーム角度θａおよびバケット角度θｋの推定結果の出力を得る。
【００４９】
位置推定モデル８０は、ニューラルネットワークを含んでいる。位置推定モデル８０はたとえば、畳み込みニューラルネットワーク（ＣＮＮ）などのディープニューラルネットワークを含んでいる。
【００５０】
実施形態におけるモデルは、ハードウェア、ハードウェア上で実行可能なソフトウェア、ファームウェア、またそれらの組合せに実装されていてもよい。モデルは、プロセッサ１０３によって実行されるプログラム、アルゴリズム、およびデータを含んでもよい。モデルの機能は、単一のモジュールによって実行されてもよく、または複数のモジュールに分散して実行されてもよい。モデルは、複数のコンピュータに分散して配置されてもよい。
【００５１】
出荷前の油圧ショベル１００は、エンコーダ１６１をさらに備えている。エンコーダ１６１は、ブームピン１３に取り付けられるブーム角度センサ、アームピンに取り付けられるアーム角度センサおよびバケットリンクに取り付けられるバケット角度センサの総称である。エンコーダ１６１に替えて、作業機２にポテンショメータを装着して角度を計測してもよい。また、油圧シリンダのストロークを検出するストロークセンサを装着して、油圧シリンダの移動量を角度に変換してもよい。
【００５２】
プロセッサ１０３は、角度変換部１６２と、誤差検出部６６と、位置推定モデル更新部６７とを有している。角度変換部１６２は、エンコーダ１６１から電気信号の入力を受け、この電気信号をブーム角度θｂ、アーム角度θａおよびバケット角度θｋに変換する。エンコーダ１６１は、撮像装置５０が撮像画像を撮像した時刻に電気信号を取得して、角度変換部１６２に出力する。角度変換部１６２は、撮像画像を撮像した時点に計測したブーム角度θｂ、アーム角度θａおよびバケット角度θｋを、撮像画像に対応付けて取得する。
【００５３】
誤差検出部６６は、作業機位置推定部６５によって推定されたブーム角度θｂ、アーム角度θａおよびバケット角度θｋの推定結果と、角度変換部１６２で変換されたエンコーダ１６１の検出結果に基づくブーム角度θｂ、アーム角度θａおよびバケット角度θｋの計測結果とを比較する。誤差検出部６６は、ブーム角度θｂ、アーム角度θａおよびバケット角度θｋの真値に対する推定結果の誤差を算出する。
【００５４】
位置推定モデル更新部６７は、誤差検出部６６が算出したブーム角度θｂ、アーム角度θａおよびバケット角度θｋの誤差に基づいて、位置推定モデル８０を更新する。このようにして、位置推定モデル８０が学習される。撮像装置５０が撮像した作業機２の撮像画像と、角度変換部１６２で算出される、撮像画像を撮像した時点のブーム角度θｂ、アーム角度θａおよびバケット角度θｋとは、位置推定モデル８０を学習させるための学習用データを構成している。位置推定モデル８０の学習は、油圧ショベル１００の出荷前に、工場で行なわれる。
【００５５】
図６は、学習済みの位置推定モデル８０の製造方法を示すフローチャートである。図７は、位置推定モデル８０を学習させるための処理を示す概略図である。図５について説明した内容と一部重複もあるが、図６および図７を参照して、本体１に対する作業機２の相対位置を推定する位置推定モデル８０を学習させるための処理について、以下に説明する。
【００５６】
図６に示されるように、まずステップＳ１０１において、撮像画像を取得する。コンピュータ１０２Ａ、より詳しくは画像処理部６１は、撮像装置（カメラ）５０により撮像された撮像画像を、撮像装置５０から取得する。撮像画像にはタイムスタンプが付与されており、撮像した時刻を判別できるように設定されている。画像処理部６１は、撮像装置５０が撮像した撮像画像をリアルタイムに取得してもよい。画像処理部６１は、撮像装置５０から撮像画像を所定時刻に、または所定時間毎に取得してもよい。画像処理部６１は、撮像画像を画像処理して、記憶装置１０４に保存する。
【００５７】
次にステップＳ１０２において、角度計測データを取得する。コンピュータ１０２Ａ、より詳しくは角度変換部１６２は、エンコーダ１６１によって検出されたブーム角度θｂ、アーム角度θａおよびバケット角度θｋの計測データを、エンコーダ１６１から取得する。これらの計測データは、撮像画像に割り当てられたものとされる。ある時刻に撮像された撮像画像は、その時刻に検出された計測データに対応付けられる。図７に示すように、撮像画像と、その撮像画像を撮像した時点に作業機２の角度を計測した計測位置とを含む学習用データ６１Ａ，６１Ｂ，６１Ｃ，…，が作成される。
【００５８】
学習用データは、図７に示されるような、作業機２の姿勢が異なる複数の撮像画像を含んでいる。学習用データは、同じ姿勢の作業機２を、たとえば日中、逆光時、夜間などの異なる環境下で撮像した複数の撮像画像を含んでいてもよい。
【００５９】
次にステップＳ１０３において、作業機２の相対位置を出力する。コンピュータ１０２Ａ、より詳しくは作業機位置推定部６５は、記憶装置１０４から位置推定モデル８０を読み出す。位置推定モデル８０は、図７に示すニューラルネットワークを含んでいる。ニューラルネットワークは、入力層８１と、中間層（隠れ層）８２と、出力層８３とを含んでいる。各層８１，８２，８３は、１または複数のニューロンを有している。各層８１，８２，８３のニューロンの数は、適宜設定することができる。
【００６０】
互いに隣接する層のニューロン同士は結合されており、各結合には重み（結合荷重）が設定されている。ニューロンの結合数は、適宜設定されてよい。各ニューロンには閾値が設定されており、各ニューロンへの入力値と重みとの積の和が閾値を超えているか否かによって、各ニューロンの出力値が決定される。
【００６１】
位置推定モデル８０は、撮像画像から作業機２の相対位置を求めるように学習される。学習によって得られた位置推定モデル８０のパラメータは、記憶装置１０４に記憶されている。位置推定モデル８０のパラメータは、たとえば、ニューラルネットワークの層数、各層におけるニューロンの個数、ニューロン同士の結合関係、各ニューロン間の結合の重み、および各ニューロンの閾値を含んでいる。
【００６２】
作業機位置推定部６５は、撮像装置５０が撮像した撮像画像を、入力層８１に入力する。出力層８３から、本体１に対する作業機２の相対位置、具体的にはブーム角度θｂ、アーム角度θａおよびバケット角度θｋを示す出力値が出力される。たとえば、コンピュータ１０２Ａは、撮像画像を入力層８１の入力として用いて、位置推定モデル８０のニューラルネットワークの順方向伝播の演算処理を行う。これにより、コンピュータ１０２Ａは、ニューラルネットワークの出力層８３から出力される出力値として、作業機２の相対位置を推定した推定位置を得る。
【００６３】
ステップＳ１０２の処理とステップＳ１０３の処理とは、ステップＳ１０２の処理の後にステップＳ１０３の処理が行なわれなくてもよい。ステップＳ１０２の処理とステップＳ１０３の処理とが同時に行なわれてもよく、ステップＳ１０３の処理の後にステップＳ１０２の処理が行なわれてもよい。
【００６４】
次にステップＳ１０４において、ステップＳ１０３で出力された作業機２の推定位置と、ステップＳ１０２で取得された作業機２の角度の計測データとの差を算出する。コンピュータ１０２Ａ、より詳しくは誤差検出部６６は、位置推定モデル８０の出力層８３から出力された、撮像画像から作業機２の相対位置を推定した推定位置と、角度変換部１６２で得られた作業機２の相対位置の計測位置とを比較して、作業機２の相対位置の真値に対する推定値の誤差を算出する。
【００６５】
コンピュータ１０２Ａは、撮像画像を入力データとし、撮像画像を撮像した時点に作業機２の相対位置を計測した計測位置を教師データとして、位置推定モデル８０の学習を行う。コンピュータ１０２Ａは、算出した出力値の誤差から、バックプロパゲーションにより、各ニューロン間の結合の重み、および、各ニューロンの閾値のそれぞれの誤差を算出する。
【００６６】
次にステップＳ１０５において、位置推定モデル８０を更新する。コンピュータ１０２Ａ、より詳しくは位置推定モデル更新部６７は、誤差検出部６６で算出された作業機２の相対位置の真値に対する推定値の誤差に基づいて、各ニューロン間の結合の重み、および各ニューロンの閾値などの、位置推定モデル８０のパラメータを更新する。そして、同じ撮像画像が入力層８１に入力されたならば真値により近い出力値を出力できるようにする。更新された位置推定モデル８０のパラメータは、記憶装置１０４に記憶される。
【００６７】
次回に作業機２の相対位置を推定するときには、更新された位置推定モデル８０に撮像画像を入力して、作業機２の相対位置の推定結果の出力を得る。コンピュータ１０２Ａは、位置推定モデル８０が出力する作業機２の相対位置の推定結果が作業機２の相対位置を計測した計測位置と一致するようになるまで、ステップＳ１０１からステップＳ１０５までの処理を繰り返す。このようにして、位置推定モデル８０のパラメータが最適化され、位置推定モデル８０の学習が行なわれる。
【００６８】
位置推定モデル８０が十分に学習を積み重ねた結果、十分に精度の高い推定結果の出力が得られるようになると、コンピュータ１０２Ａは位置推定モデル８０の学習を終える。このようにして、学習済みの位置推定モデル８０が作成される。そして、処理を終了する（エンド）。
【００６９】
なお、位置推定モデル８０の各種のパラメータの初期値は、テンプレートにより与えられてもよい。またはパラメータの初期値は、人間の入力により手動で与えられてもよい。位置推定モデル８０の再学習を行うときには、コンピュータ１０２Ａは、再学習を行う対象となる位置推定モデル８０のパラメータとして記憶装置１０４に記憶されている値に基づいて、パラメータの初期値を用意してもよい。
【００７０】
図８は、撮像画像の一例を示す模式図である。図８に示されるように、撮像装置５０によって撮像される撮像画像は、作業機２の動画像ＭＶ１であってもよい。図８では、動画像ＭＶ１に含まれる複数の画像のうちの一部である画像Ｆ１１〜Ｆ１４のみが例示されている。各々の画像Ｆ１１〜Ｆ１４には、タイムスタンプが付与されている。コンピュータ１０２Ａ（画像処理部６１）は、動画像ＭＶ１から、たとえば画像Ｆ１１を抜き出す。このときコンピュータ１０２は、画像Ｆ１１に付与されているタイムスタンプと同時刻に検出された作業機２の相対位置の計測データを取得し、その計測データを撮像画像に割り当てる。
【００７１】
図９は、工場出荷される油圧ショベル１００のシステム構成を示すブロック図である。エンコーダ１６１は、出荷前に位置推定モデル８０を学習させる目的で作業機２に仮取り付けされ、位置推定モデル８０の学習が完了すると作業機２から取り外される。工場出荷される油圧ショベル１００は、エンコーダ１６１を備えていない。工場出荷される油圧ショベル１００は、図５に示すシステム構成のうち、撮像装置５０およびコンピュータ１０２Ｂ（プロセッサ１０３、および記憶装置１０４）のみを備えている。
【００７２】
図１０は、工場出荷後に作業機２の相対位置を推定するためにコンピュータ１０２Ｂによって実行される処理を示すフローチャートである。図１１は、撮像画像から作業機２の相対位置を求めるように学習済みの位置推定モデル８０を用いた、撮像画像から作業機２の相対位置を推定する処理を示す模式図である。図９〜１１を参照して、工場出荷後に作業現場で撮像した撮像画像から作業機２の相対位置を推定する処理について、以下に説明する。
【００７３】
まずステップＳ２０１において、撮像画像を取得する。コンピュータ１０２Ｂ、より詳しくは画像処理部６１は、撮像装置（カメラ）５０により撮像された撮像画像７１（図１１）を、撮像装置５０から取得する。
【００７４】
次にステップＳ２０２において、作業機２の相対位置を出力する。コンピュータ１０２Ｂ、より詳しくは作業機位置推定部６５は、位置推定モデル８０および学習済みのパラメータの最適値を記憶装置１０４から読み出すことで、学習済みの位置推定モデル８０を取得する。作業機位置推定部６５は、撮像装置５０が撮像した撮像画像７１を、位置推定モデル８０への入力データとして用いる。作業機位置推定部６５は、撮像画像７１を、学習済みの位置推定モデル８０の入力層８１に含まれる各ニューロンに入力する。学習済みの位置推定モデル８０の出力層８３から、本体１に対する作業機２の相対位置を推定した推定位置、具体的にはブーム角度θｂ、アーム角度θａおよびバケット角度θｋを示す角度出力値７７（図１１）が出力される。
【００７５】
最後に、ステップＳ２０３において、コンピュータ１０２Ｂは、本体１に対する作業機２の相対位置を含む管理データを生成する。コンピュータ１０２Ｂは、管理データを記憶装置１０４に記録する。そして、処理を終了する（エンド）。
【００７６】
以上説明したように、実施形態に係るシステムでは、コンピュータ１０２Ｂは、本体１に対する作業機２の相対位置を求めるための、学習済みの位置推定モデル８０を有している。図９〜１１に示されるように、コンピュータ１０２Ｂは、撮像装置５０によって撮像される作業機２の撮像画像７１を取得し、学習済みの位置推定モデル８０を用いて撮像画像７１から作業機２の相対位置を推定した推定位置を求めるようにプログラムされている。
【００７７】
したがって、本体１に対する作業機２の相対位置の推定に適した人工知能の位置推定モデル８０を利用して、作業機２の姿勢を推定することができる。これにより、人工知能を用いて、作業機２の姿勢をコンピュータ１０２Ｂによって容易かつ精度よく判定することができる。
【００７８】
作業機２の撮像画像から作業機の姿勢を推定できるので、ブーム角度θｂ、アーム角度θａおよびバケット角度θｋを検出するためのセンサを不要にできる。角度センサの耐久性が油圧ショベル１００の作業に影響を及ぼすこともない。したがって、簡易で安価かつ信頼性の高い構成で、従前の油圧ショベル１００と同様に作業機２の現在の姿勢を取得することができる。
【００７９】
図５に示されるように、コンピュータ１０２Ａは、撮像画像から作業機２の相対位置を推定した推定位置と、当該撮像画像を撮像した時点に作業機２の相対位置を計測した計測位置との誤差に基づいて、位置推定モデル８０が更新されるようにプログラムされている。このようにすることで、工場出荷前に位置推定モデル８０を十分に学習させて、精度の高い位置推定モデル８０を作成することができる。
【００８０】
工場出荷される油圧ショベル１００がエンコーダ１６１などのブーム角度θｂ、アーム角度θａおよびバケット角度θｋを検出するためのセンサを備えている場合には、工場出荷後に位置推定モデル８０を追加学習することも可能である。
【００８１】
図７に示されるように、作業機２の相対位置の計測データは、ブーム角度θｂ、アーム角度θａおよびバケット角度θｋを含んでいてもよい。予め関連付けて記憶された撮像画像の情報と本体１に対する作業機２の角度とを用いて、撮像装置５０により撮像された撮像画像から、ブーム角度θｂ、アーム角度θａおよびバケット角度θｋを求めることができる。
【００８２】
図８に示されるように、撮像装置５０によって撮像される撮像画像は、作業機２の動画像ＭＶ１であってもよい。動画像ＭＶ１を撮像することでタイムスタンプの付与された複数の画像を連続的に作成し、これら複数の画像の各々に、画像が撮像された時点に作業機２の相対位置を計測した計測位置を割り当てて学習用データとすることで、位置推定モデル８０を効率的に学習させることができる。
【００８３】
図３に示されるように、撮像装置５０の光軸ＡＸは、作業機２の動作平面Ｐに交差している。このようにすれば、撮像装置５０は、動作平面Ｐに交差する方向から作業機２を撮像することができ、撮像画像内における作業機２の位置と動作平面Ｐ上の作業機２の位置とを一対一に対応付けることができる。したがって、撮像画像に基づいて、作業機２の現在の姿勢を精度よく取得することができる。
【００８４】
図１２は、位置推定モデル８０の学習に関する変形例を示す概略図である。図５〜７の説明においては、油圧ショベル１００の工場出荷前に位置推定モデル８０を学習させる例について説明した。位置推定モデル８０を学習させるための学習用データは、複数の油圧ショベル１００から収集されてもよい。
【００８５】
図１２に示される、第１の油圧ショベル１００（油圧ショベル１００Ａ）と、第２の油圧ショベル１００（油圧ショベル１００Ｂ）と、第３の油圧ショベル１００（油圧ショベル１００Ｃ）と、第４の油圧ショベル１００（油圧ショベル１００Ｄ）とは、同じ機種である。油圧ショベル１００Ａ，１００Ｂ，１００Ｃは、撮像装置５０とエンコーダ１６１とを備えている。油圧ショベル１００Ａ，１００Ｂ，１００Ｃは、工場出荷後であり、作業現場にある。
【００８６】
コンピュータ１０２Ａは、各油圧ショベル１００Ａ，１００Ｂ，１００Ｃから、撮像装置５０が撮像した撮像画像を取得する。コンピュータ１０２Ａはまた、各油圧ショベル１００Ａ，１００Ｂ，１００Ｃから、撮像画像を撮像した時点に計測したブーム角度θｂ、アーム角度θａおよびバケット角度θｋを、撮像画像に対応付けて取得する。コンピュータ１０２Ａは、同時刻に取得した撮像画像と作業機２の角度とを用いて、撮像画像から作業機２の相対位置を推定した推定位置を求めることができるように、位置推定モデル８０を学習させる。
【００８７】
コンピュータ１０２Ａは、通信インタフェース１０５（図４）を介して、各油圧ショベル１００Ａ，１００Ｂ，１００Ｃから撮像画像と作業機２の角度の計測データとを取得してもよい。またはコンピュータ１０２Ａは、外部記録媒体１０９を介して、各油圧ショベル１００Ａ，１００Ｂ，１００Ｃから撮像画像と作業機２の角度の計測データとを取得してもよい。
【００８８】
コンピュータ１０２Ａは、油圧ショベル１００Ａ，１００Ｂ，１００Ｃと同じ作業現場に配置されていてもよい。またはコンピュータ１０２Ａは、作業現場から離れた遠隔地、たとえば管理センターに配置されていてもよい。油圧ショベル１００Ａ，１００Ｂ，１００Ｃは、同じ作業現場にあってもよく、別々の作業現場にあってもよい。
【００８９】
学習済みの位置推定モデル８０は、通信インタフェース１０５または外部記録媒体１０９などを介して、各油圧ショベル１００Ａ，１００Ｂ，１００Ｃへ提供される。このようにして、各油圧ショベル１００Ａ，１００Ｂ，１００Ｃは、学習済みの位置推定モデル８０を備えるものとされる。
【００９０】
各油圧ショベル１００Ａ，１００Ｂ，１００Ｃに既に位置推定モデル８０が保存されている場合には、保存されている位置推定モデル８０が書き換えられる。上述した学習用データの収集と位置推定モデル８０の学習とを定期的に実行することで、位置推定モデル８０の書き換えが定期的に行なわれるようにしてもよい。位置推定モデル８０のパラメータの最新の更新値は、記憶装置１０４にその都度記憶されている。
【００９１】
学習済みの位置推定モデル８０は、油圧ショベル１００Ｄにも提供される。学習用データを提供する油圧ショベル１００Ａ，１００Ｂ，１００Ｃと、学習用データを提供しない油圧ショベル１００Ｄとの両方に、位置推定モデル８０が提供される。油圧ショベル１００Ｄは、油圧ショベル１００Ａ，１００Ｂ，１００Ｃのいずれかと同じ作業現場にあってもよく、油圧ショベル１００Ａ，１００Ｂ，１００Ｃとは異なる作業現場にあってもよい。油圧ショベル１００Ｄは、工場出荷前であってもよい。
【００９２】
上述した位置推定モデル８０は、学習用データ６１Ａ，６１Ｂ，６１Ｃ，…，を用いて機械学習により学習したモデルに限られず、当該学習したモデルを利用して生成されたモデルであってもよい。たとえば位置推定モデル８０は、学習済みモデルにデータの入出力を繰り返すことで得られる結果を基に学習させた別の学習済みモデル（蒸留モデル）であってもよい。図１３は、蒸留モデルを生成するための処理を示すフローチャートである。
【００９３】
図１３に示されるように、まずステップＳ３０１において、撮像画像を取得する。コンピュータ１０２Ａ、より詳しくは画像処理部６１は、撮像装置（カメラ）５０により撮像された撮像画像７１（図１１）を、撮像装置５０から取得する。
【００９４】
次にステップＳ３０２において、コンピュータ１０２Ａは、学習済みの第１の位置推定モデルを用いて、本体１に対する作業機２の相対位置を推定した推定位置を求める。ステップＳ３０３において、コンピュータ１０２Ａは、推定された作業機２の相対位置を出力する。
【００９５】
コンピュータ１０２Ａ、より詳しくは作業機位置推定部６５は、記憶装置１０４から学習済みの第１の位置推定モデルを読み出す。作業機位置推定部６５は、撮像装置５０が撮像した撮像画像７１を、学習済みの第１の位置推定モデルの入力層８１に入力する。学習済みの第１の位置推定モデルの出力層８３から、本体１に対する作業機２の相対位置、具体的にはブーム角度θｂ、アーム角度θａおよびバケット角度θｋを示す角度出力値７７（図１１）の推定結果が出力される。
【００９６】
次にステップＳ３０４において、コンピュータ１０２Ａは、ステップＳ３０１で取得した撮像画像と、ステップＳ３０３で出力した作業機２の相対位置の推定結果とを、学習データとして記憶装置１０４に保存する。
【００９７】
次にステップＳ３０５において、コンピュータ１０２Ａは、学習モデルによって第２の位置推定モデルの学習を行う。コンピュータ１０２Ａは、撮像画像を第２の位置推定モデルの入力層に入力する。コンピュータ１０２Ａは、第２の位置推定モデルの出力層から、本体１に対する作業機２の相対位置、具体的にはブーム角度θｂ、アーム角度θａおよびバケット角度θｋの推定結果を示す出力値を出力する。第２の位置推定モデルから出力された作業機２の相対位置と、ステップＳ３０３で出力した、第１の位置推定モデルから出力された作業機２の相対位置との差を算出する。この差に基づいて、コンピュータ１０２Ａは、第２の位置推定モデルのパラメータを更新する。このようにして、第２の位置推定モデルの学習が行なわれる。
【００９８】
最後にステップＳ３０６において、更新された第２の位置推定モデルのパラメータを学習済みパラメータとして記憶装置１０４に保存する。そして、処理を終了する（エンド）。
【００９９】
以上のように、作業機２の撮像画像と第１の位置推定モデルを用いて作業機２の相対位置を推定した推定位置とを学習用データとして、第２の位置推定モデル（蒸留モデル）を学習させることで、コンピュータ１０２Ａは、第１の位置推定モデルよりもシンプルな第２の位置推定モデルを用いて、本体１に対する作業機２の相対位置を推定することができる。これにより、作業機２の相対位置を推定するためのコンピュータ１０２Ａの負荷を軽減することができる。なおコンピュータ１０２Ａは、他のコンピュータによって生成された学習データによって、第２の位置推定モデルの学習を行なってもよい。
【０１００】
上記実施形態では、位置推定モデル８０はニューラルネットワークを含んでいる。これに限られず、位置推定モデル８０は、たとえばサポートベクターマシンなど、機械学習を用いて作業機２の撮像画像から本体１に対する作業機２の相対位置を精度よく推定できるモデルであってもよい。
【０１０１】
本開示の思想を適用可能な作業機械は、油圧ショベルに限られず、ブルドーザ、モータグレーダ、またはホイールローダなどの作業機を有する作業機械であってもよい。
【０１０２】
今回開示された実施形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１０３】
１  本体、２  作業機、３  旋回体、６  ブーム、７  アーム、８  バケット、５０  撮像装置、６１  画像処理部、６１Ａ，６１Ｂ，６１Ｃ  学習用データ、６５  作業機位置推定部、６６  誤差検出部、６７  位置推定モデル更新部、７１  撮像画像、７７  角度出力値、８０  位置推定モデル、８１  入力層、８２  中間層、８３  出力層、１００，１００Ａ，１００Ｂ，１００Ｃ，１００Ｄ  油圧ショベル、１０２Ａ，１０２Ｂ  コンピュータ、１０３  プロセッサ、１０４  記憶装置、１０５  通信インタフェース、１０６  Ｉ／Ｏインタフェース、１０７  入力装置、１０８  出力装置、１０９  外部記録媒体、１６１  エンコーダ、１６２  角度変換部、ＡＸ  光軸、ＭＶ１  動画像、Ｐ  動作平面。
【図１】
2019214835.tif 000003
【図２】
2019214835.tif 000004
【図３】
2019214835.tif 000005
【図４】
2019214835.tif 000006
【図５】
2019214835.tif 000007
【図６】
2019214835.tif 000008
【図７】
2019214835.tif 000009
【図８】
2019214835.tif 000010
【図９】
2019214835.tif 000011
【図１０】
2019214835.tif 000012
【図１１】
2019214835.tif 000013
【図１２】
2019214835.tif 000014
【図１３】
2019214835.tif 000015