以下、本発明の好ましい実施形態として、本発明をカメラ(撮像装置)と外部機器を有する撮像システムに適用した例について説明する。この撮像システムの概略は以下の通りである。カメラは、外部機器とネットを通じて接続することができる。この外部機器には、画像が蓄積され、目標とする対象物を捉えられた際の撮影か、また目標とする対象物を捉えることのできなかった際の撮影か等の情報が蓄積されている。外部機器の学習部は、これらの画像と情報を用いて、対象物を判定する推論モデルを生成する。また、学習部は、画像群を分析し、目標とする対象物を撮影するまでの撮影ガイドを行うための推論モデルを生成する。このため、ユーザは、目標とする対象物を知らなくても、カメラが目標とする対象物を認識し、この対象物を撮影するような撮影ガイドを出力、表示することができる。
なお、ユーザは人間である必要はなく、ロボットやサイボーグのような少なくとも一部がメカ的に変形し、また移動することによって、撮影する主体であってもよい。この場合は、変形、移動のための情報がガイドとなる。アクチュエータを動かすドライバの制御を行う制御部に対して、またアクチュエータの動きをセンシングしてアクチュエータの動きや位置の制御を行う制御部に対して、入力することのできる有効な情報であればガイドとして扱うものとする。
また、推論モデルを生成する際に、一連の画像データの差分データを生成し、この差分データに基づいて推論モデルを生成する。また、カメラは、画像データ等の差分データを生成し、この差分データを推論エンジンに入力することにより、撮影ガイド等を表示することができる。
図1は、第1実施形態に係る撮像システムの主として電気的構成を示すブロック図を示す。この撮像システムは、カメラ10と外部機器20を有する。
カメラ10は、撮像部11、推論エンジン12、通信部13、表示部14、操作部15、記録部16、制御部17を有する。このカメラ10は、外部機器20から推論モデルを受信する撮像装置である。
撮像部11は、光学系11a、撮像素子11bを有し、その他、撮像制御回路、画像データ処理回路等を有する。撮像部11は、所定のフレームレートで被写体の画像データを生成し、制御部17および推論エンジン12に出力する。撮像部11は、被写体を画像データに変換する撮像部として機能する。撮像部11は、順次画像コマを取得する撮像部として機能する。
推論エンジン12は、後述する外部機器20内の入出力モデル化部24によって生成された推論モデルを入力し、この推論モデルを撮像対象物A用推論モデルとして記憶部12aに記憶する。推論エンジン12は、記憶部12aに記憶された推論モデルを用いて、撮像部11によって取得した画像データについて、目標とする画像を取得できるような撮影アドバイス(アドバイス表示および/またはカメラの自動制御)を作成するように推論を行う。すなわち、撮像部11から所定時間間隔で出力された画像データは、推論エンジン12に入力され、推論エンジン12は、この画像データと推論モデルを用いて、目標とする画像を取得できるように、目標位置等の撮影アドバイスを出力する。また、推論エンジン12は、画像データ間の差分画像データを入力し、この差分画像データに基づいて、目標とする画像を取得できるように、撮影アドバイスを出力するようにしてもよい。
推論エンジン12は、入力層、中間層、出力層を有し、これらの間のニューロンの結合の強さや重み付けは、記憶部12aに記憶された推論モデルに従って設定される。推論エンジン12は、画像データを入力し、記憶部12aに記憶された推論モデルを用いて、推論を行う推論エンジンとして機能する(例えば、図6、図8のS11等参照)。推論エンジン12は、記憶部に記憶された推論モデルを用い、撮像部から出力された画像データを入力し、特定ターゲットへのアクセスをガイドする推論エンジンとして機能する。推論エンジンは、記憶部に記憶された推論モデルを用い、撮像部から出力された画像データの差分データを入力し、推論を行う推論エンジンとして機能する。
推論エンジン12は、撮像で得た取得コマと手本の画像コマ変化情報と比較する比較部として機能する(例えば、図5、図6のS11参照)。この比較部は、特定ターゲットを撮影する際に時系列的に得られた複数の画像の連なりを母集合として設定し、画面推移に関する評価情報を有する時系列画像群を教師データとして生成された推論モデルによって行う。比較部における比較結果は複数の画像間の重なり具合や変化の度合いを判定した撮像装置で撮像する時のパンニングの向きやスピードを用いてもよい。
記憶部12aは、電気的に書き換え可能な不揮発性メモリであり、入出力モデル化部24によって生成された推論モデルを記憶する。また記憶部12aは、撮影対象の撮影の際にガイド表示または自動制御するための推論モデルを記憶する。記憶部12aは、学習装置によって生成された推論モデルを記憶する記憶部として機能する(例えば、図6、図8のS35参照)。この記憶部は、複数の推論モデルを記憶可能である(例えば、図10のS60参照)。記憶部12aは、特定ターゲットを撮影する際に時系列的に得られた複数の画像の連なりを母集合とし、特定ターゲットにアクセスできたか否かを教師データとして、生成された推論モデル(例えば、図2、図3参照)を記憶する記憶部として機能する。記憶部12aは、特定ターゲットを撮影する際に時系列的に得られた複数の画像の連なりを母集合とし、時系列に得られた画像の差分データを入力して、生成された推論モデル(例えば、図4、図5参照)を記憶する記憶部として機能する。
通信部13は、通信回路(送信回路および受信回路を含む)を有し、インターネット等を通じて、外部機器20内の通信部22と、無線通信または有線通信を行う。通信部13は、入出力モデル化部24で生成された推論モデルを受信する(例えば、図6および図8のS35参照)。
なお、カメラ10が直接、外部機器20にアクセスできない場合に、スマートフォン等の携帯型通信装置等を通じて、外部機器20と通信するようにしてもよい。また、カメラ10自体がスマートフォン等の携帯型通信装置に内蔵されている場合には、この携帯型通信装置を通じて、外部機器20に通信するようにすればよい。
表示部14は、表示パネル等を有し、撮像部11において取得した画像データに基づいて、スルー画(「ライブビュー画像」ともいう)等の表示を行う。また、表示部14は、推論エンジン12における推論結果の表示を行う。推論結果としては、図13に示すように、目標物を撮影するための撮影ガイドを表示してもよい(図6のS11参照)。表示部14は、推論エンジンによる推論の結果を表示する表示部として機能する(例えば、図6、図8のS11、図13等参照)。
操作部15は、パワースイッチ、レリーズ釦、動画釦、モード設定ダイヤル、十字釦、OK釦等の種々の操作部材を有し、操作部材の操作状態を検出し、制御部17に出力する。また操作部15は、表示部14の表示面に対するタッチ操作を検出するタッチパネルを有するようにしてもよい。さらに操作部15は、テキスト入力が可能である。操作部15によって設定された学習依頼が学習部21に送信され、学習部21が学習を行う(図8のS4参照)。
記録部16は、電気的に書き換え可能な不揮発性メモリを有し、画像データを記録する。すなわち、画像処理部17bが、撮像部11によって取得した画像データに対して、記録用の画像処理を施すので、この画像処理が施された画像データを不揮発性メモリに記録する。
記録部16には、画像データを記録するための領域として画像ファイル16aが設けられている。この画像ファイル16a内には、通常の記録画像の画像データ16aを記録するための領域と、アクセス画像情報16cを記録するための領域が設けられている。アクセス画像情報16cは、ユーザが目標とする画像を取得するまでの画像やその他の情報である。
制御部17は、制御用プロセッサであり、CPU(Central Processing Unit)、周辺回路、メモリ等を有し、CPUはメモリに記憶されたプログラムに従って、カメラ10内の各部を制御する。制御部17は、パラメータ制御部17a、画像処理部17b、記録制御部17c、設定制御部17d、通信制御部17e、表示制御部17fを有する。
パラメータ制御部17aは、カメラ10内の種々のパラメータを制御する。パラメータとしては、例えば、露出制御用パラメータ(絞り値、シャッタ速度値、ISO感度等)、焦点距離(ズーミング)調節用パラメータ、焦点位置(ピント位置)調節用パラメータ等がある。また、パラメータとしては、撮影制御のためのパラメータに限らず、アートフィルタ等の画像処理のためのパラメータであってもよい。
画像処理部17bは、画像処理回路を有し、スルー画表示用の画像処理、記録用の画像処理、記録画像の再生用の画像処理等を行う。記録制御部17cは、記録制御回路を有し、記録部16に画像データ等のデータを記録するための記録制御を行う。
設定制御部17dは、学習部21において学習するための学習要望事項(リクエスト)の設定を制御する。
通信制御部17eは、通信制御回路を有し、通信部13が学習部21と通信する際に通信制御を行う。
表示制御部17fは、表示制御回路を有し、表示部14における表示制御を行う。表示制御部17fは、撮像部11によって取得された画像データに基づいて、表示部14にスルー画の表示制御を行い、また推論エンジン12によって推論された撮影アドバイスの表示制御を行う。
外部機器20は、学習部21と、外部画像データベース(DB)27を有する。学習部21と外部画像DB27は、同一の機器内に配置されてもよく、同一の機器内に配置されていなくてもよい。学習部21と外部画像DB27は通信によって連携することができればよい。また、外部画像DB27は複数設けられていてもよく、学習部21から複数の外部画像DBに通信部22および通信部28を通じて、画像データにアクセスし、画像データに関する情報を取得することができればよい。また、外部機器20は、サーバ内に配置され、カメラ10とはインターネットを介して接続するようにしてもよい。
学習部21は、通信部22、母集合作成部23、入出力モデル化部24、出力設定部25、制御部26を有する。
通信部22は、(受信回路および/または送信回路を有する)通信回路を有し、外部画像DB27の通信部28とデータの送受信を行う。また通信部22は、カメラ10の通信部13ともデータの送受信を行う。
母集合作成部23は、深層学習を行うための画像データの母集合を作成する。最適な母集合としては、全ての画像データをそのまま全部使用してもよい。しかし、母集合が大きすぎると、処理に時間が掛かってしまう。また母集合が大きすぎると、過学習となり信頼性が低下してしまう場合がある。そこで、画像データの付随情報として送信されてきた情報を用いて、全画像データから適当なサイズの母集合を抽出することが好ましい。
母集合作成部23は、特定ターゲットを撮影する際に得られた複数の画像の連なりを母集合として設定する母集合作成部として機能する。この複数の画像の中の各画像は、日時情報および/または位置情報が関連付けられている。また、画像の連なりは、時系列に得られている(例えば、図5参照)。
入出力モデル化部24は、機械学習用プロセッサを有し、所謂人工知能(AI)を用いて深層学習を行い、推論モデルを生成する。具体的には、入出力モデル化部24は、母集合作成部23によって作成された画像データの母集合を用い、汎用推論モデルまたは個別推論モデルを深層学習によって生成する。入出力モデル化部24は、推論エンジン12と同様の構成を有している。入力層に母集合作成部23に作成された画像データを入力する。また、出力層に、画像の評価結果、例えば、教師データ(正解)を与える。入力と出力が一致するように、各ニューロンの結合の強さ(重み付け)を算出することによって推論モデルを生成する。なお、本実施形態においては、入出力モデル化部24は、深層学習によって推論モデルを生成するが、深層学習に限られず、機械学習であればよい。
入出力モデル化部24は、母集合作成部によって設定された母集合において、特定ターゲットにアクセスできたか否かを教師データとして、推論モデルを生成する推論モデル生成部として機能する(例えば、図2、図3、図7のS49等参照)。推論モデル生成部は、日時情報および/または位置情報に基づいて、特定ターゲットへの過程が良いか悪かを判定する推論モデルを生成する(例えば、図2、図3、図7のS49等参照)。推論モデル生成部は、特定ターゲットから遠ざかっている場合には、警告表示を出力する推論モデルを生成する(例えば、図6のS19、図13(e)参照)。推論モデル生成部は、時系列に得られた画像の差分データを入力して、推論モデルを生成する(例えば、図4、図5参照)。推論モデル生成部は、複数の画像を入力し、特定ターゲットを推定する推論モデルを生成する(例えば、図2参照)。推論モデル生成部は、複数の画像を入力し、特定ターゲットの撮影の成否を推論する推論モデルを生成する(例えば、図3参照)。入出力モデル化部24は、時系列に得られた画像の差分データを入力して、推論モデルを生成する推論モデル生成部として機能する(例えば、図4、図5参照)。前述の母集合作成部23は、特定ターゲットを撮影する際に時系列的に得られた複数の画像の連なりを母集合として設定し、入力出力モデル化部24は、設定された母集合において、画面推移に関する評価情報を有する時系列画像群を教師データとして推論モデルを生成する。この推論モデルは学習済モデルである。
出力設定部25は、特定ターゲットに対するアクセスガイドを出力する。また、出力設定部25は、入出力モデル化部24によって生成された推論モデルを用いて、推論を行う際に使用する撮影アドバイス、及び/又は撮影パラメータを設定する。また、カメラ10の推論エンジン12は、撮像部11によって取得される画像データを入力し、この画像データと推論モデルに基づいて、目標とする画像(特定ターゲット)を取得できるように、撮影アドバイスを出力する。出力設定部25は、この時に使用する撮影アドバイスを生成し、設定する。
制御部26は、制御用プロセッサであり、CPU(Central Processing Unit)、周辺回路、メモリ等を有し、CPUはメモリに記憶されたプログラムに従って、学習部21内の各部を制御する。
なお、制御部17、26内のCPUの周辺回路の全部または一部をCPU(Central Processing Unit)とプログラムによって実現するようにしてもよく、DSP(Digital Signal Processor)等のプログラムで実行される回路で実現するようにしてもよく、ヴェリログ(Verilog)によって記述されたプログラム言語に基づいて生成されたゲート回路等のハードウエア構成でもよく、またハードウエア回路によって実行するようにしても勿論かまわない。また、CPUの機能の一部をDSP等のプログラムで実行される回路で実現するようにしてもよく、ヴェリログによって記述されたプログラム言語に基づいて生成されたゲート回路等のハードウエア構成でもよく、またハードウエア回路によって実現するようにしてもよい。
外部画像DB27は、通信部28と画像分類部29を有する。通信部28は、通信回路を有し、学習部21の通信部22と、データの送受信を行う。
画像分類部29は、外部画像DB27内に蓄積され、または外部画像DB27の外部にある画像DBに蓄積された画像データの画像分類を行う。すなわち、撮影対象物毎に分類し、分類画像毎にデータベースに記録する。図1には、対象物種類A画像群29aと対象物種類B画像群29bの2種類の画像群を記録することが示されている。しかし、2画像群に限らず、3画像群以上の画像群に分類し、画像群毎に記録するようにしてもよい。
また、対象物種類A画像群29aおよび対象物種類B画像群29bは、それぞれアクセス画像情報を有する。アクセス画像情報は、対象物(特定ターゲット)の目標位置に達するまでの画像データが記録されている。
次に、図2ないし図4を用いて、入出力モデル化部24における推論モデルの生成について説明する。図2は、ユーザが何を目標(撮影対象、対象物、特定ターゲット)としているかを推論するための推論モデルの生成を示す。この入出力モデル化部24の入力は、母集合作成部23によって作成されたアクセス画像(入力画像)である。また、推論モデルは、目標物(撮影対象、対象物、特定ターゲット)を特定するためのデータセットである。このデータセットは、推論エンジンの中間層の各ニューロン間の結合の強さを示す。
入出力モデル化部24が推論モデル生成の際に使用する母集合は、外部画像DB29に記録されている画像データである。推論モデルの生成にあたっては、アクセス時刻情報(および/または位置情報)が付与された一連の画像群であり、アクセス時刻情報および/または位置情報に基づいて画像を追跡することにより、撮影者の撮影対象(特定ターゲット)が何であったが分かる。
また、入出力モデル化部24が、外部画像DB27内に記録されている全画像データを用いて推論モデルを生成するとなると、時間が掛かることから、学習用に分類されたカテゴリの中から、適切な画像群を選択する。この画像群(対象物種類A画像群等)は、アクセス画像情報が画像に関連付けて記録されている。このため、アクセス時刻情報に基づいて画像を追跡することができる。
カメラ10内に設けられた推論エンジン12は、入出力モデル化部24によって生成された推論モデル(データセット)を中間層に入力し、また画像を入力層に入力すると、ユーザの目標物(撮影対象、対象物、特定ターゲット)が何であるかを推論し、推論結果を出力することができる。例えば、図13に示す例では、ユーザは、日光を訪れ、カメラで撮影しようとしている。カメラ10の撮像部11は、所定フレーム時間毎にスルー画用の画像データを出力し、この画像データが推論エンジン12の入力層に入力される。推論エンジン12は、画像データ(アクセス画像)が入力されると、ユーザの撮影対象(特定ターゲット)が何であるかを推論する。
図13(a)に示す例では、「三猿」を見ることができる「神厩舎」の画像が入力される。学習部20の入出力モデル化部24によって生成された際に使用された画像データの中に、「神厩舎」の画像があった場合には、「三猿」を撮影対象(特定ターゲット)としていること多かったことから、推論エンジン12は、「三猿」がユーザの撮影対象(特定ターゲット)であると推論する。このように、推論エンジン12で使用する推論モデルは、種々の画像に対して、ユーザの撮影対象(特定ターゲット)が何であるかを推論する。
次に、図3は、この撮影アドバイスを行うための推論を行う推論モデルの生成を示す。この入出力モデル化部24の入力も、母集合作成部23によって作成されたアクセス画像(入力画像)である。また、推論モデルは、目標物(撮影対象、対象物、特定ターゲット)の撮影の成否が分かっているデータセットである。このデータセットは、推論エンジンの中間層の各ニューロン間の結合の強さを示す。
入出力モデル化部24が生成する推論モデルは、種々の撮影対象(特定ターゲット)を撮影するための撮影ガイドを推論する。入出力モデル化部24が使用する母集合は、母集合作成部23が、外部画像DB29に記録されている画像データを用いて、作成する。推論モデルの生成にあたっては、アクセス時刻情報が付与され、さらに上手に撮影できかたか(成功したか)、または上手に撮影できなかったか(失敗(成功しなかったか))の情報が付与された一連の画像群を使用する。入出力モデル化部24は、これらの成功例と失敗例の画像データを用いて、撮影ガイドのための深層学習が行い、推論モデルを生成する。
なお、入出力モデル化部24が、推論モデル生成のために使用する画像データは、撮影対象(特定ターゲット)の推論の学習用画像データと同様に、学習用に分類されたカテゴリの中から、適切な画像群を選択する。
推論エンジン12は、アクセス画像を入力すると、入出力モデル化部24によって生成された推論モデルによって、特定された撮影対象(特定ターゲット)を撮影するための撮影ガイドを推論し、推論結果を出力する。
例えば、図13(b)に示す例では、ユーザは、神厩舎にカメラを向けると、撮影シーンが「神厩舎」であり、この神厩舎における見どころが「三猿」であることが表示される。前述したように、カメラ10の撮像部11は、所定フレーム時間毎にスルー画用の画像データを出力し、この一連の画像データが推論エンジン12にも入力される。推論エンジン12は、撮影対象(特定ターゲット)が「神厩舎」であり、ここの見どころが「三猿」であることから、「三猿」を撮影するための撮影ガイドを表示する。
ユーザがカメラを三猿に向けると、推論エンジン12は、図13(d)に示すように、「アクセスOK」「見どころ三猿」と撮影ガイドを表示する。一方、ユーザがカメラを三猿の方向から遠ざかってしまうと、図13(e)に示すように、「アクセスNG」「見どころ三猿」と撮影ガイドを表示する。すなわち、推論エンジン12の記憶部12aには、複数のターゲット(図3に示す例ではターゲットA、Bの2種類)が記憶されており、特定ターゲットに応じて、ターゲットA、B用の推論(図13に示す例では、「三猿」用の推論)が選択される。そして、カメラの撮像部11からの画像データに基づいて、推論エンジン12は、撮影ガイドを推論し、出力する。図13(d)のようにアクセスOKと表示がなされると、ユーザは構図を決めることにより、図13(c)に示すような、三猿を写真に撮影することができる。
次に、図4を用いて、差分画像を用いて、推論モデルを生成ことについて説明する。図2や図3に示したフレーム間隔で出力される画像データをそのまま使用するのではなく、図5に示すような各画像データの差分データを用いて推論を行うようにしてもよい。なお、ターゲットという言葉を用いたが、厳密に最終目標を有する必要はない。教師データが単に自然なパンニング画像とすることで、途中画像の推移が適切であればよいという考え方もあり、途中画像をターゲットの一つと考えることもできる。したがって、ターゲットで止まる画像のみならず、そこに至る画像やそれを通り過ぎる画像の撮像であっても本実施形態を応用することができる。行き過ぎて、「戻れ」というガイドを無視して動かせば、そのガイドに代わって別のガイドが出るような工夫は可能である。最終的なターゲットをとらえる前の画像取得過程もまた本実施形態において対象となる。
図4は、図2を用いて説明した撮影対象(特定ターゲット)を推定するための推論モデル、および図3を用いて説明した撮影アドバイスを行うための推論モデルを生成する入出力モデル化部24を示す。この入出力モデル化部24の入力は、母集合作成部23によって作成された母集合の画像群の差分画像データである。この「差分」という言葉は、画像の差の部分という意味だけではなく、その差がわかる複数の画像や画像群といったものも含む上位概念的な表現であり、単純には、特定期間の間に取得した動画のようなものでも良い。
差分を利用する最もシンプルな例としては、図12に示すように、観察部位のアクセスの過程を撮影する場合がある。撮影時に、観察目標物の画像を捉えることができ時を「うまく行った画像」(例えば、熟練者の観察時画像)を教師データにすると共に、観察目標物の画像を捉えることができなかった時を「うまく行かなかった画像」(例えば、熟練者がわざと失敗した観察過程や初心者の動作を記録した画像)を教師データ(ネガティブサンプル、または第2の教師データ)として、深層学習を行う。この深層学習の結果を用いて、新しい画像群に対して、「うまく行っている」、「うまく行ってない」というガイドを推論することが可能となる。観察部位のアクセス過程がうまく行っている場合は、熟練者の観察成功時画像の変化に近い動きをしていることが多く、画像の変化に基づいて推論可能だからである。
また、図13に示すように、きれいな画像推移を表現する撮影を行うことを目的とし、このためのガイドに適した学習モデルを得たい場合がある。この場合には、ネット上にアップされている同様のシーンの画像を教師データとし、更にアクセス数が多いものを「うまく行っている」という情報と関連付けて教師データとすればよい。アクセス数の少ない同様のシーンがあれば、これをネガティブサンプル(第2の教師データ)としてもよい。うまく行っている画像と、うまく行っていない画像を、教師データとして深層学習を行えば、「うまく行っている」、「うまく行っていない」という両方のガイドを行うことができる学習モデル(推論モデル)を生成することができる。この学習モデルによってガイドを受けて、撮影することにより、アクセス数の多い画像に近い画像を撮影することが可能となる。
また、教師データとして使用する画像は、「アクセス数の多い画像」の「アクセス数」の値を特定の数値以上にするなどの工夫を行ってもよく、また著名なカメラマンによる画像や先生が撮影した画像などに限定するようにしてもよい。また、具体的なコメントや、書き込みなどを参考にして、肯定的な評価のなされた例を集めて教師データにしてもよい。
このような閲覧者の評価を利用して、評価の高い画像推移を、その評価を参照して教師データとして集め、学習することが可能となる。評価の高い画像推移は、例えば、無駄のない動きや、速すぎず遅すぎず迷いがなく、又動きにむらのない等の画像推移であり、この画像推移を数値化して評価するシステムと連携してもよい。つまり、特定ターゲットを撮影する際に時系列的に得られた複数の画像の連なりを母集合として設定し、設定された母集合において、見栄えの良い画面推移であるかの情報を有する画像の連なり(動画、連写など)を教師データとして(一つの作品動画の一部のパンニングなどの効果を有する部分を時系列画像群と呼ぶ)、推論モデルを生成することによって生成された学習済モデルを利用した撮像装置、撮像方法とすることができる。この時系列画像群をいくつか集めて学習すれば、様々なシーンに対応した推論モデルを得ることができる。
さらに、学習する際に使用する画像としては、コマ間の時間間隔が短く、連続した画像でなくとも、タイムラプス動画のように、コマ間の時間間隔が比較的長い連続画像でも、あるいはショートムービーのつながりでもよい。例えば、レポート画像やインタビュー画像では、起承転結が良い画像と悪い画像があり、また鑑賞者が心地よく感ずる画像とそうではないものがある。これらの画像を用いて、学習することによって心地よい画像の法則性が導ける。時間推移の良い画像かどうかの判断材料としては、パンニング撮影やあおり撮影のような動きの他、被写体への近づき方、アクセスの仕方があり、またこれ以外にも、ピントの移動やズームの移動、露出の変化、色表現の推移などがある。本実施形態においては、撮影や観察の目的に合わせて教師データを用意することによって、対応するガイド出力が可能である。
つまり、このような構成にすることによって、画面の移り変わりが早すぎて不快感が出たり、遅すぎて軽快感がないようなパンニングとなることを防止した撮像装置を提供できる、また、特定のターゲットを徐々にフレームに入れるなど画面遷移が理想的な手本となる動画撮像変化と、撮像で得た取得フレームを比較して速い遅いや迷いがなくなるような撮像ができる撮像装置が提供可能となる。つまり、この撮像装置は、順次画像コマを取得する撮像部と、撮像で得た取得コマと手本の画像コマ変化情報と比較する比較部とを有すればよく、さらに、教師データの持つ豊富な情報を活用して推論モデルを生成し、この推論モデルによって上述の比較を行うことによって、厳密に同じシーンでなくとも、見る人の好感度に対応した適切なガイドを出すことができる。撮像装置は、表示部が別の機器である場合もあるので、撮像結果と比較結果を表示部に表示可能とした表示制御部を有すればよい。また、必ずしも、この比較や推論を撮像装置で行わずともよく、表示装置側で行ってもよい。
このようにコマとコマの差異だけが、画像群の差分として表現しているわけではない。もちろん、図5のように、コマとコマの差異で、というミクロ的なレベルで学習を行ってもよい。
なお、図12と図13の例等、複数の状況に対して、同等の性能でガイドできる推論モデルの作成は、一般的には困難である。そこで、これらは別の状況である、と判断して、それぞれの場合に応じた複数のモデルを作るようにすればよい。図10に示す例では、複数のモデルを生成することを考慮している。
また、推論モデルは、撮影対象(特定ターゲット)を特定し、また撮影するための撮影ガイドを行うためのデータセットである。このデータセットは、推論エンジンの中間層の各ニューロン間の結合の強さを示すデータセットである。
推論エンジン12は、アクセス画像を入力すると、図4に示された推論モデルによって、撮影対象(特定ターゲット)を特定し、また撮影するための撮影ガイドを推論し、推論結果を出力する。推論エンジン12の中間層に撮影対象(特定ターゲット)の特定用の推論モデルを設定し、差分画像データを入力すると、出力側から撮影対象(特定ターゲット)の推論結果を得ることができる。また、中間層に撮影ガイド用の推論モデルを設定すると、出力側から撮影ガイドの推論結果を得ることができる。
例えば、図13に示す例では、ユーザがカメラを撮影対象に向けて動かしていく際に、差分画像データの変化が大きいような場合には、「ゆっくり」等を表示する。また、差分画像データから、カメラを動かす速度および方向が適切であれば、「そのまま」等を表示する。また、差分画像データから、見どころを通り過ぎてしまうようであれば、「注意」等を表示する。推論モデルは、これらの撮影ガイドを行うように深層学習を行う。上述したような一般的な方向、スピード等は、現状の変化とお手本との差異に基づいて、ガイドを出すことが可能である。特に相対的なものは、差異の判定結果から、決められたテキストや音声を発するように学習すればよい。また、推論モデルは、迷った末にターゲットを見つけた時の画像のデータをも含むようにすれば、迷ったときに挽回するようなガイドを出力することも可能である。
さらに、ネガティブサンプルを用いて学習してもよい。例えば、お手本より早すぎる動きの画像変化例(連続画像群)を「早すぎる」という情報とともに学習させたり、反対の方向に視点、撮像位置を動かしたときの画像変化例(連続画像群)を「逆に動かせ」という情報とともに学習することによって、ネガティブなガイドを出力する推論モデルを作成することができる。つまり、正しくアクセスできなかった場合の連なる画像を第2の教師データ(ネガティブサンプル)とすればよい。もちろん、お手本の画像変化例(連続画像群)を「そのままでOK」という情報とともに、学習させれば、うまくいっている場合にユーザが安心できるガイドを出すことが可能となる。これらのものが図5の「差分ガイド」に対応する。
図4において、差分ガイド1、差分ガイド2、差分ガイド3は、後述する図5(e)に示す差分ガイドに対応する。推論モデルの生成にあたっては、アクセス時刻情報が付与された一連の画像群を使用する。入出力モデル化部24は、これらの一連の画像群の撮影対象と、その撮影結果が成功したか又は失敗したかを教師データとして、撮影対象特定及び撮影ガイドのための深層学習を行う。なお、図4の説明に当たっては、撮影対象の特定と撮影ガイドを1つの推論モデルを用いて説明したが、撮影対象の特定用の推論モデルと、撮影ガイド用の推論モデルを別々に設けるようにしてもよい。
次に、図5を用いて、差分画像データを用いての推論について説明する。図5(a)は、撮影の手本となる画像群の一例を示す。この画像群は、最終目標F00を撮影するために、撮像部11によって取得された一連の画像群である。この画像群の内、最終目標は画像F00であり、その1つ前がコマ画像F−1であり、さらにその1つ前がコマ画像F−2である。コマ画像F−2の前がコマ画像F−3、コマ画像F−4、・・・コマ画像F−7と、所定のフレーム間隔で画像が取得される。なお、推論用に使用する画像の間隔は、スルー画用のフレームレートそのものの間隔でも良いが、適宜フレーム画像を間引いて、推論を行うに適した所定間隔としてもよい。
この時のお手本の動きを、画像だけで読みとることも可能である。しかし、これに限らず、ユーザの操作を画像以外の情報として取得し、お手本の動きとしてもよい。例えば、撮像部に加速度センサ、方位センサ、及び/又は姿勢センサを設け、ユーザがどのような操作を行ったかを時間別に判定してもよい。また、カメラ等の操作機器が電動制御を行っていれば、スイッチやダイヤルやレバーなどの操作の状況を時間別に判定しても良い。つまり、どのような画像の変化が、どのような操作を行ってなされたかを、対応付けて記録できるようにしておけば良い。
また、これらの連続画像の情報だけでも、様々な操作情報を取得することが可能である。すなわち、様々な操作を行うことにより、画像が変化することから、個々の画像の変化を判定することにより、操作に対応した情報を得ることが可能である。もちろん1コマと1コマの間は、変化が少なすぎることが多く、また不本意な動きや操作や手ぶれなどに起因するノイズ成分を含むので、多くのコマにまたがる画像を比較することによって、変化を判定し、操作の情報として解析することも可能である。また、この方法は、必要に応じて利用するようにしてもよい。
画像に差異が生じた理由が、操作に基づく結果だと考えれば、同じ差異を生じさせるためには同じ操作をガイドすればよい、ということになる。例えば、すぐ右端に対象物が見えていれば、一律にもっと右を見ればよいとか、左に動かした時に、動かす向きが反対と表示する等、簡単なガイドが考えられる。しかし、人間が操作していると一瞬の変化に気づかない場合があり得る。このような動きとガイドの関係を学習しておき、最適なガイド表示を行えば、ヒューマンエラーを防ぐことができる。刻々と状況が変わり、電池やメモリ容量などの消耗もある場合に、迅速な操作ができるガイドが好ましい。
画像の変化から操作を推測することについて述べたが、この点について、さらに詳しく説明する。時間に沿って連続的な画像を取得する際に、撮像部が動いて撮像範囲が変化すると得られる画像も変化する。この取得画像が撮像部の動きに対応するものとなることは言うまでもない。撮像部の動きに対してフレームレートが高ければ、あるいはフレームレートに対して動きが遅ければ、画像の変化は少なく、時間的に隣接した(隣接しなくてもよい)前後の関係の画像には重なり部分が生じる。画像の「差分」というと、この重なり部分を除いた部分という考え方もある。しかし、これに限らず、共通する対象物像が画像の中で変化した様子もまた画像の差分という表現で表せる。これらはいずれも、対象物と撮像の位置の関係の差異から生まれる情報の変化であるから、ここでは包括的に「差分」という言葉で表している。この重なり部分が時間に沿って右に動けば、撮像部は左に動いている。また左に動けば撮像部の動きは右に向かっている。
このように各々の画像は写しているものを示すと同時に写した位置を表す情報を含んでいる。また、前(先)の画像には後の撮像で写すであろうものが予告される形で入っている。特定の状況下で撮像装置を動かした時、その時得られる画像の変化は写している装置の位置変化を表したものとなる。仮に、対象物に動きがあったとしても、その背景は動いていないか、若しくは動いていないとみなして考えてよい場合が多い。
撮像部を動かしながら、特定の対象物を探す場合、上述した条件を考慮したアプローチ方法が有効となる。ただし、いろいろなシーンがあったり、いろいろな動かし方があったりする。また、ここで説明している撮像部の位置は様々な位置の候補のひとつであるし変化の仕方も状況によって異なる。しかし、前述のように画像の連なりには特定の法則があり、この法則を見出して用いることによって、目標の対象物の撮像のための効果的なガイド表示を出すことが可能となる。つまり、連続した画像コマ群、あるいは時系列画像群の個々のコマ、フレームの画像の変化を比較してガイドが出せる。この比較結果は、複数の画像間の重なり具合や変化の度合いを判定したパンニングの向きやスピードなど機器、装置を動かす時のガイドとして有効である。
コマ画像F−6とコマ画像F−5の差分画像データから差分ガイド6が生成され、コマ画像F−5とコマ画像F−4の差分画像データから差分ガイド5が生成される。同様に、コマF−5〜F00の間でも差分ガイドを生成する。図5(b)は、撮影画像であり、最終目標の位置に対応する画像である。なお、図5(b)においては、「撮影画像」と記載しているが、必ずしも撮影する必要はなく、ユーザが画像を観察するだけでもよく、撮影画像を目標到達画像、または目標画像と言い直してもよい。
例えば、図5(c)は、図5(a)のお手本推移画像の最終画像(目標画像)F00と、1コマ前の画像F−1の類似度が高い場合を示している。この場合には、お手本の前のコマ(画像F−1)と最終画像取得F00の間に行ったユーザ操作と同じ操作を行えば、基本的に同じ最終目標F00に達することが可能である。つまり、この場合は、少なくとも直ぐに目標画像撮像可能地点に達する可能性が高く、あまり大きな動きをさせてはならない。ガイドとしては、「慎重にこの辺りで探せ」とか、お手本推移でのユーザ操作を反映して、「もう少し右」とか、「奥」等のガイドを行ってもよい。すでに目標の片鱗、あるいは全ての画像が入っている場合があるので、「もう動かさなくてよい」というガイドであってもよい。お手本推移画像は、例えば、ユーザが動かした時の操作を表す情報も同時に含んでおり、画像が速く変化する場合は速い操作、少しずつ変化する場合はゆっくりの操作、といった情報は画像からでも判定可能である。この判定結果が、図5(c)の差分ガイド1になる。
このお手本と同様のスピードで変化する画像であれば、お手本を得た時の操作に倣った動きで、最終目標F00へのアプローチが可能となる。うまくいくお手本であれば、ガイドに即した操作でそれと同様のアプローチ方法が採用できるはずであり、うまく目標に到達することが可能となる。差分ガイドは、こうした画像の変化を引き起こした操作に関連した情報となる。
コマ画像F−1の撮影タイミングにおいて、差分ガイド1を適用することにより、最終目標のコマ画像F00を撮影できることを示す。すなわち、コマ画像F−2とコマ画像F−1の差分画像データを用いて差分ガイド1を推論し、この推論結果に従うことによって最終目標のコマ画像を取得することができる。
この差分ガイドの推論を、深層学習を用いて生成した推論モデルを用いて行うようにしてもよい。この推論モデルは、特定ターゲットを撮影する際に得られた画像群を母集合として作成し、この作成された母集合において、特定ターゲットにアクセスできたか否かを教師データとして、推論モデルを生成すればよい。この時、図5に示すように、ガイド情報を連続画像の時間推移に関連付けて学習させてもよい(図示した差分ガイド1から6のそれぞれを分けても良いし一括で指定してもよい)。また、単純に、手本と異なる場合は「NG」を出すようなシステムとするために、お手本と比べて画像の差異から差分が良いか悪いかをガイドとしてもよい。あるいは目標に近いか遠いかを表示、または出力するガイドでもよい。図5(c)に示す場合には、推論の結果、もう少しで最終目標に到達することから、「もう少し」を出力する。
図5(d)は、お手本ではあと2コマで目標に到達する位置に達しており、図5(c)に示す場合と比較し、すぐに到達するとは言えないが、「注意しないと行き過ぎる」といったガイドを出すような状況である。つまり差分ガイド2は、このような状況に応じたガイドとなり、うまく、F−1と同じ画像を撮像したら差分ガイド1にガイドを変更する。従って、コマ画像F−2の撮影タイミングにおいて、差分ガイド2を適用し、さらにコマ画像F−1を撮影するタイミングにおいて、差分ガイド1を適用することにより、最終目標のコマ画像F00を撮影できることを示す。
同様に、図5(e)は、お手本では3コマで目標に到達する位置に達している。最初(差分ガイド3の表示時)は、図5(c)の場合よりは目標の対象物が入っている可能性が低い。そのため、ガイド表示も異なったものになり、例えば、「もう少し」といった心の準備を促すガイドでもよい。コマ画像F−3の撮影タイミングにおいて、差分ガイド3を適用し、さらにコマ画像F−2の撮影タイミングにおいて、差分ガイド2を適用し、さらにコマ画像F−1を撮影するタイミングにおいて、差分ガイド1を適用することにより、最終目標のコマ画像F00を撮影できることを示す。
ちなみに、ここでは説明を容易にするために、前のコマF−1、F−2と1コマずつのような表現をしている。しかし、これらのコマの間にもっと多数のコマがあってもよい。この場合、コマF−1、F−2等は複数コマから選ばれた特徴的な代表コマ(操作時の時系列を反映して選ばれた)としてもよい。あるいはF−1、F−2等を、複数のコマの集合として扱っても良い。また、「心の準備を促す」ガイドは、お手本推移に画像やその変化に関連付けて学習させてもよい、また、目標に近づいた場合に行う一般的なガイドをプログラムに組んでおき、このガイドを採用した場合の結果や、ガイドを採用しなかった場合の結果を学習させてもよい。
本実施形態においては、入出力モデル化部24は、図5(a)に示すような、最終目標F00を撮影する前のコマ画像F−7〜F−1の差分画像データを入力し、最終目標F00を教師データとして、深層学習することにより、差分ガイド1〜6のような撮影ガイドを推論できるような推論モデルを生成する。図5(a)に示すようなお手本となる画像データ群は、なるべく多数、入力して学習することにより、精度の高い推論モデルを生成することができる。
次に、図6に示すフローチャートを用いて、カメラ10における撮像アクセス制御の動作について説明する。このフロー(図8にフローも同様)は、カメラ10内の制御部17がメモリに記憶されたプログラムに従って実行される。
撮像アクセス制御のフローが開始すると、まず、アクセスモードか否かを判定する(S1)。アクセスモードが設定されると、カメラ10は、撮影目標(特定ターゲット)を探し出し、この撮影目標を撮影するための撮影ガイドを表示する。アクセスモードは、デフォルトモードであってもよく、またカメラ10のメニュー画面等において、ユーザが設定するようにしてもよい。
ステップS1における判定の結果、アクセスモードであった場合には、画像を入力する(S3)。ここでは、撮像部11から、フレームレートに応じた時間間隔で一連の画像データを入力する。この画像データの入力にあたっては、撮影位置情報および撮影日時情報を合せて入力する。差分データを生成する際に、これらの情報も関連付けるようにしてもよい。また、入力された画像データは、スルー画として表示部14に表示され、また推論エンジン12に入力される。なお、推論エンジン12に入力する画像データは、撮像部11から出力される画像データを適宜、間引いたものであってもよい。
画像を入力すると、次に、画像判定を行う(S5)。ここでは、推論エンジン12が、推論モデルを用いて、シーン(撮影対象(特定ターゲット))を探し出す。このステップは、前述の図13の例では、シーン「神厩舎」と判定することに対応する。
画像判定を行うと、次に手本コマの検索を行う(S7)。手本コマは、図5(a)に示したような、シーン(撮影対象)を撮影する際のお手本となる画像である。手本コマがあれば、手本コマに対応する推論モデルが、推論エンジン12内の記憶部12aに記憶されている。
手本コマの検索を行うと、次に、手本コマがあったか否かを判定する(S9)。ここでは、ステップS7における検索結果に基づいて判定する。この判定の結果、手本コマがない場合には、警告表示を行う(S13)。この場合には、撮影対象を特定できない場合であり、および/または撮影対象を撮影するためのガイド表示ができない場合である。このステップでは、表示部14に警告を表示する。
ステップS9における判定の結果、手本コマがあった場合には、ターゲット表示を行い、また差分ガイドを検索する(S11)。ここでは、推論エンジン12によって、撮影対象(特定ターゲット)が推論されるので、この撮影対象(特定ターゲット)が何であるかを表示部14に表示する。例えば、図13(b)に示すように、「シーン神厩舎」と表示してもよい。また、図13(d)(e)に示すようなガイド表示を行っても良い。また、差分ガイドを検索する。撮影対象(特定ターゲット)を撮影するに適した差分ガイドを行うための推論モデルが、記憶部12aに記憶されているか否かについて検索する。
ステップS11において差分ガイドを検索すると、またはステップS13において警告を行うと、次に、ガイド通りか否かを判定する(S15)。ここでは、撮像部11によって取得された画像の変化が、ステップS11において検索された差分ガイドを用いて推論エンジン12が推論した結果する通りであるかどうかを判断する。例えば、差分画像データが、図5(a)に示すようなお手本の画像と同じように変化していれば、ガイド通りと判定される。なお、ステップS11において、差分ガイドが検索されない場合には、ガイド通りとは判定されない。
ステップS15における判定の結果、ガイド通りでない場合には、警告表示がなされる(S19)。ステップS11において検索された差分ガイドが検索されている場合には、この差分ガイドを用いて推論を行う。この推論結果と、実際に撮像部11が取得した画像データの差分データが合わない場合には、警告を行う。
一方、ステップS15における判定の結果、ガイド通りの場合には、必要に応じて撮影準備や、照明等の変更を行い、また撮影を行う(S17)。ガイド通りに差分画像データが変化している場合には、目標となる撮影対象を撮影できる可能性が高いことから、撮影の準備を行う。撮影準備は、例えば、撮影画素数等のパラメータを設定する。またシャッタ速度値、絞り値等の露出制御値、焦点距離、焦点位置等の何れかを設定してもよい。また照明等の変更としては、例えば、フラッシュ装置の準備、フラッシュ装置の投射角度等がある。更に撮影としては、単写でもよく、連写であってもよい。
ステップS17またはS19における処理を行うと、次に、動画または静止画の撮影を行うか否かを判定する(S21)。ユーザは、撮影ガイドに従って、目標とする画像を捉えると、動画または静止画の撮影を実行する。すなわち、ユーザは、静止画を撮影する場合には、操作部15のレリーズ釦を操作する。また動画を撮影する場合には、ユーザは操作部15の動画釦を操作する。このステップでは、レリーズ釦または動画釦が操作されたか否かに基づいて判定する。このステップにおける判定の結果、動画または静止画撮影を行わない場合には、ステップS1に戻る。
一方、ステップS21における判定の結果、動画または静止画を撮影する場合には、記録を行う(S23)。ここでは、撮像部11によって取得された画像データに対して、画像処理部17bが、動画用または静止画用の画像処理を施し、記録部16に記録する。
画像データを記録すると、次に、動画または静止画の撮影が終了か否かを判定する(S25)。動画の場合には、ユーザは動画釦を操作することにより、終了となる。また静止画の場合には、単写の場合には1コマ分の画像データを取得することにより、自動的に終了となり、連写の場合には、ユーザがレリーズ釦等から手を離すことにより、終了となる。このステップにおける判定の結果、終了していない場合には、ステップS1に戻る。
一方、ステップS25における判定の結果、終了の場合には、ファイル化を行う(S27)。動画の場合には、連続した複数の画像データをファイル化する。また、静止画の場合には、各コマをそれぞれファイル化する。ファイル化すると、記録部16に画像ファイル16aとして記録する。ファイル化すると、ステップS1に戻る。
ステップS1に戻り、このステップにおける判定の結果、アクセスモードでない場合には、次に推論モデルの取得か否かを判定する(S31)。推論エンジン12において使用する推論モデルは、外部機器20内の入出力化モデル部24において、深層学習によって生成する。このステップでは、この推論モデルの生成を外部機器20に要求するか否かを判定する。ユーザは、カメラ10の操作部15を操作することによって、推論モデルの取得を要求する。このステップにおける判定の結果、推論モデルの取得でない場合には、ステップS1に戻る。
ステップS31における判定の結果、推論モデルを取得する場合には、対象物を設定する(S33)。対象物の設定方法としては、手動で対象物の特徴をテキストで入力してもよく、また対象物を示す画像を入力してもよい。また、著名な建物、景勝地、観光地等であれば、その名称を入力しても良い。対象物を設定すると、カメラ10内の通信部13、および外部機器内20内の通信部22を介して、対象物の推論モデルの生成を学習部21に依頼する(図7のS41参照)。
対象物を設定すると、次に、推論モデルを取得し、記録する(S35)。外部機器20内の学習部21は、推論モデルを生成すると、依頼元のカメラ10に生成された推論モデルを送信する(図7のS61参照)。このステップでは、外部機器20から送信されてきた推論モデルを受信し、記憶部12aに推論モデルを記憶する。推論モデルを記憶すると、ステップS1に戻る。
このように、撮像アクセス制御のフローにおいては、撮像部11によって取得された画像データの差分画像データを生成し(S3参照)、この差分画像データを推論エンジン12に入力している。推論エンジン12は、推論モデルを用いて、ユーザがターゲットする撮影対象を推論し(S5参照)、この撮影対象に応じた差分ガイドを検索し表示している(S7、S11参照)。
本実施形態においては、時系列的な画像の連なり、あるいは連続的に順次取得された画像群、あるいは、これらの画像の差分画像データを用いて推論している。このため、画像が有する豊富な情報量を有効活用することができ、さらに時間の経過とともに繰り返される画像によって情報を更に増加させ、有効な情報を導き出すことができる。画像取得という限られた方法によって、最大限の効果を有する学習が可能となる。もちろん、画像情報以外の情報を加えて画像を行ってよいが、画像だけで学習を行う場合には、単純なハード構成で処理することができる。またハード構成が単純であると、様々な分野の機器、装置、システムに活用することが可能になる。また、画像だけで学習を行うことにより、演算が単純化でき、変化に迅速に対応することができる。特に、撮影対象(特定ターゲット)を迅速に特定し、また撮影ガイドも迅速に推論して表示することができる。
次に、図7に示すフローチャートを用いて、外部機器20の学習部21における学習の動作を説明する。このフロー(図9、図10に示すフローも同様)は、外部機器20内の制御部26がメモリに記憶されたプログラムに従って実行される。
外部機器制御のフローが開始すると、まず、学習依頼か否かについて判定する(S41)。前述したように、カメラ10は、ステップS33(図6参照)において、学習部21に学習依頼を行う。このステップでは、通信部22を通じて、カメラ10から学習依頼を受信したか否かに基づいて判定する。この判定の結果、学習依頼を受けていない場合には、待機状態となる。
ステップS41における判定の結果、学習依頼が有った場合には、次に、対象物の種別を設定する(S43)。カメラ10が学習依頼を行う場合には、対象物を特定して行うので(図6のS33参照)、このステップでは、カメラ10からの要求に応じて、対象物の種類を設定する。
続いて、学習母体を設定する(S45)。ここでは、母集合作成部23は、ステップS43において設定された対象物の種別に基づいて、外部画像DB27における画像データの母集合の範囲を設定する。図13に示す例では、三猿を撮影する際の撮影ガイドを行うための推論モデルを生成している。この場合には、三猿の撮影過程を示す動画を学習母体とするのが好ましい。深層学習(機械学習)を行う場合には、効率良く学習を行うことができるように、学習母体を適切に設定することが望ましい。
学習母体を設定すると、次に、対象物位置情報を設定する(S47)。学習するにあたって、対象物の位置情報があれば、併せて設定する。例えば、神厩舎における三猿撮影用の推論モデルを作成する場合には、神厩舎(三猿)の位置情報を設定する。なお、学習要望事項によっては、対象物位置情報の設定を省略してもよい。
対象物位置情報を設定すると、次に、推論モデルを生成する(S49)。ここでは、入出力モデル化部24が、設定された対象物等に基づいて推論モデルを生成する。具体的には、前述したように、入出力モデル化部24は、日時情報が関連付けられている、一連の画像群を用いて学習する。また、入出力モデル化部24は、学習するにあたって、差分画像データを生成し、この差分画像データを入力し、また撮影対象(特定ターゲット)、撮影の成否、撮影ガイド等を教師データとして、深層学習を行う。この深層学習によって生成された、各ニューロン間の結合の強さ等のデータを推論モデルとする。
推論モデルの生成を行うと、推論の信頼性が所定値以上であるか否かについて判定する(S51)。ここでは、ステップS49において生成した推論モデルの信頼性を算出する。信頼性の判定は、例えば、LOSS値等を算出し行う。LOSS値は、予め解答が分かっている練習問題で深層学習を行った場合に、深層学習で生成された推論モデルでの推論結果と、予め分かっている解答との差異である。
ステップS51における判定の結果、推論の信頼性が所定値以上ない場合には、学習母体を再設定する(S53)。ここでは、ステップS45において設定した学習母体を再設定する。再設定の仕方として、入力画像を、画像の付随データを用いて、母体数を増加させてもよく、また減少させてもよい。また、教師データを変更するようにしてもよい。
続いて、学習母体を再設定した回数が所定回数以上か否かを判定する(S55)。学習母体を再設定しても信頼性が所定値以上とならない場合がある。このステップでは、学習母体を再設定した回数に基づいて判定する。この判定の結果、所定回数以上でなければ、ステップS47に戻り、再度、推論モデルを生成し、信頼性を判定する。
ステップS55における判定の結果が所定回数以上の場合、またはステップS51における判定の結果、推論の信頼性が所定値以上ない場合には、推論モデルを送信する(S61)。ここでは、ステップS49において生成された推論モデル、またはステップS53において学習母体を再設定した生成された推論モデルを、通信部22および通信部13を通じて、カメラ10に送信する。推論モデルを送信すると、ステップS41に戻る。
このように、外部機器制御のフローにおいては、カメラ10から学習依頼を受信すると(S41)、対象物の種別を設定し、この対象物の種別に応じて、学習母体を設定のうえ(S45)、推論モデルを生成する(S49)。この生成された推論モデルの信頼性を求め、信頼性が低い場合には、学習母体を再設定して、再度、推論を行う(S53、S49)。また、推論モデルを生成する際には、入出力モデル化部24は、画像データの差分画像データを生成し、この差分画像データを用いて、深層学習を行う。
次に、図8に示すフローチャートを用いて、図6に示した撮像アクセス制御のフローの変形例を説明する。一実施形態に係る撮像アクセス制御のフローでは、対象物を画像から判定していたが、本変形例においては、画像に限らない方法でターゲットを指定することを可能としている(S4参照)。また、カメラの撮影方向が対象物を通り過ぎてしまった場合、一実施形態においては、警告を行うことがなかった。しかし、本変形例においては、行き過ぎてしまった場合には、警告を行うようにしている。本変形例に係るフローチャートは、ステップS3、S5をステップS4に置き換え、ステップS12、S14を追加した点で、図6に示すフローチャートと異なる。そこで、この相違点を中心に説明する。
撮像アクセス制御のフローが開始すると、まず、アクセスモードか否かを判定し(S1)、この判定の結果、アクセスモードの場合には、ターゲットを指定する(S4)。図6に示したフローでは、画像を入力し(S3)、画像を判定する(S5)によって、撮影対象(特定ターゲット)を認識していた。すなわち、撮影シーンを画像から判定していた。これに対して、本変形例においては、画像によらず撮影対象(特定ターゲット)を指定する。画像によらない指定としては、例えば、ユーザが操作部15を操作し、テキストで指定してもよい。例えば、図13に示す例では「三猿」とテキストを入力してもよく、これ以外にも、「日光」または「神厩舎」をテキストで入力してもよい。ユーザが「三猿」を意識していなくても、「日光」または「神厩舎」を入力すれば、推論モデルによって、「三猿」が見どころであることを推論し、撮影ガイドを行うことができる。
ターゲット指定を行うと、手本のコマを検索し(S7)、手本のコマが有れば(S9Yes)、後の画像であるか否かを判定する(S12)。ユーザが見どころの被写体に気付かず通り過ぎてしまうことがある。このステップでは、推論エンジン12が、見どころの被写体を通り過ぎており、後で見ることができる被写体であるか否かを判定する。この判定の結果、後の画像でなければ、手本のコマがないことについて、警告表示を行う(S13)。
ステップS12における判定の結果、後の画像であれば、行き過ぎ警告を行う(S14)。前述したように、見どころの被写体を通り過ぎていることから、この旨の警告表示を行う。上述のステップS4、S12、S14以外については、図8のフローチャートにおいても、図6のフローチャートと同様の処理を行うので、詳しい説明を省略する。
次に、図9に示すフローチャートを用いて、図8に示した撮像アクセス制御のフローで動作するカメラと協働する外部機器20の動作を説明する。一実施形態に係る外部機器制御のフロー(図7参照)では、外部DBに記憶されている動画の中から抽出して学習母体を設定していた。これに対して、本変形においては、時刻情報付きの動画に限らず、時刻情報付きの静止画も使用可能としている。また、生成する推論モデルとして、連写用(動画用)と、静止画用の2種類の推論モデルを生成し、送信している(S49、S61、S63参照)。本変形例に係るフローチャートは、ステップS45をステップS45aに、またステップS61をステップS63、S65に置き換えた点で、図7に示すフローチャートと異なる。そこで、この相違点を中心に説明する。
図9に示す外部機器制御のフローが開始し、学習依頼があったと判定され(S41Yes)、対象物種別が設定されると(S43)、学習母体が設定される(S45a)。このステップS45aでは、日時情報付きの動画に加えて、静止画に日時情報が関連付けられている画像データも学習母体とする。この学習母体を利用することによって、図5に示した画像を、撮影した順番、または取得した順番の時系列画像情報とすることが可能となる。これらの画像データは、複数の画像群で構成される。時刻情報付きの動画は、コマとコマの間に重複する被写体があり、連続性のある画像である。また、時刻情報付きの静止画は、コマとコマの間には、重複する被写体が一般にはなく、画像としての相関性がない。しかし、静止画であっても時系列に並べることにより、一連の画像の連なりとなる。
学習母体を設定すると、次に、対象物位置情報を取得し(S47)、ステップS45aにおいて設定した学習母体を用いて、推論モデルが生成される(S49)。ここで生成される推論モデルは、推論モデル1(連写)および推論モデル2(個別)の2種類がある。推論モデル1は、コマ間で被写体に重複があり、画像が連続している場合に適した推論モデルである。また、推論モデル2は、独立して、個々に画像を撮影する静止画撮影に適した推論モデルである。例えば、図13に示すような日光で撮影する場合に、「日光駅→三猿→陽明門→眠り猫」のような典型的な道順に沿って移動し、個々の名所で静止画を撮影する場合には、推論モデル2が適しており、一方、個々の名所で動画を撮影する場合には、推論モデル1が適している。
ステップS51において、推論の信頼性が所定値以上あった場合、または学習母体を再設定して、所定回数以上、推論を行った場合には(S55Yes)、推論モデル1(連写)を送信する(S63)。推論モデル1は、カメラ10で時間に沿って、複数回の撮影、つまり連写(動画を含む)を行う場合に相応しい推論モデルである。連写を行う場合には、カメラ10を空間的に移動させ、被写体を変化させながら撮影することから、静止画とは異なる撮影となる。この推論モデルは、このような連写撮影に相応しい撮影ガイドを行う際に役立つ。
推論モデル1を送信すると、次に、推論モデル2(個別)を送信する(S65)。この推論モデル2は、静止画撮影に適しており、一点の被写体を単写撮影するに相応しい撮影ガイドを行う際に役立つ。推論モデル1および推論モデル2をカメラ10に送信すると、ステップS41に戻る。
このように、外部機器制御のフローの変形例においては、連写と単写に相応しい推論モデルをそれぞれ生成している。このため、ユーザが連写するか、単写するかに応じて、最適な撮影ガイドを行うことができる。
次に、図10に示すフローチャートを用いて、図7、図9に示した外部機器制御のフローチャートの第2の変形例について説明する。本変形例においては、上手くいかなかった場合の画像も、第2の教師データとして採用して、学習を行っている(S44、S49参照)。また、学習を行う場合、状況に応じて、複数の推論モデルを生成している(S49、S60、S67参照)。このフローチャートは、図6または図8に示した撮像アクセス制御のフローで動作するカメラと協働する外部機器20の動作を示す。
この図10に示すフローチャートは、図7および図9に示したフローチャートと比較して、ステップS43をステップS44に置き換え、また、ステップS52、S60、S67を追加している点で相違する。そこで、この相違点を中心に説明する。
図10に示す外部機器制御のフローが開始し、学習依頼があったと判定されると(S41Yes)、良い場合、良くない場合の画像変化を教師データとする(S44)。この第2の変形例では、教師データとしては、上手く撮影対象(特定ターゲット)を撮影できた場合と、上手く撮影対象を撮影できなかった場合の両方の画像を用いて、推論を行う。動画の場合には、一連の画像の変化を判定することにより、上手く撮影できたか否かを判定することができる。また、静止画の場合には、画像に関連付けられた時刻情報および位置情報を追跡することにより、上手く撮影できたか否かを判定することができる。これらの判定結果に基づいて、教師データを決めればよい。なお、撮影が上手くいったかどうかに限らず、例えば、目標としている対象物に上手く到達できた場合と、到達することができなかった場合の両方の画像を用いて学習してもよい。
また、教師データとしては、指導を受けているようであれば、その指導も教師データとして使用することができる。例えば、ゴルフスイングを連写等によって撮影している場合に、インストラクタによってスイングについて指導を受けていれば、これも教師データとすることができる。
ステップS44において教師データを決めると、図7、図9の場合と同様に、学習母体を設定する(S45)。この学習母体は、図5(a)に示した画像に準ずる画像として、撮影した順番通りの画像、または取得した順番に時系列的に並べた画像によって構成してもよい。また、図13に示すような撮影ポイントへの誘導ガイドの例では、撮影の年月を判定し、新しいデータを採用することによって、現在の状況に近い画像によって学習できる。また、古くて状況が変わってしまったデータであればネガティブサンプル(第2の教師データ)として、間違えを防止するようなガイドを出すための情報にすることができる。例えば、新しい画像群で学習して得られた推論モデルに、古いデータを入力して正しいガイドが出力できない場合には、その推論の信頼性等を判定し、古いものはむしろネガティブサンプルにする、という方法がありうる。
また、上述の学習母体では、季節の情報も取得できるので、夏の草木生い茂る系対応用のガイドと冬の雪景色対応用のガイドを変えて、異なる学習を行うといった工夫もできる。ガイドが必要な季節に応じた学習を行えばよい。また、朝と夕方では、心の余裕、体力の余裕、あるいは日が暮れるまでの時間的余裕が異なる等、ユーザへの配慮を行ったガイドを行ってもよい。あまり時間がかかるようなガイドであれば、ユーザにあきらめるよう提案するのもガイドと言える。
このようなガイドも図5の差分ガイドと言え、これをお手本推移と関連付けて学習させればよい。例えば、画像F−7のように目標から遠い画像が得られていれば、その対応ガイドは、「あきらめることを勧める」という内容であっても、ユーザには助けになる。画像F−4に対応するガイドの場合、「あと30分かかるが大丈夫ですか」といった質問を含むガイドにもなりえる。画像F−1のガイドは、「もう少しなので行き過ぎないよう」といったガイドなどが例になる。
また、撮影ガイドではなく検査用ガイドであっても、例えば下水管の内部の水分が凍っている状況と落ち葉などが詰まっている状況などで、推論が変わる場合があり、季節性を考慮することには意味がある。また、検査対象が、古い管と新しい管といった区別をしてもよい。古い民家の検査では、昔得た画像群の方が教師データとして適切である可能性がある。
このように、時間情報を有効利用して学習を切り替えるような応用は有効な場合が多い。所定の信頼性での推論が可能でない場合、教師データを分割して第2の教師データとして、間違いやすい状況を峻別したガイド推論とすることができる。
ステップS45において学習母体を設定すると、次に対象物の位置情報を取得し(S47)、次いで推論モデルを生成する(S49)。このステップでは、必要に応じて、推論モデルを複数、生成する。1つの推論モデルで、状況(例えば、季節)に係りなくガイドができない場合がある。そこで、必要があれば、状況毎に複数の推論モデルを生成する。
ステップS49において、推論モデルを生成すると、次に、推論の信頼性が所定値以上であるか否かを判定する(S51)。この判定の結果、推論の信頼性が所定値以上ない場合には、別の情報を追加する(S52)。ここでは、学習母体を再設定するにあたって、画像データに限らず、他の情報を追加する。例えば、GPSによって取得された位置情報、加速度センサ等によって取得されたカメラ10の動き情報等が利用できる。
ステップS52において別の情報を追加すると、この情報を用いて、学習母体を再設定する(S53)。そして、推論モデルの生成が所定回数以上でなければ(S55No)、ステップS47に戻る。
一方、ステップS55における判定の結果、所定回数以上、推論を行っても信頼性が向上しない場合、またはステップS51における判定の結果、推論の信頼性が所定値以上の場合には、複数モデルか否かを判定する(S60)。ステップS55における判定の結果、推論モデルの生成が所定回数以上であれば、学習用データに統一性がなく、同一の推論モデルでは信頼性の正しい推論ができない場合がある。また、ステップS49において、複数の推論モデルを生成している場合がある。図13に示すような撮影ポイントの誘導の例でいえば、すでに季節や時刻の例で説明したように、雪景色と夏の景色では、風景が異なって同じ場所とは思えず、同じ推論エンジンを用いることが相応しくない場合がある。このような状況では、雪景色とそれ以外で分類すれば、信頼性の高い推論が可能になる。
複数モデルにすることが良いかどうかは、このステップS60で判定する。複数モデルで判定するかどうかは、画像に付帯した条件(日時や画像そのものや、その他メタデータなど)を分析して、グループ化できそうかを判断する。この判断の結果、大きなグループ分けが可能であれば、それぞれのグループごとの学習をした方がよくなる。また、ステップS52において別の条件を追加している場合には、この条件に合った推論モデルが追加で生成されている場合がある。
ステップS60における判定の結果、複数の推論モデルが生成されていない場合には、推論モデルを送信する(S61)。ここでは、ステップS49において生成された推論モデル(1つ)をカメラ10に送信する。一方、ステップS60における判定の結果、複数の推論モデルが生成された場合には、条件毎の推論モデルを送信する(S67)。このステップS67においては、追加条件毎の推論モデルをカメラ10に送信する。ステップS61またはステップS67において、推論モデルを送信すると、ステップS41に戻る。
学習結果の推論モデルは、複数の状況に対応できるようにした結果、特定の状況下でのガイドが不適切になる場合がある。この場合には、紛らわしくなるガイドを出してしまう。このような結果となるデータは、ネガティブサンプル(第2の教師データ)として学習に用い、紛らわしいから注意を促すようなガイドを出力させる方が好ましい。学習結果で所定の信頼性での推論が可能でない場合、例えば、いくら重みづけや層の構成を変えて学習しても信頼性の高い出力を行うモデルができない場合には、教師データを分割して第2の教師データとして、間違いやすい状況を峻別したガイド推論とすることができる。
このように、外部機器制御のフローの第2の変形例においては、教師データとして、上手くいった場合と上手くいかなかった場合の両方を用いている。このため、推論モデルとして、上手くいった場合に限らず、上手くいかない場合にもその旨を表示することができる。また、学習母体を再設定する際に、別の情報を追加するようにしている。このため、推論モデルを効率的に生成することができる。また、条件毎に推論モデルを生成することができ、きめ細かな撮影ガイドを行うことができる。
次に、図11に示すフローチャートを用いて、インターネットに掲載されたブログから教師用データを生成する動作について説明する。このフローチャートは、図7、図9および図10のステップS49において推論モデルを生成する際に、使用される教師用データを生成するために、ユーザのPC等がブログ等にアップされた画像等から教師データを生成する。この動作は、PC(パーソナルコンピュータ)によって随時実行され、生成された教師データは、外部機器20内の学習部21に送信される。
インターネットを通じてアップされるブログには、多数の写真が掲載されている。ブログ中には、観光地等で撮影した一連の写真がアップされ、これらの写真に撮影位置情報や撮影日時情報等の情報が関連付けられていることが多い。さらに、写真に添付されたタイトルや文章によって、種々の情報を得ることができる。これらの写真や情報を用いると、撮影対象(特定ターゲット)の特定や、撮影対象付近における見どころ等の撮影アドバイスや、見どころを撮影するためのアドバイス等を得ることができる。そこで、本実施形態においては、ブログにアップされた写真および添付情報から、教師データを生成するようにしている。
教師データ用ブログのフローが開始すると、まず、画像を受付、またタイトル、文章を受付、さらにレイアウトしてPCに表示する(S71)。ここでは、インターネット等に接続しているPC等が、ブログ等にアップされている画像を取得し、またその画像に添付されているタイトルや文章を取得する。これの画像、タイトル、文章を取得すると、PCの画面上に配置して、表示する。なお、教師データを生成するだけであれば、取得画像等の表示は省略してもよい。
次に、画像が複数あり、時間情報があるか否かについて判定する(S73)。前述したように、推論によって撮影アドバイス等を得るには、1つのブログ中に、一連の複数の画像があり、しかもそれらの画像に時間情報等が関連付けられていることが好ましい。そこで、このステップでは、画像が複数あり、時間情報が関連付けられているか否かを判定する。なお、複数のブログに掲載された写真を、あたかも一連の複数の画像とみなして、処理するようにしても勿論かまわない。
ステップ73における判定の結果、画像が複数あり、画像に時間情報が関連付けられている場合には、教師データを生成する(S75)。一連の画像を時間の経過に合わせて追跡することにより、ブログの投稿者の撮影の順番が分かる。さらに、他のブログ投稿者の撮影した写真等を見比べることにより、多数のブログ投稿者が撮影する地点、すなわち見どころが分かる。これらの情報に基づいて、撮影対象(特定ターゲット)や撮影アドバイスを推論する推論モデル生成するための教師データを生成する。
この投稿された動画が大量にあり、フレーミングが上手な人、下手な人が投稿している場合には、投稿された動画は、閲覧者の評価が加えられる。したがって、投稿動画の評価が高い場合には、良い手本の動画となる。ただ、動画は作品として投稿されるので、この中のパンニングの部分や場面の移り変わりの部分だけを取り出して教師データとした方が、その撮影テクニックごとの教師データができる。一般的に評価の高い動画は、特別な機材やスタッフなども使って入念に撮影されており、こうした好感度の高い動画の中のシーンはいずれも良い時系列画像群の教師データとなりえる。つまり、特定ターゲットを撮影する際に時系列的に得られた複数の画像の連なりを母集合、または母集合の候補として設定し、さらにそこから、見栄えの良い画面推移であるかの情報を有する時系列画像群を教師データとして、推論モデルを生成すればよく、母集合に含まれるそれ以外の時系列画像群をネガティブサンプルにしてもよく、評価の低い時系列画像群をネガティブサンプル(第2の教師データ)として、差異を強調した学習を行ってもよい。
ステップS75において教師データを作成すると、またはステップS73における判定の結果、画像が複数なく、時間情報もない場合には、教師データ用ブログのフローを終了する。
このように、教師データ用ブログのフローにおいては、インターネットを通じてアップロードされたブログ等に掲載された情報を用いて、教師データを生成している。多くの人が訪れるような場所では、多数の写真や、写真に関連する情報がある。これらの時間情報や位置情報を分析すると、多くの人が回る道順や、撮影ポイントが分かり、この分析結果に基づいて教師データを生成することができる。
なお、教師データ用ブログのフローは、PCにおいて教師データを生成するとして説明した。しかし、これに限らず、外部機器20内の学習部21が、随時、ブログを検索し、教師データを生成するようにしても勿論かまわない。
次に、図12および図13を用いて、本実施形態に係る撮像システムの応用例について説明する。図12は、本実施形態を管の中を観察する工業用内視鏡に応用した場合の教師画像の例を示す。図12(a)は、管111の中に、工業用内視鏡101が挿入された状態を示す。
工業用内視鏡101の挿入部102は、可撓性を有して管状である。挿入部102は、先端側から順に、先端部102a、湾曲部102b、可撓管部102cを有している。湾曲部102bは、例えば、図示しない複数の湾曲駒を有している。湾曲部102bは、湾曲自在であり、ユーザの手元操作によって、任意の方向に曲げることができる。先端部102aには、図示しないCCD(Charge Coupled Device)イメージセンサ、又はCMOS(Complementary Metal Oxide Semiconductor)イメージセンサ等の撮像素子、および図示しない照明部を有する撮像部103が設けられている。
管111は、管111aと管111bの2つの管から構成され、管111aと管111bが継ぎ目112において継ぎ合わされている。図12に示す例においては、継ぎ目112の内側にリング状の錆113が発生し、内側に隆起している。
図12(a)(b)は、錆113の状態を観察するために、工業用内視鏡101の挿入部102を管111に挿入した様子を示す。図12(a)は、挿入部102の先端部102aを、錆113の観察位置に上手く移動させることができた場合を示す。一方、図12(b)は、挿入部102の先端部102aを錆113の観察位置に上手く移動させることができなかった場合を示す。
図12(a)の下部に示した画像P1〜P9は、工業用内視鏡101の撮像部103において取得した画像を示す。画像P1〜P3は、管111の入り口部付近であり、管111の遠方が暗くなっている(黒丸参照)。画像P4は、時刻T=0において取得した画像であり、遠方を示す黒丸の外側に錆113が見える。
図12(a)において、時刻T1において、挿入部102を更に奥に進め、錆113を観察するために、湾曲部102bを彎曲させて先端部102aを下に向けると、撮像部103は画像P5を取得する。時刻T2において、挿入部102先端部102aが更に下に移動すると、撮像部103は画像P6を取得し、以後、時刻T3で画像P7を取得し、時刻T4で画像P8を取得する。時刻T5になると、挿入部102は、図12(a)に示す位置になり、画像P9に示すように、錆113を上方(管111の中心部側)から観察することができる。
図12(a)から分かるように、工業用内視鏡101によって錆113を観察するには、一旦、工業用内視鏡101の先端部を上方に向けて移動させる(時刻T0〜T2、画像P4〜P6参照)。その後、錆113の近傍まで移動すると、湾曲部102bを彎曲させて先端部102aを下方に向ければ(時刻T3〜T4、画像P7〜P8)、錆113を上方から観察できる(時刻T5、画像P9)。
図12(b)において、時刻T0以前に取得される画像は、図12(a)の場合と同じである。時刻T1において、挿入部102の先端部102aを下方に向けて移動し、そのまま進むと(時刻T1〜T3、画像P15〜P17)、最後には、先端部が錆113に衝突してしまう(時刻T4、画像P18)。この場合には、錆113を上方から観察することができない。
このように、工業用内視鏡101の挿入部102を管111に挿入して、内部を観察する場合、図12(a)のように挿入すると目標物(錆113)を観察することができ、一方、図12(b)のように挿入すると目標物(錆113)を観察することができない。そこで、図12(a)のように上手く目標物まで到達した場合の画像を成功した教師データとし、図12(b)のように目標物まで到達することができなかった場合の画像を失敗した教師データとする。そして、この教師データを用いて、深層学習して推論モデルを生成すれば、工業用内視鏡101の挿入部102の挿入時にガイド用の推論を行うことができる。また、この推論モデル作成時に、図4に示したような差分データを用いて行うようにしてもよい。
次に、図13は、ユーザが観光地である「日光」にカメラを持参した場合に、見どころを撮影する場合の例を示す。図13(a)は、日光にある建物「神厩舎」に、ユーザがカメラ10を向けている様子を示す。図13(a)中の破線は、カメラ10の撮影範囲を示し、このとき、カメラ10の表示部14には、図13(b)に示すように、スルー画と共に、撮影ガイドが表示される。撮影ガイドとして、撮影対象物が「神厩舎」であり、この神厩舎における見どころが「三猿」であることを表示する。
「三猿」は、図13(c)に示すような、神厩舎にある彫刻であるが、小さく目立たない。このため、「見どころ 三猿」と表示されないと、気づかないユーザもいる。本実施形態においては、推論エンジン12によって、神厩舎付近にいると判断すると、図13(b)に示すような撮影ガイドを表示する(図6のS3〜S11参照)。
図13(d)は、ユーザが撮影ガイドに従って、「三猿」にカメラを向けた場合であり、このときには「アクセスOK」と表示される(図6のS15、S17参照)。一方、図13(e)は、「三猿」を通り過ぎてしまった場合であり、このときには「アクセスNG」と表示される(図6のS15、S19参照)。アクセスOKと表示された際に、構図を決め、レリーズ釦を操作すれば、図13(c)のような「三猿」の写真を撮影することができる。
以上説明したように、本発明の一実施形態や変形例においては、特定ターゲットを撮影する際に時系列的に得られた複数の画像の連なりを母集合として設定し(例えば、図7、図10のS45、図9のS45a参照)、設定された母集合において、特定ターゲットにアクセスできたか否かを教師データとして、推論モデルを生成する(例えば、図2、図3、図7のS49等参照)。このため、目標とする画像を容易に取得することができるような推論モデルを生成することができる。例えば、画像に関連付けられた時間情報および/または位置情報に基づいて、特定ターゲットにアクセスできたか否かに基づいて教師データを生成していることから、目標とする画像を容易に取得することができる。
また、本発明の一実施形態や変形例において、特定ターゲットを撮影する際に時系列的に得られた複数の画像の連なりを母集合として設定する設定ステップと(例えば、図7、図10のS45、図9のS45a参照)、設定された母集合において、特定ターゲットにアクセスできたか否かを教師データとして、推論モデルを生成する生成ステップ(例えば、図2、図3、図7のS49等参照)によって、学習済みモデルを生成する。また、上述の設定ステップと、生成ステップをコンピュータに実行させる学習プログラムも開示されている。この学習プログラムは、制御部26内のメモリに記憶され、制御部26内のCPUが学習プログラムに従って、機器内を制御し、各ステップを実行する。また、上述の設定ステップと生成ステップを有する推論モデルの製造方法も開示されている。また、上述の設定ステップと、時系列に得られた画像の差分データを入力して、推論モデルを生成する生成ステップを有する推論モデルの製造方法も開示されている。
また、本発明の一実施形態や変形例において、特定ターゲットを撮影する際に時系列的に得られた複数の画像の連なりを母集合として設定し、設定された母集合において、特定ターゲットにアクセスできたか否かを教師データとして、生成された推論モデルを記憶し(例えば、図6のS35参照)、被写体を画像データに変換し(例えば、図6のS3参照)、画像データに変換した際に、記憶された推論モデルによる推論の結果を表示部に表示する(例えば、図6のS11参照)。
なお、本発明の一実施形態や変形例においては、学習装置における学習は、深層学習を行っていたが、これに限らず、機械学習等の人工知能を利用した学習であればよい。本発明の一実施形態や変形例においては、学習部はカメラから学習依頼(リクエスト)を受信していたが(例えば、図6のS31、S32、図7のS41参照)、これらの装置に限らず、パーソナルコンピュータ、携帯型情報機器(スマートフォンを含む)等の外部機器から、学習依頼(リクエスト)を受信するようにしてもよい。
また、推論エンジン12はカメラ10内に設けられ、撮像部10によって取得された画像データを入力して推論を行っていた。しかし、これに限らず、推論エンジン12を外部機器20内に設け、カメラ撮像部10によって取得された画像データを、通信部13、22を通じて外部機器20に送信し、外部機器20内の推論エンジンによって撮影ガイド等の推論を行ってもよい。この場合には、推論結果を、通信部22、13を通じてカメラ10に送信し、表示部14に表示すればよい。
また、本実施形態においては、撮影のための機器として、デジタルカメラを用いて説明したが、カメラとしては、デジタル一眼レフカメラでもミラーレスカメラでもコンパクトデジタルカメラでもよく、ビデオカメラ、ムービーカメラのような動画用のカメラでもよく、さらに、携帯電話、スマートフォン、携帯情報端末、パーソナルコンピュータ(PC)、タブレット型コンピュータ、ゲーム機器等に内蔵されるカメラ、医療用カメラ、顕微鏡等の科学機器用のカメラ、自動車搭載用カメラ、監視用カメラでも構わない。いずれにしても、画像データを入力可能であり、また外部画像データベースに直接的または間接的にアクセスすることが可能な機器であれば、本発明を適用することができる。
また、近年は、様々な判断基準を一括して判定できるような人工知能が用いられる事が多く、ここで示したフローチャートの各分岐などを一括して行うような改良もまた、本発明の範疇に入るものであることは言うまでもない。そうした制御に対して、ユーザが善し悪しを入力可能であれば、ユーザの嗜好を学習して、そのユーザにふさわしい方向に、本願で示した実施形態はカスタマイズすることが可能である。
なお、実施例中で、「部」(セクションやユニット)として記載した部分は、専用の回路や、複数の汎用の回路を組み合わせて構成してもよく、必要に応じて、予めプログラムされたソフトウェアに従って動作を行うマイコン、CPUなどのプロセッサ、あるいはFPGAなどシーケンサを組み合わせて構成されてもよい。また、その制御の一部または全部を外部の装置が引き受けるような設計も可能で、この場合、有線や無線の通信回路が介在する。通信は、ブルートゥース(登録商標)やWiFi、電話回線などで行えばよく、USBなどで行っても良い。専用の回路、汎用の回路や制御部を一体としてASICとして構成してもよい。移動部などは、様々なアクチュエータと、必要に応じて移動用の連結メカニズムによって構成されており、ドライバ回路によってアクチュエータが作動する。このドライブ回路もまた、特定のプログラムに従ってマイコンやASICなどが制御する。こうした制御は各種センサやその周辺回路が出力する情報によって、詳細な補正、調整などが行われても良い。
また、深層学習として説明した部分は、機械学習と言ってもよく、または人工知能を使わず、推論モデルを使わずに応用することができることは言うまでもない。すでに説明したように、画像の変化の差異から速い遅い、モデルと違う、右、左、上、下、あるいは斜めといった単純な一般的なガイドを出すだけであれば、単純なフローチャートの分岐などで対応が可能である。ただし、機械学習を使えば、厳密に同じ状況でなくとも、信頼性の高い推論が可能となる。
また、本明細書において説明した技術のうち、主にフローチャートで説明した制御に関しては、プログラムで設定可能であることが多く、記録媒体や記録部に収められる場合もある。この記録媒体、記録部への記録の仕方は、製品出荷時に記録してもよく、配布された記録媒体を利用してもよく、インターネットを介してダウンロードしたものでもよい。
また、本発明の一実施形態においては、フローチャートを用いて、本実施形態における動作を説明したが、処理手順は、順番を変えてもよく、また、いずれかのステップを省略してもよく、ステップを追加してもよく、さらに各ステップ内における具体的な処理内容を変更してもよい。
また、特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず」、「次に」等の順番を表現する言葉を用いて説明したとしても、特に説明していない箇所では、この順で実施することが必須であることを意味するものではない。
本発明は、上記実施形態にそのまま限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素の幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。特に、音声認識を含む生体反応を利用した操作などはそれぞれにふさわしいセンサやインターフェースや判定回路が必要になるが煩雑になるのを避けて特に記載していないが、これらのユーザの手動操作を代用しうる様々な改良技術、代替技術によってもまた、本発明は達成が可能であることを付記しておく。