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

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

▶ キヤノン株式会社の特許一覧

特許7467157学習装置、画像認識装置、学習方法、画像認識装置の制御方法およびプログラム
<>
  • 特許-学習装置、画像認識装置、学習方法、画像認識装置の制御方法およびプログラム 図1
  • 特許-学習装置、画像認識装置、学習方法、画像認識装置の制御方法およびプログラム 図2
  • 特許-学習装置、画像認識装置、学習方法、画像認識装置の制御方法およびプログラム 図3
  • 特許-学習装置、画像認識装置、学習方法、画像認識装置の制御方法およびプログラム 図4
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-05
(45)【発行日】2024-04-15
(54)【発明の名称】学習装置、画像認識装置、学習方法、画像認識装置の制御方法およびプログラム
(51)【国際特許分類】
   G06T 7/00 20170101AFI20240408BHJP
   G06N 20/00 20190101ALI20240408BHJP
【FI】
G06T7/00 350C
G06N20/00
【請求項の数】 15
(21)【出願番号】P 2020026507
(22)【出願日】2020-02-19
(65)【公開番号】P2021131716
(43)【公開日】2021-09-09
【審査請求日】2023-02-16
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100125254
【弁理士】
【氏名又は名称】別役 重尚
(72)【発明者】
【氏名】石栗 隆一
【審査官】千葉 久博
(56)【参考文献】
【文献】特開2019-96285(JP,A)
【文献】特開2017-130196(JP,A)
【文献】国際公開第2019/171116(WO,A1)
【文献】国際公開第2018/142765(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
画像認識装置から該画像認識装置の処理能力の情報および認識対象の情報を受信する受信手段と、
前記処理能力を満たすように、前記認識対象の画像認識に適用される学習モデルの構成を調整する調整手段と、
調整された前記学習モデルを機械学習して、前記認識対象を認識可能な第1の学習済みモデルを生成する学習手段と、
前記第1の学習済みモデルを前記画像認識装置に送信する送信手段と、
を備え
前記送信手段は、前記第1の学習済みモデルを前記画像認識装置に送信する前に、前記第1の学習済みモデルよりも精度が低く、且つ前記処理能力を満たし前記認識対象の画像認識が可能な第2の学習済みモデルを前記画像認識装置に送信することを特徴とする学習装置。
【請求項2】
前記調整手段は、前記学習モデルのデータサイズと演算量とが前記処理能力を満たすように前記学習モデルの構成を調整することを特徴とする請求項1に記載の学習装置。
【請求項3】
前記調整手段は、複数の処理能力ごと且つ複数の認識対象ごとに学習モデルを記録する記録部から、調整を行う学習モデルを選択することを特徴とする請求項1または2に記載の学習装置。
【請求項4】
前記調整手段は、前記機械学習が収束しない場合、複数の前記認識対象のうち優先度が最も低い認識対象から順に除外する調整を行い、
前記学習手段は、調整された前記学習モデルを機械学習して、前記第1の学習済みモデルを生成することを特徴とする請求項1乃至3のうち何れか1項に記載の学習装置。
【請求項5】
前記調整手段は、前記機械学習が収束するまで前記除外する調整を行うことを特徴とする請求項4に記載の学習装置。
【請求項6】
前記優先度は、複数の前記認識対象のそれぞれについての優先度の指定を促す画面から指定されることを特徴とする請求項4または5に記載の学習装置。
【請求項7】
前記調整手段は、前記第1の学習済みモデルの規模を削減する処理を行い、
前記送信手段は、前記規模が削減された前記第1の学習済みモデルが前記処理能力を満たす場合に、前記第1の学習済みモデルを前記画像認識装置に送信することを特徴とする請求項1乃至6のうち何れか1項に記載の学習装置。
【請求項8】
前記第1の学習済みモデルを取得する要求を所定期間、前記画像認識装置から受信しない場合、前記第1の学習済みモデルは削除されることを特徴とする請求項1乃至7のうち何れか1項に記載の学習装置。
【請求項9】
前記学習モデルは、畳み込みニューラルネットワークのモデルであることを特徴とする請求項1乃至8のうち何れか1項に記載の学習装置。
【請求項10】
前記調整手段は、前記畳み込みニューラルネットワークのモデルのシナプス数とレイヤー数と発火関数の出力値の粒度とのうち少なくとも1つを調整することを特徴とする請求項9に記載の学習装置。
【請求項11】
画像認識装置であって、
学習装置に対して前記画像認識装置の処理能力の情報および認識対象の情報を送信する送信手段と、
前記処理能力を満たすように、前記認識対象の画像認識に適用される学習モデルの構成を調整し、調整された前記学習モデルを機械学習して生成される、前記認識対象を認識可能な第1の学習済みモデルを受信する受信手段と、
前記第1の学習済みモデルを用いて画像認識を行う画像認識手段と、
を備え
前記受信手段は、前記第1の学習済みモデルを受信する前に、前記第1の学習済みモデルよりも精度が低く、且つ前記処理能力を満たし前記認識対象の画像認識が可能な第2の学習済みモデルを受信することを特徴とする画像認識装置。
【請求項12】
画像認識装置から該画像認識装置の処理能力の情報および認識対象の情報を受信する工程と、
前記処理能力を満たすように、前記認識対象の画像認識に適用される学習モデルの構成を調整する工程と、
調整された前記学習モデルを機械学習して、前記認識対象を認識可能な第1の学習済みモデルを生成する工程と、
前記第1の学習済みモデルを前記画像認識装置に送信する工程と、
を備え
前記学習済みモデルを前記画像認識装置に送信する工程では、前記第1の学習済みモデルを前記画像認識装置に送信する前に、前記第1の学習済みモデルよりも精度が低く、且つ前記処理能力を満たし前記認識対象の画像認識が可能な第2の学習済みモデルを前記画像認識装置に送信することを特徴とする学習方法。
【請求項13】
画像認識装置の制御方法であって、
学習装置に対して前記画像認識装置の処理能力の情報および認識対象の情報を送信する工程と、
前記処理能力を満たすように、前記認識対象の画像認識に適用される学習モデルの構成を調整し、調整された前記学習モデルを機械学習して生成される、前記認識対象を認識可能な第1の学習済みモデルを受信する工程と、
前記第1の学習済みモデルを用いて画像認識を行う工程と、
を備え
前記第1の学習済みモデルを受信する工程では、前記第1の学習済みモデルを受信する前に、前記第1の学習済みモデルよりも精度が低く、且つ前記処理能力を満たし前記認識対象の画像認識が可能な第2の学習済みモデルを受信することを特徴とする画像認識装置の制御方法。
【請求項14】
請求項1乃至10のうち何れか1項に記載の学習装置の各手段をコンピュータに実行させるためのプログラム。
【請求項15】
請求項11に記載の画像認識装置の各手段をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、学習装置、画像認識装置、学習方法、画像認識装置の制御方法およびプログラムに関する。
【背景技術】
【0002】
近年、畳み込みニューラルネットワーク(CNN:Convolutional Neural Network)モデルに基づく深層学習が、画像認識に応用されるようになっている。CNNモデルは、多くの学習データを用いて機械学習されることで、画像認識の精度が向上する。関連する技術として特許文献1の技術が提案されている。特許文献1の技術は、ニューラルネットワークの各ニューロンの出力値を定義するシグモイド関数のデータテーブルの上限および下限を、データテーブルの分解能に応じて決めるように構成している。
【先行技術文献】
【特許文献】
【0003】
【文献】特開平06-030425号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
画像認識の精度が高いCNNモデルは、一般にデータサイズが大きく、画像認識の推論処理を行うための高い性能がプロセッサに求められる。一方、眼鏡型ウェアラブルデバイスのようなエッジデバイス(画像認識装置)は、ハードウェア資源が乏しいため、精度が高いCNNモデルを用いた画像認識を行うことが難しい。以上の問題は、CNNモデルだけでなく、任意の学習モデルにも生じ得るものである。
【0005】
本発明は、画像認識装置の性能に応じた学習済みモデルを画像認識装置に搭載させることを目的とする。
【課題を解決するための手段】
【0006】
上記目的を達成するために、本発明の学習装置は、画像認識装置から該画像認識装置の処理能力の情報および認識対象の情報を受信する受信手段と、前記処理能力を満たすように、前記認識対象の画像認識に適用される学習モデルの構成を調整する調整手段と、調整された前記学習モデルを機械学習して、前記認識対象を認識可能な第1の学習済みモデルを生成する学習手段と、前記第1の学習済みモデルを前記画像認識装置に送信する送信手段と、を備え、前記送信手段は、前記第1の学習済みモデルを前記画像認識装置に送信する前に、前記第1の学習済みモデルよりも精度が低く、且つ前記処理能力を満たし前記認識対象の画像認識が可能な第2の学習済みモデルを前記画像認識装置に送信することを特徴とする。
【発明の効果】
【0007】
本発明によれば、画像認識装置の性能に応じた学習済みモデルを画像認識装置に搭載させることができる。
【図面の簡単な説明】
【0008】
図1】本実施形態のシステムの一例を示す図である。
図2】システム全体の処理の流れを示すシーケンス図である。
図3】学習サーバの処理の流れを示すフローチャートである。
図4】物体認識グラスの処理の流れを示すフローチャートである。
【発明を実施するための形態】
【0009】
以下、本発明の各実施の形態について図面を参照しながら詳細に説明する。しかしながら、以下の実施形態に記載されている構成はあくまで例示に過ぎず、本発明の範囲は各実施の形態に記載されている構成によって限定されることはない。
【0010】
以下、図面を参照して、本実施形態について説明する。図1は、本実施形態のシステムの一例を示す図である。本実施形態のシステムは、学習サーバA100および物体認識グラスB100を有する。学習サーバA100と物体認識グラスB100とは、インターネットC100を介して、相互に通信可能である。学習サーバA100は、物体認識グラスB100に搭載される学習済みモデルを、機械学習を行うことにより生成し、生成された学習済みモデルを物体認識グラスB100に送信する学習装置である。学習サーバA100は、例えば、クラウドサーバ等であってもよい。
【0011】
物体認識グラスB100は、眼鏡型ウェアラブルデバイスであり、エッジデバイスとしての画像認識装置である。画像認識装置は、携帯型のパーソナルコンピュータやスマートフォン、タブレット端末、メディアプレーヤ、撮像装置等の任意のデバイスであってよい。本実施形態では、画像認識装置のハードウェア資源は、学習サーバA100のハードウェア資源よりも乏しいものとする。
【0012】
まず、学習サーバA100について説明する。制御部A101は、学習サーバA100の全体を統括的にコントロールする。制御部A101は、例えば、CPUにより実現される。制御部A101は、制御手段に対応する。学習サーバA100の全体のコントロールは、制御部A101により行われてもよいし、複数のハードウェアが処理を分担することにより行われてもよい。不揮発性メモリA102は、電気的に消去および記録をすることが可能な不揮発性のメモリであり、制御部A101で実行されるプログラム等が格納される。作業用メモリA103は、学習処理に使用されるバッファメモリや、表示部A105の画像表示用メモリ、制御部A101の作業領域等として使用される。作業用メモリA103に展開されたプログラムをCPUが実行することにより、制御部A101の機能が実現されてもよい。
【0013】
操作部A104は、学習サーバA100に対するユーザからの指示を受け付けるために用いられる。操作部A104は、例えば、学習サーバA100の電源ボタンやキーボード、マウス等を含む。表示部A105は、所定の情報を表示する。例えば、表示部A105は、学習データの表示や対話的な操作のためのGUI(Graphical User Interface)等の表示を行う。表示部A105は、学習サーバA100の外部の表示装置であってもよい。この場合、学習サーバA100と表示装置とが接続される。そして、学習サーバA100の制御により、表示装置の表示内容が制御される。
【0014】
学習部A106は、学習モデルの機械学習を行う学習手段である。学習モデルは、例えば、記録媒体A110に記録される。本実施形態では、学習部A106は、畳み込みニューラルネットワーク(CNN)に基づく機械学習(深層学習)を行い、物体認識に適した学習済みモデルを生成する。学習部A106は、例えば、決定木やサポートベクターマシン、ロジスティクス回帰等の任意の機械学習アルゴリズムを適用して、学習処理を行ってもよい。学習部A106は、例えば、GPU(Graphics Processing Unit)により実現されてもよいし、CPUとGPUとが協働して動作することで、実現されてもよい。
【0015】
機械学習された学習済みのCNNモデルは、入力値から出力値を推論する推論処理に用いられる。学習部A106は、CNNモデルの機械学習を行う際、画像データを入力とし、入力された画像データに含まれる物体のタグ情報を教師データとした教師あり学習を行う。タグ情報は、例えば、「自動車」や「樹木」、「人」、「犬」等である。以下、入力値となる画像データおよび教師データとなるタグ情報を、学習セットと称する。学習部A106は、多くの学習セットを用いて、CNNモデルの機械学習を行う。学習部A106は、例えば、誤差逆伝搬法等を用いて、CNNモデルの機械学習を行う。
【0016】
記録媒体A110は、多くの学習セットを記録する。記録媒体A110は、記録部に対応する。記録媒体A110は、学習サーバA100に着脱可能なように構成されていてもよいし、学習サーバA100に内蔵されていてもよい。学習サーバA100は、記録媒体A110にアクセスすることが可能である。なお、学習セットは、記録媒体A110ではなく、異なる記録部(例えば、不揮発性メモリA102等)に記録されていてもよい。
【0017】
通信部A120は、インターネットC100を介して、物体認識グラスB100と通信を行う。通信部A120は、受信手段および送信手段に対応する。通信部A120は、例えばIEEE802.11規格に準拠した無線LAN通信を行うインターフェースである。無線LAN通信によって、アクセスポイントと無線による通信を行うことができる。また、TCP/IP等の上位のプロトコルによって、アクセスポイントを介して、クラウドネットワークに接続されている機器との間でデータの送受信もできる。なお、通信部A120の通信方式は、上記の例には限定されない。
【0018】
次に、物体認識グラスB100について説明する。制御部B101は、物体認識グラスB100の全体を統括的にコントロールする。制御部B101は、例えば、CPUにより実現される。物体認識グラスB100の全体のコントロールは、制御部B101により行われてもよいし、複数のハードウェアが処理を分担することにより行われてもよい。不揮発性メモリB102は、電気的に消去および記録をすることが可能な不揮発性のメモリであり、制御部B101で実行されるプログラム等が格納される。作業用メモリB103は、学習モデルを一時的に展開するバッファメモリや、表示部B105の画像表示用メモリ、制御部B101の作業領域等として使用される。例えば、作業用メモリB103に展開されたプログラムをCPUが実行することにより、制御部B101の機能が実現されてもよい。
【0019】
操作部B104は、物体認識グラスB100に対するユーザからの指示を受け付けるために用いられる。操作部B104は、例えば、物体認識グラスB100の電源ボタンや、操作ボタンを含む。表示部B105は、所定の情報を表示する。例えば、表示部B105は、学習データの表示や対話的な操作のためのGUI等の表示を行う。画像認識装置が、物体認識グラスB100でない場合、表示部B105は、画像認識装置と接続可能な外部の表示装置として設けられてもよい。
【0020】
画像認識部B106は、画像撮像部B107が撮像した画像データの画像認識を推論により行う画像認識手段である。画像認識部B106は、学習サーバA100から送信された学習済みモデルを用いて認識処理を行う。画像認識部106は、GPUにより実現されてもよいし、CPUとGPUとが協働して動作することで、実現されてもよい。画像撮像部B107は、撮像を行い、画像データを生成する。本実施形態では、画像撮像部B107は、グラスの正面方向に設けられ、ユーザが見ているものと同じ画角の画像を撮像する。画像撮像部B107は、撮像により生成される画像データを、画像認識部B106に渡す。
【0021】
記録媒体B110は、学習サーバA100から取得した学習済みモデルを記録する。上述したように、本実施形態では、学習済みモデルは、学習済みのCNNモデルである。記録媒体B110は、物体認識グラスB100に着脱可能なように構成されていてもよいし、物体認識グラスB100に内蔵されていてもよい。物体認識グラスB100は、記録媒体A110にアクセスすることが可能である。なお、学習済みモデルは、記録媒体B110ではなく、異なる記録部(例えば、不揮発性メモリB102等)に記録されていてもよい。
【0022】
通信部B120は、インターネットC100を介して、学習サーバA100と通信を行う。通信部B120は、送信手段および受信手段に対応する。通信部B120は、例えばIEEE802.11規格に準拠した無線LAN通信を行うインターフェースである。無線LAN通信によって、アクセスポイントと無線による通信を行うことができる。また、TCP/IP等の上位のプロトコルによって、アクセスポイントを介して、クラウドネットワークに接続されている機器との間でデータの送受信もできる。なお、通信部B120の通信方式は、上記の例には限定されない。
【0023】
次に、本実施形態のシステム全体の処理の流れについて説明する。図2は、システム全体の処理の流れを示すシーケンス図である。S201で、物体認識グラスB100の制御部B101は、処理能力情報を送信するように、通信部B120を制御する。これにより、物体認識グラスB100から学習サーバA100に処理能力情報が送信される。処理能力情報は、例えば、画像認識部B106の動作に用いられる制御部B101の動作周波数等に関する情報であってもよいし、不揮発性メモリB102や作業用メモリB103のメモリサイズの情報であってもよい。処理能力情報は、画像認識部B106が画像認識の推論処理を行う際の処理能力を示す指標でもある。
【0024】
S202で、制御部B101は、希望認識対象の情報を学習サーバA100に送信する制御を行う。以下、希望認識対象(認識対象)は複数であるものとして説明するが、希望認識対象は1つであってもよい。これにより、希望認識対象が、物体認識グラスB100から学習サーバA100に送信される。希望認識対象の情報は、画像認識部B106による認識対象が優先度順に登録されたリストである。本実施形態では、最も高い優先度(優先度1)が「自動車」であり、次に高い優先度(優先度2)が「人」であり、最も低い優先度(優先度3)が「犬」であるとする。認識対象の数は3つ以外であってもよい。また、認識対象は、上記の例には限定されない。
【0025】
S203で、制御部A101は、S201で受信した処理能力情報とS202で受信した希望認識対象とを満たす低精度の学習済みモデルを選択する。ここで、本実施形態では、記録媒体A110等に、複数の処理能力ごと且つ複数の認識対象ごとに学習済みモデルが予め記録されているものとする。制御部A101は、物体認識グラスB100から受信した処理能力情報と希望認識対象の情報とに基づいて、物体認識グラスB100の処理能力で希望認識対象を認識可能な低精度の学習済みモデルを選択する。低精度の学習済みモデルは、第2の学習済みモデルに対応する。
【0026】
S204で、制御部A101は、低精度の学習済みモデルを送信する準備が完了した旨の通知(低精度モデル準備完了通知)を、物体認識グラスB100に送信する制御を行う。これにより、学習サーバA100から物体認識グラスB100に、低精度モデル準備完了通知が送信される。S205で、物体認識グラスB100の制御部B101は、受信した低精度モデル準備完了通知に応じて、低精度の学習済みモデルを取得する要求を、学習サーバA100に送信する制御を行う。これにより、物体認識グラスB100から学習サーバA100に低精度の学習済みモデルを取得する要求(低精度モデル取得要求)が送信される。
【0027】
S206で、学習サーバA100の制御部A101は、低精度モデル取得要求に応じて、低精度の学習済みモデル(低精度モデル)を送信する制御を行う。これにより、低精度の学習済みモデルが、学習サーバA100から物体認識グラスB100に送信される。S207で、物体認識グラスB100の制御部B101は、学習サーバA100から受信した低精度の学習済みモデルを記録媒体B110に記録する。これにより、物体認識グラスB100は、後述する高精度の学習済みモデルを取得するまでの間、低精度の学習済みモデルを用いて、物体認識を行うことができる。
【0028】
S208で、学習サーバA100の制御部A101は、高精度の学習モデルを調整する。高精度の学習モデルは、例えば、記録媒体A110等に記録されていている。制御部A101は、S201で受信した処理能力とS202で受信した希望認識対象の情報とを最大限満たすように学習モデルを調整する。つまり、制御部A101は、物体認識グラスB100の処理能力を満たし、複数の希望認識対象のうち少なくとも1つを認識可能なように、学習モデルを調整する。制御部A101は、高精度の学習モデルのデータサイズと演算量とが、物体認識グラスB100の処理能力以下となるように、高精度の学習モデルの調整を行ってもよい。
【0029】
例えば、制御部A101は、CNNを構成するシナプス数やレイヤー数、各シナプスの発火関数の出力値の粒度等の構成やパラメータを調整する。これにより、学習モデルの構成やパラメータが調整される。例えば、制御部A101は、CNNを構成するシナプス数やレイヤー数を少なくすることで、高精度の学習モデルを物体認識グラスB100の処理能力以下とすることができる。また、制御部A101は、CNNを構成する各シナプスの発火関数の出力値の粒度を粗くすることで、高精度の学習モデルを物体認識グラスB100の処理能力以下とすることができる。
【0030】
S209で、制御部A101は、学習部A106に、調整された高精度の学習モデルの機械学習を行わせる。S209の処理は、学習処理である。学習部A106は、例えば、上述したように、画像データを入力とし、入力された画像データに含まれる物体のタグ情報を教師データとした教師あり学習を行う。学習部A106は、例えば、誤差逆伝搬法等を用いて、学習モデルの機械学習を行ってもよい。これにより、高精度の学習モデルが機械学習されて、高精度の学習済みモデルが生成される。高精度の学習済みモデルは、第1の学習済みモデルに対応する。
【0031】
S210で制御部A101は、学習が収束するかを判定し、収束しない場合には、認識対象を削減する。学習の収束については、後述する。制御部A101は、学習が収束しないと判定した場合、処理をS208に戻し、高精度の学習モデルを再調整する。このとき、制御部A101は、物体認識グラスB100から受信した希望対象情報の情報が示す複数の希望認識対象のうち、優先度が最も低いから順に希望認識対象を削減する。上述した例の場合、制御部A101は、優先度が最も低い優先度3である「犬」を認識対象から除外する。そして、制御部A101は、S209の学習処理を行い、S210で学習が収束するかを再度判定する。制御部A101は、S210で学習が収束すると判定するまで、S208からS210までの処理を繰り返す。
【0032】
S211で、制御部A101は、S208からS210の各処理により生成された高精度の学習済みモデルの規模を削減する。S212で、制御部A101は、物体認識グラスB100に、高精度の学習済みモデルを送信する準備が完了したことを示す高精度モデル準備完了通知を送信する制御を行う。これにより、高精度モデル準備完了通知が、学習サーバA100から物体認識グラスB100に送信される。S213で、物体認識グラスB100の制御部B101は、学習サーバA100に、高精度の学習済みモデルを取得する要求である高精度モデル取得要求を送信する制御を行う。これにより、高精度のモデル取得要求通知が、学習サーバA100から物体認識グラスB100に送信される。S214で、学習サーバA100の制御部A101は、物体認識グラスB100に、高精度の学習済みモデル(高精度モデル)を送信する制御を行う。これにより、高精度の学習済みモデルが、学習サーバA100から物体認識グラスB100に送信される。S215で、物体認識グラスB100の制御部B101は、学習サーバA100から受信した高精度の学習済みモデルを記録媒体B110に記録する。
【0033】
次に、学習サーバA100の詳細な処理について説明する。図3は、学習サーバA100の処理の流れを示すフローチャートである。S301で、制御部A101は、通信部A120を介して、物体認識グラスB100から処理能力情報を受信したかを判定する。制御部A101は、S301でNoと判定した場合、つまり処理能力情報を受信していない場合、処理をS301に戻し、処理能力情報を受信するまで待機する。一方、制御部A101は、S301でYesと判定した場合、つまり処理能力情報を受信した場合、処理をS302に進める。
【0034】
S302で、制御部A101は、物体認識グラスB100から受信した処理能力情報を記録媒体A110に記録する。そして、S303で、制御部A101は、通信部A120を介して、物体認識グラスB100から希望認識対象の情報を受信したかを判定する。制御部A101は、S303でNoと判定した場合、つまり希望認識対象の情報を受信していない場合、処理をS303に戻す。一方、制御部A101は、S303でYesと判定した場合、つまり希望認識対象の情報を受信した場合、処理をS304に進める。S304で、制御部A101は、物体認識グラスB100から受信した希望認識対象の情報を記録媒体A110に記録する。
【0035】
S305で、制御部A101は、記録媒体A110に記録されている複数の低精度の学習済みモデルから、物体認識グラスB100の処理能力と希望認識対象とを満たす学習済みモデルを選択する。上述したように、記録媒体A110には、処理能力ごと且つ認識対象ごとに予め機械学習された低精度の学習済みモデルが記録されている。記録媒体A110には、計算量とデータサイズと認識対象とがそれぞれ異なる組み合わせの学習セットで予め機械学習された低精度の学習済みモデルが記録されていてもよい。制御部A101は、記録媒体A110に記録されている複数の低精度の学習済みモデルから、物体認識グラスB100の処理能力と希望認識対象とを満たす学習済みモデルを選択する。
【0036】
S305で、制御部A101は、予め用意された複数の低精度の学習済みモデルから、条件を満たす低精度の学習済みモデルを選択するのではなく、学習部A106に学習処理を行わせてもよい。この場合、学習部A106は、物体認識グラスB100から受信した希望認識対象の情報の条件を満たす低精度の学習済みモデルを生成する学習処理を行う。ここで、学習済みモデルの認識精度よりも、学習済みモデルの生成時間を優先するため、学習部A106は、制御部A101の処理速度に対して十分に小規模な学習済みモデルを生成する。つまり、学習部A106は、制御部A101(CPU)が所定の処理を行うために要する時間の間に、生成可能な程度の小規模な学習済みモデルを生成する。
【0037】
S306で、制御部A101は、通信部A120を介して、物体認識グラスB100に対して低精度モデル準備完了通知を送信する制御を行う。S307で、制御部A101は、通信部A120を介して、物体認識グラスB100から低精度モデル取得要求を受信したかを判定する。制御部A101は、S307でNoと判定した場合、つまり低精度モデル取得要求を受信していない場合、処理をS307に戻す。制御部A101は、S307でYesと判定した場合、つまり低精度モデル取得要求を受信した場合、処理をS308に進める。S308で、制御部A101は、通信部A120を介して、物体認識グラスB100に低精度モデルを送信する制御を行う。これにより、低精度の学習済みモデルが、学習サーバA100から物体認識グラスB100に送信される。
【0038】
S309で、制御部A101は、高精度の学習モデルを調整する。このとき、上述したように、制御部A101は、物体認識グラスB100から受信した処理能力と希望認識対象とを最大限満たすように学習モデルを調整する。そして、S310で、制御部A101は、学習部A106に高精度の学習モデルの機械学習を行わせる。これにより、希望認識対象を認識可能な高精度の学習済みモデルが生成される。複数の希望認識対象のうち優先度が低い希望認識対象が削減されている場合には、削減されていない希望認識対象を認識可能な高精度の学習済みモデルが生成される。S311で、制御部A101は、S310の学習が収束したかを判定する。制御部A101は、S311でNoと判定した場合、つまり学習が収束していない場合、処理をS313に進める。一方、制御部A101は、S311でYesと判定した場合、つまり学習が収束した場合、処理をS314に進める。
【0039】
学習の収束について説明する。上述したように、学習部A106は、機械学習を行う際、画像データを入力とし、入力された画像データに含まれる物体のタグ情報を教師データとした教師あり学習を行う。この場合、学習モデルに入力された画像データに対して、学習モデルが教師データを出力するようになった場合に、学習は収束する。入力された画像データに対する学習モデルの出力値と教師データとの誤差が一定値以下となったときに、学習は収束してもよい。一方、学習モデルに入力された画像データに対して、学習モデルが教師データを出力しない場合、或いは出力値と教師データとの誤差が一定値以下にならない場合、学習は収束しない。
【0040】
S312で、制御部A101は、高精度の学習済みモデルの規模を削減する処理を行う。例えば、制御部A101は、シグモイド関数等の分解能を低下させることにより、高精度の学習済みモデルの規模を削減してもよい。これにより、学習済みモデルの性能の低下を抑制するとともに、学習済みモデルの規模が削減される。また、制御部A101は、重要度の低いニューロンを削減する「枝刈り」と称される手法等を採用して、推論精度に支障がでない程度に、学習済みモデルの規模を削減してもよい。
【0041】
一方、S313で、制御部A101は、学習モデルの認識対象数を削減する処理を行う。学習済みモデルの出力値の種類(タグ情報の種類)が増えるに応じて演算量が増大する。その結果、学習済みモデルのデータサイズも増大するため、制御部A101は、学習モデルの認識対象数を削減する。そして、制御部A101は、処理S310に戻し、再度、学習処理を学習部A106に行わせる。これにより、学習モデルの認識対象数が削減されるため、学習が収束する可能性が高くなる。上述したように、制御部A101は、学習モデルの認識対象数を削減する際に、優先度の低い認識対象から削減を行う。
【0042】
S314で、制御部A101は、S313で削減処理が行われた高精度の学習済みモデルが、物体認識グラスB100から受信した処理能力情報が示す処理能力を満たすかを判定する。この判定処理は、削減処理が行われた学習済みモデルを用いて、物体認識グラスB100で推論処理が可能かを判定する処理でもある。制御部A101は、S314でNoと判定した場合、処理をS309に戻す。一方、制御部A101は、S314でYesと判定した場合、制御部A101は、学習済みモデルを記録媒体A110(画像認識モデル記憶手段)に記録して、処理をS315に進める。
【0043】
S315で、制御部A101は、通信部A120を介して、物体認識グラスB100に高精度モデル準備完了通知を送信する制御を行う。S316で、制御部A101は、通信部A120を介して、物体認識グラスB100から高精度の学習済みモデルを取得する要求である高精度モデル取得要求を受信したかを判定する。制御部A101は、S316でYesと判定した場合、つまり高精度モデル取得要求を受信した場合、処理をS317に進める。一方、制御部A101は、S316でNoと判定した場合、つまり高精度モデル取得要求を受信していない場合、処理をS316に戻し、高精度モデル取得要求を受信するまで待機する。ここで、制御部A101は、所定期間(例えば、1日や1時間)、高精度モデル取得要求を物体認識グラスB100から受信しない場合、記録媒体A110に記録されている学習済みモデルを削除する制御を行ってもよい。S317で、制御部A101は、通信部A120を介して、物体認識グラスB100に高精度の学習済みモデルを送信する制御を行う。
【0044】
次に、物体認識グラスB100の処理の流れについて説明する。図4は、物体認識グラスB100の処理の流れを示すフローチャートである。S401で、制御部B101は、通信部B120を介して、学習サーバA100に処理能力情報を送信する制御を行う。S402で、制御部B101は、通信部B120を介して、学習サーバA100に希望認識対象の情報を送信する。S403で、制御部B101は、通信部B120を介して、学習サーバA100から低精度モデル準備完了通知を受信したかを判定する。制御部B101は、S403でNoと判定した場合、つまり低精度モデル準備完了通知を受信していない場合、処理をS403に戻し、低精度モデル準備完了通知を受信するまで待機する。一方、制御部B101は、S403でYesと判定した場合、つまり低精度モデル準備完了通知を受信した場合、処理をS404に進める。
【0045】
S404で、制御部B101は、操作部B104を介して、ユーザ等から低精度モデル取得要求を受け付けたかを判定する。制御部B101は、S404でNoと判定した場合、つまり低精度モデル取得要求を受け付けていない場合、処理をS404に戻し、低精度モデル取得要求を受け付けるまで待機する。一方、制御部B101は、S404でYesと判定した場合、つまり低精度モデル取得要求を受け付けた場合、処理をS405に進める。S405で、制御部B101は、通信部B120を介して、学習サーバA100に低精度モデル取得要求通知を送信する。
【0046】
S406で、制御部B101は、通信部B120を介して、学習サーバA100から低精度の学習済みモデル(低精度モデル)を受信したかを判定する。制御部B101は、S406でNoと判定した場合、つまり低精度の学習済みモデルを受信していない場合、処理をS406に戻し、低精度の学習済みモデルを受信するまで待機する。一方、制御部B101は、S406でYesと判定した場合、つまり低精度の学習済みモデルを受信した場合、処理をS407に進める。
【0047】
S407で、制御部B101は、S406で受信した低精度の学習済みモデルを記録媒体B110に記録する。これにより、物体認識グラスB100に、低精度の学習済みモデルが搭載される。制御部B101は、画像認識部B106に、低精度の学習済みモデルを用いた推論処理により、画像認識を行わせることができる。S408で、制御部B101は、通信部B120を介して、学習サーバA100から高精度の学習済みモデルを送信する準備が完了したことを示す高精度モデル準備完了通知を受信したかを判定する。制御部B101は、S408でNoと判定した場合、つまり高精度モデル準備完了通知を受信していない場合、処理をS408に戻し、高精度モデル準備完了通知を受信するまで待機する。一方、制御部B101は、S408でYesと判定した場合、つまり高精度モデル準備完了通知を受信した場合、処理をS409に進める。
【0048】
S409で、制御部B101は、操作部B104を介して、ユーザ等から高精度の学習済みモデルを取得する要求である高精度モデル取得操作を受け付けたかを判定する。制御部B101は、S409でNoと判定した場合、つまり高精度モデル取得操作を受け付けていない場合、処理をS408に戻す。一方、制御部B101は、S409でYesと判定した場合、つまり高精度モデル取得操作を受け付けた場合、処理をS410に進める。
【0049】
S410で、制御部B101は、通信部B120を介して、学習サーバA100に高精度モデル取得要求を送信する。S411で、制御部B101は、通信部B120を介して、学習サーバA100から高精度の学習済みモデル(高精度モデル)を受信したかを判定する。制御部B101は、S411でNoと判定した場合、つまり高精度の学習済みモデルを受信していない場合、処理をS411に戻し、高精度の学習済みモデルを受信するまで待機する。一方、制御部B101は、S411でYesと判定した場合、処理をS412に進める。
【0050】
S412で、制御部B101は、S411で受信した高精度の学習済みモデルを記録媒体B110に記録する。これにより、制御部101は、画像認識部B106に高精度の学習済みモデルを適用した推論処理を行わせることができる。この際、画像認識部B106は、適用する学習済みモデルを、低精度の学習済みモデルから高精度の学習済みモデルに切り替える。これにより、画像認識部B106は、高精度な画像認識を行うことができる。画像認識部B106は、画像撮像部B107が撮像した画像データを高精度の学習済みモデルに入力することで、画像認識を行う。画像認識部B106は、画像認識の結果として、例えば、「自動車」等のタグ情報を制御部B101に出力することができる。
【0051】
以上のように、学習サーバA100は、物体認識グラスB100から受信した処理能力情報と希望認識対象の情報とに応じた高精度の学習済みモデルを生成する。生成された高精度の学習済みモデルは、ユーザが所有する物体認識グラスB100の処理能力に最適化されているため、物体認識グラスB100の性能に応じた学習済みモデルを物体認識グラスB100に搭載させることができる。
【0052】
さらに、学習サーバA100は、物体認識グラスB100から処理能力情報と希望認識対象とを受信したことに応じて、予め用意された低精度の学習済みモデルの中から最適な学習済みモデルを選択して、物体認識グラスB100に送信する。これにより、高精度な学習モデルの学習処理に時間がかかる場合でも、ユーザを待たせることなく、ユーザが希望する物体を認識する機能を物体認識グラスB100に搭載させることができる。
【0053】
上述した実施形態において、希望認識対象は、画像認識部B106による認識対象が優先度順に登録される。認識対象の優先度は、ユーザ等により設定されてもよい。例えば、制御部B101は、表示部B105に、複数の認識対象のそれぞれについての優先度の指定を促す画面を表示する。そして、ユーザ等が、表示部B105に表示されている画面に基づいて、操作部B104を操作することで、複数の認識対象のそれぞれの優先度が指定される。制御部B101は、指定された優先度に応じて、希望認識対象のリストを生成してもよい。
【0054】
以上、本発明の好ましい実施の形態について説明したが、本発明は上述した各実施の形態に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。本発明は、上述の各実施の形態の1以上の機能を実現するプログラムを、ネットワークや記憶媒体を介してシステムや装置に供給し、そのシステム又は装置のコンピュータの1つ以上のプロセッサがプログラムを読み出して実行する処理でも実現可能である。また、本発明は、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【符号の説明】
【0055】
A100 学習サーバ
A101 制御部
A106 学習部
A110 記録媒体
A120 通信部
B100 物体認識グラス
B101 制御部
B106 画像認識部
B110 記録媒体
B120 通信部
図1
図2
図3
図4