ユーザが特定の関心事に対して推論モデルを利用したいとき、特定の視覚的なシーンに対して、何か情報を得たいというニーズが増加する。そこで画像を見ながら簡単に教師データを生成しようという要望が生じる。しかし、個々のユーザの意図に沿った推論モデルを生成するためには、特定の規格化を行い、単純化しななければ作業が複雑になる。以下の本発明の一実施形態に示すような例のような工夫を行うことにより、それぞれのシーンで、個々のユーザの様々な関心事に答えられる推論モデルを簡単に生成することが可能となる。
以下、本発明の一実施形態として、カメラ、学習部、および画像ファイル生成部とからなる画像ファイル生成システムについて説明する。この実施形態の概略は、以下の通りである。カメラは撮像部を有し、撮像部は画像を画像データに変換し、表示部は画像データに基づいて撮影後に確認用にクイックビュー画像を表示する。画像表示の際に、ユーザの関心事に関係する情報(例えば、図4に示す例では、「良い教師」「悪い教師」)を示すアイコンが表示される。ユーザが、画像についての判断結果に応じてアイコンを選択すると、この選択されたアイコンに基づくアノテーション用メタデータ付き画像ファイルが生成される。もちろん、アイコン等によって表示された項目内における二者択一ではなく、項目内の留意点や項目内の軸、あるいは項目内の特徴指定、項目内の方向性や重みなど、(例えば、良し悪し項目の)レベルを入力できる仕様でも良い。
図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(タッチパネルを含む)によって、後述する表示部106に表示するアイコンIC1~IC3、IC11~IC13を選択することができる(図4~図6参照)。操作部102は、アイコンを選択するための選択部として機能する。
撮像部103は、光学系103aと撮像素子103bを有する。光学系103aは、撮影対象である被写体の光学像を形成するための光学レンズであり、フォーカスレンズやズームレンズ等を有する。撮像素子103bは光学像を光電変換し、画像信号を出力する。この他、撮像部103は、撮像制御回路、画像信号処理回路、絞り、シャッタ等の種々の回路や素子を有する。画像信号は、画像信号処理回路によってデジタルの画像データに変換され、制御部101および推論エンジン104等に出力される。撮像部103は、画像を画像データに変換し、該画像データを出力する撮像部として機能する(図8AのS3参照)。撮像部103は、画像に基づいて変換された画像データを入力する画像入力部(画像入力インターフェース)として機能する。
推論エンジン104は、推論モデルを記憶し、記憶された推論モデルを用いて、撮像部103から入力された画像データに対して推論を行う。推論モデルは、後述する学習部300によって生成された推論モデルを、通信部107を通じて入力し、記憶する。推論エンジン104は、ネットワーク・デザイン104aと管理情報104bを有する。
ネットワーク・デザイン104aは、入力層と出力層の間に中間層(ニューロン)が配置されている。入力層には撮像部103によって取得された画像データが入力される。中間層としては、何層かのニューロンが配置されている。ニューロンの層の数は設計上適宜決められ、また各層におけるニューロンの数も設計上適宜決められる。中間層Nは、学習部300によって生成された推論モデルに基づいて、重み付けがなされる。出力層には、入力層に入力された画像に応じて、画像評価情報が出力される。深層学習については、入出力モデル化部304を説明する際に一緒に説明する。
管理情報104bは、推論エンジン104内のメモリに記憶された情報である。管理情報104bは、ネットワーク構造、ウェイト、教師データ情報を含む。このうち、ネットワーク構造は、ネットワーク・デザイン104aのニューロンの構造を規定するための情報である。ウェイトは、各ニューロンと各ニューロンの結合の重み付けに関する情報である。教師データ情報は、教師データの作成元、バージョン情報、教師データを作成したデータ母集合に関する情報等、教師データに関する情報である。これらの管理情報104bは、推論エンジン104内のメモリ以外にも、カメラ100内の他のメモリに記憶するようにしてもよい。
記録部105は、電気的に書き換え可能な不揮発性メモリである。記録部105には、撮像部103から出力され、画像処理部101dによって記録用に画像処理が施された画像データ105aを記憶する。この画像データ105aは読み出され、画像処理部101dによって再生表示用の画像処理が施されたのちに、表示部106に再生表示される。
また、記録部105は、画像データ105aの記憶領域の一部に、アノテーション用メタデータ付き画像ファイル105bを有する。アノテーション用メタデータ付き画像ファイル105bは、後述するように、深層学習の再に使用する教師データである。すなわち、図2ないし図8を用いて後述するように、撮影した際に、ユーザが画像データに教師データとして使用するために、アノテーションを行う。アノテーション用メタデータ付き画像ファイル105bは、このアノテーションが付された画像データである。
また、記録部105は、画像を記録するのみならず、様々なプログラムやパラメータなどを記録してもよく、本実施形態の特徴たる、「機械学習を依頼するための書式」の情報を記録してもよい。この情報は学習依頼部200に学習を依頼するための機能であり、学習依頼部200等と連携できるような記録を行えばよい。例えば、学習依頼部200が、カメラ100から受信した画像が、ユーザの意図する用途の推論モデル用の教師データとなるような設定をユーザが行いやすいように、表示制御部101fと連携して行ってもよい。表示例としては、図2や図3に示すようなタグ情報のように一覧表示でもよく、図4から図7に示すような項目別表示でもよい。
また、後述する図2、図3、および図7に示す例においては、時間の経過に応じた結果、例えば、猫が急に飛び出す、猫の表情や構図が良くなる、または車が事故を起こす等に基づいてアノテーション関係情報とする場合がある。このような情報を含めたアノテーション用メタデータ付き画像ファイルをファイル作成部101abが作成し、アノテーション用メタデータ付き画像ファイル105bとして記録される。記録部105は、撮像部から出力される画像データに、時間の経過を示す情報を関連付けて記録する記録部として機能する。
表示部106は、LCDモニタ、有機EL等のディスプレイを有し、カメラ100の外装に配置されており、または接眼部を通して観察可能な電子ビューファインダ(EVF)である。表示部106には、撮像部103によって取得された画像に基づくライブビュー画像が表示され、また撮影後に撮影画像の確認用に所定時間の間、撮影画像が表示される(クイックレビューともいう)。また表示部106には、記録部105に記録された画像が再生表示され、また推論エンジン104による推論結果が表示される。
また、表示部106には、ライブビュー画像以外にも、例えば、図2、図3に示されるようなメタデータMD1~MD3、図4~図6に示されるようなアイコンIC1~IC3、IC11~IC13、図5~図7に示されるような推論結果に基づくアドバイスME1~ME6等が表示される。表示部106は、画像データに基づいて画像を表示すると共に、アノテーション関係情報に係るアイコンを表示する表示部として機能する(例えば、図8AのS11参照)。また、表示部に表示されるアイコンは、アノテーション関係情報として使用しないことを指示するためのアイコンも含んでもよい(例えば、図4のアイコンIC3参照)。表示部は、撮像部によって画像データを取得した後に、確認用に画像とアイコンを所定時間の間、撮影画像を表示する。
通信部107は、送信および受信を行うための通信回路を有する。通信部107は、学習依頼部200内の通信部B203と通信を行うことができ、また学習部300内の通信部A305aとも通信を行うことができる。通信部107は、ファイル作成部101abにおいて作成されたアノテーション用メタデータ付き画像ファイルを、学習部300に送信する通信部として機能する(例えば、図8BのS47参照)。
制御部101は、CPU(Central Processing Unit:中央処理装置)等を含み、種々の周辺回路を含むASIC(Application Specific Integrated Circuit:特定用途向け集積回路)で構成されたプロセッサである。制御部101は、記録制御部101a、設定制御部101b、通信制御部101c、画像処理部101d、パラメータ制御部101e、表示制御部101fを有する。これらの各部は、ハードウエア回路によって実現され、また一部はCPUと不揮発性メモリに記憶されたプログラムに従って実現する。制御部101は、CPUとプログラムに従って、カメラ100の全体を制御する。
また、制御部101内には、計時機能を有する時計部を有する。この時計部は、連続的な時間情報を取得する時計部として機能する。また、制御部101は、カメラ内の加速度センサ等、種々のセンサ(不図示)からの情報を入力するセンサ情報取得部を有し、これらのセンサの情報を取得する。このセンサ情報取得部は、連続的な時間に従って画像以外のセンサ情報を取得する。
記録制御部101aは、記録部105に記録する画像データ等の記録を制御する。すなわち、撮像部103によって取得され、画像処理部101dによって処理された画像データの記録を制御する。
記録制御部101a内には、ファイル作成部101abを有する。ファイル作成部101abは、前述のアノテーション用メタデータ付き画像ファイル105bを作成する。このファイル作成部101abは、画像記録する際に、画像データとその他の補助データ(アノテーション関係情報)を関連付けて画像ファイルを作成する。この画像ファイルは、機械学習の教師データとしての情報として画像関連情報を所定の規則に従ってデータを定義し、また整理することによって作成される。このファイル作成部101abによって作成された画像ファイルは、記録部105内の領域にアノテーション用メタデータ付きの画像ファイル105bとして記録される。
上述のその他の補助データとしてのアノテーション関係情報は、ユーザの関心事、すなわちユーザが興味を持つ情報である。ファイル作成部101abは、ユーザが手動でまたは自動的にアノテーション関係情報を入力するので、このアノテーション関係情報に基づいて、メタデータを作成し、画像データに添付してファイルを作成する。ユーザが手動でアノテーション関係情報を入力する方法としては、例えば、図4~図6において説明するようにアイコンをタッチ操作することによって入力してもよい。また、十字釦等によってアイコンを選択してもよく、その他、テキストを直接入力するようにしてもよい。また、制御部101内の画像処理部101d等が画像を解析し、また図示しないセンサ等のセンサ出力に基づいて、アイコン関係情報を取得するようにしても良い。
ファイル作成部101abは、ユーザの分類された関心事が推論結果として出力できるように、選択的に整理された情報を、上記画像データに対応するアノテーション関係情報として入力し、このアノテーション関係情報をメタデータとして、教師用データとする画像データに添付し、ファイル化するファイル作成部として機能する(例えば、図8AのS25等参照)。 ユーザの関心事が選択的に整理された情報となるように、推論モデル生成用のアノテーション情報が選択可能な情報信号を含んでいる(例えば、図2のメタデータMD1,図3のメタデータMD2、MD3、図4、図5および図6のアイコンIC1~IC3参照)。ファイル作成部は、選択部によって選択されたアノテーション関係情報をメタデータとして、画像データに添付してファイル化する。ファイル作成部は、画像表示(例えば、クイックレビュー)を行うために所定時間の間表示され、選択部によって選択されたアイコンに基づいて、メタデータを添付したファイルを生成する(例えば、図4~図6のアイコンIC、図8AのS25参照)。
上述の選択的に整理された情報は、ユーザの関心事の入力として落ちや漏れがないように項目ごとに整理されている。また選択的に整理された情報は、学習装置への入力情報として規格化されて、情報の受け渡し際のインターフェースの整合性を良くするものである。本実施形態においては、項目が複数に分けられて整理されているが、すべての項目をユーザが選択する必要はなく、特定の項目のみを選ぶような仕様にも出来る。また、選択された項目の中の良し悪しや、客観、主観といった選択スイッチ(項目内の留意点や項目内の軸、あるいは項目内の特徴指定、項目内の方向性や重みなど)は単純に二者択一である必要はなく、度合いを入力するようなものでもよく、スライドバーやダイヤルなどで設定できるようにしてもよい。選択的に整理することは、項目ごとに数値を選択するという概念も含むものである。つまり、ユーザの分類された関心事が推論結果として出力できるように、項目として選択的に整理された情報を、画像データに対応するアノテーション関係情報として入力していると表現してもよく、項目別に整理された情報を、画像データに対応するアノテーション関係情報として入力していると表現してもよい。
ファイル作成部は、時間の経過に応じた結果をアノテーション関係情報に含めて教師用データを生成する(図2(b)、図3(b)、図8AのS23、S25参照)。ファイル作成部は、画像の対象物に変化が生じた際に、記録部に記録されている変化開始前の基準時刻における画像データに、結果に応じたアノテーション関係情報を添付してファイルを生成する(図2(b)、図3(b)、図7、図8AのS23、S25参照)。また、アノテーション関係情報についてみれば、ユーザの関心事が選択的に整理された情報となるように、推論モデル生成用のアノテーション関係情報が選択可能な情報信号を含んでいる。
アノテーション関係情報とは、例えば、以下のような情報である。
(a)その画像が、どのような用途の教師データか。
(b)その教師データが良いことの推論用か、悪いことの推論用かを示した良し悪し情報。
(c)その学習結果による推論や判定するものがその画像に関係するものか、画像そのものではなく、それに付随した事象かといった画像か事象か情報か。
(d)先の良し悪し判定が主観によるものか客観的にそうなのか。
(e)その良し悪しが判断されたタイミングが撮影前か、撮影そのものか、撮影後かといった判断タイミング。
(f)その他に同様学習に使える画像があるかを示した関連画像群情報。
(g)先の良し悪し判定が画像全体か画像部分か対象物かといった情報(画像内の位置指定情報)。
(h)この画像をそのまま教師データとするかテストデータ(秘匿参考データ)等の情報。
これらのアノテーション関係情報について、整理が正しくされて装置間の受け渡しが出来る事が望ましく、これらの情報を項目ごとに、あるいは表形式などで整理した記録部を設ける事が望ましい。これが整理されていないと、ユーザは正しい項目ごとの特徴を指定等することが出来ず、落ちや漏れがあったり、同様の教師データを集めることが出来なくなったりするので、ユーザの関心事を反映した正しい学習結果を得ることが出来ない。総じてユーザの関心事が満たされる項目ごとに整理することによって、ユーザは正しく関心事を装置やシステムに入力したり確認したりすることが出来る。もちろん、全項目を確認する必要はなく、予め決まっている項目のみを入力してもよい。例えば、「この写真が好きな度合いを入力してください」という表示の後の数値入力などは、項目としては良い悪いの項目の重みを設定しているだけだが、これは主観に決まっており、その画像そのものであることに決まっている。こうした手動入力(音声などでも良い)で操作しない項目以外の項目が予め定まっている仕様でもよい。
このように、項目を整理して、それぞれの項目内の留意点や項目内の軸、あるいは項目内の特徴指定、項目内の方向性や重みなどを単純化して規格化すれば、多くのユーザから簡単に同じ学習用途の画像を集めて、豊富な教師データ群を形成することが出来る。画像データも特徴量のみにしたりリサイズしたりして管理すれば、個々の教師データは容量を少なくした取り扱いのしやすいデータあるいはファイルにすることが出来る。これらの工夫を行うことによって、学習時のスピードを速くすることが出来る。また、近年、教師データの質などによって、推論モデルが期待の出力を行わない事が問題になってきている。しかし、上述したようにデータを管理しやすくすることによって、質の悪いデータを排除することが出来る。教師データとして公開されたものが、改ざんされて悪用されるような問題もデータの規格化、単純化や見える化されるので、対応が取りやすくなる。また、分散システムによる相互監視などのシステムを利用することが可能となる。
設定制御部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によって処理された画像データに基づく画像の表示を制御する。また、メニュー画面等の表示制御も行う。このメニュー表示は、一例として、図2(c)や図3(c)(d)に図示した教師データ用のアノテーション情報を一覧表示するよう形式であってもよい。あるいはそれを一覧ではなく、図4~図7に示すような項目別設定が可能な形式であってもよく、種々の形式を含む。メニュー表示は、記録部105に整理されて記録された学習項目(ユーザの意図、関心事)を視認性、あるいは操作性よく表示するものである。また、この学習項目は学習依頼部200内の仕様設定部204と連携しているので、機能の分担を行ってもよい。必要に応じて、学習依頼部200側に、メニュー表示項目の情報を記録しておき、必要に応じて表示部106に表示できるようにしてもよい。
次に、図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にも、猫等の分類情報が付与されている。
通信部B203は、送信および受信を行うための通信回路を有する。通信部B203は、カメラ100内の通信部107と通信を行うことができ、また学習部300内の通信部B305bとも通信を行うことができる。
仕様設定部204は、学習依頼部200から学習部300に深層学習によって推論モデルの生成を依頼する際に、その推論モデルの仕様を設定する。例えば、画像に猫がいればその猫の目の位置にピントが合ったり、また可愛く撮影できるような推論モデルの仕様を設定する。この設定された仕様は、通信部B203を通じて、学習部300に送信され、この仕様に基づいて、学習部300は推論モデルを生成する。なお、カメラ100において、仕様を設定し、学習依頼部200に推論モデル生成の仲介が依頼された場合には、カメラ100からの仕様を、学習部300に転送する。
ここで例示したような猫の目の判定は、画面内の特定の部位を探す、いわばユーザの主観とは関係せずに客観的な推論をすればよい、これに対して、可愛い猫の画像となると、特定の部位というより画面全体において表現される主観的な推論が必要となる。また、猫が可愛いと感ずる瞬間ではなく、可愛い仕草をする直前に、このことを知らせるための推論をして欲しいというニーズもある。このニーズに対しては、現在の画像そのものではなく、今後、そうした画像が得られるであろうという未来の推論といった別種の推論モデルが必要となる。
このように様々な要望を整理しないと、ユーザが求めるような正しい推論モデルを得ることは出来ない。そこで、仕様設定部204が、適度に規格化された設定を受け付けて、ユーザの意図を正しく反映した推論モデルを得るための学習の仕様を設定できるようにしている。仕様設定部204内には、仕様設定記録部204aが設けられている。この仕様設定記録部204aは、電気的に書き換え可能なメモリを有し、ユーザの求める推論モデルの仕様をパターン化して分類して記録しており、ユーザに推論モデルの仕様を提示可能にしている。予め、各整理された各項目を選べるように、分類された情報がここに記録されている。仕様設定記録部204aには、項目別に二者択一が可能な選択が可能なように、できるだけ概念が対となって対称的に並べて表示できるように、あるいは0か1で単純化して管理(そうでなくともよい)できるように項目内分類が行われて、これらの情報が記録されている。このように、対称的な項目内分類を可能にするように、学習時の教師データ画像の仕様の項目が、仕様設定記録部204aに整理され記録されている。
上述したような項目別整理を行うことによって、いわば要求仕様の符号化、あるいは単純記載化が可能になる。仕様をそのまま記録するより、上述したような類型化し、単純化した符号に変換して取り扱った方が、要求事項の要所を表しながら記載が単純化され、容量も減り、管理が容易になる。例えばブロックチェーンのブロックを利用する際に、教師データの取り扱いや管理が容易になる。ブロックチェーンを利用する時は、画像データやメタデータを統合データとしてもよく、ユーザの関心事が整理されて推論結果として出力できるように、アノテーション関係情報として入力可能にしている。このアノテーション関係情報をメタデータとして、画像データに添付した統合データをブロックチェーン管理する時のブロックとして生成すれば、ブロックチェーンでも扱うのが簡単になる。もちろんブロックチェーンならずとも分散管理や中央集権管理のシステムを採用してもインフラ構築や運営の負担を減らすことが出来る。
仕様設定部204はカメラの表示制御部101fと連携し、表示部106に、図2や図3で説明するような表示を行う。この表示によって、表示中の画像が、どのような推論モデルの学習に使用する教師データにするかを設定可能にしている。つまり、図2(c)や図3(c)(d)内のメタデータ部MD1~MD3においてスラッシュで示したように、様々な仕様をわかりやすく二者択一のデータとして整理できるような表示を行うことが可能となっている。設定仕様は一覧表示してもよく、図4~図7に示すように項目ごとに表示してもよい。
設定仕様を表示部106に表示すると、ユーザがこれを見ながら、どのような意図の推論モデルが欲しいかを設定することが出来る。例えば、後述する図2、図3に示すように、設定仕様の選択が単純であれば、多くの項目を分かり易く一覧で表示することができ、いずれを選択したか、あるいは選択されていないかを直感的に把握することができる。本実施形態においては、画像入力時に、ユーザの関心事が推論結果として出力できるようするために、画像データに対するアノテーション関係情報として入力できるようにしている。このアノテーション情報は規格化し易いように、選択可能に整理された情報としている。アノテーション関係情報をメタデータとして、教師用データとする画像データに添付すれば、この画像は簡単に教師データ化が可能となる。
アノテーション関係情報は、(1)その画像から得られる情報が、良い事象か悪い事象か、あるいはその画像が良い画像の教師データか悪い画像の教師データかを示す良し悪し情報、(2)判定するものが画像か事象かの情報、(3)これらの判定が主観か客観かの情報、(4)画像から得られる事象などが、その画像と同時に起こっている事象かそうでないかを示す、判断タイミングの情報(撮影タイミングかそれ以外かの情報)、(5)良し悪し判定が画像全体か画像部分か対象物かの情報、(6)教師データとするかテストデータとするかの情報である。上述の(1)~(6)の少なくとも1つの項目において、選択可能な情報とし、そこで選択された情報をアノテーション用に含むようにすればよい。また、複数の判断がなされる推論モデルを生成する場合には、優先度を選択できるようにしてもよい。この場合、アノテーション関係情報は、さらに、推論モデルの用途を指定するための用途情報もしくは関連画像群情報の少なくともいずれかを含むようにすれば、複数の教師データを集めて高精度で推論可能な推論モデルを得ることが出来る。
上述したような工夫によって、画像を入力して推論するための推論モデルを生成する際に使用する、学習用の教師データに付されるアノテーション情報について、ユーザの関心事として選択的に整理された情報として利用できる。個々のユーザが持つそれぞれの関心事に対応した推論モデルを生成するには、ユーザの手元にある画像を使用して、推論モデルの仕様を決定するのが手っ取り早く分かり易い。しかし、単純に画像(ファイル)から教師データを生成しようとすると、多種多様な要望をこまごまと記載しなければならず、一般のユーザには難易度が高い。このため、仕様設定の規格化を行えば難易度が低くになり、個々のユーザの様々な関心事に答えられる推論モデルを生成することが可能となる。なお、このような仕様設定は、学習依頼部200が必ずしも全てを司る必要はなく、カメラ100など端末側が仕様設定の管理を行い、また学習依頼部200と連携してもよい。
推論エンジン205は、推論モデルを記憶し、記憶された推論モデルを用いて、入力された画像データに対して推論を行う。推論モデルは、後述する学習部300によって生成され推論モデルを、通信部B305bを通じて入力し、記憶する。推論エンジン205は、推論エンジン104と同様に、ネットワーク・デザインを有し、管理情報104bと同様の管理情報を記憶するようにしてもよい。また、入出力モデル化部304内の信頼性判定部304aと同様の信頼性判定部を有していてもよい。
推論エンジン205内のネットワーク・デザインは、ネットワーク・デザイン104aと同様に、入力層と出力層の間に中間層(ニューロン)が配置されている。入力層には画像データが入力される。中間層としては、何層かのニューロンが配置されている。ニューロンの層の数は設計上適宜決められ、また各層におけるニューロンの数も設計上適宜決められる。中間層は、学習部300によって生成された推論モデルに基づいて、重み付けがなされる。出力層には、入力層に入力された画像に応じて、画像評価情報が出力される。深層学習については、入出力モデル化部304と一緒に説明する。
制御部201は、CPU(Central Processing Unit:中央処理装置)等を含み、種々の周辺回路を含むASIC(Application Specific Integrated Circuit:特定用途向け集積回路)で構成されたプロセッサである。制御部201は、CPUとプログラムに従って、学習依頼部200の全体を制御する。なお、仕様設定部204は、制御部201内のCPUとプログラムによって実現してもよく、また通信部B203等を制御する通信制御部等、各種の機能を有してもよい。
次に、学習部300について説明する。学習部300は、例えば、インターネットを通じて、学習依頼部200やカメラ100等に接続可能なサーバであり、カメラ100、学習依頼部200等、外部から依頼を受けて、推論モデルを生成する。学習部300は、制御部301、母集合作成部302、基準教師データ記録部303、入出力モデル化部304、通信部A305a、および通信部B305bを有する。この学習部300は、カメラ100または学習依頼部200から依頼された仕様に従って、教師データを用いて推論モデルを生成する。この生成した推論モデルは、通信部A305a、通信部B305bを通じて外部の機器(学習依頼部200、カメラ100)に送信される。
基準教師データ記録部303は、電気的に書き換え可能な不揮発性メモリであり、学習依頼部200から送信されてきた基準教師データ202bを記録する。また、カメラ100によって教師データが作成された場合には、この教師データを記録する。後述するように、カメラ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に示す例では、画像とそれから起こる事象の関係を推論する例を説明する。つまり、画像は観賞やそこに記録されたものの記録のためではなく、これから起こる事象の原因となる状況を表したものであるとして使用される。すなわち、実際に画像に示されたことが何に(どんな事象に)繋がるかを予測するための学習に画像を利用する。
図2に示す例は、自動車走行方向を撮像し、いわばドライブレコーダーにデジタルカメラ100を利用する。図2(a)に示すように、ドライバが車を運転しており、車の前方をモニタするカメラ100が配置されている。カメラ100の撮影画角内に、猫411が特定のタイミングで特定の大きさで特定の場所に現れた場合(また、その向きが走行方向を向いている場合)、急ブレーキをかけなければならない可能性がある。そのような可能性は猫411のスピードなどによっても変化する。そこで、本実施形態においては、カメラ100によって取得した画像に、写った猫の姿勢411などを、AIによって推論し、危険度を知らせる。
特定の仕様の撮影レンズを想定すれば、猫411の撮影画像内の大きさが距離情報になる。画像と急ブレーキ特有の加速度をカメラ100に内蔵されている、あるいは車に搭載されている加速度センサ(Gセンサ)などで検出する。図2(b)のグラフは、横軸に時間をとり、縦軸に加速度の変化を示す。また、グラフの上側には、カメラ100によって取得された画像を時間の流れに沿って並べてある。この図において、時刻0secは、ドライバが危険を感じて急ブレーキをかけたタイミングであり、時刻(-Ysec)は、0secよりもYsec前であり、基準となるタイミングである。
このような加速度変化がある場合に、撮像された画像に加速度情報等の情報を記録する。図2(c)に、この情報をメタデータMD1として画像P11に関連付けた危険予告用の教師データ(画像ファイル)を示す。図2(d)は、(加速度変化)情報付きの画像P11を教師データとし、推論モデルを作る例を示す。このような教師データで得られた推論モデルでは、図2(a)に示すように、事前にユーザに音声や表示などで、急ブレーキの予想を伝え、それに備える心構えなり回避行動をとることを促す車載システムを提供可能である。
図2(c)は、このようなシーンで検出して欲しい画像(があらわす事象)を画像ファイルにして、メタデータに教師データにする際、あるいはテストデータにする際のメタデータ(ファイル)MD1の構成例を示す。簡略化した構成図であるが、図2(c)には、いくつかの主な書き込み情報例を示す。何の用途かというと(アクシデント等の)「予測」で要注意すべき例なので、「NG」とした。したがって、また、この画像を見て、画像そのものの品質等を確認する用途ではないので、これは、何かの「事象」の学習用である、とした。また、主観的な判定ではなく急ブレーキという事象が起こりうるという客観的な考察であるゆえ、「客観」であることを示した。また、このタイミングではなく、続いて起こることを学習するゆえ、タイミングは「3秒」としている。つまり、このような画像のメタデータは、3秒の経過後に改めて画像に付与されるような工夫が必要となる。また、図示していないが、メタデータMD1には、外部依頼学習用の教師データとするか、秘匿参考データとするかの情報も作成するとよい。
撮像部103によって得られた画像データは、図2(c)に示すように、スラッシュで表示することによって、二者択一のデータとして整理可能となっている。このような表示を行っているため、ユーザは容易に選択することができ、コンピュータ等の制御手段にとっても扱いやすく、また、設定を記録するにも小容量で済むといったメリットが得られる。また、図2(c)に示すように、選択が単純であれば、多くの項目を分かり易く一覧で表示しやすく、いずれを選択したか、あるいは選択されているかが直感的に把握しやすい。つまり、画像を利用して推論モデルを得る、あるいは推論モデルを使用する時に、推論モデルがどのようなものであるかが分かり易くなる。これは、ユーザが推論モデルに期待するユーザの関心事の推論を分類しているためである。
このように、本実施形態においては、画像入力時に、ユーザの関心事が推論結果として出力できるようするために、画像データに対するアノテーション関係情報として入力できるようにしている。このアノテーション情報は規格化し易いように、選択可能に整理された情報としている。アノテーション関係情報をメタデータとして、教師用データとする画像データに添付すれば、この画像は簡単に教師データ化が可能となる。アノテーション結果と画像が離れ離れにならないようにするために、画像データとメタデータ(補い合うデータ)の関係にすればよく、本実施形態においては、画像ファイル化している。
アノテーション関係情報は、(1)その画像から得られる情報が、良い事象か悪い事象か、あるいは、その画像が良い画像の教師データか悪い画像の教師データかを示す良し悪し情報、(2)判定するものが画像か事象かの情報、(3)これらの判定が主観か客観かの情報、(4)画像から得られる事象などが、その画像と同時に起こっている事象かそうでないかを示す、判断タイミングの情報(撮影タイミングかそれ以外かの情報)、(5)良し悪し判定が画像全体か画像部分か対象物かの情報、(6)教師データとするかテストデータとするかの情報である。上述の(1)~(6)の少なくとも1つの項目において、選択可能な情報とし、そこで選択された情報をアノテーション用に含むようにすればよい。また、複数の判断がなされる推論モデルを生成する場合には、優先度を選択できるようにしてもよい。この場合、アノテーション関係情報は、さらに、推論モデルの用途を指定するための用途情報もしくは関連画像群情報の少なくともいずれかを含むようにすれば、複数の教師データを集めて高精度で推論可能な推論モデルを得ることが出来る。
上述したような工夫によって、画像を入力して推論するための推論モデルを生成する際に使用する、学習用の教師データに付されるアノテーション情報について、ユーザの関心事として選択的に整理された情報として利用できる。つまり、選択可能な情報信号を含む画像ファイル生成装置を提供でき、この画像ファイル生成装置は、様々な用途の推論モデルを作成可能な画像データやその規格を作ることが出来る。個々のユーザが持つそれぞれの関心事に対応した推論モデルを生成するには、「百聞は一見にしかず」であり、ユーザの手元にある画像を使用して、推論モデルの仕様を決定するのが手っ取り早く分かり易い。しかし、単純に画像(ファイル)から教師データを生成しようとすると、多種多様な要望をこまごまと記載しなければならず、一般のユーザには難易度が高い。個々のユーザの意図に沿った推論モデルを生成するには、本実施形態で説明するような規格化を行えば容易になり、個々のユーザの様々な関心事に答えられる推論モデルを生成することが可能となる。
図2(c)に示すようなメタデータが関連付けれた画像データを教師データとして、図2(d)に示す入出力モデル化部304内のネットワーク・デザイン304dにおいて、深層学習することによって、推論モデルを生成することができる。この推論モデルは、時刻(-Ysec)における画像に対して、危険が迫っていることの警告を行うことができる。
次に、図3を用いて、撮影時にアノテーション(メタデータの付与)を行う他の例について説明する。図3は、図2と同様の予測関連の学習例である。図3は、図2と同様の考え方でありながら、アクシデント予想ではなく、「手本」となるような画像の撮影チャンスがあるかどうかの予測を推論モデルで行う。したがって、撮影チャンスという事象を予測しているともいえる。このため、画像に写っている対象物の猫の画像が撮れるかどうかということで画像予測のメタデータが画像データに関連付けられている。
猫の歩き方を見て、これは、これから座ったり寝転んだりするであろうことが、例えば、飼い主であれば予測できる場合がある。このような予測は推論が可能と考えられ、飼い主以外のユーザには貴重な情報となる。これがないと待つ価値があるかどうかわからず、結局、撮影のチャンスを失う。一般に、猫が丸くなった時の写真は、猫の写真で人気の姿勢であるため手本画像とする。必ずしも上手なものでなくとも、このような画像を撮影したいというサンプル、あるいはその種のとなってカメラメーカにとっても参考になる。
図3は、猫が丸くなった時の画像が出来るタイミングが近いかどうかをユーザに伝える例である。これによって、ユーザの待機時間の無駄を節約等できる。図3(a)は、ユーザがカメラ100によって猫411を撮影する様子を示す。図13(b)は、時間毎に撮影画像を並べ、またそのときの画像に対する満足度の経時的変化を示す。時刻(-Xsec)は基準時刻を示し、0secはユーザの画像に対する満足度が大きくなるタイミングを示す。
図3(c)(d)は、画像データに関連付けられる教師データ用メタデータの例を示す。図3(c)は、時刻(-Xsec)において撮影された画像P12であり、教師データ用メタデータMD2が作成され、画像P12のデータに関連付けられる。図3(d)は、基準時刻である時刻(0sec)において撮影された画像P13であり、教師データ用メタデータMD3が作成され、画像P12のデータに関連付けられる。
撮影の決定的瞬間の画像そのものも、これはユーザが良いと思って撮影した画像ですよ、という教師データとなるので、主観的にOKの画像としてメタデータは記載される。図2と同様に、ある特定の状況において推論して欲しい未来が予測できるような学習が出来るように、図2(b)に示すように、時刻(-Xsec)におけるタイミングで、実際の撮影に先立って得た画像を図3(d)に示すように画像ファイルにしている。ここでのメタデータに、この画像ファイルを教師データにする際、あるいはテストデータにする際のファイル構成例を示す。なお、ユーザが画像を外部に出すリスクや心情的な抵抗感があるかどうかを手動設定や音声入力等で教師データにするか参考データにするか決めてよい。これは、対象物が猫ならば良いが、人物だと肖像権があってまずい、といった判断を自動または手動で行うことが出来る。顔検出によって、対象物が人かそれ以外かは判定できる。対象物が人の場合には、顔がわからないような補正を施してもよく、また人をアバター化して教師データにしてもよい。
図3(c)(d)に、簡略化した構成図であるが、いくつかの主な書き込み情報例を示す。何の用途かというとベストショットタイミングが来るよ、という吉兆の例なので、OKとした。したがって、また、この画像を見て、画像そのものの出来栄えを確認する用途なので、これは、何か画像関連の学習用である、とした。また、主観的な良し悪しによってベストショットとしているゆえ、「主観」であることを示した。このベストショットタイミングそのもの画像は図3(c)に示すようにタイミング情報は0とした。これから起こるチャンスに関連する図3(d)のような画像のファイルには、この撮影タイミングにおける何かではなく、続いて起こることを図3(e)のような推論モデルを得るために学習するゆえ、タイミングは例えば3秒後としている。また、図示していないが、メタデータMD1には、外部依頼学習用の教師データとするか、秘匿参考データとするかの情報も作成するとよい。このような画像ファイルを作成するにも、このような画像のメタデータは、3秒の経過後に改めて画像に付与されるような工夫が必要となる。
図3(c)(d)に示すような、撮影ガイド用に画像ファイルを作成すると、このメタデータが関連付けれた画像データを教師データとして、図3(e)に示す入出力モデル化部304内のネットワーク・デザイン304dにおいて、深層学習することによって、推論モデルを生成することができる。この推論モデルは、時刻(-Xsec)における画像に対して、ベストタイミングまで、どの位待てばよいかをアドバイスすることができる。
撮像部103において取得した画像データは、図3(c)(d)に示すメタデータMD2、MD3においてスラッシュで表示したように、二者択一のデータとして整理可能となっている。このような表示を行っているため、ユーザが容易に選択でき、またコンピュータなど制御手段にとっても扱いやすく、記録するにも小容量で済むといったメリットが得られる。選択が単純であれば、多くの項目を分かり易く一覧で表示でき、いずれを選択したか、あるいはいずれが選択されていないかを直感的に把握できる。つまり、画像を利用した推論モデルを得る、あるいは画像を利用した推論モデルを使用する時に、その推論モデルがどのようなものであるかが分かり易くなる。つまり、メタデータMD2、MD3の選択は、ユーザが推論モデルに期待するユーザの関心事を分類しているということである。
このように、本実施形態においては、画像入力時に、ユーザの関心事が推論結果として出力できるようにするために、画像データに対するアノテーション関係情報として入力できるようにしている。このアノテーション関係情報は規格化し易いように、選択可能に整理された情報としている。アノテーション関係情報をメタデータとして、教師用データとする画像データに添付すれば、この画像データは簡単に教師データ化が可能となる。このアノテーション結果と画像データが離れ離れにならないようにするために、メタデータ(補い合うデータ)の関係にすればよく、本実施形態においては、画像ファイル化している。
アノテーション関係情報は、図2の場合と同様に、前述した(1)~(6)の少なくとも1つの項目において、選択可能な情報とし、そこで選択された情報をアノテーション用に含むようにすればよい。また、複数の判断がなされる推論モデルを生成する場合にも、図2の場合と同様に、優先度を選択できるようにしてもよい。
上述したような工夫によって、画像を入力して推論モデルを生成する際に使用する、学習用の教師データに付されるアノテーション情報について、ユーザの関心事として選択的に整理された情報として利用できる。つまり、選択可能な情報信号を含む画像ファイル生成装置を提供でき、この画像ファイル生成装置は、様々な用途の推論モデルを作成可能な画像データやその規格を作ることが出来る。
個々のユーザが持つそれぞれの関心事に対応した推論モデルを生成するには、百聞は一見にしかずで、ユーザの手元にある画像を仕様して、推論モデルの仕様を決定するのが手っ取り早く分かり易い。しかし、単純に画像(ファイル)から教師データを生成しようとすると、多種多様な要望をこまごまと記載しなければならず、一般のユーザには難易度が高かい。個々のユーザの意図に沿った推論モデルを生成するには、本実施形態で説明するような規格化を行えば容易になり、個々のユーザの様々な関心事に答えられる推論モデルを生成することが可能となる。
次に、図4を用いて、撮影時に行うアノテーションの別の例を示す。この図4に示す例は、ユーザが撮影後に表示部106に表示されたレックビュー画像を見て、ユーザの関心事(意図)が反映したアノテーションを画像データに関連付けるようにしている。レックビュー画像は、撮影終了後に撮影者が撮影画像を確認するために所定時間の間、表示される画像である。なお、このアノテーション付けは、レックビューの表示時に限らず、記録部105に記録された画像を再生表示する際に行っても勿論構わない。
図4に例示するように、その画像を良い画像の例とするか悪い画像の例とするかは、ユーザは撮影時には考えていないのが通常である。単に教師データにしなければ、という意志ばかりが働いてしまうと、機械学習を行う場合に、ユーザの意図が伝わらず、必要とされない学習モデルが出来てしまう可能性がある。例えば、こんな画像はもう撮りたくない(同じ間違いはしない)、と思って教師データ化する場合と、これはたまたま良いのが撮れたから、これからは成功率を上げようと思って教師データ化する場合があることを、ユーザに理解してもらい、正しい教師データ化を行ってもらう必要がある。
そこで、ユーザが求めているような正しい推論モデルを得られるように、図1Aに示す仕様設定部204が、カメラ100の表示制御部101fと連携して、適度に規格化された設定を受け付けるようにしている。これにより、ユーザの意図を正しく反映した推論モデルを得るための学習の仕様が、設定できる。つまり、図2(c)や図3(c)(d)内のメタデータ部MD1~MD3においてスラッシュで示したように、様々な仕様を分かり易く二者択一のデータとして整理できるような表示を行うことが可能としている。図4においては、更に、そもそも教師データにする気はないという意志も入れられる例を示している。図4では、項目ごとに大きくアイコンを表示した例を示しているが、設定仕様はこれに限らず、例えば、一覧表示してもよい。後述する図5、図6においても図4と同様に、項目を対となる概念で分類し、二者択一的に選択できるようにしている。これらの項目は、カメラ100に設けられたタッチパネルやスイッチによって切り替えるようにしてもよい。
図4において、表示画像ID1~ID4は、表示部106に表示されたレックビュー画像である。表示画像ID1~ID3の画面中に3つのアイコンIC1~IC3が表示される。アイコンIC1は教師データとして良い教師画像を意味し、アイコンIC2は教師データとして悪い教師画像を意味し、アイコンIC3は教師画像データとして使用しないことを意味する。
表示画像ID1は、猫411aが適正露光で、しかも構図もユーザの好みで撮影された例である。このような画像であることから、ユーザは、撮影する際に、良い画像として教師データにしてもよいと考える。そこで、ユーザは、「良い教師データ」であることを示すアイコンIC1を選択する。この選択方法としては、表示部106にタッチパネルが設定してあれば、ユーザがタッチ操作によって選択してもよく、また操作部102内の十字釦を操作することによってアイコンIC1を選択してもよい。
表示画像ID1に対して、ユーザがアイコンIC1(「良い教師」)を選択すると、次に、画像ID4が表示部106に表示される。この画像ID4は、画像の分類付けを行うための画面であり、アイコンIC11~IC13が表示される。すなわち、アイコンIC11は分類として「ペット」を設定し、アイコンIC12は分類として「風景」を設定し、アイコンIC13は分類として「ポートレート」を設定する。カメラ100の制御部101は、表示画像の画像解析を行い、分類の候補としてアイコンIC11~13を表示すればよい。ユーザ自らの意図に沿った分類を選択すればよい。
次に、表示画像ID2は、猫411bの構図は悪くはないが、露光が適正で撮影されなかった例である。このような画像であることから、ユーザは、撮影する際の悪い画像として教師データにしても良いと考える。そこで、ユーザは、「悪い教師データ」であることを示すアイコンIC2を選択する。この選択方法はアイコンIC1の場合と同様、タッチ操作や操作部材の操作等によって行えばよい。悪い教師データとして使用する場合であっても、表示画像ID4と同様に、ペット等の分類付けを行う。
表示画像ID3は、猫411cの露光は適正ではないが、構図に面白みのある例である。ユーザは、このような画像を、撮影する際の良い画像として教師データとしても良いと考える。そこで、ユーザは、「良い教師データ」であることを示すアイコンIC1を選択する。この選択方法はアイコンIC1の場合と同様、タッチ操作や操作部材の操作等によって行えばよい。この例は、ユーザの主観によって選択されるもので、自動判定が難しいといえる。このため、図4(c)に示すように、良し悪し判定をしやすい表示を行って、正しい意図を学習依頼可能にしたことが望ましい。
ユーザが、アイコンIC1~IC3のいずれかを選択すると、画像データに対して、アイコンIC1~IC3に応じたアノテーションが関連付けられ、アノテーション用メタデータ付き画像ファイル105bとして、記録部105に記録される。カメラ100は、このアノテーション用メタデータ付き画像データを教師データとして、学習依頼部200を通じて、または直接学習部300に送信する。学習部300の入出力モデル化部304は、このアノテーションが付された教師データを用いて、推論モデルを生成する。この推論モデルは、ユーザの主観的評価に沿ったモデルとなる。
次に、図5を用いて、教師データと、教師データを用いて生成した推論モデルによる推論結果の表示について説明する。図5において、表示画像ID1~ID3に対して、ユーザがアイコンIC1~IC3のいずれを選択し、教師データにアノテーションを行う。前述したように、このアノテーション付きの画像データを用いて推論モデルが生成され、この推論モデルが、カメラ100の推論エンジン104に記憶され、撮像部103によって取得された画像に対して、推論を行うことができる。
表示画像ID5、ID6は、撮像部103によって取得された画像に対して、推論結果を表示している様子を示す。表示画像ID5に写っている猫411dは、ユーザの好みの構図であり、適正露出であることから、推論モデルによる推論結果、撮影を勧めるアドバイスME1、すなわち「今、撮れば!」が表示される。一方、表示画像ID6に写っている猫411eは、ユーザの好みの構図ではないことから、撮影を勧めないアドバイスME2、すなわち「構図よくない!」が表示される。
図4および図5に示した例は、撮影画像が教師データとして使用するにあたって、良いか悪いかについて、ユーザが評価する例であった。言い換えると、ユーザの主観的評価を、メタデータとして画像データに関連付ける例であった。図6に示す例は、対象物の客観的な良し悪しを、撮影画像に対してアノテーションし、このアノテーション用メタデータ付き画像データを生成する例である。
図6において、表示部106の表示画面には、図4、図5と同様に、アイコンIC1~IC3が表示されている。表示画像ID7には、ミカン413aが表示されており、このミカン413aは良品である。良品であるか否かは、別の検査装置によって判定してもよく、またユーザが目視検査によって判定してもよい。ユーザは表示画像ID7が表示されている表示画面において、質が良いミカンであることを示すアイコンIC1、すなわち「良い教師」を選択する。
また、表示画像ID8には、ミカン413bが表示されており、このミカン413bは不良品である。不良品であるか否かは、別の検査装置によって判定してもよく、またユーザが目視検査によって判定してもよい。ユーザは表示画像ID8が表示されている表示画面において、質が悪いミカンであることを示すアイコンIC2、すなわち「悪い教師」を選択する。
表示画像ID7、ID8においても、ユーザが、アイコンIC1~IC3のいずれかを選択すると、画像データに対して、アイコンIC1~IC3に応じたアノテーションが関連付けられ、アノテーション用メタデータ付き画像ファイル105bとして、記録部105に記録される。カメラ100は、このアノテーション用メタデータ付き画像データを教師データとして、学習依頼部200を通じて、または直接学習部300に送信する。学習部300の入出力モデル化部304は、このアノテーションが付された教師データを用いて、推論モデルを生成する。この推論モデルは、対象物の客観的評価に沿ったモデルとなる。
表示画像ID9、ID10は、撮像部103によって取得された画像に対して、推論結果を表示している様子を示す。表示画像ID9に写っているミカン413cは、推論エンジン104による推論結果は等級5の良品であることから、推論結果表示ME3として、「等級5」が表示される。一方、表示画像ID10に写っているミカン413dは、推論エンジン104による推論結果は廃棄すべき不良品であることから、推論結果表示ME4として、「廃棄」が表示される。
次に、図7を用いて、将来を予測する推論を行い、この推論結果を表示する例について説明する。図2(c)や図3(c)(d)内のメタデータ部MD1~MD3において、様々な仕様をわかりやすく二者択一のデータとして整理するために、スラッシュを用いて表示することについて説明した。また、図4~図6を用いて、様々な仕様を分かり易く二者択一の形式で選択できるような表示について説明した。図7では、必ずしも複数の選択肢からの選択をしなくてもよい例を説明する。ユーザが選ばなくても、こういう場合は、自動的に二者択一などが出来るはずという例である。項目が予め整理されているので、簡単な二者択一や、項目選択、項目内の仕様選択は容易に自動判定できることを示している。
図7に示す例では、経時的に画像を記録しておき、良い結果や悪い結果が発生した場合に、ユーザは過去の画像に結果を、アノテーションとして関連付けて教師データを生成する。この教師データを用いて、深層学習を行い、推論モデルを生成する。この推論モデルをカメラ100の推論エンジン104に記憶し、撮像部103によって取得された画像に対して、推論結果を表示する。
図7において、記録画像RI1は、時刻T1において撮影され、記録部105に記録された画像である。時刻T1より後の時刻T2において、事故が発生し、記録画像RI2はその時の画像である。すなわち、時刻T1における画像RI1は、車415aが走行している状態を示す画像である。また、時刻T2における画像は、車415bが事故を起こしてしまった状態を示す画像である。そこで、画像RI1には、時刻T2において事故を起こしてしまったことから、簡単にロジックベースで、あるいは推論でもよいが、「事故判定」=「悪い教師データ」を、アノテーションとしてメタデータに記録することが出来る。同様の例としては、図2に示したような急ブレーキをかける動作なども、客観的に危険なものとして分類してもよい。このように客観的な問題を解決するための教師データであれば、様々なセンサを活用した状況認識によって、特定の項目の二者択一は簡単に行うことができる。
なお、図7には、図5、図6に示すような、ユーザがアノテーションを付与するためのアイコンIC1~IC4が表示されていないが、これらのアノテーションを付与するためのアイコンを表示するようにしてもよい。また、事故の瞬間に、画面を見ながら手動で設定するのは現実的ではないが、もちろん、事故以外であれば、手動入力も可能である。「事故=悪いこと」以外にも、ユーザが満足した声を出した、といった音声を検出するによって、良し悪しを自動選択することは簡単である、また、すぐにユーザによって消去された画像は悪い画像として、また多くの候補の中から厳選されて残った画像は良い画像として分類することも容易である。また、ピントや露出や構図はずれなども、良し悪しの自動判定に利用できる。
記録画像RI1、RI2のようなアノテーション用メタデータ付きの画像データを多数、用いて、深層学習を行い、推論モデルを生成する。表示画像ID11、ID12に対して、推論モデルを用いて推論エンジン104は、将来について予測する。表示画像ID11の場合には、車415dが事故を起こす等の悪い事態が予測されないことから、推論結果表示ME5として、「大丈夫」が表示される。一方、表示画像ID12の場合には、車415eが事故を起こす等の悪い状態が予測されることから、推論結果表示ME6として、「危ない!」が表示される。
なお、記録画像RI3は、車415cが斜面を走行しており、このような状態の画像は、深層学習に使用しない方がよい。そこで、記録画像RI3のアノテーションとしては、教師データと使用しないことを示す「使うな」を付する。このように、全ての記録画像RIに対して、教師データとしてアノテーションを付するのではなく、使用しないものある。このため、記録画像RI2とRI3のように、アノテーションを付するか付さないかの切り分けを行う。
次に、図8Aおよび図8Bに示すフローチャートを用いて、図2ないし図7に示すようなメタデータを付与可能なカメラの制御動作について説明する。この動作はカメラ100内の制御部101内のCPUがメモリに記憶されたプログラムに従って実現する。
図2および図3における動作は、撮影タイミングに起こることではなく、続いて起こることを学習するような教師データになる、画像ファイルを作成するには、画像のメタデータを、所定時間の経過後に改めて画像に付与されるような工夫が必要となる。図8Aおよび図8Bに示すフローチャートは、このようなメタデータ付与が可能なカメラ制御(ファイル作成装置)を実現する。また、このフローチャートでは、図2および図3に示したように加速度情報など他のセンサ情報を利用したり参照したりする。これらの情報は、カメラ100に内蔵センサでもよく、またIoTを利用して他の装置内のセンサと連携するようにしてもよい。以下、図8のフローチャートについて説明する。
図8Aに示すフローが開始すると、まず、撮影モードか否かを判定する(S1)。カメラ100には、再生モード、撮影モード、推論モデル取得モード等の種々のモードが設定可能である。このステップでは、制御部101内の設定制御部101bが、撮影モードが設定されているか否かを判定する。
ステップS1における判定の結果、撮影モードであった場合には、画像の入力等を行う(S3)。ここでは、撮像部103によって画像を取得し、また前述したように加速度情報等を他のセンサによって入力する。さらに、図2(b)、図3(b)に示したような経時変化を測定するために、計時動作を開始する。また、撮像部103によって取得したコマ数を記録する。なお、撮影は動画撮影であってもよく、また連写撮影であってもよい。
画像入力等を行うと、次に、関連辞書があるか否かを判定する(S5)。関連辞書は、カメラでの撮影シーンに応じた推論モデルであり、現在の撮影対象に適した推論モデルが推論エンジン104に設定されているか否かを判定する。
ステップS5における判定の結果、関連辞書がある場合には、推論を実行する(S7)。ここでは、ステップS3において取得した画像データを推論エンジン104に入力し、推論を実行する。例えば、図4ないし図7を用いて説明したように、撮影時(その後の再生時)にアノテーション用メタデータ付きの画像データを作成しておき、入出力モデル化部304が、この画像データを教師データとして使用し、推論モデルを生成しておく。このステップS7では、入出力モデル化部304によって生成された推論モデルを用いて推論を実行する。
次に、推論の結果の信頼性を判定する(S9)。この判定の結果、信頼性が高い場合には、ガイド表示を行う(S11)。ここでは、図2(a)、図3(a)に示すような警告表示や撮影ガイドを表示する。また、図5に示すように、推論結果に応じて、撮影を勧めるアドバイスME1や、撮影を勧めないアドバイスME2を表示される。さらに、図6に示すように、推論結果に応じて、対象物が良品であるか不良品であるかを示すアドバイスME3、ME4を表示する。さらに、図7に示すように、推論結果に応じて、将来を予測するようなアドバイスME5、ME6を表示する。
ガイド表示を行うと、次に、センサ出力に特徴があるか否かを判定する(S13)。ここでは、ステップS3において入力したセンサ出力を参照し、センサ出力に特徴がある場合、あるいは特徴的な変動パターンから特定のイベントを推定できるか否かを判定する。なお、センサ出力に限らず、例えば、画像に猫が入ってきた等、画像解析の結果に基づいて判定してもよい。
ステップS13における判定の結果、センサ出力に特徴がある場合には、基準時間化を行う(S13)。ここでは、あるイベントが起こった時刻を基準時刻として、以後の経過時間を計測できるように、自動的に基準時刻を設定し、計時を開始する。例えば、図2に示す例では、車が急ブレーキを踏んだタイミングが基準時刻であり、図7に示す例では、時刻T2において事故が発生したタイミングが基準時刻である。
基準時刻を設定し、計時を開始すると、次に、記録画像の経時結果補正、用途判定、センサ情報、イベント、その他仕様等の記録を行う(S17)。この処理は、センサ出力をトリガとして、メタデータの記録を行う。すなわち、すでに記録されている画像のメタデータに時間情報を追記可能とする。このステップS17では、センサ出力情報そのものや、それに基づいて得られたイベント情報などをメタデータとして記録する。記録画像の経時結果補正は、時系列的に記録されている画像について、ステップS15において基準時刻が決まると、その基準時刻からの経過時間に沿って画像を整理する。また、用途は仕様等から設定する。例えば、急ブレーキ特有情報が加速度センサや速度センサや位置情報センサ変化情報などから得られた場合は、センサデータがどのような値(変化)になったから、このイベント(例えば、猫が飛び出して来た)が検出された、等を記録してもよい。このステップでの記録は、ユーザが手動で行ってもよいが、センサ出力に特徴があった場合に、自動的に行うのがよい。
ステップS17において記録を行うと、またはステップS13における判定の結果、センサ出力に特徴がない場合には、次に静止画撮影か否かを判定する(S19)。ここでは、撮影がなされる条件も、必ずしもレリーズスイッチ操作に限らなくてもよく、例えば、センサデータなどの結果によってもよい。レリーズスイッチ操作以外の場合には、如何なる操作によって、ステップS19において、静止画撮影と判定したかを記録してもよい。このようなセンサデータや操作によって検出されたイベントと画像の関連付けによって、画像ファイルのメタデータが変わる。
ステップS19における判定の結果、静止画撮影の場合には、撮影を行い、撮影の結果取得した画像データを記録する(S21)。次に、ステップS15と同様に、基準時間化を行う(S23)。ユーザがレリーズ釦等の操作を行った場合であり、この時刻を基準にして画像の整理を行う。
続いて、ステップS17と同様に、記録画像の経時結果補正、用途判定、センサ情報、イベント、その他の仕様等を記録する(S25)。図3において説明した、猫が丸まった写真を撮影する場合には、基準時刻はレリーズタイミングにすればよく、このステップS25で設定する。これらの処理によって、図2に示したような急ブレーキ直前画像集などが作成でき、ビッグデータとなって教師データ化することが出来る。ここでのメタデータの記録は、ユーザが手動で行ってもよいが、カメラが自動的に記録することができる。
また、静止画の撮影後に、図4に示したように、アイコンIC1~IC4を表示し、ユーザの主観に基づいてアノテーション用メタデータを画像データに付与できるようにしてもよい。同様に、静止画の撮影後に、図6に示したように、アイコンIC1~IC4を表示し、客観的な評価結果に基づいてアノテーション用メタデータを画像データに付与できるようにしてもよい。さらに、図2、図3や図7に示した例のように、連続的に撮影された画像に対して、アノテーション用メタデータを画像データに付与するようにしてもよい。
ステップS1に戻り、このステップにおける判定の結果、撮影モードでない場合には、再生モードか否かを判定する(S31)。この判定の結果、再生モードであった場合には、一覧表示を行う(S33)。ここでは、記録部105に記録されている画像データを読み出し、表示部106に一覧表示する。続いて、選択再生を行う(S35)。ユーザが一覧表示の中から拡大表示を選択するので、このステップではいずれの画像が選択されたかを判定する。
続いて、お気に入り操作がなされたか否かを判定する(S37)。本実施形態においては、ユーザが再生した記録画像を見ながら、ユーザ自ら、あるいは確認した人がイベントのタイミングを記録したい場合には、操作部102によって、お気に入り操作を行う。このステップでは、この操作がなされたか否かを判定する。お気に入り操作がなされた場合には、基準時間が設定される(S39)。ここでは、再生画像に記録されている時間(タイミング)を基準時間とし、この基準をどこに設定するかをマニュアル入力する。
続いて、記録されている各画像の経時結果補正、用途判定、センサ情報、イベント、その他の仕様が記録される(S41)。ステップS17、S25においても、同様のメタデータが記録されているが、このステップでは、ユーザの手動入力が主となる。もちろん、再生画像に記録されているメタデータを維持してもよく、手動入力されたメタデータのみを書き換えてもよい。
ステップS31に戻り、このステップにおける判定の結果、再生モードでなかった場合には、推論モデルの依頼か否かを判定する(S43)。カメラ100から学習部300に直接、推論モデルを依頼するか否かを判定する。この判定の結果推論モデルを依頼する場合には、推論モデルの対象物を特定し(S45)、学習部300に推論モデルの生成のための学習を依頼する(S47)。ここでは、通信部107から、特定のイベント予測用の教師画像として、メタデータ付き画像を学習装置に送信するようにしてもよい。例えば、図2~図7において、ファイル作成部101abが作成した画像ファイル(アノテーション用メタデータ付き画像ファイル)を送信してもよい。また、画像ファイルを送信する場合に、ファイル作成部101abが特定のイベントが注意を促すべきイベントか否かの情報をメタデータとして付与して送信してもよい。
ステップS43における判定の結果、推論モデルの依頼でない場合には、推論モデルの取得か否かを判定する(S49)。ステップS47において学習を依頼すると、学習部300は推論モデルを生成し、カメラ100に返信してくる。ここでは、返信されてくる推論モデルを取得するか否かを判定する。ステップS49における判定の結果、推論モデルの取得の場合には、推論モデルを取得し記録する(S51)。このように新しく得た推論モデルは、次から次への実地研修を行う働き手のようなもので、実際に即したユーザの意にかなった改良版の推論モデルとなっており、この推論モデルを使用するユーザの満足度は益々向上する。十分に向上した場合は、追加学習をしないようにする設定にすればよい。これもメタデータに記載できるようにしてもよい。
また、余計な追加学習を行うことによって、かえって、本来の狙いと異なる仕様の推論モデルになってしまうことも考えられる。そこで、前のバージョンに戻せるように、推論モデルをバージョン管理した方が良い。追加学習の際、どのバージョンに対して追加するかという問題もあるが、それをメタデータに記載してもよい。これは、利用中の推論モデルのバージョンをメタデータとして記録しておくといった解決法を採用してもよい。メタデータを管理するために、ファイル作成部101ab(メタデータ付与部)は、生成された画像ファイルを外部の学習装置に送信して追加学習を依頼する際に、追加学習を施す推論モデルを表す識別情報を付与するとよい。
本フローの動作において、一部の処理を簡略化して図示している。例えば、仕様設定の部分などは、最初に行ってもよいが(例えば、ドライブレコーダーとして使う時は急ブレーキ予測用の仕様とするなど)、このフローでは、画像ファイルを作る際に手動入力できるような部分を強調している(S17、S25、S41等のタイミングでユーザが設定してもよい)。また、S3において入力された画像に基づいて、何か推論できる場合はS11においてガイド表示を行う。この場合、関連の推論モデル(辞書)があって、信頼性が高いことを、本当に意味のある結果だけをガイド表示している。
ステップS37における判定の結果、お気に入り操作等がない場合、またステップS41において記録等を行うと、またはステップS51において推論モデルを取得し、これを記録すると、またはステップS49における判定の結果、推論モデルを取得しない場合には、ステップS1に戻る。
このように、カメラ制御のフローにおいては、撮像部から画像データを入力し、この画像データに基づいて画像を表示する(S3)。静止画撮影がなされると、撮影画像を表示し、その際にアイコンIC1~IC3、IC11~IC13等も表示する(図2~図7参照)。そして、ユーザがアイコンを選択すると、そのアイコンに基づいて、アノテーション用メタデータ付きの画像ファイルが生成される(S25参照)。画像ファイルが生成されると、学習部300に送信され(S47)、推論モデルが生成される。この生成された推論モデルを受信すると(S51)、画像を入力した際に推論を行い(S7)、推論結果に基づいてガイド表示を行う(S11)。
本発明の一実施形態においては、画像を画像データに変換し、この画像データを出力し(S3)、分類されたユーザの関心事が推論結果として出力できるように、選択的に整理された情報を、画像データに対応するアノテーション関係情報として入力し、このアノテーション関係情報をメタデータとして、画像データに添付してファイル化している(図1Bのファイル作成部101ab、S25参照)。このため、ユーザの関心事に答えられるような推論モデルを生成する際に有用な教師データを生成することができる。
なお、本発明の一実施形態においては、カメラ100と学習依頼部200と学習部300の組み合わせからなるシステムについて説明した。しかし、この組み合わせに限らず、カメラ100が学習依頼部200の機能を合わせ持っていてもよく、また学習依頼部200が学習部300の機能を有していてもよい。
また、本発明の一実施形態においては、メタデータは特定の情報を補足したり説明したりするデータであるので、その特定の情報(画像)を補足しやすいように同じファイル内に記録していた。しかし、これに限らず、別のファイル、データ、フォルダ等で記録されていても良い。データの名称等によって管理したり、特定のシステムで不可分に管理するようにしたものでも良い。
また、ユーザが特定の関心事に対して推論モデルを利用したいとき、特定の視覚的なシーンに対して、何かの情報を得たいというニーズが増加してくる。このような場合に、画像を参考に簡単に教師データを生成しようとすると、特定の規格化によって単純化しないと、作業が複雑になり現実的ではなかった。しかし、本発明の一実施形態に示すような工夫をすることによって、それぞれのシーンで、個々のユーザの様々な関心事に答えられる推論モデルを簡単に生成するための、教師データの作成を容易にすることで可能となる。
また、本発明の好ましい実施形態においては、学習装置における学習は、深層学習を行っていたが、これに限らず、機械学習等の人工知能を利用した学習であればよい。また、近年は、様々な判断基準を一括して判定できるような人工知能が用いられる事が多く、ここで示したフローチャートの各分岐などを一括して行うような改良もまた、本発明の範疇に入るものであることは言うまでもない。
また、本発明の一実施形態においては、学習部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)、タブレット型コンピュータ、ゲーム機器等に内蔵されるカメラ、医療用カメラ、顕微鏡等の科学機器用のカメラ、自動車搭載用カメラ、監視用カメラでも構わない。撮像部はもちろん別体でもよく、別の撮像部から来た画像に対してアノテーション関係の情報を付与するようにしてもよい。撮像部が一体の場合は、撮影者とアノテーション者が同じ人であるというような保証にはなりえるが、生体認証などでそれを担保して著作権などを保証してもよい。同じ人である必要はない。
また、各サーバ(学習部300および学習依頼部200)内で管理される様々なデータやその一部データは、実施形態中で示した中央集権型のデータベースで管理しても良く、また非中央集権型(分散型)のブロックチェーンのようなデータベースによって相互監視型で管理しても良い。中央集権型は、何かのトラブルが発生した時に、システムの障害修復までの間、このデータ管理が出来なくなるが、分散型であれば、障害を軽微にすることが出来る。
データの管理を行うにあたって、データの信頼性を確保することは重要である。教師データ化されることを期待して公開したデータが、改ざんの恐れがあるすると、せっかくの善意のユーザの努力が台無しになることがある。また、ユーザもこのあたりの保証がないと、教師データ公開をするモチベーションが低下してしまう。しかし、本実施形態のように、項目を整理して、それぞれの項目内の留意点や項目内の軸、あるいは項目内の特徴指定、項目内の方向性や重みなどを単純化して規格化すれば、ユーザの意図を正しく反映して、学習時のスピードを速くすることが出来る上、監視システムによる質の担保もしやすくなる。さらに画像データも特徴量のみにしたりリサイズしたりして管理すれば、個々の教師データは容量を少なくした取り扱いのしやすいデータあるいはファイルにすることが出来る。
このような統合データは、例えば、分散システムによる相互監視などのシステムにおいて、利用可能となる。近年、教師データの質などによって、推論モデルが期待の出力を行わない事が問題になっている。しかし、本実施形態のように、データを管理しやすくすることによって、質の悪いデータの流通や拡散を阻止し、多くのユーザが安心してシステムを利用して、豊富な教師データ群を形成することが出来る。つまり、入力された画像データについて、分類されたユーザの関心事が推論結果として出力できるように、項目として整理された情報を、画像データに対応するアノテーション関係情報として入力し、このアノテーション関係情報をメタデータとして、画像データに添付した統合データをブロックチェーン管理する時のブロックとして生成することを特徴とする画像ファイル生成方法を提供できる。
ブロックチェーンでは、管理するデータに変更があると、その処理内容等をブロック単位にして暗号化し、各データベースに分散することで全員がその情報を共有できるようにしている(分散型台帳)。このブロックにはネットワークの識別用の数字や、ブロックサイズ、ヘッダ情報などがまとめられている。ブロックチェーンでは、ブロック(つまりデータベースで管理される情報をまとめたもの)が新しく生成される時に、一つ前に生成されたブロックのデータを一部含むように設計され、すべての処理履歴が一つの鎖となって繋がっていくのでチェーンと名付けられている。
つまり、ブロックとブロックの間の繋がりや関係性を持たせるために、新しいブロックのヘッダに一つ前のブロックのヘッダの一部が暗号化されて組み込まれている。この新しいブロックのヘッダには、一つ前のブロックのヘッダを、ハッシュ関数を用いて暗号化した「ハッシュ値」と「処理記録」、それから、「ナンス」という任意のデータが組み込まれている。ハッシュ値はデータを要約するものであり、かつ、データ変更によって大きく変化するので改竄が困難になっている。また、このハッシュ値に特別なルールによる制約を設ければ、ハッシュ値がそれを満たすようにするための追加データ、「ナンス」(Number used once:一時利用の使い捨て数字の略)を決める必要がある。
ナンスを探す作業をマイニングと呼び、作業者をマイナーと呼ぶが、正しいナンスを求めたマイナーがブロックを繋げられ、かつ、報酬を受け取れるようにすれば仮想通貨のような経済的インセンティブを合わせた運営も可能となる。この「ナンス」とハッシュが一緒に使われることで、より通貨の信頼性を高めることができる。ユーザが提供した教師データ候補を、ブロックチェーンのブロックとすれば、それがどこで使われたかを管理することができ、このブロックを後で加工できないように相互監視することもできる。
分散的に取引を記録していくためには、分散されたコンピュータ(ノード)を操作(分散保有しているその他のノードとのデータ同一性が保証)する参加者にインセンティブが必要なため、仮想通貨を利用しているが、他のインセンティブが与えられたり、データ同一性保証の仕組みが簡単化できれば仮想通貨を前提にする必要はない。例えば、複数台のパソコンにブロックチェーン用の相互監視のソフトウエアが存在すればよい。
また、近年は、様々な判断基準を一括して判定できるような人工知能が用いられる事が多く、ここで示したフローチャートの各分岐などを一括して行うような改良もまた、本発明の範疇に入るものであることは言うまでもない。そうした制御に対して、ユーザが善し悪しを入力可能であれば、ユーザの嗜好を学習して、ユーザが望むように、本願で示した実施形態をカスタマイズすることが可能である。
また、本明細書において説明した技術のうち、主にフローチャートで説明した制御に関しては、プログラムで設定可能であることが多く、記録媒体や記録部に収められる場合もある。この記録媒体、記録部への記録の仕方は、製品出荷時に記録してもよく、配布された記録媒体を利用してもよく、インターネットを通じてダウンロードしたものでもよい。
また、本発明の一実施形態においては、フローチャートを用いて、本実施形態における動作を説明したが、処理手順は、順番を変えてもよく、また、いずれかのステップを省略してもよく、ステップを追加してもよく、さらに各ステップ内における具体的な処理内容を変更してもよい。
また、特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず」、「次に」等の順番を表現する言葉を用いて説明したとしても、特に説明していない箇所では、この順で実施することが必須であることを意味するものではない。
本発明は、上記実施形態にそのまま限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素の幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。