(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-06
(45)【発行日】2024-11-14
(54)【発明の名称】画像処理装置およびその制御方法ならびにプログラム
(51)【国際特許分類】
H04N 23/60 20230101AFI20241107BHJP
G03B 15/00 20210101ALI20241107BHJP
G06N 99/00 20190101ALI20241107BHJP
【FI】
H04N23/60 500
G03B15/00 H
G03B15/00 Q
G06N99/00 180
(21)【出願番号】P 2020020890
(22)【出願日】2020-02-10
【審査請求日】2023-02-08
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110003281
【氏名又は名称】弁理士法人大塚国際特許事務所
(72)【発明者】
【氏名】藤田 俊司
【審査官】越河 勉
(56)【参考文献】
【文献】特開2019-087200(JP,A)
【文献】特開2020-004096(JP,A)
【文献】特開2018-101317(JP,A)
【文献】特開2018-063502(JP,A)
【文献】特開2020-045132(JP,A)
【文献】特開2020-046270(JP,A)
【文献】国際公開第2008/001850(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 23/60
G03B 15/00
G06N 99/00
(57)【特許請求の範囲】
【請求項1】
撮像手段から順次出力される複数のライブビュー画像データを取得する取得手段と、
複数の静止画を撮影する撮影指示を受け付けたことに応じて、連写撮影を行い複数の静止画のデータを取得する手段と、
前記複数のライブビュー画像データのうちの、前記撮影指示を受け付けたタイミングに基づき決定される所定の期間における複数のライブビュー画像データを、処理対象の画像データとして特定する特定手段と、
前記処理対象の画像データを用いて推論される被写体の行動に基づいて、前記複数の静止画のデータに前記被写体の行動を示す情報を付加する制御手段と、を有し、
前記特定手段は、前記取得手段で取得される前記複数のライブビュー画像データのうちの、前記連写撮影の連写区間の中央のタイミングから前後に前記所定の期間における複数のライブビュー画像データを、前記処理対象の画像データとして特定し、該所定の期間は連写区間ではない期間を含むことを特徴とする画像処理装置。
【請求項2】
前記処理対象の画像データを用いて前記被写体の行動を推論する推論手段を更に有し、
前記制御手段は、前記推論手段により推論される前記被写体の行動に基づいて、前記被写体の行動を示す情報を付加する、ことを特徴とする請求項1に記載の画像処理装置。
【請求項3】
外部装置と通信する通信手段を更に有し、
前記処理対象の画像データを前記外部装置に提供し、前記外部装置から提供される、前記処理対象の画像データを用いて推論される前記被写体の行動に基づいて、前記複数の静止画のデータに前記被写体の行動を示す情報を付加する、ことを特徴とする請求項1に記載の画像処理装置。
【請求項4】
前記特定手段は、前記取得手段で取得される前記複数のライブビュー画像データのうちの、前記撮影指示を受け付けたタイミングに基づき決定される異なる複数の期間のそれぞれにおける複数のライブビュー画像データを、処理対象の画像データとして特定し、
前記制御手段は、前記異なる複数の期間のそれぞれにおける複数のライブビュー画像データを用いて推論される被写体の行動のうち、所定の閾値を超える認識率の推論結果を用いて、前記複数の静止画のデータに前記被写体の行動を示す情報を付加する、ことを特徴とする請求項1から3のいずれか1項に記載の画像処理装置。
【請求項5】
前記特定手段は、前記異なる複数の期間のそれぞれにおける複数のライブビュー画像データを特定する場合に、前記撮影指示を受け付けたタイミングが前記異なる複数の期間のそれぞれの中心となるように、前記処理対象の画像データを特定する、ことを特徴とする請求項4に記載の画像処理装置。
【請求項6】
前記処理対象の画像データを用いて推論される前記被写体の行動を記憶する記憶手段を更に有し、
前記制御手段は、前記記憶手段に記憶された前記被写体の行動のうち、前記複数の静止画を撮影するタイミングに対応する前記被写体の行動に基づいて、前記複数の静止画のデータに前記被写体の行動を示す情報を付加する、ことを特徴とする請求項1から5のいずれか1項に記載の画像処理装置。
【請求項7】
撮像手段を更に有する、ことを特徴とする請求項1から6のいずれか1項に記載の画像処理装置。
【請求項8】
撮像手段から順次出力される複数のライブビュー画像データを取得する取得工程と、
複数の静止画を撮影する撮影指示を受け付けたことに応じて、連写撮影を行い複数の静止画のデータを取得する
工程と、
前記複数のライブビュー画像データのうちの、前記撮影指示を受け付けたタイミングに基づき決定される所定の期間における複数のライブビュー画像データを、処理対象の画像データとして特定する特定工程と、
前記処理対象の画像データを用いて推論される被写体の行動に基づいて、前記複数の静止画のデータに前記被写体の行動を示す情報を付加する制御工程と、を有し、
前記特定工程では、前記取得工程で取得される前記複数のライブビュー画像データのうちの、前記連写撮影の連写区間の中央のタイミングから前後に前記所定の期間における複数のライブビュー画像データを、前記処理対象の画像データとして特定し、該所定の期間は連写区間ではない期間を含むことを特徴とする画像処理装置の制御方法。
【請求項9】
コンピュータを、請求項1から7のいずれか1項に記載の画像処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置およびその制御方法ならびにプログラムに関する。
【背景技術】
【0002】
近年、機械学習を用いた画像認識技術、具体的には特定の被写体が含まれる教師データを用いて学習させた推論モデルに対して、撮像装置で撮影した画像を入力することにより、特定の被写体を認識する技術が知られている。
【0003】
また、静止画に限らず、動画に対して画像認識に係る推論モデルを適用する技術も知られている。具体的には、被写体の特定の行動を撮影した動画を含む教師データを用いて学習させた推論モデルに動画を入力し、その動画に含まれる特定の行動を認識する技術が知られている。特許文献1では、多層式のニューラルネットワークを用いて監視カメラで撮影された動画を推論モデルに入力し、動画の説明文を自動生成する技術を提案している。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、動画における被写体の行動を推論モデルを用いて精度よく求めるためには、対象の行動シーンを含む適切な範囲の動画を推論モデルに入力する必要がある。この点、特許文献1は、多層式のニューラルネットワークを利用して動画の解析を行うものの、ニューラルネットワークに入力する動画の最適な範囲を決定することについては考慮していなかった。
【0006】
本発明は、上記課題に鑑みてなされ、その目的は、被写体の行動を推論するための適切な範囲の動画を決定し、撮影対象の被写体の行動をより精度よく推論することが可能な技術を実現することである。
【課題を解決するための手段】
【0007】
この課題を解決するため、例えば本発明の画像処理装置は以下の構成を備える。すなわち、撮像手段から順次出力される複数のライブビュー画像データを取得する取得手段と、複数の静止画を撮影する撮影指示を受け付けたことに応じて、連写撮影を行い複数の静止画のデータを取得する手段と、前記複数のライブビュー画像データのうちの、前記撮影指示を受け付けたタイミングに基づき決定される所定の期間における複数のライブビュー画像データを、処理対象の画像データとして特定する特定手段と、前記処理対象の画像データを用いて推論される被写体の行動に基づいて、前記複数の静止画のデータに前記被写体の行動を示す情報を付加する制御手段と、を有し、前記特定手段は、前記取得手段で取得される前記複数のライブビュー画像データのうちの、前記連写撮影の連写区間の中央のタイミングから前後に前記所定の期間における複数のライブビュー画像データを、前記処理対象の画像データとして特定し、該所定の期間は連写区間ではない期間を含むことを特徴とする。
【発明の効果】
【0008】
本発明によれば、被写体の行動を推論するための適切な範囲の動画を決定し、撮影対象の被写体の行動をより精度よく推論することが可能になる。
【図面の簡単な説明】
【0009】
【
図1】実施形態1における画像処理装置の一例としてのデジタルカメラの機能構成例を示すブロック図
【
図2】実施形態1に係るデジタルカメラにおける画像データの流れを説明する図
【
図3】実施形態1に係る推論部における処理概要を説明する図
【
図4】実施形態1に係る静止画撮影処理における一連の動作を示すフローチャート
【
図5】実施形態1に係る推論用のLV画像について説明する図
【
図6】実施形態1に係る記憶される推論結果の一例を示す図
【
図7】実施形態2に係る静止画撮影処理における一連の動作を示すフローチャート
【
図8】実施形態3に係る推論処理における一連の動作を示すフローチャート
【
図9】実施形態3に係る静止画撮影処理における一連の動作を示すフローチャート
【発明を実施するための形態】
【0010】
(実施形態1)
以下、添付図面を参照して実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものではない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
【0011】
以下では画像処理装置の一例として、動画に対して推論モデルを適用可能なデジタルカメラを用いる例を説明する。しかし、本実施形態は、デジタルカメラに限らず、動画に対して推論モデルを適用することが可能な他の機器にも適用可能である。これらの機器には、例えばパーソナルコンピュータ、スマートフォンを含む携帯電話機、ゲーム機、タブレット端末、時計型や眼鏡型の情報端末、医療機器、監視システムや車載用システムの機器などが含まれてよい。
【0012】
(デジタルカメラの構成)
図1は、本実施形態の画像処理装置の一例としてのデジタルカメラ100の機能構成例を示すブロック図である。なお、
図1に示す機能ブロックの1つ以上は、ASICやプログラマブルロジックアレイ(PLA)などのハードウェアによって実現されてもよいし、CPUやMPU等のプログラマブルプロセッサがソフトウェアを実行することによって実現されてもよい。また、ソフトウェアとハードウェアの組み合わせによって実現されてもよい。従って、以下の説明において、異なる機能ブロックが動作主体として記載されている場合であっても、同じハードウェアが主体として実現されうる。
【0013】
制御部101は、例えばCPU、MPU又はGPUなどのプロセッサを1つ以上含む、ROM102に格納されるプログラムを実行することにより、デジタルカメラ全体の動作を制御する。
【0014】
ROM102は、例えば不揮発性の半導体メモリを含み、制御部101によって実行される制御プログラムを格納する。RAM103は、例えば揮発性の半導体メモリを含み、制御部101がプログラムを実行するためのワークメモリや、各種データの一時格納領域などのために使用される。
【0015】
撮像部104は、撮像レンズ、絞り、シャッター、CMOSセンサ等の撮像素子、およびA/D変換器等を含み、撮像レンズを介して撮像素子に結像される光をアナログ画像信号を生成し、更にデジタル画像信号に変換して画像データを出力する。撮像部104から出力された画像データは、RAM103に展開される。撮像部104は、連続的に出力される複数の画像データ(LV画像)と、1枚の画像データである記録用の静止画とを出力することができる。LV画像は、撮影操作中に撮像部104から出力される動画であってリアルタイムに表示部106に表示される、YUV形式の画像データである。また、LV画像は、推論部107に入力する推論用のデータとしても使用される。記録用の静止画データは、ユーザの撮影指示によって生成される高解像度の画像データであり、記録部108を介して記憶媒体109に記録される。記録用の静止画データは高解像度であるため、撮像部104は例えば圧縮されたJPEG形式にして出力してもよい。
【0016】
操作部105は、ユーザの操作を受け付け、入力された情報を制御部101に通知する。操作部105は、例えば、タッチパネル、ボタンスイッチ、十字キー等を含む。表示部106は、液晶パネルやLED等の表示部材を含み、デジタルカメラ100の状態に関する情報や、撮像部104によって生成されるライブビュー画像、記憶媒体109に記録されている画像データなどをユーザに表示する。
【0017】
推論部107は、例えばGPU或いは専用回路を含み、撮像部104から入力される動画データを解析して、動画データに含まれる被写体の行動を推論する。推論部107は、推論結果として行動ラベルと、その行動ラベルに対する認識率を出力する。推論部107の構成については後述する。
【0018】
記録部108は、記憶媒体109に対するデータの読み書きの制御を行う。記録部108は、記憶媒体109の初期化や、記憶媒体109とRAM103の間のデータ転送を制御する。記憶媒体109は、例えばメモリーカード、フラッシュメモリを含み、大容量の記憶領域を備えるデバイスである。内部バス110は、上述した各処理部の間でやりとりされる制御信号を接続するバスである。
【0019】
(画像データに対する処理の流れ)
次に、
図2を参照して、デジタルカメラ100が画像データを処理する流れについて説明する。本処理では、静止画の撮影と対応付けられる動画に推論処理(行動認識処理)を適用してメタデータを静止画に付与する。より具体的には、デジタルカメラ100で静止画を撮影するときに、静止画撮影のタイミングの前後で時間方向に連続して撮影されている画像(すなわちLV画像)を推論モデルに入力し、被写体の行動を認識する。そして、認識結果に基づくメタデータを撮影した静止画像に付加する。
【0020】
例えば、フィギュアスケートの撮影する場合、演技をしている選手の静止画を撮影すると自動的に「四回転ジャンプ」というようなメタデータが撮影画像に付加される。この「四回転ジャンプ」という情報は、静止画の撮影タイミングの近辺(前後)の動画を対象とした行動認識を行うことによって得ることができる情報である(撮影される静止画そのものを解析しても得ることはできない)。
【0021】
まず、撮像部104が(動画データを構成する)LV画像と、記録用の静止画データを生成する。LV画像は、撮像部104が動作している間に一定の時間間隔で順次出力されて、表示部106とLV画像バッファ201に送信される。本実施形態では、例えば、毎秒20フレームのスピードで解像度が800×600であるYUV形式の画像データが生成され、LV画像として出力される。表示部106は、送信されるLV画像をリアルタイムに表示する。
【0022】
LV画像バッファ201は、LV画像を所定のフレーム数だけ一時的に記憶する領域であり、RAM103の一部に構成される。入力されるLV画像の数が上限を超えた場合、最も古いLV画像から順に削除される。LV画像バッファ201に記憶されたLV画像は、推論部107に入力するため画像として使用される。このためバッファの段数(最大に記憶できるLV画像の数)は、推論対象となる行動シーンの時間に合わせて予め定められる。本実施形態では一例として、フィギュアスケートのジャンプ演技の種類を推論することを想定した段数で構成する。例えば、選手がジャンプする動きを始めてから着氷するまでの時間を約2秒と想定し、マージンを含めた3秒分の段数とする。上述したように生成されるスピードが毎秒20フレームであるため、フレーム数としては60となる。LV画像バッファ201に一時的に記憶されたLV画像は、推論が実行されるタイミングで制御部101によって推論部107に入力される。
【0023】
静止画データは、ユーザが操作部105の撮影ボタンを押下したことによる撮影指示に応じて、撮像部104によって生成され、静止画バッファ202に格納される。本実施形態では、例えば、解像度が4000×3000であるJPEG形式の画像データが生成される。静止画バッファ202に格納された静止画データは、その後に制御部101によって所定のファイル形式に変換され、記録部108を介してメモリーカードなどの大容量の記憶媒体に記録される。
【0024】
(推論部における処理概要)
次に、
図3を参照して、推論部107における処理の概要を説明する。推論部107は、動画認識用のディープラーニング技術として知られている3D-CNN(Convolutional Neural Network)をベースとした学習モデルで構成される。3D-CNNは、従来から知られている二次元の情報(静止画)に対して処理を行う一般的なCNNに対し、更に時間方向を追加した三次元のデータに対する解析を行うことができるように拡張されたニューラルネットワークである。
【0025】
推論部107に使用される学習モデルには、事前に推論しようとする対象にあわせて教師データによる学習処理を実施したモデルを使用する。本実施形態では、例えば、フィギュアスケートのジャンプ演技を推論するために、事前にジャンプ演技に関する学習処理を行ったモデルを使用する。学習処理では、例えば、フィギュアスケートの各種ジャンプ演技を撮影した動画と正解ラベルとの組で構成される教師データを学習モデルに繰り返し入力して、後述する重み係数などの学習モデルのパラメータを最適化させる。教師データの正解ラベルには、例えば「一回転ジャンプ」「二回転ジャンプ」「三回転ジャンプ」などの、動画のジャンプ演技に対応する行動ラベルが含まれる。
【0026】
なお、本実施形態の推論部107の例では、フィギュアスケートのジャンプ演技がいずれのジャンプ演技であるかを推論する学習モデルを例に説明しているが、推論の対象を他のものにしてもよい。推論部107は、フィギュアスケートのジャンプ演技以外の他の演技を推論してもよいし、動画がどのスポーツを撮影したものであるかを推論してもよい。また、動画が他のスポーツのどの技や技術を撮影したものであるかを推論してもよい。
【0027】
例えば、学習モデルがフィギュアスケートのジャンプ以外の演技を推論する場合、ジャンプ演技以外の演技を含むフィギュアスケートの動画に「××ステップ」などの対応する演技を表す行動ラベルを付与した学習データを用いるようにすればよい。また、各種スポーツの動画に「フィギュアスケート」、「サッカー」、「ラグビー」などの対応するスポーツを表す行動ラベルを付与した学習データを用いて学習することにより、動画に含まれる行動がどのスポーツであるかを推論するようにしてもよい。勿論、行動ラベルにどのスポーツの何の演技・技であるかを付与することにより、どのスポーツの何の演技等であるかを推論するように構成することもできる。また、上述の例に限らず、撮影のタイミングの前後の動画から被写体の行動を推論するものであれば、他の行動であってもよい。例えば、サッカーのシュートやラグビーのキックなどの場合、ボールを蹴る瞬間あるいはその直後の静止画を撮影することが想定される。そこで、その静止画の撮影の前後の所定の期間のLV画像を入力として、そのシュートやキックがゴールに入ったか否かを推論できるようにするなどの応用が考えられる。
【0028】
推論部107に入力される画像データ301は、時間方向に連続している複数の画像データである。この画像データ301は、制御部101が推論用として選択したLV画像に該当する。
【0029】
畳み込み・プーリング処理部302は、入力された画像データに対し、畳み込み処理とプーリング処理を繰り返す処理部である。畳み込み処理では、画像の2次元状の空間に適用可能なフィルタと時間方向に適用可能なフィルタとを用いて画像の特徴点を抽出する。また、プーリング処理では、畳み込み処理の後に、(例えば処理対象のデータの最大値をとるマックスプーリングなどの処理により)重要な特徴点の情報を維持しながら画像データの情報量を縮小する。
【0030】
特徴マップ303は、畳み込み処理とプーリング処理が所定回数繰り返された結果、生成される特徴マップを示す。ここで生成される特徴マップの、一枚あたりのサイズと総数は、畳み込み処理で使用されるフィルタの仕様(例えばフィルタのサイズやストライド)や、畳み込みの繰り返し回数に依存する。
【0031】
全結合層304は、多層パーセプトロンで構成される全結合層であり、事前に学習により決定されたニューロン間の重み係数に従って、抽出された特徴マップに対する推論処理を実行する。全結合層304は、複数の層で構成され、最終の層は出力層である。各層に示す丸い形はニューロンを表し、神経細胞をモデル化したユニットである。特徴マップ303の各画素の情報は、全結合層の最初の層の各ユニットに入力され、事前の学習処理によって最適化された重み係数をかけて次の層のすべてのノードに出力される。この処理は、複数の層を介して繰り返し実行され、最終的に出力層の各ユニットにおいて最終結果が出力される。最終結果は、例えば、行動ラベルに対する認識率に相当する数値である。認識率の数値は、すべてのユニットの出力の総和が1.0(100%)になるように、例えばソフトマックス関数によって正規化された値が出力される。
【0032】
出力層のユニットの数は、推論対象となる行動ラベルの種類に対応する。例えば、
図3に示すように、出力層が4つのユニットで構成される場合、各ユニットが四種類の行動ラベルのそれぞれに対応する。すなわち、出力層のユニットの1つずつが、それぞれ「一回転ジャンプ」「二回転ジャンプ」「三回転ジャンプ」「四回転ジャンプ」の行動ラベルに対応する。LV動画が入力されてモデル内の演算が行われると、出力層を構成する4つのユニットのそれぞれから認識率を示す信号値が出力され、それぞれがLV動画が各ジャンプであると認識される確率を示す。出力層の各ユニットの出力(認識率1~4)のうち、例えば認識率3の値が高い場合は、入力された動画に「三回転ジャンプ」の演技が写っていた可能性が高いと判定することができる。
【0033】
なお、フィギュアスケートの他の演技も含む各種演技を推論させる場合、出力層は、それぞれ、「一回転ジャンプ」、「二回転ジャンプ」、・・、「xxステップ」のように、他の演技に対する認識率も出力するように構成される。また、動画に含まれる行動がどのスポーツであるかを推論する場合、出力層は、例えば「フィギュアスケート」、「サッカー」、「ラグビー」、・・・のように各種スポーツに対する認識率を出力するように構成される。
【0034】
また、
図3に示した図では、畳み込み・プーリング処理部302の構成は明示されていないが、畳み込み層とプーリング層とを含む多層パーセプトロンで構成されてよい。
【0035】
(静止画撮影処理に係る一連の動作)
次に、
図4を参照して、静止画撮影処理に係る一連の動作について説明する。なお、本処理は、制御部101がROM102に記憶されたプログラムをRAM103の作業用領域に展開、実行すると共に、撮像部104や推論部107等を動作させることにより実現される。また、本一連の処理は、デジタルカメラ100が撮影モードに遷移した時点で開始される。ここで撮影モードとは、デジタルカメラ100の動作モードの一つであり、ユーザが撮影ボタンを押すことによっていつでも静止画を撮影できる動作モードのことを意味する。例えば、撮像機能を稼働せず、メモリーカードに記録された静止画を液晶モニタで再生表示させるような動作モードは、これに該当しない。
【0036】
S401において、制御部101は、撮影モードに遷移したことを契機に、撮像部104を制御してLV画像の生成処理を開始する。生成されたLV画像は、上述したように、表示部106とLV画像バッファ201に送信される。
【0037】
S402において、制御部101は、ユーザからの静止画撮影の撮影指示を受け付けたかを判定する。制御部101は、例えば、操作部105からの信号に基づいて、静止画撮影の撮影指示を受けたと判定した場合はS403に進む。一方、制御部101は、静止画撮影の撮影指示を受けていないと判定した場合はS410に進む。このとき、S410において、他の動作モードに遷移されないと判定された場合には、再びS402に戻り、撮影指示を待ち続けることになる。
【0038】
S403において、制御部101は、静止画撮影とともに行動認識の推論を実行するかどうかを判定する。ユーザが撮影した静止画に、行動認識の対象となる被写体(人物や動物)がそもそも写っていない場合は、その後の推論処理が冗長なものとなるため、本ステップにおいて行動認識の推論を実行する必要性を判定する。例えば、制御部101は、撮影指示を受けたタイミングに生成されたLV画像から、人物や動物を検出することができるかどうかを判定する。この検出処理は、公知な顔検出技術や物体検出処理を適用することによって実現することができるため、処理の詳細は省略する。検出処理の結果、制御部101は、行動認識の対象となる被写体が検出されたことにより、行動認識の推論を実行すると判定した場合はS404に進み、そうでない場合はS410に進む(その後、再びS402に戻って静止画撮影の撮影指示を待つ)。
【0039】
S404において、制御部101は、LV画像バッファ201に一時的に記憶されているLV画像から推論部107に入力するLV画像を決定する。具体的には、制御部101は、LV画像バッファ201に記憶されている、時間方向に連続した複数のLV画像から、先頭と後尾のLV画像を決定する。
【0040】
推論部107において精度の高い行動認識処理を実行するためには、先頭のLV画像は被写体が対象の行動を開始する前のタイミングのLV画像が望ましく、後尾のLV画像は推論対象の行動を終了した後のタイミングのLV画像が望ましい。このため、制御部101は、撮影指示のタイミングの前後両方のLV画像を含むように範囲を決定する。換言すれば、制御部101は、LV画像バッファ201に格納された複数のLV画像のうち、撮影指示のタイミングを含む期間の複数のLV画像を、処理対象のLV画像として決定する。本実施形態では、例えば、ジャンプ演技の合計時間が2秒程度であるものとして、撮影タイミングを中心とした合計2秒分のLV画像を選択する。例えば、
図5(a)に示すように、時間Sにおける撮影タイミングにおいて、同じ時間に生成されるLV画像はf
nである。例えば、LV画像が毎秒20フレームのスピードで生成される場合、隣り合うLV画像の間隔は50ミリ秒である。撮影タイミングを中心とした合計2秒分のLV画像を選択する場合、先頭のLV画像は撮影タイミングより1秒前に生成されたLV画像であり、f
n-20がそれに該当する。一方、後尾のLV画像は撮影タイミングの1秒後に生成されたLV画像であり、f
n+20がそれに該当する。このように、制御部101は、例えばf
n-20からf
n+20までのLV画像を、推論部107に入力するLV画像として決定する。
【0041】
S405において、制御部101は、S404で処理対象として決定されたLV画像を推論部107に入力して、推論部107に推論処理を実行させ、推論結果としてそれぞれの行動ラベルに対応する認識率の情報を取得する。また、制御部101は、推論処理の実行回数をカウントする処理と、推論の実行履歴をRAM103に記録する処理とを行う。この実行履歴の情報は、推論処理を再実行する際の入力画像の決定処理において利用される。
【0042】
ここで、
図6は、実行履歴情報の一例を示している。この実行履歴情報の例では、例えば、実行回数、タイムスタンプ、LV画像番号、及び認識率が記録される。タイムスタンプは、推論を実行したタイミングを識別するための情報であり、例えば「時:分:秒.ミリ秒」の形式で記録される。LV画像番号は、推論実行時に推論部107に入力したLV画像の識別子を示している。認識率は、推論の実行結果を示す情報であり、推論部107の出力に対応付けられた、それぞれの行動ラベルに対する認識率を示す。
【0043】
図6に示す例では、実行回数の列で識別される実行回数のうち、1回目と2回目の実行結果における認識率では、すべての行動ラベルが30%以下を示している。すなわち、1回目と2回目の実行結果では、高い認識率の結果が得られなかったことを示している。一方、3回目の実行結果では、認識率の列における3つ目の行動ラベルの認識率が90%であることを示している。すなわち、3回目の実行結果では、「三回転ジャンプ」の演技が写っている可能性が90%であるという結果を得たことを示している。
【0044】
S406において、制御部101は、S405で取得した推論結果をもとにメタデータが生成可能かどうかを判定する。制御部101は、所定の閾値を超える高い認識率の推論結果が得られている場合、メタデータが生成可能であると判定してS409に進み、そうでない場合はS407に進む。
【0045】
S407において、制御部101は、推論の実行回数が予め定めた上限に達しているかどうかを判定する。制御部101は、推論の実行回数が上限に達していると判定した場合は、上述した推論処理の実行回数のカウント値をゼロにリセットし、また、実行履歴情報を削除して、S410に進む。一方、制御部101は、推論の実行回数が上限に達していないと判定した場合には、S408に進む。
【0046】
S408において、制御部101は、推論を再実行するためのLV画像の決定処理を再度実行する。このとき、制御部101は、上述した実行履歴情報を活用し、推論部107から低い認識率が出力されたときに入力されたLV画像の範囲とは異なる範囲になるように、LV画像の範囲を決定する。例えば、LV画像の範囲の幅を広くしたり、狭くしたり、あるいは幅を変えずに前後に数フレームずらしたりすることによって、新たなLV画像の範囲を決定する。
【0047】
S409において、制御部101は、高い認識率を取得した行動ラベルの情報を、S402の撮影指示に応じて生成された静止画データに関連付ける。具体的には、記憶媒体109に記録された静止画データファイルのヘッダ情報に、メタデータとして追加記録する。メタデータは、静止画データファイルの検索や分類などの処理において活用される。また本ステップにおいて制御部101は、上述した推論処理の実行回数のカウント値をゼロにリセットし、実行履歴情報を削除する。
【0048】
S410において、制御部101は、ユーザによってデジタルカメラ100の動作モードが撮影モードから他のモードに変更されたかどうかを判定する。制御部101は、デジタルカメラ100の動作モードが他のモードに変更されたと判定した場合は、本一連の動作を終了する。一方、制御部101は、デジタルカメラ100の動作モードが撮影モードのまま継続されていると判定した場合には、再びS402に戻り、撮影指示を待ち受ける。
【0049】
なお、上述した静止画撮影処理は、一枚撮影を想定したものであったが、複数の静止画を撮影する連写撮影に対しても適用可能である。以下では、連写撮影が行われる場合に適用されるS404とS409の処理について説明を補足する。
【0050】
連写撮影の場合、S404において、制御部101は、連写区間における複数の撮影タイミングの中から、中央の撮影タイミングを中心とした合計2秒分のLV画像を推論用のLV画像として選択する。例えば、連写スピードが秒間10コマで、連写撮影によって3枚の静止画が撮影された場合の例を、
図5(b)に示す。S
1、S
2、S
3は連写区間中の撮影タイミングであり、それぞれのタイミングで生成されるLV画像はf
n、f
n+2、f
n+4である。連写スピードが例えば秒間10コマである場合、それぞれの撮影タイミングの間隔は0.1秒である。上述した連写区間の最も中央の撮影タイミングはS
2である。S
2を中心とした合計2秒分のLV画像を選択する場合、先頭のLV画像はS
2より1秒前に生成されたLV画像であり、f
n-18がそれに該当する。一方、後尾のLV画像はS
2の1秒後に生成されたLV画像であり、f
n+22がそれに該当する。つまり、制御部101は、f
n-18からf
n+22までのLV画像を、推論部107に入力するLV画像として決定する。
【0051】
また、連写撮影の場合には、S409において、制御部101は、高い認識率を取得した行動ラベルの情報を、連写撮影により生成された静止画データのすべてに関連付ける。つまり、制御部101は、同じ内容のメタデータを複数の静止画データに関連付ける。
【0052】
以上説明したように、本実施形態では、特定の行動をとる被写体の静止画撮影を行う際に、撮影指示の前後の期間を決定し、当該期間の動画を学習モデルに入力して、当該被写体の行動を推論するようにした。更に、推論した被写体の行動を示す情報を静止画撮影の付加情報として生成するようにした。このようにすることで、被写体の行動を推論するための適切な範囲の動画を決定し、撮影対象の被写体の行動をより精度よく推論することが可能になる。また、撮影対象の被写体の行動を適切に表すデータを付加することが可能になる。
【0053】
なお、本実施形態では、撮像部104によって生成されるLV画像を表示用と推論用に使用する場合を例に説明したが、表示用の画像と推論用の画像とをそれぞれ別に撮像部104から生成するように構成してもよい。また、上述の実施形態では、撮像部104によって生成されるLV画像をそのまま推論部107に入力する場合を例に説明した。しかし、推論部107に入力する前に、推論部107で処理する上で都合のよいデータ形式(解像度、符号化方式など)に変換するようにしてもよい。
【0054】
また、上述の実施形態では、S404における、推論部107に入力するLV画像の決定方法として、LV画像バッファ201に記憶されているLV画像の先頭と後尾を決定する方法を示したが、この限りではない。推論部107に入力するデータの量を抑制するために、決定した範囲の中間のLV画像を間引いたり、入力するLV画像を個別に選択したりするようにしてもよい。
【0055】
また、S404における、推論部107に入力するLV画像の決定方法として、撮影タイミングを中心とするようにLV画像の先頭と後尾を決定する方法を示したが、この限りではない。静止画が撮影される可能性が高いと推定される特定の状態を検出するための機構を別途備え、その検出タイミングに応じて先頭のLV画像を決定するようにしてもよい。この検出タイミングは、例えば、ジャイロ機構などのセンサを利用して、撮影指示を待ち受けている状態でデジタルカメラが静止したことを検出したタイミングであってよい。或いは、ユーザにより被写体に対するフォーカス制御が行われたタイミングであってもよいし、被写体に対する追尾制御が行われたタイミングであってもよい。
【0056】
また、後尾のLV画像の決定方法についても、静止画撮影を実行してから所定の時間が経過したタイミングや、静止画撮影を実行した後に被写体がLV画像から外れたタイミングに相当するLV画像としてもよい。
【0057】
更に、上述の実施形態では、S405における推論処理をデジタルカメラ100の内部で実行する構成を例に説明したが、クラウドサーバのような外部装置において当該推論処理を実行させるようにしてもよい。この場合、デジタルカメラ100は、
図1および
図2で示した推論部107を備えず、代わりに、外部装置と通信するための通信部を備える。デジタルカメラ100は、この通信部を介してクラウドサーバにLV画像を提供し、推論処理を要求したうえで、外部装置から提供される推論結果を取得する。このような構成では、推論を行う際に外部装置との間で通信が発生するが、クラウドサーバの豊富な計算リソースを推論処理に利用することができる(それゆえ、より計算量の多い精度の高い推論アルゴリズムを使用可能である)という利点がある。
【0058】
(実施形態2)
次に、実施形態2について説明する。実施形態1では、推論を実行した結果、高い認識率の推論結果が得られなかった場合には、入力するLV画像を決定する処理と推論処理とを繰り返すようにした。この場合、推論部107に入力するLV画像次第で推論処理を繰り返す回数が変わるため、撮影指示を受け付けてからS409でメタデータが生成されるまでの時間が一定にならない。つまり、初回の推論で高い認識率の推論結果が得られた場合はすぐにメタデータが生成される一方で、何度も推論が繰り返された場合は、メタデータが生成されるまでの時間が長くなる。そこで、実施形態2では、以下に説明する構成により、撮影指示を受け付けてから常に一定の時間が経過した後にメタデータが生成されるようにする。なお、本実施形態におけるデジタルカメラ100の構成は、上述の実施形態と同一又は実質的に同一であり、静止画撮影処理に係る動作が異なる。このため、同一又は実質的同一である構成については説明を省略し、相違点について重点的に説明する。
【0059】
(静止画撮影処理に係る一連の動作)
実施形態2に係る静止画撮影処理について、
図7を参照して説明する。なお、本処理は、制御部101がROM102に記憶されたプログラムをRAM103の作業用領域に展開、実行すると共に、撮像部104や推論部107等を動作させることにより実現される。
【0060】
まず、制御部101は、実施形態1と同様に、S401~S403の処理を行って、推論を行うと判定した場合にS701に進む。
【0061】
S701において、制御部101は、LV画像バッファ201に一時的に記憶されているLV画像を使って、推論部107に入力する複数の種類のLV画像グループを決定する。なお、(種類の異なる)グループを構成する方法は幾つか考えられる。例えば、同じLV画像を中心として範囲の幅(含まれるLV画像の数)を異ならせたグループを作成するようにしてもよい。また、グループに含まれるLV画像の数は同じ数にして先頭と後尾のLV画像の位置をずらすようにしてグループを作成してもよい。
【0062】
本実施形態では、例えば、撮影タイミングを中心として、範囲に含まれるLV画像の数が異なるグループを3種類作成するものとする。
図5(c)は、このグループの作成方法を示している。
図5(c)に示すグループ1、グループ2、グループ3は、本ステップにおいて決定されたグループを示している。1つ目のグループはf
n-21からf
n+21までのLV画像であり、2つ目のグループはf
n-20からf
n+20までのLV画像である。そして、3つ目のグループはf
n-19からf
n+19までのLV画像である。
【0063】
S702において、制御部101は、S701で決定された複数のLV画像のグループを、順次、推論部107に入力し、それぞれのグループの推論結果を取得する。推論結果の詳細は実施形態1と同様である。
【0064】
S703において、制御部101は、S702で取得した推論結果をもとにメタデータが生成可能かどうかを判定する。制御部101は、例えば、取得したそれぞれのグループの推論結果を参照して、所定の閾値を超えた高い認識率の推論結果が得られている場合は、メタデータが生成可能であると判定してS409に進み、そうでない場合はS410に進む。
【0065】
以上説明したように本実施形態では、推論の対象となる複数のLV画像を、異なる複数のLV画像で構成される複数種類のLV画像グループとして決定するようにした。このようにすることで、撮影指示を受け付けてから常に一定の時間が経過した後にメタデータを生成することが可能となる。
【0066】
(実施形態3)
次に実施形態3について説明する。実施形態1及び実施形態2では、静止画の撮影指示を受け付けたことに応じて推論を実行する実施形態について説明した。この方法は、必要なタイミングで推論処理が実行されるため処理負荷の観点で極めて効率的な方法である。しかし、撮影指示を受け付けてからメタデータが生成されるまでに、必ず推論処理の実行時間の分だけ時間がかかる。
【0067】
これに対し、実施形態3では、撮影指示を受け付けてからメタデータが生成されるまでの間に、推論処理の実行時間を含まないようにする。すなわち、随時入力されるLV画像に対する推論処理を実行して推論結果情報を生成しておき、撮影指示を受け付けつけると、(推論処理を実行することなく)生成されている推論結果情報からメタデータを生成する。このように、本実施形態では、推論を実行する処理と静止画を撮影する処理とを非同期で実行する。
【0068】
なお、本実施形態におけるデジタルカメラの構成は、上述の実施形態と同一又は実質的に同一であり、静止画撮影処理に係る動作が異なる。このため、同一又は実質的同一である構成については説明を省略し、相違点について重点的に説明する。
【0069】
(推論処理に係る一連の動作)
図8を参照して、本実施形態に係る推論処理の一連の動作について説明する。本実施形態に係る推論処理は、上述のように、随時、LV画像に対する推論処理を実行して推論結果情報を記憶する処理である。なお、本処理は、制御部101がROM102に記憶されたプログラムをRAM103の作業用領域に展開、実行すると共に、撮像部104や推論部107等を動作させることにより実現される。また、本処理に係る一連の動作は、デジタルカメラ100が撮影モードに遷移した時点で開始される。
【0070】
S801において、制御部101は、撮影モードに遷移したことを契機に、撮像部104を制御してLV画像の生成処理を開始する。生成されたLV画像は、上述の実施形態と同様に、表示部106とLV画像バッファ201に送信される。
【0071】
S802において、制御部101は、所定の数のLV画像がLV画像バッファ201にバッファリングされたかどうかを判定し、バッファリングされたと判定した場合はS803に進み、そうでない場合はバッファリングされるまで待つ。所定の数とは、推論を実行するのに十分かどうかを示す数であり、推論の対象となる行動シーンに応じて設定される。一例として、ジャンプ演技の種類を推論する場合、2秒間に相当するLV画像の数を、推論を実行するのに十分な数として定めてよい。
【0072】
S803において、制御部101は、LV画像バッファ201に蓄積されているLV画像を推論部107に入力し、推論結果を取得する。
【0073】
S804において、制御部101は、S803で取得した推論結果の認識率が所定の閾値を超える場合にのみ、その推論結果情報をRAM103の領域に記憶する。ここで記憶される情報の詳細は、
図6で示した情報と同様であり、実行回数、タイムスタンプ、LV画像番号、認識率を含む。
【0074】
S805において、制御部101は、ユーザによってデジタルカメラ100の動作モードが撮影モードから他のモードに変更されたかどうかを判定する。制御部101は、デジタルカメラ100の動作モードが撮影モードのまま継続されていると判定した場合は、S802に戻る。一方、制御部101は、デジタルカメラ100の動作モードが他のモードに変更されたと判定した場合は、本一連の動作を終了する。
【0075】
(静止画撮影処理の一連の動作)
次に、実施形態3に係るデジタルカメラ100の静止画撮影処理の一連の動作について、
図9を参照して説明する。なお、本処理は、制御部101がROM102に記憶されたプログラムをRAM103の作業用領域に展開、実行することにより実現される。また、本処理に係る一連の動作は、ユーザから静止画の撮影指示を受け付けた時点で開始される。
【0076】
S901において、制御部101は、S804によって記憶された推論結果情報を取得する。S902において、制御部101は、S901で取得した推論結果情報に基づいてメタデータが生成可能かどうかを判定する。具体的には、制御部101は、推論結果情報のタイムスタンプを参照して、静止画の撮影指示を受け付けたタイミングと同じ、あるいはそれに近いタイムスタンプを検出した場合には、メタデータが生成可能であると判定してS903に進む。一方、制御部101は、メタデータが生成可能でないと判定した場合はメタデータを生成せずに、静止画撮影処理の一連の動作を終了する。
【0077】
S903において、制御部101は、S902で検出したタイムスタンプに該当する推論結果において、高い認識率を出力した行動ラベルの情報を、生成された静止画データに関連付ける。具体的には、制御部101は、記憶媒体109に記録された静止画データファイルのヘッダ情報に、メタデータとして追加記録する。制御部101は、メタデータを記録するとその後、本一連の処理を終了する。
【0078】
以上説明したように本実施形態では、随時入力されるLV画像に対する推論処理を実行して推論結果情報を生成しておき、撮影指示を受け付けつけると、(推論処理を実行することなく)生成されている推論結果情報からメタデータを生成するようにした。このようにすることで、撮影指示を受け付けてからメタデータを生成するまでに要する時間を短縮することが可能となる。また、このようにしても、被写体の行動を推論するための適切な範囲の動画を決定し、撮影対象の被写体の行動をより精度よく推論することが可能になる。
【0079】
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【0080】
発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。
【符号の説明】
【0081】
101…制御部、104…撮像部、106…表示部、107…推論部、108…記録部、201…LV画像バッファ