説明

プログラムおよび情報変換装置

【課題】学習機能を有する装置であっても、個々の装置ではじめから学習しなければならないという課題を解決すること。
【解決手段】プログラムは、第1装置が学習により適応させた第1学習データを取得する取得ステップと、第2装置が学習により適応させる第2学習データのデータ形式に基づいて、取得した第1学習データを、第2学習データのデータ形式に適合するデータ形式の学習データに変換するデータ変換ステップとをコンピュータに実行させる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラムおよび情報変換装置に関する。
【背景技術】
【0002】
カメラで撮像した人物の画像をテンプレートとして登録する記憶手段と、認証時に撮像した画像と、予めテンプレート画像として登録している人物の画像とのテンプレートマッチングによって、認証対象の人物が登録されているか否かを判断する認証手段とを備えている顔認証装置が知られている(例えば、下記特許文献1参照。)。
[先行技術文献]
[特許文献]
[特許文献1]特開2008−186099号公報
【発明の概要】
【発明が解決しようとする課題】
【0003】
家族等の特定人物の顔画像データを用いてカメラ内で人物の顔を学習して、顔の識別処理に用いるデータを特定人物の顔に適応させることで、顔の識別率を高めることができても、その効果は個々のカメラを用いる場合に限られる。例えば新しく購入したカメラを用いる場合、顔の学習をはじめからやり直すことになってしまう。新しいカメラで十分に学習が進むまでは、顔の識別率が低いまま使用し続けなければならない。このように、学習機能を有する装置であっても、個々の装置ではじめから学習していかなければならないという課題があった。
【課題を解決するための手段】
【0004】
本発明の一態様におけるプログラムは、第1装置が学習により適応させた第1学習データを取得する取得ステップと、第2装置が学習により適応させる第2学習データのデータ形式に基づいて、取得した第1学習データを、第2学習データのデータ形式に適合するデータ形式の学習データに変換するデータ変換ステップとをコンピュータに実行させる。
【0005】
本発明の一態様における情報変換装置は、第1装置が学習により適応させた第1学習データを取得する取得部と、第2装置が学習により適応させる第2学習データのデータ形式に基づいて、取得した第1学習データを、第2学習データのデータ形式に適合するデータ形式の学習データに変換するデータ変換部とを備える。
【0006】
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【図面の簡単な説明】
【0007】
【図1】本実施形態に係るシステムの概念を説明する概念図である。
【図2】カメラ10bのシステム構成図である。
【図3】カメラ10が人物の顔を学習する場合に実行する処理のフロー図である。
【図4】カメラ10が撮像動作のタイムラグを学習する処理のフロー図である。
【図5】パーソナルコンピュータ20による学習済みデータの処理フローを示す図である。
【図6】サーバ30が学習済みデータを変換する処理フローを示す図である。
【図7】テンプレート画像のデータ変換を模式的に示す図である。
【図8】タイムラグ値の変換を模式的に示す図である。
【図9】カメラ10bにおける学習データを設定する処理フローを示す図である。
【発明を実施するための形態】
【0008】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0009】
図1は、本実施形態に係るシステムの概念を説明する概念図である。本システムは、撮像装置の一例としてのカメラ10aおよびカメラ10b、パーソナルコンピュータ20、ネットワーク27およびサーバ30を備える。本システムは、カメラ10aが学習によって獲得した顔画像データ等の学習済みデータを、新しいカメラ10bが内部で学習処理に用いるデータ形式の学習データに変換して、カメラ10bに提供する。
【0010】
例えば、カメラ10aは、学習データの一例としての顔識別用のテンプレート画像を学習する機能を有する。カメラ10aは、ユーザ17の家族等の特定人物の顔を撮像した場合に、特定人物の顔画像のデータを用いて、特定人物に適応させたテンプレート画像のデータを生成する。カメラ10aは、適応させたテンプレート画像のデータを、特定人物の顔識別用のテンプレート画像のデータとして記録し直す。カメラ10aは、新たに撮像した画像データに対して、現在記録しているテンプレート画像のデータを用いて顔識別処理をして、特定人物の顔を検出する。このため、カメラ10aが使用されるほど、顔の識別率が高まる。
【0011】
カメラ10bは、ユーザ17が新規に購入したカメラであり、カメラ10aと同様に、顔識別用のテンプレート画像を学習によって適応させる機能を有する。ここで、カメラ10bは、カメラ10aとは異なるデータ形式のテンプレート画像を用いることで、カメラ10aよりも高い顔識別能力を持つとする。例えば、カメラ10bは、より多画素のテンプレート画像のデータを学習によって生成する。しかし、カメラ10bには、多くの人物の顔にマッチする汎用のテンプレート画像のデータが工場出荷時に記録されており、ユーザ17の家族等の特定人物の顔を他の人物と区別して検出することは実質的にできない。したがって、ユーザ17がカメラ10bを使用し始めた時点では、カメラ10bによる特定人物の顔の識別率は、カメラ10aよりも劣る。
【0012】
本システムにおいて、カメラ10aは、記録しているテンプレート画像のデータを記録媒体15に書き出す。パーソナルコンピュータ20は、記録媒体15から読み出したテンプレート画像のデータを、ネットワーク27を介してサーバ30に送信して、カメラ10b用のデータ形式に変換する旨を依頼する。情報変換装置の一例としてのサーバ30は、ネットワーク27を介してテンプレート画像のデータをサーバ30から受信すると、受信したテンプレート画像のデータを、カメラ10b用のデータ形式のデータに変換する。例えば、サーバ30は、受信したテンプレート画像のデータに対して画素数を増加させる処理を行う。具体的には、サーバ30は、受信したテンプレート画像のデータを、カメラ10bが内部で学習に用いる画素数と同一の画素数のテンプレート画像のデータに変換する。サーバ30は、変換したテンプレート画像のデータを、ネットワーク27を介してパーソナルコンピュータ20に送信する。パーソナルコンピュータ20は、ネットワーク27を介して受信したテンプレート画像のデータを、記録媒体15に書き出す。
【0013】
カメラ10bは、サーバ30によって変換されたテンプレート画像のデータを記録媒体15から読み出して、顔識別用のテンプレート画像のデータとして内部に記録する。カメラ10bは、撮像して得た画像データに対して、記録しているテンプレート画像のデータを用いて顔識別処理を行う。このため、カメラ10bは、ユーザ17が使用し始めてすぐに、特定人物と他の人物とを区別することができる。本システムによれば、カメラ10aで学習済みのテンプレート画像のデータをカメラ10bで引き続き利用することができるので、カメラ10bが工場出荷時の汎用のテンプレート画像のデータから学習をし始める必要がない。このため、カメラ10aは、特定人物に対して高い識別率を最初から発揮することができる。
【0014】
図2は、カメラ10bのシステム構成図である。カメラ10bは、主にズームレンズ221等が含まれる光学系を備える。被写体像は、光軸219に沿ってズームレンズ221に入射して撮像素子231の結像面に結像する。ズームレンズ221および撮像素子231の機能ブロックは、撮像部として機能する。
【0015】
撮像素子231は、ズームレンズ221を透過して入射する被写体像である光学像を光電変換して被写体を撮像する素子である。撮像素子231としては、例えば、CCD、CMOSセンサを用いることができる。撮像素子231で光電変換された被写体像は、A/D変換器232でアナログ信号からデジタル信号に変換される。撮像素子231の電荷読み出し制御およびA/D変換器232の変換制御は、メモリ制御部233の同期制御を受けたタイミング発生部234が供給するクロック信号により同期が計られる。
【0016】
デジタル信号に変換された被写体像は、画像データとして順次処理される。A/D変換器232によりデジタル信号に変換された画像データは、メモリ制御部233の制御に従い、一旦内部メモリ235に記憶される。内部メモリ235は、高速で読み書きのできるランダムアクセスメモリであり、例えばDRAM、SRAMなどが用いられる。内部メモリ235は、連写撮像、動画撮像において高速に連続して画像データが生成される場合に、画像処理の順番を待つバッファメモリとしての役割を担う。
【0017】
また、内部メモリ235は、画像処理部237が行う画像処理、圧縮処理において、ワークメモリとしての役割も担う。特に本実施形態においては、内部メモリ235は、撮像画像の画像データだけでなく、テンプレート画像等の学習データを一時的に保持する役割も担う。したがって、内部メモリ235は、これらの役割を担うに相当する十分なメモリ容量を備える。
【0018】
システムメモリ236は、電気的に消去・記録可能な不揮発性メモリであり、例えばEEPROM(登録商標)等により構成される。システムメモリ236は、カメラ10bの動作時に必要な定数、変数、プログラム等を、カメラ10bの非動作時にも失われないように記録している。カメラ10bの全体を直接的または間接的に制御するシステム制御部250は、定数、変数、プログラム等を適宜に内部メモリ235に展開して、カメラ10bの制御に利用する。システムメモリ236は、テンプレート画像等の学習データを記録する。
【0019】
画像処理部237は、設定されている撮像モード、ユーザからの指示に則して、画像データを所定の画像フォーマットに変換する。例えば、静止画像データとしてJPEGファイルを生成する場合、色変換処理、ガンマ処理、ホワイトバランス処理等の画像処理を行った後に適応離散コサイン変換等を施して圧縮処理をする。
【0020】
また、動画像データとしてMPEGファイルを生成する場合、所定の画素数に縮小されて生成された連続する静止画データとしてのフレーム画像データに対して、フレーム内符号化、フレーム間符号化を施して圧縮処理をする。画像処理部237によって処理された静止画像データ、動画像データは、内部メモリ235から記録媒体IF240を介して、記録媒体209に記録される。
【0021】
画像処理部237は、記録用に処理される画像データに並行して、表示用の画像データを生成する。生成された表示用の画像データは、表示制御部238の制御に従って、D/A変換器239でアナログ信号に変換され、表示部201に表示される。記録の有無に関わらず、逐次表示用の画像データを生成して表示部201に表示すれば、ライブビュー機能を実現することができる。また、システム制御部250は、画像の表示と共に、もしくは画像を表示することなく、カメラ10bの各種設定に関する様々なメニュー項目も、表示部201に表示することができる。
【0022】
本実施形態において画像処理部237は、テンプレート画像のデータを用いた顔の識別処理を行う。画像処理部237は、内部メモリ235に展開されたテンプレート画像のデータを用いて、被写体像の画像データから顔を検出する。画像処理部237は、顔を検出した場合、顔検出枠等の顔検出結果を被写体像の画像データに重畳して、表示用の画像データを生成する。顔検出結果が重畳された表示用の画像データは、表示制御部238の制御に従って、表示部201に表示される。
【0023】
カメラ10bは、ユーザ17からの操作を受け付ける操作部材202を複数備えているが、システム制御部250は、これら操作部材202が操作されたことを検知して操作に応じた動作を実行する。本実施形態において、操作部材202は、特定人物の顔が写っている位置を指定する操作を受け付ける。また、操作部材202は、特定人物の顔を学習すべき旨の操作を受け付ける。システム制御部250は、操作部材202が受け付けた操作に従って、指定された位置の顔画像のデータにテンプレート画像のデータを適応させるよう、画像処理部237に指示する。システム制御部250は、画像処理部237が適応させたテンプレート画像のデータを、内部メモリ235に記憶するとともに、システムメモリ236に記録させる。
【0024】
また、カメラ10bはレリーズスイッチ207を備える。レリーズスイッチ207は、カメラ10bの動作モードが撮像モードに設定されている場合、押下げ検知により撮像素子231による被写体像の取得動作を実行する。一方、カメラ10bの動作モードが画像データ取得モードに設定されている場合、押下げ検知により画像データ取得モードを解除してカメラ10bの動作モードを撮像モードに切り換える。
【0025】
ズームレンズ221は、システム制御部250の統括制御のもと、ズーム制御部243によって制御される。ズーム制御部243は、ユーザの指示に応じてズームレンズ221を駆動して、被写体像の画角を変更する。システム制御部250は、ズーム制御部243によって検出されるズームレンズ221の位置を取得してカメラ10bの画角情報を取得する。
【0026】
電源制御部247は、バッテリ208と通信して残電力を検出、電力供給を監視する。また、バッテリ208の充電に応じて、接続されるAC電源からの電力供給を制御する。記録媒体209は、バッテリ208またはAC電源からの電力供給がない場合でも、記録されたデータを保持することができる。
【0027】
GPSモジュール248は、GPS衛星からの信号を受信して、カメラ10bが存在している緯度、経度、高度情報を取得してカメラ10bの位置を検出する。システム制御部250は、GPSモジュール248からカメラ10bの位置情報を適宜検出することができる。システム制御部250は、被写体像の画像データに位置情報を付加して記録媒体209に記録する。カメラ10bは、GPSモジュール248によって検出される位置情報に基づき、後述するタイムラグ値の学習を制御してもよい。例えば、カメラ10bは、屋外用のタイムラグ値と、屋内用のタイムラグ値とをシステムメモリ235に記録しており、GPSモジュール248によって検出される位置情報が屋外の位置を示す場合に屋外用のタイムラグ値を適応させて学習し、GPSモジュール248によって検出される位置情報が屋内の位置を示す場合に屋内用のタイムラグ値を適応させて学習してもよい。例えば遊園地やサッカー場等の屋外では、動きの大きい被写体を撮像する場合が多い。したがって、屋外では、ベストなシャッタタイミングは、ユーザ17がレリーズスイッチ207を実際に押下するのに要するタイムラグだけでなく、被写体の動きに影響されるケースが多い。例えばユーザ17が被写体の動きを予想してレリーズスイッチ207を押下したとしても、被写体が予想外の動きをした場合には、予想外の動きをする前のタイミングがユーザ17にとってベストなシャッタタイミングとなる場合がある。屋外と比較すると、屋内では動きの大きい被写体を撮像するケースは少ない。カメラ10bが屋外と屋内とでタイムラグ値を別に管理することで、位置情報に応じてタイムラグ値を適切に学習することができる場合がある。
【0028】
本図において、カメラ10bのシステム構成を説明した。カメラ10aも本システム構成と同様のシステム構成を有するので、説明を省略する。本システム構成のカメラがカメラ10aとして機能する場合、システム制御部250は、内部メモリ235に記憶されているテンプレート画像のデータまたは内部メモリ235に展開されたテンプレート画像のデータを、記録媒体IF240を介して記録媒体209に記録する。このとき、システム制御部250は、カメラ10aの機種を識別する情報を、テンプレート画像のデータに対応づけて記録媒体209に記録する。これにより、図1に関連して説明したように、学習済みのテンプレート画像のデータが記録媒体15に記録される。また、本システム構成のカメラがカメラ10bとして機能する場合、システム制御部250は、記録媒体209に記録されたテンプレート画像のデータを記録媒体IF240を介して読み出して、読み出したテンプレート画像のデータを、学習データの初期値としてシステムメモリ236に記録する。これにより、図1に関連して説明したように、変換されたテンプレート画像のデータが記録媒体15からカメラ10b内に記録される。本実施形態においてカメラ10aおよびカメラ10bの双方に適用できる事項については、カメラ10と総称して説明する場合がある。
【0029】
図3は、カメラ10が顔を学習する場合に実行する処理のフロー図である。本処理は、システム制御部250が学習する指示を、例えば操作部材202を介して受け付けた場合に、開始される。
【0030】
ステップS302において、画像処理部237は、人物の顔の領域のデータを顔画像データとして切り出す。例えば、表示部201が画像を表示しているときに、ユーザ17が当該画像内の顔の位置を指定したとする。画像処理部237は、指定された位置の近傍の画像領域から人物の顔領域を抽出して、抽出した顔領域のデータを顔画像データとして切り出す。システム制御部250は、画像処理部237が抽出した1以上の顔の位置を示す顔検出枠を表示部201に表示させて、学習すべき顔をユーザ17に選択させてもよい。
【0031】
ステップS304において、画像処理部237は、切り出した顔画像データのサイズを正規化する。例えば、画像処理部237は、切り出した顔画像データを、予め定められた画素数の顔画像データに変換する。具体的には、画像処理部237は、切り出した顔画像データを、内部で記録しているテンプレート画像データの画素数と同じ画素数の画像データに変換する。ステップS306において、システム制御部250は、ユーザ操作に基づき、学習すべき人物を特定する。例えば、システム制御部250は、学習すべき人物の一覧を表示部201に表示させて、ユーザ17に特定の人物を選択させる。
【0032】
ステップS308において、画像処理部237は、特定した人物のテンプレート画像のデータを読み出す。例えば、システム制御部250が、特定した人物のテンプレート画像をシステムメモリ236から内部メモリ235に展開する。そして、画像処理部237は、展開されたテンプレート画像のデータを内部メモリ235から読み出す。
【0033】
ステップS310において、画像処理部237は、顔画像データに前処理を施す。例えば、画像処理部237は、顔の向きをテンプレート画像の人物の顔の向きに合わせる画像処理を、顔画像データに施す。具体的には、テンプレート画像のデータが正面顔の画像データである場合、画像処理部237は、顔画像データを正面顔の画像データに変換する。より具体的には、画像処理部237は、顔画像データにアフィン変換等の画像処理を施して、両目の中間点が顔の左右の中心に位置する顔画像のデータを生成する。
【0034】
ステップS312において、画像処理部237は、前処理して得た顔画像データとテンプレート画像のデータとを平均化することにより、新たなテンプレート画像のデータを生成する。例えば、画像処理部237は、前処理後の顔画像データの輝度値とテンプレート画像のデータの輝度値とを、予め定められた重み付けで加算する。そして、ステップS314において、システム制御部250は、ステップS312で生成した新たなテンプレート画像のデータを用いて、内部のテンプレート画像のデータを更新する。例えば、システム制御部250は、ステップS312で生成した新たなテンプレート画像のデータを、ステップS306で特定した人物のテンプレート画像のデータとしてシステムメモリ236に記録する。
【0035】
以上に例示した学習処理により、より多くの顔画像データを用いて学習するほど、特定の人物に適応したテンプレート画像のデータを得ることができる。このため、ユーザ17が長く使用してきたカメラ10aには、例えばユーザ17の家族等の特定の人物に対して識別力が高いテンプレート画像が蓄積される。
【0036】
図4は、カメラ10が撮像動作のタイムラグを学習する場合に実行する処理のフロー図である。本フローで説明するタイムラグ値は、学習データの他の例である。タイムラグ値は、レリーズスイッチ207の押下げを検知したタイミングと、ユーザ17が撮像を望むタイミングとのずれを学習したデータとする。本処理は、レリーズスイッチ207の押下げ検知に応じて撮像した画像データが内部メモリ235に記憶された場合に、開始される。
【0037】
ここで、システム制御部250は、レリーズスイッチ207の押し下げを検知する前から被写体を連写撮影させており、得られた画像データを内部メモリ235に記憶させる。例えば、システム制御部250は、レリーズスイッチ207が半押しされることで撮像モードに設定されると連写撮影を開始させ、予め定められた数の画像データを上限として内部メモリ235に記憶していく。システム制御部250は、連写撮影して記憶された画像データのうち最も古い画像データを、最新の画像データで随時更新していく。したがって、本処理が開始したときには、レリーズスイッチ207の押下げ検知に応じて撮像された画像データを含む予め定められた数の画像データが、内部メモリ235に記憶されている。システム制御部250は、これらの画像データに対応づけて、それぞれの露光動作を開始させた時刻を撮像時刻として内部メモリ235に記録する。露光動作を開始させた時刻は、露光動作を開始させる信号をタイミング発生部234が発生した時刻により定めてよい。
【0038】
本処理が開始すると、システム制御部250は、内部メモリ235からタイムラグ値を読み出す(ステップS402)。具体的には、システム制御部250は、システムメモリ236から内部メモリ235に展開されたタイムラグ値を、内部メモリ235から読み出す。
【0039】
ステップS404において、システム制御部250は、レリーズ受付時からタイムラグ値だけ前で撮像した画像データを選択する。例えば、システム制御部250は、内部メモリ235に記憶されている予め定められた数の画像データの中から、レリーズ受付時からタイムラグ値だけ前の時刻に対し最も近いタイミングで撮像した画像データを、撮像時刻に基づいて選択する。ステップS406において、システム制御部250は、ステップS404で選択した画像を、表示部201に表示させる。
【0040】
ステップS408において、システム制御部250は、選択した画像データがベストなタイミングで撮像した画像データであるか否かを、ユーザ17からの指示に基づいて判断する。例えば、システム制御部250は、表示部201に表示されている画像を記録してよいか否かを問い合わせるメニューを表示部201に表示させて、ユーザ17からの指示を待つ。システム制御部250は、表示部201に表示されている画像を記録してよい旨の指示を、例えば操作部材202を介してユーザ17から得た場合に、選択した画像データがベストなタイミングで撮像した画像データであると判断する。
【0041】
ステップS408で、選択した画像データがベストなタイミングで撮像した画像データであると判断された場合、タイムラグ値を更新することなく、本フローを終了する。S404で選択した画像データを記録するようユーザ17から指示を受けた場合は、現在のタイムラグ値がユーザ17にとって適切な値であった可能性が高い。この場合は、タイムラグ値を更新する必要はない。
【0042】
一方、ステップS408で、選択した画像データがベストなタイミングで撮像した画像データでないと判断された場合、システム制御部250は、連写した複数の画像データを表示部201に表示させて、ベストなタイミングで撮像された画像データをユーザ17に選択させる(ステップS410)。ステップS412において、システム制御部250は、ユーザ17からの入力に基づき、ユーザ17が選択した画像データを特定する。例えば、システム制御部250は、操作部材202介して、ユーザ17が画像データを選択する入力操作を取得して、入力操作に基づき、ユーザ17が選択した画像データを特定する。
【0043】
ステップS414において、システム制御部250は、特定した画像データの撮像時刻からレリーズ受付時までのタイムラグを算出する。ステップS416において、システム制御部250は、ステップS414で算出したタイムラグと現在のタイムラグ値との間で平均化することにより、新たなタイムラグ値を算出する。
【0044】
ステップS418において、システム制御部250は、新たなタイムラグ値を用いて、内部のタイムラグ値を更新する。具体的には、システム制御部250は、新たなタイムラグ値を内部メモリ235に記憶するとともに、新たなタイムラグ値をシステムメモリ236に記録する。
【0045】
図5は、パーソナルコンピュータ20における学習済みデータの処理フローの一例を示す。本処理は、パーソナルコンピュータ20が学習済みデータを変換する旨の指示をユーザ17から受け付けた場合に開始される。ここでは、パーソナルコンピュータ20は、記録媒体15を介して、カメラ10aの学習済みデータをカメラ10bに提供するものとする。また、本フローが開始する前に、カメラ10aが機種IDおよび学習済みデータを記録媒体15に書き込んでいるとする。
【0046】
ステップS502において、パーソナルコンピュータ20は、記録媒体15から、カメラ10aの機種IDおよび学習済みデータを読み出す。ステップS504において、パーソナルコンピュータ20は、カメラ10bの機種IDを特定する。例えば、パーソナルコンピュータ20は、機種の一覧をモニタに表示してカメラ10bの機種をユーザに選択させ、ユーザによる機種の選択操作に基づいて、カメラ10bの機種IDを特定する。
【0047】
ステップS506において、パーソナルコンピュータ20は、記録媒体15から読み出した学習済みデータ、カメラ10aの機種IDおよびカメラ10bの機種IDを含む送信データを、サーバ30に送信してデータ変換を依頼する。例えば、パーソナルコンピュータ20は、ネットワーク27を介してサーバ30にデータ送信する。後述するように、サーバ30において、カメラ10aの学習済みデータがカメラ10b用の学習データに変換され、カメラ10b用の初期値データとしてパーソナルコンピュータ20に返却される。
【0048】
パーソナルコンピュータ20は、サーバ30から、カメラ10b用の学習データを初期値データとしてから受信する。例えば、パーソナルコンピュータ20は、ネットワーク27を介して、サーバ30から初期値データを受信する。ステップS510において、パーソナルコンピュータ20は、受信した初期値データおよびカメラ10bの機種IDを、記録媒体15に書き出す。書き出しが終了すると、本処理フローを終了する。
【0049】
図6は、サーバ30が学習済みデータを変換する処理フローの一例を示す。本フローは、サーバ30がパーソナルコンピュータ20から送信データを受信した場合に開始される。
【0050】
ステップS602において、サーバ30は、送信データから、カメラ10aの学習済みデータ、カメラ10aの機種IDおよびカメラ10bの機種IDを抽出する。続いて、ステップS604において、サーバ30は、カメラ10aの機種IDおよびカメラ10bの機種IDに基づいて、学習データのデータ形式を取得する。また、サーバ30は、抽出した学習済みデータを変換するために必要なパラメータを取得する。サーバ30は、これらのデータ形式やパラメータを、機種IDに対応づけて内部に保持している。
【0051】
例えば、サーバ30は、テンプレート画像のデータの画素数、タイムラグ値の表現形式を、学習データのデータ形式として取得する。タイムラグ値の表現形式としては、タイムラグの時間長さを表す時間単位(例えば秒単位、ミリ秒単位)を例示することができる。例えば、サーバ30は、これらの学習データのデータ形式を機種IDに対応づけて保持している。そしてサーバ30は、ステップS602で抽出した機種IDに対応づけて保持しているデータ形式を選択する。
【0052】
ステップS606において、サーバ30は、カメラ10aの学習済みデータを、カメラ10b用のデータ形式に変換する。学習済みデータの変換例については後述する。ステップS608において、サーバ30は、変換した学習済みデータを、カメラ10b用の初期値データとして、カメラ10bの機種IDとともに送信する。この送信処理が終了すると、本処理フローは終了する。
【0053】
図7は、学習データの一例としてのテンプレート画像を模式的に示す。テンプレート画像セット700は、カメラ10aによる学習済みの複数のテンプレート画像710をデータとして含む。テンプレート画像710a、710bは、互いに異なる人物用のデータである。
【0054】
サーバ30は、テンプレート画像710aに画像処理を施して、テンプレート画像760aを生成する。例えば、カメラ10bが、カメラ10aよりも画素数が多いテンプレート画像のデータを使用する場合、サーバ30は、テンプレート画像710aよりも画素数の多いテンプレート画像760aを、テンプレート画像710aから生成する。例えば、サーバ30は、テンプレート画像710aに補間フィルタを適用して補間演算をすることにより、画素数の多いテンプレート画像760aを生成する。
【0055】
サーバ30は、テンプレート画像760aと同様、テンプレート画像710bから、画素数を拡大したテンプレート画像760bを生成する。すなわち、サーバ30は、複数の人物にそれぞれ対応する複数のテンプレート画像710のデータに対して、画素数を変換する画像処理を施すことにより、複数の人物にそれぞれ対応するカメラ10b用の複数のテンプレート画像760のデータを生成する。これにより、サーバ30は、カメラ10b用の複数のテンプレート画像760をデータとして含むテンプレート画像セット750を生成する。
【0056】
このように、サーバ30は、カメラ10aが学習により適応させたテンプレート画像のデータを、カメラ10bが学習により適応させるテンプレート画像のデータの画素数と同一の画素数のテンプレート画像のデータに変換する。これにより、カメラ10bは、カメラ10aで獲得した各人物のテンプレート画像のデータを人物識別に利用することができる。このため、ユーザ17がカメラ10bを用いてはじめから学習させる手間をかけることなく、すでにカメラ10aで獲得した識別能力の高いテンプレート画像のデータを、最初からカメラ10bに利用させることができる。
【0057】
図8は、学習データの一例としてのタイムラグ値を用いた内部処理の一例を模式的に示す。本図において、時刻0は、カメラ10が撮像指示を受け付けた時刻を表す。例えば、時刻0は、システム制御部250がレリーズスイッチ207の押下げを検知した時刻を表す。システム制御部250は、時刻0からタイムラグ値だけ前の時刻を、理想的な撮像開始タイミングとして算出する。
【0058】
カメラ10aの撮像動作において、タイミング発生部234が露光動作を開始させる露光開始信号を発生した時刻が時刻t1であるとする。時刻t1からカメラ10a内のシャッタ等の駆動制御系が動作を開始して、時刻t2に露光動作が完了する。露光動作が完了した時刻t2において、撮像素子231に形成された画像800の内容が確定する。
【0059】
上述したタイムラグ値の学習動作により、ベストなタイミングで撮像した画像であるとしてユーザ17が画像800を選択した場合、カメラ10aのシステム制御部250は、画像800に対応する露光開始信号の発生時刻t1を、タイムラグ値に反映させることができる。このため、システム制御部250は、露光開始信号を発生してから実際に露光が開始されるまでの時間差を特に考慮することなく、時刻0からタイムラグ値だけ前の時刻と、露光開始信号の時刻とに基づき、ベストなタイミングで撮像した画像データの候補を、ユーザ17に提示することができる。例えば、時刻0からタイムラグ値だけ前の時刻に最も近い時刻に露光開始信号を発生することによって得た画像データを、ベストなタイミングで撮像した画像データの候補としてユーザ17に提示すればよい。
【0060】
しかし、カメラ10bでは、露光開始信号を発生してから露光が実際に開始されるまでの時間差が、カメラ10aとは異なる場合がある。例えばカメラ10bは、シャッタ等の駆動制御系の動作がカメラ10aに比べて高速化されているとする。この場合、高速化された分だけ時刻t1よりも後の時刻t1'の露光開始信号によって得た画像810が、画像800と同等のタイミングで得た画像に対応することになる。したがって、カメラ10aよりも高速化されたカメラ10bの内部動作を考慮して、カメラ10a用のタイムラグ値よりも短い時刻を、カメラ10b用のタイムラグ値として適用する必要がある。
【0061】
そこで、サーバ30は、カメラ10aとカメラ10bとの間のシャッタタイムラグの差に基づき、カメラ10a用のタイムラグ値を、カメラ10b用のタイムラグ値に変換する。例えば、サーバ30は、カメラ10a用のタイムラグ値が200msであり、シャッタタイムラグの差が20msである場合、カメラ10b用のタイムラグ値として180msを算出する。サーバ30は、タイムラグ値を変換するためのパラメータとして、シャッタタイムラグに関するデータを機種IDに対応づけて保持しており、保持しているデータに基づきシャッタタイムラグの差を算出してよい。
【0062】
本変換処理により、カメラ10bでも、ユーザ17のタイムラグに加えて、カメラ10aおよびカメラ10bの内部の動作速度を考慮したタイムラグ値を提供できる。このため、ユーザ17はカメラ10bでタイムラグ値を学習しなくとも、ユーザ17にとってベストに近いタイミングの画像データを提示できる。
【0063】
なお、本例では、シャッタタイムラグの差をきちんとカメラ10bのタイムラグ値に反映できるとした。しかし、例えばカメラ10bのタイムラグ値が25ms単位でしか設定できない場合、サーバ30は、カメラ10bのタイムラグ値として175msを算出してよい。カメラ10bのタイムラグ値が50ms単位でしか設定できない場合、サーバ30は、カメラ10bのタイムラグ値として200msを算出してよい。このように、サーバ30は、カメラ10bに設定可能なタイムラグ値のうち、理想的なタイムラグ値180msに最も近い値を、カメラ10bのタイムラグ値として算出してよい。このように、サーバ30は、カメラ10aが学習により適応させたタイムラグデータを、カメラ10bの撮像動作のタイムラグに基づいてカメラ10bのタイムラグデータに変換する。
【0064】
図9は、カメラ10bが学習データを設定する処理フローの一例を示す。本処理は、カメラ10bが初期値データを設定する旨の指示をユーザ17から受け付けた場合に開始される。本フローが開始する前に、パーソナルコンピュータ20が機種IDおよび初期値データを記録媒体15に書き込んでいるとする。本処理フローは、カメラ10bのシステム制御部250が主体となって動作する。
【0065】
ステップS902において、記録媒体15から、初期値データおよび機種IDを読み出す。ステップS904において、システム制御部250は、記録媒体15から読み出した機種IDおよび初期値データのデータ形式が正しいか否かを判断する。例えば、システム制御部250は、記録媒体15から読み出した機種IDが自身の機種IDと一致するか否かを判断する。また、システム制御部250は、記録媒体15から読み出した初期値データのデータ形式が、カメラ10b用の学習データのデータ形式と一致するか否かを判断する。
【0066】
ステップS904において、自身の機種IDと記録媒体15から読み出した機種IDとが一致しない場合、または、カメラ10b用の学習データのデータ形式と記録媒体15から読み出した初期値データのデータ形式とが一致しない場合、システム制御部250は、学習データを移行できない旨を表示部201に表示させて(ステップS910)、本処理フローを終了する。
【0067】
一方、ステップS904において、自身の機種IDと記録媒体15から読み出した機種IDとが一致し、かつ、カメラ10b用の学習データのデータ形式と記録媒体15から読み出した初期値データのデータ形式とが一致する場合、記録媒体15から読み出した初期値データを内部メモリ235およびシステムメモリ236に書き込む(ステップS906)。本書き込み処理を完了すると、本処理フローは終了する。
【0068】
本処理により、カメラ10aで獲得したテンプレート画像のデータやタイムラグ値が、カメラ10bの初期値として適用される。したがって、ユーザ17は、カメラ10bではじめから学習するという労力を要することなく、ユーザ17の家族のテンプレート画像のデータやユーザ17に適したタイムラグ値が適用されたカメラ10bを利用することが可能になる。そして、カメラ10bでも使用を続けていくにつれて、図3および図4に関連して説明した処理によってテンプレート画像のデータおよびタイムラグ値が適応化されていき、カメラ10bでの使用により適した学習データが速やかに構築される。
【0069】
以上に説明したように、サーバ30は、第1学習データを学習により適応させる第1装置の一例としてのカメラ10aから、カメラ10aが学習により適応させた第1学習データを取得して、カメラ10bが学習により適応させる第2学習データのデータ形式に基づいて、当該取得した第1学習データを、第2学習データのデータ形式に適合するデータ形式の学習データに変換する。学習データとしては、人物画像データに基づく学習により適応される人物識別用のデータの一例としての人識別用のテンプレート画像のデータ、および、ユーザ17による撮像指示のタイムラグに関するタイムラグデータの一例としてのタイムラグ値を例示して、システムの動作の一例を説明した。テンプレート画像のデータに対する変換処理としては、画素数を変換する例を例示したが、画素数の変換に替えて、または、画素数の変換に加えて、テンプレート画像のデータの階調数および色数の少なくとも一方を変換してもよい。
【0070】
また、人物識別用のデータとしては、テンプレート画像のデータの他、人物の画像データから抽出した特徴量パラメータを例示することができる。例えば、人物識別用のデータとして、人物頭部の特徴点のデータを例示することができる。例えば、カメラ10aとカメラ10bとで、特徴点の数または位置の少なくとも一方が異なる場合、サーバ30は、カメラ10aが学習データとして適応させた特徴点の位置に基づいて、カメラ10bが学習データとして適応させる特徴点のデータに変換する。例えば、カメラ10aが眼の中央位置だけを特徴点として用いるが、カメラ10bは目の両端位置を特徴点として用いる場合、サーバ30は、カメラ10aが学習した眼の中央位置のデータを、例えば標準的な目の大きさに基づいて、眼の両端位置のデータに変換する。このように、サーバ30は、カメラ10aが学習により適応させた特徴点のデータを、カメラ10bが学習により適応させる特徴点の数と同一の数の特徴点のデータに変換してよい。
【0071】
以上の説明において、サーバ30は、カメラ10aが記録している学習データをネットワーク27を介して取得して、取得した学習データを変換して、変換して得た学習データを、ネットワークを通じて外部に送信するとして説明した。具体的には、サーバ30がパーソナルコンピュータ20との間で通信して、学習済みデータの受信と初期値データの送信をするとしたが、パーソナルコンピュータ20を介さずに、カメラ10との間でネットワーク27を介して送信または受信をしてもよい。カメラ10は、ネットワーク撮像モジュール241の機能によりネットワーク27を介して送信または受信することができる。
【0072】
また、以上の説明において、サーバ30aが学習済みデータを変換するとしたが、上記において説明したサーバ30の機能は、パーソナルコンピュータ20に実装されてもよい。例えば、パーソナルコンピュータ20は、カメラ10aが記録している学習データを記録媒体15を介して取得して、カメラ10b用の学習データに変換して、変換した学習データを記録媒体15に記録させてもよい。また、サーバ30の機能は、カメラ10bに実装されてもよい。すなわち、カメラ10bが、カメラ10aから学習データを取得して、カメラ10b用の学習データに変換し、変換した学習データを、カメラ10bの学習データの初期値として、システムメモリ236等に記録してもよい。つまり、カメラ10aが学習により適応させた学習データをカメラ10bが学習により適応させる学習データに適合するデータ形式の学習データに変換する情報変換装置としてのサーバ30の機能は、パーソナルコンピュータ20およびカメラ10bのいずれに実装されてもよい。
【0073】
以上の説明において、カメラ10aからカメラ10bに学習データを移行するとして説明したが、カメラ10bが学習により適応させたテンプレート画像のデータやタイムラグ値を、カメラ10aに移行させてもよい。また、本実施形態を分かり易く説明することを目的として、カメラ10bを新規購入したカメラとした。しかし、本実施形態のシステムは、カメラ10が新規購入したカメラであるか否かにかかわらず、学習データのデータ形式が異なるカメラ10に対して適用することができる。
【0074】
また、カメラ10a用の学習データからカメラ10b用の学習データへの変換処理において、カメラ10a用の学習データを、予め定められたデータ形式の学習データに一旦変換して、得られた予め定められたデータ形式の学習データを、カメラ10b用のデータ形式の学習データに変換してもよい。このように学習データを、予め定められた中間のデータ形式に一旦変換することで、変換処理の組み合わせを削減することができる。例えば、学習データのデータ形式が異なるN個のカメラの間で学習データを相互に変換する場合、学習データを直接的に変換するには、N×(N−1)個の変換処理を定める必要がある。しかし、中間のデータ形式を介して変換することで2×N個の変換処理を定めるだけで済む。中間のデータ形式として、例えば十分に多い画素数のテンプレート画像のデータ、時間精度が十分に高いタイムラグ値を例示することができる。
【0075】
上記実施形態で説明したカメラ10は、レンズ交換式一眼レフカメラ、コンパクトデジタルカメラ、ミラーレス一眼カメラおよびビデオカメラはもちろん、カメラ機能付きの携帯電話等として適用できる。また、上記実施形態において、本システムにおける装置の一例としてカメラ10を例示したが、本システムを適用できる装置としては、カメラの他、家電機器、ゲーム装置、自動車等を例示することができる。本システムにおける家電機器としては、洗濯機などを例示することができる。例えば洗濯機において、洗濯物の量に応じて水量を学習する機能について本システムを適用してもよい。本システムによると、例えばユーザが洗濯機を買い換えた場合に、新しい洗濯機が水量を学習するまで水量を指定するといった煩わしさからユーザを解放することができる。
【0076】
ところで、この発明における第1装置および第2装置は、同じハードウェアで実現された装置であってもよい。第1装置と第2装置とが同じハードウェアで実現された装置である場合でも、装置が実行するファームウェア、オペレーティングシステムまたはアプリケーション・ソフトウェアなどのソフトウェアによって、学習データのデータ形式が異なる場合がある。例えば、バージョンが異なるゲーム・ソフトウェアを実行するゲーム装置において、バージョンアップの前後でソフトウェアの内部で取り扱う学習データのデータ形式が異なる場合がある。この場合、バージョンアップ前のソフトウェアを実行するゲーム装置を第1装置とし、バージョンアップ後のソフトウェアを実行するゲーム装置を第2装置とみなすことができる。すなわち、一の装置であっても、学習データのデータ形式が異なるソフトウェアを実行させる場合、この発明における第1装置および第2装置とみなすことができる場合がある。このように、本システムにおいて、第1のソフトウェアを実行する装置を第1装置とみなし、学習データのデータ形式が第1のソフトウェアとは異なる第2のソフトウェアを実行する装置を、第2装置とみなすことができる。
【0077】
また、上述したカメラ10、パーソナルコンピュータ20、サーバ30がそれぞれ実行する処理は、コンピュータ装置によって実現することができる。コンピュータ装置は、上述した処理の実行を制御するプログラムをロードして、読み込んだプログラムに従って動作することにより、当該処理を実行してよい。コンピュータ装置は、当該プログラムを記録しているコンピュータ読取可能な記録媒体を読み込むことによって、当該プログラムをロードすることができる。
【0078】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【0079】
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【符号の説明】
【0080】
10 カメラ、15 記録媒体、17 ユーザ、20 パーソナルコンピュータ、27 ネットワーク、30 サーバ、201 表示部、202 操作部材、207 レリーズスイッチ、208 バッテリ、209 記録媒体、219 光軸、221 ズームレンズ、231 撮像素子、232 A/D変換器、233 メモリ制御部、234 タイミング発生部、235 内部メモリ、236 システムメモリ、237 画像処理部、238 表示制御部、239 D/A変換器、240 記録媒体IF、243 ズーム制御部、247 電源制御部、248 GPSモジュール、250 システム制御部、700、750 テンプレート画像セット、710、760 テンプレート画像、800、810 画像

【特許請求の範囲】
【請求項1】
第1装置が学習により適応させた第1学習データを取得する取得ステップと、
第2装置が学習により適応させる第2学習データのデータ形式に基づいて、前記取得した前記第1学習データを、前記第2学習データのデータ形式に適合するデータ形式の学習データに変換するデータ変換ステップと
をコンピュータに実行させるプログラム。
【請求項2】
前記第1装置および前記第2装置は、撮像装置であり、
前記第1学習データおよび前記第2学習データは、人物画像データに基づく学習により適応される、人物識別用のデータである
請求項1に記載のプログラム。
【請求項3】
前記第1学習データおよび前記第2学習データは、人物認識用のテンプレート画像のデータである
請求項2に記載のプログラム。
【請求項4】
前記データ変換ステップは、前記第1装置が学習により適応させたテンプレート画像のデータを、前記第2装置が学習により適応させるテンプレート画像の画素数と同一の画素数のテンプレート画像のデータに変換する
請求項3に記載のプログラム。
【請求項5】
前記第1学習データおよび前記第2学習データは、人物頭部の特徴点のデータである
請求項2に記載のプログラム。
【請求項6】
前記データ変換ステップは、前記取得した前記特徴点のデータを、前記第2装置が学習により適応させる特徴点の数と同一の数の特徴点のデータに変換する
請求項5に記載のプログラム。
【請求項7】
前記第1装置および前記第2装置は撮像装置であり、
前記第1学習データおよび前記第2学習データは、ユーザによる撮像指示のタイムラグに関するタイムラグデータである
請求項1から6のいずれか一項に記載のプログラム。
【請求項8】
前記データ変換ステップは、前記第1装置が学習により適応させたタイムラグデータを、前記第2装置の撮像動作のタイムラグに基づいて前記第2装置用のタイムラグデータに変換する
請求項7に記載のプログラム。
【請求項9】
前記プログラムは、前記コンピュータに、
前記第1装置が記憶している前記第1学習データを、ネットワークを介して取得し、前記データ変換ステップにおいて変換された学習データを、ネットワークを通じて外部に送信する通信ステップ
をさらに実行させる請求項1から8のいずれか一項に記載のプログラム。
【請求項10】
前記プログラムは、前記コンピュータに、
前記第1装置が記憶している前記第1学習データを記憶媒体を介して取得し、前記データ変換ステップで変換された前記学習データを記憶媒体に記憶させる記憶制御ステップ
をさらに実行させる請求項1から8のいずれか一項に記載のプログラム。
【請求項11】
前記プログラムは、前記第2装置として機能する前記コンピュータに、
前記データ変換ステップにおいて変換された学習データを、学習データの初期値として格納させる格納制御ステップ
をさらに実行させる請求項1から8のいずれか一項に記載のプログラム。
【請求項12】
第1装置が学習により適応させた第1学習データを取得する取得部と、
第2装置が学習により適応させる第2学習データのデータ形式に基づいて、前記取得した前記第1学習データを、前記第2学習データのデータ形式に適合するデータ形式の学習データに変換するデータ変換部と
を備える情報変換装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate