IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社小松製作所の特許一覧

特許7334052情報処理装置、情報処理方法、学習済モデルの生成方法、およびシステム
<>
  • 特許-情報処理装置、情報処理方法、学習済モデルの生成方法、およびシステム 図1
  • 特許-情報処理装置、情報処理方法、学習済モデルの生成方法、およびシステム 図2
  • 特許-情報処理装置、情報処理方法、学習済モデルの生成方法、およびシステム 図3
  • 特許-情報処理装置、情報処理方法、学習済モデルの生成方法、およびシステム 図4
  • 特許-情報処理装置、情報処理方法、学習済モデルの生成方法、およびシステム 図5
  • 特許-情報処理装置、情報処理方法、学習済モデルの生成方法、およびシステム 図6
  • 特許-情報処理装置、情報処理方法、学習済モデルの生成方法、およびシステム 図7
  • 特許-情報処理装置、情報処理方法、学習済モデルの生成方法、およびシステム 図8
  • 特許-情報処理装置、情報処理方法、学習済モデルの生成方法、およびシステム 図9
  • 特許-情報処理装置、情報処理方法、学習済モデルの生成方法、およびシステム 図10
  • 特許-情報処理装置、情報処理方法、学習済モデルの生成方法、およびシステム 図11
  • 特許-情報処理装置、情報処理方法、学習済モデルの生成方法、およびシステム 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-08-18
(45)【発行日】2023-08-28
(54)【発明の名称】情報処理装置、情報処理方法、学習済モデルの生成方法、およびシステム
(51)【国際特許分類】
   G06Q 10/20 20230101AFI20230821BHJP
   G06N 20/00 20190101ALI20230821BHJP
【FI】
G06Q10/20
G06N20/00 130
【請求項の数】 10
(21)【出願番号】P 2019074297
(22)【出願日】2019-04-09
(65)【公開番号】P2020173556
(43)【公開日】2020-10-22
【審査請求日】2022-03-09
【前置審査】
(73)【特許権者】
【識別番号】000001236
【氏名又は名称】株式会社小松製作所
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】戸田 裕基
(72)【発明者】
【氏名】堀 多加之
【審査官】坂庭 剛史
(56)【参考文献】
【文献】特開2017-117147(JP,A)
【文献】米国特許出願公開第2018/0253621(US,A1)
【文献】特許第6495561(JP,B1)
【文献】特開2017-033047(JP,A)
【文献】特開2016-025377(JP,A)
【文献】特開2014-153929(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 10/00-99/00
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
演算装置と、
作業機械が稼働している作業現場を上空から撮像することにより得られた画像データと、前記作業機械の機械情報とから、当該作業機械が当該作業現場で行っている作業の業種を推定するように構成された学習済モデルを記憶した記憶装置と、
出力装置とを備え、
前記演算装置は、
前記画像データの入力と前記作業機械の機械情報の入力とを受け付けると、前記学習済モデルを用いて、入力された前記画像データと前記作業機械の機械情報とから前記業種を推定し、
推定された前記業種を前記出力装置に出力させる、情報処理装置。
【請求項2】
前記機械情報は、前記作業機械の位置情報を含む、請求項1に記載の情報処理装置。
【請求項3】
前記機械情報は、前記作業機械の機種情報を含む、請求項1または2に記載の情報処理装置。
【請求項4】
前記機械情報は、前記作業機械の運転時の機械状態情報を含む、請求項1から3のいずれか1項に記載の情報処理装置。
【請求項5】
前記情報処理装置は、サーバから前記機械情報を取得する、請求項1から4のいずれか1項に記載の情報処理装置。
【請求項6】
前記学習済モデルは、学習用データセットを用いた学習により生成され、
前記学習用データセットは、作業機械が稼働している作業現場を上空から撮像することにより得られた画像データと、当該作業現場の業種を示した教師データとを含む、請求項1から5のいずれか1項に記載の情報処理装置。
【請求項7】
前記画像データは、人工衛星によって取得された衛星画像データである、請求項1から6のいずれか1項に記載の情報処理装置。
【請求項8】
作業機械が稼働している作業現場を上空から撮像することにより得られた画像データと、前記作業機械の機械情報との入力を、演算装置が受け付けるステップと、
前記演算装置が、前記画像データの入力と前記作業機械の機械情報の入力とを受け付けると、学習済モデルを用いて、受け付けた前記画像データと前記作業機械の機械情報とから、前記作業機械が前記作業現場で行っている作業の業種を推定するステップと、
前記演算装置が、推定された前記業種を出力装置に出力させるステップとを備える、情報処理方法。
【請求項9】
サーバ装置が、学習用データセットを取得するステップを備え、前記学習用データセットは、作業機械が稼働している作業現場を上空から撮像することにより得られた画像データおよび当該作業機械の機械情報と、当該作業機械が当該作業現場で行っている作業の業種を示した教師データとを含み、
サーバ装置が、前記学習用データセットを用いた学習処理によって、学習済モデルを生成するステップをさらに備え、当該学習済モデルは、作業機械が稼働している作業現場を上空から撮像することにより得られた画像データと前記作業機械の機械情報とに基づいて、当該作業機械が当該作業現場で行っている作業の業種を推定するためのプログラムである、学習済モデルの生成方法。
【請求項10】
学習装置と端末装置とを備えたシステムであって、
前記学習装置は、学習用データセットを用いた学習によって学習済モデルを生成し、当該学習用データセットは、作業機械が稼働している作業現場を上空から撮像することにより得られた画像データおよび当該作業機械の機械情報と、当該作業機械が当該作業現場で行っている作業の業種を示した教師データとを含み、
前記端末装置は、
前記学習済モデルを前記学習装置から取得し、
前記学習済モデルを用いて、作業機械が稼働している作業現場を上空から撮像することにより得られた画像データと前記作業機械の機械情報とから、当該作業現場の業種を推定し、
推定された前記業種を出力する、システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法、学習済モデルの生成方法、システム、および学習用データセットに関する。
【背景技術】
【0002】
従来、特許文献1に示すように、作業機械の運行状況を遠隔箇所で把握するための運行管理システムが知られている。この運行管理システムでは、作業現場内で移動される作業機械と、作業現場内の基準点とが、上空のGPS衛星からの電波を受信する。作業機械は、受信した電波を基に、作業機械の3次元位置座標を算出する。作業現場から離れた工事事務所のパソコンは、作業機械において算出された3次元位置座標と、当該パソコンに格納された現場の3次元地形データとに基づいて、作業現場内での作業機械の位置を示す3次元画像を生成する。さらに、当該パソコンは、生成された3次元画像をディスプレイに表示する。
【0003】
また、特許文献2に示すように、機械学習が行なわれた装置を用いて、リモートセンシング地球画像(衛星画像)から土地の区分等を分類する技術も知られている。
【先行技術文献】
【特許文献】
【0004】
【文献】特開平7-230597号公報
【文献】米国特許公開第2015-0071528A1号明細書
【発明の概要】
【発明が解決しようとする課題】
【0005】
作業現場での作業機械の位置だけではなく、作業現場で行われている作業の業種を、作業現場から離れた場所で把握したいという要望もある。
【0006】
本開示の目的は、作業現場で行われている作業の業種を推定可能な情報処理装置、情報処理方法、学習済モデルの生成方法、システム、および学習用データセットを提供することにある。
【課題を解決するための手段】
【0007】
本開示に従うと、情報処理装置は、演算装置と、作業機械が稼働している作業現場を上空から撮像することにより得られた画像データから、当該作業現場で行われている作業の業種を推定するように構成された学習済モデルを記憶した記憶装置と、出力装置とを備える。演算装置は、学習済モデルを用いて、入力された画像データから業種を推定する。演算装置は、推定された業種を出力装置に出力させる。
【0008】
好ましくは、学習済モデルは、画像データと、作業機械の機械情報とから、業種を推定するように構成される。演算装置は、画像データの入力と作業機械の機械情報の入力とを受け付けると、学習済モデルを用いて、画像データと作業機械の機械情報とから業種を推定する。
【0009】
好ましくは、機械情報は、作業機械の位置情報を含む。
好ましくは、機械情報は、作業機械の機種情報を含む。
【0010】
好ましくは、機械情報は、作業機械の運転時の機械状態情報を含む。
好ましくは、情報処理装置は、サーバから機械情報を取得する。
【0011】
好ましくは、学習済モデルは、学習用データセットを用いた学習により生成される。学習用データセットは、作業機械が稼働している作業現場を上空から撮像することにより得られた画像データと、当該作業現場の業種を示した教師データとを含む。
【0012】
好ましくは、画像データは、人工衛星によって取得された衛星画像データである。
本発明の他の局面に従うと、情報処理方法は、作業機械が稼働している作業現場を上空から撮像することにより得られた画像データの入力を、演算装置が受け付けるステップと、演算装置が、学習済モデルを用いて、受け付けた画像データから、作業現場で行われている作業の業種を推定するステップと、演算装置が、推定された業種を出力装置に出力させるステップとを備える。
【0013】
本発明のさらに他の局面に従うと、学習済モデルの生成方法は、学習用データセットを取得するステップを備える。学習用データセットは、作業機械が稼働している作業現場を上空から撮像することにより得られた画像データと、当該作業現場で行われている作業の業種を示した教師データとを含む。学習済モデルの生成方法は、学習用データセットを用いた学習処理によって、学習済モデルを生成するステップをさらに備える。当該学習済モデルは、作業機械が稼働している作業現場を上空から撮像することにより得られた画像データに基づいて、当該作業現場の業種を推定するためのプログラムである。
【0014】
本発明のさらに他の局面に従うと、システムは、学習装置と端末装置とを備える。学習装置は、学習用データセットを用いた学習によって学習済モデルを生成する。当該学習用データセットは、作業機械が稼働している作業現場を上空から撮像することにより得られた画像データと、当該作業現場で行われている作業の業種を示した教師データとを含む。端末装置は、学習済モデルを学習装置から取得する。端末装置は、学習済モデルを用いて、作業機械が稼働している作業現場を上空から撮像することにより得られた画像データから、当該作業現場の業種を推定する。端末装置は、推定された業種を出力する。
【0015】
本発明のさらに他の局面に従うと、学習用データセットは、作業機械が稼働している作業現場の業種を推定するための学習済モデルを生成するために用いられ、かつ、作業機械が稼働している作業現場を上空から撮像することにより得られた画像データと、当該作業現場で行われている作業の業種を示した教師データとを含む。
【発明の効果】
【0016】
本開示によれば、作業現場で行われている作業の業種を推定可能となる。
【図面の簡単な説明】
【0017】
図1】通信システムの概略構成を示した図である。
図2】サーバ装置にて格納されているデータベースの概略構成を示した図である。
図3】端末装置における推定処理を説明するための図である。
図4】端末装置のハードウェア構成の一例を示す模式図である。
図5】サーバ装置のハードウェア構成の一例を示す模式図である。
図6】サーバ装置の機能的構成を説明するための機能ブロック図である。
図7】学習部の処理(学習機能)の詳細を説明するためのブロック図である。
図8】サーバ装置における学習処理の処理手順を示すフローチャートである。
図9】端末装置の機能的構成を説明するための機能ブロック図である。
図10】業種推定部の処理(推定機能)の詳細を説明するためのブロック図である。
図11図10に示す学習済モデルのネットワーク構造の例を示す模式図である。
図12】端末装置における推定処理の処理手順を示すフローチャートである。
【発明を実施するための形態】
【0018】
はじめに、本実施の形態で用いる用語の一部について説明する。
「学習用データセット」とは、生データに対して、欠測値や外れ値の除去等の前処理や、ラベル情報(正解データ)等の別個のデータの付加等、あるいはこれらを組み合わせて、変換・加工処理を施すことによって、対象とする学習の手法による解析を容易にするために生成された二次的な加工データをいう。なお、「生データ」とは、ユーザやベンダ、その他の事業者や研究機関等により一次的に取得されたデータであって、データベースに読み込むことができるよう変換および/または加工処理されたものをいう。
【0019】
「学習用プログラム」とは、学習用データセットの中から一定の規則を見出し、その規則を表現するモデルを生成するためのアルゴリズムを実行するプログラムをいう。具体的には、採用する学習手法による学習を実現するために、コンピュータに実行させる手順を規定するプログラムがこれに該当する。
【0020】
「学習済モデル」とは「学習済パラメータ」が組み込まれた「推論プログラム」をいう。「学習済パラメータ」とは、学習用データセットを用いた学習の結果、得られたパラメータ(係数)をいう。学習済パラメータは、学習用データセットを学習用プログラムに対して入力することで、一定の目的のために機械的に調整されることで生成される。「推論プログラム」とは、組み込まれた学習済みパラメータを適用することで、入力に対して一定の結果を出力することを可能にするプログラムをいう。
【0021】
<A.概要>
図1は、本実施の形態にかかる通信システム1の概略構成を示した図である。
【0022】
図1に示されているように、通信システム1は、端末装置100と、サーバ装置200と、サーバ装置300と、サーバ装置400と、端末装置500とを備えている。通信システム1は、作業車両600と、人工衛星700との間で通信を行なう。なお、人工衛星700との通信は、外部サーバ(図示せず)を介して行われてもよい。
【0023】
図1においては1台の作業車両600を記載しているが、作業車両の台数はこれに限定されるものでない。サーバ装置200は、複数の作業車両600から、車両情報を取得可能である。後述する学習段階では、複数の作業車両600の各車両情報が用いられる。
【0024】
また、図1においては作業車両600の一例として、油圧ショベルを記載しているが、作業車両600は、油圧ショベルに限定されるものではない。作業車両600は、ブルドーザ、ホイールローダ、ダンプトラック、モータグレーダ等の他の作業車両であってもよい。
【0025】
詳細については後述するが、本例では、サーバ装置300によって学習済モデルが生成される。生成された学習済モデルは、端末装置100にて利用される。端末装置100は、学習済モデルを用いた推定処理(分類処理、識別処理)を行う。なお、これに限定されず、学習済モデルを生成したサーバ装置300が、学習済モデルを用いた推定処理を行なってもよい。
【0026】
(サーバ装置400)
サーバ装置400は、作業現場の上空を撮像することによって得られた画像を取得する。本例では、サーバ装置400は、人工衛星700によって撮像された画像(以下、「衛星画像」とも称する)を人工衛星700から取得する。なお、衛星画像は、たとえば、0.5km~20km四方の場所(陸地、湖、池、海等を含む場所)を撮像対象とした画像とすることができる。
【0027】
(端末装置500)
端末装置500は、作業車両の販売店等に設置されている。端末装置500を用いて入力された情報は、サーバ装置200に送信され、かつ記憶される。端末装置500を用いて入力される情報については、後述する。
【0028】
(サーバ装置200)
サーバ装置200は、各作業車両600についての各種のデータを記憶するための機器である。当該データは、データベースD2(図2参照)に保存される。また、当該データは、各作業車両600との通信、端末装置500との通信、およびサーバ装置200に対するユーザ操作等により、逐次更新される。サーバ装置200は、たとえば、作業車両600の製造メーカによって管理される。
【0029】
サーバ装置200は、ネットワーク901を介して、作業車両600から作業車両600の車両情報を取得し、かつ当該車両情報を記憶する。当該車両情報は、作業車両600の位置を示した位置情報と、作業車両600の車両状態を示した車両状態情報とを含む。
【0030】
車両状態情報は、作業車両600の稼働時において、作業車両600が取得または算出する各種の情報を含む。たとえば、車両状態情報は、ポンプ圧、シリンダ圧、走行速度、燃費等の情報を含む。
【0031】
また、サーバ装置200には、車両情報として、作業車両600の車種情報が予め記憶されている。このように、サーバ装置200は、車両情報として、少なくと、位置情報と、車種情報と、車両状態情報とを記憶している。
【0032】
なお、本例の端末装置100またはサーバ装置300は、本発明の「情報処理装置」の一例である。本例のサーバ装置200は、本発明の「サーバ」の一例である。本例の作業車両600は、本発明の「作業機械」の一例である。
【0033】
また、本例の車両情報は、本発明の「機械情報」の一例である。さらに、本例の位置情報、車両状態情報、および車種情報は、それぞれ、本発明の「位置情報」、「車両状態情報」、および「機械情報」の一例である。
【0034】
また、本例の通信システム1は、本発明の「システム」の一例である。本例のサーバ装置300は、本発明の「学習装置」の一例である。本例の端末装置100は、本発明の「端末装置」の一例である。
【0035】
図2は、サーバ装置200にて格納されているデータベースD2の概略構成を示した図である。
【0036】
図2に示されているように、データベースD2は、作業車両毎に各種のデータを記憶している。データベースD2は、少なくとも、登録年月と、機種と、型式と、機番と、車両所在国と、車両所在地域と、緯度と、経度と、顧客業種といった複数の項目を備える。また、図示していないが、データベースD2には車両状態情報の項目も含まれる。なお、車両状態情報は、データベースD2とは異なるデータベースに格納されていてもよい。
【0037】
データベースD2の例では、機種と、型式と、機番との3つの情報が、「車種情報」を構成する。経度と緯度とが、「位置情報」を構成する。なお、位置情報は、作業車両からサーバ装置200に逐次通知される。
【0038】
車両所在国は、作業車両が使用されている国の国名(たとえば、タイランド)を表す。車両所在地域は、車両所在国内における、作業車両が使用されている地域(たとえば、バンコク)を表す。
【0039】
顧客業種は、作業車両を購入した顧客の業種を表す。詳しくは、顧客業種は、作業車両を購入した顧客が当該作業車両を用いて行なっている業種を表す。業種としては、たとえば、一般土木、解体、砂利採取、採石、製鉄業、農業、林業、産廃業、サンドピット等が挙げられる。業種により使用される作業車両は異なる。以下、一例を示す。
【0040】
「一般土木」および「採石」には、典型的には、油圧ショベル、ブルドーザ、ホイールローダ、ダンプトラック、モータグレーダが用いられる。「解体」および「サンドピット」には、油圧ショベルが用いられる。「砂利採取」には、油圧ショベル、ブルドーザ、ホイールローダ、モータグレーダが用いられる。「製鉄業」および「産廃業」には、油圧ショベル、ブルドーザ、ホイールローダ、ダンプトラックが用いられる。「農業」および「林業」には、油圧ショベル、ブルドーザ、ホイールローダが用いられる。
【0041】
ところで、データベースD2の各項目(位置情報を除く)の入力は、通常、作業車両を販売した販売店が、端末装置500(図1参照)を用いて行なう。しかしながら、これらの項目のうち、顧客業種に関しては、データの入力(業種の選択)が行われていないことも多々ある。一方、作業車両の製造メーカは、顧客業種を知ることができれば、作業車両のメンテナンスに関する有益な情報を作業車両のユーザおよび販売店に提供することが可能となる。
【0042】
上記のような観点から、通信システム1では、機械学習により、作業現場で行われている作業の業種(作業車両が作業現場で行なっている作業の業種)を推定する。そして、推定結果を、顧客業種とする。
【0043】
(サーバ装置300)
図1に戻り、サーバ装置300は、ネットワーク902を介して、サーバ装置200から車両情報を取得する。また、サーバ装置300は、ネットワーク903を介して、サーバ装置400から衛星画像を取得する。
【0044】
サーバ装置300は、作業現場の衛星画像と、作業現場で稼働している車両情報と、業種を示した教師データ(正解データ)とを用いた学習処理により、当該作業現場の業種を推定(分類、識別)するための学習済モデルを生成する。生成された学習済モデルは、端末装置100に送信(配布)される。なお、学習済モデルの生成処理(学習処理)の詳細については、後述する。
【0045】
(端末装置100)
端末装置100は、ネットワーク903を介して、サーバ装置300から学習済モデルを取得する。端末装置100は、当該学習済モデルを用いて、後述する推定処理を実行する。
【0046】
端末装置100は、学習済モデルをサーバ装置300から取得した後、ネットワーク902を介して、サーバ装置200から車両情報を取得する。また、端末装置100は、ネットワーク903を介して、サーバ装置400から衛星画像を取得する。なお、端末装置100のユーザが端末装置100に対して予め定められたユーザ操作を行なうことにより、端末装置100は、車両情報の取得と衛星画像の取得とを実行する。
【0047】
図3は、端末装置100における推定処理を説明するための図である。
図3に示されているように、端末装置100は、学習済モデル116を有する。端末装置100は、学習済モデル116を用いて、作業現場の衛星画像と、当該作業現場で稼働している車両の車両情報とから、当該作業現場の業種を推定(分類、識別)する。
【0048】
端末装置100の演算装置(典型的には、プロセッサ104(図4参照))は、衛星画像と車両情報とを、学習済モデル116に入力する。学習済モデル116は、衛星画像と車両情報との入力を受け付けると、推定結果としての業種を出力する。演算装置は、学習済モデル116から出力された推定結果を、端末装置100のディスプレイに出力する。
【0049】
なお、端末装置100は、推定結果を、端末装置100のスピーカから音声で出力してもよい。さらには、端末装置100は、推定結果を、サーバ装置200等の他の外部機器に送信してもよい。推定結果の出力形態は、特に限定されず、推定結果が判別できるものであればよい。
【0050】
このように、学習済モデル116を用いて作業現場で行われている作業の業種を推定することにより、作業現場で行われている作業の業種を作業現場から離れた場所で把握できる。また、当該作業現場で稼働している作業車両のメンテナンスに関する有益な情報を作業車両のユーザおよび販売店に提供することが可能となる。
【0051】
さらに、サーバ装置200の顧客業種を、推定結果を用いて更新することも可能となる。当該更新は、ユーザが推定結果を手入力することによって行われてもよい。あるいは、推定結果が端末装置100からサーバ装置200に送信され、かつサーバ装置200において自動で更新されてもよい。
【0052】
<B.ハードウェア構成>
(端末装置100)
図4は、端末装置100のハードウェア構成の一例を示す模式図である。
【0053】
図4に示されているように、端末装置100は、主要なハードウェア要素として、ディスプレイ102と、プロセッサ104と、メモリ106と、ネットワークコントローラ108と、ストレージ110と、光学ドライブ122と、入力装置126とを含む。入力装置126は、キーボード127と、マウス128とを含む。なお、入力装置126はタッチパネルを備えていてもよい。
【0054】
ディスプレイ102は、端末装置100での処理に必要な情報を表示する。ディスプレイ102は、たとえば、LCD(Liquid Crystal Display)や有機EL(Electroluminescence)ディスプレイなどで構成される。
【0055】
プロセッサ104は、後述するような各種プログラムを実行することで、端末装置100の実現に必要な処理を実行する演算主体である、プロセッサ104としては、たとえば、1または複数のCPU(Central Processing Unit)やGPU(Graphics Processing Unit)などで構成される。複数のコアを有するCPUまたはGPUを用いてもよい。
【0056】
メモリ106は、プロセッサ104がプログラムを実行するにあたって、プログラムコードやワークメモリなどを一時的に格納する記憶領域を提供する。メモリ106としては、たとえば、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などの揮発性メモリデバイスを用いてもよい。
【0057】
ネットワークコントローラ108は、ネットワーク902,903を介して、サーバ装置200,300,400を含む任意の装置などとの間でデータを送受信する。ネットワークコントローラ108は、たとえば、イーサネット(登録商標)、無線LAN(Local Area Network)、Bluetooth(登録商標)などの任意の通信方式に対応するようにしてもよい。
【0058】
ストレージ110は、プロセッサ104にて実行されるOS(Operating System)112、後述するような機能構成を実現するためのアプリケーションプログラム114、学習済モデル116などを格納する。ストレージ110としては、たとえば、ハードディスク、SSD(Solid State Drive)などの不揮発性メモリデバイスを用いてもよい。
【0059】
アプリケーションプログラム114をプロセッサ104で実行する際に必要となるライブラリや機能モジュールの一部を、OS112が標準で提供するライブラリまたは機能モジュールを用いるようにしてもよい。この場合には、アプリケーションプログラム114単体では、対応する機能を実現するために必要なプログラムモジュールのすべてを含むものにはならないが、OS112の実行環境下にインストールされることで、後述するような機能構成を実現できることになる。そのため、このような一部のライブラリまたは機能モジュールを含まないプログラムであっても、本発明の技術的範囲に含まれ得る。
【0060】
光学ドライブ122は、CD-ROM(Compact Disc Read Only Memory)、DVD(Digital Versatile Disc)などの光学ディスク124に格納されているプログラムなどの情報を読み出す。光学ディスク124は、非一過的(non-transitory)な記録媒体の一例であり、任意のプログラムを不揮発的に格納した状態で流通する。光学ドライブ122が光学ディスク124からプログラムを読み出して、ストレージ110にインストールすることで、本実施の形態に従う端末装置100を構成できる。したがって、本発明の主題は、ストレージ110などにインストールされたプログラム自体、または、本実施の形態に従う機能や処理を実現するためのプログラムを格納した光学ディスク124などの記録媒体でもあり得る。
【0061】
図4には、非一過的な記録媒体の一例として、光学ディスク124などの光学記録媒体を示すが、これに限らず、フラッシュメモリなどの半導体記録媒体、ハードディスクまたはストレージテープなどの磁気記録媒体、MO(Magneto-Optical disk)などの光磁気記録媒体を用いてもよい。
【0062】
あるいは、端末装置100を実現するためのプログラムは、上述したような任意の記録媒体に格納されて流通するだけでなく、インターネットまたはイントラネットを介してサーバ装置などからダウンロードすることで配布されてもよい。
【0063】
図4には、汎用コンピュータ(プロセッサ104)がアプリケーションプログラム114を実行することで端末装置100を実現する構成例を示すが、端末装置100を実現するために必要な機能の全部または一部を、集積回路などのハードワイヤード回路(hard-wired circuit)を用いて実現してもよい。たとえば、ASIC(Application Specific Integrated Circuit)やFPGA(Field-Programmable Gate Array)などを用いて実現してもよい。
【0064】
なお、プロセッサ104は、本発明の「演算装置」の一例である。ストレージ110は、本発明の「記憶装置」の一例である。ディスプレイ102は、本発明の「出力装置」の一例である。
【0065】
(サーバ装置300)
図5は、サーバ装置300のハードウェア構成の一例を示す模式図である。
【0066】
図5に示されているように、サーバ装置300は、主要なハードウェア要素として、ディスプレイ302と、プロセッサ304と、メモリ306と、ネットワークコントローラ308と、ストレージ310と、入力装置330とを含む。
【0067】
ディスプレイ302は、サーバ装置300での処理に必要な情報を表示する。ディスプレイ302は、たとえば、LCDや有機ELディスプレイなどで構成される。
【0068】
プロセッサ304は、後述するような各種プログラムを実行することで、サーバ装置300の実現に必要な処理を実行する演算主体である、プロセッサ304としては、たとえば、1または複数のCPUやGPUなどで構成される。複数のコアを有するCPUまたはGPUを用いてもよい。サーバ装置300においては、学習済モデルを生成するための学習処理に適したGPUなどを採用することが好ましい。
【0069】
メモリ306は、プロセッサ304がプログラムを実行するにあたって、プログラムコードやワークメモリなどを一時的に格納する記憶領域を提供する。メモリ306としては、たとえば、DRAMやSRAMなどの揮発性メモリデバイスを用いてもよい。
【0070】
ネットワークコントローラ308は、ネットワーク902,903を介して、サーバ装置200,400および端末装置100を含む任意の装置などとの間でデータを送受信する。ネットワークコントローラ308は、たとえば、イーサネット、無線LAN、Bluetoothなどの任意の通信方式に対応するようにしてもよい。
【0071】
ストレージ310は、プロセッサ304にて実行されるOS312、後述するような機能構成を実現するためのアプリケーションプログラム314、衛星画像320と車両情報328と業種情報322とから学習用データセット324を生成するための前処理プログラム316、ならびに、学習用データセット324を用いて学習済モデル326を生成するための学習用プログラム318などを格納する。業種情報322の取得処理については、後に詳述する。
【0072】
なお、説明の便宜上、端末装置100に格納されている学習済モデルと、サーバ装置300が生成する学習済モデルとに対しては、互いに異なる参照符号(116,326)を付している。しかしながら、端末装置100に格納されている学習済モデル116はサーバ装置300から送信(配布)された学習済モデルであるため、2つの学習済モデル116,326は実質的に同一である。詳しくは、学習済モデル116と学習済モデル326とは、ネットワーク構造と学習済パラメータとが実質的に同一である。
【0073】
学習用データセット324は、衛星画像320と車両情報328とに業種情報322をラベル(あるいは、タグ)として付与した訓練データセットである。また、学習済モデル326は、学習用データセット324を用いて学習処理を実行することで得られる推定モデルである。
【0074】
ストレージ310としては、たとえば、ハードディスク、SSDなどの不揮発性メモリデバイスを用いてもよい。
【0075】
アプリケーションプログラム314、前処理プログラム316および学習用プログラム318をプロセッサ304で実行する際に必要となるライブラリや機能モジュールの一部を、OS312が標準で提供するライブラリまたは機能モジュールを用いるようにしてもよい。この場合には、アプリケーションプログラム314、前処理プログラム316および学習用プログラム318の各単体では、対応する機能を実現するために必要なプログラムモジュールのすべてを含むものにはならないが、OS312の実行環境下にインストールされることで、後述するような機能構成を実現できることになる。そのため、このような一部のライブラリまたは機能モジュールを含まないプログラムであっても、本発明の技術的範囲に含まれ得る。
【0076】
アプリケーションプログラム314と、前処理プログラム316と、学習用プログラム318とは、光学ディスクなどの光学記録媒体、フラッシュメモリなどの半導体記録媒体、ハードディスクまたはストレージテープなどの磁気記録媒体、ならびにMOなどの光磁気記録媒体といった非一過的な記録媒体に格納されて流通し、ストレージ310にインストールされてもよい。したがって、本発明の主題は、ストレージ310などにインストールされたプログラム自体、または、本実施の形態に従う機能や処理を実現するためのプログラムを格納した記録媒体でもあり得る。
【0077】
あるいは、サーバ装置300を実現するためのプログラムは、上述したような任意の記録媒体に格納されて流通するだけでなく、インターネットまたはイントラネットを介してサーバ装置などからダウンロードすることで配布されてもよい。
【0078】
入力装置330は、各種の入力操作を受け付ける。入力装置330としては、たとえば、キーボード、マウス、タッチパネルなどを用いてもよい。
【0079】
図5には、汎用コンピュータ(プロセッサ304)がアプリケーションプログラム314、前処理プログラム316および学習用プログラム318を実行することでサーバ装置300を実現する構成例を示すが、サーバ装置300を実現するために必要な機能の全部または一部を、集積回路などのハードワイヤード回路を用いて実現してもよい。たとえば、ASICやFPGAなどを用いて実現してもよい。
【0080】
なお、プロセッサ304は、本発明の「演算装置」の一例である。ストレージ310は、本発明の「記憶装置」の一例である。ディスプレイ302は、本発明の「出力装置」の一例である。
【0081】
<C.学習段階>
サーバ装置300によって実行される学習処理について説明する。具体的には、学習済モデル326の生成方法について説明する。
【0082】
図6は、サーバ装置300の機能的構成を説明するための機能ブロック図である。
図6に示されているように、サーバ装置300は、入力受付部350と、制御部360と、通信IF(Interface)部370とを備える。制御部360は、学習部362を備える。学習部362は、学習用のモデル366と、学習用プログラム368とを備える。学習用のモデル366は、ネットワーク構造366Nとパラメータ366Pとで構成される。なお、ネットワーク構造366Nは予め構築され、サーバ装置300に格納されている。
【0083】
入力受付部350は、学習用データセット324の入力を受け付ける。学習用データセット324は、学習用の衛星画像と、学習用の車両情報と、教師データとしての業種情報とを含む。詳しくは、学習用データセット324は、複数のデータの組(学習用データ)を含み、各組(各学習用データ)が、衛星画像と学習用の車両情報と教師データとしての業種情報とを含む。なお、学習用データセットの複数のデータの組のうちの一部の組を、学習済モデルの精度を評価するために用いてもよい。
【0084】
教師データは、以下のような手法で得ることができる。
たとえば、データベースD2において顧客業種のデータが入力されている場合、当該データを教師データとして用いることができる。この場合、作業車両が写っている作業現場の衛星画像と、当該作業車両の車両情報と、当該作業車両の顧客業種(教師データ)とが、学習用データセットを構成する1つのデータの組となる。
【0085】
また、顧客業種のデータがデータベースD2には入力されてないが、販売店が顧客業種のデータを有している場合もある。たとえば、用紙を含む記録媒体に記憶している場合がある。このような場合には、販売店が有しているデータを、教師データとすることができる。
【0086】
さらに、製造メーカの社員等が作業現場に行き、当該作業現場で行われている作業の業種を確認してもよい。この場合には、確認された業種を教師データとすることもできる。この場合、作業車両が写っている作業現場の衛星画像と、当該作業車両の車両情報と、当該作業現場で確認された作業の業種(教師データ)とが、学習用データセットを構成する1つのデータの組となる。
【0087】
制御部360は、サーバ装置300の全体的な動作を制御する。
制御部360内の学習部362は、学習済モデル326を生成する。学習済モデル326の生成について説明すると、以下のとおりである。
【0088】
学習部362は、学習用データセット324を用いた機械学習により、学習用のモデル366のパラメータ366Pの値を更新する。具体的には、学習部362は、学習用プログラム368を用いることにより、パラメータ366Pの値を更新する。パラメータ366Pの更新は、学習に用いたデータの組(評価用のデータの組を除く)の数だけ、繰り返される。
【0089】
学習が終了すると、学習済モデル326が得られる。学習済モデル326は、ネットワーク構造366Nと、学習済パラメータとを有する。なお、更新が完了したパラメータ366Pが、学習済パラメータに対応する。
【0090】
生成された学習済モデル326は、通信IF370を介して、端末装置100に送信される。なお、上述したように、端末装置100に送信された学習済モデル326を、説明の便宜上、「学習済モデル116」と称する。
【0091】
図7は、学習部362の処理(学習機能)の詳細を説明するためのブロック図である。
図7に示されているように、学習部362は、調整モジュール342を含む。
【0092】
調整モジュール342において、衛星画像320は、予め定められた次元をもつ特徴量(特徴量ベクトル)に変換され、かつ学習用のモデル366に与えられる。ここで、衛星画像320の画像サイズは変動し得るため、調整モジュール342は画像サイズを規格化する。
【0093】
より具体的には、調整モジュール342は、衛星画像を予め定められた画素数の画像に調整した上で、調整後の画像を構成する各画素の画素値を特徴量3410として学習用のモデル366に入力する。
【0094】
また、衛星画像と同一の組の車両情報328が特徴量として学習用のモデル366に与えられる。詳しくは、位置情報382が、特徴量3420として学習用のモデル366に与えられる。車種情報384が、特徴量3430として学習用のモデル366に与えられる。車両状態情報386が、特徴量3440として学習用のモデル366に与えられる。
【0095】
学習部362は、上述したように、学習用プログラム318を含む。学習用プログラム318は、パラメータ最適化モジュールである。学習用プログラム318は、学習用のモデル366を規定するためのパラメータ366Pを最適化することで、学習済モデル326(図5図6参照)を生成する。
【0096】
学習用プログラム318は、学習用データセット324に含まれる、衛星画像320、車両情報328および業種情報322の各組(各学習用データ)を用いて、パラメータ366Pを最適化する。
【0097】
学習部362は、学習用データセット324に含まれる各組の衛星画像320から特徴量3410を生成して、学習用のモデル366に入力することで推定結果3450を算出する。具体的には、学習部362では、推定結果3450として業種毎のスコアが算出される。
【0098】
学習用プログラム318は、学習用のモデル366から出力される推定結果3450と対応する業種情報322(教師データ,正解データ,正解ラベル)とを比較することで誤差を算出し、算出した誤差に応じてパラメータ366Pの値を最適化(調整)する。
【0099】
以上のように、学習用プログラム318は、学習用データ(衛星画像320および車両情報328に対して業種情報322がラベル付けされている)から抽出された特徴量3410、3420,3430,3440を学習用のモデル366に入力して出力される推定結果3450が、当該学習用データにラベル付けされている業種情報322に近付くように、学習用のモデル366を最適化する。詳しくは、学習用プログラム318は、特徴量3410と車両情報328に関する特徴量3420,3430,3440を学習用のモデル366に入力したときに算出される推定結果3450が対応する業種情報322と一致するようにパラメータ366Pを調整する。
【0100】
同様の手順で、学習用データセット324に含まれる各学習用データ(衛星画像320、位置情報382、車種情報384、車両状態情報386、および業種情報322)に基づいて、学習用のモデル366のパラメータ366Pを繰り返し最適化することで、学習済モデル326が生成される。
【0101】
学習用プログラム318がパラメータ366Pの値を最適化するにあたっては、任意の最適化アルゴリズムを用いることができる。より具体的には、最適化アルゴリズムとしては、例えば、SGD(Stochastic Gradient Descent:確率的勾配降下法)、Momentum SGD(慣性項付加SGD)、AdaGrad、RMSprop、AdaDelta、Adam(Adaptive moment estimation)などの勾配法を用いることができる。
【0102】
学習用プログラム318によりパラメータ366Pが最適化された学習用のモデル366は、学習済モデル326に相当し、上述したように、端末装置100へ送信される。
【0103】
図8は、サーバ装置300における学習処理の処理手順を示すフローチャートである。
図8に示す各ステップは、典型的には、サーバ装置300のプロセッサ304がOS312、アプリケーションプログラム314、前処理プログラム316、および学習用プログラム318(いずれも図5参照)を実行することで実現されてもよい。
【0104】
図8に示されるように、サーバ装置300は、サーバ装置400から衛星画像320を取得する(ステップS1)。また、サーバ装置300は、サーバ装置200から車両情報328を取得する(ステップS2)。次に、サーバ装置300は、衛星画像320と、車両情報328と、業種情報322とを対応付けることで、学習用データセット324を生成する(ステップS3)。
【0105】
サーバ装置300は、生成した学習用データセット324のうち、1つのデータの組(学習用データ)を選択する(ステップS4)。サーバ装置300は、衛星画像320をサイズ調整して特徴量3410を抽出する(ステップS5)。
【0106】
サーバ装置300は、ステップS5において生成した特徴量3410および車両情報328に関する各特徴量3420,3430,3440を学習用のモデル366に入力して推定結果3450を生成する(ステップS6)。次に、サーバ装置300は、選択したデータの業種情報322とステップS6において生成した推定結果3450との誤差に基づいて学習用のモデル366のパラメータ366Pを最適化する(ステップS7)。
【0107】
このように、サーバ装置300は、特徴量3410と特徴量3420と特徴量3430と特徴量3440とを学習用のモデル366に入力して出力される推定結果3450が、当該学習用データにラベル付けされている業種(業種情報322)に近付くように、学習用のモデル366のパラメータ366Pを最適化する処理を実行する。
【0108】
サーバ装置300は、ステップS3において生成した学習用データセット324のすべてを処理したか否かを判断する(ステップS8)。学習用データセット324のすべてを処理していなければ(ステップS8においてNO)、ステップS4以下の処理が繰り返される。学習用データセット324のすべてを処理していれば(ステップS8においてYES)、サーバ装置300は、現在のパラメータ366Pにより規定される学習済モデル326を端末装置100へ送信する(ステップS9)。以上により、学習処理は完了する。
【0109】
なお、上述したように、端末装置100では、サーバ装置300から送信された学習済モデルの参照符号を“116”としている。
【0110】
<D.利用段階>
サーバ装置300から送信(配布)された学習済モデル116の利用について説明する。具体的には、端末装置100によって実行される推定処理について説明する。
【0111】
図9は、端末装置100の機能的構成を説明するための機能ブロック図である。
図9に示されているように、端末装置100は、入力受付部150と、制御部160と、表示部170とを備える。制御部160は、業種推定部161と、表示制御部162とを備える。業種推定部161は、学習済モデル116を備える。
【0112】
入力受付部150は、衛星画像320と車両情報328との入力を受け付ける。
制御部160は、端末装置100の全体的な動作を制御する。
【0113】
制御部160内の業種推定部161は、学習済モデル116を有する。学習済モデル116は、ネットワーク構造116Nと学習済パラメータ116Pとで構成される。なお、ネットワーク構造116Nは、ネットワーク構造366N(図6参照)と実質的に同一である。
【0114】
業種推定部161は、学習済モデル116を用いて、衛星画像320と車両情報328とから、作業現場で行われている作業の業種を推定する。業種推定部161は、推定結果である業種情報を表示制御部162に送る。
【0115】
表示制御部162は、業種情報を表示部170に表示させる。なお、表示部170は、ディスプレイ102(図4参照)に対応する。
【0116】
図10は、業種推定部161の処理(推定機能)の詳細を説明するためのブロック図である。
【0117】
図10に示されるように、業種推定部161は、調整モジュール142と学習済モデル116とを含む。調整モジュール142は、サーバ装置300が有している調整モジュール342(図7参照)と実質的に同一である。
【0118】
調整モジュール142において、衛星画像320は、予め定められた次元をもつ特徴量(特徴量ベクトル)に変換されて学習済モデル116に与えられる。ここで、衛星画像320の画像サイズは変動し得るため、調整モジュール142は画像サイズを規格化する。
【0119】
より具体的には、調整モジュール142は、衛星画像を予め定められた画素数の画像に調整した上で、調整後の画像を構成する各画素の画素値を特徴量1410として学習済モデル116に入力する。
【0120】
また、衛星画像と同一の組の車両情報328が特徴量として学習済モデル116に与えられる。詳しくは、位置情報382が、特徴量1420として学習済モデル116に与えられる。車種情報384が、特徴量1430として学習済モデル116に与えられる。車両状態情報386が、特徴量1440として学習済モデル116に与えられる。
【0121】
学習済モデル116は、上述したように、ネットワーク構造116Nと学習済パラメータ116Pとで構成されている。特徴量1410、1420,1430,1440が学習済モデル116に入力されることで、学習済モデル116が定義する演算処理が実行されて、推定結果1450として業種毎のスコアが算出される。ここで、業種毎のスコアは、各業種が、推定されるべき業種であるそれぞれの可能性を示す値である。業種のスコアが高いほど、当該業種が、作業現場で行われている作業の業種である可能性が高い。なお、スコアは、正規化されていることが好ましい。
【0122】
また、制御部160(図7)は、最もスコアの高い業種を表示部170に表示させる。しかしながら、これに限定されず、制御部160は、推定結果を各業種のスコアとして出力してもよい。
【0123】
図11は、図10に示す学習済モデル116のネットワーク構造116Nの例を示す模式図である。
【0124】
図11に示されるように、学習済モデル116は、DNN(Deep Neural Network)に分類されるネットワークである。学習済モデル116は、CNN(Convolutional Neural Network)に分類される前処理ネットワーク1460と、中間層1490と、出力層に相当する活性化関数1492と、Softmax関数1494とを含む。
【0125】
前処理ネットワーク1460は、相対的に次数の大きな特徴量1410から、推定結果1450を算出するために有効な特徴量を抽出するための一種のフィルタとして機能することが予定されている。前処理ネットワーク1460は、畳み込み層(CONV)およびプーリング層(Pooling)が交互に配置された構成を有している。なお、畳み込み層とプーリング層との数は同数でなくてもよく、また、畳み込み層の出力側にはReLU(正規化線形関数:rectified linear unit)などの活性化関数が配置される。
【0126】
より具体的には、前処理ネットワーク1460は、特徴量1410(x11,x12,・・・,x1r)の入力を受けて、所定の属性情報を示す内部特徴量を出力するように構築される。
【0127】
中間層1490は、所定数の層数を有する全結合ネットワークからなり、前処理ネットワーク1460からの出力を、各ノードについて決定される重みおよびバイアスを用いてノード毎に順次結合する。
【0128】
中間層1490の出力側には、ReLUなどの活性化関数1492が配置され、最終的には、Softmax関数1494により確率分布に正規化された上で、推定結果1450(y1,y2,・・・,yN)が出力される。
【0129】
図12は、端末装置100における推定処理の処理手順を示すフローチャートである。
図12に示す各ステップは、典型的には、端末装置100のプロセッサ104がOS112およびアプリケーションプログラム114(いずれも図4参照)を実行することで実現されてもよい。
【0130】
図12に示されるように端末装置100は、サーバ装置400から衛星画像320を取得する(ステップS11)。端末装置100は、サーバ装置200から車両情報328を取得する(ステップS12)。端末装置100は、衛星画像320をサイズ調整して特徴量3410を抽出する(ステップS13)。
【0131】
端末装置100は、衛星画像320の特徴量と車両情報の特徴量とを学習済モデル116に入力して、推定結果を生成する(ステップS14)。端末装置100は、学習済モデル116を用いて、衛星画像320の特徴量と車両情報の特徴量とから業種を推定する。
【0132】
端末装置100は、推定結果をディスプレイ102に表示する(ステップS15)。詳しくは、端末装置100は、推定結果のスコアが最も高い業種を示す画像データを生成し、生成された画像データ(業種を表示するためのデータ)をディスプレイ102に表示する。
【0133】
<E.変形例>
(1)上記の実施の形態においては、精度の高い業種の推定を行なうため、サーバ装置300は、衛星画像320と車両情報328とを用いた学習処理により学習済モデル326を生成した。また、端末装置100は、サーバ装置300から取得した学習済モデル116(学習済モデル326と実質的に同一の学習済モデル116)を用いて、業種の推定処理を行なった。しかしながら、車両情報328を用いた学習および利用は必須ではない。
【0134】
たとえば、サーバ装置300は、衛星画像320のみを用いた学習処理により学習済モデルを生成し、端末装置100は、サーバ装置300から取得した当該学習済モデルを用いて、業種の推定処理を行なってもよい。
【0135】
(2)車両情報328を用いて学習済モデルを生成する場合、車両情報328としての3つの情報(位置情報382、車種情報384、車両状態情報386)を用いた学習処理により学習済モデルを生成した。しかしながら、これに限定されるものではない。車両情報328を用いて学習済モデルを生成する場合、サーバ装置300は、位置情報382、車種情報384、および車両状態情報386のうち、少なくとも1つ以上の情報を用いて学習済モデルを生成してもよい。
【0136】
また、車両情報328を用いて学習済モデルを生成する場合、位置情報382、車種情報384、車両状態情報386の3つの種類の情報のうち、学習済モデルの生成に用いる情報の種類を多くするほど、精度の高い業種の推定が可能となる。
【0137】
(3)上記の実施の形態においては、「作業機械が稼働している作業現場を上空から撮像することにより得られた画像データ」の例として、人工衛星700によって撮像された画像(衛星画像)を挙げた。しかしなから、これに限定されず、衛星画像の代わりに、たとえばUAV(Unmanned Aerial Vehicle)、飛行機、ヘリコプター等を含む航空機(大気中を飛行する機器)によって撮像された画像を用いてもよい。
【0138】
今回開示された実施の形態は例示であって、上記内容のみに制限されるものではない。本発明の範囲は特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0139】
1 通信システム、100,500 端末装置、102,302 ディスプレイ、104,304 プロセッサ、106,306 メモリ、110,310 ストレージ、114,314 アプリケーションプログラム、116,326 学習済モデル、116N,366N ネットワーク構造、116P 学習済パラメータ、142,342 調整モジュール、150,350 入力受付部、160,360 制御部、161 業種推定部、162 表示制御部、170 表示部、200,300,400 サーバ装置、316 前処理プログラム、318,368 学習用プログラム、320 衛星画像、322 業種情報、324 学習用データセット、328 車両情報、362 学習部、366 学習用のモデル、366P パラメータ、382 位置情報、384 車種情報、386 車両状態情報、600 作業車両、700 人工衛星、901,902,903 ネットワーク、1410,1420,1430,1440,3410,3420,3430,3440 特徴量、1450,3450 推定結果、1460 前処理ネットワーク、1490 中間層、1492 活性化関数、1494 Softmax関数、D2 データベース。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12