〔第1の実施形態〕
<撮像装置の構成>
図1は、第1の実施形態の情報処理装置としての撮像装置を模式的に示す図である。本発明は、デジタルカメラやデジタルビデオカメラの撮影に限らず、監視カメラ、Webカメラ、携帯電話、タブレット端末などの撮像装置にも適用できる。あるいは、これら撮影装置を制御したり、これら撮影装置から受け取った画像に基づいて解析を行うサーバやパーソナルコンピュータ、あるいは、撮像装置とサーバの組合せからなる情報処理システムにも適用できる。なお、本実施形態では、画像の解析、自動撮影、および、画像処理の全ての機能を備えた撮像装置を例にあげて説明を行う。
図1(a)に示す撮像装置101は、電源スイッチの操作を行うことができる操作部材(以後、電源ボタンというが、タッチパネルへのタップやフリック、スワイプなどの操作でもよい)などが設けられている。撮像を行う撮影レンズ群や撮像素子を含む筐体である鏡筒102は、撮像装置101に取り付けられ、鏡筒102を固定部103に対して回転駆動できる回転機構を設けている。チルト回転ユニット104は、鏡筒102を図1(b)に示すピッチ方向に回転できるモーター駆動機構であり、パン回転ユニット105は、鏡筒102をヨー方向に回転できるモーター駆動機構である。よって、鏡筒102は、1軸以上の方向に回転可能である。なお、図1(b)は、固定部103位置での軸定義である。角速度計106と加速度計107はともに、撮像装置101の固定部103に実装されている。そして、角速度計106や加速度計107に基づいて、撮像装置101の振動を検出し、チルト回転ユニットとパン回転ユニットを検出した揺れ角度に基づいて回転駆動する。これにより、可動部である鏡筒102の振れを補正したり、傾きを補正したりする構成となっている。
図2は、本実施形態の撮像装置の構成を示すブロック図である。
図2において、第1制御回路223は、プロセッサ(例えば、CPU、GPU、マイクロプロセッサ、MPUなど)、メモリ(例えば、DRAM、SRAMなど)からなる。これらは、各種処理を実行して撮像装置101の各ブロックを制御したり、各ブロック間でのデータ転送を制御したりする。不揮発性メモリ(EEPROM)216は、電気的に消去・記録可能なメモリであり、第1制御回路223の動作用の定数、プログラム等が記憶される。
図2において、ズームユニット201は、変倍を行うズームレンズを含む。ズーム駆動制御回路202は、ズームユニット201を駆動制御する。フォーカスユニット203は、ピント調整を行うレンズを含む。フォーカス駆動制御回路204は、フォーカスユニット203を駆動制御する。
撮像部206は、撮像素子とA/D変換器を備え、撮像素子が各レンズ群を通して入射する光を受け、その光量に応じた電荷の情報をアナログ画像データとして画像処理回路207に出力する。画像処理回路207は複数のALU(Arithmetic and Logic Unit)を搭載した演算回路であり、A/D変換により出力されたデジタル画像データに対して、歪曲補正やホワイトバランス調整や色補間処理等の画像処理を適用し、適用後のデジタル画像データを出力する。画像処理回路207から出力されたデジタル画像データは、画像記録回路208でJPEG形式等の記録用フォーマットに変換し、メモリ215や後述する映像出力回路217に送信される。
鏡筒回転駆動回路205は、チルト回転ユニット104、パン回転ユニット105を駆動して鏡筒102をチルト方向とパン方向に駆動させる。
装置揺れ検出回路209は、例えば撮像装置101の3軸方向の角速度を検出する角速度計(ジャイロセンサ)106や、装置の3軸方向の加速度を検出する加速度計(加速度センサ)107が搭載される。装置揺れ検出回路209は、検出された信号に基づいて、装置の回転角度や装置のシフト量などが演算される。
音声入力回路213は、撮像装置101に設けられたマイクから撮像装置101周辺の音声信号を取得し、アナログデジタル変換をして音声処理回路214に送信する。音声処理回路214は、入力されたデジタル音声信号の適正化処理等の音声に関する処理を行う。そして、音声処理回路214で処理された音声信号は、第1制御回路223によりメモリ215に送信される。メモリ215は、画像処理回路207、音声処理回路214により得られた画像信号及び音声信号を一時的に記憶する。
画像処理回路207及び音声処理回路214は、メモリ215に一時的に記憶された画像信号や音声信号を読み出して画像信号の符号化、音声信号の符号化などを行い、圧縮画像信号、圧縮音声信号を生成する。第1制御回路223は、これらの圧縮画像信号、圧縮音声信号を、記録再生回路220に送信する。
記録再生回路220は、記録媒体221に対して画像処理回路207及び音声処理回路214で生成された圧縮画像信号、圧縮音声信号、その他撮影に関する制御データ等を記録する。また、音声信号を圧縮符号化しない場合には、第1制御回路223は、音声処理回路214により生成された音声信号と画像処理回路207により生成された圧縮画像信号とを、記録再生回路220に送信し記録媒体221に記録させる。
記録媒体221は、撮像装置101に内蔵された記録媒体でも、取外し可能な記録媒体でもよい。記録媒体221は、撮像装置101で生成した圧縮画像信号、圧縮音声信号、音声信号などの各種データを記録することができ、不揮発性メモリ216よりも大容量な媒体が一般的に使用される。例えば、記録媒体221は、ハードディスク、光ディスク、光磁気ディスク、CD−R、DVD−R、磁気テープ、不揮発性の半導体メモリ、フラッシュメモリ、などのあらゆる方式の記録媒体を含む。
記録再生回路220は、記録媒体221に記録された圧縮画像信号、圧縮音声信号、音声信号、各種データ、プログラムを読み出す(再生する)。そして第1制御回路223は、読み出した圧縮画像信号及び圧縮音声信号を、画像処理回路207及び音声処理回路214に送信する。画像処理回路207及び音声処理回路214は、圧縮画像信号、圧縮音声信号を一時的にメモリ215に記憶させ、所定の手順で復号し、復号した信号を映像出力回路217、音声出力回路218に送信する。
音声入力回路213は複数のマイクが撮像装置101に搭載されており、音声処理回路214は複数のマイクが設置された平面上の音の方向を検出することができ、後述する探索や自動撮影に用いられる。さらに、音声処理回路214では、特定の音声コマンドを検出する。音声コマンドは事前に登録された、いくつかのコマンドの他、ユーザが特定音声を撮像装置に登録できる構成にしてもよい。また、音シーン認識も行うようにしてもよい。音シーン認識では、予め大量の音声データを基に機械学習により学習させたネットワークにより音シーン判定を行う。例えば、「歓声が上がっている」、「拍手している」、「声を発している」などの特定シーンを検出するためのネットワークが音声処理回路214に設定されている。そして、特定音シーンや特定音声コマンドを検出すると、第1制御回路223や第2制御回路211に、検出トリガー信号を出力する構成になっている。
撮像装置101のメインシステム全体を制御する第1制御回路223とは別に設けられた、第2制御回路211が第1制御回路223の供給電源を制御する。
第1電源回路210と第2電源回路212は、第1制御回路223と第2制御回路211を動作させるための、電源をそれぞれ供給する。撮像装置101に設けられた電源ボタンの押下により、まず第1制御回路223と第2制御回路211の両方に電源が供給されるが、後述するように、第1制御回路223は、第1電源回路210へ自らの電源供給をOFFするように制御する。第1制御回路223が動作していない間も、第2制御回路211は動作しており、装置揺れ検出回路209や音声処理回路214からの情報が入力される。第2制御回路は各種入力情報を基にして、第1制御回路223を起動するか否かの判定処理を行い、起動判定されると第1電源回路に電源供給指示をする構成になっている。
音声出力回路218は、例えば撮影時などに撮像装置101に内蔵されたスピーカーから予め設定された音声パターンを出力する。
LED制御回路224は、例えば撮影時などに撮像装置101に設けられたLEDを予め設定された点灯点滅パターンで制御する。
映像出力回路217は、例えば映像出力端子からなり、接続された外部ディスプレイ等に映像を表示させるために画像信号を送信する。また、音声出力回路218、映像出力回路217は、結合された1つの端子、例えばHDMI(登録商標)(High−Definition Multimedia Interface)端子のような端子であってもよい。
通信回路222は、撮像装置101と外部装置との間で通信を行うもので、例えば、音声信号、画像信号、圧縮音声信号、圧縮画像信号などのデータを送信したり受信したりする。また、撮影開始や終了コマンド、パン・チルトやズーム駆動等の、撮影にかかわる制御信号を受信して、撮像装置101と相互通信可能な外部機器の指示から撮像装置101を駆動する。また、撮像装置101と外部装置との間で、後述する学習処理回路219で処理される学習にかかわる各種パラメータなどの情報を送信したり受信したりする。通信回路222は、例えば、赤外線通信モジュール、Bluetooth(登録商標)通信モジュール、無線LAN通信モジュール、WirelessUSB、GPS受信機等の無線通信モジュールである。
<外部通信機器との構成>
図3は、撮像装置101と外部装置301との無線通信システムの構成例を示す図である。撮像装置101は撮影機能を有するデジタルカメラであり、外部装置301はBluetooth通信モジュール、無線LAN通信モジュールを含むスマートデバイスである。
撮像装置101とスマートデバイス301は、例えばIEEE802.11規格シリーズに準拠した無線LANによる通信302と、例えばBluetooth Low Energy(以下、「BLE」と呼ぶ。)などの、制御局と従属局などの主従関係を有する通信303とによって通信可能である。なお、無線LAN及びBLEは通信手法の一例であり、各通信装置は、2つ以上の通信機能を有し、例えば制御局と従属局との関係の中で通信を行う一方の通信機能によって、他方の通信機能の制御を行うことが可能であれば、他の通信手法が用いられてもよい。ただし、一般性を失うことなく、無線LANなどの第1の通信は、BLEなどの第2の通信より高速な通信が可能であり、また、第2の通信は、第1の通信よりも消費電力が少ないか通信可能距離が短いかの少なくともいずれかであるものとする。
スマートデバイス301の構成を、図4を用いて説明する。
スマートデバイス301は、例えば、無線LAN用の無線LAN制御回路401、及び、BLE用のBLE制御回路402に加え、公衆無線通信用の公衆回線制御回路406を有する。また、スマートデバイス301は、パケット送受信回路403をさらに有する。無線LAN制御回路401は、無線LANのRF制御、通信処理、IEEE802.11規格シリーズに準拠した無線LANによる通信の各種制御を行うドライバや無線LANによる通信に関するプロトコル処理を行う。BLE制御回路402は、BLEのRF制御、通信処理、BLEによる通信の各種制御を行うドライバやBLEによる通信に関するプロトコル処理を行う。公衆回線制御回路406は、公衆無線通信のRF制御、通信処理、公衆無線通信の各種制御を行うドライバや公衆無線通信関連のプロトコル処理を行う。公衆無線通信は例えばIMT(International Multimedia Telecommunications)規格やLTE(Long Term Evolution)規格などに準拠したものである。パケット送受信回路403は、無線LAN並びにBLEによる通信及び公衆無線通信に関するパケットの送信と受信との少なくともいずれかを実行するための処理を行う。なお、本例では、スマートデバイス301は、通信においてパケットの送信と受信との少なくともいずれかを行うものとして説明するが、パケット交換以外に、例えば回線交換など、他の通信形式が用いられてもよい。
スマートデバイス301は、例えば、制御回路411、記憶回路404、GPS受信部405、表示装置407、操作部材408、音声入力/処理回路409、電源回路410をさらに有する。制御回路411は、例えば、記憶回路404に記憶される制御プログラムを実行することにより、スマートデバイス301全体を制御する。記憶回路404は、例えば制御回路411が実行する制御プログラムと、通信に必要なパラメータ等の各種情報とを記憶する。後述する各種動作は、記憶回路404に記憶された制御プログラムを制御回路411が実行することにより、実現される。
電源回路410はスマートデバイス301に電源を供給する。表示装置407は、例えば、LCDやLEDのように視覚で認知可能な情報の出力、又はスピーカー等の音出力が可能な機能を有し、各種情報の表示を行う。操作部材408は、例えばユーザによるスマートデバイス301の操作を受け付けるボタン等である。なお、表示装置407及び操作部材408は、例えばタッチパネルなどの共通する部材によって構成されてもよい。
音声入力/処理回路409は、例えばスマートデバイス301に内蔵された汎用的なマイクから、ユーザが発した音声を取得し、音声認識処理により、ユーザの操作命令を取得する構成にしてもよい。
また、スマートデバイス内の専用のアプリケーションを介して、ユーザの発音により音声コマンドを取得する。そして、無線LANによる通信302を介して、撮像装置101の音声処理回路214に特定音声コマンド認識させるための特定音声コマンドとして登録することもできる。
GPS(Global positioning system)405は、衛星から通知されるGPS信号を受信し、GPS信号を解析し、スマートデバイス301の現在位置(経度・緯度情報)を推定する。もしくは、位置推定は、WPS(Wi−Fi Positioning System)等を利用して、周囲に存在する無線ネットワークの情報に基づいて、スマートデバイス301の現在位置を推定するようにしてもよい。取得した現在のGPS位置情報が予め事前に設定されている位置範囲(所定半径の範囲以内)に位置している場合に、BLE制御回路402を介して撮像装置101へ移動情報を通知し、後述する自動撮影や自動編集のためのパラメータとして使用する。また、GPS位置情報に所定以上の位置変化があった場合に、BLE制御回路402を介して撮像装置101へ移動情報を通知し、後述する自動撮影や自動編集のためのパラメータとして使用する。
上記のように撮像装置101とスマートデバイス301は、無線LAN制御回路401、及び、BLE制御回路402を用いた通信により、撮像装置101とデータのやりとりを行う。例えば、音声信号、画像信号、圧縮音声信号、圧縮画像信号などのデータを送信したり受信したりする。また、スマートデバイスから撮像装置101の撮影などの操作指示であったり、音声コマンド登録データ送信や、GPS位置情報に基づいた所定位置検出通知や場所移動通知を行う。また、スマートデバイス内の専用のアプリケーションを介しての学習用データの送受信も行う。
<アクセサリ類の構成>
図5は、撮像装置101と通信可能である外部装置501との構成例を示す図である。撮像装置101は撮影機能を有するデジタルカメラであり、外部装置501は、例えばBluetooth通信モジュールなどにより撮像装置101と通信可能である各種センシング部を含むウエアラブルデバイスである。
ウエアラブルデバイス501は、例えばユーザの腕などに装着できるような構成になっており、所定の周期でユーザの脈拍、心拍、血流等の生体情報を検出するセンサやユーザの運動状態を検出できる加速度センサ等が搭載されている。
生体情報検出回路502は、例えば、脈拍を検出する脈拍センサ、心拍を検出する心拍センサ、血流を検出する血流センサ、導電性高分子による皮膚の接触によって電位の変化を検出したことを検知するセンサを含む。本実施形態では、生体情報検出回路502として心拍センサを用いて説明する。心拍センサは、例えばLED等を用いて皮膚に赤外光を照射し、体組織を透過した赤外光を受光センサで検出して信号処理することによりユーザの心拍を検出する。生体情報検出回路502は、検出した生体情報を信号として、後述する制御回路607へ出力する。
ユーザの運動状態を検出する揺れ検出回路503は、例えば、加速度センサやジャイロセンサを搭載しており、加速度の情報に基づきユーザが移動しているかどうかや、腕を振り回してアクションをしているかどうかなどのモーションを検出することができる。
また、ユーザによるウエアラブルデバイス501の操作を受け付ける操作部材505や、LCDやLEDのように視覚で認知可能な情報を出力する表示装置504が搭載される。
ウエアラブルデバイス501の構成を、図6を用いて説明する。
ウエアラブルデバイス501は、例えば、制御回路607、通信回路601、生体情報検出回路502、揺れ検出回路503、表示装置504、操作部材505、電源回路606、記憶回路608を有する。
制御回路607は、例えば、記憶回路608に記憶される制御プログラムを実行することにより、ウエアラブルデバイス501全体を制御する。記憶回路608は、例えば制御回路607が実行する制御プログラムと、通信に必要なパラメータ等の各種情報とを記憶する。後述する各種動作は、例えば記憶回路608に記憶された制御プログラムを制御回路607が実行することにより、実現される。
電源回路606はウエアラブルデバイス501に電源を供給する。表示装置504は、例えば、LCDやLEDのように視覚で認知可能な情報の出力、又はスピーカー等の音出力が可能な機能を有し、各種情報の表示を行う。操作部材505は、例えばユーザによるウエアラブルデバイス501の操作を受け付けるボタン等である。なお、表示装置504及び操作部材505は、例えばタッチパネルなどの共通する部材によって構成されてもよい。
また、操作部材は、例えばウエアラブルデバイス501に内蔵された汎用的なマイクから、ユーザが発した音声を取得し、音声処理によりユーザが発した音声を取得し、音声認識処理により、ユーザの操作命令を取得する構成にしてもよい。
生体情報検出回路502や揺れ検出回路503から制御回路607で処理された各種検出情報は、通信回路601により、撮像装置101へ送信される。
例えば、ユーザの心拍の変化を検出したタイミングで検出情報を撮像装置101に送信したり、歩行移動/走行移動/立ち止まりなどの移動状態の変化のタイミングで検出情報を送信したりする。また、例えば、予め設定された腕ふりのモーションを検出したタイミングで検出情報を送信したり、予め設定された距離の移動を検出したタイミングで検出情報を送信したりする。
<撮像動作のシーケンス>
図7は、本実施形態における撮像装置101の第1制御回路223が受け持つ動作の例を説明するフローチャートである。
ユーザが撮像装置101に設けられた電源ボタンを操作すると、第1電源回路210により電源供給部から、第1制御回路223及び撮像装置101の各ブロックに電源を供給させる。
また、同様に第2制御回路211においても第2電源回路212により電源供給部から、第2制御回路に電源を供給させるが、第2制御回路の動作の詳細については後述する図8のフローチャートを用いて説明する。
電源が供給されると、図7の処理がスタートする。ステップS701(以下では、「ステップ」を単に「S」と省略する)では、起動条件の読み込みが行われる。本実施形態においては、起動条件は以下である。
(1)電源ボタンが手動で押下されて電源起動
(2)外部機器(例えば301)から外部通信(例えばBLE通信)からの指示で電源起動
(3)Subプロセッサ(第2制御回路211)から、電源起動
ここで、(3)のSubプロセッサから電源起動の場合は、Subプロセッサ内で演算された起動条件が読み込まれることになるが、詳細は後述する図8で説明する。
また、ここで読み込まれた起動条件は、被写体探索や自動撮影時の1つのパラメータ要素として用いられるが、後述して説明する。起動条件読み込みが終了するとS702に進む。
S702では、各種センサの読み込みが行われる。ここで読み込まれるセンサは、装置揺れ検出回路209からのジャイロセンサや加速度センサなどの振動検出するセンサであったりする。また、チルト回転ユニット104やパン回転ユニット105の回転位置であったりする。また、音声処理回路214にて検出される音声レベルや特定音声認識の検出トリガーや音方向検出だったりする。
また、図1乃至図6には図示していないが、環境情報を検出するセンサでも情報を取得する。
例えば、所定の周期で撮像装置101の周辺の温度を検出する温度センサや、撮像装置101の周辺の気圧の変化を検出する気圧センサがある。また、撮像装置101の周辺の明るさを検出する照度センサや、撮像装置101の周辺の湿度を検出する湿度センサや、撮像装置101の周辺の紫外線量を検出するUVセンサ等を備えてもよい。検出した温度情報や気圧情報や明るさ情報や湿度情報やUV情報に加え、検出した各種情報から所定時間間隔での変化率を算出した温度変化量や気圧変化量や明るさ変化量や湿度変化量や紫外線変化量などを後述する自動撮影などの判定に使用する。
S702で各種センサ読み込みが行われるとS703に進む。
S703では、外部機器からの通信が指示されているかを検出し、通信指示があった場合、外部機器との通信を行う。
例えば、スマートデバイス301から、無線LANやBLEを介した、リモート操作であったり、音声信号、画像信号、圧縮音声信号、圧縮画像信号などのデータを送信したり受信したりする。また、スマートデバイス301からの撮像装置101の撮影などの操作指示や、音声コマンド登録データ送信や、GPS位置情報に基づいた所定位置検出通知や場所移動通知や学習用データの送受信の指示があるかどうかの読み込みを行う。
また、例えば、ウエアラブルデバイス501から、ユーザの運動情報、腕のアクション情報、心拍などの生体情報の更新がある場合、BLEを介した情報の読み込みを行う。また、上述した環境情報を検出する各種センサは、撮像装置101に搭載してもよいが、スマートデバイス301或いはウエアラブルデバイス501に搭載していてもよく、その場合、BLEを介した環境情報の読み込みも行う。S703で外部機器からの通信読み込みが行われると、S704に進む。
S704では、モード設定判定が行われる。S704で設定されるモードは、以下の内から判定され選ばれる。
(1)自動撮影モード
[モード判定条件]
予め設定された各検出情報(画像、音、時間、振動、場所、身体の変化、環境変化)や、自動撮影モードに移行してからの経過時間や、過去の撮影情報などから、自動撮影を行うべきと判定されると、自動撮影モードに設定される。
[モード内処理]
自動撮影モード処理(S710)では、各検出情報(画像、音、時間、振動、場所、体の変化、環境変化)に基づいて、パン・チルトやズームを駆動して被写体を自動探索する。そして、ユーザの好みの撮影が行えるタイミングであると判定されると、自動で撮影が行われる。
(2)学習モード
[モード判定条件]
前回学習処理を行ってからの経過時間と、学習に使用することのできる画像に対応付けられた情報や学習データの数などから、自動学習を行うべきと判定されると、自動学習モードに設定される。または、スマートデバイス301からの通信を介して学習データが設定されるように指示があった場合も本モードに設定される。
[モード内処理]
自動学習モード処理(S712)では、ユーザの好みに合わせて自動撮影するための学習を行う。スマートデバイス301での各操作、スマートデバイス301からの学習情報通知などの情報を基にニューラルネットワークを用いて、ユーザの好みに合わせるための学習が行われる。スマートデバイス301での各操作の情報としては、例えば、撮像装置からの画像取得情報、専用アプリケーションを介して手動による編集指示がされた情報、撮像装置内の画像に対してユーザが入力した判定値情報がある。
なお、自動撮影モード処理、学習モード処理についての詳細は、後述する。
S704では、モード設定判定が低消費電力モードに設定されているかどうかを判定する。自動撮影モードに設定されていない状態で、ユーザの操作がない状態が所定時間継続するなどの所定の条件を満たす場合は、低消費電力モードになるように判定される。判定処理が行われるとS705に進む。
S705では、低消費電力モード条件であると判定されれば、S706に進む。
S706では、Subプロセッサ(第2制御回路211)へ、Subプロセッサ内で判定する起動要因に係る各種パラメータを(揺れ検出判定用パラメータ、音検出用パラメータ、時間経過検出パラメータ)を通知する。S706の処理を終了すると、S707に進み、Mainプロセッサ(第1制御回路223)の電源をOFFして、処理を終了する。
一方、S705で低消費電力モードでないと判定されると、S709に進み、モード設定が自動撮影モードであるか否かを判定し、自動撮影モードであればS710に進み、自動撮影モード処理が行われる。処理が終了すると、S702に戻り、処理を繰り返す。S709で、自動撮影モードでないと判定されると、S711に進む。
S711では、モード設定が学習モードであるか否かを判定し、学習モードであればS712に進み、学習モード処理が行われる。処理が終了すると、S702に戻り、処理を繰り返す。S711で、学習モードでないと判定されると、S702に戻り、処理を繰り返す。
図8は、本実施形態における撮像装置101の第2制御回路211が受け持つ動作の例を説明するフローチャートである。
ユーザが撮像装置101に設けられた電源ボタンを操作すると、第1電源回路210により電源供給部から第1制御回路223へ電源が供給されるのと同様に第2制御回路211においても第2電源回路212により電源供給部から第2制御回路211に電源が供給される。電源が供給されると、Subプロセッサ(第2制御回路211)が起動され、図8の処理がスタートする。
S801では、サンプリングの周期となる所定期間が経過したか否かを判定する。例えば10msecに設定された場合、10msec周期で、S802に進む。所定期間が経過していないと判定されると、Subプロセッサは何も処理をせずにS801に戻って所定期間が経過するのをまつ。
S802では、揺れ検出値が取得される。揺れ検出値は、装置揺れ検出回路209からのジャイロセンサや加速度センサなどの振動検出するセンサからの出力値である。
S802で揺れ検出値が取得されると、S803に進み、予め設定された揺れ状態検出の処理を行う。
S803で特定揺れ状態検出処理が行われると、S804に進み、予め設定された特定音検出処理を行う。
音声処理回路214内で上記の判定処理が行われており、特定音検出がされたかをS804で判定する。
S804で特定音検出処理が行われると、S805に進む。S805では、Mainプロセッサ(第1制御回路223)はOFF状態であるか否かを判定し、MainプロセッサがOFF状態であれば、S806に進み、予め設定された時間経過検出処理を行う。MainプロセッサがONからOFFへ遷移したときからの経過時間が計測されており、経過時間がパラメータTimeC以上であれば、時間経過と判定され、TimeCより小さければ、時間経過とは判定されない。
S806で時間経過検出処理が行われると、S807に進み、低消費電力モード解除判定がされたかを判定する。低消費電力モード解除条件は以下によって判定される。
(1)特定揺れ検出の判定条件
(2)特定音検出の判定条件
(3)時間経過判定の判定条件
S803での特定揺れ状態検出処理により、特定揺れ検出の判定条件に入ったか否かを判定できる。また、S804での特定音検出処理により、特定音検出の判定条件に入ったか否かを判定できる。また、S806での時間経過検出処理により、時間経過検出の判定条件に入ったか否かを判定できる。したがって、何れか一つ以上の条件に入っていれば、低消費電力モード解除を行うような判定が行われる。
S807で解除条件判定されると、S808に進みMainプロセッサの電源をONし、S809で、低消費電力モード解除と判定された条件(揺れ、音、時間)をMainプロセッサに通知し、S801に戻り処理をループする。
S807で何れの解除条件にも当てはまらず、低消費電力モード解除判定でないと判定されると、S801に戻り処理をループする。
S805で、MainプロセッサがON状態であると判定されている場合、S802乃至805までで取得した情報をMainプロセッサに通知し、S801に戻り処理をループする。
本実施形態においては、MainプロセッサがON状態においても揺れ検出や特定音検出をSubプロセッサで行い、検出結果をMainプロセッサに通知する構成にしている。しかしながら、MainプロセッサがONの場合は、S802乃至805の処理を行わず、Mainプロセッサ内の処理(図7のS702)で揺れ検出や特定音検出を検出する構成にしてもよい。
上記、揺れ検出や音検出や時間経過による低消費電力モード解除方法について詳しく説明したが、環境情報により低消費電力モード解除を行ってもよい。環境情報は温度や気圧や明るさや湿度や紫外線量の絶対量や変化量が所定閾値を超えたか否かで判定することができる。
<自動撮影モード処理>
図9を用いて、自動撮影モード処理の詳細を説明する。前述したように、以下の処理は、本実施形態における撮像装置101の第1制御回路223が制御を受け持つ。
S901では、画像処理回路207に撮像部206で取り込まれた信号を画像処理させ、被写体認識用の画像を生成させる。
生成された画像からは、人物や物体認識などの被写体認識が行われる。
人物を認識する場合、被写体の顔や人体を検出する。顔検出処理では、人物の顔を判断するためのパターンが予め定められており、撮像された画像内に含まれる該パターンに一致する箇所を人物の顔画像として検出することができる。
また、被写体の顔としての確からしさを示す信頼度も同時に算出し、信頼度は、例えば画像内における顔領域の大きさや、顔パターンとの一致度等から算出される。
物体認識についても同様に、予め登録されたパターンに一致する物体を認識することができる。
また、撮像された画像内の色相や彩度等のヒストグラムを使用する方法で特徴被写体を抽出する方法などもある。この場合、撮影画角内に捉えられている被写体の画像に関し、その色相や彩度等のヒストグラムから導出される分布を複数の区間に分け、区間ごとに撮像された画像を分類する処理が実行される。
例えば、撮像された画像について複数の色成分のヒストグラムが作成され、その山型の分布範囲で区分けし、同一の区間の組み合わせに属する領域にて撮像された画像が分類され、被写体の画像領域が認識される。
認識された被写体の画像領域ごとに評価値を算出することで、当該評価値が最も高い被写体の画像領域を主被写体領域として判定することができる。
以上の方法で、撮像情報から各被写体情報を得ることができる。
S902では、像揺れ補正量の算出を行う。具体的には、まず、装置揺れ検出回路209において取得した角速度および加速度情報に基づいて撮像装置の絶対角度の算出を行う。そして、絶対角度を打ち消す角度方向にチルト回転ユニット104およびパン回転ユニット105を動かす防振角度を求め、像揺れ補正量とする。
S903では、撮像装置の状態判定を行う。角速度情報や加速度情報やGPS位置情報などで検出した角度や移動量などにより、現在、撮像装置がどのような振動/動き状態なのかを判定する。
例えば、車に撮像装置101を装着して撮影する場合、移動された距離によって大きく周りの風景などの被写体情報が変化する。
そのため、車などに装着して速い速度で移動している「乗り物移動状態」か否かを判定し、後に説明する自動被写体探索に使用することができる。
また、角度の変化が大きいか否かを判定し、撮像装置101が揺れ角度がほとんどない「置き撮り状態」であるのかを判定する。
「置き撮り状態」である場合は、撮像装置101自体の角度変化はないと考えてよいので、置き撮り用の被写体探索を行うことができる。
また、比較的、角度変化が大きい場合は、「手持ち状態」と判定され、手持ち用の被写体探索を行うことができる。
S904では、被写体探索処理を行う。被写体探索は、例えば、以下の処理によって構成される。
(1)エリア分割
図11を用いて、エリア分割を説明する。図11(a)のように撮像装置(原点Oが撮像装置位置とする。)位置を中心として、全周囲でエリア分割を行う。図11(a)の例においては、チルト方向、パン方向それぞれ22.5度で分割している。図11(a)のように分割すると、チルト方向の角度が0度から離れるにつれて、水平方向の円周が小さくなり、エリア領域が小さくなる。よって、図11(b)のように、チルト角度が45度以上の場合、水平方向のエリア範囲は22.5度よりも大きく設定している。図11(c)、(d)に撮影画角内でのエリア分割された例を示す。軸1101は初期化時の撮像装置101の方向であり、この方向角度を基準位置としてエリア分割が行われる。1102は、撮像されている画像の画角エリアを示しており、そのときの画像例を図11(d)に示す。画角に写し出されている画像内ではエリア分割に基づいて、図11(d)の1103〜1118のように画像分割される。
(2)エリア毎の重要度レベルの算出
前記のように分割した各エリアについて、エリア内に存在する被写体やエリアのシーン状況に応じて、探索を行う優先順位を示す重要度レベルを算出する。被写体の状況に基づいた重要度レベルは、例えば、エリア内に存在する人物の数、人物の顔の大きさ、顔向き、顔検出の確からしさ、人物の表情、人物の個人認証結果に基づいて算出する。また、シーンの状況に応じた重要度レベルは、例えば、一般物体認識結果、シーン判別結果(青空、逆光、夕景など)、エリアの方向からする音のレベルや音声認識結果、エリア内の動き検知情報等である。また、撮像装置の状態判定(S903)で、撮像装置の振動状態が検出されており、振動状態に応じても重要度レベルが変化するようにもすることができる。例えば、「置き撮り状態」と判定された場合、顔認証で登録されている中で優先度の高い被写体(例えば撮像装置のユーザである)を中心に被写体探索が行われるように、特定人物の顔認証を検出すると重要度レベルが高くなるように判定される。また、後述する自動撮影も上記顔を優先して行われることになり、撮像装置のユーザが撮像装置を身に着けて持ち歩き撮影を行っている時間が多くても、撮像装置を取り外して机の上などに置くことで、ユーザが写った画像も多く残すことができる。このときパン・チルトにより探索可能であることから、撮像装置の置き角度などを考えなくても、適当に設置するだけでユーザが写った画像やたくさんの顔が写った集合写真などを残すことができる。なお、上記条件だけでは、各エリアに変化がない限りは、最も重要度レベルが高いエリアが同じとなり、その結果探索されるエリアがずっと変わらないことになってしまう。そこで、過去の撮影情報に応じて重要度レベルを変化させる。具体的には、所定時間継続して探索エリアに指定され続けたエリアは重要度レベルを下げたり、後述するS910にて撮影を行ったエリアでは、所定時間の間重要度レベルを下げたりしてもよい。
(3)探索対象エリアの決定
前記のように各エリアの重要度レベルが算出されたら、重要度レベルが高いエリアを探索対象エリアとして決定する。そして、探索対象エリアを画角に捉えるために必要なパン・チルト探索目標角度を算出する。
S905では、パン・チルト駆動を行う。具体的には、像振れ補正量とパン・チルト探索目標角度に基づいた制御サンプリングでの駆動角度を加算することで、パン・チルト駆動量を算出し、鏡筒回転駆動回路205によって、チルト回転ユニット104、パン回転ユニット105をそれぞれ駆動制御する。
S906ではズームユニット201を制御しズーム駆動を行う。具体的には、S904で決定した探索対象被写体の状態に応じてズームを駆動させる。例えば、探索対象被写体が人物の顔であるとき、画像上の顔が小さすぎると検出可能な最小サイズを下回ることで検出ができず、見失ってしまう恐れがある。そのような場合は、望遠側にズームすることで画像上の顔のサイズが大きくなるように制御する。一方で、画像上の顔が大きすぎる場合、被写体や撮像装置自体の動きによって被写体が画角から外れやすくなってしまう。そのような場合は、広角側にズームすることで、画面上の顔のサイズが小さくなるように制御する。このようにズーム制御を行うことで、被写体を追跡するのに適した状態を保つことができる。
S904乃至S906では、パン・チルトやズーム駆動により被写体探索を行う方法を説明したが、広角なレンズを複数使用して全方位を一度に撮影する撮像システムで被写体探索を行ってもよい。全方位カメラの場合、撮像によって得られる信号すべてを入力画像として、被写体検出などの画像処理を行うと膨大な処理が必要となる。そこで、画像の一部を切り出して、切り出した画像範囲の中で被写体の探索処理を行う構成にする。上述した方法と同様にエリア毎の重要度レベルを算出し、重要度レベルに基づいて切り出し位置を変更し、後述する自動撮影の判定を行う。これにより画像処理による消費電力の低減や高速な被写体探索が可能となる。
S907では、ユーザ(手動)による撮影指示があったがどうかを判定し、撮影指示があった場合、S910に進む。この時、ユーザ(手動)による撮影指示は、シャッターボタン押下によるものや、撮像装置の筺体を指等で軽く叩く(タップ)、音声コマンド入力、外部機器からの指示などによってもよい。タップ操作による撮影指示は、ユーザが撮像装置の筺体をタップした際、装置揺れ検出回路209によって短期間に連続した高周波の加速度を検知し、撮影のトリガーとする撮影指示方法である。音声コマンド入力は、ユーザが所定の撮影を指示する合言葉(例えば「写真とって」等)を発声した場合、音声処理回路214で音声を認識し、撮影のトリガーとする撮影指示方法である。外部機器からの指示は、例えば撮像装置とBluetooth接続したスマートフォン等から、専用のアプリケーションを介して送信されたシャッター指示信号をトリガーとする撮影指示方法である。
S907で撮影指示がなかった場合、S908に進み、自動撮影判定を行う。自動撮影判定では、自動撮影を行うかどうかの判定を行う。
(1)自動撮影を行うかどうかの判定
自動撮影を行うかどうかの判定は、機械学習の1つであるニューラルネットワークに基づく判定である。ニューラルネットワークの一例として、多層パーセプトロンによるネットワークの例を図10に示す。ニューラルネットワークは、入力値から出力値を予測することに使用されるものであり、予め入力値と、その入力に対して模範となる出力値とを学習しておくことで、新たな入力値に対して、学習した模範に倣った出力値を推定することができる。なお、学習の方法は後述する。図10の1001およびその縦に並ぶ丸は入力層のニューロンであり、1003およびその縦に並ぶ丸は中間層のニューロンであり、1004は出力層のニューロンである。1002のような矢印は各ニューロンを繋ぐ結合を示している。ニューラルネットワークに基づく判定では、入力層のニューロンに対して、現在の画角中に写る被写体や、シーンや撮像装置の状態に基づいた特徴量を入力として与え、多層パーセプトロンの順伝播則に基づく演算を経て出力層から出力された値を得る。そして、出力の値が閾値以上であれば、自動撮影を実施する判定を下す。なお、被写体の特徴は、現在のズーム倍率、現在の画角における一般物体認識結果、顔検出結果、現在画角に写る顔の数、顔の笑顔度・目瞑り度、顔角度、顔認証ID番号、被写体人物の視線角度、シーン判別結果、特定の構図の検出結果等を使用する。また、前回撮影時からの経過時間、現在時刻、GPS位置情報および前回撮影位置からの変化量、現在の音声レベル、声を発している人物、拍手、歓声が上がっているか否か等を使用してもよい。また、振動情報(加速度情報、撮像装置の状態)、環境情報(温度、気圧、照度、湿度、紫外線量)等を使用してもよい。更に、ウエアラブルデバイス501からの情報通知がある場合、通知情報(ユーザの運動情報、腕のアクション情報、心拍などの生体情報など)も特徴として使用してもよい。この特徴を所定の範囲の数値に変換し、特徴量として入力層の各ニューロンに与える。そのため、入力層の各ニューロンは上記使用する特徴量の数だけ必要となる。
なお、このニューラルネットワークに基づく判断は、後述する学習処理によって、各ニューロン間の結合重みを変化させることによって、出力値が変化し、判断の結果を学習結果に適応させることができる。
また、図7のS702で読み込んだMainプロセッサの起動条件によって、自動撮影される判定も変化する。例えば、タップ検出による起動や特定音声コマンドによる起動の場合は、ユーザが現在撮影してほしいための操作である可能性が非常に高い。そこで、撮影頻度が多くなるように設定されるようになる。
S909では、S908の自動撮影判定により撮影する判定が下された場合、S910に進み、下されなかった場合、撮影モード処理終了へと進む。
S910では、撮影を開始する。その際、フォーカス駆動制御回路204によるオートフォーカス制御を行う。また、不図示の絞り制御回路およびセンサゲイン制御回路、シャッター制御回路を用いて、被写体が適切な明るさになるような露出制御を行う。さらに、撮影後には画像処理回路207において、オートホワイトバランス処理、ノイズリダクション処理、ガンマ補正処理等、種々の画像処理を行い、画像を生成する。
なお、この撮影の際に、所定の条件を満たした時、撮像装置が撮影対象となる人物に対し撮影を行う旨を報知処理した上で撮影する手段を取ってもよい。報知の方法は、例えば、音声出力回路218からの音声やLED制御回路224によるLED点灯光を使用してもよいし、パン・チルトを駆動することにより視覚的に被写体の視線を誘導するモーション動作をしてもよい。所定の条件は、例えば、画角内における顔の数、顔の笑顔度・目瞑り度、被写体人物の視線角度や顔角度、顔認証ID番号、個人認証登録されている人物の数等である。また、撮影時の一般物体認識結果、シーン判別結果、前回撮影時からの経過時間、撮影時刻、GPS情報に基づく現在位置が景勝地であるか否か、撮影時の音声レベル、声を発している人物の有無、拍手、歓声が上がっているか否か等である。また、振動情報(加速度情報、撮像装置の状態)、環境情報(温度、気圧、照度、湿度、紫外線量)等である。これらの条件に基づき報知撮影を行うことによって、重要性が高いシーンにおいてカメラ目線の好ましい画像を残すことができる。
また、所定の条件を複数もち、各条件に応じて音声を変更したり、LEDの点灯方法(色や点滅時間など)を変更したり、パン・チルトのモーション方法(動き方や駆動速度)を変更してもよい。
S911では、S910にて生成した画像を加工したり、動画に追加したりといった編集処理を行う。画像加工については、具体的には、人物の顔や合焦位置に基づいたトリミング処理、画像の回転処理、HDR(ハイダイナミックレンジ)効果、ボケ効果、色変換フィルタ効果などである。画像加工は、S910にて生成した画像を元に、上記の処理の組み合わせによって複数生成し、前記S910にて生成した画像とは別に保存するとしてもよい。また、動画処理については、撮影した動画または静止画を、生成済みの編集動画にスライド、ズーム、フェードの特殊効果処理をつけながら追加するといった処理をしてもよい。S911での編集についても、撮影画像の情報、或いは撮影前に検出した各種情報をニューラルネットワークに基づく判断によって、画像加工の方法を判定することもできる。
S912では撮影画像の学習情報生成処理を行う。ここでは、後述する学習処理に使用する情報を生成し、記録する。
図12は、本実施形態における学習情報生成処理のフローチャートである。S1201では、第1制御回路223は、S910で手動撮影が行われていればS1202に進み、自動撮影が行われていればこのフローチャートを終了する。
S1202では、第1制御回路223は、撮影画像の特徴データを抽出する。具体的には、今回の撮影画像における、撮影時のズーム倍率、撮影時の一般物体認識結果、顔検出結果、撮影画像に写る顔の数、顔の笑顔度・目瞑り度、顔角度、顔認証ID番号、被写体人物の視線角度等である。また、シーン判別結果、前回撮影時からの経過時間、撮影時刻、GPS位置情報および前回撮影位置からの変化量、撮影時の音声レベル、声を発している人物、拍手、歓声が上がっているか否か等である。また、振動情報(加速度情報、撮像装置の状態)、環境情報(温度、気圧、照度、湿度、紫外線量)、動画撮影時間、手動撮影指示によるものか否か、等である。更にユーザの画像の好みを数値化したニューラルネットワークの出力であるスコアも演算する。
S1203では、第1制御回路223は、不揮発性メモリ216にアクセスし、既存の追加教師データを読み出す。本実施形態では、図13に示すように、固定教師データと追加教師データからなる学習情報を不揮発性メモリ216に保持させている。固定教師データは、撮像装置101の出荷時に用意された、あるいは、サーバから取得した、標準的な判断基準を学習するための特徴データの群である。これに対し、追加教師データは、撮像装置101が手動撮影をした画像から抽出した特徴データの群であり、ユーザの好みを反映させるために用いられる。
新しく得られた特徴データを用いて学習を行うことで、ユーザの直近の好みを反映させることが可能になる。しかしながら、手動撮影した画像から抽出した特徴データに基づく学習を無尽蔵に進めてしまうと、出荷時に用意された特徴データの量の比率が小さくなり、学習結果が偏ったものになってしまう可能性がある。そこで、本実施形態では、学習情報を固定教師データと追加教師データに分類し、それぞれの教師データとして保持新たな特徴データが得られた際には、基本的な特徴データを記憶させた固定教師データは更新せずに、追加教師データのみを更新する構成としている。
S1204では、第1制御回路223は、S1202で抽出した特徴データと、S1203で読み出した既存の追加教師データに含まれる特徴データの優先順位を初期化する。例えば、最も高い優先順位を1、最も低い優先順位を5で示し、S1202で抽出した特徴データと、S1203で読み出した既存の追加教師データに含まれる特徴データの優先順位を全て3に設定する。
S1205では、第1制御回路223は、S1204で優先順位を初期化した特徴データのうちいずれか1つを選択する。
S1206では、第1制御回路223は、選択した特徴データを、固定教師データに含まれているそれぞれの特徴データと比較し、いずれかに類似するか否かを判定する。第1制御回路223は、選択した特徴データと固定教師データの特徴データの類似度が閾値以上である場合に類似していると判定し、類似していると判定した場合にはS1207に進み、類似していないと判定した場合にはS1208に進む。
S1207では、第1制御回路223は、選択した特徴データの優先順位を低くする。類似する程度が大きいほど、優先順位を低くするようにしてもよい。
S1208では、第1制御回路223は、選択した特徴データの優先順位を高くする。類似する程度が小さいほど、優先順位を高くするようにしてもよい。
S1209では、第1制御回路223は、選択した特徴データを取得した画像を撮像した日時が、所定の日時以降であるかを判定し、所定の日時以降であればS1211に進み、所定の日時より前であればS1210に進む。この所定日時としては、例えばS1209の処理を行っている日の半年前、あるいは、1年前に設定すればよい。あるいは、手動撮影の頻度に応じて、頻度が低いほど、過去の日時を所定の日時として設定するようにしてもよい。
S1210では、第1制御回路223は、撮像した日時が所定の日時より前(過去)である画像から抽出した特徴データの優先順位を下げる。
S1211では、第1制御回路223は、S1202で抽出した特徴データと、S1203で読み出した既存の追加教師データに含まれる特徴データの全てを、S1205において選択したかを判定する。まだ選択していない特徴データがあればS1205に戻り、全ての特徴データが選択済みであれば、S1212に進む。
S1212では、第1制御回路223は、特徴データを優先順位が高い順にソートする。このとき、同一の優先順位が割り振られた特徴データにおいては、対応する画像の撮像日時が新しいものから順にソートする。
S1213では、第1制御回路223は、特徴データをソートした順に所定数だけ選択し、新たな追加教師データとして学習情報を更新する。
なお、S1206乃至S1212に示す処理は、特徴データをソートする方法としての一つの例であって、他の方法でも構わない。例えば、単に、対応する画像の撮像日時の新しい特徴データから順にソートしても良いし、ランダムに特徴データをソートする構成としても構わない。また、S1213において、新たな追加教師データとして選択する特徴データの数は固定であっても、可変であってもよい。例えば、ユーザの好みを積極的に学習に反映させるか否かを、メニュー画面で選択できるようにし、ユーザが積極的に学習に反映させることを選択した場合には、新たな追加教師データとして選択する特徴データの数の上限を増やすようにしてもよい。
以上のようにして更新された学習データを、不揮発性メモリ216へ書き込む。あるいは、記録媒体221内に、所謂カタログデータとして各々の撮影画像の情報をリスト化した形式で保存する、としてもよい。
そして、図9に戻り、S913では過去撮影情報の更新を行う。具体的には、S908の説明で述べたエリア毎の撮影枚数や、個人認証登録された人物毎の撮影枚数、一般物体認識で認識された被写体毎の撮影枚数、シーン判別のシーン毎の撮影枚数について、今回撮影された画像が該当する枚数のカウントを1つ増やす。
<学習モード処理>
次に、本実施形態におけるユーザの好みに合わせた学習について説明する。
本実施形態では、図10に示すようなニューラルネットワークを用い、機械学習アルゴリズムを使用して、学習処理回路219にてユーザの好みに合わせた学習を行う。学習処理回路219は、例えば、NVIDIA社のJetson TX2を用いる。ニューラルネットワークは、入力値から出力値を予測することに使用されるものであり、予め入力値と出力値の関係を学習しておくことで、新たな入力値に対して、出力値を推定することができる。ニューラルネットワークを用いることにより、前述の自動撮影や被写体探索に対して、ユーザの好みに合わせた学習を行う。
また、ニューラルネットワークに入力する特徴データともなる被写体登録(顔認証や一般物体認識など)も行う。
本実施形態においては、自動撮影の行う基準を学習する。
自動撮影に対する学習について説明する。自動撮影では、ユーザの好みに合った画像の撮影を自動で行うための学習を行う。図9のフローを用いた説明で上述したように、撮影後(S912)に学習情報生成処理が行われている。後述する方法により学習させる画像を選択させ、画像に含まれる学習情報を基に、ニューラルネットワークの重みを変化させることで学習する。
次に、学習方法について説明する。学習方法としては、「撮像装置内の学習」と「通信機器との連携による学習」がある。撮像装置内学習の方法について、以下説明する。
本実施形態における撮像装置内学習は、以下の方法がある。
(1)ユーザによる撮影指示時の検出情報による学習
図9のS907乃至S913で説明したとおり、本実施形態においては、撮像装置101は、手動撮影と自動撮影の2つの撮影を行うことができる。S907で手動操作による撮影指示(上記説明したとおり、3つの判定に基づいて行う。)があった場合は、S912において、撮影画像は手動で撮影された画像であるとの情報が付加される。また、S909にて自動撮影ONと判定されて撮影された場合においては、S912において、撮影画像は自動で撮影された画像であると情報が付加される。
ここで手動撮影される場合、ユーザの好みの被写体、好みのシーン、好みの場所や時間間隔を基に撮影された可能性が非常に高い。よって、手動撮影時に得られた各特徴データや撮影画像の学習情報を基とした学習が行われるようにする。
次に、本実施形態における外部通信機器との連携による学習を説明する。本実施形態における外部通信機器との連携による学習には、以下の方法がある。
(2)外部通信機器で画像を取得したことによる学習
図3で説明したとおり、撮像装置101と外部機器301は、通信302、303の通信手段を有している。主に通信302によって画像の送受信が行われ、外部機器301内の専用のアプリケーションを介して、撮像装置101内の画像を外部機器301に通信取得することができる。また、撮像装置101内の保存されている画像データのサムネイル画像を外部機器301内の専用のアプリケーションを介して、閲覧可能な構成である。これにより、ユーザはサムネイル画像の中から、自分が気に入った画像を選択して、画像確認し、画像取得指示を操作することで外部機器301に画像取得できる。
このとき、ユーザが画像を選んで送信指示し取得しているので、取得された画像はユーザの好みの画像である可能性が非常に高い。よって取得された画像は、学習すべき画像であると判定し、取得された画像の学習情報を基に学習することでユーザの好みの各種学習を行うことができる。
操作例を説明する。スマートデバイスである外部機器301の専用のアプリケーションを介して、撮像装置101内の画像を閲覧している例を図16に示す。表示装置407に撮像装置内に保存されている画像データのサムネイル画像(1604乃至1609)を表示してあり、ユーザは自分が気に入った画像を選択し画像取得を行える。このとき、表示方法を変更する表示方法変更部(1601、1602、1603)が設けられている。1601を押下すると表示順序が日時優先表示モードに変更され、撮像装置101内画像の撮影日時の順番で表示装置407に画像が表示される。(例えば、1604は日時が新しく、1609が日時は古いように表示される。)1602を押下するとおすすめ画像優先表示モードに変更される。図9S912で演算した各画像に対してユーザの好みを判定したスコアに基づいて、撮像装置101内画像のスコアの高い順番で表示装置407に画像が表示される。(例えば、1604はスコアが高く、1609がスコアは低いように表示される。)1603を押下すると人物や物体被写体を指定でき、続いて特定の人物や物体被写体を指定すると特定の被写体のみを表示することもできる。
1601乃至1603は同時に設定をONすることもでき、例えばすべての設定がONされている場合、指定された被写体のみを表示し、且つ、撮影日時が新しい画像が優先され、且つ、スコアの高い画像が優先され、表示されることになる。
このように、撮影画像に対してもユーザの好みを学習しているため、撮影された大量の画像の中から簡単な確認作業でユーザの好みの画像のみを簡単に抽出することが可能である。
(3)外部通信機器で、パラメータを変更することによる学習
上記で説明したとおり、撮像装置101と外部機器301は、通信手段を有しており、撮像装置101内に現在設定されている学習パラメータを外部機器301に通信し、外部機器301の記憶回路404に保存することができる。学習パラメータとしては、例えば、ニューラルネットワークの重みや、ニューラルネットワークに入力する被写体の選択などが考えられる。また、外部機器301内の専用のアプリケーションを介して、専用のサーバにセットされた学習パラメータを公衆回線制御回路406を介して取得して、撮像装置101内の学習パラメータに設定することもできる構成とする。これにより、ある時点でのパラメータを外部機器301に保存しておいて、撮像装置101に設定することで学習パラメータを戻すこともできるし、他のユーザが持つ学習パラメータを専用のサーバを介して取得し自身の撮像装置101に設定することもできる。
次に、学習処理シーケンスについて説明する。
図7のS704のモード設定判定にて、学習処理を行うべきか否かを判定し、学習処理を行う場合、学習モードであると判定され、S712の学習モード処理を行う。
学習モードの判定条件を説明する。学習モードに移行するか否かは、前回学習処理を行ってからの経過時間と、学習に使用できる情報の数、通信機器を介して学習処理指示があったかなどから判定される。S704のモード設定判定処理内で判定される、学習モードに移行すべきか否かの判定処理フローを図14に示す。
S704のモード設定判定処理内で学習モード判定が開始指示されると、図14の処理がスタートする。S1401では、外部機器301からの学習指示があるかどうかを判定する。具体的には、<通信機器で、撮像装置パラメータを変更することによる学習>のように、学習パラメータをセットする指示があったかどうかの判定である。S1401で、外部機器からの学習指示があった場合、S1408に進み、学習モード判定をTRUEにして、S712の処理を行うように設定する。S1401で外部機器からの学習指示がない場合、S1402に進む。S1402では外部機器からの登録指示があるかどうかを判定する。具体的には、<通信機器で画像取得された画像情報による学習>のように、新たな画像を登録する指示があったかどうかの判定である。S1402で、外部機器からの登録指示があった場合、S1408に進み、学習モード判定をTRUEにして、S712の処理を行うように設定し、学習モード判定処理を終了する。S1402で外部機器からの登録指示がない場合、S1403に進む。
S1403では、前回学習処理(ニューラルネットワークの重みの再計算)が行われてからの経過時間TimeNを取得し、S1404に進む。S1404では、学習する新規のデータ数DN(前回学習処理が行われてからの経過時間TimeNの間で、学習するように指定された画像の数)を取得し、S1405に進む。この新規のデータ数DNは、追加教師データに新たに追加された特徴データの数を当てはめてもよいし、単に手動撮影が行われた回数を当てはめてもよい。S1405では、TimeNから閾値DTを演算する。例えば、TimeNが所定値よりも小さい場合の閾値DTaが、所定値よりも大きい場合の閾値DTbよりも大きく設定されており、時間経過によって、閾値が小さくなるように設定してある。これにより、学習データが少ない場合においても、時間経過が大きいと再度学習するようにすることで、使用時間に応じて撮像装置が学習変化し易いようにしてある。
S1405で閾値DTを演算すると、S1406に進み、学習するデータ数DNが、閾値DTよりも大きいか否かを判定する。DNが、閾値DTよりも大きい場合、S1407に進み、DNを0に設定した後、S1408に進み、学習モード判定をTRUEにして、S712の処理を行うように設定し、学習モード判定処理を終了する。
S1406でDNが、閾値DT以下の場合、S1409に進む。外部機器からの登録指示も、外部機器からの学習指示もなく、且つ学習データ数も所定値以下であるので、学習モード判定をFALSEにし、S712の処理は行わないように設定し、学習モード判定処理を終了する。
次に、学習モード処理(S712)内の処理について説明する。学習モード処理の詳細なフローを図15に示す。
図7のS711で学習モードと判定され、S712に進むと、図15の処理がスタートする。S1501では、外部機器301からの学習指示があるかどうかを判定する。S1501で、外部機器からの学習指示があった場合、S1502に進む。S1502では、外部機器から通信された学習パラメータを各判定器(ニューラルネットワークの重みなど)に設定し、S1506に進む。
S1501で外部機器301からの学習指示がない場合、S1503に進み、外部機器301からの登録指示があるかどうかを判定する。外部機器からの登録指示があった場合、S1504に進み、登録指示がなければS1505に進む。S1504では外部機器によって取得された画像に対して、図12のS1202〜S1212に示す学習情報生成処理を行い、S1505に進む。このS1504の処理により、外部機器によって取得された画像に含まれる特徴データのうち、学習情報生成処理において優先順位が高いと判断されたものが、追加教師データに加えられる。
S1505で学習(ニューラルネットワークの重みの再計算)を行う。誤差逆伝搬法或いは、勾配降下法などの方法を使って再学習させ、ニューラルネットワークの重みを再計算して、各判定器のパラメータを変更する。学習パラメータが設定されると、S1506に進む。
S1506では、ファイル内の画像を再スコア付する。本実施形態においては、学習結果に基づいてファイル(記録媒体221)内に保存されているすべての撮影画像にスコアを付けておき、付けられたスコアに応じて、自動編集や自動ファイル削除を行う構成となっている。よって、再学習や外部機器からの学習パラメータのセットが行われた場合には、撮影済み画像のスコアも更新を行う必要がある。よって、S1506では、ファイル内に保存されている撮影画像に対して新たなスコアを付ける再計算が行われ、処理が終了すると学習モード処理を終了する。
本実施形態においては、撮像装置101内で、学習する構成を基に説明したが、外部機器301側に学習処理をもち、学習に必要なデータを外部機器301に通信し、外部機器側でのみ学習を実行する構成でも同様の学習効果を実現可能である。その場合、上記<通信機器で、パラメータを変更することによる学習>で説明したように、外部機器側で学習したニューラルネットワークの重みなどのパラメータを撮像装置101に通信により設定することで学習を行う構成にしてもよい。
また、撮像装置101内と、外部機器301内の両方に、それぞれ学習処理をもつ構成にしてもよい。例えば撮像装置101内で学習モードが行われるタイミングで外部機器301が持つ学習情報を撮像装置101に通信し、学習パラメータをマージすることで学習を行う構成にしてもよい。
また、上記実施形態では、撮像装置101が、学習処理回路219および学習情報を記憶するための不揮発性メモリ216を備える構成としたが、これらを別々の装置に搭載し、互いに通信することで上記処理を行うシステムとして構成することもできる。
(他の実施形態)
また本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現できる。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現できる。