以下に、本発明の実施の形態による撮像制御装置の一例について図面を参照して説明する。
[第1の実施形態]
図1は、本発明の第1の実施形態による撮像制御装置についてその一例の外観を示す図である。そして、図1(a)は正面図であり、図1(b)は背面図である。また、図1(c)は正面側から見た斜視図である。
図示の撮像制御装置は、例えば、カメラ付きのスマートフォン(携帯電話端末)である。撮像制御装置は縦長の本体部101を有しており、本体部101はフロントフェイス101A、バックフェイス101B、およびサイドフェイス101Cを備えている。フロントフェイス101Aは本体部101の正面であり、バックフェイス101Bは本体部101の背面である。また、サイドフェイス101Cは本体部101の側面である。
フロントフェイス101Aには、タッチスクリーンディスプレイ102、ボタン103D、インカメラ104、照度センサ105、およびスピーカー106が配置されている。バックフェイス101Bには、アウトカメラ108およびライト109が配置されている。さらに、サイドフェイス101Cには、ボタン103A~103C、およびコネクタ107が配置されている。
ボタン103Aは短く押すによって撮像制御装置1のスリープ/スリープ解除ボタンとして機能する。また、ボタン103Aを長押しすると電源をオン/オフすることができる。ボタン103Bはシャッターボタンであり、撮像制御装置を横支持した際の撮像の場合に用いられる。なお、シャッターボタンは後述するタッチスクリーンディスプレイ102にも表示され、このシャッターボタンは、例えば、自撮りを含む撮像制御装置を縦支持した際の撮像に用いられる。
ボタン103Cはスピーカー106から出力されるシャッター音および警告音などの音の出力のオン(鳴音)/オフ(消音)を切り替える際に用いられる。ボタン103Dはホームボタンであり、タッチスクリーンディスプレイ102にホーム画面を表示する際に用いられる。ボタン103Dをボタン103Aの代わり用いて撮像制御装置のスリープ解除をするができる。ボタン103Dには、ユーザー設定によって所定の機能を割り当てることができる。なお、以下の説明では、ボタン103A~103Dを特に、いずれのボタンであるか特定することなくボタン103と総称することがある。
タッチスクリーンディスプレイ102は、液晶ディスプレイ102Aおよびタッチスクリーン1022Bを備える。タッチスクリーン102Bは、タッチスクリーン102Bに対する指又はスタイラスペンなどによる接触を検出する。さらに、タッチスクリーン102Bは複数の指による接触を検出可能である。なお、タッチスクリーン2Bにおける検出方式として、例えば、静電容量式又は抵抗被膜方式が用いられる。
撮像制御装置においては、後述するように、タッチスクリーン1022Bによって検出された接触、接触した位置、および接触した時間に基づいてジェスチャー操作の種別が判別される。ジェスチャー操作は指又はスタイラスペンによってタッチスクリーン2に対して行われる操作である。
撮像制御装置で判別されるジェスチャー操作には、例えば、タッチ、リリース、タップ、ドラッグ、スワイプ、フリック、ピンチイン、およびピンチアウトなどスマートフォンなどで行われる一般的な操作が含まれる。
タッチは、タッチスクリーン102Bに指が触れるジェスチャー操作である。リリースは、タッチスクリーン102Bから指が離れるジェスチャー操作である。タップは、タッチスクリーン102Bを素早くタッチしてリリースするジェスチャー操作である。
ドラッグは、液晶ディスプレイ102Aに表示されたオブジェクトを長押し、タッチした状態で指を引きずるジェスチャー操作である。スワイプは、指をタッチスクリーン102B上に接触した状態でなぞるように移動させるジェスチャー操作である。フリックは、タッチスクリーン102Bに対するタッチに続いて、指ではじくようにリリースするジェスチャー操作である。ピンチインは、タッチスクリーン102B上で複数の指でつまむ(狭める)ジェスチャー操作である。ピンチアウトは、タッチスクリーン102B上で複数の指で広げるジェスチャー操作である。
なお、撮像制御装置では、タッチスクリーン1022B上で行われる上記のジェスチャー操作に応じた動作が行われる。
図2は、図1に示す撮像制御装置の構成についてその一例を示すブロック図である。なお、図2において、図1に示す構成要素と同一の構成要素については同一の参照番号を付す。
前述のように、撮像制御装置は、タッチスクリーンディスプレイ102を備えており、液晶ディスプレイ2Aには文字、画像、およびアイコンなどが表示される。タッチスクリーン102Bはジェスチャー操作を検知する。インカメラ104は、レンズと光学像を電気信号に変換するCCD又はCMOSなどの撮像素子とを備えている。このインカメラ104はAF(オートフォーカス)、絞り、およびシャッタースピード調整機能などを備える小型のカメラモジュールである。そして、インカメラ104はフロントフェイス1101Aに対面する物体を撮像する。
照度センサ105は撮像制御装置における照度を検出する。そして、コントローラ14は、検出された照度に基づいてインカメラ4の撮像条件を設定する。さらには、コントローラ14は照度センサ5で検出された照度に応じて液晶ディスプレイ102Aの輝度を調整する。
スピーカー106からは、スイッチ103Cにおいて音出力オンの場合に、撮像の際のシャッター音および警告音を出力する。コネクタ107コネクタは撮像制御装置と外部装置と接続とに用いられる。例えば、コネクタ107には、後述する電源モジュール11に備えられたバッテリーを充電するためのACアダプタが接続される。また、コネクタ107は、後述する不揮発性メモリ(以下ストレージと呼ぶ)15に対する画像データおよび音声データなどの入出力の際に用いられる。
なお、コネクタ7はDockコネクタのような専用に設計された端子であってもよく、USB(Universal Serial Bus)のような汎用的な端子であってもよい。
アウトカメラ108は、インカメラ104と同様の小型のカメラモジュールである。アウトカメラ108はバックフェイス101Bに対面する物体を撮像像する。ライト109は発光モジュールであり、アウトカメラ108による撮像の際にはフラッシュとして機能する。
通信モジュール10は所定の無線通信規格に応じて通信を行う。例えば、無線通信規格として、IEEE802.11規格の所謂Wi-Fi、Bluetooth(登録商標)、およびNFCなどがあり、通信モジュール10は少なくとも1つをサポートしていればよい。通信モジュール10は撮像によって得られた画像データの入出力および撮像制御装置に対する機能追加プログラムモジュールのダウンロードなどの際に用いられる。
電源モジュール11は充電可能なバッテリーを備えており、撮像制御装置全体に電源を供給する。電源モジュール11に備えられたバッテリーとして、例えば、リチウムイオン電池又はニッケル水素電池が用いられる。そして、当該バッテリーはコネクタ7を介してACアダプタ又はUSBによって充電される。
加速度センサ12は、撮像制御装置に作用する加速度の方向と大きさを検知する。加速度センサ12はXYZ方向の3軸における検知が可能である。ジャイロセンサ13は撮像制御装置の角度および角速度を検知する。加速度センサ12およびジャイロセンサ13による検知結果は後述するオート自撮り機能で用いられる。
コントローラ14は汎用のCPU又はスマートフォン向けに設計されたワンチップシステムSoC(System-on-a-chip)などのプロセッサーである。コントローラ14は撮像制御装置全体を制御する。コントローラ14はストレージ15に記憶された制御プログラムをシステムメモリ16に展開して実行し、後述する処理を行う。なお、システムメモリ16はコントローラ14のワーク領域としても用いられる。
ストレージ15には、制御プログラム15Aおよび各種データなどが記憶される。ストレージ15は半導体メモリであって、例えば、電気的に消去可能な不揮発性メモリ(例えばフラッシュROM)である。また、システムメモリ16は、例えば、RAMである。
図示のように、ストレージ15には、制御プログラム15A、写真編集モジュール15B、設定データ15C、画像データ15D、および追加機能モジュール15Eなどが記憶される。ストレージ15に記憶される制御プログラム15Aなどは通信モジュール10による無線通信又はコネクタ7を介して入力されるようにしてもよい。
制御プログラム15Aは、撮像制御装置全体を制御するための機能を提供する。つまり、制御プログラム15Aの実行によって、コントローラ14は、図2に示す各ブロックを制御する。例えば、制御プログラム15Aの実行によって、コントローラ14はタッチスクリーン102、ボタン103、インカメラ104、照度センサ105、インカメラ108、およびライト109などを制御してカメラ機能を提供する。
また、制御プログラム15Aの実行によって、コントローラ14はタッチスクリーン102Bによって検知されたジェスチャー操作に基づいた処理を実行し、当該実行結果に応じた情報をディスプレイ102Aに表示する。制御プログラム15Aは、なお、ストレージ15に記憶された他のプログラムが提供する機能と組み合わせて利用するようにしてもよい。
写真編集モジュール15Bの実行によって、コントローラ14は撮像によって得られた画像データを編集および管理する。さらには、写真編集モジュール15Bの実行によって、コントローラ14は、後述する顔パーツ変更を行う。
設定データ15Cには、撮像制御装置における各種動作に係る設定および追加機能モジュールの設定に関するデータが含まれている。画像データ15Dには、インカメラ4およびインカメラ5によって撮像データが含まれている。追加機能モジュール15Eは、撮像制御装置に機能を追加するためのモジュールである。例えば、追加機能モジュール15EにはWEBページを表示するためのブラウザ機能などが含まれている。
図3は、図1に示す撮像制御装置において液晶ディスプレイに表示されるメニュー画面の一例を示す図である。
液晶ディスプレイ102Aに表示されたメニュー画面はメニュー領域301および状態表示領域302を有している。メニュー領域301は撮像制御装置のいずれの機能を実行するかをユーザーが選択するための領域である。メニュー領域301には、複数のアイコン306が表示されており、アイコン306の各々は、撮像制御装置の機能と関連付けられている。そして、コントローラ14はアイコン306に対するタップ操作を検知すると、当該アイコンに関連付けられた機能を実行する。図示の例では、アイコン306として、カレンダー、時計、ブラウザ、撮像モード、設定、動画撮像、写真、カメラがメニュー領域301に表示されている。
状態表示領域302はメニュー画面の上側に位置し、図示の例では、状態表示領域302には、WiFiの強度を示すレベルマーク303、現在時刻を示す時計表示304、および電池の残量を示す電池マーク305が表示される。なお、状態表示領域302は各種通知メッセージを表示する際にも用いられる。
図4は、図1に示す撮像制御装置で行われる自撮りを説明するための図である。そして、図4(a)はカメラ機能画面を示す図であり、図4(b)は自撮り連写の際に表示されるダイアログを示す図である。また、図4(c)はオート自撮りの際に表示される自撮りマークおよび連写マークを示す図である。
図3に示すメニュー画面において、カメラアイコンがタップ操作されると、コントローラ14はカメラ機能を起動する。そして、コントローラ14は液晶ディスプレイ102Aにカメラ機能画面を表示する(図4(a)参照)。カメラ機能画面は、メニュー画面と同様に状態表示領域302を有しており、カメラ機能画面においては、状態表示領域302には撮像に際の各種ステータスおよび通知が表示される。
図示の例では、状態表示領域302にはフラッシュマーク401および切替マーク402が表示される。ユーザーはフラッシュマーク401をタップ操作することによってフラッシュのオンおよびオフを切り替えることができる。フラッシュがオンされると、アウトカメラ108による撮像の際にライト109がフラッシュとして機能する。
また、ユーザーは切替マーク402をタップ操作することによって、撮像に用いるカメラをインカメラ104およびアウトカメラ108に交互に切り替える。
カメラ機能画面は、ライブビュー表示領域403を有し、コントローラ14は現在撮像に用いられているカメラで得られたライブビューをライブビュー表示領域403に表示する。さらに、カメラ機能画面は操作領域404を有している。
図示の例では、操作領域404には、写真ボタン405、シャッターボタン406、および設定ボタン407が表示される。写真ボタン405は、メニュー画面に表示される写真アイコン306と同等の機能を有している。写真アイコン405をタッチ操作すると、コントローラ14は写真編集モジュール15Bを起動する。
シャッターボタン406をタップ操作すると、コントローラ14は、インカメラ4又はアウトカメラ108で得られた静止画を撮像処理してストレージ15に画像データ15Dとして書き込む。なお、設定ボタン407を用いて、ユーザーはカメラ機能の各種設定を行うことができる。
後述する「自撮り連写」が設定されると、コントローラ14は、図4(b)に示すように、ライブビュー表示領域403にダイアログ408を表示する。当該ダイアログ408は「自撮り連写」が終了した際に写真編集モジュール15Bの機能の1つである顔パーツ変更機能を起動するか否かをユーザーに確認するためのダイアログである。
後述する「オート自撮り機能」が設定されると、コントローラ14は、「オート自撮り機能」による撮像の前に、図4(c)に示すダイアログ409をライブビュー表示領域403に表示する。さらに、コントローラ14は状態表示領域302に自撮りマーク410および連写マーク411を表示して、「オート自撮り機能」が起動している旨を報知する。なお、図4(c)に示すダイアログ409は連写の際中に表示するようにしてもよい。
ダイアログ409は、「オート自撮り機能」において自動で連写撮像を開始するまでの残り秒数と連写撮像の際に所謂「決め顔」をするようにユーザーに促すガイドである。なお、「決め顔」とは映りがよくなるように整えられた表情をいう。さらに、ダイアログ409においては、バリエーション(多様性)のある自撮り写真を得るため(多様性のあるパーツを得るために)、連写の際に様々の表情をとることを促す。図示の例では「いろいろな」の文言でこのことを促している。
なお、このような意味に有するガイドであれば他の文章であってもよい。ここで「自撮り連写」とは、インカメラ4による自撮りの連写撮像をユーザー操作(撮像ボタンの長押し)で行うことをいう。また「オート自撮り」とは、インカメラ4による自撮り連写撮像について、「自撮り」であるか否かの判定をコントローラ14が行って自撮りを行うことをいう。
図5は、図1に示す撮像制御装置において自撮り連写又はオート自撮りで撮像した際の画像の一例を示す図である。
図示の例では、自撮りにおいて5枚の自撮り画像が連写されており、撮像された画像が左から右に順に並んでいるものとする。
図6は、図1に示す撮像制御装置において表示される顔パーツ置換機能画面を説明するための図である。そして、図6(a)は自撮り画像の表示を示す図であり、図6(b)は1つの画像(ベース画像)が選択された状態を示す図である。また、図6(c)は顔パーツの置換が指示された状態を示す図であり、図6(d)は顔パーツ置換によって得られた画像を示す図である。
顔パーツ置換機能は写真編集モジュール15Bにおける編集機能の1つであり、連続した自撮り画像において顔パーツ(部分領域)を置換して所望の自撮り画像を得るための機能である。
顔パーツ置換機能が起動すると、コントローラ14は、図6(a)に示す顔パーツ置換機能画面を液晶ディスプレイ102Aに表示するように表示制御を行う。ここでは、図5に示す自撮り画像がサムネイル画像として顔パーツ置換機能画面に表示される。
図6(a)を参照すると、ここでは、サムネイル表示領域602に、図5に示す自撮り画像がサムネイル画像として表示される。そして、自撮り画像について左右方向のフリック操作を行うと、最前列で表示される自撮り画像が変更される。図示の例では、表示領域608に3枚目の自撮り画像601が最前列で生じされた状態が示されている。さらには、他の自撮り画像についてはその一部が表示され、これによって、当該自撮り画像601の前後に自撮り画像が存在することを示す。
「Undo」ボタン603を操作すると、コントローラ14は、直前の操作を取り消して画面を元に戻す。「終了」ボタン607を操作すると、コントローラ14は写真編集モジュール15Bの編集機能を終了する。
「戻る」ボタン605を操作すると、コントローラ14は当該編集機能が起動する前の画面に戻す。また、コントローラ14はインカメラ104又はアウトカメラ108によって撮像されてストレージ15に保存された画像データ15Dのフォルダ名がアルバム606である旨を表示する。
図6(b)を参照して、ユーザーが3枚目の自撮り画像601をベース画像として選択すると、コントローラ14は当該自撮り画像601を表示領域608に表示する。なお、「ベース画像」とは、右目、左目、鼻、および口などの顔パーツが入れ替えられる顔の画像をいう。ここでは、図6(a)に示す自撮り画像601をダブルタップすると、コントローラ14は当該自撮り画像を「ベース画像」として選択して、図6(b)に示すように表示領域608に自撮り画像601を拡大して表示する。
なお、自撮り画像601を拡大表示した際には、コントローラ14は、選択した自撮り画像601を撮像した撮像時刻610(「12月3日4時56分」)を表示する。
図6(c)を参照して、ユーザーが指によって「ベース画像」において変更したい顔パーツ(右目/左目/鼻/口)の領域をダブルタップする(図6(c)に示す例では右目)。これによって、コントローラ14はサムネイル表示領域602に連写で得られた自撮り画像において変更対象として選択された顔パーツ(右目)のみを表示する。
ユーザーがサムネイル表示領域602に表示された顔パーツ(右目)のうちの1つを選んでタップ操作すると、コントローラ14はベース画像の顔パーツを選択された顔パーツに置き換える。そして、ユーザーは所望の自撮り画像が得られるまで顔パーツ(目/鼻/口)の置換を行う。確定ボタン604をタッチ操作すると、コントローラ14は顔パーツ置換を確定する。
なお、図6(c)においては、コントローラ14は、顔パーツの置換を示す表示(顔パーツ置換611)を表示する。
図6(d)には、顔パーツ置換機能による置換の結果得られた自撮り画像が示されている。顔パーツ置換が確定すると、コントローラ14は編集済を示す編集済マーク609がステータスとして表示する。そして、コントローラ14は、自撮り画像601の顔パーツを選択された顔パーツで置換した結果得られた画像を表示する。
図7は、図1に示す撮像制御装置で行われる自撮り撮像の際の処理を説明するためのフローチャートである。なお、図示のフローチャートに係る処理は、コントローラ14がストレージ15に格納された制御プログラムをシステムメモリ16に展開して実行することによって行われる。
S702では、ユーザーがメニュー画面301において、カメラアイコン306をタップ操作すると、コントローラ14はカメラ機能を起動して撮像モードを開始する。
S703では、コントローラ14はアウトカメラ108又はインカメラ104で得られた画像(映像)をディスプレイ102Aに表示する(図4(a)参照)。
S704では、コントローラ14は撮像中のカメラがインカメラ104であるか否かを判定する。
液晶ディスプレイ102Aがバリアングル表示部である場合には、コントローラ14液晶ディスプレイ102Aが撮像方向と略同方向に向けられているか否かを判定する。つまり、コントローラ14は液晶ディスプレイ102Aの表示面が被写体から視認可能な対面位置となっているか又はその他の位置(例えば、表示面が被写体と反対側のカメラ背面側を向く位置)かを判定する。言い替えると、コントローラ14は被写体側とライブビュー画像を表示する液晶ディスプレイ102Aの表示方向とが同一の側であるか否かを判定である。そして、当該判定結果に基づいて、コントローラ14はインカメラ104あるかを判定する。なお、バリアングル表示部とは、カメラに対して表示部の位置を相対的に変更可能な表示部をいう。
インカメラ104の場合はS705に進み、そうでない場合はS706に進む。
S706では、コントローラ14はアウトカメラ108を用いて撮像を行う。そして、コントローラ14は自撮り処理を終了する。
S705では、コントローラ14は、図4(a)に示すカメラ機能画面においてシャッターボタン406がタッチ操作されたか否かを判定する。シャッターボタン406がタッチ操作された場合はS710に進み、そうでない場合はS708に進む。
S708では、コントローラ14は撮像モードが終了したか否かを判定する。ここでは、コントローラ14はボタン1033Dがタッチ操作されると撮像モードの終了と判定する。撮像モードが終了した場合には、コントローラ14は自撮り処理を終了する。そうでない場合はS705に戻る。
S710では、コントローラ14は撮像が連写であるか否かを判定する。ここでは、カメラ機能画面においてシャッターボタン406がロングタッチ操作(所定時間以上タッチを離さずに継続する操作)されると、コントローラ14は連写であると判定する。一方、ショートタップ(所定時間未満でタッチを離す操作)であると、コントローラ14は連写ではなく単写であると判定する。
なお、予め自撮り連写を行うか又は単写を行うかについて設定し、自撮り連写が設定されていれば、コントローラ14は撮像が連写である判定するようにしてもよい。予め自撮り連写の設定に変更をした直後又は自撮り連写の設定の場合にカメラ機能を起動した際には、コントローラ14は図4(b)に示すガイドを表示する。また、シャッターボタン406をロングタッチ操作した際の時間当たりの撮像枚数は図4(a)に示す設定ボタン407を用いて変更することができる。
連写である場合はS713に進み、そうでない場合はS711に進む。
S711では、コントローラ14は撮像によって得られた1枚の撮像画像をストレージ19に記録制御する。そして、コントローラ14は自撮り処理を終了する。
S713では、コントローラ14はインカメラ104によって撮像者の連写を行って得られた撮像画像をストレージ19に記憶する。S714では、コントローラ14は連写を終了する。なお、連写終了は操作者の指示があった場合に行われる。さらには、撮像制御装置の向きが変わるなど撮像条件が大きく変化したことが検知された場合に、連写を終了するようにしてもよい。
S715では、コントローラ14は図4(b)に示す顔パーツ置換機能の起動を促すメッセージダイアログ(顔パーツ置換モードの紹介メッセージ)408を表示する。S716では、コントローラ14は操作者が顔パーツ置換機能を選択したか否かを判定する。顔パーツ置換機能を選択した場合はS717に進み、そうでない場合には、コントローラ14は自撮り処理を終了する。
S717では、コントローラ14は顔パーツ置換機能による顔パーツ置換モードを実行する。そして、コントローラ14は自撮り処理を終了する。
図8は、図7に示す顔パーツ置換モードによる処理を説明するためのフローチャート図である。なお、図示のフローチャートに係る処理は、コントローラ14がストレージ15に格納された制御プログラムをシステムメモリ16に展開して実行することによって行われる。
S802では、コントローラ14は顔パーツ置換機能を用いて顔パーツ置換モードを開始する。前述のように、顔パーツ置換機能は写真編集モジュール15Bの編集機能の一部である。
S803では、コントローラ14はストレージ15に記憶した連続自撮り画像(映像)を液晶ディスプレイ102Aに表示する。ここでは、コントローラ14はS713においてストレージ15に記憶した連続自撮り画像を、図6(a)に示すように表示する。
S804では、コントローラ14はベース画像が選択されたか否かを判定する。ここでは、コントローラ14は図6(a)に示す画面においてユーザーがベース画像を選択したか否かを判定する。ベース画像が選択された場合S805に進み、そうでない場合はS804に戻る。
S805では、コントローラ14はストレージ19からベース画像を読み出してシステムメモリ16に一時記憶する。S806では、コントローラ14は顔パーツ置換のための顔パーツ選択操作が行われたか否かを判定する。ここでは、コントローラ14は変更したい顔パーツ(目/鼻/口)をダブルタップする選択操作が行われたか否かを判定する。顔パーツ選択操作が行われた場合はS809に進み、そうでない場合はS807に進む。
S807では、コントローラ14は顔パーツ置換モードが終了したか否かを判定する。ここでは、コントローラ14は終了ボタン607がタッチ操作されたか否かを判定する。顔パーツ置換モードが終了した場合には、コントローラ14は自撮り処理を終了する。そうでない場合はS806に戻る。
S809では、コントローラ14は連続自撮り画像から選択された顔パーツを抽出する。ここでは、コントローラ14は連続自撮り画像からS806で選択された顔パーツを抽出する。S810では、コントローラ14は連続自撮り画像の全てから顔パーツを抽出したか否かを判定する。なお、連続自撮り画像の全てとは、図7に示すS705およびS710で行われた1回の撮像指示で連写撮像された画像をいい、これよりも前の撮像指示で撮像された画像は含まれない。連続自撮り画像の全てから顔パーツを抽出した場合はS811に進み、そうでない場合はS809に戻る。
S811では、コントローラ14は連続自撮り画像の全てから抽出した顔パーツをサムネイル表示領域602に一覧表示する。なお、ここでは、コントローラ14は顔の器官検出によって画像から検出された顔の器官毎の部分領域(顔パーツ)を表示する。この際、図6(c)に示すように、コントローラ14はサムネイル表示領域602を参照すれば分かるように、選択された顔パーツである右目部分を拡大して表示する。
S812では、コントローラ14は、S811で一覧表示した顔パーツの一覧から1つがタップ操作で選択されたか否かを判定する。顔パーツの一覧から1つが選択された場合はS813に進み、そうでない場合はS811に戻る。
S813では、コントローラ14は、一時記憶したベース画像の顔パーツを、選択された顔パーツで置換する。つまり、コントローラ14は選択された顔パーツをベース画像の対応する顔パーツの上に重畳して合成する画像処理を行う。
S814では、コントローラ14は、S813で顔パーツが置換された画像を液晶ディスプレイ2Aにプレビューする。S815では、コントローラ14は確定ボタン604がタッチ操作されたか否かを判定する。確定ボタン704がタッチ操作された場合はS816に進み、そうでない場合はS811に戻る。
S816では、コントローラ14は抽出した顔パーツの一覧をクリアして、液晶ディスプレイ102Aに、図6(d)に示すように顔パーツ置換の結果得られた画像を表示する。
S817では、コントローラ14は終了ボタン607がタッチ操作されたか否かを判定する。終了ボタン607がタッチ操作された場合には、コントローラ14は写真編集モジュール15Bを終了してS818に進み、そうでない場合はS806に戻る。これによって、ユーザーの更なる操作に応じて他の顔パーツを置換することができる。
S818では、コントローラ14はシステムメモリ16に一時記録した置換済み画像をストレージ15に書き込む。そして、コントローラ14は顔パーツ置換モードを終了する。なお、コントローラ14は置換済み画像を、例えば、サーバに転送してサーバに保存するようにしてもよい。さらには、コントローラ14は、印刷装置(図示せず)を用いて置換済み画像を印刷するようにしてもよい。つまり、撮像制御装置を写真シール機にも適用した場合には、撮像制御装置が印刷装置を有し、置換済み画像は印刷装置によって印刷されることになる。
このように、本発明の第1の実施形態では、連続的に撮像した自撮り画像群から所望の顔パーツを選択して組み合わせる簡易な操作によって、プレビューを見つつ所望の自撮り画像を作成することができる。
これらの自撮り画像群はごく短い間に、その位置を変えることなく連続的に撮像された画像であるので、撮像条件が一定となる。よって、色調、露出、および焦点距離の調整や位置合わせなどの特別な画像処理を必要とせず、一般の撮像手法による画像と変わりのない自然な自撮り画像を生成することができる。
[第2の実施形態]
続いて、本発明の第2の実施形態による撮像制御装置の一例について説明する。なお、第2の実施形態による撮像制御装置の構成は、図1および図2に示す撮像制御装置と同様である。
図9は、本発明の第2の実施形態による撮像制御装置で行われるオート自撮り撮像の際の処理を説明するためのフローチャートである。なお、図示のフローチャートに係る処理は、コントローラ14がストレージ15に格納された制御プログラムをシステムメモリ16に展開して実行することによって行われる。
前述の第1の実施形態においては、シャッターボタン506の操作によって連写による自撮り撮像の例について説明した。一方、第2の実施形態においては、コントローラ14による判定に応じてオートで自撮り撮像が行われる。なお、図9において、S902~S904の処理は図7に示すS702~S704の処理と同様であり、S906およびS908の処理は図7に示すS706およびS708の処理と同様である。よって、ここでは説明は省略する。
S905では、コントローラ14はインカメラ104による撮像で得られた画像において顔を検知したか否かを判定する。顔を検知した場合はS910に進み、そうでない場合はS908に進む。なお、顔検知の際には、コントローラ14は既知の顔検出アルゴリズムを用いる。
S905で顔が検知された場合には、コントローラ14は撮影者(ユーザ)が自撮り撮像を行おうとしていると推定する。S910では、コントローラ14は撮像によって得られた画像(ライブビュー映像)における変化量が所定量以下の状態が所定の時間継続しているか否かを判定する。ここでは、インカメラ104で撮像中の画像における変化量が所定量以下の状態が一定時間継続していれば、コントローラ14は撮像ポーズを決めようとしていると推定する。変化量が所定量以下の状態が所定の時間継続している場合はS911に進み、そうでない場合はS912に進む。
S911では、コントローラ14は撮像中の映像の振れが所定値以上であるか否かを判定する。揺れが所定値以上である場合はS914に進み、そうでない場合はS912に進む。
S911においては、コントローラ14はインカメラ4で撮像中の映像における所定時間内の映像の変化の差分に基づいて振れが所定値以上あるか否かを判定する。なお、加速度センサ12のセンシング結果に基づいて振れを判定するようにしてもよい。さらには、映像の変化と加速度センサ12およびジャイロセンサ13のセンシング結果とを組み合わせて判定を行うようにしてもよい。
コントローラ14は振れがあるか否かに応じて、撮像制御装置が手持ちされているか否かを判定する。つまり、振れがある場合には、コントローラ14はユーザーが撮像制御装置を手持ち状態で撮像中であると推定する。一方、振れがない場合には、コントローラ14は手持ちではなく、撮像制御装置を三脚などに固定していると推定する。言い替えると、インカメラによる撮像であって、映像に顔が検知されていると、コントローラ14は自撮り撮像であると推定する。続いて、撮像中の映像の変化量が所定量以下の状態が一定時間継続していると、コントローラ14はユーザーが撮像ポーズ決めをしている最中であると推定し、振れが所定値以上あると手持ち撮像であると推定する。そして、コントローラ14はS914以降のオート連写撮像を実行する。
S912では、コントローラ14はオート自撮りを解除して通常のインカメラ撮像を行う。ここでは、コントローラ14は撮像制御装置が固定されて撮像が行われていると判定し、オート自撮りではなく通常のインカメラ撮像を行う。そして、コントローラ14はオート自撮り処理を終了する。
S914では、コントローラ14は液晶ディスプレイ102Aに連写開始のメッセージを表示する。ここでは、コントローラ14は連写撮像を開始するまでの残り秒数を通知して、連写撮像の際に所謂決め顔をするように促す表示を行う。
S915では、コントローラ14はインカメラ4によるオート連写撮像を実行する。つまり、インカメラ撮像でかつ顔を検知し、さららに、ユーザーが撮像ポーズを決めかつ手持ち撮像であると判定すると、コントローラ14はオート連写撮像開始のメッセージを操作者に通知して連写撮像を実行する。
以下、S916~S920の処理は図7に示すS713~S717の処理と同様であるので説明を省略する。
このように、本発明の第2の実施形態では、ユーザーが「自撮り」をしようとしている可能性が高い場合には、ユーザーに対してメッセージを通知しつつ、自動的に連写を行う。これによって、ユーザーによる連写開始の指示操作が不要となるので、一旦定まった構図が崩れる恐れがなくなって、ユーザーはポーズおよび表情を決めることに専念することができる。その結果、ユーザー所望の自撮り画像を一層簡便に得ることができる。
[第3の実施形態]
次に、本発明の第3の実施形態による撮像制御装置の一例について説明する。なお、第3の実施形態による撮像制御装置の構成は、図1および図2に示す撮像制御装置と同様である。
ところで、複数人で自撮り撮像を行おうとした場合、光学的な画角に複数人が収まらないことがある。この場合には、例えば、所謂自撮り棒を用いるなどして、撮像制御装置と被写体である複数人との距離を長くするようにしている。
一方、第3の実施形態では、連続的に撮像された画像群を繋ぎあわせて、カメラの光学的な画角よりも広角の画像を生成する画像生成を行い、恰も複数人を撮像した状態とする。例えば、連像撮像された自撮り画像を繋ぎ合わせることが可能な画角が存在すれば、コントローラ14は後述する拡張表示画像として液晶ディスプレイ102Aに表示する。そして、ユーザーは拡張表示画像から所望のエリアをトリミングして、複数人の被写体を含む広角な自撮り画像を得る。
図10は、本発明の第3の実施形態による撮像制御装置において行われる複数人の自撮り撮像を説明するための図である。
図10に示す例では、トリミングの結果得られた複数人の被写体を含む広角な自撮り画像が表示領域60に8表示されている。コントローラ14は、各被写体の顔の位置にエリア枠1001を表示する。ユーザーによってエリア枠1001の一つが選択されると、コントローラ14は当該選択されたエリア枠100に表示された顔画像を表示領域608全体に拡大して表示する。そして、第1の実施形態で説明したようにして、当該顔画像の顔パーツについて置換が行われる。
顔パーツの置換が終了すると、コントローラ14はその被写体の元の顔画像を置換済み画像に入れ替えて、再び複数の被写体について広角な自撮り画像を表示する。他の被写体の顔パーツの置換を行う際には、当該他の被写体の顔の位置に表示されたエリア枠1001を選択すれば、同様にして処理が行われる。
このように、本発明の第3の実施形態では、カメラの光学的な画角に複数人の被写体が収まらないような自撮り撮像の場合であっても、これらの複数人についてユーザー所望の自撮り画像を作成することができる。
なお、上述の実施の形態では、アウトカメラ108とインカメラ104を備える撮像制御装置を例に挙げて説明したが、インカメラを備えない場合であっても、ディスプレイが所謂バリアングルタイプであれば、本発明を実施することが可能である。この場合、撮像レンズと同一面にバリアングルの角度を調整して自撮り撮像を行うこととなる。
なお、コントローラ14が行うものとして説明した上述の各種制御は、1つのハードウェアが行ってもよいし、複数のハードウェアが処理を分担することで、装置全体の制御を行ってもよい。
また、本発明をその好適な実施形態に基づいて詳述してきたが、本発明はこれら特定の実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。さらに、上述した各実施形態は本発明の一実施形態を示すものに過ぎず、各実施形態を適宜組み合わせることも可能である。
また、上述した実施形態においては、本発明をスマートフォンなどの携帯端末に適用した場合を例にして説明したが、これはこの例に限定されず撮像部を有し、連写撮像可能な機器であれば適用可能である。すなわち、本発明はパーソナルコンピュータやPDA、携帯電話端末や携帯型の画像ビューワ、タブレット端末、スマートフォン、投影装置、車載装置などに適用可能である。
また、有線又は無線通信を介して撮像制御装置(ネットワークカメラを含む)と通信し、撮像制御装置を遠隔で制御する制御装置にも本発明を適用可能である。撮像制御装置を遠隔で制御する装置としては、例えば、スマートフォンやタブレットPC、デスクトップPCなどの装置がある。制御装置側で行われた操作や制御装置側で行われた処理に基づいて、制御装置側から撮像制御装置に各種動作や設定を行わせるコマンドを通知することにより、撮像制御装置を遠隔から制御可能である。また、撮像制御装置で撮像したライブビュー画像を有線または無線通信を介して受信して制御装置側で表示できるようにしてもよい。
[その他の実施形態]
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。