以下、図面に基づいて、本願の開示する撮像プログラム、撮像方法および情報処理装置の実施例を詳細に説明する。なお、本実施例により、開示技術が限定されるものではない。また、以下の実施例は、矛盾しない範囲で適宜組みあわせてもよい。
図1は、実施例の携帯端末装置の構成の一例を示すブロック図である。図1に示す携帯端末装置10は、カメラ11と、表示部12と、操作部13と、近接センサ14と、ジャイロセンサ15と、スピーカ16と、モータ17と、通信部18と、記憶部19と、制御部20とを有する。なお、携帯端末装置10は、例えば、スマートフォン、携帯電話機、PHS(Personal Handy phone System)、PDA(Personal Digital Assistant、または、Personal Data Assistance)等を用いることができる。
カメラ11は、画像を撮像するモジュールである。カメラ11は、撮像素子を有する。撮像素子は、CMOS(Complementary Metal Oxide Semiconductor)イメージセンサまたはCCD(Charge Coupled Device)イメージセンサ等を用いることができる。カメラ11は、撮像素子が受光した光を光電変換しA/D(Analog/Digital)変換を行って画像を生成する。カメラ11は、撮像した画像を制御部20に出力する。
表示部12は、各種情報を表示するための表示デバイスである。例えば、表示部12は、液晶ディスプレイ等によって実現される。操作部13は、ユーザから各種操作を受け付ける入力デバイスである。例えば、操作部13は、カーソルキーやテンキー等によって実現される。なお、携帯端末装置10にタッチパネルが採用されている場合には、表示部12および操作部13は一体化される。また、タッチパネルが採用された携帯端末装置10は、タッチパネルの他に、電源ボタン、音量ボタンおよびホームボタン等のハードウエアキーを有してもよい。
近接センサ14は、携帯端末装置10と被写体との距離を計測する。近接センサ14は、例えば、超音波や赤外線等を被写体に照射して反射した超音波や赤外線の強さ、または、超音波や赤外線を被写体に照射してから反射して戻ってくるまでの時間を計測することで、距離を計測する。近接センサ14に超音波や赤外線を用いる場合は、超音波や赤外線に指向性があるので、近接センサ14は、カメラ11と撮像される画像の中心付近にある被写体との距離を計測する。なお、近接センサ14は、1mm〜500mm程度の距離が計測可能であれば、その他の方式でもよい。近接センサ14は、超音波や赤外線の強さを計測する場合は、例えば、所定範囲の電圧を計測情報として制御部20に出力する。また、近接センサ14は、反射時間を計測する場合は、例えば、反射時間を計測情報として制御部20に出力する。
ジャイロセンサ15は、携帯端末装置10の角速度または加速度を検出する。ジャイロセンサ15は、いわゆるMEMS(Micro Electro Mechanical Systems)ジャイロを用いることができ、3軸ジャイロを用いることでX,Y,Zの3軸の角速度を検出することができる。ジャイロセンサ15は、検出した各軸の角速度を、角速度情報として制御部20に出力する。ここで、携帯端末装置10は、例えば、水平に設置された机上に携帯端末装置10を置いた場合を基準として、X,Y軸を0°とすることができる。また、Z軸は、例えば、図示しない磁気センサ等を用いて磁北または真北を0°とすることができる。
また、ジャイロセンサ15は、3軸加速度センサを用いて重力加速度を計測することで携帯端末装置10の傾きを検出して、角速度情報の代わりに加速度情報を出力するようにしてもよい。なお、ジャイロセンサ15は、MEMSジャイロと加速度センサを組み合わせることで、角度等の精度を高めることができる。
スピーカ16は、ユーザに対して携帯端末装置10の位置を誘導するための案内音声および撮影完了通知等を出力する。スピーカ16は、制御部20から電気信号である音声信号が入力されると、音声信号に応じた音波を空間に出力する。
モータ17は、小型の電動機であり、軸に半月形の錘を取り付けることで、回転によりモータ17が固定されている携帯端末装置10の筐体を振動させる。モータ17は、制御部20から振動させる旨の指示が入力されると、回転して携帯端末装置10の筐体を振動させる。
通信部18は、例えば、携帯電話回線、無線LAN(Local Area Network)、Bluetooth(登録商標)、および、NFC(Near Field Communication)等に対応する無線通信モジュールによって実現される。通信部18は、例えば、無線基地局を介して、インターネットに接続され、各種情報の通信を司る通信インタフェースである。
記憶部19は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、ハードディスクや光ディスク等の記憶装置によって実現される。記憶部19は、学習情報データベース(以下、学習情報DBという)21と、経過情報データベース(以下、経過情報DBという)22とを有する。また、記憶部19は、制御部20での処理に用いる情報を記憶する。
学習情報DB21は、ユーザが目的とする画像の距離情報、角度情報および構図情報等を有する学習情報を格納する。学習情報DB21は、異なる構図ごとにレコードを分けて学習情報を格納する。ここで、図2は、学習情報DBの一例を示す説明図である。図2に示すように、学習情報DB21は、距離情報101、距離情報の+側許容誤差102、距離情報の−側許容誤差103、角度情報104、角度情報の+側許容誤差105、角度情報の−側許容誤差106等の項目を対応付けて管理している。また、学習情報DB21は、構図情報107、構成要素108、部位109、位置110、初回撮影日時111、情報更新日時112、画像113等の項目を対応付けて管理している。
距離情報101は、目的の画像を撮影した撮影距離を示す。距離情報101は、学習が進んで複数の画像の情報を反映させた場合には、各画像の撮影距離の平均値を示す。距離情報の+側許容誤差102は、目的の画像を撮影した撮影距離の+側の許容誤差を示す。距離情報の+側許容誤差102は、従前の距離情報と、新たに撮影した画像の距離情報との差分に基づいて新たな許容誤差が算出されると、新たな許容誤差で更新される。距離情報の−側許容誤差103は、目的の画像を撮影した撮影距離の−側の許容誤差を示す。距離情報の−側許容誤差103は、距離情報の+側許容誤差102と同様の手順で更新される。
角度情報104は、目的の画像を撮影したときの携帯端末装置10の角度を示す。角度情報104は、学習が進んで複数の画像の情報を反映させた場合には、各画像に対応する角度の平均値を示す。ここで、角度情報104は、例えば、携帯端末装置10の向きを表す向き情報とすることができる。角度情報104は、向き情報として、例えば、各軸の角度から携帯端末装置10の表示部12と水平面との角度、つまり、携帯端末装置10がどの程度傾いているかのみを表すことができる。また、角度情報104は、向き情報として、例えば、下向き、斜め下向き、上向きおよび斜め上向き等の大まかな向きのみを表すようにしてもよい。
角度情報の+側許容誤差105は、目的の画像を撮影したときの携帯端末装置10の角度の+側の許容誤差を示す。角度情報の+側許容誤差105は、従前の角度情報と、新たに撮影した画像の角度情報との差分に基づいて新たな許容誤差が算出されると、新たな許容誤差で更新される。角度情報の−側許容誤差106は、目的の画像を撮影したときの携帯端末装置10の角度の−側の許容誤差を示す。角度情報の−側許容誤差106は、角度情報の+側許容誤差105と同様の手順で更新される。なお、距離情報および角度情報の許容誤差は、予め設定された最大許容誤差内の値である場合に、新たな許容誤差に更新される。
構図情報107は、さらに構成要素108を1つ以上含む。なお、図2の例では、構図情報107は、構成要素108を3つ含んでいるが、これに限られない。構成要素108は、部位109と、位置110とを有する。部位109は、目的とする被写体の部位を示す。部位109は、例えば、「頭頂部」、「耳」および「鼻」等といった情報である。なお、患部等の注目すべき特徴部位には、「頭頂部(患部)」のように追加情報またはフラグ情報等を含んでもよい。位置110は、目的の画像上における部位109の位置を示す。位置110は、例えば、「中央」、「右下」、「左下」といった情報である。初回撮影日時111は、学習情報DB21に、ある構図の画像を目的の画像として最初に格納した日時を示す。情報更新日時112は、新たに撮影した画像によって各項目を更新した場合、つまり、学習した場合の日時を示す。画像113は、目的の画像のファイルを示す。
図1の説明に戻って、経過情報DB22は、継続して撮影された、目的の画像と類似する画像である類似画像の撮影日時、距離情報、角度情報および構図情報等を有する経過情報を格納する。ここで、図3は、経過情報DBの一例を示す説明図である。図3に示すように、経過情報DB22は、撮影日時121、距離情報122、角度情報123、構図情報124、構成要素125、部位126、位置127、画像128等の項目を対応付けて管理している。
撮影日時121は、類似画像が撮影された日時を示す。距離情報122は、類似画像が撮影されたときの携帯端末装置10と被写体との距離を示す。角度情報123は、類似画像が撮影されたときの携帯端末装置10の角度を示す。構図情報124は、さらに構成要素125を1つ以上含む。なお、図3の例では、構図情報124は、構成要素125を3つ含んでいるが、これに限られない。構成要素125は、部位126と、位置127とを有する。部位126は、類似画像上の目的とする被写体の部位を示す。部位126は、例えば、「頭頂部」、「耳」および「鼻」等といった情報である。なお、患部等の注目すべき特徴部位には、「頭頂部(患部)」のように追加情報またはフラグ情報等を含んでもよい。位置127は、類似画像上における部位126の位置を示す。位置127は、例えば、「中央」、「右下」、「左下」といった情報である。画像128は、類似画像のファイルを示す。
ここで、画像128の具体例の一例を図4に示す。図4は、経過情報DBの画像の一例を示す説明図である。画像31〜画像34は、例えば、頭頂部の患部の画像であり、画像31から画像34の順に時間が経過した画像である。例えば、画像31〜画像34は、頭頂部の患部を継続的に観察するために、なるべく同じ構図で撮影された画像であることが好ましい。つまり、経過情報DB22は、患部等の所定部位における、時間の経過による変化を記録するためのデータベースである。
図1の説明に戻って、制御部20は、例えば、CPUやMPU(Micro Processing Unit)等によって、内部の記憶装置に記憶されているプログラムがRAMを作業領域として実行されることにより実現される。また、制御部20は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現されるようにしてもよい。制御部20は、取得部23と、学習部24と、抽出部25と、判定部26と、出力部27とを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部20の内部構成は、図1に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。
取得部23は、カメラ11から画像が入力され、カメラ11で撮像された画像を取得する。また、取得部23は、近接センサ14から計測情報が入力され、ジャイロセンサ15から角速度情報および加速度情報のうち1つ以上が入力される。取得部23は、計測情報の電圧または反射時間に基づいて、携帯端末装置10と被写体との距離を算出し、画像の距離情報とする。また、取得部23は、角速度情報および加速度情報のうち1つ以上に基づいて、画像取得時の携帯端末装置10の角度を算出して角度情報とする。ここで、取得部23は、角速度情報の角度を積分することで角度を算出する。また、取得部23は、加速度情報の各軸の重力加速度に基づいて、携帯端末装置10の各軸の角度を算出する。
ここで、取得部23は、携帯端末装置10の向きを表す向き情報として、例えば、各軸の角度から携帯端末装置10の表示部12と水平面との角度、つまり、携帯端末装置10がどの程度傾いているかのみを表す角度を算出してもよい。さらに、取得部23は、向き情報として、例えば、下向き、斜め下向き、上向きおよび斜め上向き等の大まかな向きのみを表すようにしてもよい。なお、取得部23は、加速度を積分することにより、携帯端末装置10の移動量(移動距離)を算出することができる。
また、取得部23は、ユーザの指示により類似画像の撮像処理を行う際に、学習情報DB21から学習情報を読み出して、目的の画像の画像例を表示部12に表示する。取得部23は、ユーザによって撮影したい画像例が選択されると、カメラ11、近接センサ14およびジャイロセンサ15を起動し、画像、計測情報、角速度情報または加速度情報の取得を開始する。取得部23は、計測情報に基づいて画像の距離情報を算出し、角速度情報または加速度情報に基づいて、画像取得時の携帯端末装置10の角度情報または向き情報を算出する。取得部23は、画像を学習部24および抽出部25に出力する。また、取得部23は、画像の距離情報、および、画像取得時の携帯端末装置10の角度情報または向き情報を、学習部24および判定部26に出力する。また、取得部23は、ユーザによって選択された画像例の情報を判定部26に出力する。
なお、取得部23は、カメラ11で撮像された画像を、動画像または静止画像として、記憶部19に出力してもよい。取得部23は、動画像として、例えば、1080i等のFHD(Full High Definition video)画質、または、720p等のHD(High Definition video)画質の動画像を出力する。また、取得部23は、静止画像として、例えば、カメラ11のイメージセンサの画素数が800万画素であれば、3264×2448ピクセルまでの画素を有する静止画像を出力する。なお、静止画像は、必要とする情報が写っていれば、イメージセンサの画素数以下である任意の画素数とすることができる。
学習部24には、取得部23から画像、画像の距離情報、および、画像取得時の携帯端末装置10の角度情報または向き情報が入力される。学習部24は、画像の距離情報、および、画像取得時の携帯端末装置10の角度情報または向き情報が取得できた画像について、所定間隔、例えば、0.5秒間隔で所定枚数を抽出して、抽出した複数の画像を候補の画像として表示部12に出力して表示する。つまり、学習部24は、所定間隔の連続した画像を、候補の画像としてユーザに提示する。
学習部24は、ユーザによって目的の画像であるとして選択された候補の画像について、画像処理により被写体の構成要素として、部位と部位の位置とを抽出する。学習部24は、部位として、例えば、人物の頭部が写っている画像について、頭髪部と他の領域とに分割し、患部、眉、耳、鼻、および、つむじ等を抽出する。学習部24は、各部位を抽出すると、各部位と各部位の位置が対応付けられた構成要素を1つ以上含む構図情報を生成する。ここで、部位について図5に例示する。図5は、部位の一例を示す説明図である。学習部24は、画像35について、頭髪部36と他の領域とに分割する。学習部24は、頭髪部36からは、つむじ37を部位として抽出する。また、学習部24は、他の領域からは、耳38、鼻39、および、眉40を部位として抽出する。
学習部24は、構図情報が生成できた画像について、画像の距離情報、画像取得時の携帯端末装置10の角度情報または向き情報、および、構図情報を対応付けて、経過情報として経過情報DB22に格納する。また、学習部24は、当該画像の経過情報に、画像の距離情報および画像取得時の携帯端末装置10の角度情報または向き情報に対して、予め設定された許容範囲である許容誤差を付加して学習情報を生成し、学習情報DB21に格納する。つまり、学習部24は、学習情報を生成する生成部である。
また、学習部24は、判定部26から更新情報が入力されると、経過情報DB22を参照して更新する経過情報を読み出し、対応する学習情報との間で距離情報および角度情報の差分を算出する。学習部24は、学習情報の距離情報および角度情報の許容誤差に算出した差分を加えて、新たな許容誤差を算出する。学習部24は、新たな許容誤差が最大許容誤差内であれば、新たな許容誤差を学習情報に反映する。学習部24は、新たな許容誤差が最大許容誤差外であれば、算出した新たな許容誤差は反映せずに破棄する。学習部24は、距離情報および角度情報の差分が未算出の経過情報がある場合は、次の経過情報を参照し、同様に新たな許容誤差を算出する。学習部24は、距離情報および角度情報の差分が未算出の経過情報がない場合は、学習情報の更新処理を終了する。なお、学習部24は、角度情報に代わって向き情報の許容誤差を算出するようにしてもよい。
図1の説明に戻って、抽出部25は、取得部23から画像が入力されると、画像の被写体に対してパターンマッチング等の画像処理を実行する。抽出部25は、画像処理により、画像から被写体の部位および画像上の部位の位置を抽出して、抽出した部位と部位の位置とを構成要素とする。抽出部25は、抽出した1つ以上の構成要素を纏めて構図情報を生成する。抽出部25は、生成した構図情報を判定部26に出力する。
判定部26は、抽出部25から構図情報が入力されると、学習情報DB21に格納された学習情報を読み出す。判定部26は、構図情報の構成要素と、学習情報の構成要素が一致するか否かを判定する。判定部26は、まず、構成要素の部位が互いに一致するか否かを判定する。判定部26は、構成要素が複数ある場合にはそれぞれ判定し、少なくとも1つ以上一致する部位があれば、当該部位の位置が一致するか否かを判定する。つまり、判定部26は、構図情報および学習情報の構成要素が、少なくとも1つ以上一致するか否かを判定する。
また、判定部26には、取得部23から画像の距離情報、および、画像取得時の携帯端末装置10の角度情報または向き情報が入力される。判定部26は、構図情報および学習情報の構成要素が、少なくとも1つ以上一致する場合には、画像の距離情報を、学習情報の距離情報と比較する。判定部26は、互いの距離情報の差が許容範囲内、つまり、+側、−側それぞれの許容誤差の範囲内であれば、画像に、距離情報、角度情報または向き情報、および、構図情報を対応付けて、出力部27に出力する。このとき、判定部26は、画像が出力されたことをユーザに通知するために、例えば、音声で「撮影が完了しました」と通知し、または、携帯端末装置10を振動させて通知するようにしてもよい。
判定部26は、構図情報および学習情報の構成要素が、所定数一致しない場合、または、互いの距離情報の差が許容範囲外である場合には、ユーザに対して、当該画像の構図情報または距離情報を学習情報へ向けて誘導する。判定部26は、ユーザを誘導するために、音声で携帯端末装置10を動かす方向を案内する。判定部26は、例えば、被写体の目的とする部位が画像の下部にあると判定した場合は、携帯端末装置10を下方に移動させるように、例えば、「下に動かしてください」等と案内する。また、判定部26は、ユーザを誘導するために、携帯端末装置10を振動させて案内してもよい。判定部26は、例えば、被写体の目的とする部位が画像の中心にある程、振動を強くして、画像の端になる程、振動を弱くし、画像の撮像範囲から外れている場合には、振動しないようにすることで、ユーザを案内できる。また、判定部26は、例えば、携帯端末装置10が被写体に近づきすぎている場合には、例えば、「カメラを遠ざけてください」等と案内する。つまり、判定部26は、案内を通知する通知部でもある。
判定部26は、取得部23から入力された、ユーザによって選択された画像例の情報に基づいて、全ての画像例に対応する画像を撮影したか判定する。判定部26は、全ての画像例に対応する画像の撮影が完了していない場合は、次の画像例に対応する撮影位置にユーザを誘導する。判定部26は、全ての画像例に対応する画像の撮影が完了した場合は、学習部24に対して、更新情報を出力する。
出力部27には、判定部26から画像、ならびに、画像に対応付けられた距離情報、角度情報または向き情報、および、構図情報が入力される。出力部27は、画像、ならびに、画像に対応付けられた距離情報、角度情報または向き情報、および、構図情報を経過情報として経過情報DB22に格納する。また、出力部27は、ユーザが撮影した画像を確認できるように、画像を表示部12に出力して表示する。さらに、出力部27は、画像に対してエンコード処理を実行し、画像のファイルサイズを圧縮するようにしてもよい。出力部27は、エンコードされた画像を記憶部19に出力してもよいし、通信部18およびインターネットを介して、他のサーバに格納するようにしてもよい。
次に、実施例の携帯端末装置10の動作について説明する。
まず、図6を用いて、学習情報がない状態からの学習処理の概略を説明する。図6は、学習処理の一例の概略を示す説明図である。ユーザは、携帯端末装置10を手に持って、自身では目視できない頭頂部および後頭部等を撮影して、目的の画像の候補となる画像を取得する。このとき、携帯端末装置10は、撮像範囲に頭部全体が収まっているのか、または、一部分が写っている状態であるかを案内してもよい。携帯端末装置10は、表示部12に、候補の画像をサムネイル表示する枠41を表示し、候補の各画像を表示する。ユーザは、指で画像をタッチする等して画像42を選択する。携帯端末装置10は、選択された画像42に、画像の距離情報、画像取得時の携帯端末装置10の角度情報または向き情報、および、構図情報等を対応付けて学習情報を生成し、学習情報DB21に格納する。
図7は、実施例の携帯端末装置の学習処理の一例を示すフローチャートである。携帯端末装置10は、ユーザの指示によって学習処理が開始されると、取得部23が、カメラ11、近接センサ14およびジャイロセンサ15を起動し、画像、計測情報、角速度情報または加速度情報の取得を開始する(ステップS1)。取得部23は、計測情報に基づいて画像の距離情報を算出し、角速度情報または加速度情報に基づいて、画像取得時の携帯端末装置10の角度情報または向き情報を算出する。ここで、取得部23は、計測情報に基づいて画像の距離情報が算出できたか否か、つまり、距離情報が取得できたか否かを判定する(ステップS2)。取得部23は、距離情報が取得できない場合は(ステップS2:否定)、新たな計測情報に基づいて、再度画像の距離情報を算出する。
取得部23は、距離情報が取得できた場合は(ステップS2:肯定)、角速度情報または加速度情報に基づいて、角度情報または向き情報を算出できたか否か、つまり、角度情報または向き情報が取得できたか否かを判定する(ステップS3)。取得部23は、角度情報または向き情報が取得できない場合は(ステップS3:否定)、ステップS2に戻り、距離情報が取得できた場合は、新たな角速度情報または加速度情報に基づいて、再度角度情報または向き情報を算出する。取得部23は、角度情報または向き情報が取得できた場合は(ステップS3:肯定)、画像、画像の距離情報、および、角度情報または向き情報を学習部24に出力する。
学習部24は、取得部23から入力された、画像の距離情報、および、角度情報または向き情報が取得できた画像について、取得部23が所定間隔で所定枚数を抽出したか否かを判定する(ステップS4)。学習部24は、取得部23が所定間隔で所定枚数の画像を抽出できなかった場合は(ステップS4:否定)、ステップS2に戻り、取得部23に対して、画像、画像の距離情報、および、角度情報または向き情報の再取得を指示する。学習部24は、取得部23が所定間隔で所定枚数の画像を抽出できた場合は(ステップS4:肯定)、抽出した所定枚数の画像を候補の画像として表示部12に出力して表示し、ユーザに提示する(ステップS5)。
学習部24は、携帯端末装置10の表示部12に提示された候補の画像から、ユーザによって目的の画像が選択されたか否か判定する(ステップS6)。学習部24は、ユーザによって目的の画像が選択されなかった場合には(ステップS6:否定)、ステップS2に戻り、取得部23に対して、画像、画像の距離情報、および、角度情報または向き情報の再取得を指示する。学習部24は、ユーザによって目的の画像が選択された場合には(ステップS6:肯定)、被写体の構成要素として、部位と部位の位置とを抽出して構成要素とし、構成要素から構図情報を生成する(ステップS7)。
学習部24は、構図情報が生成できたか否かを判定する(ステップS8)。学習部24は、構図情報が生成できなかった場合には(ステップS8:否定)、ステップS2に戻り、取得部23に対して、画像、画像の距離情報、および、角度情報または向き情報の再取得を指示する。学習部24は、構図情報が生成できた場合には(ステップS8:肯定)、画像に対して、画像の距離情報、角度情報または向き情報、および、構図情報を対応付けて、経過情報として経過情報DB22に格納する(ステップS9)。また、学習部24は、当該画像の経過情報に、画像の距離情報および角度情報または向き情報に対して予め設定された許容範囲である許容誤差を付加して学習情報を生成し、学習情報DB21に格納する(ステップS10)。
携帯端末装置10は、学習処理によって、自動撮影のための目的となる画像と、当該画像に対応する構図情報等とを取得し、学習情報を生成することができる。
続いて、図8を用いて、経過情報として目標の画像に類似する画像を撮像する処理の概略を説明する。図8は、類似画像撮像処理の一例の概略を示す説明図である。ユーザは、携帯端末装置10の表示部12に表示された学習情報の画像から、撮影したい画像例43を選択する。ここで、画像例43として、例えば、画像例43A,43B,43Cが選択されたとする。画像例43A〜43Cには、それぞれ学習情報が対応付けられている。ユーザは、携帯端末装置10を手に持って、画像例43A〜43Cに類似する画像を撮影するために、自身では目視できない頭頂部および後頭部等に向けて携帯端末装置10を移動させる。
携帯端末装置10は、被写体であるユーザの目標とする部位が、例えば、撮像範囲内に入ると、目標とする部位が撮像範囲の中央にくるように、ユーザを誘導する。携帯端末装置10は、ユーザが誘導に従って携帯端末装置10を移動させ、目標とする部位が撮像範囲の中央にくると、自動的に撮影を行う。携帯端末装置10は、例えば、画像例43Aの学習情報と、撮影中の画像の構図情報とが同じになる方向に誘導し、類似の画像を撮像する。携帯端末装置10は、画像例43Aの撮像が終了すると、続いて、画像例43B,43Cについて誘導および撮像を行う。なお、携帯端末装置10は、画像例43A〜43Cの撮影の順番は任意とし、最も近い画像例から撮影する。携帯端末装置10は、撮像した画像例43A〜43Cに類似する画像を、撮像時の距離情報、携帯端末装置10の角度情報または向き情報、および、構図情報等を対応付けて経過情報を生成し、経過情報DB22に格納する。
図9は、実施例の携帯端末装置の類似画像撮像処理の一例を示すフローチャートである。携帯端末装置10は、ユーザの指示によって類似画像の撮像処理が開始されると、取得部23が学習情報DB21から学習情報を読み出して、目的の画像の画像例を表示部12に表示する(ステップS51)。取得部23は、ユーザによって撮影したい画像例が選択されると、選択された画像例の情報を判定部26に出力する(ステップS52)。また、取得部23は、カメラ11、近接センサ14およびジャイロセンサ15を起動し、画像、計測情報、角速度情報または加速度情報の取得を開始する(ステップS53)。取得部23は、計測情報に基づいて画像の距離情報を算出し、角速度情報または加速度情報に基づいて、画像取得時の携帯端末装置10の角度情報または向き情報を算出する。取得部23は、画像を抽出部25に出力する。また、取得部23は、画像の距離情報、および、画像取得時の携帯端末装置10の角度情報または向き情報を、判定部26に出力する。
抽出部25は、取得部23から画像が入力されると、画像から被写体の部位および画像上の部位の位置を抽出して、抽出した部位と部位の位置とを構成要素とする。抽出部25は、抽出した1つ以上の構成要素を纏めて構図情報を生成する(ステップS54)。抽出部25は、生成した構図情報を判定部26に出力する。
判定部26は、抽出部25から構図情報が入力されると、学習情報DB21に格納された学習情報を読み出す。判定部26は、構図情報の構成要素と、学習情報の構成要素が少なくとも1つ以上一致するか否かを判定する(ステップS55)。判定部26は、それぞれの構成要素が少なくとも1つ以上一致する場合は(ステップS55:肯定)、画像の距離情報を、学習情報の距離情報と比較し、互いの距離情報の差が許容範囲内であるか否かを判定する(ステップS56)。つまり、判定部26は、被写体と携帯端末装置10との距離が、学習情報における距離情報の許容範囲内であるか否かを判定する。判定部26は、それぞれの構成要素が所定数一致しない場合(ステップS55:否定)、または、互いの距離情報の差が許容範囲外である場合は(ステップS56:否定)、ユーザを撮像位置に誘導し(ステップS60)、ステップS54へ戻る。つまり、判定部26は、当該画像の構図情報または距離情報を学習情報へ向けて、ユーザを誘導する。判定部26は、互いの距離情報の差が許容範囲内である場合は(ステップS56:肯定)、画像に、距離情報、角度情報または向き情報、および、構図情報を対応付けて、出力部27に出力する。また、判定部26は、画像が出力されたことをユーザに通知するために、例えば、音声で「撮影が完了しました」と通知し、または、携帯端末装置10を振動させて通知する。
出力部27は、判定部26から画像、距離情報、角度情報または向き情報、および、構図情報が入力されると、画像に、距離情報、角度情報または向き情報、および、構図情報を対応付けて経過情報とし、経過情報DB22に格納する(ステップS57)。
判定部26は、取得部23から入力された、選択された画像例の情報に基づいて、全ての画像例に対応する画像を撮像したか否かを判定する(ステップS58)。判定部26は、全ての画像例に対応する画像を撮像していない場合は(ステップS58:否定)、ユーザを次の撮像位置に誘導し(ステップS60)、ステップS54へ戻る。つまり、判定部26は、画像の構図情報または距離情報を次の画像例の学習情報へ向けて、ユーザを誘導する。判定部26は、全ての画像例に対応する画像を撮像した場合は(ステップS58:肯定)、学習部24に対して学習情報の更新処理の実行を指示する更新情報を出力する(ステップS59)。また、判定部26は、全ての画像例に対応する画像の撮像が完了したことをユーザに通知するために、例えば、音声で「全ての撮影が完了しました」と通知し、または、携帯端末装置10を振動させて通知する。
図10は、学習情報の更新処理の一例を示すフローチャートである。学習部24は、判定部26から更新情報が入力されると、経過情報DB22を参照して更新する経過情報を読み出し、対応する学習情報との間で、距離情報および角度情報の差分を算出する(ステップS591)。学習部24は、学習情報の距離情報および角度情報の許容誤差に算出した差分を加えて、新たな許容誤差を算出する(ステップS592)。
学習部24は、新たな許容誤差が最大許容誤差内であるか否かを判定する(ステップS593)。学習部24は、新たな許容誤差が最大許容誤差内である場合は(ステップS593:肯定)、新たな許容誤差を学習情報に反映する(ステップS594)。学習部24は、新たな許容誤差が最大許容誤差外である場合は(ステップS593:否定)、算出した新たな許容誤差は反映せずに破棄する。学習部24は、距離情報および角度情報の差分が未算出の経過情報があるか否かを判定する(ステップS595)。学習部24は、距離情報および角度情報の差分が未算出の経過情報がある場合は(ステップS595:肯定)、次の経過情報を参照し(ステップS596)、ステップS591に戻って同様に新たな許容誤差を算出する。学習部24は、距離情報および角度情報の差分が未算出の経過情報がない場合は(ステップS595:否定)、学習情報の更新処理を終了する。
携帯端末装置10の学習部24は、学習情報の更新処理によって、経過情報を蓄積することで、撮像の条件である被写体と携帯端末装置10との間の距離と、携帯端末装置10の角度または向きとについて、最大許容誤差の範囲内において許容誤差を拡大できる。その結果、より簡便に目的の画像を撮像することができる。
携帯端末装置10は、学習情報DB21から画像例をユーザに提示し、撮像する画像例が選択される。携帯端末装置10は、撮像した画像から構図情報を生成し、構図情報と距離情報等が一致する場合に画像を経過情報として経過情報DB22に格納する。また、携帯端末装置10は、構図情報と距離情報等が一致しない場合に、一致する方向にユーザを誘導する。その結果、誘導する案内に従ってユーザが携帯端末装置10を動かすことで、目的の画像を簡便に撮影できる。
次に、図11を用いて、経過情報の蓄積と学習情報との関係について説明する。図11は、経過情報の蓄積による学習情報の変化の一例を示す説明図である。まず、ユーザは、携帯端末装置10の学習処理を実行して、側頭部の目的とする部位である患部44が中央に位置する画像45を撮像する。画像45は、目的の画像として学習情報DB21に格納される。
携帯端末装置10は、2回目以降の撮影では、学習情報DB21を参照して撮像を実行する。このとき、携帯端末装置10は、画像46,47,48に示すように、患部44が画像内に含まれる場合には、許容する画像として経過情報に蓄積する。これに対し、携帯端末装置10は、画像49,50に示すように、患部44が画像に全く含まれていなかったり、一部分のみ含まれる場合には、許容しない画像、つまり、経過情報として蓄積を行わない。
携帯端末装置10は、経過情報を蓄積することで、例えば、当初は学習情報と一致しないと判定された画像51のような画像であっても、経過情報を蓄積し、学習情報の許容誤差が更新されて拡大されることで、許容する画像として経過情報に蓄積する。つまり、携帯端末装置10は、目的の画像45と被写体の向きが変化していても許容して撮像を行うようになる。また、携帯端末装置10は、さらに経過情報を蓄積することで、側頭部にある患部44が画像内に含まれれば、正面から撮像した画像52であっても許容することができる。
このように、携帯端末装置10は、被写体が連続して撮像された画像を取得し、当該画像の撮像時における被写体および当該画像を撮像したカメラの間の距離情報を取得する。携帯端末装置10は、画像から被写体の部位および画像上の部位の位置が対応付けられた構成要素を抽出する。携帯端末装置10は、目的とする被写体の部位を含む目的の画像の撮像時における、目的とする被写体の部位および目的の画像上の部位の位置が対応付けられた構成要素が対応付けられた学習情報を記憶する記憶部を参照する。携帯端末装置10は、目的とする被写体の部位を含む目的の画像の撮像時における、目的とする被写体および目的の画像を撮像したカメラの間の距離情報が対応付けられた学習情報を記憶する記憶部を参照する。携帯端末装置10は、取得された画像のうち学習情報との間で構成要素が一致し、かつ、距離情報の差が許容範囲内である画像を出力する。その結果、目的の画像を簡便に撮影できる。
また、携帯端末装置10は、画像から構成要素を複数抽出し、学習情報との間で互いの構成要素が少なくとも1つ以上一致し、かつ、距離情報の差が許容範囲内である画像を出力する。その結果、学習情報の全ての構成要素について一致しなくとも、構成要素のうち目的とする部位が画像に含まれていれば、目的の画像に類似するとして、より簡便に撮影できる。
また、携帯端末装置10は、学習情報との間で構成要素が一致しない画像もしくは互いの距離情報の差が許容範囲外である画像が取得された場合に、当該画像の構成要素または距離情報を学習情報へ向けて誘導する案内を通知する。その結果、ユーザが案内に従って携帯端末装置10を動かすことで、目的の画像をより簡便に撮影できる。
また、携帯端末装置10は、学習情報として、目的の画像の撮像時における前記画像を撮像するカメラの向き情報がさらに対応付けられるものを用いる。携帯端末装置10は、画像の撮像時のカメラの向き情報を取得し、学習情報との間で互いの向き情報の差が許容範囲内である画像を出力する。その結果、画像の構成要素(構図)、および、撮像時の被写体と携帯端末装置10との距離だけでなく、携帯端末装置10の向きを考慮することで、ユーザに携帯端末装置10の向きについても誘導できる。
また、携帯端末装置10は、被写体が連続して撮像された画像を、目的の画像の候補となる画像として取得し、候補の画像の撮像時における被写体および画像を撮像したカメラの間の距離情報を取得し、候補の画像の撮像時における前記画像を撮像するカメラの向き情報を取得する。携帯端末装置10は、候補の画像をユーザに提示して、ユーザにより選択された候補の画像から構成要素を抽出する。携帯端末装置10は、構成要素が抽出された候補の画像を目的の画像とし、目的の画像に構成要素および目的の画像の撮像時における距離情報が対応付けられた学習情報を生成する。その結果、携帯端末装置10は、目的の画像と対応する学習情報とを取得できる。
また、上記実施例では、判定部26は、抽出部25から入力される構図情報と併せて、取得部23から画像の距離情報、および、角度情報または向き情報が入力されたが、これに限定されない。例えば、判定部26は、構図情報および距離情報の一致を判定してから、取得部23に対して、角度情報または向き情報を要求するようにしてもよい。
また、上記実施例では、ユーザが目視できない被写体として、ユーザ自身の頭部や背中等を例として挙げたが、これに限定されない。例えば、被写体は、壁に隣接して設置された装置の裏側等、ユーザが目視できない被写体であれば、いずれにも適用することができる。
また、上記実施例では、目的の画像の画像例を複数としたが、これに限定されず、1枚の画像例をユーザに選択させてもよい。
また、上記実施例では、目的の画像に類似する画像を記憶部19の経過情報DB22に格納したが、これに限定されない。例えば、携帯端末装置10は、患部の画像を経過観察のために継続的に撮像して、適宜、通信部18を介して通信回線を経由し、医師のコンピュータに送信するようにしてもよい。
また、上記実施例では、被写体の目的とする部位として患部を挙げたが、治療により患部が判別できなくなる場合がある。このため、携帯端末装置10は、学習情報のうち最も優先される部位が含まれる構成要素が、画像の構図情報の中で一致しない場合であっても、その他の構成要素が一致すれば撮像を行い、画像を取得する。これにより、例えば、携帯端末装置10は、耳が画像の中に存在すれば画像を取得することで、側頭部の患部が治癒して判別できない場合でも、目的とする画像を得ることができる。
また、上記実施例では、取得部23は、近接センサ14から入力された計測情報に基づいて、携帯端末装置10と被写体との間の距離を計測したが、これに限定されない。例えば、取得部23は、被写体の部位の寸法aについて、予めユーザによって入力される等して判明していれば、部位の寸法aと、カメラ11の焦点距離bと、カメラ11から入力された画像上の部位の寸法cとに基づいて、当該距離を算出できる。つまり、携帯端末装置10と被写体との間の距離Xは、a:c=x:b、および、X=x+bより算出できる。これにより、取得部23は、距離Xを画像の距離情報とすることができる。
また、上記実施例では、情報処理装置として携帯端末装置10を例示したが、これに限定されない。情報処理装置は、例えば、据え置き型のパーソナルコンピュータであってもよい。
また、図示した各部の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各部の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、上記実施例では、学習処理における構図情報の生成を学習部24で実行したが、類似画像の撮像処理で構図情報を生成する抽出部25で実行するようにしてもよい。
更に、各装置で行われる各種処理機能は、CPU(またはMPU、MCU(Micro Controller Unit)等のマイクロ・コンピュータ)上で、その全部または任意の一部を実行するようにしてもよい。また、各種処理機能は、CPU(またはMPU、MCU等のマイクロ・コンピュータ)で解析実行されるプログラム上、またはワイヤードロジックによるハードウェア上で、その全部または任意の一部を実行するようにしてもよいことは言うまでもない。
ところで、上記の実施例で説明した各種の処理は、予め用意されたプログラムをコンピュータで実行することで実現できる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータの一例を説明する。図12は、撮像プログラムを実行するコンピュータの一例を示す説明図である。
図12に示す撮像プログラムを実行するコンピュータ200は、インタフェース部211と、RAM212と、ROM(Read Only Memory)213と、プロセッサ214とを有する。インタフェース部211は、例えば、USB(Universal Serial Bus)等の各種インタフェースまたは通信回線を介して、被写体が撮像された画像、および、画像の撮像時における被写体およびカメラの間の距離情報を取得する。プロセッサ214は、コンピュータ200全体を制御する。
そして、ROM213には、上記実施例と同様の機能を発揮する撮像プログラムが予め記憶されている。尚、ROM213ではなく、図示せぬドライブで読取可能な記録媒体に撮像プログラムが記録されていてもよい。また、記録媒体としては、例えば、CD−ROM、DVDディスク、USBメモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ等でもよい。撮像プログラムとしては、図12に示すように、取得プログラム213A、抽出プログラム213Bおよび出力プログラム213Cである。なお、プログラム213A〜213Cについては、適宜統合または分散してもよい。また、RAM212には、学習情報および経過情報等を格納するデータベースが記憶してある。
そして、プロセッサ214が、これらのプログラム213A〜213CをROM213から読み出し、これらの読み出された各プログラムを実行する。そして、プロセッサ214は、図12に示すように、各プログラム213A〜213Cを、取得プロセス214A、抽出プロセス214Bおよび出力プロセス214Cとして機能することになる。
プロセッサ214は、被写体が連続して撮像された画像を取得し、当該画像の撮像時における被写体および画像を撮像したカメラの間の距離情報を取得する。プロセッサ214は、画像から被写体の部位および画像上の部位の位置が対応付けられた構成要素を抽出する。プロセッサ214は、目的とする被写体の部位を含む目的の画像の撮像時における、目的とする被写体の部位および目的の画像上の部位の位置が対応付けられた構成要素を記憶する記憶部を参照する。プロセッサ214は、目的とする被写体の部位を含む目的の画像の撮像時における、目的とする被写体および目的の画像を撮像したカメラの間の距離情報が対応付けられた学習情報を記憶する記憶部を参照する。プロセッサ214は、取得された画像のうち学習情報との間で構成要素が一致し、かつ、距離情報の差が許容範囲内である画像を出力する。その結果、目的の画像を簡便に撮影できる。