(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-24
(45)【発行日】2024-10-02
(54)【発明の名称】推論計算処理装置、及び推論計算処理方法
(51)【国際特許分類】
G06N 20/00 20190101AFI20240925BHJP
G06T 7/00 20170101ALI20240925BHJP
G10L 15/16 20060101ALN20240925BHJP
【FI】
G06N20/00
G06T7/00 350B
G10L15/16
(21)【出願番号】P 2022551996
(86)(22)【出願日】2021-09-21
(86)【国際出願番号】 JP2021034571
(87)【国際公開番号】W WO2022065303
(87)【国際公開日】2022-03-31
【審査請求日】2023-04-05
(31)【優先権主張番号】P 2020161213
(32)【優先日】2020-09-25
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】390008235
【氏名又は名称】ファナック株式会社
(74)【代理人】
【識別番号】100106002
【氏名又は名称】正林 真之
(74)【代理人】
【識別番号】100165157
【氏名又は名称】芝 哲央
(74)【代理人】
【識別番号】100160794
【氏名又は名称】星野 寛明
(72)【発明者】
【氏名】李 維佳
【審査官】佐藤 直樹
(56)【参考文献】
【文献】特開2018-136803(JP,A)
【文献】国際公開第2020/026643(WO,A1)
【文献】茂出木 敏雄,「概念テンプレートを用いた衛星画像のパターン検索ツールの開発」,情報処理学会第70回(平成20年)全国大会講演論文集(2),日本,社団法人 情報処理学会,2008年03月13日,第2-525~2-526頁
(58)【調査した分野】(Int.Cl.,DB名)
G06N 20/00
G06T 7/00
G10L 15/16
(57)【特許請求の範囲】
【請求項1】
学習済みモデルに推論用データを入力して前記推論用データの推論計算処理を実行する推論計算処理装置であって、
前記推論用データと前記学習済みモデルとを取得する取得部と、
取得された前記推論用データをバッチ処理で複数の推論用サブデータに分割する前処理部と、
前記複数の推論用サブデータの少なくとも一部と前記学習済みモデルとに基づいて前記推論用データの推論計算処理を実行する実行部と、を備え、
前記取得部は、前記学習済みモデルを生成するために用いられたトレーニングデータを取得し、
前記実行部は、前記トレーニングデータと前記複数の推論用サブデータとのマッチングの度合いに応じた評価スコアを前記複数の推論用サブデータに付与し、付与された前記評価スコアによる優先順位に基づいて前記複数の推論用サブデータの推論計算処理順番を調整する
推論計算処理装置。
【請求項2】
前記前処理部は、前記トレーニングデータに基づいて前記推論用データの前記バッチ処理を行う、請求項1に記載の推論計算処理装置。
【請求項3】
前記取得部は、前記推論用データとして画像データを取得する、請求項1又は請求項2に記載の推論計算処理装置。
【請求項4】
前記前処理部は、前記推論用データとして取得された前記画像データの画像処理を行う、請求項3に記載の推論計算処理装置。
【請求項5】
前記前処理部は、前記画像処理の結果に基づいて前記推論用データの前記バッチ処理を行う、請求項4に記載の推論計算処理装置。
【請求項6】
前記実行部は、前記画像処理の結果に基づいて前記複数の推論用サブデータそれぞれに評価スコアを付与し、付与された前記評価スコアによる優先順位に基づいて前記複数の推論用サブデータの前記推論計算処理順番を最適化する、請求項4又は請求項5に記載の推論計算処理装置。
【請求項7】
学習済みモデルに推論用データを入力して前記推論用データの推論計算処理を実行する推論計算処理装置であって、
前記推論用データと前記学習済みモデルとを取得する取得部と、
取得された前記推論用データをバッチ処理で複数の推論用サブデータに分割する前処理部と、
前記複数の推論用サブデータの少なくとも一部と前記学習済みモデルとに基づいて前記推論用データの推論計算処理を実行する実行部と、を備え、
前記取得部は、前記推論用データとして音声データを取得
し、
前記前処理部は、前記推論用データとして取得された前記音声データの特徴分析を行い、
前記実行部は、前記特徴分析の結果に基づいて前記複数の推論用サブデータに評価スコアを付与し、付与された前記評価スコアによる優先順位に基づいて前記複数の推論用サブデータの推論計算処理順番を調整する
推論計算処理装置。
【請求項8】
前記前処理部は、前記特徴分析の結果に基づいて前記推論用データの前記バッチ処理を行う、請求項
7に記載の推論計算処理装置。
【請求項9】
前記取得部は、前記推論用データとして文字データを取得する、請求項1又は請求項2に記載の推論計算処理装置。
【請求項10】
前記前処理部は、前記推論用データとして取得された前記文字データの特徴分析を行う、請求項
9に記載の推論計算処理装置。
【請求項11】
前記前処理部は、前記特徴分析の結果に基づいて前記推論用データの前記バッチ処理を行う、請求項
10に記載の推論計算処理装置。
【請求項12】
前記実行部は、前記特徴分析の結果に基づいて前記複数の推論用サブデータに評価スコアを付与し、付与された前記評価スコアによる優先順位に基づいて前記複数の推論用サブデータの推論計算処理順番を調整する、請求項
10又は請求項
11に記載の推論計算処理装置。
【請求項13】
前記取得部は、3次元計測データを取得する、請求項1又は請求項2に記載の推論計算処理装置。
【請求項14】
前記前処理部は、前記3次元計測データに基づいて前記推論用データの前記バッチ処理を行う、請求項
13に記載の推論計算処理装置。
【請求項15】
前記実行部は、前記3次元計測データに基づいて前記複数の推論用サブデータに評価スコアを付与し、付与された前記評価スコアによる優先順位に基づいて前記複数の推論用サブデータの推論計算処理順番を調整する、請求項
13又は請求項
14に記載の推論計算処理装置。
【請求項16】
コンピュータにより実現される、学習済みモデルに推論用データを入力して前記推論用データの推論計算処理を実行する推論計算処理方法であって、
前記推論用データと前記学習済みモデルとを取得する取得工程と、
取得された前記推論用データをバッチ処理で複数の推論用サブデータに分割する前処理工程と、
前記複数の推論用サブデータの少なくとも一部と前記学習済みモデルとに基づいて前記推論用データの推論計算処理を実行する実行工程と、を備え、
前記取得工程は、前記学習済みモデルを生成するために用いられたトレーニングデータを取得し、
前記実行工程は、前記トレーニングデータと前記複数の推論用サブデータとのマッチングの度合いに応じた評価スコアを前記複数の推論用サブデータに付与し、付与された前記評価スコアによる優先順位に基づいて前記複数の推論用サブデータの推論計算処理順番を調整する
推論計算処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、推論計算処理装置、及び推論計算処理方法に関する。
【背景技術】
【0002】
深層学習を利用したアプリケーションの計算処理を高速に行うためには大抵GPU(Graphics Processing Unit)デバイスの利用は必須であるが、GPUデバイスの更新スピードは速く、長い時間の保守の面から商品に組み込むことは難しい点がある。また、GPUデバイスは高価なデバイスであり導入コストが高くなる点もある。また、深層学習を利用したバラ積みされたワークの取出しは工場の生産ラインで使用されるアプリケーションとして、低いコストで生産ラインの目標サイクルタイムを達成させるために通常の安価なCPU(Central Processing Unit)デバイスを使用して高速に推論を実行できることが望ましい。
この点、バラ積みされているワークの距離画像を生成して表示し、表示された距離画像において教示された取り出し位置の近傍の3次元点群データを入力データとし、教示に応じた評価値又は取り出し動作の成否結果に応じた評価値をラベルとする機械学習を行い、3次元点群データを入力し前記3次元点群データの評価値を出力する学習済みモデルを生成し、生成された学習済みモデルに所定領域の大きさで切り抜いた距離画像の3次元点群データを入力することで出力される評価値に基づいて、評価値が高い切り抜かれた距離画像に対応する取り出し位置が選択されることで、バラ積みされているワークを取り出す技術が知られている。例えば、特許文献1参照。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、距離画像から所定領域の距離画像が切り抜かれたが、機械学習で用いられる学習用の入力データの大きさが一旦決められると、学習済みモデルに入力される所定領域で切り抜かれた距離画像(以下、「切り抜き画像」ともいう)の大きさは学習用の入力データと同じ大きさとなるように距離画像から切り抜く必要がある。
また、全ての切り抜き画像(取り出し位置候補)の3次元点群データそれぞれを学習済みモデルに入力してそれぞれの評価値を出力し、評価値が高い切り抜き画像に対応している取り出し位置が選択される。すなわち、全ての切り抜き画像(取り出し位置候補)を学習済みモデルに入力して推論計算処理を行うことから、評価値が低くて推論計算を行っても選択/使用されない切り抜き画像(取り出し位置候補)に対しても無駄な推論計算が行われることになる。
【0005】
特に、複雑な形状を有するワークの場合は解像度の高い(すなわちデータサイズが大きい)距離画像や3次元点群データが必要となる。また、サイズの大きいワークの場合に取得した距離画像や3次元点群データもデータサイズが大きくなる。このため、データサイズが大きなデータに対して推論計算処理を行うにあたり、全ての切り抜き画像(取り出し位置候補)を計算する手法では、評価値が低くて推論計算を行っても選択/使用されない切り抜き画像(取り出し位置候補)に対する無駄な計算処理時間も含む。これにより、トータルの推論時間が長くなり、その期間、工場の生産ラインのロボット等が待機状態となり、生産効率が低下してしまう。
【0006】
そこで、ロボットが長く待機することなく短時間で推論計算処理を実行することが望まれている。
【課題を解決するための手段】
【0007】
本開示の推論計算処理装置の一態様は、学習済みモデルに推論用データを入力して前記推論用データの推論計算処理を実行する推論計算処理装置であって、前記推論用データと前記学習済みモデルとを取得する取得部と、取得された前記推論用データをバッチ処理で複数の推論用サブデータに分割する前処理部と、前記複数の推論用サブデータの推論計算処理順番を最適化し、最適化された前記推論計算処理順番で前記複数の推論用サブデータの少なくとも一部のそれぞれと前記学習済みモデルとに基づいて前記推論用データの推論計算処理を実行する実行部と、を備える。
【0008】
本開示の推論計算処理方法の一態様は、コンピュータにより実現される、学習済みモデルに推論用データを入力して前記推論用データの推論計算処理を実行する推論計算処理方法であって、前記推論用データと前記学習済みモデルとを取得する取得工程と、取得された前記推論用データをバッチ処理で複数の推論用サブデータに分割する前処理工程と、前記複数の推論用サブデータの推論計算処理順番を最適化し、最適化された前記推論計算処理順番で前記複数の推論用サブデータの少なくとも一部のそれぞれと前記学習済みモデルとに基づいて前記推論用データの推論計算処理を実行する実行工程と、を備える。
【発明の効果】
【0009】
一態様によれば、ロボットが長く待機することなく短時間で推論計算処理を実行することができる。
【図面の簡単な説明】
【0010】
【
図1】第1実施形態に係るロボットシステムの構成の一例を示す図である。
【
図2】第1実施形態に係る学習済みモデル実行装置の機能的構成例を示す機能ブロック図である。
【
図3】学習済みモデル実行装置の推論計算処理について説明するフローチャートである。
【
図4】第2実施形態に係る学習済みモデル実行装置の機能的構成例を示す機能ブロック図である。
【
図5】学習済みモデル実行装置の推論計算処理について説明するフローチャートである。
【
図6】第3実施形態に係るロボットシステムの構成の一例を示す図である。
【
図7】第3実施形態に係る学習済みモデル実行装置の機能的構成例を示す機能ブロック図である。
【
図8】学習済みモデル実行装置の推論計算処理について説明するフローチャートである。
【
図9】トレーニング画像データも取得する場合の第3実施形態の変形例に係る学習済みモデル実行装置の機能的構成例を示す機能ブロック図である。
【
図10】推論用データが音声データの場合の学習済みモデル実行装置の機能的構成例を示す機能ブロック図である。
【
図11】推論用データが文字データの場合の学習済みモデル実行装置の機能的構成例を示す機能ブロック図である。
【
図12】推論用データが音声データの場合の学習済みモデル実行装置の機能的構成例を示す機能ブロック図である。
【
図13】推論用データが文字データの場合の学習済みモデル実行装置の機能的構成例を示す機能ブロック図である。
【
図14】トレーニング画像データも取得する場合の学習済みモデル実行装置の機能的構成例を示す機能ブロック図である。
【発明を実施するための形態】
【0011】
第1実施形態から第3実施形態について図面を参照して詳細に説明をする。
ここで、各実施形態は、バラ積みされた重なり合う状態の複数のワークの取り出し位置を特定する学習済みモデルを用いて、ロボットが長く待機することなく短時間で推論計算処理を実行するという構成において共通する。
ただし、推論計算処理において、第1実施形態では学習済みモデルを生成する機械学習で用いた教師データであるトレーニング画像データのサイズに基づいて、バラ積みで重なり合う状態の複数のワークが撮像された推論用画像データをバッチ処理で分割し、分割することで生成された複数の推論用サブ画像データに対する画像特徴分析から特徴量を抽出し、複数の推論用サブ画像データそれぞれの特徴量とトレーニング画像データに対する画像特徴分析からの特徴量とのマッチング結果に基づいて複数の推論用サブ画像データそれぞれに評価スコアを付与し、付与された評価スコアによる優先順位に基づいて複数の推論用サブ画像データの推論計算処理順番を最適化する。これに対し、第2実施形態では推論用画像データを画像処理することにより特徴点を抽出し、特徴点の数に応じて推論用画像データをバッチ処理で分割し、特徴点の数に基づいて複数の推論用サブ画像データそれぞれに評価スコアを付与する点で、第1実施形態と相違する。また、第3実施形態では3次元計測機等で取得されたワークがバラ積みで重なり合う状態の3次元点群データ(又は距離画像データ)に基づいて推論用画像データをバッチ処理で分割し、分割された複数の推論用サブ画像データそれぞれにおけるコンテナ底からの高さ(以下、「所定の高さ」ともいう)に基づいて複数の推論用サブ画像データそれぞれに評価スコアを付与する点で、第1実施形態及び第2実施形態と相違する。
以下では、まず第1実施形態について詳細に説明し、次に第2実施形態及び第3実施形態において特に第1実施形態と相違する部分について説明を行う。
【0012】
<第1実施形態>
図1は、第1実施形態に係るロボットシステム1の構成の一例を示す図である。ここでは、ロボットがコンテナ内にバラ積みされたワークを取り出す場合において画像データに基づいて機械学習して生成された学習済みモデルを実行するケースを例示する。なお、本発明は、ロボットがコンテナ内にバラ積みされたワークを取り出す場合において画像データに基づいて機械学習して生成された学習済みモデルを実行するケースに限られない。例えば、ロボットの動作に限らず、画像データに基づいて任意のタスクを実行するための推論を行うシステムにおいて、画像データに基づいて機械学習して生成される学習済みモデルを実行するケースにも適用することができる。
また、例えば、後述するように、音声データに基づいて任意のタスクを実行するための推論を行うシステムにおいて、音声データに基づいて機械学習して生成される学習済みモデルを実行するケースにも適用することができる。また、文字データに基づいて任意のタスクを実行するための推論を行うシステムにおいて、文字データに基づいて機械学習して生成される学習済みモデルを実行するケースにも適用することができる。
図1に示すように、ロボットシステム1は、推論計算処理装置としての学習済みモデル実行装置10、ロボット制御装置20、ロボット30、撮像装置40、複数のワーク50、及びコンテナ60を有する。
学習済みモデル実行装置10、ロボット制御装置20、ロボット30、及び撮像装置40は、図示しない接続インタフェースを介して互いに直接接続されてもよい。なお、学習済みモデル実行装置10、ロボット制御装置20、ロボット30、及び撮像装置40は、LAN(Local Area Network)やインターネット等の図示しないネットワークを介して相互に接続されていてもよい。この場合、学習済みモデル実行装置10、ロボット制御装置20、ロボット30、及び撮像装置40は、かかる接続によって相互に通信を行うための図示しない通信部を備えている。また、説明しやすくするために、
図1は学習済みモデル実行装置10とロボット制御装置20をそれぞれ独立に描いていて、この場合の学習済みモデル実行装置10は例えばコンピュータより構成されてもよい。このような構成に限定されず、例えば、学習済みモデル実行装置10はロボット制御装置20の内部に実装され、ロボット制御装置20と一体化されてもよい。
【0013】
ロボット制御装置20は、ロボット30の動作を制御するための当業者にとって公知の装置である。ロボット制御装置20は、例えば、バラ積みされたワーク50のうち後述する学習済みモデル実行装置10によって選択されたワーク50の取り出し位置情報を学習済みモデル実行装置10から受信する。ロボット制御装置20は、学習済みモデル実行装置10から受信した取り出し位置にあるワーク50を取り出すように、ロボット30の動作を制御するための制御信号を生成する。そして、ロボット制御装置20は、生成した制御信号をロボット30に対して出力する。
なお、ロボット制御装置20は、後述するように、学習済みモデル実行装置10を含んでもよい。
【0014】
ロボット30は、ロボット制御装置20の制御に基づいて動作するロボットである。ロボット30は、鉛直方向の軸を中心に回転するためのベース部や、移動及び回転するアームや、ワーク50を保持するためにアームに装着される取り出しハンド31を備える。なお、
図1では、ロボット30の取り出しハンド31には、エア吸着式の取り出しハンドが装着されているが、把持式の取り出しハンドが装着されてもよいし、磁力で鉄製のワークを取り出す磁気式ハンドが装着されてもよい。
ロボット30は、ロボット制御装置20が出力する制御信号に応じて、アームや取り出しハンド31を駆動して、学習済みモデル実行装置10により選択された取り出し位置まで取り出しハンド31を移動させて、バラ積みされたワーク50を保持してコンテナ60から取り出す。
なお、取り出したワーク50の移載先については図示を省略する。また、ロボット30の具体的な構成については、当業者によく知られているので、詳細な説明は省略する。
【0015】
また、学習済みモデル実行装置10やロボット制御装置20は、予め行われたキャリブレーションにより、ロボット30を制御するための機械座標系と、ワーク50の取り出し位置を示すカメラ座標系とを対応付けているものとする。
【0016】
撮像装置40は、デジタルカメラ等であり、コンテナ60内のバラ積みされたワーク50を撮像装置40の光軸に対して垂直な平面に投影した2次元の画像データを撮像する。撮像装置40により撮像される画像データは、RGBカラー画像やグレースケール画像、深度画像等の可視光画像でもよい。また、撮像装置40は、赤外線センサを含むように構成されて熱画像を撮像してもよく、紫外線センサを含むように構成されて物体表面の傷や斑等の検査用の紫外線画像を撮像してもよい。また、撮像装置40は、X線カメラセンサを含むように構成されてX線画像を撮像してもよく、超音波センサを含むように構成されて超音波画像を撮像してもよい。
なお、撮像装置40は、後述するように、ステレオカメラ等の3次元計測機でもよい。
【0017】
ワーク50は、コンテナ60内で、バラ積みされた状態を含んで乱雑に置かれる。ワーク50は、ロボット30のアームに装着された取り出しハンド31で保持可能なものであればよく、その形状等は特に限定されない。
【0018】
<学習済みモデル実行装置10>
図2は、第1実施形態に係る学習済みモデル実行装置10の機能的構成例を示す機能ブロック図である。
学習済みモデル実行装置10は、当業者にとって公知のコンピュータであり、
図2に示すように、制御部11を有する。また、制御部11は、取得部110、前処理部120、及び実行部130を有する。また、取得部110は、データ保存部111を有する。また、前処理部120は、バッチ処理部121を有する。また、実行部130は、特徴分析部131、評価スコア計算部132、最適化計算部133、推論計算処理部134、及び推論結果保存部135を有する。
【0019】
<制御部11>
制御部11は、CPU(Central Processing Unit)、ROM、RAM(Random Access Memory)、CMOS(Complementary Metal-Oxide-Semiconductor)メモリ等を有し、これらはバスを介して相互に通信可能に構成される、当業者にとって公知のものである。
CPUは学習済みモデル実行装置10を全体的に制御するプロセッサである。CPUは、ROMに格納されたシステムプログラム及びアプリケーションプログラムを、バスを介して読み出し、システムプログラム及びアプリケーションプログラムに従って学習済みモデル実行装置10全体を制御する。これにより、
図2に示すように、制御部11が、取得部110、前処理部120、及び実行部130の機能を実現するように構成される。また、取得部110は、データ保存部111の機能を実現するように構成される。また、前処理部120は、バッチ処理部121の機能を実現するように構成される。また、実行部130は、特徴分析部131、評価スコア計算部132、最適化計算部133、推論計算処理部134、及び推論結果保存部135の機能を実現するように構成される。RAMには一時的な計算データや表示データ等の各種データが格納される。また、CMOSメモリは図示しないバッテリでバックアップされ、学習済みモデル実行装置10の電源がオフされても記憶状態が保持される不揮発性メモリとして構成される。
【0020】
<取得部110>
取得部110は、例えば、推論用データとしての画像データを撮像装置40から取得するとともに、クラウド又はエッジデバイス上のデータベース70から学習済みモデル、及び前記学習済みモデルを機械学習で生成する際に用いたトレーニング画像データを取得する。
取得部110はさらに、HDDやUSBメモリ等のデータ保存部111を含むように構成され、取得した学習済みモデルをデータ保存部111に保存するように構成されてもよい。例えば、取得部110は、クラウド又はエッジデバイス上のデータベース70からHDDやUSBメモリ等の記録媒体に記録されている学習済みモデルをLAN等のネットワークを経由して取得し、取得した学習済みモデルをデータ保存部111にコピーして保存してもよい。
【0021】
また、取得部110は、例えば、クラウド又はエッジデバイス上のデータベース70からHDDやUSBメモリ等の記録媒体に記録されているトレーニング画像データをLAN等のネットワークを経由して取得し、取得したトレーニング画像データをデータ保存部111にコピーして保存してもよい。
また、取得部110は、例えば、撮像装置40から撮像された画像データを取得し、取得した画像データを推論用画像データとしてデータ保存部111にコピーして保存してもよい。
なお、取得部110は、撮像装置40から画像データを取得したが、後述するように、3次元点群データ又は距離画像データ等を取得してもよい。
【0022】
<前処理部120>
前処理部120はバッチ処理部121を備え、バッチ処理部121は、取得部110により取得されたトレーニング画像データに基づいて推論用データをバッチ処理して複数の推論用サブ画像データに分割するように構成されてもよい。
具体的には、バッチ処理部121は、例えば、機械学習に用いたトレーニング画像データのデータサイズを基準に、推論用画像データをバッチ処理して複数の推論用サブ画像データに分割してもよい。
【0023】
<実行部130>
実行部130は、前処理部120によりバッチ処理で分割された複数の推論用サブ画像データの推論計算処理順番を最適化し、予め指定された探索目標に達成するまでに、最適化された推論計算処理順番で必要な分だけの複数の推論用サブ画像データそれぞれと学習済みモデルとに基づいて推論用データの推論計算処理を実行するように構成されてもよい。
例えば、実行部130は、トレーニング画像データ上のラベル付き教示位置の近傍画像と、前処理部120のバッチ処理で分割された複数の推論用サブ画像データそれぞれとに対して画像特徴分析を行い、抽出された特徴量のマッチング結果に基づいて複数の推論用サブ画像データそれぞれに評価スコアを付与し、付与された複数の推論用サブ画像データそれぞれの評価スコアの値の大きさに従って決まる優先順位に基づいて、複数の推論用サブ画像データの推論計算処理順番の最適化を行うように構成されてもよい。
具体的に、実行部130の特徴分析部131は、例えば、トレーニング画像データ上にワーク50の取り出し可能な位置を示すラベルが付けられていることから、トレーニング画像データのうちラベルが示す取り出し位置を含む近傍画像領域に対して画像処理を行う。特徴分析部131は、例えば、画像処理により特定な特徴量(以下、「局所特徴量」ともいう)Aを抽出する。また、特徴分析部131は、前処理部120のバッチ処理で分割されたn個の推論用サブ画像データIMG1、IMG2…、IMGnに対しても画像処理を行い、局所特徴量を抽出する(nは2以上の整数)。例えば、特徴分析部131は、推論用サブ画像データIMG1から局所特徴量A11、A12を抽出し、推論用サブ画像データIMG2から局所特徴量A21、A22、A23を抽出し、推論用サブ画像データIMG3から局所特徴量A31、A32、A33、A34を抽出したとする。特徴分析部131は、抽出した局所特徴量A11、A12、A21、A22、A23、A31、A32、A33、A34それぞれと、トレーニング画像データの局所特徴量Aと、のマッチング処理を行い、前記マッチング処理の分析結果データを後述する評価スコア計算部132に出力する。
【0024】
実行部130の評価スコア計算部132は、特徴分析部131により出力された分析結果データを受け取り、例えば推論用サブ画像データIMG2がマッチング度の高い局所特徴量(例えば、A22)を含む場合、推論用サブ画像データIMG2に高い評価スコア(例えば、70点等)を付与する。また、評価スコア計算部132は、例えば1つの推論用サブ画像データIMG3がマッチング度の高い複数の局所特徴量(例えば、A32、A34)を含む場合、推論用サブ画像データIMG3により高い評価スコア(例えば、80点等)を付与する。評価スコア計算部132は、このように付与した評価スコアを後述する最適化計算部133に出力する。
【0025】
実行部130の最適化計算部133は、評価スコア計算部132により出力された評価スコアの情報に基づいて、高い評価スコアを有する推論用サブ画像データから順に優先的に推論計算処理されるように高い優先順位を付与する。最適化計算部133は、前処理部120のバッチ処理で分割されたn個の推論用サブ画像データの推論計算処理順番の最適化を行い、最適化された推論計算処理順番の処理順番リストを生成する。最適化計算部133は、生成した処理順番リストを後述する推論計算処理部134に出力する。
なお、最適化計算部133は、低い評価スコアを有する推論用サブ画像データを推論計算処理しないように処理順番リストから削除するようにしてもよい。
【0026】
実行部130の推論計算処理部134は、最適化計算部133から受信した処理順番リストの情報と、前処理部120のバッチ処理で分割されたn個の推論用サブ画像データと、取得部110により取得された学習済みモデルとに基づいて、予め指定された探索目標(例えば、10個のワーク50の取り出し位置を見付け出すこと)に達成するまでに、処理順番リストの高い順でn個の推論用サブ画像データから必要な分だけの推論計算処理を行う。推論計算処理部134は、推論計算処理の推論結果データを後述する推論結果保存部135に出力する。
【0027】
実行部130の推論結果保存部135は、推論計算処理部134から推論結果データを受信して保存する。
【0028】
このように、高い評価スコアを有する推論用サブ画像データにトレーニング画像データ上の教示位置と同じ特徴を有するようなより良い取り出し位置候補が存在する可能性が高いことから、学習済みモデル実行装置10は、高い評価スコアを有する推論用サブ画像データから優先的に推論計算処理する。そうすることで、学習済みモデル実行装置10は、予め指定したワーク50の目標の取り出し数(以下、「所定の候補数」ともいう)の探索を早めに達成して推論計算処理を早めに終了することにより、推論計算処理時間を短縮することができる。換言すれば、学習済みモデル実行装置10は、低い評価スコアを有する推論用サブ画像データにトレーニング画像データ上の教示位置と同じ特徴を有するより良い取り出し位置候補が存在する可能性が低いことから、低い評価スコアを有する推論用サブ画像データの推論計算処理をしないようにすることで、無駄な推論計算処理をなくして推論計算処理時間を短縮できる。すなわち、学習済みモデル実行装置10は、評価スコアによる優先順位に基づいて推論計算処理順番を最適化することにより、推論計算処理の高速化を実現することができる。
なお、所定の候補数は、要求される推論計算処理の精度や処理速度等に応じて適宜決定されることが好ましいが、工場の生産ラインの生産要求に応じて決定されてもよい。
【0029】
<学習済みモデル実行装置10の推論計算処理>
次に、本実施形態に係る学習済みモデル実行装置10の推論計算処理に係る動作について説明する。
図3は、学習済みモデル実行装置10の推論計算処理について説明するフローチャートである。
【0030】
ステップS11において、取得部110は、データベース70から学習済みモデル、及びトレーニング画像データを取得する。
【0031】
ステップS12において、取得部110は、撮像装置40から推論用画像データを取得する。
【0032】
ステップS13において、前処理部120のバッチ処理部121は、トレーニング画像データに基づいてステップS12で取得された推論用画像データをバッチ処理でn個の推論用サブ画像データに分割する。
【0033】
ステップS14において、実行部130の特徴分析部131は、トレーニング画像データ、及びn個の推論用サブ画像データに対して画像特徴分析を行い、トレーニング画像データ、及びn個の推論用サブ画像データから局所特徴量を抽出する。
【0034】
ステップS15において、特徴分析部131は、トレーニング画像データの局所特徴量と、各推論用サブ画像データの局所特徴量とのマッチング処理を行い、マッチング処理の分析結果データを評価スコア計算部132に出力する。
【0035】
ステップS16において、評価スコア計算部132は、ステップS15より出力された分析結果データに基づいて、n個の推論用サブ画像データそれぞれに、トレーニング画像データの局所特徴量とのマッチング度に応じた評価スコアを付与する。
【0036】
ステップS17において、最適化計算部133は、ステップS16より付与された評価スコアの情報に基づいて推論計算処理を行う複数の推論用サブ画像データの推論計算処理順番を最適化し、処理順番リストを生成する。
【0037】
ステップS18において、推論計算処理部134は、ステップS17で生成された処理順番リストの情報と、推論用サブ画像データと、学習済みモデルとに基づいて推論計算処理を行う。
【0038】
ステップS19において、推論計算処理部134は、ステップS18での推論計算処理により探索された取り出し位置候補の数が所定の候補数に達したか否かを判定する。取り出し位置候補の数が所定の候補数に達した場合、推論計算処理を終了する。一方、取り出し位置候補の数が所定の候補数より少ない場合、処理はステップS18に戻る。
【0039】
以上により、第1実施形態に係る学習済みモデル実行装置10は、撮像装置40から推論用データと、データベース70から学習済みモデル及びトレーニング画像データと、をそれぞれ取得する。学習済みモデル実行装置10は、トレーニング画像データのサイズに基づいて推論用画像データをバッチ処理でn個の推論用サブ画像データに分割する。学習済みモデル実行装置10は、トレーニング画像データ、及びn個の推論用サブ画像データのそれぞれから局所特徴量を抽出し、抽出したトレーニング画像データの局所特徴量と各推論用サブ画像データの局所特徴量とのマッチング処理を行う。学習済みモデル実行装置10は、マッチング処理の分析結果データに基づいてn個の推論用サブ画像データそれぞれに、トレーニング画像データの局所特徴量とのマッチング度に応じた評価スコアを付与し、評価スコアの情報に基づいて推論計算処理を行う複数の推論用サブ画像データの推論計算処理順番を最適化する。
これにより、学習済みモデル実行装置10は、ロボット30が長く待機することなく短時間で推論計算処理を実行することができる。
また、学習済みモデル実行装置10は、通常の安価なCPUデバイスを使用して高速に推論を実行することができ、低いコストで生産ラインに求められる高い生産効率を実現することができる。
以上、第1実施形態について説明した。
【0040】
<第2実施形態>
次に、第2実施形態について説明する。上述したように、推論計算処理において、第1実施形態ではトレーニング画像データのサイズに合わせて推論用画像データをバッチ処理で分割し、分割することで生成された複数の推論用サブ画像データそれぞれに対する画像特徴分析から特徴量を抽出し、複数の推論用サブ画像データそれぞれの特徴量とトレーニング画像データの特徴量とのマッチング結果に基づいて複数の推論用サブ画像データそれぞれに評価スコアを付与し、付与された評価スコアの値による優先順位に基づいて複数の推論用サブ画像データの推論計算処理順番を最適化する。これに対し、第2実施形態では推論用画像データを画像処理することにより、例えば特定な特徴点を抽出し、抽出された特徴点の数に応じて推論用画像データをバッチ処理で分割し、各領域内に含まれる特徴点の数に基づいて複数の推論用サブ画像データそれぞれに評価スコアを付与する点で、第1実施形態と相違する。
これにより、学習済みモデル実行装置10aは、ロボット30が長く待機することなく短時間で推論計算処理を実行することができる。
以下、第2実施形態について説明する。
【0041】
第2実施形態に係るロボットシステム1は、
図1の第1実施形態の場合と同様に、学習済みモデル実行装置10a、ロボット制御装置20、ロボット30、撮像装置40、複数のワーク50、及びコンテナ60を有する。
【0042】
<学習済みモデル実行装置10a>
図4は、第2実施形態に係る学習済みモデル実行装置10aの機能的構成例を示す機能ブロック図である。なお、
図2の学習済みモデル実行装置10の要素と同様の機能を有する要素については、同じ符号を付し、詳細な説明は省略する。
学習済みモデル実行装置10aは、第1実施形態に係る学習済みモデル実行装置10と同様に、制御部11aを有する。また、制御部11aは、取得部110a、前処理部120a、及び実行部130aを有する。また、取得部110aは、データ保存部111を有する。また、前処理部120aは、バッチ処理部121a、及び画像処理部122を有する。また、実行部130aは、評価スコア計算部132a、最適化計算部133、推論計算処理部134、及び推論結果保存部135を有する。
【0043】
<取得部110a>
取得部110aは、例えば、推論用データとしての画像データを撮像装置40から取得するとともに、クラウド又はエッジデバイス上のデータベース70から学習済みモデルを取得する。取得部110aは、取得した学習済みモデル、及び画像データをデータ保存部111に保存する。
なお、データ保存部111は、第1実施形態に係るデータ保存部111と同等の機能を有する。
【0044】
<前処理部120a>
前処理部120aは、例えば、取得部110aのデータ保存部111から画像データを推論用画像データとして取得し、取得した推論用画像データの画像処理を行い、画像処理結果に基づいて推論用画像データをバッチ処理で複数の推論用サブ画像データに分割するように構成されてもよい。
具体的には、前処理部120aの画像処理部122は、例えば、推論用画像データに対して画像処理を行い、エッジやコーナー、特徴点等の特徴を抽出して画像処理結果データとして出力してもよい。以下はその一例を挙げて、画像処理部122は、推論用画像データの全領域に対して特定な特徴点を抽出する場合を述べる。
図1に示すように、例えば、推論用画像データがコンテナ60内にバラ積みされたワーク50の状況を撮像した画像である場合、抽出された特徴点の数が少ない局所画像領域内にはワーク50が殆どなく、明るさも画素値も均一になっている1つ大きな平面(例えば、コンテナ60の底等)が写っている可能性が高いと予測することができる。この場合、学習済みモデル実行装置10aは、当該画像領域に対して推論計算処理を行っても、取り出す対象のワーク50を見つけられない可能性が高いことから、無駄な推論計算処理に時間をかけてしまうことになる。すなわち、学習済みモデル実行装置10aは、画像処理部122により抽出された特徴点の位置分布を分析することで、より多くの特徴点が集中している局所画像領域、すなわちワーク50が多く存在している局所画像領域を特定することができる。
なお、画像処理部122は、推論用画像データの画像処理を行って特徴点を抽出した場合を一例として説明したが、これに限定されない。例えば、画像処理部122は、実際のワーク50の形状に合わせて画像処理で抽出する特徴を変えることで効率を上げるようにしてもよい。
【0045】
バッチ処理部121aは、推論用画像上に特徴点が集中している局所画像領域が1つの推論用サブ画像となるように推論用画像を分割し、特徴点が少ない又は1つも存在しない局所画像領域が1つの推論用サブ画像となるように推論用画像を分割する処理を行う。そうすることで、ワーク50が多く存在している可能性の高い局所画像領域が1つの推論用サブ画像になり、ワーク50が少ない又は1つも存在しない局所画像領域が1つの推論用サブ画像になるように推論用画像データを複数に分割して複数の推論用サブ画像データを生成して、実行部130aに出力してもよい。なお、バッチ処理部121aは、推論用画像データ上において特徴点が集中しているか、特徴点が少ないかを、予め設定された閾値に基づいて、例えば、特徴点の数が閾値D1を超えたものは多いと判定し、閾値D2(D2<D1)より少ないものは少ないと判定するようにしてもよい。
これにより、優先して推論計算処理すべき局所画像領域と、推論計算しても対象ワークを見つけられなく、無駄になるような局所画像領域とを、推論用画像データのバッチ処理の段階で見分け、後述の推論計算処理順番の最適化が効率よくスムーズに行えるようにバッチ処理を最適化することができる。
すなわち、優先して推論計算処理すべきワーク50を見つけられる可能性の高い推論用サブ画像データと、推論計算しても対象となるワーク50を見つけられず無駄になるような推論用サブ画像データとを推論用画像データのバッチ処理の段階で見分けるようにすることで、後述する実行部130aは推論計算処理順番の最適化を効率よくスムーズに行うことができる。
【0046】
<実行部130a>
実行部130aは、前処理部120aの画像処理部122により出力された画像処理結果データに基づいて、複数の推論用サブ画像データの推論計算処理順番の最適化を行い、予め指定された探索目標に達成するまでに、最適化された推論計算処理順番で必要な分だけの複数の推論用サブ画像データそれぞれと学習済みモデルとに基づいて推論用データの推論計算処理を実行するように構成されてもよい。
具体的には、前述したように前処理部120aのバッチ処理部121aにより、前述したコンテナ60内にバラバラに積載しているワーク50を撮影した推論用画像に対して特徴点を抽出して推論用画像データを複数に分割して複数の推論用サブ画像データを生成して出力したとする。そうすることで、実行部130aは評価スコア計算部132aを備え、評価スコア計算部132aにより、特徴点の数が多い推論用サブ画像データに高い評価スコアを付与し、特徴点の数が少ない推論用サブ画像データに低い評価スコアを付与するようにしてもよい。
そうすることで、実行部130aの最適化計算部133は、
図2の最適化計算部133と同様に、評価スコア計算部132aにより付与された評価スコアの高い順で処理順番リストを生成して出力する。
実行部130aの推論計算処理部134は、
図2の推論計算処理部134と同様に、処理順番リストの情報と、複数の推論用サブ画像データと、学習済みモデルとに基づいて推論計算処理を行い、推論結果データを推論結果保存部135に保存する。
【0047】
このように、学習済みモデル実行装置10aは、抽出された特徴点の数が多くワーク50が多く存在している可能性の高い推論用サブ画像データを優先的に推論計算処理し、特徴点の数が少なくワーク50が少ない又は1つも存在しない推論用サブ画像データを推論計算処理しないことで、推論用画像データから予め指定した取り出すワーク50の所定の候補数を見つけるための推論計算処理時間を短縮することができる。
そうすることで、学習済みモデル実行装置10aは、推論用画像データから予め指定した取り出すワーク50の所定の候補数を見つけ出すことができ、推論計算処理を早めに終了して推論計算処理時間を短縮することができる。
【0048】
<学習済みモデル実行装置10aの推論計算処理>
次に、本実施形態に係る学習済みモデル実行装置10aの推論計算処理に係る動作について説明する。
図5は、学習済みモデル実行装置10aの推論計算処理について説明するフローチャートである。
なお、ステップS26からステップS28の処理は、
図3の第1実施形態のステップS17からステップS19と同様であり、説明は省略する。
【0049】
ステップS21において、取得部110aは、データベース70から学習済みモデルを取得する。
【0050】
ステップS22において、取得部110aは、撮像装置40から推論用画像データを取得する。
【0051】
ステップS23において、前処理部120aの画像処理部122は、ステップS22で取得された推論用画像データに対して画像処理を行い、推論用画像データの全領域から特徴点を抽出する。
【0052】
ステップS24において、前処理部120aのバッチ処理部121aは、ステップS23で抽出された特徴点に基づいてステップS22で取得された推論用画像データ上に特徴点が集中している局所画像領域が1つの推論用サブ画像となるように推論用画像を分割し、特徴点が少ない又は1つも存在しない局所画像領域が1つの推論用サブ画像となるように推論用画像データを分割する処理を行う。
【0053】
ステップS25において、評価スコア計算部132aは、特徴点の数に基づいてステップS24において分割された各推論用サブ画像データに評価スコアを付与する。
【0054】
以上により、第2実施形態に係る学習済みモデル実行装置10aは、撮像装置40から推論用画像データと、データベース70から学習済みモデルと、をそれぞれ取得する。学習済みモデル実行装置10aは、取得した推論用画像データに対して画像処理を行い、推論用画像データの全領域から特徴点を抽出し、抽出した特徴点に基づいて推論用画像データを特徴点が集中している推論用サブ画像データと特徴点が少ない又は1つも存在しない推論用サブ画像データとに分割する。学習済みモデル実行装置10aは、各推論用サブ画像領域内の特徴点の数に基づいて、推論用画像データを分割して生成された各推論用サブ画像データに評価スコアを付与し、付与した評価スコアの情報に基づいて推論計算処理を行う複数の推論用サブ画像データの推論計算処理順番を最適化する。
これにより、学習済みモデル実行装置10aは、ロボット30が長く待機することなく短時間で推論計算処理を実行することができる。
また、学習済みモデル実行装置10aは、通常の安価なCPUデバイスを使用して高速に推論を実行することができ、低いコストで生産ラインに求められる高い生産効率を実現することができる。
以上、第2実施形態について説明した。
【0055】
<第3実施形態>
次に、第3実施形態について説明する。上述したように、推論計算処理において、第1実施形態ではトレーニング画像データのサイズに合わせて推論用画像データをバッチ処理で分割し、分割された複数の推論用サブ画像データそれぞれに対する画像特徴分析から特徴量を抽出し、複数の推論用サブ画像データそれぞれの特徴量とトレーニング画像データの特徴量とのマッチング結果に基づいて複数の推論用サブ画像データそれぞれに評価スコアを付与し、付与された評価スコアの値による優先順位に基づいて複数の推論用サブ画像データの推論計算処理順番を最適化する。第2実施形態では推論用画像データを画像処理することにより特徴点を抽出し、特徴点の数に応じて推論用画像データをバッチ処理で分割し、特徴点の数に基づいて複数の推論用サブ画像データそれぞれに評価スコアを付与する。これに対して、第3実施形態では3次元計測機45で取得されたワークがバラ積みで重なり合う状態の3次元点群データ(又は距離画像データ)に基づいて推論用画像データをバッチ処理で分割し、分割された複数の推論用サブ画像データそれぞれにおける所定の高さに基づいて複数の推論用サブ画像データそれぞれに評価スコアを付与する点で、第1実施形態及び第2実施形態と相違する。
これにより、第3実施形態に係る学習済みモデル実行装置10bは、ロボット30が長く待機することなく短時間で推論計算処理を実行することができる。
以下、第3実施形態について説明する。
【0056】
図6は、第3実施形態に係るロボットシステム1Aの構成の一例を示す図である。なお、
図1のロボットシステム1の要素と同様の機能を有する要素については、同じ符号を付し、詳細な説明は省略する。
図6に示すように、ロボットシステム1Aは、学習済みモデル実行装置10b、ロボット制御装置20、ロボット30、3次元計測機45、複数のワーク50、及びコンテナ60を有する。
ロボット制御装置20、及びロボット30は、第1実施形態に係るロボット制御装置20、及びロボット30と同等の機能を有する。
【0057】
3次元計測機45は、3次元計測機45の光軸に対して垂直な平面とコンテナ60内のばら積みされたワーク50の表面の各点との間の距離から換算した値を画素値とする3次元情報(以下、「距離画像」ともいう)を取得するように構成されてもよい。例えば、
図6に示すように、距離画像上のワーク50の点Aの画素値は、3次元計測機45の3次元座標系(X,Y,Z)のZ軸方向の、3次元計測機45とワーク50の点Aとの間の距離(3次元計測機45からの高さ)から換算したものである。すなわち、3次元座標系のZ軸方向は3次元計測機45の光軸方向である。また、3次元計測機45は、例えばステレオカメラ、又はロボット30の手先や移動装置に固定される1台のカメラ、カメラ1台とレーザスキャナや音波センサ等の距離センサの組み合わせにより構成され、コンテナ60内に積載の複数のワーク50の3次元点群データを取得してもよい。このように取得した3次元点群データは、3次元空間上のあらゆる視点から確認できる3Dビューの中で表示可能であり、コンテナ60に積載の複数のワーク50の重なり合う状態を3次元的に確認できる離散化されたデータである。
また、3次元計測機45は、3次元点群データ又は距離画像とともに、グレースケール画像又はRGB画像等の2次元画像を取得してもよい。なお、ロボットシステム1Aは、3次元計測機45とは異なるデジタルカメラ等の撮像装置(図示しない)を含み、学習済みモデル実行装置10bは、3次元計測機45から3次元点群データ又は距離画像とともに撮像装置(図示しない)から2次元画像を取得してもよい。
【0058】
<学習済みモデル実行装置10b>
図7は、第3実施形態に係る学習済みモデル実行装置10bの機能的構成例を示す機能ブロック図である。なお、
図1の学習済みモデル実行装置10の要素と同様の機能を有する要素については、同じ符号を付し、詳細な説明は省略する。
学習済みモデル実行装置10bは、制御部11bを有する。また、制御部11bは、取得部110b、前処理部120b、及び実行部130bを有する。また、取得部110bは、データ保存部111を有する。また、前処理部120bは、バッチ処理部121b、及び3次元処理部123を有する。また、実行部130bは、評価スコア計算部132b、最適化計算部133、推論計算処理部134、及び推論結果保存部135を有する。
【0059】
<取得部110b>
取得部110bは、例えば、推論用データとしての画像データとともに、3次元点群データ又は距離画像を3次元計測機45から取得する。また、取得部110bは、クラウド又はエッジデバイス上のデータベース70から学習済みモデルを取得する。取得部110bは、取得した学習済みモデル、3次元点群データ又は距離画像、及び画像データをデータ保存部111に保存する。
なお、データ保存部111は、第1実施形態に係るデータ保存部111と同等の機能を有する。
【0060】
<前処理部120b>
前処理部120bは、3次元点群データ又は距離画像データに基づいて推論用画像データのバッチ処理の最適化を行い、複数の推論用サブ画像データを生成するように構成されてもよい。
具体的には、前処理部120bの3次元処理部123は、例えば、コンテナ60内にバラ積みされた複数のワーク50を2次元、3次元的に計測することにより取得した推論用画像データと3次元点群データ(又は距離画像データ)との照らし合わせを行う。これにより、3次元処理部123は、推論用画像データ上の各画素位置に対応している現実世界の3次元位置のコンテナ60の底からの高さ(「所定の高さ」ともいう)の分布を分析することができる。3次元処理部123は、所定の高さの分布の分析結果を3次元処理結果データとしてバッチ処理部121bに出力する。
【0061】
ここで、バッチ処理部121bは、所定の高さの分布情報が含まれる3次元処理結果データを受け取り、推論用画像データ上の各画素位置に対応している所定の高さの差を反映して推論用画像データを複数の推論用サブ画像データに分割してもよい。
すなわち、推論用画像データのバッチ処理の段階で、推論用画像データをワーク50が多く存在し優先して推論計算処理すべき推論用サブ画像データと、推論計算してもワーク50が少ない又は1つも存在しない推論用サブ画像データとに分割することで、後述する実行部130bは推論計算処理順番の最適化を効率よくスムーズに行うことができる。
なお、前述の閾値は、要求される推論計算処理の精度や処理速度等に応じて適宜決定されることが好ましいが、工場の生産ラインの生産要求に応じて決定されてもよい。
【0062】
<実行部130b>
実行部130bは、3次元点群データ又は距離画像データに基づいて複数の推論用サブ画像データの推論計算処理順番の最適化を行い、予め指定された探索目標に達成するまでに、最適化された推論計算処理順番で必要な分だけの複数の推論用サブ画像データそれぞれと学習済みモデルとに基づいて推論用データの推論計算処理を実行するように構成されてもよい。
例えば、実行部130bの評価スコア計算部132bは、コンテナ60内に複数のワーク50がバラ積みされている場合、所定の高さが閾値以上の高い推論用サブ画像データに高い評価スコアを付与し、当該推論用サブ画像データに対する推論計算処理を優先的に行うようにしてもよい。一方、評価スコア計算部132bは、所定の高さが閾値より低い推論用サブ画像データに低い評価スコアを付与し、当該推論用サブ画像データに対する推論計算処理を行わないようにして推論計算処理の最適化を行ってもよい。これにより、学習済みモデル実行装置10bは、莫大な画像データから予め指定した目標の候補数の対象のワーク50を短い推論計算処理時間内で見つけ出すことができる。
【0063】
ところで、3次元計測機45の性能や照明条件によって3次元計測が失敗して3次元データを取得できなかった(データ抜け)領域が存在することもある。
そこで、評価スコア計算部132bは、前処理部120bのバッチ処理部121bにより出力された複数の推論用サブ画像データに対して、対応している3次元データの中にデータ抜け領域がより大きくて多いような推論用サブ画像データの推論計算処理の優先度を下げるようにしてもよい。そうすることで、学習済みモデル実行装置10bは、無駄な推論計算処理をなくして、推論計算処理時間を短縮することができる。
【0064】
なお、最適化計算部133、推論計算処理部134、及び推論結果保存部135は、第1実施形態に係る最適化計算部133、推論計算処理部134、及び推論結果保存部135と同等の機能を有する。
【0065】
<学習済みモデル実行装置10bの推論計算処理>
次に、本実施形態に係る学習済みモデル実行装置10bの推論計算処理に係る動作について説明する。
図8は、学習済みモデル実行装置10bの推論計算処理について説明するフローチャートである。
なお、ステップS36からステップS38の処理は、
図3の第1実施形態のステップS17からステップS19と同様であり、説明は省略する。
【0066】
ステップS31において、取得部110bは、データベース70から学習済みモデルを取得する。
【0067】
ステップS32において、取得部110bは、3次元計測機45から推論用画像データ、及び3次元点群データ又は距離画像を取得する。
【0068】
ステップS33において、3次元処理部123は、ステップS32で取得された3次元点群データ又は距離画像に基づいて推論用画像データの所定の高さの分布を分析し、3次元処理結果データを出力する。
【0069】
ステップS34において、バッチ処理部121bは、ステップS33で出力された3次元処理結果データに基づいて推論用画像データを複数の推論用サブ画像データに分割する。
【0070】
ステップS35において、評価スコア計算部132bは、3次元点群データ又は距離画像に基づいて各推論用サブ画像データに評価スコアを付与する。
【0071】
以上により、第3実施形態に係る学習済みモデル実行装置10bは、3次元計測機45から推論用画像データ、及び3次元点群データ又は距離画像と、データベース70から学習済みモデルと、をそれぞれ取得する。学習済みモデル実行装置10bは、3次元点群データ又は距離画像に基づいて推論用画像データの所定の高さの分布を分析し、分析した3次元処理結果データに基づいて推論用画像データを複数の推論用サブ画像データに分割する。学習済みモデル実行装置10bは、3次元点群データ又は距離画像に基づいて各推論用サブ画像データに評価スコアを付与し、評価スコアの情報に基づいて推論計算処理を行う複数の推論用サブ画像データの推論計算処理順番を最適化する。
これにより、学習済みモデル実行装置10bは、ロボット30が長く待機することなく短時間で推論計算処理を実行することができる。
また、学習済みモデル実行装置10bは、通常の安価なCPUデバイスを使用して高速に推論を実行することができ、低いコストで生産ラインに求められる高い生産効率を実現することができる。
以上、第3実施形態について説明した。
【0072】
<第3実施形態の変形例1>
第3実施形態に係る学習済みモデル実行装置10bは、3次元計測機45から推論用画像データ、及び3次元点群データ又は距離画像も取得し利用し、バラ積みされた複数のワーク50を取り出す場合を説明したが、これに限定されない。ワーク50の種類、形状、サイズ、色、個数、積載状態などにも限定されない。
例えば、ロボット30が複数のワーク50が重なり合う状態のない平積み状態や箱形状のワーク50の積荷状態(例えば、段ボールの段積み状態)からワーク50を取り出すタスクを実行するための推論を行うシステムに適用してもよい。
【0073】
<第3実施形態の変形例2>
第3実施形態では、学習済みモデル実行装置10bは、データベース70から学習済みモデルのみを取得したが、トレーニング画像データもデータベース70から取得してもよい。
図9は、トレーニング画像データも取得する場合の第3実施形態の変形例に係る学習済みモデル実行装置10bの機能的構成例を示す機能ブロック図である。なお、
図7の学習済みモデル実行装置10b、及び
図4の学習済みモデル実行装置10aの要素と同様の機能を有する要素については、同じ符号を付し、詳細な説明は省略する。
【0074】
図9に示すように、取得部110bは、データベース70から学習済みモデル、及びトレーニング画像データを取得する。
また、前処理部120aの画像処理部122は、第2実施形態と同様に、トレーニング画像データと推論用画像データとに画像処理を行い、バッチ処理部121aは、画像処理結果に基づいて推論用画像データのバッチ処理で複数の推論用サブ画像データに分割するように構成されてもよい。
なお、実行部130b、評価スコア計算部132b、最適化計算部133、推論計算処理部134、及び推論結果保存部135は、第3実施形態に係る評価スコア計算部132b、最適化計算部133、推論計算処理部134、及び推論結果保存部135と同等の機能を有する。
【0075】
これにより、学習済みモデル実行装置10bは、データベース70からトレーニング画像データを取得する場合でもロボット30が長く待機することなく短時間で推論計算処理を実行することができる。また、学習済みモデル実行装置10bは、通常の安価なCPUデバイスを使用して高速に推論を実行することができ、低いコストで生産ラインに求められる高い生産効率を実現することができる。
【0076】
以上、第1実施形態、第2実施形態、及び第3実施形態について説明したが、学習済みモデル実行装置10、10a、10bは、上述の実施形態に限定されるものではなく、目的を達成できる範囲での変形、改良等を含む。
【0077】
<変形例1>
上述の第1実施形態、第2実施形態、及び第3実施形態では、学習済みモデル実行装置10、10a、10bは、ロボット制御装置20と異なる装置として例示したが、学習済みモデル実行装置10、10a、10bの一部又は全部の機能を、ロボット制御装置20が備えるように構成されてもよい。
あるいは、学習済みモデル実行装置10の取得部110、前処理部120、及び実行部130の一部又は全部を、例えば、サーバが備えるようにしてもよい。また、学習済みモデル実行装置10aの取得部110a、前処理部120a、及び実行部130aの一部又は全部を、例えば、サーバが備えるようにしてもよい。また、学習済みモデル実行装置10bの取得部110b、前処理部120b、及び実行部130bの一部又は全部を、例えば、サーバが備えるようにしてもよい。また、クラウド上で仮想サーバ機能等を利用して、学習済みモデル実行装置10、10a、10bの各機能を実現してもよい。
さらに、学習済みモデル実行装置10、10a、10bは、学習済みモデル実行装置10、10a、10bの各機能を適宜複数のサーバに分散される、分散処理システムとしてもよい。
【0078】
<変形例2>
また例えば、上述の第1実施形態に係る学習済みモデル実行装置10は、ロボット30がコンテナ60内にバラ積みされた複数のワーク50を取り出す場合において画像データに基づいて機械学習して生成された学習済みモデルを実行するケースであって、機械学習を行う際に用いたトレーニング画像データのサイズに基づいて推論用画像データをバッチ処理で複数の推論用サブ画像データに分割し、トレーニング画像データ及び複数の推論用サブ画像データのそれぞれから抽出した局所特徴量に基づいてトレーニング画像データと各推論用サブ画像データとのマッチング処理を行うように構成された。そして、学習済みモデル実行装置10は、マッチング度に応じて複数の推論用サブ画像データそれぞれに評価スコアを付与し、評価スコアに基づいて複数の推論用サブ画像データの推論計算処理順番を最適化し、最適化された推論計算処理順番に基づいて複数の推論用サブ画像データの推論計算処理を行い、ロボット30が取り出すワーク50の取り出し位置候補を計算した実施例を説明したが、ロボット30がコンテナ60内にバラ積みされた複数のワーク50を取り出す場合において画像データに基づいて機械学習して生成された学習済みモデルを実行するケースに限定されない。ワーク50の種類、形状、サイズ、色、個数、積載状態等にも限定されない。
例えば、ロボット30が複数のワーク50が重なり合う状態のない平積み状態や箱形状のワーク50の積荷状態(例えば、段ボールの段積み状態)からワーク50を取り出すタスクを実行するための推論を行うシステムに適用してもよい。
例えば、学習済みモデル実行装置10は、ロボット30がコンテナ60内にバラ積みされた複数のワーク50を取り出すシステムに換えて、例えば複数人の会話又は会議中の音声データに基づいて任意のタスクを実行するための推論を行うシステムに適用してもよい。この場合、画像データを音声データに換えて、音声のトレーニングデータ(以下、「トレーニング音声データ」ともいう)に基づいて音声の推論用データ(以下、「推論用音声データ」ともいう)をバッチ処理で複数の推論用サブ音声データに分割し、トレーニング音声データ及び複数の推論用サブ音声データから抽出した特徴量に基づいてトレーニング音声データと各推論用サブ音声データとのマッチング処理を行うようにしてもよい。そして、学習済みモデル実行装置10は、第1実施形態と同様の手法を適用して、マッチング度に応じて複数の推論用サブ音声データそれぞれに評価スコアを付与し、評価スコアに基づいて複数の推論用サブ音声データの推論計算処理順番を最適化し、最適化された推論計算処理順番に基づいて複数の推論用サブ音声データの推論計算処理を行い、莫大な音声データから規定したトレーニング音声データである会話内容(例えば、「イヌ(犬)」、「ネコ(猫)」、「テンキ(天気)」等の特定の目標キーワードに関連する内容)を短い推論計算処理時間内で見つけ出すようにしてもよい。そうすることで、学習済みモデル実行装置10は、例えば、複数人の会話又は会議中の音声データに基づいて会話内容を推論して認識するシステムの場合、規定の音声データ、例えば人の音声データが含まれない領域(音声データをセル化した場合は、複数のセル群となる。以下、「セル群」ともいう)を含む推論用サブ音声データに対する無駄な推論計算処理を回避でき、推論計算処理時間を短縮することができる。
【0079】
あるいは、学習済みモデル実行装置10は、ロボット30がコンテナ60内にバラ積みされた複数のワーク50を取り出すシステムに換えて、例えば文字データに基づいて任意のタスクを実行するための推論を行うシステムとして、文字データに基づいて機械学習して生成される学習済みモデルを実行するケースにも適用することができる。具体的には、画像データを文字データに換えて、第1実施形態と同様の手法を適用して、文字のトレーニングデータ(以下、「トレーニング文字データ」ともいう)に基づいて文字の推論用データ(以下、「推論用文字データ」ともいう)をバッチ処理で複数の推論用サブ文字データに分割し、トレーニング文字データ及び複数の推論用サブ文字データのそれぞれから抽出した特徴量に基づいてトレーニング文字データと各推論用サブ文字データとのマッチング処理を行ってもよい。そして、学習済みモデル実行装置10は、マッチング度に応じて複数の推論用サブ文字データそれぞれに評価スコアを付与し、評価スコアに基づいて複数の推論用サブ文字データの推論計算処理順番を最適化し、最適化された推論計算処理順番に基づいて複数の推論用サブ文字データの推論計算処理を行い、莫大な文字データから規定したトレーニング文字データ(例えば、「年」、「月」、「日」等の特定の目標キーワードに関連する内容)を短い推論計算処理時間内で見つけ出すようにしてもよい。そうすることで、学習済みモデル実行装置10は、例えば、ロボット30の故障履歴データ(文字データ)に基づいて所定の故障(例えば、減速機の故障件数と故障時間と場所)を特定する場合、規定の文字データ(例えば、「減速機」という目標キーワード)を含まない領域(文字データをセル化した場合は、複数のセル群となる。以下、「セル群」ともいう)を含む推論用サブ文字データに対する無駄な推論計算処理を回避でき、推論計算処理時間を短縮することができる。
以下、より具体的に推論用データが(a)音声データの場合と、(b)文字データの場合と、についてそれぞれ説明する。
【0080】
(a)推論用データが音声データの場合について
図10は、推論用データが音声データの場合の学習済みモデル実行装置10の機能的構成例を示す機能ブロック図である。なお、
図2の学習済みモデル実行装置10の要素と同様の機能を有する要素については、同じ符号を付し、詳細な説明は省略する。
また、この場合の学習済みモデルは、例えば、各推論用サブ音声データを入力し、トレーニング音声データ上に教示ラベルとして付けられた規定の会話内容(例えば、「イヌ(犬)」、「ネコ(猫)」、「テンキ(天気)」等の特定の目標キーワード)を含むか否かの割合等を示す情報を出力するものとする。
【0081】
取得部110は、例えば、マイクとコンピュータとの組み合わせ、又は内蔵マイクを有するコンピュータ、スマートフォンやタブレット端末、ビデオカメラ等の録音装置80から推論用データとして音声データを取得するようにしてもよい。
【0082】
前処理部120のバッチ処理部121は、
図2の推論用画像データの場合と同様に、トレーニング音声データのサイズを最小限のサイズとして推論用音声データをバッチ処理で分割し、複数の推論用サブ音声データとして生成し出力するようにしてもよい。
【0083】
実行部130は、
図2の推論用画像データの場合と同様に、トレーニング音声データとのマッチング度に基づいて、前処理部120のバッチ処理で分割された複数の推論用サブ音声データそれぞれに評価スコアを付与し、付与された複数の評価スコアの値の大きさに従って決まる優先順位に基づいて、複数の推論用サブ音声データの推論計算処理順番の最適化を行うように構成されてもよい。
具体的には、特徴分析部131は、例えば、トレーニング音声データの特徴分析(例えば、周波数特徴分析)を行い、教示ラベルとして付けられた規定の会話内容(例えば、「イヌ(犬)」、「ネコ(猫)」、「テンキ(天気)」等の特定の目標キーワード)の音声データの特徴量(以下、「周波数特徴分析結果」ともいう)Bを抽出する。また、特徴分析部131は、前処理部120のバッチ処理で分割されたm個の推論用サブ音声データAUD1、AUD2、…AUDmに対しても周波数特徴分析を行い、周波数特徴分析結果を抽出する(mは2以上の整数)。例えば、特徴分析部131は、推論用サブ音声データAUD1から周波数特徴分析結果B11、B12を抽出し、推論用サブ音声データAUD2から周波数特徴分析結果B21、B22、B23を抽出し、推論用サブ音声データAUD3から周波数特徴分析結果B31、B32、B33、B34を抽出したとする。特徴分析部131は、抽出した周波数特徴分析結果B11、B12、B21、B22、B23、B31、B32、B33、B34それぞれと、トレーニング音声データの周波数特徴分析結果Bと、のマッチング処理を行い、マッチング処理の分析結果データを評価スコア計算部132に出力する。
【0084】
評価スコア計算部132は、特徴分析部131により出力された分析結果データを受け取り、例えば推論用サブ音声データAUD2がマッチング度の高い周波数特徴分析結果(例えば、B22)を含む場合、推論用サブ音声データAUD2に高い評価スコア(例えば、70点等)を付与する。また、評価スコア計算部132は、例えば1つの推論用サブ音声データAUD3がマッチング度の高い複数の周波数特徴分析結果(例えば、B32、B34)を含む場合、推論用サブ音声データAUD3にさらに高い評価スコア(例えば、80点等)を付与する。評価スコア計算部132は、このように付与した評価スコアを最適化計算部133に出力する。
【0085】
最適化計算部133は、評価スコア計算部132により出力された評価スコアの情報に基づいて、高い評価スコアを有する推論用サブ音声データから順に優先的に推論計算処理するように高い優先順位を付与する。最適化計算部133は、前処理部120のバッチ処理で分割されたm個の推論用サブ音声データの推論計算処理順番の最適化を行い、最適化された推論計算処理順番の処理順番リストを生成する。最適化計算部133は、生成した処理順番リストを推論計算処理部134に出力する。
なお、最適化計算部133は、低い評価スコアを有する推論用サブ音声データを推論計算処理しないように処理順番リストから削除するようにしてもよい。
【0086】
推論計算処理部134は、最適化計算部133から受信した処理順番リストの情報と、前処理部120のバッチ処理で分割されたm個の推論用サブ音声データと、学習済みモデルとに基づいて推論計算処理を行う。推論計算処理部134は、推論計算処理の推論結果データを推論結果保存部135に保存する。
【0087】
このように、高い評価スコアを有する推論用サブ音声データには目標の教示ラベルに付けられた特定の目標キーワードを含む可能性が高いことから、学習済みモデル実行装置10は、高い評価スコアを有する推論用サブ音声データから優先的に推論計算処理する。そうすることで、学習済みモデル実行装置10は、予め規定した会話内容を早めに見つけ出すことができ、推論計算処理を早めに終了して推論計算処理時間を短縮することができる。換言すれば、学習済みモデル実行装置10は、低い評価スコアを有する推論用サブ音声データには目標キーワードを含む可能性が低いことから、低い評価スコアを有する推論用サブ音声データの推論計算処理をしないようにすることで、無駄な計算処理時間をなくすことができる。すなわち、学習済みモデル実行装置10は、莫大な音声データから規定した会話内容を短い推論計算処理時間内で見つけ出すことができる。
【0088】
(b)推論用データが文字データの場合について
図11は、推論用データが文字データの場合の学習済みモデル実行装置10の機能的構成例を示す機能ブロック図である。なお、
図2の学習済みモデル実行装置10の要素と同様の機能を有する要素については、同じ符号を付し、詳細な説明は省略する。
また、この場合の学習済みモデルは、例えば、各推論用サブ文字データを入力し、トレーニング文字データ上に教示ラベルとして付けられた規定の文字データ(例えば、時間を表す「年」、「月」、「日」等の特定の目標キーワード)を含むか否かの割合等を示す情報を出力するものとする。
【0089】
取得部110は、例えば、紙に記録されている文字データの画像を取得するスキャナ、カメラ、スキャン機能付きのプリンタ、又は手書き入力可能なタッチパネル等のスキャン装置90から推論用データとして文字データを取得するようにしてもよい。
【0090】
前処理部120のバッチ処理部121は、
図2の推論用画像データの場合と同様に、トレーニング文字データのサイズを最小限のサイズとして推論用文字データをバッチ処理で分割し、複数の推論用サブ文字データとして生成し出力するようにしてもよい。
【0091】
実行部130は、
図2の推論用画像データの場合と同様に、トレーニング文字データとのマッチング度に基づいて、前処理部120のバッチ処理で分割された複数の推論用サブ文字データそれぞれに評価スコアを付与し、付与された複数の評価スコアの値の大きさに従って決まる優先順位に基づいて、複数の推論用サブ文字データの推論計算処理順番の最適化を行うように構成されてもよい。
具体的には、特徴分析部131は、例えば、トレーニング文字データの特徴分析(例えば、文字の縦横比率、X軸を中心とした対称性、Y軸を中心とした対称性等の特徴分析)を行い、教示ラベルとして付けられた規定の文字データ(例えば、時間を表す「年」、「月」、「日」のような特定の目標キーワード)の特徴量(以下、「特徴分析結果」ともいう)Cを抽出する。また、特徴分析部131は、前処理部120のバッチ処理で分割されたk個の推論用サブ文字データMOJI1、MOJI2、…MOJIkに対しても同じ特徴分析を行い、特徴分析結果を抽出する(kは2以上の整数)。例えば、特徴分析部131は、推論用サブ文字データMOJI1から特徴分析結果C11、C12を抽出し、推論用サブ文字データMOJI2から特徴分析結果C21、C22、C23を抽出し、推論用サブ文字データMOJI3から特徴分析結果C31、C32、C33、C34を抽出したとする。特徴分析部131は、抽出した特徴分析結果C11、C12、C21、C22、C23、C31、C32、C33、C34それぞれと、トレーニング文字データの特徴分析結果Cと、のマッチング処理を行い、マッチング処理の分析結果データを評価スコア計算部132に出力する。
【0092】
評価スコア計算部132は、特徴分析部131により出力された分析結果データを受け取り、例えば推論用サブ文字データMOJI2がマッチング度の高い特徴分析結果(例えば、C22)を含む場合、推論用サブ文字データMOJI2に高い評価スコア(例えば、70点等)を付与する。また、評価スコア計算部132は、例えば1つの推論用サブ文字データMOJI3がマッチング度の高い複数の特徴分析結果(例えば、C32、C34)を含む場合、推論用サブ文字データMOJI3にさらに高い評価スコア(例えば、80点等)を付与する。評価スコア計算部132は、このように付与した評価スコアを最適化計算部133に出力する。
【0093】
最適化計算部133は、評価スコア計算部132により出力された評価スコアの情報に基づいて、高い評価スコアを有する推論用サブ文字データから順に優先的に推論計算処理するように高い優先順位を付与する。最適化計算部133は、前処理部120のバッチ処理で分割されたk個の推論用サブ文字データの推論計算処理順番の最適化を行い、最適化された推論計算処理順番の処理順番リストを生成する。最適化計算部133は、生成した処理順番リストを推論計算処理部134に出力する。
なお、最適化計算部133は、低い評価スコアを有する推論用サブ文字データを推論計算処理しないように処理順番リストから削除するようにしてもよい。
【0094】
推論計算処理部134は、最適化計算部133から受信した処理順番リストの情報と、前処理部120のバッチ処理で分割されたk個の推論用サブ文字データと、学習済みモデルとに基づいて推論計算処理を行う。推論計算処理部134は、推論計算処理の推論結果データを推論結果保存部135に保存する。
【0095】
これにより、高い評価スコアを有する推論用サブ文字データには目標の教示ラベルに付けられた特定の目標キーワードを含む可能性が高いことから、学習済みモデル実行装置10は、高い評価スコアを有する推論用サブ文字データから優先的に推論計算処理する。そうすることで、学習済みモデル実行装置10は、教示ラベルとして付けられた規定の文字データ(例えば、時間を表す「年」、「月」、「日」のような特定の目標キーワード)に基づいて「XXXX年XX月XX日に発生したロボット30の故障」等の文字データを早めに見つけ出すことができ、推論計算処理時間を短縮することができる。換言すれば、学習済みモデル実行装置10は、低い評価スコアを有する推論用サブ文字データには目標キーワードを含む可能性が低いことから、低い評価スコアを有する推論用サブ文字データの推論計算処理をしないようにすることで、無駄な計算処理時間をなくすことができる。すなわち、学習済みモデル実行装置10は、莫大な文字データから規定した文字データを短い推論計算処理時間内で見つけ出すことができる。
【0096】
<変形例3>
また例えば、上述の第2実施形態に係る学習済みモデル実行装置10aは、ロボット30がコンテナ60内にバラ積みされた複数のワーク50を取り出す場合において画像データに基づいて機械学習して生成された学習済みモデルを実行するケースであって、撮像装置40から推論用画像データと、データベース70から学習済みモデルとを取得し、取得した推論用画像データに対して画像処理を行い、推論用画像データから抽出した特徴点に基づいて推論用画像データを特徴点が集中している推論用サブ画像データと特徴点が少ない又は1つも存在しない推論用サブ画像データとに分割する。そして、学習済みモデル実行装置10aは、各推論用サブ画像データの特徴点の数に基づいて各推論用サブ画像データに評価スコアを付与し、評価スコアに基づいて複数の推論用サブ画像データの推論計算処理順番を最適化し、最適化された推論計算処理順番に基づいて複数の推論用サブ画像データの推論計算処理を行い、ロボット30が取り出すワーク50の取り出し位置候補を計算する実施例を説明したが、ロボット30がコンテナ60内にバラ積みされた複数のワーク50を取り出す場合において画像データに基づいて機械学習して生成された学習済みモデルを実行するケースに限定されない。ワーク50の種類、形状、サイズ、色、個数、積載状態等にも限定されない。
例えば、ロボット30が複数のワーク50が重なり合う状態のない平積み状態や箱形状のワーク50の積荷状態(例えば、段ボールの段積み状態)からワーク50を取り出すタスクを実行するための推論を行うシステムに適用してもよい。
また、変形例2と同様に、例えば複数人の会話又は会議中の録音された音声データに基づいて任意のタスクを実行するための推論を行うシステムに適用してもよい。例えば、学習済みモデル実行装置10aは、マイク等の録音装置から音声の推論用データ(以下、「推論用音声データ」ともいう)と、データベース70から学習済みモデルとを取得し、取得した推論用音声データに対して特徴分析(例えば、周波数分析)を行い、推論用音声データから抽出した周波数分析結果に基づいて複数の推論用サブ音声データに分割して各推論用サブ音声データに評価スコアを付与してもよい。そして、学習済みモデル実行装置10aは、評価スコアに基づいて複数の推論用サブ音声データの推論計算処理順番を最適化し、最適化された推論計算処理順番に基づいて複数の推論用サブ音声データの推論計算処理を行い、莫大な音声データから規定した会話内容(例えば、「イヌ(犬)」、「ネコ(猫)」、「テンキ(天気)」等の人の音声データ)を短い推論計算処理時間内で見つけ出すようにしてもよい。そうすることで、学習済みモデル実行装置10aは、例えば、規定の会話内容を特定する場合、規定の音声データ、すなわち人の音声が含まれない領域(セル群)を含む推論用サブ音声データに対する無駄な推論計算処理を回避でき、推論計算処理時間を短縮することができる。
【0097】
あるいは、学習済みモデル実行装置10aは、ロボット30がコンテナ60内にバラ積みされた複数のワーク50を取り出すシステムに換えて、例えば文字データに基づいて任意のタスクを実行するための推論を行うシステムとして、文字データに基づいて機械学習して生成される学習済みモデルを実行するケースにも適用することができる。具体的には、画像データを文字データに換えて、第2実施形態と同様の手法を適用して、スキャナ等のスキャン装置から文字の推論用データ(以下、「推論用文字データ」ともいう)と、データベース70から学習済みモデルとを取得し、取得した推論用文字データに対して特徴分析を行い、推論用文字データから抽出した特徴分析結果に基づいて複数の推論用サブ文字データに分割して各推論用サブ文字データに評価スコアを付与してもよい。そして、学習済みモデル実行装置10aは、評価スコアに基づいて複数の推論用サブ文字データの推論計算処理順番を最適化し、最適化された推論計算処理順番に基づいて複数の推論用サブ文字データの推論計算処理を行い、莫大な文字データから規定した文字データ(例えば、「都」、「道」、「府」、「県」、「市」、「郡」、「村」等)を短い推論計算処理時間内で見つけ出すようにしてもよい。そうすることで、学習済みモデル実行装置10aは、例えば、郵便物の送り先を特定し郵便物を送り先毎に振り分ける場合、規定の文字データである「都」~「村」を含まない領域(セル群)を含む推論用サブ文字データに対する推論計算処理を行わないことで無駄な推論計算処理を回避でき、推論計算処理時間を短縮することができる。
以下、より具体的に推論用データが(a)音声データの場合と、(b)文字データの場合と、についてそれぞれ説明する。
【0098】
(a)推論用データが音声データの場合について
図12は、推論用データが音声データの場合の学習済みモデル実行装置10aの機能的構成例を示す機能ブロック図である。なお、
図4の学習済みモデル実行装置10aの要素と同様の機能を有する要素については、同じ符号を付し、詳細な説明は省略する。
また、この場合の学習済みモデルは、例えば、各推論用サブ音声データを入力し、予め規定された会話内容(例えば、「イヌ(犬)」、「ネコ(猫)」、「テンキ(天気)」等の人の音声データ)を含むか否かの割合等を示す情報を出力するものとする。
【0099】
取得部110aは、例えば、マイクとコンピュータとの組み合わせ、又は内蔵マイクを有するコンピュータ、スマートフォンやタブレット端末、ビデオカメラ等の録音装置80から推論用データとして音声データを取得するようにしてもよい。
【0100】
前処理部120aは、推論用音声データの特徴分析を行い、特徴分析結果データに基づいて推論用音声データをバッチ処理で複数の推論用サブ音声データに分割するように構成されてもよい。
具体的には、前処理部120aの特徴分析部122aは、
図10の特徴分析部131に対応するものであり、推論用音声データに対して特徴分析(例えば、周波数特徴分析)を行い、特徴分析結果データを出力してもよい。特徴分析結果データ(周波数分析結果)として、推論用音声データのうち振幅が低すぎる領域には、特定したい人の音声による規定の会話内容(例えば、「イヌ(犬)」等)が含まれておらず、録音時の周囲環境ノイズしか含まれていないデータと見なすことができる。この場合、当該領域の音声データに対して推論計算処理を行い、特定したい人の音声による規定の会話内容を見つけようとしても推論計算処理時間を無駄にかかってしまうことになる。また、推論用音声データのうち振幅が高すぎる領域は、例えば、録音装置80が録音できる範囲を超えた音声データの部分であり、うまく音声データを取得できておらず欠けてしまっているデータである可能性が高い。このような領域の音声データに対して推論計算処理を行っても、うまく推論(認識)できない可能性が高い。
前処理部120aのバッチ処理部121aは、前述のような音声データの領域をそれぞれ切り出して推論計算処理しないような複数の推論用サブ音声データとして推論用音声データを分割してもよい。
また、推論用音声データの周波数分析結果の中で、ある波形が周期的に出現している場合、同じ人が同じ言葉を一定の時間内で復唱し続けていると推定でき、周期的に出現している波形を切り目として、バッチ処理部121aは推論用音声データをバッチ処理で複数の推論用サブ音声データに分割してもよい。
【0101】
実行部130aは、前処理部120aの特徴分析部122aにより出力された特徴分析結果データに基づいて、複数の推論用サブ音声データの推論計算処理順番の最適化を行うように構成されてもよい。
例えば、バッチ処理部121aは、周波数分析結果に基づいて複数の推論用サブ音声データを生成した場合、評価スコア計算部132aは、周波数分析結果に基づいて、例えば振幅が低すぎる又は高すぎる複数の推論用サブ音声データに低い評価スコアを付与し、最適化計算部133は、それらの推論計算処理の優先順位を下げて推論計算処理を行わないようにしてもよい。
これにより、長い会話の推論用音声データ中から特定の会話内容を探す時に、人の音声が入っていない環境ノイズを含む推論用サブ音声データや、録音装置80が録音できる範囲を超えてしまい、うまく取得できていない推論用サブ音声データに対する無駄な推論計算処理を行わないことで、推論用音声データの推論計算処理時間を短縮して、特定の会話内容を早く見つけることができる。すなわち、学習済みモデル実行装置10aは、例えば、規定の会話内容を特定する場合、規定の音声データ(すなわち人の音声)が含まれない領域(セル群)を含む推論用サブ音声データに対する無駄な推論計算処理を回避でき、推論計算処理時間を短縮することができる。
【0102】
(b)推論用データが文字データの場合について
図13は、推論用データが文字データの場合の学習済みモデル実行装置10aの機能的構成例を示す機能ブロック図である。なお、
図4の学習済みモデル実行装置10aの要素と同様の機能を有する要素については、同じ符号を付し、詳細な説明は省略する。
また、この場合の学習済みモデルは、例えば、郵便物の送り先を含む推論用サブ文字データを入力し、予め規定された文字データ(例えば、住所を特定するための「都」~「村」等の特定の目標キーワード)を含むか否かの割合等を示す情報を出力するものとする。
【0103】
取得部110aは、例えば、紙に記録されている文字データの画像を取得するスキャナ、カメラ、スキャン機能付きのプリンタ、又は手書き入力可能なタッチパネル等のスキャン装置90から推論用データとして文字データを取得するようにしてもよい。
【0104】
前処理部120aは、推論用文字データの特徴分析を行い、特徴分析結果データに基づいて推論用文字データをバッチ処理で複数の推論用サブ文字データに分割するように構成されてもよい。
具体的には、前処理部120aの特徴分析部122aは、
図11の特徴分析部131に対応するものであり、推論用文字データに対して特徴分析を行い、特徴分析結果データを出力してもよい。例えば、手書き住所の文字認識を行って郵便物の送り先に従って郵便物の自動分類を行うタスクを一例として説明する。取得部110aはデータ保存部111を備え、例えばスキャン装置90を用いて、郵便物の送り先が書かれている領域をスキャンした文字データを画像データとして登録し、さらにパソコン(図示しない)のHDD等の記録媒体に保存しておく。例えば、特徴分析部122aは、このように取得された一連の手書き文字の画像データの全領域をセル化する。特徴分析部122aは、例えば、小さい各セル内に文字の有無状態をデジタル化し、領域内に文字があるセルに対して「1」のラベルを付け、領域内に文字がないセルに対して「0」のラベルを付ける。このように、特徴分析部122aは、文字の画像データの全領域に対して「0」、「1」のラベルを付けることで抽出されるラベルの特徴マップを利用して、連続で「0」のラベルが付けられた領域を文字間のスペースとして認識して文字の区切りを付けることができる。さらに、特徴分析部122aは、分離された1つ1つの独立の文字に対して、印刷体の「都」、「道」、「府」、「県」、「市」、「郡」、「村」とのマッチングを行うことで、一連の手書き文字データの中から「都」、「道」、「府」、「県」、「市」、「郡」、「村」の文字が存在する領域(セル群)を特定することができる。特徴分析部122aは、このように得られたラベルの特徴マップと特定文字(「都」~「村」)の存在領域情報を特徴分析結果データとして出力する。
【0105】
前処理部120aのバッチ処理部121aは、特徴分析部122aにより出力された特徴分析結果データ(ラベルの特徴マップと特定文字である「都」~「村」の存在領域情報)を受け取って、特定文字である「都」~「村」が存在する領域(セル群)を区切りとして、推論用文字データをバッチ処理で分割し、複数の推論用サブ文字データとして生成して出力することができる。
【0106】
実行部130aは、前処理部120aの特徴分析部122aにより出力された特徴分析結果データに基づいて、複数の推論用サブ文字データの推論計算処理順番の最適化を行うように構成されてもよい。
例えば、前処理部120aのバッチ処理部121aにより複数の推論用サブ文字データを生成した場合、文字が存在しない領域(セル群)や、特定文字である「都」~「村」が含まれない領域(セル群)を含む推論用サブ文字データに対して推論計算処理を行っても、郵便物の送り先を特定する目標に対しては役の立たない無駄な推論計算処理を行うことになる。そこで、評価スコア計算部132aは、文字が存在しない領域(セル群)や、特定文字である「都」~「村」が含まれない領域(セル群)を含む推論用サブ文字データに低い評価スコアを付与し、それらの推論計算処理の優先順位を下げて推論計算処理を行わないようにしてもよい。また、評価スコア計算部132aは、特定文字である「都」~「村」が含まれる領域(セル群)を含む推論用サブ文字データに対して高い評価スコアを付与し、高い評価スコアが付与された推論計算処理を優先的に行うことで、早く郵便物の送り先を特定でき、郵便物の自動分類タスクの推論計算処理時間を短縮することができる。
【0107】
<変形例4>
また例えば、第2実施形態に係る学習済みモデル実行装置10aは、データベース70から学習済みモデルのみを取得したが、トレーニング画像データもデータベース70から取得してもよい。
図14は、トレーニング画像データも取得する場合の学習済みモデル実行装置10aの機能的構成例を示す機能ブロック図である。なお、
図4の学習済みモデル実行装置10aの要素と同様の機能を有する要素については、同じ符号を付し、詳細な説明は省略する。
【0108】
図14に示すように、取得部110aは、データベース70から学習済みモデル、及びトレーニング画像データを取得する。
前処理部120aは、トレーニング画像データと推論用画像データとの画像処理を行い、画像処理結果に基づいて推論用画像データのバッチ処理を行って複数の推論用サブ画像データに分割するように構成されてもよい。
具体的には、前処理部120aの画像処理部122は、
図2の実行部130の特徴分析部131として、トレーニング画像データに付けられたラベルが示す取り出し位置を含む近傍画像領域、及び推論用画像データそれぞれに対して画像処理を行い、例えば、特定な局所特徴量を抽出する。画像処理部122は、抽出されたトレーニング画像データ上のラベル付けられた教示位置の近傍画像の局所特徴量と、推論用画像データ上の複数箇所の局所特徴量それぞれとのマッチングを行い、マッチング度を計算し画像処理結果データとして出力してもよい。
【0109】
前処理部120aのバッチ処理部121aは、トレーニング画像データ上の教示位置の近傍画像とのマッチング度の高い推論用画像データ上の局所画像領域を独立した1つの推論用サブ画像データとなるように推論用画像データを分割する。また、バッチ処理部121aは、トレーニング画像データ上の教示位置の近傍画像とのマッチング度の低い推論用画像データ上の局所画像領域を独立した1つの推論用サブ画像データとなるように推論用画像データを分割する。
換言すれば、バッチ処理部121aは、取り出せる対象のワーク50が多く存在している可能性の高い局所画像領域を1つの推論用サブ画像データとなり、取り出せる対象のワーク50が少ない又は1つも存在しない局所画像領域を1つの推論用サブ画像データとなるように推論用画像データを分割して出力するようにしてもよい。
すなわち、優先して推論計算処理すべきワーク50を見つけられる可能性の高い推論用サブ画像データと、推論計算しても対象となるワーク50を見つけられない可能性の高い推論用サブ画像データとを、推論用画像データのバッチ処理の段階で見分けるようにすることで、実行部130aは推論計算処理順番の最適化を効率よくスムーズに行うことができる。
以上はバラ積みされた複数のワーク50を取り出す場合を説明したが、これに限定されない。ワーク50の種類、形状、サイズ、色、個数、積載状態などにも限定されない。例えば、ロボット30が複数のワーク50が重なり合う状態のない平積み状態や箱形状のワーク50の積荷状態(例えば、段ボールの段積み状態)からワーク50を取り出すタスクを実行するための推論を行うシステムに適用してもよい。
なお、推論用データは、推論用画像データとしたが、推論用音声データや推論用文字データ等でもよく、画像処理部122を特徴分析部131に置き換えれば、
図14に示す学習済みモデル実行装置10aに適用することができる。
【0110】
なお、第1実施形態における学習済みモデル実行装置10、第2実施形態における学習済みモデル実行装置10a、及び第3実施形態における学習済みモデル実行装置10bに含まれる各機能は、ハードウェア、ソフトウェア又はこれらの組み合わせによりそれぞれ実現することができる。ここで、ソフトウェアによって実現されるとは、コンピュータがプログラムを読み込んで実行することにより実現されることを意味する。
【0111】
プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(Non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(Tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えば、フレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば、光磁気ディスク)、CD-ROM(Read Only Memory)、CD-R、CD-R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM)を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(Transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は、無線通信路を介して、プログラムをコンピュータに供給できる。
【0112】
なお、記録媒体に記録されるプログラムを記述するステップは、その順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【0113】
以上を換言すると、本開示の推論計算処理装置、及び推論計算処理方法は、次のような構成を有する各種各様の実施形態を取ることができる。
【0114】
(1)本開示の推論計算処理装置としての学習済みモデル実行装置10は、学習済みモデルに推論用データを入力して推論用データの推論計算処理を実行する推論計算処理装置であって、推論用データと学習済みモデルとを取得する取得部110と、取得部110により取得された推論用データをバッチ処理で複数の推論用サブデータに分割する前処理部120と、前処理部120によりバッチ処理で分割された複数の推論用サブデータの推論計算処理順番を最適化し、最適化された推論計算処理順番で複数の推論用サブデータそれぞれと学習済みモデルとに基づいて推論用データの推論計算処理を実行する実行部130と、を備える。
この学習済みモデル実行装置10によれば、ロボット30が長く待機することなく短時間で推論計算処理を実行することができる。
【0115】
(2) (1)に記載の学習済みモデル実行装置10において、取得部110は、学習済みモデルを機械学習で生成する際に用いられたトレーニングデータを取得してもよい。
そうすることで、学習済みモデル実行装置10は、トレーニングデータのサイズに基づいて推論用データを分割することができる。
【0116】
(3) (2)に記載の学習済みモデル実行装置10において、前処理部120は、トレーニングデータのサイズに基づいて推論用データをバッチ処理で複数の推論用サブデータに分割してもよい。
そうすることで、学習済みモデル実行装置10は、分割後の推論用サブ画像のサイズが小さすぎて必要な画像特徴を含まず、その後に学習済みモデルを利用した推論計算処理でうまく推論できなくなることを防ぐことができる。
【0117】
(4) (2)又は(3)に記載の学習済みモデル実行装置10において、実行部130は、トレーニングデータと複数の推論用サブデータそれぞれとのマッチング処理を行い、複数の推論用サブデータそれぞれに対してマッチングの度合いに応じた評価スコアを付与し、付与された評価スコアによる優先順位に基づいて複数の推論用サブデータの推論計算処理順番を最適化してもよい。
そうすることで、例えば、コンテナ60内のバラ積みされた複数のワーク50を取り出す場合、学習済みモデル実行装置10は、マッチング度の低い推論用サブデータの推論計算処理を行っても取り出すワーク50の候補が見つからないような無駄な推論計算処理をなくすことができ、推論計算処理時間を短縮することができる。また、学習済みモデル実行装置10は、マッチング度の高い推論用サブデータの推論計算処理を優先的に行うことで、予め指定されたワーク50の候補数を早く見付けて推論計算処理を早めに終了させることができ、推論計算処理時間を短縮することができる。
【0118】
(5) (1)から(4)のいずれかに記載の学習済みモデル実行装置10において、取得部110は、推論用データとして画像データを取得してもよい。
そうすることで、学習済みモデル実行装置10は、ロボット30が取り出せるワーク50を見つけ出すことができる。
【0119】
(6) (5)に記載の学習済みモデル実行装置10aにおいて、前処理部120aは、推論用データとして取得された画像データの特徴量を抽出する画像処理を行ってもよい。
そうすることで、学習済みモデル実行装置10aは、トレーニングデータを取得しなくても推論用画像データを最適に複数の推論用サブ画像データに分割することができる。
【0120】
(7) (6)に記載の学習済みモデル実行装置10aにおいて、前処理部120aは、画像処理の結果に基づいて推論用データをバッチ処理で複数の推論用サブデータに分割してもよい。
そうすることで、学習済みモデル実行装置10aは、トレーニングデータを取得しなくても推論用画像データを最適に複数の推論用サブ画像データに分割することができる。
【0121】
(8) (6)又は(7)に記載の学習済みモデル実行装置10aにおいて、実行部130aは、画像処理の結果に基づいて複数の推論用サブデータそれぞれに評価スコアを付与し、付与された評価スコアによる優先順位に基づいて複数の推論用サブデータの推論計算処理順番を最適化してもよい。
そうすることで、学習済みモデル実行装置10aは、取り出すワーク50を含む可能性の低い推論用サブデータの推論計算処理を行っても取り出すワーク50の候補が見つからないような無駄な推論計算処理をなくすことができ、推論計算処理時間を短縮することができる。また、学習済みモデル実行装置10aは、取り出すワーク50を含む可能性の高い推論用サブデータの推論計算処理を優先的に行うことで、予め指定されたワーク50の候補数を早く見付けて推論計算処理を早めに終了させることができ、推論計算処理時間を短縮することができる。
【0122】
(9) (1)から(4)に記載の学習済みモデル実行装置10において、推論用データとして音声データを取得してもよい。
そうすることで、学習済みモデル実行装置10は、莫大な音声データから規定した会話内容を短い推論計算処理時間内で見つけ出すことができる。
【0123】
(10) (9)に記載の学習済みモデル実行装置10aにおいて、前処理部120aは、推論用データとして取得された音声データの特徴量を抽出する特徴分析を行ってもよい。
そうすることで、学習済みモデル実行装置10aは、トレーニングデータを取得しなくても推論用音声データを最適に複数の推論用サブ音声データに分割することができる。
【0124】
(11) (10)に記載の学習済みモデル実行装置10aにおいて、前処理部120aは、特徴分析の結果に基づいて推論用データをバッチ処理で複数の推論用サブデータに分割してもよい。
そうすることで、学習済みモデル実行装置10aは、トレーニングデータを取得しなくても推論用音声データを最適に複数の推論用サブ音声データに分割することができる。
【0125】
(12) (10)又は(11)に記載の学習済みモデル実行装置10aにおいて、実行部130aは、特徴分析の結果に基づいて複数の推論用サブデータそれぞれに評価スコアを付与し、付与された評価スコアによる優先順位に基づいて複数の推論用サブデータの推論計算処理順番を最適化してもよい。
そうすることで、学習済みモデル実行装置10aは、推論計算処理を行っても規定の会話内容が見つからないような無駄な推論計算処理をなくすことができ、推論計算処理時間を短縮することができる。また、学習済みモデル実行装置10aは、規定の会話内容を含む可能性の高い推論用サブデータの推論計算処理を優先的に行うことで、推論計算処理を早めに終了して推論計算処理時間を短縮することができる。
【0126】
(13) (1)から(4)に記載の学習済みモデル実行装置10において、推論用データとして文字データを取得してもよい。
そうすることで、学習済みモデル実行装置10は、莫大な文字データから規定した文字データを短い推論計算処理時間内で見つけ出すことができる。
【0127】
(14) (13)に記載の学習済みモデル実行装置10aにおいて、前処理部120aは、推論用データとして取得された文字データの特徴量を抽出する特徴分析を行ってもよい。
そうすることで、学習済みモデル実行装置10aは、トレーニングデータを取得しなくても推論用文字データを最適に複数の推論用サブ文字データに分割することができる。
【0128】
(15) (14)に記載の学習済みモデル実行装置10aにおいて、前処理部120aは、特徴分析の結果に基づいて推論用データをバッチ処理で複数の推論用サブデータに分割してもよい。
そうすることで、学習済みモデル実行装置10aは、トレーニングデータを取得しなくても推論用文字データを最適に複数の推論用サブ文字データに分割することができる。
【0129】
(16) (14)又は(15)に記載の学習済みモデル実行装置10aにおいて、実行部130aは、特徴分析の結果に基づいて複数の推論用サブデータそれぞれに評価スコアを付与し、付与された評価スコアによる優先順位に基づいて複数の推論用サブデータの推論計算処理順番を最適化してもよい。
そうすることで、学習済みモデル実行装置10aは、推論計算処理を行っても規定の文字データが見つからないような無駄な推論計算処理をなくすことができ、推論計算処理時間を短縮することができる。また、学習済みモデル実行装置10aは、規定の文字データを含む可能性の高い推論用サブデータの推論計算処理を優先的に行うことで、推論計算処理を早めに終了して推論計算処理時間を短縮することができる。
【0130】
(17) (1)から(4)に記載の学習済みモデル実行装置10bにおいて、取得部110bは、3次元計測データを取得してもよい。
そうすることで、学習済みモデル実行装置10bは、トレーニングデータを取得しなくても推論用データを最適に複数の推論用サブデータに分割することができる。
【0131】
(18) (17)に記載の学習済みモデル実行装置10bにおいて、前処理部120bは、3次元計測データに基づいて推論用データをバッチ処理で複数の推論用サブデータに分割してもよい。
そうすることで、学習済みモデル実行装置10bは、トレーニングデータを取得しなくても推論用データを最適に複数の推論用サブデータに分割することができる。
【0132】
(19) (17)又は(18)に記載の学習済みモデル実行装置10bにおいて、実行部130bは、3次元計測データに基づいて複数の推論用サブデータそれぞれに評価スコアを付与し、付与された評価スコアによる優先順位に基づいて複数の推論用サブデータの推論計算処理順番を最適化してもよい。
そうすることで、学習済みモデル実行装置10bは、取り出すワーク50を含む可能性の低い推論用サブデータの推論計算処理を行っても取り出すワーク50の候補が見つからないような無駄な推論計算処理をなくすことができ、推論計算処理時間を短縮することができる。また、学習済みモデル実行装置10bは、取り出すワーク50を含む可能性の高い推論用サブデータの推論計算処理を優先的に行うことで、予め指定されたワーク50の候補数を早く見付けて推論計算処理を早めに終了させることができ、推論計算処理時間を短縮することができる。
【0133】
(20)本開示の推論計算処理方法は、コンピュータにより実現される、学習済みモデルに推論用データを入力して推論用データの推論計算処理を実行する推論計算処理方法であって、推論用データと学習済みモデルとを取得する取得工程と、取得された推論用データをバッチ処理で複数の推論用サブデータに分割する前処理工程と、複数の推論用サブデータの推論計算処理順番を最適化し、最適化された推論計算処理順番で複数の推論用サブデータそれぞれと学習済みモデルとに基づいて推論用データの推論計算処理を実行する実行工程と、を備える。
この推論計算処理方法によれば、(1)と同様の効果を奏することができる。
【符号の説明】
【0134】
1、1A ロボットシステム
10、10a、10b 推論計算処理装置としての学習済みモデル実行装置
11、11a、11b 制御部
110、110a、110b 取得部
111 データ保存部
120、120a、120b 前処理部
121、121a、121b バッチ処理部
122 画像処理部
122a、131 特徴分析部
123 3次元処理部
130、130a、130b 実行部
132、132a、132b 評価スコア計算部
133 最適化計算部
134 推論計算処理部
135 推論結果保存部
20 ロボット制御装置
30 ロボット
40 撮像装置
45 3次元計測機
50 ワーク
60 コンテナ