(57)【要約】【課題】  ユーザの意図に合わせた撮影制御を行う撮影装置を提供することを目的とする。【解決手段】  上記課題を解決する本発明にかかる撮影装置は、撮影に関する機能を設定する制御情報を学習モデルによって推定する撮影装置であって、前記学習モデルに従って前記機能を設定された前記撮影装置において、撮影を確定する第１操作または撮影を中断する第２操作を検知する検知手段と、強化学習を用いて、前記検知手段によって前記第１の操作を受け付けた場合は正の報酬を、前記検知手段によって前記第２の操作を受け付けた場合は負の報酬を、決定することによって前記学習モデルのパラメータを更新する学習手段とを有することを特徴とする。【選択図】  図３
2020005190.tif 000002
【特許請求の範囲】
【請求項１】
撮影に関する機能を設定する制御情報を学習モデルによって推定する撮影装置であって、
前記学習モデルに従って前記機能を設定された前記撮影装置において、撮影を確定する第１操作または撮影を中断する第２操作を検知する検知手段と、
強化学習を用いて、前記検知手段によって前記第１の操作を受け付けた場合は正の報酬を、前記検知手段によって前記第２の操作を受け付けた場合は負の報酬を、決定することによって前記学習モデルのパラメータを更新する学習手段とを有することを特徴とする撮影装置。
【請求項２】
前記検知手段は、前記撮影装置が具備するシャッターボタンを第１の状態にする前記第１操作と、前記シャッターボタンを第２の状態にする前記第２操作とを検知することを特徴とする請求項１に記載の撮影装置。
【請求項３】
前記学習モデルに基づいて、画像から該制御情報を推定する推定手段を更に有することを特徴とする請求項１または２に記載の撮影装置。
【請求項４】
前記推定手段によって推定された前記制御情報に従って、前記撮影装置の前記機能を設定する制御手段を更に有することを特徴とする請求項３に記載の撮影装置。
【請求項５】
前記学習モデルのパラメータであって、画像に応じて設定される撮影モードに対応する該パラメータを、少なくとも１つ以上、記憶する記憶手段を更に有することを特徴とする請求項１に記載の撮影装置。
【請求項６】
前記撮影モードを切り替える切替部を更に有し、
前記学習手段は、複数の前記学習モデルのパラメータのうち、前記撮影モードに対応した前記学習モデルのパラメータを更新することを特徴とする請求項５に記載の撮影装置。
【請求項７】
前記撮影モードを設定する第２の学習モデルを有し、前記画像に対応する前記撮影モードを正解の教師データとして、前記第２の学習モデルのパラメータを更新する第２の学習手段を更に有することを特徴とする請求項５または６に記載の撮影装置。
【請求項８】
前記学習手段は、前記撮影装置のフォーカス機能における制御を推定する前記学習モデルのパラメータを更新することを特徴とする請求項１乃至７のいずれか１項に記載の撮影装置。
【請求項９】
撮影に関する機能を設定する制御情報を学習モデルによって推定する撮影装置であって、
画像が保存される第３操作または画像が削除または修正される第４操作とを取得する取得手段と、
強化学習を用いて、前記検知手段によって前記第３の操作を受け付けた場合は正の報酬を、前記検知手段によって前記第４の操作を受け付けた場合は負の報酬を、決定することによって前記学習モデルのパラメータを更新する学習手段とを有することを特徴とする撮影装置。
【請求項１０】
撮影に関する機能を設定する制御情報を学習モデルによって推定する撮影装置であって、
特定の被写体を撮影した被写体画像を記憶する記憶手段と、
前記被写体を撮影した撮影画像を取得する取得手段と、
前記記憶手段に記憶された前記被写体画像における前記被写体の画像特徴と、前記取得手段によって取得された前記被写体を含む撮影画像における画像特徴とを照合する照合手段と、
強化学習を用いて、前記照合手段によって前記被写体が検出された場合には正の報酬を、前記照合手段によって前記被写体が検出されなかった場合には負の報酬を、を決定することによって学習モデルのパラメータを更新する学習手段とを有することを特徴とする撮影装置。
【請求項１１】
コンピュータを請求項１乃至１０の何れか１項に記載の撮影装置が有する各手段として機能させるためのプログラム。
【請求項１２】
撮影に関する機能を設定する制御情報を学習モデルによって推定する撮影装置の制御方法であって、
前記学習モデルに従って前記機能を設定された前記撮影装置において、撮影を確定する第１操作または撮影を中断する第２操作を検知する検知工程と、
強化学習を用いて、前記検知工程で前記第１の操作を受け付けた場合は正の報酬を、前記検知工程で前記第２の操作を受け付けた場合は負の報酬を、決定することによって前記学習モデルのパラメータを更新する学習工程とを有することを特徴とする撮影装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
撮影装置の撮影機能を制御する技術に関する。
【背景技術】
【０００２】
カメラには従来から、撮影結果に影響を与えるさまざまな撮影機能が備わっている。例えば、被写体に合焦させるためのフォーカス調節、撮影結果の明るさを決めるための露出調整、ボケ具合を調節するための絞り調節、などである。近年のデジタルカメラでは、これらの調節機能をカメラ側で自動設定することが行われている。例えば人物の顔検出処理を行い、その検出位置にフォーカスを合わせる機能である。
【０００３】
特許文献１では、撮影したときに焦点の合っている領域の物体が何であるかを特定してその情報をテーブルに記憶しておき、そのあとの撮影に関しては、テーブルに高頻度で記憶されている物体に関して、優先的にフォーカスを合わせる方法が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１６−６１８８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
フォーカス機能を含むカメラのさまざまな設定を自動制御しようとすると、従来のルールベースの方法ではユーザの意図通りの撮影結果を得ることが難しい場合がある。例えば、複数の被写体が写った画像においてフォーカスしたい被写体がユーザ毎に異なる場合があるため、特許文献１の方法では、ユーザの意図通りの撮影ができない可能性がある。
【０００６】
本発明は上記課題に鑑みてなされたものであり、ユーザの意図に合わせた撮影制御を行う撮影装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決する本発明にかかる撮影装置は、撮影に関する機能を設定する制御情報を学習モデルによって推定する撮影装置であって、前記学習モデルに従って前記機能を設定された前記撮影装置において、撮影を確定する第１操作または撮影を中断する第２操作を検知する検知手段と、強化学習を用いて、前記検知手段によって前記第１の操作を受け付けた場合は正の報酬を、前記検知手段によって前記第２の操作を受け付けた場合は負の報酬を、決定することによって前記学習モデルのパラメータを更新する学習手段とを有することを特徴とする。
【発明の効果】
【０００８】
本発明により、ユーザの意図に合わせた撮影制御を行うことができる。
【図面の簡単な説明】
【０００９】
【図１】強化学習を説明する図
【図２】ハードウエアの構成例を説明するブロック図
【図３】撮影装置の機能構成例を説明するブロック図
【図４】撮影置が実行する処理の流れを説明するフローチャート
【図５】ＣＮＮを説明する図
【図６】ＣＮＮの出力層の例
【図７】複数時刻の情報を入力するためのＣＮＮ構成例
【図８】撮影装置の機能構成例を説明するブロック図
【図９】撮影装置の機能構成例を説明するブロック図
【図１０】撮影装置が実行する処理の流れを説明するフローチャート
【図１１】撮影装置の機能構成例を説明するブロック図
【図１２】撮影装置が実行する処理の流れを説明するフローチャート
【図１３】ユーザが行う操作を説明する図
【図１４】撮影装置の機能構成例を説明するブロック図
【図１５】撮影装置が実行する処理の流れを説明するフローチャート
【図１６】撮影装置が実行する撮影制御を説明する図
【図１７】撮影モードを説明する図
【図１８】照合部の処理を説明する図
【図１９】学習部の処理を説明する図
【発明を実施するための形態】
【００１０】
＜実施形態１＞
実施形態の説明に先立って、強化学習について説明する。図１（ａ）に強化学習のモデルを示す。本実施形態での強化学習では、ある環境における撮影装置１０００が、取得部１２００で時刻ｔにおける現在の状態Ｓを取得（観測）する。撮影装置でユーザが好む画像が得られる設定に変更する行動（制御部１４００で実行する制御指示）Ａを、推定部１３００で推定する。環境とは、有限個の状態ｓの集合Ｓから成るとする。例えば、撮影装置１０００が撮影しようとしている画像や、撮影装置１０００の設定を指すものとする。撮影装置１０００とは、学習を行う主体であり、有限種類の行動の集合Ａの中から１つを選択して実行し、その結果として環境が次の状態に遷移する。上の撮影装置１０００の例では、フォーカスする位置を制御するといった制御が行動に該当する。状態Ｓ（Ｓｔａｔｕｓ）とは、撮影装置１０００が置かれる状況である。
【００１１】
図１（ｂ）に状態と制御の関係を説明する。撮影装置の状態の集合Ｓは、撮影装置の各機能ｉの状態ｓｉの集合で表現される。例えば、撮影装置のフォーカス機能（機能ｉ＝１）については、レンズの位置（例えば、センサの位置を原点に設定し、０からｘまでを可動範囲とする）が状態ｓ１である。行動Ａ（ａｃｔｉｏｎ）とは、撮影装置１０００が実行する制御を指す。図１（ｂ）に撮影装置１０００のフォーカス機能の制御の例を示す。フォーカス機能に対応する行動（制御）は、レンズをセンサ側に動かす場合はマイナス、レンズをセンサと反対側に動かす場合はプラスとする。このとき、レンズの行動（制御）は、＋１、０、（−１）の３つの選択肢がある。なお、数字の１は一例である。報酬ｒとは、環境から撮影装置が得る報酬である。報酬ｒを決定する報酬関数は状態ｓｔと行動ａｔのペアで決定される関数で、時刻ｔにおける、ある状態ｓｔで、ある行動ａｔをとって、状態ｓｔ＋１になって得られる報酬ｒｔを返す。撮影装置は、報酬が最大になるような行動（制御）を行う。ユーザの直観的な操作を報酬として利用できるため、ユーザに合わせた制御を学習できる。本実施形態で説明する強化学習では、ユーザによる簡単な操作で報酬を決定できるため容易に学習できる。
【００１２】
図２に基づいて本実施形態における撮影装置のハードウエアの構成例を説明する。中央処理ユニット（ＣＰＵ）１０１は、ＲＡＭ１０３をワークメモリとして、ＲＯＭ１０２や記憶装置１０４に格納されたＯＳやその他プログラムを読みだして実行し、システムバス１０９に接続された各構成を制御して、各種処理の演算や論理判断などを行う。ＣＰＵ１０１が実行する処理には、実施形態の情報処理が含まれる。記憶装置１０４は、ハードディスクドライブや外部記憶装置などであり、実施形態の処理にかかるプログラムや各種データを記憶する。入力部１０５は、カメラなどの撮影装置、ユーザ指示を入力するためのボタン、キーボード、タッチパネルなどの入力デバイスである。なお、記憶装置１０４は例えばＳＡＴＡなどのインタフェイスを介して、入力部１０５は例えばＵＳＢなどのシリアルバスを介して、それぞれシステムバス１０９に接続されるが、それらの詳細は省略する。通信Ｉ／Ｆ１０６は無線通信で外部の機器と通信を行う。表示部１０７はディスプレイである。センサ１０８は画像センサである。センサはこれ以外にも、例えば、距離センサや、ジャイロセンサや、オドメトリセンサを備えていてもよい。
【００１３】
図３に沿って、本実施形態における撮影装置１０００の機能構成例の概要を説明する。処理内容の具体的な詳細については後述する。本実施形態における撮影装置１０００は、検知部１１００、取得部１２００、推定部１３００、制御部１４００、学習部２０００、記憶部５０００から構成される。撮影装置１０００としてもっとも一般的な例はデジタルカメラである。それ以外にも、携帯電話やスマートフォンに装備されたカメラや、タブレットやノートＰＣなどに内装されたカメラなどでもよい。次に、各機能構成の概略を説明する。検知部１１００は、本撮影装置に対してユーザが行った操作を検知する。取得部１２００は、被写体を含む画像を撮影し、その画像の画像を含む撮影時情報および撮影装置のユーザ設定情報を取得する。撮影時情報とユーザ設定情報については、具体例を後述する。推定部１３００は、撮影画像から撮影装置の撮影機能を設定する制御情報を推定する学習モデルに基づいて、取得部１２００で取得された撮影時情報とユーザ設定情報から、被写体を撮影する際の撮影機能を設定する制御情報を推定する。制御部１４００は、推定部１３００で推定された制御情報に従って、撮影装置の設定を制御する。検知部１１００は、撮影を確定する第１操作と、撮影を中断する第２操作を検知する。学習部２０００は、検知部１１００で検知された操作に基づいて決定された報酬で強化学習を行い、学習モデルのパラメータを更新する。学習によって更新された学習モデルのパラメータは、記憶部５０００に記憶される。また記憶部５０００は、撮影開始検知時から、ユーザの所定の操作（シャッターボタンを押して撮影を確定させる操作、シャッターボタンを解除して撮影を中断する操作）が行われる時までの画像を記憶する。なお、学習部２０００、記憶部５０００は撮影装置１０００の外部にある情報処理装置が有していてもよい。例えば、撮影装置外部にあるＰＣや携帯端末、あるいはサーバの中にあってもよい。撮影装置外部に学習部２０００がある場合には、推定部１３００のパラメータ、撮影時情報とユーザ設定情報、検知ステップで得られたユーザ操作の情報が、撮影装置外部の学習部２０００に無線もしくは有線によって送信され、処理を行うこととなる。
【００１４】
図１６は撮影装置が実行する撮影制御の一例を説明する。ユーザである撮影者が、撮影装置１０００を用いて、図１６（ａ）における景色７と被写体６を撮影する場面を想定する。画像１６０と画像１６１は撮影装置１０００のライブビューで表示される画像である。画像１６０は、設定Ｓ１の設定値が適用されており（例えば露出が＋１）、画像が肉眼で見た明るさより少し明るい画像になっているものとする。対して画像１６１は、設定Ｓ４の設定値が適用されており（例えば露出がー１）であり、画像１６０と比較して画像全体が暗く映っているとする。このように撮影装置１０００の設定に依存して、得られる画像は異なる。ここで、撮影者が画像１６２に示すような写真を撮影したいと所望したとする。画像１６２は、設定Ｓ３の設定値が適用された場合に得られる画像であって（例えば露出が０）画像１６０と画像１６１の中間程度の明るさの画像であるとする。また撮影者は、画像１６２のようなライブビュー画像が表示されたタイミングで撮影を確定させる。
【００１５】
推定部１３００は、撮影装置１０００の撮影設定を推定する強化学習の学習モデルであるとする。学習モデル１３００は、様々な制御Ａｎを出力する。図１６（ｂ）では、撮影装置１０００が、画像１６０が得られる設定（状態）Ｓ１から画像１６２のようなライブビュー画像が生成される設定（状態）をマイナスの方向に変更する撮影制御Ａ１を選択した場合を考える。このとき撮影装置１０００は、撮影者によってシャッターボタンが押される操作を検知し、撮影を確定させる。学習モデル１３００は、シャッターボタンが押されたことを検知すると、正の報酬を与え制御Ａ１を学習する。この報酬によって、画像１６０に対しては設定Ｓ３になるような制御Ａ１が望ましいことを学習できる。図１６（ｄ）では、同様に、画像１６１が得られたときは、露出を上げる（＋）制御Ａ３を選択した場合に、撮影者によってシャッターボタンが押され、撮影が確定する。一方で、図１６（ｃ）では、推定部１３００の出力の結果のうち、露出を上げる（＋）制御Ａ２が選択された場合を考える。このとき、画像１６３のように設定Ｓ２（例えば露出が＋２）に設定され、全体的に明るい画像になる。この場合、撮影者は撮影を中断する為に、シャッターボタンから指をいったん離す。撮影者によってシャッターボタンが解除されたことを検知すると、推定部１３００は、負の報酬を与え制御Ａ２を選択しないように学習する。これらの学習を繰りかえすことにより、強化学習を用いて学習モデルのパラメータが更新され、撮影装置は撮影制御を学習できる。
【００１６】
以下に図４（ａ）の撮影装置１０００が実行する処理の流れを示すフローチャートに従って詳細な説明を記す。以下の説明では、各工程（ステップ）について先頭にＳを付けて表記することで、工程（ステップ）の表記を省略する。ただし、撮影装置１０００は必ずしもこのフローチャートで説明するすべてのステップを行わなくてもよい。なお、図４のフローチャートに示した処理は、コンピュータである図２のＣＰＵ１０１により記憶装置１０４に格納されているコンピュータプログラムに従って実行される。
【００１７】
Ｓ１０１０では、検知部１１００が、撮影開始操作を検知する。撮影装置がユーザの撮影開始操作を検知し、Ｓ１０２０が開始される。ユーザによる撮影開始操作とは、たとえば、カメラのシャッターボタンの半押しを開始する操作が挙げられる。Ｓ１０２０における撮影時刻はｔ＝１に初期化される。記憶部５０００から、推定部１３００が制御情報を推定する学習モデルのパラメータ（後述するニューラルネットワークの各層の結合重み付け）が読み込まれる。
【００１８】
Ｓ１０２０は、Ｓ１０２１、Ｓ１０２２、Ｓ１０２３、Ｓ１０２４、Ｓ１０２５から成り、ユーザによってシャッターボタンが半押しされている間はこれらのステップが繰り返し行われる。図４（ｂ）を用いて説明する。
【００１９】
Ｓ１０２１では、取得部１２００が、画像を含む撮影時情報と、撮影前にユーザが設定するユーザ設定情報を取得する。画像は、時系列データとして撮影装置に保持される。なお、撮影時情報とユーザ設定情報は様々なものが考えられる。撮影時情報のもっとも端的なものは、任意の時刻において画像センサから得られる被写体の画像と、その前後の時刻における画像である。時系列画像を取得するため、学習モデルはその場に相応しい設定をその都度学習できる。その他にも撮影装置から得られるさまざまな情報を扱うことができる。例えば、像面位相差から得られるデプス情報や、画像内の局所領域におけるコントラストの強さを領域ごとに算出したコントラストマップ、レンズのフォーカス位置などがある。画像全体の輝度絶対値であるＢｖ値なども、撮影時情報として扱うことができる。これらの情報は、撮影を行っている間は図示しない保持部に保持され、学習時に学習モデルの入力情報となる。また、画像情報を入力として得られる各種認識結果を撮影時情報の一種としてもよい。例えば、顔や人体の検出結果や、動物や自動車、飛行機などの特定物体の検出結果、画像認識結果などを撮影時情報として扱ってもよい。ユーザ設定情報は、ユーザが撮影ステップを開始する際に行った設定に関する情報である。例えば、ユーザによって選択された撮影モード（マクロモード、夜景モード、スポーツモード、など）や、露出設定、ホワイトバランスモード、などが考えられる。
【００２０】
Ｓ１０２２では、推定部１３００が、学習モデルに基づいて、撮影時情報とユーザ設定情報から、撮影装置の撮影に関する機能の設定（フォーカス機能であればレンズの位置）を制御する制御情報を推定する。フォーカス動作の制御情報以外にも、設定される制御情報はさまざまなものが想定されるが、たとえば露出設定値、ゲイン調整値、などが考えられる。後述するＳ１０３０にて、撮影時情報やユーザ設定情報を変化させることのできるものであれば、制御情報を推定する方法を特に限定されるものではない。ここでは具体的に、学習モデルのひとつであるＣＮＮ（Ｃｏｎｖｏｌｕｔｉｏｎａｌ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ）によって制御情報を推定する例を説明する。推定部１３００に学習モデルを採用するメリットは次のような点がある。例えば、予めプロの撮影者の撮影動作を学習させた学習モデルを利用することによって、撮影者は初期設定から撮影に関する機能の設定が最適な状態で撮影できる。さらに、撮影者にとっては簡単な撮影動作だけで学習モデルのパラメータが更新され、特定の撮影者に相応しい設定を習得できる。
【００２１】
図５に、ＣＮＮによって撮影に関する機能を設定する制御情報を推定する推定部１３００の例を示す。ネットワーク構造５はＣＮＮである。２１００はＣＮＮで構成される推定部１３００の入力層である。入力層２１００は、入力画像のサイズに対応する撮影時情報を入力するマップ入力部２１１０と、画像全体に対してスカラ値もしくはベクトル値で与えられる撮影時情報およびユーザ設定情報を列挙した、スカラ／ベクトル入力部２１２０で構成される。畳込み層２２００は、少なくとも一つの層から構成される畳み込み層２２１０、少なくとも一つの層から構成される逆畳み込み層２２２０、そして、少なくとも一つの層から構成される完全結合層２２３０からなるＣＮＮである。これらＣＮＮの各層は、少なくとも一つ以上の素子から構成されている。畳み込み層２２１０内部の各層は、畳み込みによって順番に結合している。畳み込み層２２１０の最終層２２１２は、逆畳み込みによって逆畳み込み層２２２０の最下層２２２１と結合している。逆畳み込み層２２２０内部の各層は、逆畳み込み結合によって順番に結合している。また、畳み込み層の最終層２２１２のすべての素子は、完全結合層２２３０の最下層２２３１のすべての素子と完全結合している。完全結合層２２３０は複数の層から成り、各層は完全結合によって順番に結合している。層間の各結合は、結合重みを伴っている。この結合重みは、ＣＮＮのパラメータであり、Ｓ１０１０開始時に記憶部５０００より読み込まれる。後述のＳ１０３０で行われる学習処理では、ＣＮＮのパラメータが更新される。パラメータの初期値はランダムに与えてもよいし、ルールベースで得られる値であらかじめ学習しておいてもよい。あるいは、プロカメラマンによって学習させた結果得られた値を初期値として与えておいてもよい。この場合、どんなユーザでもプロが撮ったような写真を撮ることが出来る。マップ入力部２１１０は、畳み込み層２２１０の最下層２２１１と、畳み込み結合によって結合している。スカラ／ベクトル入力部２１２０は、畳み込み層２２１０の各層の各素子に対して、バイアス信号として入力される。
【００２２】
マップ入力部２１１０に入力される撮影時情報としてはさまざまなものが考えられる。例えば、ＲＧＢ画像、あるいは現像処理前の画素単位の撮像画像信号（ＲＡＷ画像）や画像のデプス情報、物体検出器による物体検出スコアのマップ、画像の局所領域における分散値から得られるコントラストマップ、などが挙げられる。スカラ／ベクトル入力部２１２０に入力される撮影時情報もさまざまなものが考えられる。例えば、画像全体の輝度絶対値（Ｂｖ値）、画像認識器による認識結果、レンズのフォーカス位置、などがある。また、スカラ／ベクトル入力部２１２０には、カメラの撮影モード、露出設定、ホワイトバランス係数、といったユーザ設定情報も入力できる。しかしながら本発明は、これらさまざまな撮影時情報およびユーザ設定情報の組み合わせに対して限定されるものではない。
【００２３】
図６に本実施形態におけるＣＮＮの出力層の例を示す。２３００は出力層である。出力層２３００は、マップ出力部２３１０と、スカラ／ベクトル出力部２３２０から構成される。マップ出力部２３１０は、入力画像のサイズに対応するマップ形式で出力信号（制御情報）を出力する。スカラ／ベクトル出力部２３２０は、入力画像に対してスカラ値もしくはベクトル値による出力信号を出力する。マップ出力部２３１０の各マップは、逆畳み込み層２２２０の最終層２２２２と、逆畳み込み結合で結合している。スカラ／ベクトル出力部２３２０の各素子は、完全結合層の最終層２２３２の信号を受け取り、出力する。マップ出力部２３１０には、撮影装置の制御の選択肢に対して、画像上の各位置に対する確率が出力される。例えば、マップ出力部２３１０の出力として、フォーカス動作を確率的に定義するために、図６のように、３枚のマップ２３１１ａ、２３１１ｂ、２３１１ｃを用意する。マップ２３１１ａ、２３１１ｂ、２３１１ｃは、それぞれフォーカスを手前に動かす／静止させる／奥側へ動かす、といった動作のためのマップである。マップ２３１１ａ、２３１１ｂ、２３１１ｃの出力値は、画像上のどの位置をフォーカス制御点として設定し、フォーカス用のレンズモーターを手前／奥のどちらに動かすか、という制御動作の選択肢を確率的に表している。マップの出力がピーキーであれば、より確実にピークに相当する制御動作が選ばれることになる。マップの出力が広く似たような値で分布していれば、より広くランダムに制御動作が選ばれることになる。
【００２４】
スカラ／ベクトル出力部２３２０には、画像上の位置に依存しない撮影装置の制御に関して、その選択肢の確率が出力される。例えば、スカラ・ベクトル出力部の２３２０の出力として、図６のように、露出制御端子２３２１ａ〜ｃ、ゲイン調整端子２３２２ａ〜ｃ、絞り調整端子２３２３ａ〜ｃを用意する。露出制御するための３つの端子２３２１ａ、２３２１ｂ、２３２１ｃはそれぞれ、露出時間をさらに多くする／変えない／少なくする、という動作に対応する。ゲイン調整制御するための３つの端子２３２２ａ、２３２２ｂ、２３２２ｃはそれぞれ、撮像センサのゲインを上げる／変えない／下げる、という動作に対応する。絞り調整制御するための３つの端子２３２３ａ、２３２３ｂ、２３２３ｃはそれぞれ、レンズの絞りを現状の状態から絞る／変えない／開ける、という動作に対応する。
【００２５】
なお図７は、複数時刻における撮影時情報を入力するためのＣＮＮの構成例を説明する図である。Ｓ１０２０における複数の時刻に関する撮影時情報およびユーザ設定情報を、図７（ａ）のように入力層へ入力してもよい。例えば、現時刻ｔにおける撮影時情報およびユーザ設定情報をＳｔとしたときに、Ｔフレーム前の時刻ｔ−Ｔまでの情報Ｓｔ、Ｓｔ−１、・・・Ｓｔ−Ｔを利用してもよい。また、直前の時刻ｔ−１からｔ−Ｔまでの出力層の出力結果（制御情報）を、図７（ｂ）のように入力層に与えてもよい。図７のように、現時刻ｔの入力層における状態がＳｔのとき、マップ出力部２３１０のｉ番目の機能におけるｋ番目の動作に関する出力をＱｉ，ｋ（Ｓｔ，（ｘ，ｙ））と書くこととする。（ｘ，ｙ）はマップ上の座標で、画像上の位置に対応する。例えばフォーカス動作のためのマップに機能インデックスｉ＝１を割り当て、フォーカスを手前側に動かす２３１１ａ／動かさない２３１１ｂ／奥側へ動かす２３１１ｃのそれぞれのマップに対して、ｋ＝１，２，３と割り当てる。その場合、例えば、フォーカス制御点を（ｘ，ｙ）として、フォーカスを手前に動かす制御に関する出力は、Ｑ１，１（Ｓｔ，（ｘ，ｙ））と表される。
【００２６】
ここで挙げた説明は出力層の一例であって、本発明はその組み合わせによって制限されるものではない。現時刻ｔの入力層における状態がＳｔのとき、スカラ／ベクトル出力層２３２０のｊ番目の機能におけるｈ番目の動作に関する制御情報をＱｊ，ｈ（Ｓｔ）と書くこととする。例えば露出制御動作に機能インデックスｊ＝１を割り当て、露出を多くする２３２１ａ／変えない２３２１ｂ／少なくする２３２１ｃのそれぞれの動作に対して、ｈ＝１，２，３と割り当てる。その場合、例えば、露出を多くする制御に関する出力は、Ｑ１，１（Ｓｔ）と表される。現時刻ｔにおける撮影時情報およびユーザ設定情報が入力層２１００に入力される。すると、その情報ＳｔがＣＮＮを通して伝達され、出力層２３００の各マップ出力部２３１０およびスカラ／ベクトル出力部２３２０から出力信号Ｑｉ，ｋ（Ｓｔ，（ｘ，ｙ））およびＱｊ，ｈ（Ｓｔ）が得られる。
【００２７】
Ｓ１０２３では、制御部１４００が、推定部１３００の制御情報に従って、撮影装置の設定を制御する。現時刻ｔにおけるマップ出力部２３１０の各機能ｉにおける制御動作Ａｔ，ｉとして、位置（ｘ，ｙ）による制御行動ｋが選択される確率は、下記のようになる。
【００２８】
【数１】
2020005190.tif 000003
【００２９】
同様に、現時刻ｔ０におけるスカラ／ベクトル出力部２３２０の各機能ｊにおける制御動作Ａｔ，ｊとして、制御行動ｈが選択される確率は、下記のようになる。
【００３０】
【数２】
2020005190.tif 000004
【００３１】
このようにして、各機能は出力層の値に比例した確率で動作が選択され、フォーカス動作や露出制御、ゲイン調整、絞り調整などの各制御動作が実行される。確率的に制御を選択することによって、矛盾した制御情報が出力されてもひとつの行動を決定できる。
【００３２】
Ｓ１０２４では、検知部１１００が、ユーザが行った操作を検知する。本実施形態では、ユーザによって撮影を確定する動作を第１の操作として検知する。ここでは、撮影を確定する動作として、ユーザによってシャッターボタンボタンが深く押される動作を第１の操作として検知する。撮影装置が具備するシャッターボタンボタンは、深押しされた状態（第１の状態）、解除された状態（第２の状態）、半押しの状態があるものとする。撮影を中断する動作を第２の操作とする。ここでは、ユーザがシャッターボタンボタンの半押しを解除する動作を検知する。このようなユーザの直観的な操作を検知することによって、特別な操作をしなくても報酬を決定できる。なお、ユーザの動作はこれに限らない。例えば、シャッターボタンボタンがタッチパネルに表示される撮影装置の場合は以下のような操作が考えられる。Ｓ１０１０の撮影開始指示は被写体をタッチする操作である。撮影する指示は画面に表示されるシャッターボタンボタンをタッチする操作である。撮影を中止する指示はキャンセルボタンをタッチする操作である。
【００３３】
Ｓ１０２５では、検知部１１００が、撮像を継続するか判断する。検知部１１１０は、シャッターボタンが半押された状態を検知した場合は、撮影を継続するものとし、撮影時刻をｔ←ｔ＋１と加算して、Ｓ１０２１へと戻る。撮影実行命令すなわちシャッターボタンを深押し（第１操作）を検知した場合、あるいは、撮像中断命令すなわちシャッターボタンから手を放した（第２操作）を検知した場合には、撮影を終了しＳ１０３０へと進む。
【００３４】
Ｓ１０３０では、学習部２０００が、撮影を確定させる第１操作を検知した場合、正の報酬を、撮影を中断させる第２操作を検知した場合、負の報酬を決定する。さらに、決定された報酬によって学習モデルのパラメータを更新する。すなわち、検知部１１００で得られたユーザ操作に基づき撮影制御を学習する。Ｓ１０２４にてユーザが撮影実行命令（第１操作）を出した場合には、ここまでの撮影ステップが正しかったとみなして、「報酬」（正の報酬）を与える。撮像中断命令（第２操作）だった場合には、ユーザがここまでの撮影ステップを不適と判断したものとして、「罰」（負の報酬）を与える。これにより、撮影装置の撮影ステップ中に行われた制御動作について強化学習する。このようにユーザの直観的な操作から報酬を決定するため、報酬を設定するといった特別な手順を踏まなくても簡単に学習を行える。
【００３５】
撮影終了時の最終フレームにおける時刻をｔ０とする。Ｓ１０２０が実行されている時間ｔ＝ｔ０、ｔ０−１、・・・ｔ・・・１におけるそれぞれの制御情報に対して、マップ出力部２３１０とスカラ／ベクトル出力部２３２０、それぞれの行動価値Ｑ’を次のように得る。
【００３６】
Ｑ’ｉ，ｋ（Ｓｔ，（ｘ，ｙ））＝Ｑｉ，ｋ（Ｓｔ，（ｘ，ｙ））＋α｛ｒｔ＋１＋γＱｉ，ｋ（Ｓｔ＋１，（ｘ，ｙ））−Ｑｉ，ｋ（Ｓｔ，（ｘ、ｙ））｝・・・（３）
Ｑ’ｊ，ｈ（Ｓｔ）＝Ｑｊ，ｈ（Ｓｔ）＋α｛ｒｔ＋１＋γＱｊ，ｈ（Ｓｔ＋１）−Ｑｊ，ｈ（Ｓｔ）｝・・・（４）
ただし、（ｘ，ｙ）およびｋは、時刻ｔにおいてマップ出力部２３１０の機能ｉにおいて選択された制御動作Ａｔ，ｉの位置と動作を表す。また、ｈは時刻ｔにおいてスカラ／ベクトル出力部２３２０の制御機能ｊにおいて選択された制御動作Ａｔ，ｊの動作を表す。
【００３７】
Ｓ１０２４で得られたユーザの操作によって、「報酬」が与えられている場合は、ｒ１の値は１などの正の値となる。ｔが１以外の場合には、一律にｒｔ＝０である。一連の撮影制御に対して「罰」が与えられている場合には、ｒ１の値は−１などの負の値となるとなり、ｔが１以外の場合には、一律にｒｔ＝０である。γは時刻を遡る際に各動作に対して与える影響を減衰させるための係数（割引率、０＜γ≦１）で、γ＝０．９などと設定する。これに従って得られたＱ’の値を各出力層に対する報酬として与えると、機能ｉ、ｊおよび制御行動ｋ、ｈに対する誤差は下記のような式であらわされる。
【００３８】
Ｌｉ，ｋ＝（Ｑｉ，ｋ（Ｓｔ，（ｘ，ｙ））−Ｑ’ｉ，ｋ（Ｓｔ，（ｘ，ｙ）））２・・・（５）
Ｌｊ，ｈ＝（Ｑｊ，ｈ（Ｓｔ）−Ｑ’ｊ，ｈ（Ｓｔ））２・・・（６）
これらの誤差関数から、勾配降下法などでＣＮＮ全体を学習させる。学習することで、ＣＮＮのパラメータである結合重みが更新される。更新されたパラメータは、記憶部５０００に記憶される。なお、Ｓ１０２０において撮像された任意の画像を使って学習を行ってもよい。例えば、記憶部は、撮影が開始された第１時刻から、検知部によって第１操作または第２操作が検知された第２の時刻の間に取得された画像を記憶する。学習部は、第１の時刻から第２の時刻の間に取得された画像に対して報酬を与えることによって学習モデルのパラメータを更新する。撮影ステップにおける複数の時刻に関する画像を使って学習するため、短時間で機能の設定ができる。
【００３９】
本実施形態では、ユーザがシャッターボタンを押して撮影を確定する、もしくは撮影を中断する、のいずれかを選択することによって、学習モデルのパラメータが更新される。そのため、本実施形態における撮影装置は、撮影を何度も行っていくことにより、より所望の動作に近い制御動作が得られるようになる。また、本実施形態では撮影を中断した画像についても、負の報酬を決定することによって学習モデルを更新する。そのため、撮影を行わなかった設定についても強化学習ができる。
【００４０】
なお、撮影機能の設定をより迅速に制御する為に、Ｓ１０２０の途中における撮影装置の状態に基づいて所要時間を加味した報酬を加えてもよい。図４（ｂ）のフローチャートに従って説明する。Ｓ１０１０では、検知部１１００が、撮影開始操作を検知する。撮影装置がユーザの撮影開始操作を検知し、Ｓ１０２０が開始される。Ｓ１０２１では取得部１２００が画像を取得し、Ｓ１０２２では推定部１３００が制御情報を推定する。
【００４１】
時刻ｔにおけるフォーカス動作を行った際に、合焦するまでにかかった時間がＦｔであったとする。制御Ｓ１０２３において、制御部１４００は、このＦｔの値を保持しておく。Ｓ１０２３では制御部１４００が撮影制御を行い、Ｓ１０２４では検知部１１００が撮影を確定する第１操作または撮影を中断する第２操作を検知する。Ｓ１０２５では、検知部１１００がユーザ操作の検知結果から判断を行う。ユーザがシャッターボタンを半押しにしたままの場合は、撮影ステップを継続するものとし、撮影時刻をｔ←ｔ＋１と加算して、Ｓ１０２１へと戻る。ユーザが撮影実行命令、すなわちシャッターボタンを深押しした場合、あるいは、撮像中断命令、すなわちシャッターボタンから手を放した場合には、Ｓ１０３０へと進む。
【００４２】
Ｓ１０２０を抜けてＳ１０３０に進んだ時に、学習のための式（３）および式（４）で用いる報酬／罰則ｒｔは均一な値ではなく、下記のようにＦｔによって微修正される。
【００４３】
ｒｔ＝ｒ０−δｔ・・・（７）
ここでδｔは、前述のＦｔで定義される関数で、例えば下記のように設定する。
【００４４】
δｔ＝ηＦｔ・・・（８）
ここでηは正の値のパラメータである。ただし、本発明はδｔの形式によって限定されるものではない。このようにして、Ｓ１０２０の途中における撮影装置の状態に従って、Ｓ１０２０の各時刻における報酬／罰則を変えることによって、それぞれの時刻における制御動作に対する反応も加味した学習を行うことができる。この処理を行うことによって、撮影機能をより迅速に設定できる。
【００４５】
また、図４（ａ）のＳ１０１０において、記憶部５０００が、推定部１３００の学習モデルのパラメータを複数保持してもよい。具体的には、推定部１３００が撮影モードに対応した学習モデルの異なるパラメータ（結合重み）を利用して制御情報を推定する。例えば図８のように、撮影装置１０００は撮影モードを切り替える切替部３１００を有する。切替部３１００は、ユーザによって撮りたい被写体に合わせた撮影モードを選択される。
【００４６】
図１７を用いて、例えば、人物と花を撮影する場合を説明する。画像１５１には、人物１と植物２が写っている。人物１をより鮮明に撮りたいユーザは「人物モード」を選択して撮影する。このとき撮影装置は「人物モード」に対応した学習モデルのパラメータａを使って、人物を撮影するのに適した制御情報を推定する。人物モードにおいては、人物以外にフォーカスが設定された場合、ユーザは撮影を中断する可能性が大きいため、設定Ｓｂに制御する制御Ａａ‘を選択する確率を抑制するように学習する。一方で、ユーザが花２を撮りたい場合は、例えば「風景モード」を選択する。このとき撮影装置は「風景モード」に対応した学習モデルのパラメータｂを使って、花を撮影するのに適した制御情報を推定するとよい。このように用途に応じて学習モデルのパラメータを更新するため、より迅速に学習が行える。また、複数の学習モデルのパラメータを利用することによって、１つの学習モデルを使って制御情報を推定するよりも、ユーザや用途に合わせた細かい設定が可能となる。図８の機能構成例のブロック図に従って説明する。記憶部５０００は、推定部１３００に関するＫ種類のパラメータΘｋ（ｋ＝１・・・Ｋ）が記憶する。これらは撮影モードに対応するものであって、例えば夜景撮影モード、スポーツ撮影モード、スナップショット撮影モード、などがある。切替部３１００は、ユーザの操作、または、取得部１２００によって取得された画像を入力した画像識別器の認識結果、に従って撮影モードを切り替える。ここでは、ユーザによる入力操作に従って撮影モードを切り替える方法を説明する。ユーザは、撮影を開始する前（すなわち、シャッターボタンを半押しする前）に、撮影装置のモード選択機能から撮影モードを選択しておく。選択された撮影モードにしたがって、切替部３１００は撮影モードを切り替える。ここで選択された撮影モードをｋとする。Ｓ１０１０において、取得部１２００は、選択された撮影モードｋに対応する学習モデルのパラメータΘｋを記憶部５０００から取得する。Ｓ１０２０が終了し、Ｓ１０３０では、学習部２０００が学習モデルΘｋを更新する。更新された学習モデルΘｋは記憶部５０００に記憶される。記憶部５０００に記憶されていたΘｋの値は更新される。これにより、画像に応じたそれぞれの撮影モードに対応するパラメータが、別々に学習されることとなる。その結果、撮影モードに応じた撮影設定を迅速に行える。
【００４７】
また、撮影モードのシーン認識処理を、撮影時に同時に学習させてもよい。図９にその機能構成例のブロック図を示す。図３の機能構成に加えて、切替部３１００と第２の学習部３２００をさらに有する。第２の学習部３２００は、切替部３１００が保持する撮影モードの画像認識器を学習する。切替部３１００は、取得部１２００が取得した画像からシーン識別器がシーン認識した結果に従って撮影モードを切り替える。図１０（ａ）と（ｂ）は撮影装置１０００が実行する処理を説明したフローチャートである。図１０（ａ）のＳ１００１０では、切替部３１００が、画像認識器によって認識される画像を選択する。次にＳ１００２０が開始される。Ｓ１００２１では、取得部１２００が、画像を取得する。さらに、選択された撮影モードｋに対応する学習モデルのパラメータΘｋを記憶部５０００から取得する。次にＳ１００３１では、第２の学習部３２００が、前記画像に対して、選択された撮影モードを正解の教師データとして、教師つき学習の方法で、第２の学習モデルのパラメータを更新する。画像認識器における第２の学習モデルは、画像を入力するとその画像に対応する撮影モードを推定するニューラルネットワークに基づくネットワーク構造とそのパラメータである。学習モデルは、画像と、その画像に対応する撮影モードを正解とした教師データを使ってパラメータを更新する。なお、学習モデルのパラメータを更新とは、学習モデルの入力側の層に画像を、出力画像の層に画像に対する正解（ここでは撮影モード）を設定する。そして、ネットワークを経由して算出される出力が設定した正解値に近づくようにネットワークのパラメータを調整する処理を指す。この第２の学習モデルにおける教師データは、例えば、入力画像に、ユーザが過去に選択した撮影モードを正解値として与えた画像である。画像認識器は、ＣＮＮの他、画像からＳＩＦＴやＨＯＧなどの特徴量を抽出し、ＳＶＭで認識してもよい。第２の学習部３２００は、取得部１２００で得られた撮影時情報およびユーザ設定情報を入力データとし、この入力データを、取得部１２００によって取得された画像に対する正解の教師値として、第２の学習モデルのパラメータを更新する。学習によって更新された画像認識器のパラメータは、記憶部５０００に記憶される。このようにして、制御動作とともに、切替部３１００の画像認識器と、制御情報を推定する推定部１３００を、同時に学習する。これにより、画像によって異なる動作制御が自動で選択され、かつ、その制御動作もユーザの意図に近づくように学習されることとなる。
【００４８】
なお、撮影装置の機能構成は上記で説明した構成に限定されるものではない。例えば、学習モデルの更新を行う学習部を外部装置が有してもよい。Ｓ１０３０を、ＰＣ等の外部装置で行ってもよい。その場合、画像ファイルをＰＣにアップロードするときに、推定部１３００のパラメータを一緒にＰＣに送る。上記学習処理はＰＣにおいて行われ、送られてきたパラメータを更新する。学習結果として得られたパラメータは撮影装置に送信され、撮影装置における推定部１３００は、受信したパラメータによって更新される。処理能力の高いＰＣ等の外部装置が学習処理を行うことによって、効率よく学習を行える。
【００４９】
なお、本実施形態は、例えば、ユーザがプロのカメラマンや中上級のアマチュアカメラマンである場合は、設定の微調整に手間取ると、スポーツ画像や動物等の素早い被写体を撮影する場合でもシャッターボタンチャンスを逃がす恐れがある。本実施形態における撮影装置を用いることで、上記のユーザの好みに合わせた設定を迅速に行える。一方で、失敗が多い初心者のカメラユーザの場合、好ましくない制御情報を学習してしまう可能性がある。その場合は、ユーザの設定によって、学習機能を抑制してもよい。写真を撮った枚数、もしくはカメラの起動時間に応じて、学習の強度を大きくするようにしてもよい。これによってユーザの経験値や慣れに対応した学習が行える。また、カメラの出荷前に予めプロのカメラマンによって学習を行うようにしてもよい。適切な制御情報を容易に設定できるため、初心者でもすぐにきれいな写真が撮ることが出来る。
【００５０】
＜実施形態２＞
実施形態１では、撮影時におけるユーザ操作に従って、推定部にどのように学習させるのかを決定する例を示した。実施形態２では、撮影後のユーザによるデータ操作に従って学習を行う例を示す。例えば、撮影時に意図した被写体と異なる対象を撮影してしまったとする。そのような場合、ユーザは間違えて撮影してしまった画像を削除や加工するといった操作をする。本実施形態では、この画像を削除するといった操作情報を使って、この画像の撮影制御に対して後から負の報酬を学習モデルに与える。逆に、上手く撮影できた画像に対しては、ユーザはすぐに保存することやお気に入りとして登録することが考えられる。このような画像を保存する操作情報を使って、保存された画像の撮影制御に対して正の報酬を学習モデルに与える。撮影時に意図した撮影制御で撮影できなかった場合でも、撮影後の操作情報を使って撮影制御を出力する学習モデルを更新できる。そのため、シーンに適した撮影制御を学習できる。
【００５１】
図１１に本実施形態の撮影装置の機能構成例を説明するブロック図を示す。まず概略を説明する。図１１（ａ）の機能構成例を示すブロック図には、図３の機能構成に加え、更に評価取得部１６００、画像記憶部５１００を有する。評価取得部１６００は、ユーザによって画像が保存される第１の操作と、ユーザによって画像が削除または修正される第２の操作を取得する。画像記憶部５１００は、過去に撮影した複数の画像を記憶する。画像記憶部５１００、評価取得部１６００は撮影装置が有していてもよいし、画像処理装置２０００のような外部装置にあってもよい。または、図１１（ｂ）のように、画像処理装置２０００は評価取得部１６００と画像記憶部５１００を有する。評価取得部１６００は、アプリケーションソフトを介してユーザによって撮影された画像を保存する第１操作と、画像が削除または修正される第２操作とを取得する。これらの操作によって、ユーザが画像に対してどのような評価を行ったのかがわかる。例えば、気に入った画像や評価の高い画像は保存され、評価が低い画像は削除される。なお、ユーザがアプリケーションソフトを介して撮影された画像に対して行ったデータ操作を取得してもよい。
【００５２】
図１２に撮影装置が実行する処理を説明するフローチャートを示す。撮影装置が実行する処理の概略は以下のとおりである。Ｓ１０１０では、検知部１１００が、撮影開始操作を検知する。撮影装置がユーザの撮影開始操作を検知し、Ｓ１０２０が開始される。Ｓ１０２０は、実施形態１における図４と同様に、Ｓ１０２１、Ｓ１０２２、Ｓ１０２３、Ｓ１０２４、Ｓ１０２５から成り、シャッターボタンを半押ししている間はこれらのステップが繰り返し行われる。Ｓ１０２１では取得部１２００が画像を取得する。Ｓ１０２２では推定部１３００が、学習モデルに基づいて、制御情報を出力する。Ｓ１０２３では制御部１４００が撮影制御を行う。Ｓ１０２４では検知部１１００がユーザ操作を検知する。Ｓ１０２５では、検知部１１００がユーザ操作の検知結果から判断を行う。ユーザがシャッターボタンを半押しにしたままの場合は、撮影ステップを継続するものとし、撮影時刻をｔ←ｔ＋１と加算して、Ｓ１０２１へと戻る。ユーザが撮影実行命令、すなわちシャッターボタンを深押しした場合、あるいは、撮像中断命令、すなわちシャッターボタンから手を放した場合には、Ｓ１２０２１へと進む。撮影実行された場合、取得部１２００は、撮影された画像と、その画像を撮影する前に行われた撮影制御とを取得し、画像記憶部５１００に入力する。Ｓ１２０２１では、画像記憶部５１００が、学習を行っていない画像が残っているか判断する。学習を行っていない画像がない場合は、処理を終了する。学習を行っていない画像がない画像があった場合は、Ｓ１２０２２に進む。Ｓ１２０２２では、評価取得部１６００が、画像が保存される第３操作と、画像が削除または修正される第４操作とを取得する。または、取得部１６００が、画像が高く評価される操作と、画像が低く評価される操作を検知するようにしてもよい。Ｓ１２０３０では、学習部２０００が、検知された操作に基づいた報酬を使って強化学習を行う。すなわち、検知部によって第３操作を検知した場合は正の報酬を決定する。検知部によって第４操作を検知した場合は負の報酬を決定する。これらの報酬によって、学習モデルを学習する。以下、実施形態１と差がある箇所について、詳細に説明する。
【００５３】
Ｓ１２０２１は、画像記憶部５１００が、Ｓ１０２０で、撮影が行われたか否かを判断する。Ｓ１０２０において撮影が実行された場合には、画像記憶部５１００は画像を保持する。画像が残っていなかった場合（すなわち、撮影されなかった場合）には、処理を終了する。画像が残っていた場合には、Ｓ１２０２２に進む。取得された各フレームにおける撮影時情報およびユーザ設定情報と、対応する撮影制御情報を、所定メモリに記憶する。
【００５４】
Ｓ１２０２２では、評価取得部１６００が、画像が保存される第１操作と、画像が削除または修正される第２操作とを取得する。第３の操作は、保存する指示の他、お気に入りに登録する操作や特定のフォルダに保存する操作でもよい。第４操作は、削除や修正の指示の他、ごみ箱ファイルに保存する操作であってもよい。このようなユーザの画像に対する評価を情報として学習させることによって、効率的に学習モデルを更新できる。
【００５５】
撮影装置外部で操作を行う例を図１３（ｂ）に示す。撮影装置外部の装置としては、ＰＣやタブレット、携帯電話やスマートフォンといったさまざまなものが考えられるが、ここでは一例としてＰＣを使った例を示す。撮影装置１０００から画像ファイルをＰＣ１００２に無線もしくは有線でアップロードする。ＰＣ１００２は、画像記憶部５１００、評価取得部１６００を有している。ＰＣ１００２はユーザ操作アプリケーションを起動させる。ユーザは、画像ファイルに対して、前述の撮影装置上での操作と同様に、所望の操作を行う。評価取得部１６００は、画像ファイルに対してユーザが行った操作を検知する。検知した操作を、無線もしくは有線によって撮影装置１０００に送信される。
【００５６】
Ｓ１２０３０では、学習部２０００が、評価取得部１６００が取得した評価に基づいて決定された報酬を使って撮影制御を学習する。Ｓ１２０２２にて画像に対してユーザが行ったデータ操作に従い、制御動作に関する学習が行われる。データ操作として画像の削除を行った場合には、前述の式（３）および式（４）におけるｒの値をｒ＝−１などと負の値にして学習させる。あるいはユーザが、画像に対してｇｏｏｄの評価ラベルを与えた場合にはｒの値を正の値にし、ｂａｄの評価ラベルを与えた場合には、ｒの値を負の値に設定して学習を行う。
【００５７】
なお、ユーザが画像に対して採点した結果を評価スコアとして報酬に反映させてもよい。画像に対して数値による評価スコアを与えた場合には、その評価スコアに従った値をｒに与えて学習を行う。例えば、評価スコアが１から５までの５段階で定義され、１が「最も悪い」、３が「普通」、５が「最もよい」とされていたとすれば、得られた評価スコアＲに対して、報酬ｒの値を例えば下記のように定義する。
【００５８】
【数３】
2020005190.tif 000005
【００５９】
また、所定フォルダや所定記憶媒体への移動やコピー、ファイル名の変更などが行われた場合には、その画像がユーザにとって必要な画像である可能性があるため、例えばｒ＝０．１などと弱めに報酬を与える、などとしてもよい。
【００６０】
上記報酬ｒの値に従い、撮影時情報およびユーザ設定情報と撮影時制御動作が関連付けて学習されるように、学習時に所定メモリに格納されている撮影時情報およびユーザ設定情報と撮影時制御動作の履歴を読み出して、強化学習を行う。
【００６１】
撮影時の学習と、撮影後の追加学習の学習係数に差をつけてもよい。各々の学習処理における学習係数（係数α）の値を変える。各々の学習に対する重要度に差をつけてもよい。例えば、撮影時のユーザ操作よりも、撮影後の画像ファイル操作の結果を重視するのであれば、実施形態１における学習係数を０．０５、本実施形態における学習係数を０．１などと、設定してもよい。
【００６２】
このようにして、ユーザが撮影後の画像に対して所望のデータ操作を行うことにより、その画像を得るための撮影ステップで行われた制御動作に対して推定部１３００が学習されて更新される。そのため、本実施形態における撮影装置は、よりユーザの所望に近い画像を得るために適した制御動作が得られるようになる。
【００６３】
なお、評価取得部１６００が実行する処理は、撮影装置外部のＰＣなどに画像ファイルをアップロードした後に行ってもよい。ユーザが行う操作は、保存、削除や修正等さまざまなものが考えられる。例えば図１３（ａ）のように、撮影装置上で操作を行う場合、撮影装置１０００の表示画面１００１で画像を確認して操作を行うことが考えられる。例えば、所望の結果が得られた画像は残して、所望の結果が得られなかった画像は削除する、という処理でもよい。あるいは、画像に対するユーザの評価をｇｏｏｄ／ｂａｄなどの評価ラベルで与えてもよいし、評価スコアとして数値で与える、などしてもよい。これらのユーザ以外の評価を反映させることによって、より質のよい写真を撮影できるようになる。その他にも、画像ファイルの名称変更や、所定フォルダへの移動もしくはコピー、所定記憶媒体への書き込み、所定メモリアドレスへの格納、アルバムソフトやクラウドアプリなどへの転送、といったものが考えられる。操作自体は、ダイアルやボタンなどの物理的な方法で行ってもよいし、表示画面上でのタッチパネル操作でもよい。
【００６４】
なお、Ｓ１２０２２を撮影装置外部のＰＣなどで行う場合には、図１３（ｃ）のようにＳ１０３０を、Ｓ１２０２２を行った撮影装置１０００外部のＰＣ１００２上で行ってもよい。その場合、画像ファイルをＰＣにアップロードするときに、学習モデルのパラメータを一緒にＰＣに送る。上記学習処理はＰＣにおいて行われ、送られてきたパラメータを更新する。学習結果として得られたパラメータは撮影装置に送信され、撮影装置における推定部１３００は、受信したパラメータによって更新される。
【００６５】
＜実施形態３＞
本実施形態では、過去の撮影画像の中で出現頻度の高い被写体に対して合焦しやすいように学習する例を示す。過去の撮影画像と照らし合わせて、高頻度で撮影される被写体に合焦した場合には報酬を与えた学習がなされることになる。逆に、高頻度で撮影される被写体がボケた画像が得られた場合には、罰則を与えた学習がなされることになる。そのため、撮影を何度も行うことにより、高頻度で撮影される被写体に対して合焦しやすい制御動作が獲得される。例えば、家族旅行などで、家族のスナップショットを撮ろうとしたときに、他人がどうしても画角内に入ってしまう場合に優先的に家族に焦点を合わせる。子どもの運動会などで人ごみの後ろから、走っている子の写真を撮ろうとしたときに、手前の他人の頭に焦点が合ってしまうことや、並走している他の子どもに焦点が合ってしまうといったことがよく発生する。本実施形態では、そのような事例を回避することができる。
【００６６】
図１４の機能構成例のブロック図に沿って説明する。本実施形態における撮影装置は、図３の機能構成に加え、照合部１５００、画像記憶部５１００を有する。画像記憶装置５１００は、過去に撮影した複数の画像を記憶する。画像記憶装置５１００は、撮影装置内部、もしくは撮影装置外部のＰＣなどのストレージである。画像記憶装置５１００に保存された画像は、あらかじめ照合部１５００によって照合処理が行われ、それぞれの被写体に対してＩＤが割り当てられる。例えば人物に対する照合処理を行った場合、同一人物に対しては同一のＩＤが割り当てられることとなる。
【００６７】
図１４の照合部１５００は、照合処理によってそれぞれのＩＤが割り振られた被写体が、ストレージ内の画像中にいくつあるかをカウントする。ＩＤ＝ｕの被写体の数をＮｕであったとする。ストレージに保存されている画像の総数をＮとすれば、各ＩＤの被写体に関する出現頻度Ｈｕは下記のように表される。
【００６８】
【数４】
2020005190.tif 000006
【００６９】
図１８と図１９を用いて具体例を説明する。図１８において、画像１５１、画像１５２、画像１５３はいずれも撮像装置に記憶されている過去の撮影画像である。撮像装置の照合部１５００は、画像１５１、画像１５２、画像１５３から人物の顔の画像特徴を照合し、人物毎にＩＤを割り当てる。例えば、画像１５１に写っている人物にはＩＤ＝１、画像１５２に写っている人物にはＩＤ＝１とＩＤ＝２、画像１５３に写っている人物にはＩＤ＝１とＩＤ＝２、ＩＤ＝３を割り当てる。この撮影装置には、ＩＤ＝１が最も多く撮影されている。ここで、図１９において、新たな画像１５０が撮影される場合を考える。画像１５０には、前述のＩＤ＝１に加え、ＩＤ＝２、ＩＤ＝３とＩＤ＝４の人物が撮影されているものとする。推定部１３００は、画像１５０に対するフォーカス制御を出力する。照合部１５００は、各人に対して上記のＩＤを割り当てる。画像１５０ａのようにＩＤ＝１の人物にフォーカス制御した場合、最も大きい正の報酬を与える。逆に、画像１５０ｂのように初出の人物ＩＤ＝４にフォーカス制御した場合、負の報酬を使って学習する。
【００７０】
次に、図１５に基づいて撮影装置が実行する処理の流れを示すフローチャートに従って説明する。Ｓ１０１０からＳ１０２０までは、実施形態１と同様であるため、概略のみ説明する。Ｓ１０１０では、検知部１１００が、撮影開始操作を検知する。撮影装置がユーザの撮影開始操作を検知し、Ｓ１０２０が開始される。Ｓ１０２０は図４（ｂ）と同様である。Ｓ１０２０では、Ｓ１０２１では取得部１２００が被写体を含む画像を撮影し、その画像の画像を含む撮影時情報および撮影装置のユーザ設定情報を取得する。本実施形態では、状態としてフォーカス機能のフォーカス位置を取得する。フォーカス位置は、レンズの位置と、画像における２次元座標によって表現される。撮影開始時のフォーカス位置を第１のフォーカス位置とする。Ｓ１０２２では推定部１３００が、学習モデルに基づいて、取得部１２００で取得された撮影時情報とユーザ設定情報から、被写体を撮影する際の撮影機能の制御情報を推定する。Ｓ１０２３では、制御部１４００が推定部１３００で出力された撮影機能の制御情報に従い、撮影装置を制御する。ここでは、被写体にフォーカスを合わせる制御を行う。被写体が写っていない場合は、画像の中央をデフォルトのフォーカス位置をして設定する。Ｓ１０２４では検知部１１００がユーザによる操作を検知する。本実施形態の検知部１１００は、実施形態１と同様に、ユーザによる撮影動作を検知する。Ｓ１０２５では、検知部１１００がユーザ操作から次の判断を行う。ユーザがシャッターボタンを半押しにしたままの場合は、撮影を継続するものとし、撮影時刻をｔ←ｔ＋１と加算して、Ｓ１０２１へと戻る。撮影実行命令すなわちシャッターボタンを深押しする操作を検知した場合あるいは撮像中断命令すなわちシャッターボタンから手を放す操作を検知した場合には、Ｓ１５０２２へと進む。
【００７１】
再び図１５を用いて説明をする。Ｓ１５０２２では、照合部１５００が、過去に取得された画像（被写体画像）における特定の被写体の特徴と、取得された画像の特徴とを照合する。すなわち、Ｓ１０２０が終了したときに最終フレームで得られた画像に対して、被写体の照合処理を行う。詳しい処理は後述する。画像上に存在する被写体が、過去に画像記憶部５１００に保存された画像においてＩＤが割り振られた被写体と同一かどうかを調べる。
【００７２】
Ｓ１５０３０では、学習部２０００が、取得部１２００によって取得された画像から、被写体が検出された場合には正の報酬を、被写体が検出されなかった場合には負の報酬を、を決定することによって学習モデルのパラメータを更新する。すなわち、被写体の画像特徴と新たに撮影された画像の画像特徴とが照合した場合、前記制御情報に対して正の報酬を、被写体の画像特徴と新たに撮影された画像の画像特徴とが照合しない場合、負の報酬を決定することよって学習モデルを更新する。つまり、Ｓ１５０２２で行われた照合処理の結果に従って、撮影装置の制御に関して学習を行う。
【００７３】
Ｓ１５０２２とＳ１５０３０について詳しく説明する。まず、事前に撮影された画像に、前記ＩＤが割り当てられた被写体がＭ個写っていたとし、各被写体のインデックスをｍ＝１・・・Ｍとする。被写体ｍに割り当てられたＩＤをＩＤｍとする。ここで各被写体ｍの周辺領域に関するコントラストを計算し、その結果として次のＢｍの値を得る。
【００７４】
【数５】
2020005190.tif 000007
【００７５】
Ｓ１５０３０における報酬／罰則を表すｒｍの値は、以下のようにして与えられる。
【００７６】
【数６】
2020005190.tif 000008
【００７７】
ここでｇは、引数となる被写体の出現頻度によって決まる関数で、例えば下記のような式で設定される。
【００７８】
【数７】
2020005190.tif 000009
【００７９】
ここでパラメータａは学習対象から外すかどうかの閾値で、例えばａ＝０．０５などと設定する。パラメータｂはｇ（Ｈ）の値が１となるときの最小値で、例えばｂ＝０．３などと設定する。ここでは一例を挙げたが、関数ｇ（Ｈ）の形式はさまざまなものが考えられ、本発明はその定義によって限定されるものではない。このように式８で決定された報酬／罰則に従って、式（３）および式（４）に従って、学習モデルのパラメータを学習によって更新することで、撮影装置の制御動作が学習される。これにより、過去の撮影画像と照らし合わせて、高頻度で撮影される被写体に合焦した場合には報酬を与えた学習がなされることになる。逆に、高頻度で撮影される被写体がボケた画像が得られた場合には、罰則を与えた学習がなされることになる。そのため、撮影を何度も行うことにより、高頻度で撮影される被写体に対して合焦しやすい制御動作が獲得される。
【００８０】
実施形態１と同様にして、Ｓ１５０３０は、撮影装置内部で行ってもよいし、撮影装置外部のＰＣやサーバなどで行ってもよい。また、本実施形態による学習処理を、実施形態１および実施形態２と組み合わせて行ってもよい。
【００８１】
なお、ＣＮＮのネットワーク構造は、撮影装置で共通であることを前提として説明したが、異なっていてもよい。例えば、中間層の数が異なっていてもよい。
【００８２】
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、データ通信用のネットワーク又は各種記憶媒体を介してシステム或いは装置に供給する。そして、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。また、そのプログラムをコンピュータ読み取り可能な記録媒体に記録して提供してもよい。
【符号の説明】
【００８３】
１０００  撮影装置
１１００  検知部
１２００  取得部
１３００  推定部
１４００  制御部
２０００  学習部
５０００  記憶部
【図１】
2020005190.tif 000010
【図２】
2020005190.tif 000011
【図３】
2020005190.tif 000012
【図４】
2020005190.tif 000013
【図５】
2020005190.tif 000014
【図６】
2020005190.tif 000015
【図７】
2020005190.tif 000016
【図８】
2020005190.tif 000017
【図９】
2020005190.tif 000018
【図１０】
2020005190.tif 000019
【図１１】
2020005190.tif 000020
【図１２】
2020005190.tif 000021
【図１３】
2020005190.tif 000022
【図１４】
2020005190.tif 000023
【図１５】
2020005190.tif 000024
【図１６】
2020005190.tif 000025
【図１７】
2020005190.tif 000026
【図１８】
2020005190.tif 000027
【図１９】
2020005190.tif 000028