JP2020119322A - 学習依頼装置および学習依頼方法 - Google Patents
学習依頼装置および学習依頼方法 Download PDFInfo
- Publication number
- JP2020119322A JP2020119322A JP2019010405A JP2019010405A JP2020119322A JP 2020119322 A JP2020119322 A JP 2020119322A JP 2019010405 A JP2019010405 A JP 2019010405A JP 2019010405 A JP2019010405 A JP 2019010405A JP 2020119322 A JP2020119322 A JP 2020119322A
- Authority
- JP
- Japan
- Prior art keywords
- learning
- unit
- image
- inference
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Image Analysis (AREA)
Abstract
【課題】信頼性の高い推論を行うことができるように、再学習の依頼を行うことができる学習依頼装置および学習依頼方法を提供する。【解決手段】第1リクエストに基づいて生成される正誤判断用の学習モデルを取得するステップ(S1、S3)と、学習モデルに特定のテストサンプルを入力して正誤判断を行うステップ(S5、S7)と、正誤判断結果に従って、第2のリクエストを作成する第2リクエスト発生ステップ(S9、S9、S13)を有する。第2のリクエストは、テストサンプル以外の情報を作成する。【選択図】 図6
Description
本発明は、深層学習等の機械学習装置に推論モデルの提供を依頼する学習依頼装置および学習依頼方法に関する。
学習部で学習を行い、この学習結果を用いて、種々の制御を行うことが知られている。例えば、特許文献1には、収集された観測データから、正常時の特徴を学習し、学習結果に基づいて、その後に入力される観測データについて、異常の発生を検知する装置が開示されている。この装置では、テスト期間において異常の検知対象から観測されたデータに基づいて異常度を算出し、この異常度を閾値と比較することで異常の発生を検知している。そして、異常の見逃し及び誤検知の有無に基づいて閾値を決定し、誤検知が発生した場合には、閾値を増加させ、見逃しが発生した場合には、閾値を減少させている。
上述の特許文献1に記載の装置では、学習した結果のレベル調整を行っているが、レベル調整の結果に基づいて、再学習を行うものではなかった。すなわち、再学習を行って、より適切な推論モデルを生成することについては、何ら考慮されていなかった。このため、信頼性の低いままで推論を行ってしまうおそれがあった。
本発明は、このような事情を鑑みてなされたものであり、信頼性の高い推論を行うことができるように、再学習の依頼を行うことができる学習依頼装置および学習依頼方法を提供することを目的とする。
上記目的を達成するため第1の発明に係る学習依頼装置は、第1の画像群とそのアノテーション結果からなる第1の教師データによって学習された第1の推論モデルを用いて、上記第1の画像群とは異なる第2の画像に対して推論を行う推論部と、上記推論部における推論結果を判定して、上記第1の教師データを補正する補正情報を出力する補正部と、を有する。
第2の発明に係る学習依頼装置は、上記第1の発明において、上記推論部は、上記第2の画像としてテストデータを用いて推論を行い、上記補正部は、上記推論結果に応じて、上記第1の教師データに含まれる画像データを増加させ、または減少させ、または画像データに対して画像処理を施す。
第3の発明に係る学習依頼装置は、上記第2の発明において、上記第1推論モデルを用いて、撮像部によって取得した撮像データに対して推論を行い、推論結果が誤検出であった場合に、上記撮像データを上記テストデータの候補とする。
第3の発明に係る学習依頼装置は、上記第2の発明において、上記第1推論モデルを用いて、撮像部によって取得した撮像データに対して推論を行い、推論結果が誤検出であった場合に、上記撮像データを上記テストデータの候補とする。
第4の発明に係る学習依頼装置は、上記第1の発明において、上記補正情報に基づいて、第2教師データを作成し、この第2教師データに基づいて、推論モデルを生成する再学習を依頼する依頼部を有する。
第5の発明に係る学習依頼装置は、第1教師データに基づいて生成された第1推論モデルによって推論を行った際の誤検出データに基づいて、第2教師データを作成する教師データ作成部と、上記第2教師データに基づいて、第2推論モデルを生成するための再学習を学習装置に依頼する通信部と、を有する。
第6の発明に係る学習依頼装置は、上記第5の発明において、上記教師データ作成部は、上記誤検出した際の画像に基づいて、上記第1の教師データに含まれる画像データを増加させ、または減少させ、または画像データに対して画像処理を施す。
第6の発明に係る学習依頼装置は、上記第5の発明において、上記教師データ作成部は、上記誤検出した際の画像に基づいて、上記第1の教師データに含まれる画像データを増加させ、または減少させ、または画像データに対して画像処理を施す。
第7の発明に係る学習依頼方法は、第1リクエストに基づいて生成される正誤判断用の学習モデルを取得するステップと、上記学習モデルに特定のテストサンプルを入力して正誤判断を行うステップと、上記正誤判断結果に従って、第2のリクエストを作成する第2リクエスト発生ステップと、を有する。
第8の発明に係る学習依頼方法は、上記第7の発明において、上記第2のリクエストは、上記テストサンプル以外の情報を作成する。
第8の発明に係る学習依頼方法は、上記第7の発明において、上記第2のリクエストは、上記テストサンプル以外の情報を作成する。
第9の発明に係る学習依頼方法は、第1の画像群とそのアノテーション結果からなる第1の教師データによって学習された第1の推論モデルを用いて、上記第1の画像群とは異なる第2の画像に対して推論を行い、上記推論の結果を判定して、上記第1の教師データを補正する補正情報を作成する。
第10の発明に係る学習依頼方法は、上記第9の発明において、上記推論は、上記第2の画像としてテストデータを用いて推論を行い、上記推論の結果に応じて、上記第1の教師データに含まれる画像データを増加させ、または減少させ、または画像データに対して画像処理を施す。
第11の発明に係る学習依頼方法は、上記第10の発明において、上記第1推論モデルを用いて、撮像部によって取得した撮像データに対して推論を行い、推論結果が誤検出であった場合に、上記撮像データを上記テストデータの候補とする。
第12の発明に係る学習依頼方法は、上記第9の発明において、上記補正情報に基づいて、第2教師データを作成し、この第2教師データに基づいて、推論モデルを生成する再学習を依頼する。
第10の発明に係る学習依頼方法は、上記第9の発明において、上記推論は、上記第2の画像としてテストデータを用いて推論を行い、上記推論の結果に応じて、上記第1の教師データに含まれる画像データを増加させ、または減少させ、または画像データに対して画像処理を施す。
第11の発明に係る学習依頼方法は、上記第10の発明において、上記第1推論モデルを用いて、撮像部によって取得した撮像データに対して推論を行い、推論結果が誤検出であった場合に、上記撮像データを上記テストデータの候補とする。
第12の発明に係る学習依頼方法は、上記第9の発明において、上記補正情報に基づいて、第2教師データを作成し、この第2教師データに基づいて、推論モデルを生成する再学習を依頼する。
第13の発明に係る学習依頼装置は、アノテーション結果を付与可能な第1の画像群を学習装置に送信する送信部と、アノテーションされた上記第1の画像群によって学習された第1の推論モデルを上記学習装置から受信する受信部と、上記第1の画像群には含まれない第2の画像に対して推論を行う推論部と、上記推論部における推論結果を判定して、上記第1の教師データを補正する補正情報を出力する補正部と、上記補正情報を上記送信部から上記学習装置に送信して再学習を依頼する再学習依頼部と、を有する。
第14の発明に係る学習依頼装置は、アノテーション結果を付与可能な第1の画像群を学習装置に送信する送信部と、アノテーションされた上記第1の画像群によって学習された第1の推論モデルを上記学習装置から受信する受信部と、上記第1の画像群には含まれない第2の画像に対して推論を行う推論部と、上記推論部における推論結果を判定して、上記第1の画像、上記第2の画像とは異なる第3の画像を上記送信部から上記学習装置に送信して再学習を依頼して上記第1の推論モデルとは異なる第2の推論モデルを取得する再学習依頼部と、を有する。
第14の発明に係る学習依頼装置は、アノテーション結果を付与可能な第1の画像群を学習装置に送信する送信部と、アノテーションされた上記第1の画像群によって学習された第1の推論モデルを上記学習装置から受信する受信部と、上記第1の画像群には含まれない第2の画像に対して推論を行う推論部と、上記推論部における推論結果を判定して、上記第1の画像、上記第2の画像とは異なる第3の画像を上記送信部から上記学習装置に送信して再学習を依頼して上記第1の推論モデルとは異なる第2の推論モデルを取得する再学習依頼部と、を有する。
本発明によれば、想定された利用シーンにおいて、信頼性の高い推論を行うことができるように、再学習の依頼を行うことができる学習依頼装置および学習依頼方法を提供することができる。
以下、本発明の一実施形態として、カメラ、学習部、および学習依頼部とからなる学習依頼システムについて説明する。この実施形態の概略は、以下の通りである。学習部は、第1教師データを用いて、撮影支援用等、種々の推論モデルを生成する(例えば、図6のS1、S3参照)。カメラは撮像部によって画像データを取得することができる。このカメラは推論エンジンを有しており、推論エンジンによって撮影支援等の推論を行い、推論結果を表示する(例えば、図3(b)、図6のS5参照)。この推論結果の表示の際に誤検出する場合があり、この時の画像(例えば、図3(b)の画像P24)を、テストデータ候補として記録しておく(例えば、図6のS9参照)。カメラまたは学習依頼部は、テストデータ候補を用いて、学習部に再学習させる際に使用する第2教師データを作成する(例えば、図2(c)、図4の第2教師データ402、図6のS13参照)。
図1Aおよび図1Bは、本実施形態に係る学習依頼システムの全体を示すブロック図である。この学習依頼システムは、カメラ100、学習依頼部200、および学習部300を有する。
カメラ100は、概略、いわゆるデジタルカメラであり、撮像部103を有し、この撮像部103によって被写体像を画像データに変換し、この変換された画像データに基づいて、被写体像を本体の背面に配置した表示部106にライブビュー表示する。撮影者はライブビュー表示を観察することにより、構図やシャッタタイミングを決定する。本撮影の指示操作時には、画像データが記録部105に記録される。記録部105に記録された画像データは、再生モードを選択すると、表示部106に再生表示することができる。
図1Bに記載のカメラ100の詳細な構成について説明する。カメラ100は、制御部101、操作部102、撮像部103、推論エンジン104、記録部105、表示部106、通信部107を有する。
操作部102は、ユーザがカメラに指示するための入力インターフェースである。操作部102は、レリーズ釦、電源スイッチ等の各種スイッチ、撮影モード設定用のモード設定ダイヤル等の各種ダイヤル、タッチ操作可能なタッチパネル等、種々の入力用の操作部材を有する。操作部102によって検出された操作部材の操作状態は、制御部101に出力される。
撮像部103は、光学系103aと撮像素子103bを有する。光学系103aは、撮影対象である被写体の光学像を形成するための光学レンズであり、フォーカスレンズやズームレンズ等を有する。撮像素子103bは光学像を光電変換し、画像信号を出力する。この他、撮像部103は、撮像制御回路、画像信号処理回路、絞り、シャッタ等の種々の回路や素子を有する。画像信号は、画像信号処理回路によってデジタルの画像データに変換され、制御部101および推論エンジン104等に出力される。
推論エンジン104は、推論モデルを記憶し、記憶された推論モデルを用いて、撮像部103から入力された画像データに対して推論を行う。推論モデルは、後述する学習部300によって生成された推論モデルを、通信部107を介して入力し、記憶する。推論エンジン104は、ネットワーク・デザイン104aと管理情報104bを有する。
推論エンジン104は、第1の画像群とそのアノテーション結果からなる第1の教師データによって学習された第1の推論モデルを用いて、第1の画像群とは異なる第2の画像に対して推論を行う推論部として機能する。推論部は、第2の画像としてテストデータを用いて推論を行う(例えば、図2(b)のテストデータPt(202c)、図4のテストデータ202c参照)。推論エンジン104は、第1の画像群には含まれない第2の画像に対して推論を行う推論部として機能する(例えば、図6のS5参照)。
ネットワーク・デザイン104aは、入力層と出力層の間に中間層(ニューロン)が配置されている。入力層には撮像部103によって取得された画像データが入力される。中間層としては、何層かのニューロンが配置されている。ニューロンの層の数は設計上適宜決められ、また各層におけるニューロンの数も設計上適宜決められる。中間層Nは、学習部300によって生成された推論モデルに基づいて、重み付けがなされる。出力層には、入力層に入力された画像に応じて、画像評価情報が出力される。深層学習については、入出力モデル化部304を構成と一緒に説明する。
管理情報104bは、推論エンジン104内のメモリに記憶された情報である。管理情報104bは、ネットワーク構造、ウェイト、教師データ情報を含む。このうち、ネットワーク構造は、ネットワーク・デザイン104aのニューロンの構造を規定するための情報である。ウェイトは、各ニューロンと各ニューロンの結合の重み付けに関する情報である。教師データ情報は、教師データの作成元、バージョン情報、教師データを作成したデータ母集合に関する情報等、教師データに関する情報である。これらの管理情報104bは、推論エンジン104内のメモリ以外にも、カメラ100内の他のメモリに記憶するようにしてもよい。
記録部105は、電気的に書き換え可能な不揮発性メモリである。記録部105には、撮像部103から出力され、画像処理部101dによって記録用に画像処理が施された画像データ105aを記憶する。この画像データ105aは読み出され、画像処理部101dによって再生表示用の画像処理が施されたのちに、表示部106に再生表示される。
また、記録部105は、画像データ105aの記憶領域の一部に、テストデータ候補を記録する。テストデータ候補105bは、後述するように、推論モデルが生成された後、この推論モデルを用いた推論した際に、適切な推論が行われなかった際に記録された画像データである(例えば、図3(b)の画像P24、図6のS9、S49、S57等参照)。
表示部106は、LCDモニタ、有機EL等のディスプレイを有し、カメラ100の外装に配置されており、または接眼部を通して観察可能な電子ビューファインダ(EVF)である。表示部106には、撮像部103によって取得された画像に基づくライブビュー画像が表示され、また記録部105に記録された画像が再生表示される。また、推論エンジン104による推論結果が表示される。
通信部107は、送信および受信を行うための通信回路を有する。通信部107は、学習依頼部200内の通信部B203と通信を行うことができ、また学習部300内の通信部A305aとも通信を行うことができる。通信部107は、第2教師データに基づいて、第2推論モデルを生成するための再学習を学習装置に依頼する通信部として機能する(例えば、図8BのS69、図10のS109参照)。通信部107は、アノテーション結果を付与可能な第1の画像群を学習装置に送信する送信部として機能する(例えば、図6のS1参照)。通信部B203は、アノテーションされた第1の画像群によって学習された第1の推論モデルを学習装置から受信する受信部として機能する(例えば、図6のS3、S5参照)。
制御部101は、CPU(Central Processing Unit:中央処理装置)等を含み、種々の周辺回路を含むASIC(Application Specific Integrated Circuit:特定用途向け集積回路)で構成されたプロセッサである。制御部101は、記録制御部101a、設定制御部101b、通信制御部101c、画像処理部101d、パラメータ制御部101e、表示制御部101fを有する。これらの各部は、ハードウエア回路によって実現され、また一部はCPUと不揮発性メモリに記憶されたプログラムに従って実現する。制御部101は、CPUとプログラムに従って、カメラ100の全体を制御する。
制御部101は、推論部における推論結果を判定して、第1の教師データを補正する補正情報を出力する補正部として機能する(例えば、図2の画像Pcの生成、図4の補正、図6のS13参照)。補正部は、推論結果に応じて、第1の教師データに含まれる画像データを増加させ、または減少させ、または画像データに対して画像処理を施す(例えば、図2(b)、図4参照)。また、制御部101は、第1推論モデルを用いて、撮像部によって取得した撮像データに対して推論を行い、推論結果が誤検出であった場合に、撮像データをテストデータの候補とする(例えば、図3の画像P24、図6のS9参照)。また、制御部101は、補正情報に基づいて、第2教師データを作成し、この第2教師データに基づいて、推論モデルを生成する再学習を依頼する依頼部として機能する(例えば、図6のS13、図8BのS69、図10のS109)。
制御部101は、第1教師データに基づいて生成された第1推論モデルによって推論を行った際の誤検出データに基づいて、第2教師データを作成する教師データ作成部として機能する(例えば、図6のS7、S9参照)。教師データ作成部は、誤検出した際の画像に基づいて、第1の教師データに含まれる画像データを増加させ、または減少させ、または画像データに対して画像処理を施す(例えば、図2、図4、図7参照)。制御部101は、補正情報を送信部から学習装置に送信して再学習を依頼する再学習依頼部として機能する(例えば、図6のS15、図8BのS69参照)。また、制御部101は、推論部における推論結果を判定して、第1の画像、第2の画像とは異なる第3の画像を送信部から学習装置に送信して再学習を依頼して第1の推論モデルとは異なる第2の推論モデルを取得する再学習依頼部として機能する。例えば、図2において、第1の画像は第1教師データ401が相当し、第2の画像はテストデータ(202c)が相当し、第3の画像は強調データPcが相当する。
記録制御部101aは、記録部105に記録する画像データ等の記録を制御する。すなわち、撮像部103によって取得され、画像処理部101dによって処理された画像データの記録を制御する。また、推論エンジン104による推論の結果が適切でなかった場合に、テストデータ候補を記録部105に記録する。
設定制御部101bは、カメラ100における各種設定を行う。各種設定としては、撮影モード等の設定や、推論エンジン104による推論の設定を行う。この設定された推論の内容は、仕様として、学習依頼部200または学習部300に送信される。仕様として、例えば、猫の写真を撮る際に、猫の目にピントを合わせ、可愛く撮れるようなアドバイスが欲しい場合に、ユーザが操作部102によって要望を入力すると、設定制御部101bは、このアドバイスを受けるに相応しい推論モデルを取得できるような設定を行う。
通信制御部101cは、通信部107による通信の制御を行う。学習依頼部200や学習部300は、インターネットを通じて接続可能である。通信制御部101cは、通信部107によって、学習依頼部200および学習部300と通信を行う際に、通信先、送信する情報、受信する情報等を設定する。
画像処理部101dは、画像処理回路を有し、撮像部103によって取得した画像データに対して、種々の画像処理を施す。例えば、画像処理回路は、画像データに対して露出補正やノイズ処理、WBゲイン補正、輪郭強調、偽色補正等の様々な基本的な画像処理を施す。さらに、画像処理回路は、上述の画像処理を施した画像データに対して、ライブビュー画像表示用の画像処理を施し、また記録データ形式に変換する処理(現像処理)も行う。さらに、推論エンジン104による推論結果に基づく表示等も行う。
パラメータ制御部101eは、パラメータ制御回路を有し、撮影を行うための種々のパラメータ、例えば、絞り、シャッタ速度、ISO感度、焦点距離等のパラメータを制御する。
表示制御部101fは、表示制御回路を有し、表示部106における表示の制御を行う。すなわち、101fは、画像処理部101dによって処理された画像データに基づく画像の表示を制御する。また、メニュー画面等の表示制御も行う。
次に、図1Aに記載の学習依頼部200について説明する。学習依頼部200は、例えば、インターネットを介して、学習部300やカメラ100等に接続可能なサーバである。学習依頼部200は、制御部201、画像分類記録部202、通信部B203、および仕様設定部204を有する。この学習依頼部200は、カメラ100によって取得された画像データから作成した教師データを記録するためのデータベース(画像分類記録部202)を有し、この記録されている画像データに基づく基準教師データ202b、テストデータ202cを用いた推論を、学習部300に依頼する。
画像分類記録部202は、電気的書き換え可能なメモリを有し、対象物種類A画像群202aを記録している。画像文分類記録部202は、対象物を複数の分類に分けて画像データ等を記録している。図1Aには、分類としては、対象物Aのみを記載しているが、学習依頼部200において適宜分類付けを行い、複数の対象物を分類分けして記録してもよい。対象部種類A画像群202aには、基準教師データ202bと、テストデータ202cが記録されている。
基準教師データ202bは、深層学習を行い、推論モデルを作成するための教師データである。教師データは、画像データと、この画像データに対してアノテーションによって付された情報からなる。例えば、猫の画像がある場合に、この猫であることを示す情報および猫の目の位置情報がアノテーションによって付されている。これらの基準教師データを用いて、深層学習を行うことにより、画像に猫がいれば、猫の目の位置を探し出す推論モデルを生成することができる。この基準教師データ202bには、猫等の分類情報が付与されている。
テストデータ202cは、基準教師データを用いて生成した推論モデルの信頼性を検出するために使用する教師データである。テストデータも、例えば、猫の目の位置を探し出す推論モデルであれば、基準教師データと同様に、画像に猫がいれば、猫の目の位置を示す情報が関連付けて記録されている。すなわち、教師データは学習部300が推論モデルを作成する際に使用するデータであり、一方、テストデータは推論モデルをテストする際に使用するデータである。後述するように、ユーザがカメラ100で撮影する際に、テストデータを作成するようにしてもよい。また、ユーザによってカメラ100で撮影された画像に限らず、学習依頼部200が独自に収集したテストデータであってもよい。このテストデータ202cにも、猫等の分類情報が付与されている。教師データとテストデータの関係については、図5を用いて後述する。
通信部B203は、送信および受信を行うための通信回路を有する。通信部B203は、カメラ100内の通信部107と通信を行うことができ、また学習部300内の通信部B305bとも通信を行うことができる。通信部B203は、第2教師データに基づいて、第2推論モデルを生成するための再学習を学習装置に依頼する通信部として機能する(例えば、図8BのS69、図10のS109参照)。通信部107は、アノテーション結果を付与可能な第1の画像群を学習装置に送信する送信部として機能する(例えば、図6のS1参照)。通信部107は、アノテーションされた第1の画像群によって学習された第1の推論モデルを学習装置から受信する受信部として機能する(例えば、図6のS3、S5参照)。
仕様設定部204は、学習依頼部200から学習部300に深層学習によって推論モデルの生成を依頼する際に、その推論モデルの仕様を設定する。例えば、画像に猫がいればその猫の目の位置にピントが合い、また可愛く撮影できるような推論モデルの仕様を設定する。この設定された仕様は、通信部B203を介して、学習部300に送信され、この仕様に基づいて、学習部300は推論モデルを生成する。なお、カメラ100において、仕様を設定し、学習依頼部200に推論モデル生成の仲介が依頼された場合には、カメラ100からの仕様を、学習部300に転送する。
推論エンジン205は、推論モデルを記憶し、記憶された推論モデルを用いて、入力された画像データに対して推論を行う。推論モデルは、後述する学習部300によって生成され推論モデルを、通信部B305bを介して入力し、記憶する。推論エンジン205は、推論エンジン104と同様に、ネットワーク・デザインを有し、管理情報104bと同様の管理情報を記憶するようにしてもよい。また、入出力モデル化部304内の信頼性判定部304aと同様の信頼性判定部を有していてもよい。
推論エンジン205は、第1の画像群とそのアノテーション結果からなる第1の教師データによって学習された第1の推論モデルを用いて、第1の画像群とは異なる第2の画像に対して推論を行う推論部として機能する(例えば、図2(b)および図4の推論エンジン参照)。推論部は、第2の画像としてテストデータを用いて推論を行う(例えば、図2(b)のテストデータPt(202c)、図4のテストデータ202c参照)。推論エンジン205は、第1の画像群には含まれない第2の画像に対して推論を行う推論部として機能する(例えば、図6のS5参照)。
推論エンジン205内のネットワーク・デザインは、ネットワーク・デザイン104aと同様に、入力層と出力層の間に中間層(ニューロン)が配置されている。入力層には画像データが入力される。中間層としては、何層かのニューロンが配置されている。ニューロンの層の数は設計上適宜決められ、また各層におけるニューロンの数も設計上適宜決められる。中間層は、学習部300によって生成された推論モデルに基づいて、重み付けがなされる。出力層には、入力層に入力された画像に応じて、画像評価情報が出力される。深層学習については、入出力モデル化部304を構成と一緒に説明する。
制御部201は、CPU(Central Processing Unit:中央処理装置)等を含み、種々の周辺回路を含むASIC(Application Specific Integrated Circuit:特定用途向け集積回路)で構成されたプロセッサである。制御部201は、CPUとプログラムに従って、学習依頼部200の全体を制御する。なお、仕様設定部204は、制御部201内のCPUとプログラムによって実現してもよく、また通信部B203等を制御する通信制御部等、各種の機能を有してもよい。
制御部201は、推論部における推論結果を判定して、第1の教師データを補正する補正情報を出力する補正部として機能する(図2の画像Pcの生成、図4の補正、図6のS13参照)。補正部は、推論結果に応じて、第1の教師データに含まれる画像データを増加させ、または減少させ、または画像データに対して画像処理を施す(例えば、図2(b)、図4参照)。制御部201は、第1推論モデルを用いて、撮像部によって取得した撮像データに対して推論を行い、推論結果が誤検出であった場合に、撮像データをテストデータの候補とする(例えば、図3の画像P24、図6のS9参照)。また、制御部201は、補正情報に基づいて、第2教師データを作成し、この第2教師データに基づいて、推論モデルを生成する再学習を依頼する依頼部として機能する(例えば、図6のS13、図8BのS69、図10のS109)。
制御部201は、第1教師データに基づいて生成された第1推論モデルによって推論を行った際の誤検出データに基づいて、第2教師データを作成する教師データ作成部として機能する(例えば、図6のS7、S9参照)。教師データ作成部は、誤検出した際の画像に基づいて、第1の教師データに含まれる画像データを増加させ、または減少させ、または画像データに対して画像処理を施す(例えば、図2、図4、図7参照)。制御部201は、補正情報を送信部から学習装置に送信して再学習を依頼する再学習依頼部として機能する(例えば、図6のS15、図10のS109参照)。また、制御部201は、推論部における推論結果を判定して、第1の画像、第2の画像とは異なる第3の画像を送信部から学習装置に送信して再学習を依頼して第1の推論モデルとは異なる第2の推論モデルを取得する再学習依頼部として機能する。例えば、図2において、第1の画像は第1教師データ401が相当し、第2の画像はテストデータ(202c)が相当し、第3の画像は強調データPcが相当する。
次に、学習部300について説明する。学習部300は、例えば、インターネットを介して、学習依頼部200やカメラ100等に接続可能なサーバであり、カメラ100、学習依頼部200等、外部から依頼を受けて、推論モデルを生成する。学習部300は、制御部301、母集合作成部302、基準教師データ記録部303、入出力モデル化部304、通信部A305a、および通信部B305bを有する。この学習部300は、カメラ100または学習依頼部200から依頼された仕様に従って、教師データを用いて推論モデルを生成する。この生成した推論モデルは、通信部A305a、通信部B305bを介して外部の機器(学習依頼部200、カメラ100)に送信される。
基準教師データ記録部303は、電気的に書き換え可能な不揮発性メモリであり、学習依頼部200から送信されてきた基準教師データ202bを記録する。また、カメラ100によって教師データが作成された場合には、この教師データを記録する(図8BのS69参照)。後述するように、カメラ100または学習依頼部200から推論モデルの生成を依頼されている場合には、母集合作成部302は教師データ(学習用データ)を生成する際に、基準教師データを含めて教師データを作成し、または教師データを参考にして教師データを作成する。
母集合作成部302は、深層学習を行う際の母集合(教師データ、学習用データ)を作成する。母集合作成部302は、制御部301内のプロセッサによって、ハードウエア的にデータベースから母集合となる教師データを作成してもよく、また制御部301内のプロセッサによって、ソフトウエア的にデータベースから母集合となる教師データを作成してもよい。母集合作成部302は、学習部300内に深層学習に使用できる画像データや、また他のサーバ等に蓄積された画像データ等を用いて、深層学習用の教師データを作成する。前述したように、カメラ100または学習依頼部200から推論モデルの生成を依頼されている場合には、基準教師データ記録部303に記録されている基準教師データを含めて、または基準教師データを参考にして深層学習用の母集合(教師データ)を作成する。教師データは、入出力設定302aの情報が付与されている。すなわち、教師データは、深層学習の際に入力するデータと、出力結果(正解)が予め設定されている。
入出力モデル化部304は、機械学習用プロセッサを有し、所謂人工知能(AI)を用いて深層学習を行い、推論モデルを生成する。具体的には、入出力モデル化部304は、母集合作成部302によって作成された画像データの母集合を用い、推論モデルを深層学習によって生成する。深層学習(ディープラーニング)は、入出力の関係を学習可能な関数近似器である。
入出力モデル化部304は、推論エンジン104のネットワーク・デザイン104aと同様の構成を有している。入力層に母集合作成部302に作成された画像データを入力する。また、出力層に、画像の評価結果、例えば、教師データ(正解)を与える。入力と出力が一致するように、ネットワーク・デザイン内の各ニューロンの結合の強さ(重み付け)を算出することによって推論モデルを生成する。なお、本実施形態においては、入出力モデル化部304は、深層学習によって推論モデルを生成するが、深層学習に限られず、機械学習であればよい。また、推論モデル化部303は、ネットワーク・デザイン等のハードウエア回路でなくても、制御部301内のプロセッサによって、ソフトウエア的に推論モデルを生成するようにしてもよい。
また、入出力モデル化部304は、信頼性判定部304aを有する。信頼性判定部304aは、入出力モデル化部304によって生成された推論モデルの信頼性を判定する。信頼性の判定は、例えば、LOSS値等を算出し行う。LOSS値は、予め正解(例えば、挿入時OKまたはNG)が分かっている練習問題で深層学習を行った場合に、深層学習で生成された推論モデルでの推論結果と、予め分かっている正解との差異である。
ここで、深層学習について、説明する。「深層学習(ディープ・ラーニング)」は、ニューラル・ネットワークを用いた「機械学習」の過程を多層構造化したものである。情報を前から後ろに送って判定を行う「順伝搬型ニューラル・ネットワーク」が代表的なものである。順伝搬型ニューラル・ネットワークは、最も単純なものでは、N1個のニューロンで構成される入力層、パラメータで与えられるN2個のニューロンで構成される中間層、判別するクラスの数に対応するN3個のニューロンで構成される出力層の3層があればよい。入力層と中間層、中間層と出力層の各ニューロンはそれぞれが結合加重で結ばれ、中間層と出力層はバイアス値が加えられることによって、論理ゲートを容易に形成できる。
ニューラル・ネットワークは、簡単な判別を行うのであれば3層でもよいが、中間層を多数にすることにより、機械学習の過程において複数の特徴量の組み合わせ方を学習することも可能となる。近年では、9層〜152層のものが、学習にかかる時間や判定精度、消費エネルギーの観点から実用的になっている。また、画像の特徴量を圧縮する、「畳み込み」と呼ばれる処理を行い、最小限の処理で動作し、パターン認識に強い「畳み込み型ニューラル・ネットワーク」を利用してもよい。また、より複雑な情報を扱え、順番や順序によって意味合いが変わる情報分析に対応して、情報を双方向に流れる「再帰型ニューラル・ネットワーク」(全結合リカレントニューラルネット)を利用してもよい。
これらの技術を実現するために、CPUやFPGA(Field Programmable Gate Array)等の従来からある汎用的な演算処理回路を使用してもよい。しかし、これに限らず、ニューラル・ネットワークの処理の多くが行列の掛け算であることから、行列計算に特化したGPU(Graphic Processing Unit)やTensor Processing Unit(TPU)と呼ばれるプロセッサを利用してもよい。近年ではこのような人工知能(AI)専用ハードの「ニューラル・ネットワーク・プロセッシング・ユニット(NPU)」がCPU等その他の回路とともに集積して組み込み可能に設計され、処理回路の一部になっている場合もある。
その他、機械学習の方法としては、例えば、サポートベクトルマシン、サポートベクトル回帰という手法もある。ここでの学習は、識別器の重み、フィルター係数、オフセットを算出するものあり、これ以外にも、ロジスティック回帰処理を利用する手法もある。機械に何かを判定させる場合、人間が機械に判定の仕方を教える必要がある。本実施形態においては、画像の判定を、機械学習により導出する手法を採用したが、そのほか、人間が経験則・ヒューリスティクスによって獲得したルールを適応するルールベースの手法を用いてもよい。
通信部A305aと通信部B305bは、共に送信および受信を行うための通信回路を有する。通信部A305aは、カメラ100内の通信部107と通信を行うことができる。通信部B305bは、学習依頼部200内の通信部B203と通信を行うことができる。
制御部301は、CPU(Central Processing Unit:中央処理装置)等を含み、種々の周辺回路を含むASIC(Application Specific Integrated Circuit:特定用途向け集積回路)で構成されたプロセッサである。制御部301は、CPUとプログラムに従って、学習部300の全体を制御する。なお、母集合作成部302および入出力モデル化部304は、制御部301内のCPUとプログラムによって実現してもよく、また通信部A305a、通信部B305b等を制御する通信制御部等、各種の機能を有してもよい。
次に、図2を用いて、本実施形態における深層学習において使用する学習用データ(教師データ)について説明する。図2(a)は、第1教師データを用いて、ネットワーク・デザインにおいて推論モデルを生成する過程を示す。この推論モデルの生成は、図1Aに示す学習部300において行われる。推論モデルは、母集合作成部302において作成された第1教師データ401を用いて、生成する。第1教師データ401は、画像P11〜P14と、この画像に猫の目の位置を示す情報(図では丸印M11〜M14で示す)からなる。なお、実際には、多数の画像を使用するが、図2においては、例示的に4つの画像を示す。
学習部300は、第1教師データ401を深層学習用の学習用データとして使用し、入出力モデル化部304によって推論モデルを生成する。入出力モデル化部304内のネットワーク・デザイン304dの入力部304bには、第1教師データ401の内の画像データP11〜P14(猫の目の位置を示すM11〜M14は削除されている画像データ)が入力される。また、出力部304cには、猫の目の位置を示す情報(M11〜M14)が与えられる。ネットワーク・デザイン304dは、第1教師データ401の内の画像データP11〜P14を入力した際に、猫の目の位置を示す情報(M11〜M14)を出力するように、ネットワーク・デザイン304d内の各ニューロンの結合の強さ(重み付け)を算出することによって第1推論モデル405を生成する。
入出力モデル化部304において、第1推論モデル405が生成されると、図2(b)に示す学習依頼部200内の推論エンジン205に送信される。推論エンジン205は、この受信した第1推論モデル405をネットワーク・デザインに設定すると共に、推論エンジン205にテストデータ202cを入力する。受信した推論モデルは、猫の目の位置を推論できるが、図2(b)に示す例では、猫の目の位置を示す情報Mtは、猫の胴の位置を示しており、推論に失敗(NG)している。これは、テストデータ202cの画像が暗いためである。すなわち、第1教師データ401には、猫の暗い画像がなく、このような画像を用いて深層学習がなされなかった為である。
そこで、学習依頼装置200内の制御部201は、図2(c)に示すように、第1教師データの猫の画像を補正することにより、暗い状態における猫の画像(強調データ)Pcを作成する。学習依頼装置200は、補正した猫の画像データPcを学習装置300に送信し、学習装置300は受信した画像データPcを基準教師データ記録部303に記録する。学習部300内の入出力モデル化部304は、第1教師データに加えて画像Pcを加えた第2教師データを用いて推論し、第2推論モデル406を生成する。この第2推論モデルは、ネットワーク・デザイン303aを微修正したものであり、暗い猫の画像であっても、目の位置を推論することができる。この第2教師データを用いて、学習部300に推論モデルを生成するように、再学習を依頼する(例えば、図8BのS69、図10のS109参照)。
なお、図2(b)の説明にあたっては、学習依頼部200において、テストデータによる推論モデルのチェックを行い、第2教師データを作成していた。しかし、カメラ100においても、同様に、テストデータによる推論モデルのチェックを行い、第2教師データを作成するようにしてもよい。また、第1教師データの画像を、通常の画像処理によって補正する以外にも、GAN(Generative Adversarial network)によって、第1教師データの画像と類似の画像を作成するようにしてもよい。GANによる画像の生成については、図11を用いて後述する。
次に、図3を用いて、テストデータ候補の取得の一例について説明する。図3に示す方法においては、テストデータ202cは、推論エンジン104を搭載したカメラ100で撮影した際に、期待した推論結果を得られなかった画像をテストデータ候補とする(例えば、図6のS5、S7、S9参照)。
図3(a)は、ユーザ411がカメラ100を用いて、撮影対象413(この場合は、猫)を撮影している様子を示す。図3(b)は、ユーザ411がカメラ100を用いて撮影した画像P21〜P26を時系列に沿って示す。カメラ100の推論エンジン104には、猫の目の位置を推論することのできる推論モデル(図2の例では、第1推論モデル405)が設定されている。画像P21〜P26の右下隅に表示された「発動」は、推論エンジンによる推論がなされていることを示す。また、画像P21〜P26の右上隅に表示されている「検出」または「検出できず」は、推論によって「猫の目」を検出することができた、または検出することができなかったことを示す。また、猫の目の位置に重畳して描かれた丸印は、推論エンジン104によって推定された目の位置を示す。
画像P21は、ユーザ411が最初に撮影した撮影対象(猫)413を撮影した画像である。この画像P21では、推論エンジン104は目を検出することができない。画像P21の次に撮影した画像P22では、猫がカメラ100の方向を向いたことから、目の位置を検出できている。この場合には、目の位置を丸印で表示し、「検出」できたことを表示する。
画像P22の次に撮影した画像P23では、猫が横向きになったが目は見える位置にある。しかし、推論エンジン104による推論では、目の位置を検出できない。さらに、次に撮影された画像P24でも、目は見える位置にあるが、推論エンジン104による推論では目の位置を検出できない。しかし、画像P24の次に撮影された画像P25では、猫が正面向きになり、推論エンジン104は目の位置を検出できている。このように、画像P23、画像P24と、目の位置を推論できない場合、画像P23では、たまたま推論によって検出できなかったこともあり得るが、続けて、検出できていない。そこで、目の位置を検出できた画像P25の直前に撮影された画像P24を、テストデータ候補として、記録部105に記録する。最後の画像P26は、猫の目が画像内になく、目の位置を推論できていない。
このように、ユーザは、第1教師データ401によって生成した第1推論モデル405と同様の結果が期待される撮影シーンを撮影する。そして、第1推論モデルによる推論結果と異なる検出結果になった画像(図3(b)に示す例では、画像P24)を、テストデータ候補として記録しておく。学習依頼部200は、この画像をテストデータとして、第1推論データをチェックすることができる(後述する図6のS7、S9参照)。また、カメラ100によって撮影された画像データ(ログデータ)から、第1推論モデルを改善するための教師データ(学習データ)を増加させることもできる。
次に、図4を用いて、第1教師データから第2教師データを生成する方法の一例について説明する。図4の左上に描かれている学習部300は、仕様に従って、第1教師データ401を用いて第1推論モデルを生成する。仕様は、学習依頼部200の仕様設定部204によって設定された推論モデルの作成のための推論目的や条件等を示す。管理情報は、第1推論モデルを生成する際の情報であり、例えば、第1推論モデルの作成者(団体、企業等)、バージョン情報、作成日、作成の際の教師データの出所等、種々の情報からなる。また、管理情報によって、取り扱いに注意を要する画像が使われたり拡散したりしないような管理を行ってもよい。さらに、管理情報は、特定の画像の削除の要請などにも対応できるようにし、個人情報などの取り扱いなどを一括して管理してもよい。
学習部300によって第1推論モデルが生成されると、第1推論モデルは学習依頼部200に送信され、推論エンジン205に設定される。この推論エンジン205には、管理情報として、ネットワーク構造、ウェイト、教師データ情報が記憶される。推論エンジン205の入力部には、テストデータ202cが入力される。テストデータは、図3に示したような方法で集められたテストデータ候補の中から、取捨選択してもよく、その他の方法で集めてもよい。テストデータ202cは、複数あり、テストデータ候補に対してアノテーションを行って、推論を行った際の正解が、予めテストデータ202cに関連付けて記録されている。図4において、「OK」と記載されているのは、テストデータ202cに記録されている正解と、推論の結果が、一致した場合であり、NGは推論結果と正解が一致しない場合である。
学習依頼部200において、テストデータ202cを用いて、第1推論モデルの推論結果を判定すると、次に、学習依頼部200の制御部201は、正誤判定傾向を行う。ここでは、どのような場合に、第1推論モデルは推論を誤り、どのような場合に推論が正しいかを判定する。例えば、図2、図3に示したような例では、暗い環境で撮影された画像に対して誤り多いとか、また撮影対象が横向きの場合に誤りが多いといえる。また、明るい環境で撮影された画像に対して正しく推論されるとか、また撮影対象が正面向きの場合に正しく推論される。
正誤傾向判定がなされると、次に、画像取捨選択および画像処理等の補正がなされる。正誤傾向判定で、誤ると推論される傾向の画像は、そのような画像を増加させ、この増加させた画像を教師データに加えるとよい。一方、正誤傾向判定で、正しいと推論される傾向の画像は、そのような画像を減少させても推論できる可能性があることから、教師データから間引きを行う。また、図2に示したような補正画像Pcを、教師画像から画像処理によって生成してもよい。第1教師データに対して、上述したような補正処理を行って、第2教師データ402を生成する。これらの正誤傾向判定および補正処理は、学習依頼部200で行って、第2教師データを生成する。
つまり、学習依頼部200は、第1の教師データ(画像にアノテーション情報を入れたもので、アノテーションは学習依頼部200で行う場合と学習部300で行われる場合の両方を想定)によって学習された第1の推論モデルを受信部によって学習装置から受信する。この学習結果を検証すべく、学習依頼部200は、第1の画像群には含まれない第2の画像に対して推論を行う推論部を有している。この結果、第1の教師データだけでは定義しきれなかった推論モデルの仕様や性能が確認可能となる。この性能判定用推論部における推論結果を判定して、第1の教師データを補正したり、第1の画像や第2の画像とは異なる第3の画像を送信部から学習装置に送信して再学習を依頼する。この処理によって、最初に想定した教師データだけでは最適化しきれなかった推論モデルの仕様や性能を満たした第1の推論モデルとは異なる第2の推論モデルを取得することが出来る。つまり、一般的な教師データによる一般的な推論モデルを基準として、さらにユーザが求める再学習が可能な再学習依頼部とを有する学習依頼装置とすることで、カスタマイズやチューニングが容易に可能となる。この第1の教師データの一部を補正したものや、第3の画像を含む教師データを第2の教師データとする。
しかし、これに限らず、カメラ100において、第2教師データを生成するようにしてもよい。また、教師画像をGAN(Generative Adversarial network)によって増加させてもよい。GANによる画像の作成方法については、図11を用いて後述する。
次に、図5を用いて、教師データとテストデータについて説明する。前述したように、教師データは推論モデルを生成する際に使用する学習用のデータである。また、テストデータは、推論モデルが生成された後、この推論モデルの性能(信頼性)を検証するためのデータである。図1Aに示すように、画像分類記録部202には、対象物をA画像群のように、分類分けして記録している。この分類は、例えば、猫の画像、犬の画像、鳥の画像、バラの画像、菊の画像、等々、撮影対象を適宜、区分している。学習部300の入出力モデル化部304によって推論モデルを生成する際には、この分類(カテゴリー)を利用して、教師データを作成する。学習依頼部200の推論エンジン205は、入出力モデル化部304によって生成された推論モデルをテストことから、教師データとテストデータは、分類(カテゴリー)でそれぞれ関連付けておくことが望ましい。すなわち、図5に示すように、カテゴリーAの教師データとテストデータは関連付けられ、カテゴリーBの教師データとテストデータは関連付けられ、カテゴリーCの教師データとテストデータは関連付けれられている。
様々なシーンに対応するには教師データは多い方が良いが、推論モデル作成を行う時、十分なデータが集まらないことがある。例えば、推論モデルの学習依頼者が、データ収集の依頼をする際、手持ちの画像だけでは足りないので、手持ち以外の画像を使って学習を行う場合がある。しかも、自分の著作権や肖像権などに敏感なユーザは、手持ち画像を使っての学習を第三者に依頼したくない場合もある。そこで、手持ち以外で流通あるいは蓄積された画像群を使って、自らのこだわりのニーズをかなえる学習を依頼するケースが多くなる。しかし、最終的には、ユーザ自らが想定した特定のシーンにおいて、手持ち画像(撮影した画像や、撮影しようとした画像など)の出来栄えを調べて、出来栄えを判断することになる。判断結果が不満であっても、守秘性や肖像権、著作権、データの希少性や改ざんなどの危険や個人情報の保護を含めたセキュリティ、あるいはノウハウ保護の観点から、手持ち画像は出さずに再度の学習、あるいはチューニングを依頼する可能性が高い。個人でなくとも、企業であっても同様の傾向の依頼形態となる。また、依頼を受ける側も、個人情報や守秘義務の問題がある画像は利用をためらう傾向がある。したがって、手元にある画像以外でも、簡単に、想定した特定のシーンにより特化した推論モデルを得るために、カスタマイズ、チューニングが容易に可能となるシステムが求められる。
次に、図6および図7に示すフローチャートを用いて、図1Aおよび図1Bに示す学習依頼システムの全体的な動作について説明する。このフローは、制御部101、制御部201、制御部301が協働してシステム全体を制御することにより、実現する。しかし、これに限らず、単一の機器で行ってもよく、またいずれか2つの機器で行ってもよく、更に他の機器(第4の機器)と協働して実現してもよい。多くの場合、第1学習、第2学習、また推論エンジンを使用する者や装置は異なる。
図6に示す学習依頼システムのフローが開始すると、まず、第1教師データを作成する(S1)。このステップでは、学習部300の母集合作成部302が、第1教師データを作成する。この第1教師データを作成するにあたって、学習依頼部200の仕様設定部204から、学習依頼部200に生成を依頼する推論モデルの仕様について送信される。また、学習依頼部200内に記録されている基準教師データ202bも併せて送信されている場合には、学習部300内の基準教師データ記録部303に記録される。母集合作成部302は、学習依頼部200からの依頼(仕様)に基づく推論モデルのための母集合(第1教師データ)を作成する。このとき、基準教師データ202bを含めてもよく、また基準教師データ202bを参考に、類似のデータを集めて、第1教師データを作成してもよい。第1教師データは、深層学習に使用することから、入力部に入力される画像データ、および推論結果の正解が含まれている。すなわち、第1教師データには、画像にアノテーションによって推論の正解情報が関連付けられている。この第1教師データは、図2(a)および図4に示す第1教師データ401に相当する。
第1教師データが作成されると、次に、第1教師データを用いて第1学習が実行される(S3)。このステップでは、学習装置300の入出力モデル化部304が、ステップS1において作成された第1教師データを用いて、深層学習を行い、第1推論モデルを生成する。図2(a)および図4に示す例では、ネットワーク・デザイン302dが、第1教師データを用いて深層学習を行って、第1推論モデル405を出力することに相当する。
第1教師データを用いて第1学習を行うと、次に、第1学習結果の推論エンジンで推論を行い、信頼性を実測し(S5)、判定の結果が失敗か否かを判定する(S7)。前述しように、学習装置300内の入出力モデル化部304によって第1推論モデルが生成されると、この第1推論モデルはカメラ100に送信される。カメラ100内の推論エンジン104は、第1推論モデルを設定し、推論を行う。この推論の際に、推論エンジン104の入力部には、撮像部103によって取得した画像データを与える。この推論の結果が、カメラ100の表示部106に表示され(図3(b)参照)、ユーザは推論結果が正しいか否かを判定し、推論結果が正しくない場合には、テストデータ候補とする(図3(b)の画像P24参照)。ステップS7における判定の結果、失敗でなければ、ステップS5に戻り、次のテストデータを使って、推論および信頼性判定を行う。また、学習依頼部200の推論エンジン205にサンプルテストデータが記憶されている場合には、学習依頼部200において、第1学習結果の推論エンジンで推論し、信頼性を実測するようにしてもよい。
ステップS7における判定の結果、失敗であれば、テストデータを候補化する(S9)。すなわち、第1教師データを用いた生成した第1推論モデルでは、推論に失敗している。そこで、カメラ100の制御部101または学習依頼部200の制御部201が、第1推論モデルを修正した第2推論モデルを生成するために、この失敗した画像データをテストデータ候補とする。
次に、テストデータ候補のデータの数が、所定数に達したか否かを判定する(S11)。候補とされたテストデータの数が少ない場合には、再学習の必要性が低く、また第2教師データを作成できない。そこで、カメラ100の制御部101または学習依頼部200の制御部201が、再学習が必要なほど、第2教師データが多く、また第2教師データを作成するに十分なテストデータ候補が集まったかを判定する。この判定の結果、候補の数が所定数に達していない場合には、ステップS5に戻り、次のデータを用いて第1学習を行う。
ステップS11における判定の結果、テストデータの候補が所定数に達すると、次に、教師データを再作成する(S13)。教師データの再作成は、カメラ100または学習依頼部200の制御部201が、ステップS9において候補としたテストデータを用いて、第2教師データを作成する。学習依頼部200が教師データの再作成を行う場合には、カメラ100は、テストデータの候補を学習依頼部200に送信する。この第2教師データは、図2(b)における第2教師データ402、または図4の第2教師データ402に相当とする。教師データは、単に画像データだけではなく、推論を行った際の正解に関する情報が画像データに関連付けられていなければならない。この関連付けの作業をアノテーションと呼ぶ。この教師データ再作成の詳しい動作は、図7を用いて後述する。
教師データを再作成すると、次に、第2教師データで第2学習を行う(S15)。カメラ100または学習依頼部200が、教師データを第2教師データとして再作成すると、この第2教師データは、学習部300に送信される。入出力モデル化部304は、この入力した第2教師データを用いて、第2学習(深層学習)を行い、第2推論モデルを生成する。なお、母集合作成部302は、第2教師データを用いて、第2学習用の母集合を作成し、入出力モデル化部304は、この母集合を用いて、第2学習を行ってもよい。
学習部300が、第2推論モデルを生成すると、第2学習結果の推論エンジンで推論を行う(S17)。ここでは、学習部300が、第2推論モデルをカメラ100に送信する。カメラ100は、受信した第2推論モデルを推論エンジン104に設定し、撮像部103によって取得した画像に対して推論を行う。推論を行うと、このフローを終了する。
このように、学習依頼システムの動作では、まず、第1教師データを作成し、この第1教師データを用いて、深層学習を行うことにより、第1推論モデルを生成している(S1、S3)。そして、この第1推論モデルを用いて、画像を推論し、推論が失敗した場合の画像をテストデータ候補としている(S5〜S11)。テストデータ候補が所定数に達すると、このデータを用いて教師データを再作成し、この再作成した教師データを用いて、第2推論モデルを生成している(S13、S15)。このように、再作成した教師データを用いて、再学習するようにしているので、信頼性の高い推論を行うことができる。
また、本実施形態における学習依頼システムのフローチャートは、第1リクエストに基づいて生成される正誤判断用の学習モデルを取得するステップ(S1、S3参照)を有している。すなわち、本フローチャートでは、カメラ100または学習依頼部200は、学習部300に第1教師データ(第1リクエスト情報の一部である)を生成し、この第1教師データを用いて、推論モデル(学習モデル)を生成する。また、学習依頼システムのフローチャートは、学習モデルに特定のテストサンプルを入力して正誤判断を行うステップ(S5、S7参照)を有している。すなわち、本フローチャートでは、学習部300から入力した学習モデル(推論モデル)は、正誤判断に使用される(例えば、図2(b)におけるNG判断、図4における推論エンジン205のOK、NG判断、図6のS5、S7参照)。また、学習依頼システムのフローチャートは、正誤判断結果に従って、第2のリクエストを作成する第2リクエスト発生ステップを有する(S9、S11、S13参照)。すなわち、本フローチャートでは、正誤判断の結果に従って、第2教師データ(第2リクエスト情報の一部である)を作成し、学習部300に再学習を依頼している(例えば、図2(c)、図4の画像取捨選択、画像処理等、S9、S11、S13参照)。この第2のリクエストは、テストサンプル以外の情報を作成する。すなわち、本フローチャートでは、正誤判断はテストサンプルを用いて行い、第2リクエストはテストサンプル以外の情報(例えば、第2教師データ)を作成する。
なお、第2推論モデルは、学習依頼部200を介して、カメラ100に送信してもよく、また学習部300から直接カメラ100に送信してもよい。また、第1推論モデルをカメラ100に送信し、カメラ100において、ステップS5〜S9における失敗データを蓄積し、学習依頼部200が、この失敗データを用いて、第2教師データを作成するようにしてもよい。
次に、図7に示すフローチャートを用いて、ステップ13の教師データ再作成の動作について説明する。この処理は、学習依頼部200内の制御部201が実行する。なお、前述したように、カメラ100内の制御部101が、カメラ100内で取得した画像を用いて、実行してもよい。
教師データ再作成のフローが開始すると、まず、第1教師データとテストデータ候補を取得する(S21)。ここでは、制御部201は、学習部300が第1推論モデルを生成した際に、使用した学習用のデータ、すなわち第1教師データと、ステップS9において記録したテストデータ候補を取得する。
次に、第1教師データによるテストデータ候補の類似画像の寄与度を増加させる(S23)。ここでは、図2(b)を用いて説明したように、推論を失敗した場合には、推論を失敗した画像と類似の画像を増加させる。例えば、図2(b)に示すように、暗いために推論を失敗した場合には、第1教師データの画像P12の明暗を調整し、暗い画像に変換して作成してもよい。すなわち、失敗の原因に応じた画像処理を施して作成してもよい。また、後述するGANを用いて、推論を失敗した画像と類似の画像を生成するようにしてもよい。
次に、第1教師データにおけるテストデータ候補の類似が低い画像の寄与度を減少させる(S25)。ここでは、制御部201は、推論を失敗したテストデータの候補と、類似していない画像を減少させる。すなわち、このような画像は、推論を成功している可能性が高く、このような画像を減少させても、第2学習において生成される第2推論モデルの信頼性は低くならない。そこで、テストデータ候補と類似していない画像の寄与度を減少させている。この処理は、図4における教師データ402における画像を減らすことに相当する。
続いて、ネガティブサンプルの追加を行い、テストデータ候補の類似画像の教師データにする(S27)。ネガティブサンプルは、推論を失敗するような画像である。このような画像も、推論モデルの信頼性を向上させるために、教師データに追加する。次に、ステップS23〜S27におけるテストデータ候補の類似画像を教師データ化する。教師データは、単に画像データだけではなく、画像データに対して正解がアノテーションされている。例えば、猫の目の位置を推論する場合には、猫の目の位置を指定する情報が画像データに関連付けられている。このような、推論の正解を示すような情報を画像データに関連付ける。この作業をアノテーションと呼ぶ。テストデータ候補の類似画像を、教師データ化すると、このフローを終了し、元のフローに戻る。
次に、図8Aないし図11を用いて、学習依頼システムの個々の装置の動作について説明する。まず、図8Aおよび図8Bに示すフローチャートを用いて、カメラ100における動作について説明する。この動作は、カメラ100内の制御部101がメモリに記憶されたプログラムに従って実行する。
図8Aに示すカメラ制御のフローが開始すると、まず、撮影モードか否かを判定する(S31)。カメラ100には、再生モード、撮影モード、推論モデル取得モード等の種々のモードが設定可能である。このステップでは、制御部101内の設定制御部101bが、撮影モードが設定されているか否かを判定する。
ステップS31における判定の結果、撮影モードが設定されていた場合には、画像を入力する(S33)。このステップでは、撮像部103によって被写体像を光電変換し、画像データを取得する。この画像データは、ライブビュー画像の生成に使用される。
続いて、推論エンジンを起動するか否かを判定する(S35)。推論エンジンの起動は、例えば、ユーザが操作部102を手動操作することにより、起動してもよい。また、所定の条件に一致した場合には、推論エンジンを自動で起動させるようにしてもよい。例えば、画像が所定以上の明るさになった場合とか、画像を解析し、設定されている推論モデルが得意とするカテゴリーに属する被写体であることが判明した場合等がある。
ステップS35における判定の結果、推論エンジンが起動した場合には、推論を行う(S37)。この場合には、推論エンジン104の入力部に、撮像部103によって取得した画像を入力する。推論エンジン104の入力画像に対して、所定の推論を行う。この場合、図3(b)の画像P21〜P26に示すように、「発動」の文字等によって、推論がなされていることを表示してもよい
推論を行うと、次に、信頼性が所定値より高いか否かを判定する(S39)。推論エンジン104は、一般に、現在行っている推論結果の信頼性(前述のLOSS値)を算出することができる。そこで、このステップでは、ステップS37において行った推論の信頼性(LOSS値)が、所定値より高いか否かを判定する。
ステップS39における判定の結果、信頼性が高くない場合には、検出すべきシーンか否かを判定する(S45)。信頼性が低いのは、推論モデルが、元々そのシーンを検出することを想定していない場合がある。設定されている推論モデルの得意とするシーンでない(専門外のシーン)場合には、信頼性は低いことが予想される。このステップでは、ユーザが目視で検出すべきシーンか否かを判定してもよく、また画像解析により判別できれば、その結果を利用してもよい。図3(b)における画像P24は、本来検出すべきシーンであるにもかかわらず、検出できていない例である。
ステップS45における判定の結果、検出すべきシーンだった場合には、この画像を記録し、テストデータの候補とする(S47)。この場合は、検出すべきシーンだったにもかかわらず、信頼性が低かったケースである。このような場合には、その画像を第2教師データとして、再学習させた方がよい場合かもしれない。そこで、この画像データを、テストデータ候補として記録しておく。例えば、図3(b)に示す画像P24は、推論で猫の目の位置を検出できなかったことから、テストデータ候補とされる。
ステップS47において、テストデータ候補として記録すると、またはステップS45における判定の結果、検出すべきシーンでなかった場合には、またはステップS35における判定の結果、推論エンジンが起動しない場合には、画面内が平均的に撮影されるように各種パラメータを制御する(S49)。ここでは、画像に対する推論を行うことなく、一般的な露出制御を行う。
ステップS39に戻り、この判定の結果、信頼性が高い場合には、検出結果を表示する(S41)。ここでは、ステップS37における推論結果を、ライブビュー画像と共に表示部106に表示する。例えば、図3(b)の画像P22、P25に示すように、推論によって得られた猫の目の位置を丸印で表示する。
検出結果を表示すると、次に、検出結果に基づいて適切に撮影されるように、各種パラメータを制御する(S43)。ここでは、パラメータ制御部101eが、カメラ100内の各種パラメータの制御を行う。例えば、図3(b)に示す例では、猫の目の位置を推論によって検出している。猫の目の位置を検出すると、この位置にピントが合うようにフォーカスレンズの焦点調節を行い、また適正露出となるように絞りやシャッタ等の制御値を算出する。
ステップS43またはS49においてパラメータを制御すると、次に、動画撮影または静止画撮影か否かを判定する(S51)。ユーザは、表示部106を観察し、構図やシャッタチャンス等が、ユーザの意図する状態となった際に、操作部102のレリーズ釦または動画釦等を操作する。このステップでは、撮影指示の操作がなされたか否かを判定する。この判定の結果、撮影指示がなされていない場合には、ステップS31に戻る。
一方、ステップS51における判定の結果、撮影指示がなされた場合には、撮影を行い、画像データを記録する(S53)。このステップでは、ステップS43またはS49において設定されたパラメータに従って、露出制御を行う。露出制御が終了し、シャッタが閉じると、撮像部103によって取得された画像データを、画像処理部101dによって静止画用または動画用の画像処理を施し、この画像処理された画像データを記録部105に記録する。
画像データを記録すると、次に、検出すべきシーンで未検出のものがあったか否かを判定する(S55)。ライブビュー画像の表示中に検出すべきシーンであるにもかかわらず、推論結果の信頼性が低い場合には、テストデータ候補として記録している(S47参照)。このステップでは、ステップS53における撮影の際に、検出すべきシーンであるにもかかわらず、推論によって検出されなかったか否かを判定する。この判定結果が、Noである場合には、ステップS31に戻る。
ステップS55における判定の結果、検出すべきシーンであったにもかかわらず、推論によって検出されなかった場合には、テストデータ候補にする(S57)。ここでは、ステップS47と同様、ステップS53において撮影された画像データをテストデータとして記録する。この処理を行うと、ステップS31に戻る。
ステップS31に戻り、このステップにおける判定の結果、撮影モードでない場合には、次に、推論モデルを取得するか否かを判定する(S61)。このカメラ100の操作部102を操作することにより、推論エンジン104に設定する推論モデルを取得するモードを設定することができる。
ステップS61における判定の結果、推論モデルを取得するのでなければ、再生モード等を実行する(S71)。再生モードが設定されると、記録部105に記録されている画像データ105aを読み出し、表示部106に表示する。再生モード以外にも、適宜、設定可能なモードがあれば、これらを実行することができる。再生モード等を実行すると、ステップS31に戻る。
一方、ステップS61における判定の結果、推論モデルを取得する場合には、次に、自機で依頼するか否かを判定する(S63)。推論モデルは、前述したように、学習部300において生成する。このステップでは、学習部300に、カメラ100(自機)から直接依頼するか、または学習依頼部200に仲介を依頼するか否かを判定する。ユーザは、操作部102によって、自機で依頼するか、仲介を依頼するかを、設定することができる。
ステップS63における判定の結果、自機で依頼しない場合には、仲介を依頼する(S73)。この場合には、カメラ100は、通信部107および学習依頼部200内の通信部B203を介して、学習依頼部200に、推論モデルの生成の仲介を依頼する。このとき、ステップS47、S57で記録したテストデータ候補も送信する。学習依頼部200は、仲介を依頼されると、第2教師データを図7に示したフローと同様な処理を行い作成する(図10のS101以下参照)。仲介を依頼すると、ステップS31に戻る。
ステップS63における判定の結果、自機で依頼する場合には、テストデータ数を判定する(S65)。前述したように、ステップS47、S57において、テストデータの候補を記録している。このステップでは、記録されているテストデータの候補をカウントする。
続いて、再学習が必要であり、依頼するか否かを判定する(S67)。テストデータ候補の数が所定数よりも多い場合には、現在使用している推論モデルが、撮影環境の変化や、撮影機材の変化等により、相応しくなくなっている。また、ユーザが、現在設定されている推論モデルとは全く別の推論モデルを取得したい場合がある。このステップでは、これらの条件に基づいて、再学習が必要か否かを判定する。
ステップS67における判定の結果、再学習が必要であり、再学習による推論モデルの取得を依頼する場合には、教師データを再作成し、再学習を依頼する(S69)。ここでは、図7に示したフローチャートと同様に、テストデータ候補を考慮して、第2教師データを作成する。第2教師データが作成されると、通信部107を介して、学習部300に第2教師データを送信し、再学習を依頼する。また、このとき、画像にアノテーションの情報の修正を行ってもよい。また、推論モデル生成の際の要求仕様を送信してもよい。
一方、ステップS67において、再学習が必要で依頼するのではない場合には、次に、取得か否かを判定する(S75)。このステップでは、新規の推論モデルを取得するのか否かを判定する。この判定の結果、取得でない場合には、ステップS31に戻る。
ステップS75における判定の結果、取得する場合には、新推論モデルの取得を行う(S77)。この場合には、学習部300に対して、新推論モデルの要求仕様を送信し、学習部300において、新推論モデルを生成してもらう。学習部300が新推論モデルを生成すると、カメラ100に送信してくるので、この新推論モデルを推論エンジン104に設定する。新推論モデルを取得すると、ステップS31に戻る。
このように、カメラ制御のフローにおいては、推論エンジン104を用いて、撮像部103によって取得された画像に対して推論を行う(S37)。この推論結果の信頼性が低い場合には、推論エンジン104が、検出すべきシーンであったか否かを判定し、検出すべきシーンの場合には、この時の画像データをテストデータ候補として記録するようにしている(S39No、S45Yes、S47参照)。また、撮影を行った際にも、検出すべきシーンであったにもかかわらず、推論によって検出できなかった場合には、この時の画像データをテストデータ候補として記録するようにしている(S55Yes、S57)。テストデータ候補として記録された画像データは、再学習が必要な場合には、教師データとして再作成する際に使用される(S67Yes、S69参照)。このため、推論モデルが、撮影対象や撮影機材の変化により、最適でなくなった場合であっても、信頼性の高い推論モデルを生成することが可能となる。
次に、図9に示すフローチャートを用いて、学習部300の動作について説明する。このフローは、学習部300内の制御部301がメモリに記憶されたプログラムに基づいて実現する。
図9に示す学習装置のフローが開始すると、まず、学習依頼を受信したか否かを判定する(S81)。このステップでは、制御部301は、カメラ100または学習依頼部200から、通信部を介して、深層学習による推論モデルの生成を依頼されたか否かを判定する。学習依頼を受信しない場合には、そのステップで待機状態となる。
ステップS81における判定の結果、学習依頼を受けると、次に、要求仕様を取得する(S83)。深層学習による推論モデルの生成の依頼を受ける際には、送信元から推論モデルの要求仕様を送信してくる。このステップでは、送信元からの要求仕様を受信し、記録する。
続いて、教師データを取得する(S85)。学習の依頼元であるカメラ100または学習依頼部200は、教師データ(基準教師データの場合もある)を送信してくる場合がある。この場合には、母集合作成部302は、受信した教師データに基づいて、深層学習のための母集合(教師データ)を作成する。基準教師データがない場合には、母集合作成部302は要求仕様に基づいて、母集合(教師データ)を作成する。
教師データを作成すると、次に、推論モデルを生成する(S87)。ここでは、入出力モデル化部304は、ステップS85において取得した教師データを用いて、推論モデルを生成する。
推論モデルを生成すると、次に、推論モデルが要求仕様を満たすか否かを判定する(S89)。ここでは、ステップS87において生成した推論モデルが、ステップS83において取得した要求仕様を満たしているか否かを判定する。
ステップS89における判定の結果、要求仕様を満たしていない場合には、教師データを再設定する(S91)。推論モデルが、依頼元の要求を満たしていない場合は、ステップS85において作成した母集合(教師データ)が適していなかったおそれがある。そこで、要求仕様等に基づいて、母集合作成部302は母集合(教師データ)を再設定する。
教師データを再設定すると、所定回数以上か否かを判定する(S93)。本実施形態においては、教師データを再設定するたびに、推論モデルを生成し(S87)、要求仕様を満たしているかを判定する(S89)。しかし、この処理を何回も繰り返しても要求仕様を満たさない場合がある。そこで、このステップでは、教師データを再設定して推論モデルを生成した回数が、所定回数以上か否かを判定している。この判定の結果、所定回数以上でない場合には、ステップS87に進む。
一方、ステップS93における判定の結果、教師データの再設定の回数が所定回数以上となった場合には、苦手画像情報等を送信する(S95)。教師データを所定回数、再設定しても要求仕様を満たすことができない場合は、要求仕様にある画像は推論モデルの生成は苦手といえる。そこで、要求仕様に係る画像は、苦手であることを、依頼元に送信する。
ステップS89における判定の結果、要求仕様を満たしていた場合、またはステップS95において、苦手画像情報等を送信すると、依頼機器に推論モデルを送信する(S97)。ここでは、ステップS87において、生成した推論モデルを、依頼元に送信する。なお、ステップS89において要求仕様を満たしていないと判定された場合には、所定の処理後に苦手画像情報(S95参照)と推論モデル(S97参照)を送信する。この場合には、依頼元は苦手画像以外には、推論モデルの利用が可能である。また、苦手画像情報を送信する場合には、推論モデルの送信を行わないようにして、教師データを見直してもらうようにしてもよい。推論モデルを送信すると、ステップS81に戻る。
このように、学習装置においては、学習依頼があった場合には、要求仕様に応じた推論モデルを生成し(S83、S87)、推論モデルを生成すると、依頼元に送信している(S97)。また、依頼元から基準教師データが送信されてきた場合には、この基準教師データを含み、また基準教師データと類似するデータからなる母集合(教師データ)を作成して推論モデルを生成している。カメラ100または学習依頼部200から、第2教師データが送信されたきた場合にも、第1教師データと同様に推論モデルが生成されることはいうまでもない。
次に、図10に示すフローチャートを用いて、学習依頼装置の動作について説明する。このフローは、学習依頼部200内の制御部201がメモリに記憶されたプログラムに基づいて実現する。なお、このフローは、学習依頼装置に限らず、学習部300とカメラ100以外の装置、例えば、PCやスマートフォン等の外部機器等によっても実行することができる。
図10に示す学習依頼装置のフローが開始すると、まず、仲介依頼があったか否かを判定する(S101)。ここでは、カメラ100が、直接、学習部300に推論モデルの生成を依頼せずに、学習依頼部200を仲介して依頼するか否かを判定する。前述したように、カメラ100のユーザは、ステップS73(図8B参照)において、学習依頼部200に推論モデルの取得を依頼してくる。このステップでは、この依頼があったか否かに基づいて判定する。この判定がない場合には、学習依頼装置のフローは待機状態となる。
ステップS101における判定の結果、仲介依頼があった場合には、テストデータ候補を取得する(S103)。カメラ100から学習依頼部200に、推論モデル取得の仲介を依頼する際に、カメラ100において記録したテストデータ候補(ステップS47、S57参照)を送信してくるので、このテストデータ候補を取得する。続いて、テストデータ候補の数を判定する(S105)。このステップでは、ステップS103において受信したテストデータ候補をカウントする。
次に、再学習が必要で依頼するのかを判定する(S107)。前述したように、テストデータの候補が所定数よりも多い場合には、現在使用している推論モデルが、撮影環境の変化や、撮影機材の変化等により、相応しくなくなっている。また、ユーザが、現在設定されている推論モデルとは全く別の推論モデルを取得したい場合がある。このステップでは、これらの条件に基づいて、再学習が必要か否かを判定する。
ステップS107における判定の結果、再学習が必要であり、再学習による推論モデルの取得を依頼する場合には、教師データを再作成し、再作成できたら推論モデルの生成を依頼する(S109)。ここでは、図7に示したフローチャートと同様に、テストデータ候補を考慮して、第2教師データを作成する。第2教師データができたら、通信部B203を介して、学習部300に推論モデルを生成するために、再学習を依頼する。また、このとき、画像にアノテーションの情報の修正を行ってもよい。また、推論モデル生成の際の要求仕様を送信してもよい。
一方、ステップS107において、再学習を行うことが必要でない場合には、次に、取得か否かを判定する(S111)。このステップでは、全く新規の推論モデルを取得するのか否かを判定する。この判定の結果、取得でない場合には、ステップS101に戻る。
ステップS111における判定の結果、取得する場合には、新推論モデルの取得を行う(S113)。この場合には、学習部300に対して、新推論モデルの要求仕様を送信し、学習部300において、新推論モデルを生成してもらう。学習部300が新推論モデルを生成すると、学習依頼部200に送信してくるので、この新推論モデルをカメラ100に送信する。新推論モデルを送信すると、ステップS101に戻る。
このように、学習依頼部200が、カメラ100から推論モデルの取得の仲介を依頼された場合には(S101Yes)、依頼元からテストデータ候補を取得し、このデータ数に基づいて、再学習が必要か否かを判定している(S105、S107)。再学習が必要な場合には、テストデータ候補に基づいて、教師データ(第2教師データ)を作成し、この教師データを学習部300に送信する(S109)。学習部300は、この教師データに基づいて深層学習により推論モデルを生成する(図9のS85、S87参照)。
次に、図11を用いて、GAN(Generative Adversarial Network)によって教師データと類似の画像データを生成する方法について説明する。図11は、GANによって、教師データ(テストデータ)と類似の画像を生成するための構成を示す。このGANは、生成AI(Artificial Intelligence)500と識別AI510の2つの部分からなる。
生成AI500は、入力部304ba、ネットワーク・デザイン304da、出力部304caを有し、これらの各部はジェネレータとして機能する。このネットワーク・デザイン304daは、前述のネットワーク・デザイン304dと同様、入力層と出力層の間に中間層(ニューロン)が配置されている。中間層としては、何層かのニューロンが配置されており、各中間層の間は、深層学習によって重み付けがなされる。入力部304baには、ノイズ信号P31が入力されると、ネットワーク・デザイン304daに設定されている推論モデルによって推論され、出力部304caから画像P32が出力される。ジェネレータの入力はノイズであればよく、二次元画像である必要はない。推論モデル生成の初期の段階では、画像P32は、失敗画像のような画像である。
識別AI510は、入力部304bb、ネットワーク・デザイン304db、出力部304cbを有し、これらの各部は分類機として機能する。このネットワーク・デザイン304dbも、前述のネットワーク・デザイン304d、304daと同様なので、詳しい説明を省略する。入力部304dbには、ネットワーク・デザイン304daからの出力画像P32、またはテストデータP33を入力する。また学習用データP35、P36は、嘘の画像と本当の画像であり、正解が分かっている画像である。
入力部304dbには、画像P32またはテストデータP33を入力し、出力部304cbからの出力結果が、嘘であるか本当であるかを、LOSS値に基づいて判定する。この判定の結果、嘘が多い場合には、ジェネレータ側にLOSS値改善依頼信号を送信し、ネットワーク・デザイン304daにおいて再学習を行う。一方、LOSS値に基づく判定の結果が、本当が多い場合には、分類機側のネットワーク・デザイン304dbにテストデータP33を入力して、分類機の再学習を行う。
このように、ネットワーク・デザイン304dbからの出力結果(LOSS値)に応じて、分類機による再学習とジェネレータによる再学習を競させている。全体として学習のバランスをとることにより、ネットワーク・デザイン304daにおける推論モデルが、次第に、テストデータ(第1教師データ)の画像と類似した画像を推論によって生成することができるようになる。ネットワーク・デザイン304dcは、ネットワーク・デザイン304daにおいて完成した推論モデルが設定されている。この状態では、ネットワーク・デザイン304dcに、ノイズ信号P37を入力すると、テストデータP33(第1教師データ)に類似した画像を、推論により、多数作成することができる。
以上説明したように、本発明の一実施形態においては、学習依頼装置は、第1の画像群とそのアノテーション結果からなる第1の教師データによって学習された第1の推論モデルを用いて、第1の画像群とは異なる第2の画像に対して推論を行う推論部を有している(例えば、図1の推論エンジン104、205、図2の推論エンジン205、図4の推論エンジン205、図6のS1〜S5参照)。また、学習依頼装置は、推論部における推論結果を判定して、第1の教師データを補正する補正情報を出力する補正部を有している(例えば、図4の画像取得選択、画像処理、補正、図6のS9、S11、S13参照)。このため、信頼性の高い推論を行うことができるように、再学習の依頼を行うことができる。すなわち、第1の教師データで生成した第1の推論モデルによって推論した場合の推論結果を利用して第1の教師データを補正し、この補正した第1の教師データによって再学習を依頼することができる。なお、学習依頼装置は、学習依頼部200に限らず、カメラ100も、その機能を果たすことができる。
また、本発明の一実施形態においては、学習依頼装置は、第1教師データに基づいて生成された第1推論モデルによって推論を行った際の誤検出データに基づいて、第2教師データを作成する教師データ作成部を有している(例えば、図2(c)、図4の第2教師データ402、図6のS13参照)。また、学習依頼装置は、第2教師データに基づいて、第2推論モデルを生成するための再学習を学習装置に依頼する通信部を有している(例えば、図1Aの通信部B203、図1Bの通信部107、図8BのS69、図10のS109参照)。このため、信頼性の高い推論を行うことができるように、再学習の依頼を行うことができる。すなわち、第1教師データに基づく推論を行った結果、誤検出した場合には、このデータに基づいて、第2教師データを作成し、通信部を介して学習装置に再学習を依頼することができる。なお、学習依頼装置は、学習依頼部200に限らず、カメラ100も、その機能を果たすことができる。
なお、本発明の一実施形態においては、カメラ100と学習依頼部200と学習部300の組み合わせからなるシステムについて説明した。しかし、この組み合わせに限らず、カメラ100が学習依頼部200の機能を合わせ持っていてもよく、また学習依頼部200が学習部300の機能を有していてもよい。また、テストデータ202は、カメラ100からのテストデータとはかかわりなく、学習依頼部200が独自に生成したデータであってもよい。
また、本発明の好ましい実施形態においては、学習装置における学習は、深層学習を行っていたが、これに限らず、機械学習等の人工知能を利用した学習であればよい。また、近年は、様々な判断基準を一括して判定できるような人工知能が用いられる事が多く、ここで示したフローチャートの各分岐などを一括して行うような改良もまた、本発明の範疇に入るものであることは言うまでもない。
また、本発明の一実施形態においては、学習部300内においては、母集合作成部302、基準教師データ記録部303、入出力モデル化部304、通信部A305a、通信部B305b等を、制御部301とは別体の構成としていた。また学習依頼部200内においては、画像分類記録部202、通信部B203、仕様性って言部204、推論エンジン2056等を、制御部201と別体の構成としていた。さらに、カメラ100内において、操作部102、撮像部103、推論エンジン104、記録部105、表示部106等を、制御部101とは別体の構成としていた。しかし、これに限らず、各部の全部または一部をソフトウエアで構成し、制御部101、201、301内のCPUによって実行するようにしても勿論かまわない。また、制御部101内の各部を、制御部の外にハードウエア回路によって設けてもよい。また、CPUに限らず、コントローラとしての機能を果たす素子であればよく、上述した各部の処理は、ハードウエアとして構成された1つ以上のプロセッサが行うようにしてもよい。例えば、各部は、それぞれが電子回路として構成されたプロセッサであっても構わないし、FPGA(Field Programmable Gate Array)等の集積回路で構成されたプロセッサにおける各回路部であってもよい。または、1つ以上のCPUで構成されるプロセッサが、記録媒体に記録されたコンピュータプログラムを読み込んで実行することにより、各部としての機能を実行するようにしても構わない。また、上述の各部は、ヴェリログ(Verilog)によって記述されたプログラム言語に基づいて生成されたゲート回路等のハードウエア構成でもよく、またDSP(Digital Signal Processor)等のソフトを利用したハードウエア構成を利用してもよい。これらは適宜組み合わせてもよいことは勿論である。
また、本発明の一実施形態においては、カメラ100として、デジタルカメラを用いて説明したが、カメラとしては、デジタル一眼レフカメラでもミラーレスカメラでもコンパクトデジタルカメラでもよく、ビデオカメラ、ムービーカメラのような動画用のカメラでもよく、さらに、携帯電話、スマートフォン、携帯情報端末、パーソナルコンピュータ(PC)、タブレット型コンピュータ、ゲーム機器等に内蔵されるカメラ、医療用カメラ、顕微鏡等の科学機器用のカメラ、自動車搭載用カメラ、監視用カメラでも構わない。いずれにしても、異なる光学システムを採用する撮影のための機器であれば、本発明を適用することができる。
また、近年は、様々な判断基準を一括して判定できるような人工知能が用いられる事が多く、ここで示したフローチャートの各分岐などを一括して行うような改良もまた、本発明の範疇に入るものであることは言うまでもない。そうした制御に対して、ユーザが善し悪しを入力可能であれば、ユーザの嗜好を学習して、そのユーザにふさわしい方向に、本願で示した実施形態はカスタマイズすることが可能である。ユーザは、必ずしも学習に適した教師データとなるコンテンツを豊富に持っているわけではないので、第三者が保存したコンテンツ類に加えて、自分の手持ちのコンテンツを利用した推論モデル作成を依頼するケースが増えてくる。このような状況下においても、本実施形態によれば、安心した注文等が可能となる。近年、インターネット上には動画のサンプルなどが大量に出回っているので、これらのサンプルを使いたいユーザは多い。また、動画には音声の情報も含まれているので、本明細書において、「画像」と記載した部分は、音声付きの画像で、音声に対する推論モデルであってもよい。また、画像、音声の各種機械学習以外にも、本願が留意している守秘性や肖像権、著作権、データの希少性や改ざんなどの危険や個人情報の保護を含めたセキュリティの保持、あるいはノウハウ保護を考慮して、手持ちデータは出さずに再度の学習、あるいはチューニングを依頼することが可能となる。個人でなくとも、企業であっても同様の傾向の依頼形態となる。また、依頼される側も、個人情報や守秘義務の問題がある画像や音声やその他データは利用をためらう傾向がある。したがって、手元にあるデータ以外でも、簡単に、ユーザが想定した特定の利用状況により特化した推論モデルを得るために、カスタマイズ、チューニングが容易に可能となるシステムが求められる。画像以外にアノテーションを行う場合に、例えば音声の場合であって、音声認識時に特定の音声の認識率を上げるような場合でも、本願は利用可能である。
また、本明細書において説明した技術のうち、主にフローチャートで説明した制御に関しては、プログラムで設定可能であることが多く、記録媒体や記録部に収められる場合もある。この記録媒体、記録部への記録の仕方は、製品出荷時に記録してもよく、配布された記録媒体を利用してもよく、インターネットを介してダウンロードしたものでもよい。
また、本発明の一実施形態においては、フローチャートを用いて、本実施形態における動作を説明したが、処理手順は、順番を変えてもよく、また、いずれかのステップを省略してもよく、ステップを追加してもよく、さらに各ステップ内における具体的な処理内容を変更してもよい。
また、特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず」、「次に」等の順番を表現する言葉を用いて説明したとしても、特に説明していない箇所では、この順で実施することが必須であることを意味するものではない。
本発明は、上記実施形態にそのまま限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素の幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
100・・・カメラ、101・・・制御部、101a・・・記録制御部、101b・・・設定制御部、101c・・・通信制御部、101d・・・画像処理部、101e・・・パラメータ制御部、101f・・・表示制御部、102・・・操作部、103・・・撮像部、103a・・・光学系、103b・・・撮像素子、104・・・推論エンジン、104a・・・ネットワーク・デザイン、104b・・・管理情報、105・・・記録部、105a・・・画像データ、105b・・・テストデータ候補、106・・・表示部、107・・・通信部、200・・・学習依頼部、201・・・制御部、202・・・画像分類記録部、202a・・・対象物種類A画像群、202b・・・基準教師データ、202c・・・テストデータ、203・・・通信部、204・・・仕様設定部、300・・・学習部、301・・・制御部、302・・・母集合作成部、302a・・・入出力設定部、303・・・基準教師データ記録部、304・・・入出力モデル化部、304a・・・信頼性判定部、304b・・・入力部、304c・・・出力部、304d・・・ネットワーク・デザイン、305a・・・通信部A、305b・・・通信部B、401・・・第1教師データ、402・・・第2教師データ、405・・・第1推論モデル、406・・・第2推論モデル、411・・・ユーザ、413・・・撮影対象、500・・・生成AI、510・・・識別AI
Claims (14)
- 第1の画像群とそのアノテーション結果からなる第1の教師データによって学習された第1の推論モデルを用いて、上記第1の画像群とは異なる第2の画像に対して推論を行う推論部と、
上記推論部における推論結果を判定して、上記第1の教師データを補正する補正情報を出力する補正部と、
を有することを特徴とする学習依頼装置。 - 上記推論部は、上記第2の画像としてテストデータを用いて推論を行い、
上記補正部は、上記推論結果に応じて、上記第1の教師データに含まれる画像データを増加させ、または減少させ、または画像データに対して画像処理を施す、
ことを特徴とする請求項1に記載の学習依頼装置。 - 上記第1推論モデルを用いて、撮像部によって取得した撮像データに対して推論を行い、推論結果が誤検出であった場合に、上記撮像データを上記テストデータの候補とすることを特徴とする請求項2に記載の学習依頼装置。
- 上記補正情報に基づいて、第2教師データを作成し、この第2教師データに基づいて、推論モデルを生成する再学習を依頼する依頼部を有することを特徴とする請求項1に記載の学習依頼装置。
- 第1教師データに基づいて生成された第1推論モデルによって推論を行った際の誤検出データに基づいて、第2教師データを作成する教師データ作成部と、
上記第2教師データに基づいて、第2推論モデルを生成するための再学習を学習装置に依頼する通信部と、
を有することを特徴とする学習依頼装置。 - 上記教師データ作成部は、上記誤検出した際の画像に基づいて、上記第1の教師データに含まれる画像データを増加させ、または減少させ、または画像データに対して画像処理を施すことを特徴とする請求項5に記載の学習依頼装置。
- 第1リクエストに基づいて生成される正誤判断用の学習モデルを取得するステップと、
上記学習モデルに特定のテストサンプルを入力して正誤判断を行うステップと、
上記正誤判断結果に従って、第2のリクエストを作成する第2リクエスト発生ステップと、
を有することを特徴とする学習依頼方法。 - 上記第2のリクエストは、上記テストサンプル以外の情報を作成することを特徴とする請求項7に記載の学習依頼方法。
- 第1の画像群とそのアノテーション結果からなる第1の教師データによって学習された第1の推論モデルを用いて、上記第1の画像群とは異なる第2の画像に対して推論を行い、
上記推論の結果を判定して、上記第1の教師データを補正する補正情報を作成する、
ことを特徴とする学習依頼方法。 - 上記推論は、上記第2の画像としてテストデータを用いて推論を行い、
上記推論の結果に応じて、上記第1の教師データに含まれる画像データを増加させ、または減少させ、または画像データに対して画像処理を施す、
ことを特徴とする請求項9に記載の学習依頼方法。 - 上記第1推論モデルを用いて、撮像部によって取得した撮像データに対して推論を行い、推論結果が誤検出であった場合に、上記撮像データを上記テストデータの候補とすることを特徴とする請求項10に記載の学習依頼方法。
- 上記補正情報に基づいて、第2教師データを作成し、この第2教師データに基づいて、推論モデルを生成する再学習を依頼することを特徴とする請求項9に記載の学習依頼方法。
- アノテーション結果を付与可能な第1の画像群を学習装置に送信する送信部と、
アノテーションされた上記第1の画像群によって学習された第1の推論モデルを上記学習装置から受信する受信部と、
上記第1の画像群には含まれない第2の画像に対して推論を行う推論部と、
上記推論部における推論結果を判定して、上記第1の教師データを補正する補正情報を出力する補正部と、
上記補正情報を上記送信部から上記学習装置に送信して再学習を依頼する再学習依頼部と、
を有することを特徴とする学習依頼装置。 - アノテーション結果を付与可能な第1の画像群を学習装置に送信する送信部と、
アノテーションされた上記第1の画像群によって学習された第1の推論モデルを上記学習装置から受信する受信部と、
上記第1の画像群には含まれない第2の画像に対して推論を行う推論部と、
上記推論部における推論結果を判定して、上記第1の画像、上記第2の画像とは異なる第3の画像を上記送信部から上記学習装置に送信して再学習を依頼して上記第1の推論モデルとは異なる第2の推論モデルを取得する再学習依頼部と、
を有することを特徴とする学習依頼装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019010405A JP2020119322A (ja) | 2019-01-24 | 2019-01-24 | 学習依頼装置および学習依頼方法 |
US16/742,829 US20200242154A1 (en) | 2019-01-24 | 2020-01-14 | Image file generating device and image file generating method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019010405A JP2020119322A (ja) | 2019-01-24 | 2019-01-24 | 学習依頼装置および学習依頼方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2020119322A true JP2020119322A (ja) | 2020-08-06 |
Family
ID=71890876
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019010405A Pending JP2020119322A (ja) | 2019-01-24 | 2019-01-24 | 学習依頼装置および学習依頼方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2020119322A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020126328A (ja) * | 2019-02-01 | 2020-08-20 | 株式会社日立製作所 | 計算機、学習データの生成方法、及び計算機システム |
WO2022113535A1 (ja) * | 2020-11-27 | 2022-06-02 | 株式会社Jvcケンウッド | 画像認識装置、画像認識方法、および物体認識モデル |
JP7493195B1 (ja) | 2024-01-29 | 2024-05-31 | パテント・インテグレーション株式会社 | プログラム、方法、情報処理装置、システム |
-
2019
- 2019-01-24 JP JP2019010405A patent/JP2020119322A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020126328A (ja) * | 2019-02-01 | 2020-08-20 | 株式会社日立製作所 | 計算機、学習データの生成方法、及び計算機システム |
JP7082073B2 (ja) | 2019-02-01 | 2022-06-07 | 株式会社日立製作所 | 計算機、学習データの生成方法、及び計算機システム |
WO2022113535A1 (ja) * | 2020-11-27 | 2022-06-02 | 株式会社Jvcケンウッド | 画像認識装置、画像認識方法、および物体認識モデル |
JP7493195B1 (ja) | 2024-01-29 | 2024-05-31 | パテント・インテグレーション株式会社 | プログラム、方法、情報処理装置、システム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11281940B2 (en) | Image file generating device and image file generating method | |
US20200242154A1 (en) | Image file generating device and image file generating method | |
JP7064346B2 (ja) | 撮像装置、情報端末、撮像装置の制御方法、および情報端末の制御方法 | |
JP5128880B2 (ja) | 画像取扱装置 | |
US20190370602A1 (en) | Learning management device, learning management method, and imaging device | |
JP2020123174A (ja) | 画像ファイル生成装置、画像ファイル生成方法、画像管理装置、および画像管理方法 | |
US20200412982A1 (en) | Laminated image pickup device, image pickup apparatus, image pickup method, and recording medium recorded with image pickup program | |
JP2020091702A (ja) | 撮像装置および撮像方法 | |
JP2020119322A (ja) | 学習依頼装置および学習依頼方法 | |
CN110365905A (zh) | 自动拍照方法及装置 | |
JP4818997B2 (ja) | 顔検出装置及び顔検出プログラム | |
JP4772756B2 (ja) | 撮像装置及び撮像プログラム | |
JP6960445B2 (ja) | 撮像装置、制御方法、プログラム、モデル生成システム、製造方法、及び撮影パラメータ決定システム | |
JP7403995B2 (ja) | 情報処理装置、制御方法およびプログラム | |
WO2023149135A1 (ja) | 画像処理装置、画像処理方法及びプログラム | |
JP7152244B2 (ja) | 学習装置、学習方法およびプログラム | |
JP7166951B2 (ja) | 学習依頼装置、学習装置、推論モデル利用装置、推論モデル利用方法、推論モデル利用プログラム及び撮像装置 | |
JP2019191933A (ja) | 学習装置、撮像装置、画像処理装置、および学習方法 | |
JP7166837B2 (ja) | 教師データ作成装置、教師データ作成方法、教師データ作成プログラム、学習装置及び撮像装置 | |
JP2020194472A (ja) | サーバ、表示方法、作成方法、およびプログラム | |
JP6006841B2 (ja) | 画像取扱装置、画像取扱方法、およびプログラム | |
JP2020005190A (ja) | 撮影装置、撮影装置の制御方法及びプログラム | |
JP7200030B2 (ja) | 学習装置、撮像装置、学習システム、ai情報提供装置、学習方法及び学習プログラム | |
JP5548964B2 (ja) | 電子データ編集装置、電子データ編集方法及びプログラム | |
JP2022040912A (ja) | 検出装置および検出方法 |