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

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

▶ コニカミノルタ株式会社の特許一覧

特許7533003情報処理システム、情報処理方法及びプログラム
<>
  • 特許-情報処理システム、情報処理方法及びプログラム 図1
  • 特許-情報処理システム、情報処理方法及びプログラム 図2
  • 特許-情報処理システム、情報処理方法及びプログラム 図3
  • 特許-情報処理システム、情報処理方法及びプログラム 図4
  • 特許-情報処理システム、情報処理方法及びプログラム 図5
  • 特許-情報処理システム、情報処理方法及びプログラム 図6
  • 特許-情報処理システム、情報処理方法及びプログラム 図7
  • 特許-情報処理システム、情報処理方法及びプログラム 図8
  • 特許-情報処理システム、情報処理方法及びプログラム 図9
  • 特許-情報処理システム、情報処理方法及びプログラム 図10
  • 特許-情報処理システム、情報処理方法及びプログラム 図11
  • 特許-情報処理システム、情報処理方法及びプログラム 図12
  • 特許-情報処理システム、情報処理方法及びプログラム 図13
  • 特許-情報処理システム、情報処理方法及びプログラム 図14
  • 特許-情報処理システム、情報処理方法及びプログラム 図15
  • 特許-情報処理システム、情報処理方法及びプログラム 図16
  • 特許-情報処理システム、情報処理方法及びプログラム 図17
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-05
(45)【発行日】2024-08-14
(54)【発明の名称】情報処理システム、情報処理方法及びプログラム
(51)【国際特許分類】
   G06N 3/063 20230101AFI20240806BHJP
   G06F 9/50 20060101ALI20240806BHJP
   G06N 3/08 20230101ALI20240806BHJP
【FI】
G06N3/063
G06F9/50 150Z
G06N3/08
【請求項の数】 22
(21)【出願番号】P 2020135709
(22)【出願日】2020-08-11
(65)【公開番号】P2022032179
(43)【公開日】2022-02-25
【審査請求日】2023-05-17
(73)【特許権者】
【識別番号】000001270
【氏名又は名称】コニカミノルタ株式会社
(74)【代理人】
【識別番号】100117651
【弁理士】
【氏名又は名称】高垣 泰志
(72)【発明者】
【氏名】岡本 悠史
【審査官】佐藤 直樹
(56)【参考文献】
【文献】国際公開第2020/122024(WO,A1)
【文献】国際公開第2019/079008(WO,A1)
【文献】特開2013-045219(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/063
G06F 9/50
G06N 3/08
(57)【特許請求の範囲】
【請求項1】
学習モデルに基づき特定の処理を実行する情報処理システムであって、
プロセッサーと、
ロジックデータを書き換えることで回路の再構成が可能なプログラマブルロジックデバイスと、
機械学習を実行することによって前記特定の処理のための新規な学習モデルを生成する機械学習実行部と、
前記新規な学習モデルを前記プログラマブルロジックデバイスで動作可能なロジックデータに変換する変換部と、
前記変換部によって前記新規な学習モデルがロジックデータに変換されている期間において、前記新規な学習モデルに基づく前記特定の処理を前記プロセッサーに実行させる制御部と、
を備えることを特徴とする情報処理システム。
【請求項2】
前記制御部は、前記変換部における変換が完了することに伴い、前記変換部で生成されたロジックデータで前記プログラマブルロジックデバイスの回路の再構成を行い、前記新規な学習モデルに基づく前記特定の処理の実行主体を、前記プロセッサーから前記プログラマブルロジックデバイスに切り替えることを特徴とする請求項1に記載の情報処理システム。
【請求項3】
前記プログラマブルロジックデバイスは、FPGAであることを特徴とする請求項1又は2に記載の情報処理システム。
【請求項4】
前記機械学習実行部は、ディープラーニングによる機械学習を実行することを特徴とする請求項1乃至3のいずれかに記載の情報処理システム。
【請求項5】
前記特定の処理は、画像処理であることを特徴とする請求項1乃至4のいずれかに記載の情報処理システム。
【請求項6】
前記特定の処理は、入力画像が予め定められた複数のパターン画像のうちのいずれに一致するかを学習モデルにより推論する処理であることを特徴とする請求項1乃至5のいずれかに記載の情報処理システム。
【請求項7】
前記パターン画像は、ロゴ画像であることを特徴とする請求項6に記載の情報処理システム。
【請求項8】
前記制御部は、前記変換部によって前記新規な学習モデルがロジックデータに変換されている期間において、前記プロセッサーに前記特定の処理を実行させる前に、前記プログラマブルロジックデバイスに前記特定の処理を実行させ、前記プログラマブルロジックデバイスによる処理結果に応じて前記プロセッサーに前記特定の処理を実行させるか否かを決定することを特徴とする請求項1乃至7のいずれかに記載の情報処理システム。
【請求項9】
前記制御部は、前記プログラマブルロジックデバイスの処理結果の信頼性が所定値よりも低い場合に、前記プロセッサーに、前記新規な学習モデルに基づく前記特定の処理を実行させることを特徴とする請求項8に記載の情報処理システム。
【請求項10】
前記制御部は、ネットワークを介して外部の情報処理装置と通信可能であり、前記変換部によって前記新規な学習モデルがロジックデータに変換されている期間において、前記新規な学習モデルに基づく前記特定の処理を前記プロセッサーに実行させるとき、前記新規な学習モデルに基づく前記特定の処理のうちの一部を前記情報処理装置に分散処理させることを特徴とする請求項1乃至9のいずれかに記載の情報処理システム。
【請求項11】
前記プロセッサー、前記プログラマブルロジックデバイス、及び、前記制御部は、端末装置に実装され、
前記機械学習実行部、及び、前記変換部は、前記端末装置と通信可能なサーバー装置に実装されることを特徴とする請求項1乃至10のいずれかに記載の情報処理システム。
【請求項12】
前記プロセッサー、前記プログラマブルロジックデバイス、前記機械学習実行部、前記変換部、及び、前記制御部は、端末装置に実装されることを特徴とする請求項1乃至10のいずれかに記載の情報処理システム。
【請求項13】
プロセッサーと、
ロジックデータを書き換えることで回路の再構成が可能なプログラマブルロジックデバイスと、
を備える端末装置において、学習モデルに基づく特定の処理を実行させる情報処理方法であって、
機械学習を実行することによって前記特定の処理のための新規な学習モデルを生成する第1ステップと、
前記新規な学習モデルを前記プログラマブルロジックデバイスで動作可能なロジックデータに変換する第2ステップと、
前記第2ステップにおいて前記新規な学習モデルがロジックデータに変換されている期間において、前記新規な学習モデルに基づく前記特定の処理を前記プロセッサーに実行させる第3ステップと、
を有することを特徴とする情報処理方法。
【請求項14】
前記第2ステップにおける変換が完了することに伴い、前記第2ステップで生成されたロジックデータで前記プログラマブルロジックデバイスの回路の再構成を行う第4ステップと、
前記新規な学習モデルに基づく前記特定の処理の実行主体を、前記プロセッサーから前記プログラマブルロジックデバイスに切り替える第5ステップと、
を更に有することを特徴とする請求項13に記載の情報処理方法。
【請求項15】
前記第1ステップは、ディープラーニングによる機械学習を実行することを特徴とする請求項13又は14に記載の情報処理方法。
【請求項16】
前記特定の処理は、画像処理であることを特徴とする請求項13乃至15のいずれかに記載の情報処理方法。
【請求項17】
前記特定の処理は、入力画像が予め定められた複数のパターン画像のうちのいずれに一致するかを学習モデルにより推論する処理であることを特徴とする請求項13乃至16のいずれかに記載の情報処理方法。
【請求項18】
前記パターン画像は、ロゴ画像であることを特徴とする請求項17に記載の情報処理方法。
【請求項19】
前記第3ステップは、前記第2ステップにおいて前記新規な学習モデルがロジックデータに変換されている期間において、前記プロセッサーに前記特定の処理を実行させる前に、前記プログラマブルロジックデバイスに前記特定の処理を実行させ、前記プログラマブルロジックデバイスによる処理結果に応じて前記プロセッサーに前記特定の処理を実行させるか否かを決定することを特徴とする請求項13乃至18のいずれかに記載の情報処理方法。
【請求項20】
前記第3ステップは、前記プログラマブルロジックデバイスの処理結果の信頼性が所定値よりも低い場合に、前記プロセッサーに、前記新規な学習モデルに基づく前記特定の処理を実行させることを特徴とする請求項19に記載の情報処理方法。
【請求項21】
前記端末装置は、ネットワークを介して外部の情報処理装置と通信可能であり、
前記第3ステップは、前記第2ステップにおいて前記新規な学習モデルがロジックデータに変換されている期間において、前記新規な学習モデルに基づく前記特定の処理を前記プロセッサーに実行させるとき、前記新規な学習モデルに基づく前記特定の処理のうちの一部を前記情報処理装置に分散処理させることを特徴とする請求項13乃至20のいずれかに記載の情報処理方法。
【請求項22】
プロセッサーと、
ロジックデータを書き換えることで回路の再構成が可能なプログラマブルロジックデバイスと、
を備える端末装置において実行されることにより、学習モデルに基づく特定の処理を前記端末装置に実行させるプログラムであって、前記端末装置に、
機械学習を実行することによって前記特定の処理のための新規な学習モデルを生成する第1ステップと、
前記新規な学習モデルを前記プログラマブルロジックデバイスで動作可能なロジックデータに変換する第2ステップと、
前記第2ステップにおいて前記新規な学習モデルがロジックデータに変換されている期間において、前記新規な学習モデルに基づく前記特定の処理を前記プロセッサーに実行させる第3ステップと、
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理システム、情報処理方法及びプログラムに関し、特に学習モデルに基づいて特定の処理を実行する技術に関する。
【背景技術】
【0002】
従来、入力画像に含まれる文字を認識する技術のひとつとしてOCR(Optical Character Recognition)がある。しかし、OCRは、ロゴのような画像を認識することが困難である。ロゴを認識する手法のひとつとして、例えばテンプレートマッチングによる手法がある。ところが、テンプレートマッチングによる手法においても、入力画像に含まれるロゴが傾いているような場合にはテンプレートとの差異が大きくなり、ロゴを正確に認識することができない。
【0003】
そのため、近年では、ディープラーニング(Deep Learning)をはじめとした機械学習を用いて、レシートなどに含まれるロゴ画像の推論を行うことが提案されている(例えば、特許文献1)。ディープラーニングをロゴ判定に用いることで、ロゴが傾いている場合であってもロゴを判定することができるため、テンプレートマッチングよりも認識率を向上させることができる。
【0004】
例えば画像処理の分野では、ディープラーニングによる機械学習において、畳み込みニューラルネットワーク(CNN)を利用するアルゴリズムが広く用いられる。畳み込みニューラルネットワークは、畳み込み演算のための計算量が膨大であるため、従来は演算時間が長くなることが懸念されていた。しかし、近年は、汎用的なプロセッサーや、FPGA(Field Programmable Gate Array)のようなプログラマブルロジックデバイスの性能向上に伴い、演算時間が短縮されており、利用が広がりつつある。
【0005】
プログラマブルロジックデバイスは、論理回路を畳み込みニューラルネットワークに応じた専用回路として実現できるため、汎用的なプロセッサーを用いるよりも効率的に推論処理を行うことが可能である。また、プログラマブルロジックデバイスを用いることにより、ロジックデータを書き換えて内部の論理回路を再構成する技術も提案されている(例えば特許文献2)。この技術を適用すれば、例えば機械学習によって新規な学習モデルが生成された場合に、プログラマブルロジックデバイスのロジックデータを書き換えることにより、新規な学習モデルに応じた推論処理を行うことが可能である。
【先行技術文献】
【特許文献】
【0006】
【文献】特開2019-168856号公報
【文献】特開2018-132830号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、上記特許文献2の従来技術では、新規な学習モデルが生成されてからプログラマブルロジックデバイスのロジックデータの書き換えが完了するまでの期間において、プログラマブルロジックデバイスにおいて新規な学習モデルに応じた推論処理を実行することができないという問題がある。特に、新規な学習モデルをプログラマブルロジックデバイスで動作可能なロジックデータに変換する処理には、数時間から数日程度の長時間を要することがあり、長期に亘って新規な学習モデルに基づく推論処理を行うことができなくなる。
【0008】
そこで本発明は、上記問題を解決するためになされたものであり、新規な学習モデルが生成された場合に、その新規な学習モデルに基づく処理を早期に実行できるようにした情報処理システム、情報処理方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0009】
上記目的を達成するため、請求項1に係る発明は、学習モデルに基づき特定の処理を実行する情報処理システムであって、プロセッサーと、ロジックデータを書き換えることで回路の再構成が可能なプログラマブルロジックデバイスと、機械学習を実行することによって前記特定の処理のための新規な学習モデルを生成する機械学習実行部と、前記新規な学習モデルを前記プログラマブルロジックデバイスで動作可能なロジックデータに変換する変換部と、前記変換部によって前記新規な学習モデルがロジックデータに変換されている期間において、前記新規な学習モデルに基づく前記特定の処理を前記プロセッサーに実行させる制御部と、を備えることを特徴とする構成である。
【0010】
請求項2に係る発明は、請求項1の情報処理システムにおいて、前記制御部は、前記変換部における変換が完了することに伴い、前記変換部で生成されたロジックデータで前記プログラマブルロジックデバイスの回路の再構成を行い、前記新規な学習モデルに基づく前記特定の処理の実行主体を、前記プロセッサーから前記プログラマブルロジックデバイスに切り替えることを特徴とする構成である。
【0011】
請求項3に係る発明は、請求項2の情報処理システムにおいて、前記プログラマブルロジックデバイスは、FPGAであることを特徴とする構成である。
【0012】
請求項4に係る発明は、請求項1乃至3のいずれかの情報処理システムにおいて、前記機械学習実行部は、ディープラーニングによる機械学習を実行することを特徴とする構成である。
【0013】
請求項5に係る発明は、請求項1乃至4のいずれかの情報処理システムにおいて、前記特定の処理は、画像処理であることを特徴とする構成である。
【0014】
請求項6に係る発明は、請求項1乃至5のいずれかの情報処理システムにおいて、前記特定の処理は、入力画像が予め定められた複数のパターン画像のうちのいずれに一致するかを学習モデルにより推論する処理であることを特徴とする構成である。
【0015】
請求項7に係る発明は、請求項6の情報処理システムにおいて、前記パターン画像は、ロゴ画像であることを特徴とする構成である。
【0016】
請求項8に係る発明は、請求項1乃至7のいずれかの情報処理システムにおいて、前記制御部は、前記変換部によって前記新規な学習モデルがロジックデータに変換されている期間において、前記プロセッサーに前記特定の処理を実行させる前に、前記プログラマブルロジックデバイスに前記特定の処理を実行させ、前記プログラマブルロジックデバイスによる処理結果に応じて前記プロセッサーに前記特定の処理を実行させるか否かを決定することを特徴とする構成である。
【0017】
請求項9に係る発明は、請求項8の情報処理システムにおいて、前記制御部は、前記プログラマブルロジックデバイスの処理結果の信頼性が所定値よりも低い場合に、前記プロセッサーに、前記新規な学習モデルに基づく前記特定の処理を実行させることを特徴とする構成である。
【0018】
請求項10に係る発明は、請求項1乃至9のいずれかの情報処理システムにおいて、前記制御部は、ネットワークを介して外部の情報処理装置と通信可能であり、前記変換部によって前記新規な学習モデルがロジックデータに変換されている期間において、前記新規な学習モデルに基づく前記特定の処理を前記プロセッサーに実行させるとき、前記新規な学習モデルに基づく前記特定の処理のうちの一部を前記情報処理装置に分散処理させることを特徴とする構成である。
【0019】
請求項11に係る発明は、請求項1乃至10のいずれかの情報処理システムにおいて、前記プロセッサー、前記プログラマブルロジックデバイス、及び、前記制御部は、端末装置に実装され、前記機械学習実行部、及び、前記変換部は、前記端末装置と通信可能なサーバー装置に実装されることを特徴とする構成である。
【0020】
請求項12に係る発明は、請求項1乃至10のいずれかの情報処理システムにおいて、前記プロセッサー、前記プログラマブルロジックデバイス、前記機械学習実行部、前記変換部、及び、前記制御部は、端末装置に実装されることを特徴とする構成である。
【0021】
請求項13に係る発明は、プロセッサーと、ロジックデータを書き換えることで回路の再構成が可能なプログラマブルロジックデバイスと、を備える端末装置において、学習モデルに基づく特定の処理を実行させる情報処理方法であって、機械学習を実行することによって前記特定の処理のための新規な学習モデルを生成する第1ステップと、前記新規な学習モデルを前記プログラマブルロジックデバイスで動作可能なロジックデータに変換する第2ステップと、前記第2ステップにおいて前記新規な学習モデルがロジックデータに変換されている期間において、前記新規な学習モデルに基づく前記特定の処理を前記プロセッサーに実行させる第3ステップと、を有することを特徴とする構成である。
【0022】
請求項14に係る発明は、請求項13の情報処理方法において、前記第2ステップにおける変換が完了することに伴い、前記第2ステップで生成されたロジックデータで前記プログラマブルロジックデバイスの回路の再構成を行う第4ステップと、前記新規な学習モデルに基づく前記特定の処理の実行主体を、前記プロセッサーから前記プログラマブルロジックデバイスに切り替える第5ステップと、を更に有することを特徴とする構成である。
【0023】
請求項15に係る発明は、請求項13又は14の情報処理方法において、前記第1ステップは、ディープラーニングによる機械学習を実行することを特徴とする構成である。
【0024】
請求項16に係る発明は、請求項13乃至15のいずれかの情報処理方法において、前記特定の処理は、画像処理であることを特徴とする構成である。
【0025】
請求項17に係る発明は、請求項13乃至16のいずれかの情報処理方法において、前記特定の処理は、入力画像が予め定められた複数のパターン画像のうちのいずれに一致するかを学習モデルにより推論する処理であることを特徴とする構成である。
【0026】
請求項18に係る発明は、請求項17の情報処理方法において、前記パターン画像は、ロゴ画像であることを特徴とする構成である。
【0027】
請求項19に係る発明は、請求項13乃至18のいずれかの情報処理方法において、前記第3ステップは、前記第2ステップにおいて前記新規な学習モデルがロジックデータに変換されている期間において、前記プロセッサーに前記特定の処理を実行させる前に、前記プログラマブルロジックデバイスに前記特定の処理を実行させ、前記プログラマブルロジックデバイスによる処理結果に応じて前記プロセッサーに前記特定の処理を実行させるか否かを決定することを特徴とする構成である。
【0028】
請求項20に係る発明は、請求項19の情報処理方法において、前記第3ステップは、前記プログラマブルロジックデバイスの処理結果の信頼性が所定値よりも低い場合に、前記プロセッサーに、前記新規な学習モデルに基づく前記特定の処理を実行させることを特徴とする構成である。
【0029】
請求項21に係る発明は、請求項13乃至20のいずれかの情報処理方法において、前記端末装置は、ネットワークを介して外部の情報処理装置と通信可能であり、前記第3ステップは、前記第2ステップにおいて前記新規な学習モデルがロジックデータに変換されている期間において、前記新規な学習モデルに基づく前記特定の処理を前記プロセッサーに実行させるとき、前記新規な学習モデルに基づく前記特定の処理のうちの一部を前記情報処理装置に分散処理させることを特徴とする構成である。;
【0030】
請求項22に係る発明は、プロセッサーと、ロジックデータを書き換えることで回路の再構成が可能なプログラマブルロジックデバイスと、を備える端末装置において実行されることにより、学習モデルに基づく特定の処理を前記端末装置に実行させるプログラムであって、前記端末装置に、機械学習を実行することによって前記特定の処理のための新規な学習モデルを生成する第1ステップと、前記新規な学習モデルを前記プログラマブルロジックデバイスで動作可能なロジックデータに変換する第2ステップと、前記第2ステップにおいて前記新規な学習モデルがロジックデータに変換されている期間において、前記新規な学習モデルに基づく前記特定の処理を前記プロセッサーに実行させる第3ステップと、を実行させることを特徴とする構成である。
【発明の効果】
【0031】
本発明によれば、機械学習によって新規な学習モデルが生成された場合にその新規な学習モデルに基づく処理を早期に実行できるようにする。
【図面の簡単な説明】
【0032】
図1】情報処理システムの基本構成の一例を示す図である。
図2】複数のパターン画像が登録されている分類候補を示す図である。
図3】プログラマブルロジックデバイスによる推論処理の一例を示す図である。
図4図2に示した分類候補に新たなパターン画像が追加登録された例を示す図である。
図5】プログラマブルロジックデバイスによる推論結果の精度が低下する例を示す図である。
図6】第1実施形態における情報処理システムの構成例を示す図である。
図7】サーバー装置の構成例を示すブロック図である。
図8】端末装置の構成例を示すブロック図である。
図9】プロセッサーによる推論結果の例を示す図である。
図10】プログラマブルロジックデバイスによる推論結果の例を示す図である。
図11】第1実施形態の情報処理システムにおける全体的な動作プロセスを示す図である。
図12】第1実施形態の情報処理システムにおける全体的な動作プロセスを示す図である。
図13】第1実施形態における制御部の処理手順の一例を示すフローチャートである。
図14】第2実施形態における端末装置の動作プロセスを示す図である。
図15】第2実施形態における制御部の処理手順の一例を示すフローチャートである。
図16】第3実施形態における端末装置の構成例を示すブロック図である。
図17】第3実施形態における情報処理システムの動作プロセスを示す図である。
【発明を実施するための形態】
【0033】
以下、本発明に関する好ましい実施形態について図面を参照しつつ詳細に説明する。尚、以下に説明する実施形態において互いに共通する要素には同一符号を付しており、それらについての重複する説明は省略する。
【0034】
(基本構成)
図1は、本発明における情報処理システム1の基本構成の一例を示す図である。この情報処理システム1は、学習モデルに基づいて特定の処理を実行するシステムであり、機械学習実行部11と、変換部12と、制御部13と、プロセッサー14と、プログラマブルロジックデバイス15とを備えている。
【0035】
プロセッサー14は、汎用的なCPU(Central Processing Unit)によって構成され、プロセッサー用の任意のソフトウェア(プログラム)を実行することにより、そのソフトウェアに定められた手順の処理を実行する。
【0036】
プログラマブルロジックデバイス15は、ロジックデータを書き換えることで論理回路の再構成を行うことが可能なデバイスである。このプログラマブルロジックデバイス15は、例えばFPGA(Field Programmable Gate Array)によって構成される。FPGAは、いつでも何度でも回路構成を変更可能であり、しかも回路規模が大きいため、学習モデルに基づいて特定の処理を実行する専用デバイスに適している。
【0037】
機械学習実行部11は、ディープラーニングによる機械学習を実行することによって特定の処理のための学習モデルを生成する。学習モデルは、例えば畳み込みニューラルネットワークなどのニューラルネットワークを規定するモデルである。また、本発明において特定の処理は、学習モデルに基づく推論処理であり、推論の対象及び内容については特に限定されない。例えば、機械学習実行部11は、ニューラルネットワークの出力層に複数の分類候補を有し、入力データが入力された場合に、入力データと各分類候補との相関性を推論するための学習モデルを生成する。
【0038】
変換部12は、機械学習実行部11によって生成される学習モデルを、プログラマブルロジックデバイスで動作可能なロジックデータに変換する処理を行う。変換部12による変換処理は、一般に時間を要する処理であり、変換対象となる学習モデルを入力してからロジックデータが完成するまでに数時間から数日程度の時間を要することがある。
【0039】
制御部13は、プロセッサー14及びプログラマブルロジックデバイス15の動作を制御するものである。例えば、制御部13は、機械学習実行部11によって生成される学習モデルに基づく特定の処理を、プロセッサー14及びプログラマブルロジックデバイス15のいずれか実行させる。
【0040】
プログラマブルロジックデバイス15には、機械学習実行部11によって生成された学習モデルに基づくロジックデータが書き込まれ、そのロジックデータに対応する論理回路が構成されている。つまり、プログラマブルロジックデバイス15には、学習モデルに基づく特定の処理を行うための専用回路が構築されており、効率的に特定の処理を遂行することができる。
【0041】
一方、プロセッサー14は、汎用的なCPUであるため、プロセッサー用のソフトウェアを実行することにより、特定の処理を実行することが可能である。プロセッサー14は、そのソフトウェアを実行するときに、機械学習実行部11によって生成された学習モデルを、ライブラリーなどと同様にソフトウェアに組み込んで実行することにより、学習モデルに基づく特定の処理を行うことができるようになる。ただし、プロセッサー14の内部の回路は、汎用的な演算処理を行うための回路構成であるため、プログラマブルロジックデバイス15と比較すると、特定の処理を実行する際の処理効率が悪く、プログラマブルロジックデバイス15よりも4~5倍程度の処理時間を要する。
【0042】
そのため、制御部13は、通常、プログラマブルロジックデバイス15に、学習モデルに基づく特定の処理を実行させる。すなわち、制御部13は、特定の処理の対象となる入力データD1を取得すると、その入力データD1をプログラマブルロジックデバイス15へ出力し、プログラマブルロジックデバイス15に、入力データD1を対象とした学習モデルに基づく特定の処理を実行させる。これにより、制御部13は、プロセッサー14に推論処理を行わせるよりも効率的に推論結果を得ることができる。
【0043】
ここで、特定の処理として、入力データD1に入力画像が含まれており、分類候補として設定されている複数のパターン画像のそれぞれと入力画像との一致度を推論する推論処理を例に挙げる。例えば、図2に示すように、分類候補90として、複数のパターン画像91~95が登録されていると仮定する。パターン画像91は手を模したロゴ画像、パターン画像92は眼鏡を模したロゴ画像、パターン画像93は丸の内側に十字を配したロゴ画像、パターン画像94は鶏を模したロゴ画像、パターン画像95は鍵を模したロゴ画像である。この場合、プログラマブルロジックデバイス15には、入力データD1に含まれる入力画像と、各パターン画像91~95との一致度を推論する回路が構成されている。そのため、プログラマブルロジックデバイス15は、制御部13から入力データD1が入力されると、その入力データD1に含まれる入力画像と、各パターン画像91~95との一致度を表した数値データを推論結果として出力する。
【0044】
図3は、プログラマブルロジックデバイス15による推論処理の一例を示す図である。図3では、入力データD1に、眼鏡の形態に類似する画像が入力画像として含まれている。この場合、プログラマブルロジックデバイス15に入力データD1が入力されると、プログラマブルロジックデバイス15は、学習モデルに対応した論理回路で推論処理を行うことで、図3に示すような推論結果を得る。すなわち、プログラマブルロジックデバイス15は、入力画像とパターン画像92との一致度を98%として推論し、他のパターン画像91,93,94,95との一致度を1%未満として推論する。この推論結果は、客観的に正しいと言える。
【0045】
このような推論処理は、例えば入力画像のロゴ判定に用いることができる。ロゴ判定を行うことにより、ブランドや店舗、企業などを特定すること可能となるため、例えば顧客の購買分析、請求書や領収書などの経理処理、名刺管理など、様々なアプリケーションに適用可能である。
【0046】
ところが、店舗や企業のロゴ画像は突然に変更になることがある。そのような場合、機械学習実行部11に対して、新しいロゴ画像に対応するパターン画像が新たな分類候補として登録されることになる。図4は、図2に示した分類候補90に、新たなパターン画像96が追加登録された例を示す図である。新たなパターン画像96は腕時計を模したロゴ画像である。このように新たな分類候補が追加登録されることによってニューラルネットワークの分類上限数を超えると、分類上限数を増やすために、ニューラルネットワークの構成を変更することが必要となる。また、ニューラルネットワークの分類上限数を超えていない場合であっても、推論処理の精度を高めるために、ニューラルネットワークの構成を変更することが必要となることもある。そのため、機械学習実行部11は、新たなパターン画像96を認識可能とするためにディープラーニングによる機械学習を実行し、それ以前の学習モデルとは異なる新規な学習モデルを生成する。そして機械学習実行部11は、その新規な学習モデルを変換部12と制御部13のそれぞれに出力する。
【0047】
変換部12は、機械学習実行部11によって新規な学習モデルが生成されると、その新規な学習モデルを、プログラマブルロジックデバイスで動作可能なロジックデータに変換する処理を行う。しかし、上述したように、変換部12による変換処理には長時間を要するため、ロジックデータが完了するまでに一定の期間を要する。
【0048】
変換部12において新規な学習モデルをロジックデータに変換する処理が行われている期間中に、制御部13が、推論処理の対象となる入力データD1を取得した場合、プログラマブルロジックデバイス15で特定の処理を行わせると推論結果の精度が低下する可能がある。
【0049】
図5は、プログラマブルロジックデバイス15による推論結果の精度が低下する例を示す図である。図5では、入力データD1に、腕時計の形態に類似する画像が入力画像として含まれている。この場合、プログラマブルロジックデバイス15に入力データD1が入力されると、プログラマブルロジックデバイス15は、新規な学習モデルが生成される以前の古い学習モデルに対応した論理回路で推論処理を行うことになる。そのため、プログラマブルロジックデバイス15は、図5に示すような推論結果を得る。すなわち、プログラマブルロジックデバイス15は、入力画像に対して最も一致度が高いロゴ画像としてパターン画像93を推論する。ただし、この場合の一致度は50%であり、信頼性が高いとは言えず、誤判定の可能性がある。
【0050】
そこで、制御部13は、変換部12によって新規な学習モデルがロジックデータに変換されている期間において推論処理の対象となる入力データD1を取得した場合には、機械学習実行部11によって生成された新規な学習モデルに基づく特定の処理をプロセッサー14に実行させる。つまり、プログラマブルロジックデバイス15が新規な学習モデルに基づく特定の処理を実行できない期間中は、プロセッサー14が代替的に新規な学習モデルに基づく特定の処理を実行するように制御するのである。これにより、新規な学習モデルに基づく特定の処理を早期に実行することが可能となり、しかも新規な学習モデルによる信頼性の高い推論結果を得ることが可能となる。以下においては、上記のような基本構成を備えた情報処理システム1の具体的な実施の形態について説明する。
【0051】
(第1実施形態)
図6は、第1実施形態における情報処理システム1の構成例を示す図である。例えば、本実施形態における情報処理システム1は、複数の端末装置2,3と、ネットワーク4と、サーバー装置5とを備えるネットワークシステムとして構成される。
【0052】
端末装置2,3は、例えば、パーソナルコンピュータ(PC)やタブレット端末などで構成される情報処理装置である。複数の端末装置2,3のそれぞれには、図1に示した、制御部13と、プロセッサー14と、プログラマブルロジックデバイス15とが実装される。したがって、端末装置2,3は、ユーザーによって入力データD1が入力されると、その入力データD1を処理対象として、学習モデルに基づく特定の処理を実行することができる。これら複数の端末装置2,3は、LAN(Local Area Network)などによって構成されるネットワーク4に接続されている。尚、ネットワーク4には、インターネットなどの広域ネットワークが含まれていても良い。
【0053】
サーバー装置5は、ネットワーク4に接続され、端末装置2,3と通信可能である。サーバー装置5は、例えばインターネット上のクラウドに設置される。このサーバー装置5には、図1に示した、機械学習実行部11と、変換部12とが実装される。したがって、サーバー装置5は、端末装置2,3に対し、学習モデル、プロセッサー用ソフトウェア、及び、ロジックデータを提供することができる。
【0054】
図7は、サーバー装置5の構成例を示すブロック図である。サーバー装置5は、処理部20と、記憶部21と、外部通信部22とを備えている。処理部20は、例えば図示を省略するCPUとメモリとを備え、各種の処理を実行する。記憶部21は、例えばハードディスクドライブ(HDD)又はソリッドステートドライブ(SSD)などによって構成される不揮発性の記憶デバイスである。外部通信部22は、サーバー装置5がネットワーク4を介して端末装置2,3と通信を行うためのインタフェースである。
【0055】
処理部20は、CPUが所定のプログラムを実行することにより、機械学習実行部11、変換部12、及び、通信制御部23として機能する。
【0056】
機械学習実行部11は、上述のように、ディープラーニングによる機械学習を実行することによって特定の処理のための学習モデル24を生成する。本実施形態における特定の処理は、画像処理であって、入力画像が予め定められた複数のパターン画像のうちのいずれに一致するかを学習モデルに基づいて推論する処理である場合を例示する。機械学習実行部11は、新しいロゴ画像に対応するパターン画像が新たな分類候補として登録されると、その新しいパターン画像を認識するための機械学習を実行し、それ以前の学習モデルとは異なる新規な学習モデル24を生成する。機械学習実行部11によって生成される新規な学習モデル24は、記憶部21に記憶される。
【0057】
変換部12は、機械学習実行部11によって学習モデル24が生成されることに伴って機能する。変換部12は、記憶部21から新規な学習モデル24を読み出し、その学習モデル24をプログラマブルロジックデバイス15で動作可能なロジックデータ25に変換する。変換部12によって生成されるロジックデータ25は、記憶部21に記憶される。ただし、変換部12による変換処理が開始されてから記憶部21にロジックデータ25が記憶されるまでには一定の期間を要する。
【0058】
通信制御部23は、機械学習実行部11によって新規な学習モデル24が生成された場合に機能すると共に、変換部12による変換処理が終了し、記憶部21にロジックデータ25が記憶された場合にも機能する。そして通信制御部23は、外部通信部22を介して端末装置2,3と通信を行う。
【0059】
機械学習実行部11によって新規な学習モデル24が生成された場合、通信制御部23は、端末装置2,3に対し、新規な学習モデル24が生成されたことを通知する。この通知に対する応答として、端末装置2,3から新規な学習モデル24の要求を受信した場合、通信制御部23は、記憶部21から新規な学習モデル24を読み出し、その学習モデル24を端末装置2,3へ送信する。このとき、通信制御部23は、記憶部21に記憶されているプロセッサー用ソフトウェア26を読み出し、新規な学習モデル24と共に、端末装置2,3へ送信する。尚、プロセッサー用ソフトウェア26は、端末装置2,3のプロセッサー14において、新規な学習モデル24に基づいて特定の処理を実行させるためのソフトウェアである。
【0060】
また、変換部12による変換処理が終了し、記憶部21に新規な学習モデル24に対応するロジックデータ25が記憶された場合、通信制御部23は、端末装置2,3に対し、ロジックデータ25が生成されたことを通知する。この通知に対する応答として、端末装置2,3からロジックデータ25の要求を受信した場合、通信制御部23は、記憶部21からロジックデータ25を読み出し、そのロジックデータ25を端末装置2,3へ送信する。
【0061】
図8は、端末装置2の構成例を示すブロック図である。尚、端末装置3の構成についてもこれと同様である。端末装置2は、制御部13と、プロセッサー14と、プログラマブルロジックデバイス15と、外部通信部28と、記憶部29とを備えている。外部通信部28は、端末装置2がネットワーク4を介してサーバー装置5や他の端末装置3と通信を行うためのインタフェースである。記憶部29は、例えばハードディスクドライブ(HDD)又はソリッドステートドライブ(SSD)などによって構成される不揮発性の記憶デバイスである。この記憶部29には、サーバー装置5から取得する、新規な学習モデル24、プロセッサー用ソフトウェア26、及び、ロジックデータ25が記憶される。また、記憶部29には、後述する制御部13のCPUによって実行されるプログラムも記憶される。
【0062】
制御部13は、上述したように、学習モデル24に基づく特定の処理を、プロセッサー14又はプログラマブルロジックデバイス15に実行させる制御を行う。この制御部13は、図示を省略するCPUとメモリとを備えており、CPUが記憶部29から所定のプログラムを読み出して実行することにより、推論処理制御部30、学習モデル取得部31、ソフトウェア取得部32、ロジックデータ取得部33、及び、ロジック再構成指示部34として機能する。
【0063】
また、制御部13は、プログラマブルロジックデバイス15と、第1接続部35及び第2接続部36の2つの接続部を介して接続されている。これら2つの接続部のうち、第1接続部35は、プログラマブルロジックデバイス15におけるロジックデータを書き換えて回路の再構成を行うための接続部であり、例えばUSB接続インタフェースなどによって構成される。また、第2接続部36は、プログラマブルロジックデバイス15に特定の処理である推論処理を行わせるための接続部であり、第1接続部35よりも高速大容量通信が可能な接続インタフェースであり、例えばPCIe接続インタフェースなどによって構成される。
【0064】
推論処理制御部30は、入力データD1の入力を受け付け、予め登録されている複数のパターン画像のそれぞれと、入力データD1に含まれる入力画像との一致度を推論する推論処理を、プログラマブルロジックデバイス15及びプロセッサー14のいずれか一方に実行させる制御を行う。入力データD1は、例えば図示を省略するUSB接続端子などの外部接続端子から入力するものであっても良いし、外部通信部28を介して入力するものであっても良い。
【0065】
推論処理制御部30は、サーバー装置5から新規な学習モデル24が生成されたことの通知を受けていない場合、推論処理をプログラマブルロジックデバイス15に実行させる。すなわち、推論処理制御部30は、第2接続部36を介してプログラマブルロジックデバイス15に、入力データD1に含まれる入力画像を出力し、プログラマブルロジックデバイス15に推論処理を実行させる。そして推論処理制御部30は、プログラマブルロジックデバイス15による推論結果を取得し、その推論結果を所定の出力先に出力する。この場合の出力先は、例えば入力データD1の供給元である。ただし、これに限られるものではなく、推論処理制御部30は、推論結果を、ユーザーによって予め指定されたアプリケーションに出力するものであっても構わない。
【0066】
学習モデル取得部31は、サーバー装置5から新規な学習モデル24が生成された通知を受信した場合に機能する。そして学習モデル取得部31は、サーバー装置5に対して新規な学習モデル24を要求し、サーバー装置5から新規な学習モデル24を取得する。学習モデル取得部31は、新規な学習モデル24を取得すると、その学習モデル24を記憶部29に保存する。
【0067】
ソフトウェア取得部32は、学習モデル取得部31と共に機能する。ソフトウェア取得部32は、サーバー装置5によって新規な学習モデル24と共に送信されるプロセッサー用ソフトウェア26を取得する。そしてソフトウェア取得部32は、プロセッサー用ソフトウェア26を記憶部29に保存する。
【0068】
推論処理制御部30は、切替部30aを備えている。この切替部30aは、学習モデル取得部31によって新規な学習モデル24が取得された場合に機能し、特定の処理である推論処理の実行主体を、プログラマブルロジックデバイス15からプロセッサー14に切り替える。切替部30aによる切り替えが行われることにより、推論処理制御部30は、入力データD1を受け付けると、推論処理をプロセッサー14に実行させる。つまり、推論処理制御部30は、サーバー装置5において新規な学習モデル24がロジックデータ25に変換されている期間において、推論処理の実行をプロセッサー14に切り替えることにより、新規な学習モデル24に基づく推論処理をプロセッサー14で実行させるのである。
【0069】
プロセッサー14は、推論処理制御部30から推論処理の実行が指示されると、記憶部29に記憶されている新規な学習モデル24とプロセッサー用ソフトウェア26とを読み出して実行する。そしてプロセッサー14は、推論処理制御部30から出力される入力データD1に含まれる入力画像と、新規な学習モデル24における複数のパターン画像91~96(図4参照)のそれぞれとの一致度を推論する推論処理を実行し、各パターン画像91~96との一致度を示す推論結果を出力する。
【0070】
図9は、プロセッサー14による推論結果の例を示す図である。図9では、入力データD1に、腕時計の形態に類似する画像が入力画像として含まれている。この場合、プロセッサー14に入力データD1が入力されると、プロセッサー14は、新規な学習モデル24に基づく推論処理を実行する。その結果、プロセッサー14は、図9に示すような推論結果を得る。すなわち、プロセッサー14は、入力画像に対して最も一致度が高いロゴ画像として、新規に登録されたパターン画像96を推論する。このとき、入力画像とパターン画像96との一致度は95%であり、信頼性の高い結果を得ることができる。
【0071】
したがって、本実施形態の情報処理システム1は、効率的に推論処理を行うことが可能なプログラマブルロジックデバイス15において新規な学習モデル24に基づく推論処理を実行することができない期間に、汎用的なプロセッサー14を用いて推論処理を実行することで、新規な学習モデル24を適用した推論結果を得ることが可能であり、推論結果の信頼性低下を抑制することができる。
【0072】
ロジックデータ取得部33は、サーバー装置5から新規な学習モデル24に対応するロジックデータ25が生成された通知を受信した場合に機能する。この場合、ロジックデータ取得部33は、サーバー装置5に対して新規な学習モデル24に対応するロジックデータ25を要求し、サーバー装置5からロジックデータ25を取得する。ロジックデータ取得部33は、サーバー装置5からロジックデータ25を取得すると、そのロジックデータ25を記憶部29に保存する。
【0073】
ロジック再構成指示部34は、ロジックデータ取得部33によってロジックデータ25が取得された場合に機能する。そしてロジック再構成指示部34は、記憶部29からロジックデータ25を読み出し、第1接続部35を介して、プログラマブルロジックデバイス15におけるロジックデータを新規な学習モデル24に対応するロジックデータ25に書き換えることにより、回路の再構成を行う。
【0074】
プログラマブルロジックデバイス15は、推論実行部40と、ロジック再構成実行部41と、第1接続部45と、第2接続部46とを備えている。第1接続部45は、制御部13の第1接続部35と相互に接続される。例えば、第1接続部45は、USB接続インタフェースなどによって構成される。また、第2接続部46は、制御部13の第2接続部36と相互に接続される。例えば、第2接続部36は、PCIe接続インタフェースなどによって構成される。
【0075】
推論実行部40は、ロジックデータに対応する論理回路によって構成され、制御部13から供給される入力データD1に基づいて推論処理を実行する。推論実行部40における論理回路は、学習モデルに対応した回路構成となっている。ただし、論理回路は、回路構成を変更して再構成することが可能である。
【0076】
例えば、推論実行部40は、第2接続部46を介して制御部13から入力データD1が提供されると、その入力データD1に含まれる入力画像を対象とする推論処理を実行する。すなわち、推論実行部40は、入力画像と複数のパターン画像との一致度を推論するのである。そして推論実行部40は、推論処理による推論結果を、第2接続部46を介して制御部13へ出力する。
【0077】
ロジック再構成実行部41は、第1接続部45を介して制御部13から新規な学習モデル24に対応するロジックデータ25を取得すると、そのロジックデータ25に基づいて推論実行部40の論理回路を再構成する処理を実行する。これにより、推論実行部40における論理回路が新規な学習モデル24に対応した論理回路に再構成される。この再構成に要する時間は、変換部12において学習モデル24をロジックデータ25に変換するのに要する時間よりも短い。しかし、推論実行部40における論理回路の再構成は静的な再構成であるため、再構成を行っている期間中は、推論実行部40において推論処理を実行することができない。そのため、推論処理制御部30は、プログラマブルロジックデバイス15において回路の再構成が行われている期間中に、入力データD1を取得した場合にも、その入力データD1を対象とする推論処理をプロセッサー14に実行させる。
【0078】
ロジック再構成実行部41は、推論実行部40における回路の再構成が完了すると、第1接続部45を介してロジック再構成指示部34に再構成の完了通知を出力する。これに伴い、プログラマブルロジックデバイス15は、再構成された回路で推論処理を行うことができる状態になる。
【0079】
ロジック再構成指示部34は、プログラマブルロジックデバイス15から再構成の完了通知を取得すると、推論処理制御部30に対してプログラマブルロジックデバイス15における回路の再構成が完了したことを通知する。
【0080】
推論処理制御部30は、回路の再構成が完了したことを示す通知を取得すると、切替部30aを機能させる。そして切替部30aは、それ以後に入力データD1を取得した場合に、推論処理の実行主体を、プロセッサー14からプログラマブルロジックデバイス15に切り替える。つまり、推論処理制御部30は、プログラマブルロジックデバイス15において新規な学習モデル24に基づく推論処理が可能な状態になると、推論処理の実行主体を、プログラマブルロジックデバイス15に切り替えることで、推論処理を効率的に実行できる状態に戻す。
【0081】
その後、推論処理制御部30は、入力データD1を受け付けると、推論処理をプログラマブルロジックデバイス15に実行させる。つまり、推論処理制御部30は、入力データD1を、第2接続部46を介してプログラマブルロジックデバイス15へ出力することにより、入力データD1に含まれる入力画像を対象とする推論処理をプログラマブルロジックデバイス15に実行させるのである。プログラマブルロジックデバイス15は、推論処理制御部30から推論処理の実行が指示されると、再構成された論理回路で新規な学習モデル24に基づく推論処理を実行し、推論結果を制御部13へ出力する。
【0082】
図10は、プログラマブルロジックデバイス15による推論結果の例を示す図である。図10では、入力データD1に、腕時計の形態に類似する画像が入力画像として含まれている。この場合、プログラマブルロジックデバイス15に入力データD1が入力されると、プログラマブルロジックデバイス15は、新規な学習モデル24に基づく推論処理を実行する。その結果、プログラマブルロジックデバイス15は、図10に示すような推論結果を得る。すなわち、プログラマブルロジックデバイス15は、入力画像に対して最も一致度が高いロゴ画像として、新規に登録されたパターン画像96を推論する。このとき、入力画像とパターン画像96との一致度は95%であり、信頼性の高い結果を得ることができる。
【0083】
次に、図11及び図12は、本実施形態の情報処理システム1における全体的な動作プロセスを示す図である。まず図11に示すように、サーバー装置5において新規な分類候補が登録されると(プロセスP1)、サーバー装置5は、機械学習を実行し(プロセスP2)、新規な学習モデル24を生成する(プロセスP3)。
【0084】
新規な学習モデル24を生成すると、サーバー装置5は、その学習モデル24をロジックデータ25に変換する処理を開始する(プロセスP4)。これに伴い、サーバー装置5は、端末装置2に対して新規な学習モデル24を生成したことを通知する(プロセスP5)。
【0085】
端末装置2の制御部13は、その通知を受信すると、サーバー装置5に対して新規な学習モデル24の要求を送信する(プロセスP6)。これにより、サーバー装置5は、端末装置2に対して新規な学習モデル24とプロセッサー用ソフトウェア26とを送信する(プロセスP7)。これにより、端末装置2の制御部13は、新規な学習モデル24を取得すると共に(プロセスP8)、プロセッサー用ソフトウェア26も取得する(プロセスP9)。端末装置2の制御部13は、新規な学習モデル24を取得すると、推論処理の実行主体を、プログラマブルロジックデバイス15からプロセッサー14に切り替える(プロセスP10)。
【0086】
そして新規な学習モデル24に対応するロジックデータ25が生成される前に、端末装置2の制御部13が、推論処理の対象となる入力データD1を検知すると(プロセスP11)、制御部13からプロセッサー14に対して推論処理の実行が指示される(プロセスP12)。このとき、制御部13からプロセッサー14に対して入力データD1も提供される。
【0087】
プロセッサー14は、推論処理の実行が指示されると、新規な学習モデル24に基づいてプロセッサー用ソフトウェア26を実行することにより、入力データD1を対象とする推論処理を開始する(プロセスP13)。プロセッサー14による推論処理は、所定時間T1が経過した後に終了する(プロセスP14)。この所定時間T1は比較的長い時間である。そしてプロセッサー14から制御部13に対して推論結果が出力される(プロセスP15)。
【0088】
端末装置2の制御部13は、プロセッサー14から推論結果を取得すると、その推論結果を所定の出力先に出力する(プロセスP16)。したがって、端末装置2は、新規な学習モデル24に基づくロジックデータ25が未だ生成されておらず、プログラマブルロジックデバイス15において新規な学習モデル24に基づく推論処理が実行できない場合でも、プロセッサー14で推論処理を実行することにより、新規な学習モデル24を適用した推論結果を出力することができる。
【0089】
続いて図12に進み、サーバー装置5において学習モデル24をロジックデータ25に変換する処理が終了すると(プロセスP17)、サーバー装置5は、端末装置2に、新規な学習モデル24に対応するロジックデータ25の生成が完了したことを通知する(プロセスP18)。
【0090】
端末装置2の制御部13は、その通知を受信すると、サーバー装置5に対してロジックデータ25の要求を送信する(プロセスP19)。これにより、サーバー装置5は、端末装置2に対して新規な学習モデル24に対応するロジックデータ25を送信する(プロセスP20)。
【0091】
端末装置2の制御部13は、新規な学習モデル24に対応するロジックデータ25を取得すると、プログラマブルロジックデバイス15におけるロジックデータを新規な学習モデル24に対応するロジックデータ25に書き換えると共に、プログラマブルロジックデバイス15に対して論理回路の再構成を指示する(プロセスP21)。これにより、プログラマブルロジックデバイス15において論理回路の再構成が開始される(プロセスP22)。論理回路の再構成が完了すると(プロセスP23)、プログラマブルロジックデバイス15は、制御部13に対し、回路の再構成が完了したことを通知する(プロセスP24)。
【0092】
制御部13は、その完了通知を取得することに伴い、推論処理の実行主体を、プログラマブルロジックデバイス15に切り替える(プロセスP25)。その後、制御部13は、推論処理の対象となる入力データD1を検知すると(プロセスP26)、プログラマブルロジックデバイス15に対して推論処理の実行を指示する(プロセスP27)。このとき、制御部13からプログラマブルロジックデバイス15に入力データD1が出力される。
【0093】
プログラマブルロジックデバイス15は、推論処理の実行が指示されると、新規な学習モデル24に基づく推論処理を開始する(プロセスP28)。プログラマブルロジックデバイス15による推論処理は、所定時間T2が経過した後に終了する(プロセスP29)。この所定時間T2は、プロセッサー14が推論処理を行う際に要する時間T1よりも短い時間である。そのため、プログラマブルロジックデバイス15は、プロセッサー14よりも短時間で推論結果を得ることができる。そしてプログラマブルロジックデバイス15は、制御部13に対して推論結果を出力する(プロセスP30)。
【0094】
制御部13は、プログラマブルロジックデバイス15から推論結果を取得すると、その推論結果を所定の出力先に出力する(プロセスP31)。したがって、端末装置2は、プログラマブルロジックデバイス15において新規な学習モデル24に基づく推論処理が実行可能な状態になると、プログラマブルロジックデバイス15による推論処理を再開させることにより、新規な学習モデル24を適用した推論結果を速やかに出力することができる。
【0095】
次に、端末装置2の制御部13によって行われる処理手順について説明する。図13は、制御部13による処理手順の一例を示すフローチャートである。例えば、この処理は、制御部13のCPUが所定のプログラムを実行することによって行われる処理である。また、この処理は、端末装置2に対する電源投入に伴って制御部13により実行される処理である。
【0096】
制御部13は、この処理を開始すると、まず、推論処理の実行主体をプログラマブルロジックデバイス15に初期設定する(ステップS1)。
【0097】
次に制御部13は、サーバー装置5から新規な学習モデル24が生成されたことを示す通知を受信したか否かを判断する(ステップS2)。通知を受信している場合(ステップS2でYES)、制御部13は、サーバー装置5から、新規な学習モデル24を取得すると共に(ステップS3)、プロセッサー用ソフトウェア26を取得する(ステップS4)。そして制御部13は、推論処理の実行主体を、プログラマブルロジックデバイス15からプロセッサー14に切り替える(ステップS5)。一方、サーバー装置5から新規な学習モデル24が生成されたことを示す通知を受信していない場合(ステップS2でNO)、制御部13は、ステップS2~S5の処理をスキップする。
【0098】
次に制御部13は、推論処理の対象となる入力データD1を検知したか否かを判断する(ステップS6)。入力データD1を検知している場合(ステップS6でYES)、制御部13は、推論処理の実行主体を確認し(ステップS7)、推論処理の実行主体がプロセッサー14であるか否かを判断する(ステップS8)。その結果、推論処理の実行主体がプロセッサー14である場合(ステップS8でYES)、制御部13は、入力データD1に対する推論処理をプロセッサー14で実行させる(ステップS9)。このとき、プロセッサー14は、ステップS3,S4で取得された新規な学習モデル24及びプロセッサー用ソフトウェア26に基づいて推論処理を実行するため、新規な学習モデル24を反映させた推論処理を行うことができる。これに対し、推論処理の実行主体がプログラマブルロジックデバイス15である場合(ステップS8でNO)、制御部13は、入力データD1に対する推論処理をプログラマブルロジックデバイス15で実行させる(ステップS10)。一方、推論処理の対象となる入力データD1を検知していない場合(ステップS6でNO)、制御部13は、ステップS7~S10の処理をスキップする。
【0099】
次に制御部13は、サーバー装置5から新規な学習モデル24に対応するロジックデータ25が生成されたことを示す通知を受信したか否かを判断する(ステップS11)。通知を受信している場合(ステップS11でYES)、制御部13は、サーバー装置5から、新規な学習モデル24に対応するロジックデータ25を取得する(ステップS12)。そして制御部13は、プログラマブルロジックデバイス15の回路を、サーバー装置5から取得したロジックデータ25に基づいて再構成する処理を実行する(ステップS13)。そしてプログラマブルロジックデバイス15における回路の再構成が完了すると、制御部13は、推論処理の実行主体をプログラマブルロジックデバイス15に切り替える(ステップS14)。一方、サーバー装置5からロジックデータ25が生成されたことを示す通知を受信していない場合(ステップS11でNO)、制御部13は、ステップS12~S14の処理をスキップする。
【0100】
次に制御部13は、端末装置2の電源がオフにされたか否かを判断する(ステップS15)。電源がオフにされていない場合(ステップS15でNO)、制御部13は、ステップS2以降の処理を繰り返す。一方、電源がオフにされた場合(ステップS15でYES)、制御部13による処理が終了する。
【0101】
制御部13によって上記のような処理が行われることにより、サーバー装置5において新規な学習モデル24が生成され、その新規な学習モデル24をロジックデータ25に変換する処理が行われているときには、端末装置2においてプロセッサー14による推論処理を実行することで、新規な学習モデル24に基づく推論処理を実行することができる。これに対し、新規な学習モデル24に対応するロジックデータ25が生成され、プログラマブルロジックデバイス15の回路がそのロジックデータ25に基づいて再構成された後には、端末装置2においてプログラマブルロジックデバイス15による推論処理を実行することで、新規な学習モデル24に基づく推論処理を効率的に実行することができる。
【0102】
以上のように本実施形態の情報処理システム1は、変換部12によって新規な学習モデル24がロジックデータ25に変換されている期間において、新規な学習モデル24に基づく特定の処理をプロセッサー14に実行させるように構成されている。このような構成によれば、プログラマブルロジックデバイス15において新規な学習モデル24に基づく特定の処理を実行することができない期間であっても、プロセッサー14が代替的に特定の処理を行うことができる。そのため、新規な学習モデル24がロジックデータ25に変換されている期間であっても、新規な学習モデルに基づく特定の処理を早期に実行することができるという利点がある。
【0103】
尚、上記においては、主として端末装置2における処理を例示して説明したが、端末装置3における処理も上記と同様である。
【0104】
(第2実施形態)
次に本発明の第2実施形態について説明する。第1実施形態では、端末装置2がサーバー装置5から新規な学習モデル24とプロセッサー用ソフトウェア26とを取得すると、推論処理の実行主体をプログラマブルロジックデバイス15からプロセッサー14に即時に切り替える例を説明した。しかしながら、図2に示したように予め複数のパターン画像91~95が登録されている分類候補90に対し、図3のように新たなパターン画像96が追加登録された場合であっても、入力データD1に含まれる入力画像が、先の分類候補90に登録されていた複数のパターン画像91~95のいずれかに類似した画像であることもある。この場合には、プログラマブルロジックデバイス15の回路が再構成される前であっても、プログラマブルロジックデバイス15において信頼性の高い推論処理を行うことが可能である。しかも、この場合は、プロセッサー14で推論処理を行うよりも短時間で推論結果を得ることができるという利点がある。
【0105】
そこで、本実施形態では、変換部12において新規な学習モデル24をロジックデータ25に変換する処理が行われている期間であっても、制御部13が、推論処理の対象となる入力データD1を取得したときには、先にプログラマブルロジックデバイス15に推論処理を実行させ、プログラマブルロジックデバイス15による推論結果の信頼性が所定値よりも低い場合に、プロセッサー14による新規な学習モデル24に基づく推論処理を実行させる形態について説明する。尚、本実施形態においても、情報処理システム1の具体的な構成例は、第1実施形態で説明したものと同様である。
【0106】
図14は、本実施形態の端末装置2における動作プロセスを示す図である。端末装置2の制御部13は、サーバー装置5において新規な学習モデル24が生成されると、第1実施形態と同様のプロセスを経て、サーバー装置5から新規な学習モデル24と、プロセッサー用ソフトウェア26とを取得する(プロセスP8,P9)。このとき、制御部13は、学習モデル24が更新されたことを示す更新フラグをセットする。
【0107】
その後、サーバー装置5において新規な学習モデル24に対応するロジックデータ25が生成される前に、制御部13が、推論処理の対象となる入力データD1を検知すると(プロセスP35)、制御部13は、まずプログラマブルロジックデバイス15に対して推論処理の実行を指示する(プロセスP36)。このとき、制御部13は、プログラマブルロジックデバイス15に対して入力データD1を提供する。
【0108】
プログラマブルロジックデバイス15は、推論処理の実行が指示されると、新規な学習モデル24が生成される以前の古い学習モデル24に基づく推論処理の実行を開始する(プロセスP37)。そして所定時間T2が経過した後に推論処理が終了し(プロセスP38)、プログラマブルロジックデバイス15は、制御部13に対して推論結果を出力する(プロセスP39)。
【0109】
制御部13は、プログラマブルロジックデバイス15から推論結果を取得すると、その推論結果を判別する(プロセスP40)。すなわち、制御部13は、プログラマブルロジックデバイス15による推論結果の信頼性が所定値以上であるか否かを判断する。例えば、制御部13は、入力データD1に含まれる入力画像に対して最も一致度が高いパターン画像を選択し、その選択したパターン画像の一致度が80%以上であるか否かを判断する。例えば、入力画像に対して最も一致度が高いパターン画像の一致度が80%以上である場合、制御部13は、プログラマブルロジックデバイス15による推論結果の信頼性が所定値以上であると判別する。プログラマブルロジックデバイス15による推論結果の信頼性が所定値以上であれば、制御部13は、その推論結果を所定の出力先に出力して推論処理を終了させる。
【0110】
一方、入力画像に対して最も一致度が高いパターン画像の一致度が80%未満である場合、制御部13は、プログラマブルロジックデバイス15による推論結果の信頼性が所定値よりも低いと判別する。プログラマブルロジックデバイス15による推論結果の信頼性が所定値より低い場合、制御部13は、推論処理の実行主体を、プログラマブルロジックデバイス15からプロセッサー14に切り替える(プロセスP41)。そして制御部13は、プロセッサー14に対して推論処理の実行を指示する(プロセスP42)。このとき、制御部13は、プロセッサー14に対して入力データD1を提供する。
【0111】
プロセッサー14は、推論処理の実行が指示されると、新規な学習モデル24に基づく推論処理の実行を開始する(プロセスP43)。そして所定時間T1が経過した後に推論処理が終了し(プロセスP44)、プロセッサー14は、制御部13に対して推論結果を出力する(プロセスP45)。制御部13は、プロセッサー14から推論結果を取得すると、その推論結果を所定の出力先に出力する(プロセスP46)。
【0112】
このように本実施形態の情報処理システム1は、変換部12によって新規な学習モデル24がロジックデータ25に変換されている期間において、推論処理の対象となる入力データD1を取得した場合、プロセッサー14に推論処理を実行させる前に、プログラマブルロジックデバイス15に推論処理を実行させる。そして情報処理システム1は、プログラマブルロジックデバイス15による処理結果に応じてプロセッサー14に推論処理を実行させるか否かを決定する。例えば上述のように、情報処理システム1は、プログラマブルロジックデバイス15による推論結果の信頼性が所定値よりも低い場合に、プロセッサー14に、新規な学習モデル24に基づく推論処理を実行させるように構成される。
【0113】
次に、本実施形態における制御部13の処理手順について説明する。図15は、制御部13による処理手順の一例を示すフローチャートである。例えば、この処理は、制御部13のCPUが所定のプログラムを実行することによって行われる処理である。また、この処理は、端末装置2に対する電源投入に伴って制御部13により実行される処理である。
【0114】
制御部13は、この処理を開始すると、まず、推論処理の実行主体をプログラマブルロジックデバイス15に初期設定する(ステップS20)。
【0115】
次に制御部13は、サーバー装置5から新規な学習モデル24が生成されたことを示す通知を受信したか否かを判断する(ステップS21)。通知を受信している場合(ステップS21でYES)、制御部13は、サーバー装置5から、新規な学習モデル24を取得すると共に(ステップS22)、プロセッサー用ソフトウェア26を取得する(ステップS23)。そして制御部13は、学習モデル24が更新されたことを示す更新フラグを内部メモリにセットする(ステップS24)。この更新フラグは、サーバー装置5において新規な学習モデル24をロジックデータ25に変換する処理が行われていることを示すフラグである。一方、サーバー装置5から新規な学習モデル24が生成されたことを示す通知を受信していない場合(ステップS2でNO)、制御部13は、ステップS21~S24の処理をスキップする。
【0116】
次に制御部13は、推論処理の対象となる入力データD1を検知したか否かを判断する(ステップS6)。入力データD1を検知している場合(ステップS6でYES)、制御部13は、入力データD1に対する推論処理をプログラマブルロジックデバイス15に実行させる(ステップS26)。これにより、プログラマブルロジックデバイス15は、ステップS22,S23で取得された新規な学習モデル24及びプロセッサー用ソフトウェア26に基づいて推論処理を実行する。ただし、この推論処理に適用される学習モデルは、新規な学習モデル24が生成される前の古い学習モデルである。
【0117】
プログラマブルロジックデバイス15による推論処理が終了すると、制御部13は、その推論結果の信頼性を判定する(ステップS27)。すなわち、制御部13は、プログラマブルロジックデバイス15による推論結果の信頼性が所定値よりも低いか否かを判断する(ステップS28)。推論結果の信頼性が所定値よりも低い場合(ステップS28でYES)、制御部13は、更新フラグがセットされているか否かを確認する(ステップS29)。その結果、更新フラグがセットされている場合(ステップS29でYES)、制御部13は、推論処理の実行主体を、プログラマブルロジックデバイス15からプロセッサー14に切り替え(ステップS30)、プロセッサー14に推論処理を実行させる(ステップS31)。これにより、新規な学習モデル24を反映させた推論処理をプロセッサー14で実行させることができる。
【0118】
ただし、プログラマブルロジックデバイス15による推論結果の信頼性が所定値以上である場合(ステップS28でNO)、或いは、更新フラグがセットされていない場合(ステップS29でNO)、制御部13は、ステップS30,S31の処理を行わない。なぜなら、プロセッサー14で推論処理を行っても、プログラマブルロジックデバイス15による推論結果と同じ結果が得られるため、プロセッサー14で推論処理を行う意味がないからである。
【0119】
次に制御部13は、サーバー装置5から新規な学習モデル24に対応するロジックデータ25が生成されたことを示す通知を受信したか否かを判断する(ステップS32)。通知を受信している場合(ステップS32でYES)、制御部13は、サーバー装置5から、新規な学習モデル24に対応するロジックデータ25を取得する(ステップS33)。そして制御部13は、プログラマブルロジックデバイス15の回路を、サーバー装置5から取得したロジックデータ25に基づいて再構成する処理を実行する(ステップS34)。そしてプログラマブルロジックデバイス15における回路の再構成が完了すると、制御部13は、更新フラグを解除する(ステップS35)。一方、サーバー装置5からロジックデータ25が生成されたことを示す通知を受信していない場合(ステップS32でNO)、制御部13は、ステップS33~S35の処理をスキップする。
【0120】
次に制御部13は、端末装置2の電源がオフにされたか否かを判断する(ステップS36)。電源がオフにされていない場合(ステップS36でNO)、制御部13は、ステップS21以降の処理を繰り返す。一方、電源がオフにされた場合(ステップS36でYES)、制御部13による処理が終了する。
【0121】
以上のように本実施形態の情報処理システム1は、新規な学習モデル24が生成され、その新規な学習モデル24に基づくロジックデータ25がプログラマブルロジックデバイス15に反映されていない場合であっても、推論処理の対象となる入力データD1が取得されたときには最初にプログラマブルロジックデバイス15による推論処理を実行する。これにより、情報処理システム1は、入力データD1を対象とする推論処理の結果を早期に得ることが可能である。
【0122】
ただし、プログラマブルロジックデバイス15による推論結果の信頼性が所定値よりも低い場合、情報処理システム1は、プログラマブルロジックデバイス15による推論結果を直ちに採用せず、新規な学習モデル24に基づく推論処理をプロセッサー14に実行させるようにしている。そのため、本実施形態の情報処理システム1は、プログラマブルロジックデバイス15による推論結果の信頼性が低い場合には、あらためてプロセッサー14に推論処理を行わせることで、信頼性の高い推論結果を得ることが可能である。
【0123】
尚、本実施形態において上述した点以外の構成及び動作については、第1実施形態で説明したものと同様である。
【0124】
(第3実施形態)
次に本発明の第3実施形態について説明する。第1及び第2実施形態では、新規な学習モデル24がロジックデータ25に変換されている期間において、制御部13が、推論処理の対象となる入力データD1を取得した場合に、プロセッサー14において推論処理を実行させることにより、新規な学習モデル24に基づく推論処理を早期に行うことが可能な形態を例示した。
【0125】
ところで、推論処理の対象となる入力データD1に複数の入力画像が含まれることがある。その場合、プロセッサー14は、複数の入力画像のそれぞれに対する推論処理を順次実行しなければならなくなる。プロセッサー14による推論処理は、プログラマブルロジックデバイス15による推論処理よりも時間がかかるため、複数の入力画像のそれぞれに対する推論処理が全て終了するまでに多大な時間を要することが想定される。
【0126】
そこで、本実施形態では、新規な学習モデル24がロジックデータ25に変換されている期間において、端末装置2が、複数の入力画像を含む入力データD1を取得した場合、ネットワーク4に接続されている他の端末装置3に推論処理を分散させることにより、複数の入力画像のそれぞれに対する推論処理が完了するまでに要する時間を短縮できるようにした構成例について説明する。尚、本実施形態においても、情報処理システム1の全体的な構成例は、第1実施形態で説明したものと同様である。
【0127】
図16は、本実施形態における、端末装置2の構成例を示すブロック図である。本実施形態の端末装置2が第1実施形態と異なる点は、推論処理制御部30にある。すなわち、本実施形態の推論処理制御部30は、切替部30aに加え、更に装置判定部30bと、分散処理部30cとを備えている。
【0128】
推論処理制御部30は、サーバー装置5から新規な学習モデル24とプロセッサー用ソフトウェア26とを取得した後、新規な学習モデル24に対応するロジックデータ25を取得していない状態で、推論対象となる入力データD1を取得すると、その入力データD1に複数の入力画像が含まれているか否かを判断する。その結果、入力データD1に複数の入力画像が含まれており、それら複数の入力画像のそれぞれに対する推論処理を行うことが必要である場合、推論処理制御部30は、装置判定部30bと、分散処理部30cとを機能させる。
【0129】
装置判定部30bは、ネットワーク4に接続されている他の端末装置3から装置情報を取得し、その装置情報を解析することにより、他の端末装置3が推論処理を行うことが可能な装置であるか否かを判定する。ここで、装置判定部30bが他の端末装置3から取得する装置情報には、例えば、CPUやメモリなどのハードウェア資源の処理能力に関する情報、ハードウェア資源の現在の使用率に関する情報、オペレーティングシステムのバージョン情報などが含まれる。装置判定部30bは、それらの情報を参照して他の端末装置3が推論処理を行うことが可能な装置であるか否かを判定する。尚、他の端末装置3のハードウェア資源やオペレーティングシステムのバージョンが推論処理を行うのに必要な条件を満たしている場合であっても、他の端末装置3におけるハードウェア資源の現在の使用率が所定値を超えている場合には、他の端末装置3が他の処理によってビジー状態にあると言える。そのため、装置判定部30bは、ビジー状態にある他の端末装置3を、推論処理を行うことが可能な装置からは除外する。
【0130】
また、ネットワーク4に複数の他の端末装置3が接続されている場合、装置判定部30bは、それら複数の他の端末装置3のそれぞれから装置情報を取得し、それら複数の他の端末装置3のそれぞれが推論処理を行うことが可能な装置であるか否かを判定する。そして装置判定部30bは、ネットワーク4に接続されている少なくとも1つの他の端末装置3を、分散処理を実行させる装置として選択する。尚、装置判定部30bは、分散処理を実行させる装置として、複数の端末装置3を選択するものであっても構わない。
【0131】
装置判定部30bは、分散処理を実行させる他の端末装置3を選択すると、その選択した他の端末装置3に対し、サーバー装置5から、新規な学習モデル24とプロセッサー用ソフトウェア26とを取得することを指示する。これにより、他の端末装置3は、サーバー装置5にアクセスし、サーバー装置5において生成された新規な学習モデル24と、プロセッサー用ソフトウェア26とを取得し、推論処理を行うことが可能な状態を整える。
【0132】
分散処理部30cは、入力データD1に含まれる複数の入力画像を対象とする推論処理が行われるとき、複数の入力画像を、端末装置2のプロセッサー14に推論処理を行わせる第1の画像群と、装置判定部30bによって選択された他の端末装置3に推論処理を行わせる第2の画像群とに分割する。そして分散処理部30cは、第1の画像群をプロセッサー14に出力して推論処理を実行させると共に、第2の画像群を他の端末装置3に出力して他の端末装置3に推論処理を実行させる。これにより、端末装置2のプロセッサー14における推論処理と、他の端末装置3のプロセッサー14における推論処理とが並列して行われるようになり、複数の入力画像に対する推論処理を同時に進行させることができる。
【0133】
図17は、本実施形態における情報処理システム1における動作プロセスを示す図である。サーバー装置5において新規な学習モデル24が生成され、その新規な学習モデル24をロジックデータ25に変換する処理が行われている期間において、端末装置2が、推論処理の対象となる入力データD1を検知した場合を例示する。端末装置2は、入力データD1を検知し、その入力データD1に複数の入力画像が含まれていることを検知すると(プロセスP50)、ネットワーク4を介して他の端末装置3に装置情報を要求する(プロセスP51)。この要求を受信すると、他の端末装置3は、端末装置2に対して装置情報を送信する(プロセスP52)。これにより、端末装置2は、他の端末装置3の装置情報を取得することができる。
【0134】
端末装置2は、他の端末装置3の装置情報を取得すると、他の端末装置3が推論処理を行うことが可能な装置であるか否かの判定を行う(プロセスP53)。その結果、他の端末装置3が推論処理を行うことが可能である場合、端末装置2は、他の端末装置3に対し、サーバー装置5から、新規な学習モデル24と、プロセッサー用ソフトウェア26とを取得することを指示する(プロセスP54)。これにより、他の端末装置3は、サーバー装置5に対し、新規な学習モデル24とプロセッサー用ソフトウェア26を要し(プロセスP55)、サーバー装置5から、新規な学習モデル24とプロセッサー用ソフトウェア26とを取得する(プロセスP56)。そして他の端末装置3は、端末装置2に対し、新規な学習モデル24とプロセッサー用ソフトウェア26との取得が完了したことを通知する(プロセスP57)。
【0135】
端末装置2は、他の端末装置3において推論処理のための準備が整うと、他の端末装置3に対し、入力データD1に含まれる1つの入力画像を送信し、他の端末装置3において1つの入力画像に対する推論処理を開始させる(プロセスP59)。これにより、他の端末装置3において新規な学習モデル24に基づく推論処理が実行される。また、端末装置2は、自機のプロセッサー14において入力データD1に含まれる別の入力画像に対する推論処理を開始させる(プロセスP60)。これにより、端末装置2は、自機においても新規な学習モデル24に基づく推論処理を実行することができる。端末装置2における推論処理は、推論処理の開始から所定時間T1が経過した後に終了する(プロセスP61)。また、他の端末装置3における推論処理は、推論処理の開始から所定時間T1が経過した後に終了する(プロセスP62)。他の端末装置3は、推論処理が終了すると、端末装置2に対して推論結果を出力する(プロセスP63)。
【0136】
端末装置2は、他の端末装置3から1つの入力画像に対する推論結果を取得すると、次に入力データD1に含まれる別の1つの入力画像を送信し、他の端末装置3において引き続き更に別の入力画像に対する推論処理を開始させる(プロセスP65)。また、端末装置2は、自機においても入力データD1に含まれる更に別の入力画像に対する推論処理を開始させる(プロセスP66)。端末装置2における推論処理は、推論処理の開始から所定時間T1が経過した後に終了する(プロセスP67)。また、他の端末装置3における推論処理は、推論処理の開始から所定時間T1が経過した後に終了する(プロセスP68)。他の端末装置3は、推論処理が終了すると、上記と同様に、端末装置2に対して推論結果を出力する(プロセスP69)。
【0137】
端末装置2は、上記のように自機における推論処理と、他の端末装置3における推論処理とを並列して実行させる処理を繰り返し行い、入力データD1に含まれる複数の入力画像のそれぞれに対する推論処理を完了させる。そして全ての入力画像に対する推論処理が完了すると、端末装置2は、所定の出力先に推論結果を出力する(プロセスP70)。
【0138】
したがって、本実施形態の情報処理システム1は、入力データD1に複数の入力画像が含まれている場合に、端末装置2と他の端末装置3とで推論処理を分散させることにより、新規な学習モデル24に基づく複数の推論処理を並列して実行させることが可能である。これにより、1つの端末装置2で複数の入力画像のそれぞれに対する推論処理を順次実行している場合に比べて、全ての入力画像に対する推論結果を効率的に取得することが可能である。
【0139】
上記においては、入力データD1に複数の入力画像が含まれる場合を例示したが、これに限られるものではない。例えば、端末装置2の制御部13は、ネットワーク4を介して他の端末装置3と通信可能であり、サーバー装置5の変換部12によって新規な学習モデル24がロジックデータ25に変換されている期間において、新規な学習モデル24に基づく特定の処理を端末装置2のプロセッサー14に実行させるとき、新規な学習モデル24に基づく特定の処理のうちの一部を他の端末装置3に分散処理させるものであれば良い。すなわち、制御部13は、自機のプロセッサー14において新規な学習モデル24に基づく特定の処理を実行させるとき、新規な学習モデル24に基づく特定の処理のうちの一部を他の端末装置3に分散処理させる構成とすることにより、端末装置2が単独で特定の処理を実行するよりも、効率的に特定の処理を実行することができるという利点がある。
【0140】
尚、本実施形態において上述した点以外の構成及び動作については、第1実施形態又は第2実施形態で説明したものを適用することが可能である。そのため、例えば、端末装置2が新規な学習モデル24に基づく特定の処理を実行するとき、第2実施形態で説明したように最初にプログラマブルロジックデバイス15に特定の処理を実行させるようにしても良い。そしてプログラマブルロジックデバイス15による特定の処理の結果の信頼性が低い場合に、情報処理システム1は、端末装置2と他の端末装置3とに特定の処理を分散させて処理させるように構成しても良い。
【0141】
(変形例)
以上、本発明に関する実施形態について説明したが、本発明は、上記実施形態において説明した内容のものに限られるものではなく、種々の変形例が適用可能である。
【0142】
例えば上記実施形態では、情報処理システム1がサーバー装置5を備えており、サーバー装置5に、機械学習実行部11及び変換部12の機能が搭載される場合を例示した。しかし、これに限られるものではなく、機械学習実行部11及び変換部12の機能は、端末装置2に搭載されていても構わない。この場合、端末装置2には、プロセッサー14、プログラマブルロジックデバイス15、機械学習実行部11、変換部12、及び、制御部13が実装される。そのため、端末装置2は、ディープラーニングによる機械学習を実行することによって特定の処理のための新規な学習モデルを生成し、その新規な学習モデルをプログラマブルロジックデバイス15で動作可能なロジックデータ25に変換する。そして端末装置2は、新規な学習モデル24をロジックデータ25に変換している期間において、新規な学習モデル24に基づく特定の処理をプロセッサー14に実行させることが可能な構成として実現される。
【0143】
また、上記実施形態では、一例として、端末装置2,3がパーソナルコンピュータ(PC)やタブレット端末などで構成される場合を例示した。しかし、これに限られるものではない。例えば、上述した端末装置2,3は、原稿の画像を光学的に読み取って画像データを生成するスキャン機能を備えたMFP(Multifunction Peripherals)などによって構成される装置であっても構わない。
【0144】
また、上記実施形態では、学習モデル24に基づく特定の処理の一例として、入力データD1に入力画像が含まれており、分類候補として設定されている複数のパターン画像のそれぞれと入力画像との一致度を推論する推論処理を実行する場合を例示した。しかし、特定の処理は、上記のような推論処理に限られるものではない。すなわち、本発明における特定の処理は、画像処理に限られない。
【0145】
また、上記実施形態では、制御部13のCPUによって実行されるプログラムが予め記憶部29に記憶されている例を説明した。しかし、そのプログラムは、任意のタイミングで端末装置2,3にインストール可能な態様で提供されるものであっても構わない。この場合、プログラムは、ネットワーク4などを介して端末装置2,3にダウンロード可能な態様で提供されるものであっても良いし、またCD-ROMやUSBメモリなどのコンピュータ読み取り可能な記録媒体に記録された状態で提供されるものであっても構わない。
【符号の説明】
【0146】
1 情報処理システム
2,3 端末装置(情報処理装置)
4 ネットワーク
5 サーバー装置
11 機械学習実行部
12 変換部
13 制御部
14 プロセッサー
15 プログラマブルロジックデバイス
24 学習モデル
25 ロジックデータ
26 プロセッサー用ソフトウェア
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17