以下に添付図面を参照して、画像処理装置、画像処理方法、及び画像処理プログラムの一の実施の形態を詳細に説明する。
(実施の形態1)
図1は、本実施の形態の画像処理システム10の機能的構成を示すブロック図である。画像処理システム10は、画像処理装置12、撮像部14、入力部16、記憶部18、及び提示部20を備える。
本実施の形態では、画像処理システム10は、画像処理装置12と、撮像部14、入力部16、記憶部18、及び提示部20と、が別体として設けられた構成である場合を説明する。しかし、画像処理システム10は、画像処理装置12と、撮像部14、入力部16、記憶部18、及び提示部20の内の少なくとも1つと、が一体的に構成された形態であってもよい。
撮像部14は、被写体を撮像し、被写体の被写体画像を得る。撮像部14は、所定時間毎に被写体を撮像する。撮像部14は、撮像によって取得した被写体画像を、順次、画像処理装置12へ出力する。撮像部14が、連続して被写体を撮像して画像処理装置12へ出力することで、画像処理装置12は、撮像時間の異なる複数の被写体画像を含む動画像を得ることとなる。
被写体は、衣服を試着する対象である。被写体は、衣服を試着する対象であればよく、生物であってもよいし、非生物であってもよい。該生物には、例えば、人物が挙げられるが、人物に限られず、犬や猫等のペットであってもよい。また、該非生物には、人体やペットの形状を模したマネキンや、衣服、その他の物体等が挙げられるが、これに限られない。また、被写体は、衣服を着用した状態の生物や非生物であってもよい。
また、衣服とは、被写体が着用可能な品物である。衣服としては、例えば、上着、スカート、ズボン、靴、帽子等が挙げられる。
本実施の形態では、撮像部14は、第1撮像部14A及び第2撮像部14Bを含む。
第1撮像部14Aは、撮像により被写体のデプス画像を取得する。第2撮像部14Bは、撮像により被写体の色画像を取得する。
色画像は、ビットマップ画像である。被写体の色画像は、画素毎に、被写体の色や輝度等を示す画素値の規定された画像である。第2撮像部14Bは、色画像を取得可能な公知の撮像装置である。
デプス画像は、距離画像と称される場合がある。被写体のデプス画像は、被写体画像を構成する画素毎に、被写体を撮像した第1撮像部14Aからの距離を規定した画像である。本実施の形態では、被写体のデプス画像は、被写体の色画像から、ステレオマッチング等の公知の方法により作成してもよいし、被写体の色画像と同じ撮影条件で、第1撮像部14Aを用いて撮像することで取得してもよい。第1撮像部14Aには、デプス画像を取得可能な公知の撮像装置を用いる。
本実施の形態では、第1撮像部14A及び第2撮像部14Bは、同じタイミングで被写体の撮像を行う。第1撮像部14A及び第2撮像部14Bは、図示を省略する制御部等によって、同じタイミングで同期して撮像を順次行うように制御されているものとする。そして、撮像部14は、撮像によって得た被写体のデプス画像及び被写体の色画像を含む被写体画像を、順次画像処理装置12へ出力する。
提示部20は、各種画像を提示する装置である。本実施の形態では、提示部20は、画像処理装置12で生成された後述する合成画像を提示する。なお、提示とは、表示、印刷、及び送信等を示す。
提示部20は、例えば、液晶表示装置等の表示装置や、画像を印刷する印刷装置や、有線通信や無線通信等により外部装置へ情報を送信する公知の通信装置等である。提示部20が、表示装置である場合には、提示部20は、合成画像を表示する。また、提示部20が通信装置である場合には、提示部20は、合成画像を外部装置へと送信する。また、提示部20が印刷装置である場合には、提示部20は、合成画像を印刷する。
なお、本実施の形態では、提示とは、表示を示し、提示部20は、表示装置である場合を説明する。
入力部16は、ユーザが各種の操作入力を行うための手段である。入力部16には、例えば、マウス、ボタン、リモコン、キーボード、マイク等の音声認識装置、及び画像認識装等の1または複数を組み合せたもの等が挙げられる。また、入力部16として、上記画像認識装置を採用する場合には、入力部16の前に対峙するユーザの身振り手振り等を、ユーザの各種指示として受け付ける装置としてもよい。この場合には、該画像認識装置では、身振りや手振り等の各動きに対応する指示情報を予め記憶し、認識した身振りや手振りに対応する指示情報を読み取ることで、ユーザによる操作指示を受け付ければよい。
また、入力部16は、携帯端末等の各種情報を送信する外部装置から、ユーザの操作指示を示す信号を受け付ける通信装置であってもよい。この場合には、入力部16は、該外部装置から受信した操作指示を示す信号を、ユーザによる操作指示として受け付ければよい。
なお、入力部16及び提示部20は、一体的に構成されていてもよい。具体的には、入力部16及び提示部20は、入力機能及び表示機能の双方を備えたUI(User Interface)部として構成されていてもよい。UI部には、タッチパネル付LCD(Liquid Crystal Display)等がある。
図2は、画像処理システム10の外観を示す模式図である。
図2に示すように画像処理システム10における提示部20は、例えば矩形状の筐体51の一の面に組み込まれている。そして、画像処理システム10では、被写体Pが各種衣服を試着した状態を示す合成画像Wを、提示部20に表示する。人物等の被写体Pは、例えば、該提示部20に対面した位置から、該提示部20に提示された合成画像Wを視認する。
また、筐体51は、入力部16、及び撮像部14(第1撮像部14A及び第2撮像部14B)を支持している。図2に示す例では、入力部16、及び第2撮像部14Bは、筐体51における、提示部20の水平方向両端部に設けられている。また、第1撮像部14Aは、筐体51における、提示部20の上部に設けられている。なお、入力部16の設置位置は、この位置に限られない。また、第1撮像部14A及び第2撮像部14Bは、被写体Pを撮像可能な位置に設けられていればよく、これらの位置に限定されない。
ユーザが入力部16を操作指示することで、各種情報が入力部16を介して入力される。また、第1撮像部14A及び第2撮像部14Bは、上述したように、同じタイミングとなるように同期しながら、被写体Pを順次撮像する。そして、第1撮像部14A及び第2撮像部14Bは、撮像によって得た被写体画像を、画像処理装置12へ順次出力する。
図1に戻り、記憶部18は、被写体画像に重畳する衣服画像を予め記憶する。本実施の形態では、記憶部18は、衣服番号と、姿勢情報と、衣服画像と、属性情報と、を対応づけた第1テーブルを記憶する場合を説明する。
図3は、第1テーブルのデータ構造の一例を示す図である。
衣服番号は、衣服を一意に識別する情報である。衣服番号には、例えば、製品番号や、衣服の名称等が挙げられるが、これらに限られない。製品番号には、例えば、公知のJANコードを用いる。名称には、例えば、衣服の品名等を用いる。
なお、衣服番号は、衣服を一意に識別する情報である。このため、1の衣服番号に、姿勢情報の異なる複数の衣服画像が対応付けられる場合もある。
姿勢情報は、衣服画像の取得時の衣服の着用対象である被写体の姿勢を示す情報である。姿勢情報は、被写体の、撮像装置14に対する被写体の向きや動き等を示す。
被写体の向きとは、衣服画像の取得時の、該衣服画像の衣服を着用した被写体の撮像装置14に対する向きを示す。例えば、被写体の向きとしては、顔及び身体が撮像装置14に対して正面を向いている正面方向、顔及び身体が撮像装置14に対して側面を向いている側面方向、正面方向及び側面方向以外の他の方向等がある。
被写体の動きは、衣服画像の衣服を着用した被写体の骨格の位置を示す骨格情報によって示される。骨格情報は、衣服画像を構成する各画素の画素位置に対応する、該衣服画像の衣服を着用した被写体の骨格の位置を示す情報を、画素毎に定めた情報である。
本実施の形態では、姿勢情報は、被写体の向きと、骨格情報と、を含むものとする。
衣服画像は、衣服を着用した被写体の撮像によって得られる。衣服画像は、画素毎に、衣服の色や輝度等を示す画素値の規定された画像である。例えば、衣服画像には、衣服を第2撮像部14Bで撮像することによって得られた画像等を用いる。
属性情報は、対応する衣服画像の属性を示す情報である。属性情報は、例えば、衣服画像の衣服のサイズ、衣服の色、衣服の素材、衣服の値段等がある。
具体的には、例えば、1種類の衣服について、正面方向から撮影された衣服画像と、側面側から撮影された衣服画像と、を画像処理システム10で取得したとする。この場合、記憶部18には、該衣服を示す衣服番号に対応づけて、被写体の向きである「正面方向」及び正面方向を向いた被写体の骨格情報を含む姿勢情報と、該姿勢情報に対応する、正面方向から撮影された衣服画像と、が予め記憶される。同様に、記憶部18には、該衣服を示す衣服番号に対応づけて、被写体の向きである「側面方向」及び側面方向を向いた被写体の骨格情報を含む姿勢情報と、該姿勢情報に対応する、該側面得方向から撮影された衣服画像と、が予め記憶される。
なお、第1テーブルは、衣服番号と、姿勢情報と、衣服画像と、を対応づけたテーブルであればよく、属性情報を格納しない形態であってもよい。
図4は、姿勢情報及び衣服画像の一例を示す模式図である。
図4(A)に示すように、例えば、衣服61を着用したマネキン等の被写体60を用意する。そして、この被写体60を、撮像部14で撮像することで、色画像及びデプス画像を含む被写体画像を得る。そして、撮像によって得られた色画像から、衣服領域を抽出することで、例えば、図4(B)に示す衣服画像61Aを得る。また、被写体60のデプス画像から、人体の関節位置に相当する画素位置を公知の方法により抽出し、衣服画像の各々を構成する各画素の画素位置に対応する、該衣服画像の衣服を着用した被写体の骨格の位置を示す骨格情報61Bを作成する(図4(C))。
画像処理装置12では、このようにして、重畳対象の衣服の衣服画像及び姿勢情報を含む第1テーブルを予め用意し、記憶部18に予め記憶する。
図1に戻り、画像処理装置12は、CPU(Central Processing Unit)、ROM(Read Only Memory)、及びRAM(Random Access Memory)などを含んで構成されるコンピュータである。
画像処理装置12は、撮像部14、入力部16、記憶部18、及び提示部20に電気的に接続されている。
画像処理装置12は、第1取得部22、受付部24、第2取得部26、判別部28、調整部30、抽出部32、第1算出部34、第2算出部36、決定部38、生成部40、及び提示制御部42を備える。
第1取得部22は、撮像部14から被写体画像を順次取得する。第1取得部22は、第3取得部22A及び第4取得部22Bを含む。第3取得部22Aは、被写体のデプス画像を順次取得する。第4取得部22Bは、色画像を順次取得する。
なお、被写体の画像は、被写体を示す画像である。第3取得部22Aは、第1撮像部14Aから取得したデプス画像から、人物領域を抽出することで、被写体のデプス画像を取得する。同様に、第4取得部22Bは、第2撮像部14Bから取得した色画像から、人物領域を抽出することで、被写体の色画像を取得する。
第1取得部22は、例えば、デプス画像を構成する各画素の3次元位置のうち、奥行き方向の距離について閾値を設定することで、人物領域を抽出する。たとえば、第1撮像部14Aのカメラ座標系において第1撮像部14Aの位置を原点とし、Z軸正方向が、第1撮像部14Aの原点から被写体方向に伸びるカメラの光軸であるとする。この場合、デプス画像を構成する各画素の内、奥行き方向(Z軸方向)の位置座標が予め定めた閾値(例えば、2mを示す値)以上の画素を除外する。これにより、第1取得部22は、第1撮像部14Aから2mの範囲内に存在する人物領域の画素からなるデプス画像、すなわち、被写体のデプス画像を得る。
受付部24は、入力部16から各種情報を受け付ける。
第2取得部26は、第1取得部22で取得した被写体画像に重畳する対象の衣服画像を記憶部18から取得する。
本実施の形態では、第2取得部26は、入力部16から、重畳対象の衣服を特定するための衣服候補情報を受け付ける。衣服候補情報には、ユーザが試着を所望する衣服の種類、サイズ、色、素材、値段等の属性情報の内の少なくとも1つ、または属性情報の少なくとも1つを特定するための情報が含まれる。
例えば、ユーザは、入力部16の操作指示によって、衣服の「種類」、「色」、「サイズ」等を衣服候補情報として入力する。
第2取得部26では、入力部16から受け付けた衣服候補情報を解析し、衣服候補情報によって特定される、または衣服候補情報に含まれる属性情報に対応する衣服画像の一覧を、記憶部18から検索する。そして、提示制御部42は、第1取得部26で検索された衣服画像の一覧を、対応する衣服番号毎に、提示部20に提示する制御を行う。すなわち、1の衣服番号に対して、姿勢情報の異なる複数種類の衣服画像が記憶部18に対応づけて記憶されている場合には、提示制御部42は、代表的な姿勢情報(例えば正面)に対応する1の衣服画像を、提示部20に提示する制御を行う。
提示部20に衣服画像の一覧が提示されると、ユーザによる入力部16の操作指示によって、提示部20に提示された衣服画像の一覧の中から、重畳対象の衣服の衣服画像が選択される。すると、選択された衣服画像の衣服番号が、入力部16から画像処理装置12へ出力される。
受付部24が、該選択された衣服番号を受け付けると、第2取得部26では、該受付部24で受け付けた衣服番号によって特定される衣服画像を、記憶部18から取得する。
抽出部32は、第1取得部22で取得した被写体画像から、骨格情報を生成する。具体的には、抽出部32は、第3取得部22Aで取得した被写体のデプス画像を構成する画素毎に人体の骨格位置を示す、骨格情報を生成する。抽出部32は、デプス画像に人体形状を当てはめることで骨格情報を生成する。
そして、抽出部32は、第3取得部22Aで取得した被写体のデプス画像から算出した骨格情報の各画素の画素位置の座標系(すなわち、第1撮像部14Aの座標系)を、第4取得部22Bで取得した被写体の色画像の各画素位置の座標系(すなわち、第2撮像部14Bの座標系)に変換する。すなわち、抽出部32は、第1撮像部14Aで撮像した被写体のデプス画像から算出した骨格情報の各画素の画素位置の座標系を、該デプス画像と同じタイミングで第2撮像部14Bによって撮像された被写体の色画像の座標系に変換する。この座標変換は、公知のキャリブレーションを行うことにより行う。
調整部30は、重畳対象の衣服画像の輪郭の少なくとも一部と、被写体画像の輪郭の少なくとも一部とが一致するように、衣服画像及び被写体画像の少なくとも一方を拡大または縮小する。また、調整部30は、拡大または縮小後の衣服画像と、被写体画像と、から、後述する第1算出部34で用いる特徴領域を抽出する。
詳細には、調整部30は、まず、抽出部32で作成された被写体の骨格情報から、被写体の向きを算出する。
調整部30は、抽出部32が被写体のデプス画像から算出した姿勢情報としての骨格情報によって示される各関節の位置から、被写体の向きを算出する。
図5は、調整部30による被写体の向きの算出方法を示す説明図である。
抽出部32で算出された被写体の骨格情報によって示される、被写体の左肩に相当する画素位置の座標を、第2撮像部14Bの座標系でPslとする(図5中、画素位置724参照)。また、抽出部32で算出された姿勢情報としての骨格情報によって示される、被写体の右肩に相当する画素位置の座標を、第2撮像部14Bの座標系でPsrとする(図5中、画素位置723参照)。
調整部30は、これらの座標情報から、被写体の撮像部14(第2撮像部14B)に対する向きを、下記式(1)により算出する。
被写体の向き=arctan(Psl.z−Psr.z/Psl.x−Psr.x)
・・・・式(1)
式(1)中、Psl.zは、被写体の左肩に相当する画素位置のz座標値を示す。Psr.zは、被写体の右肩に相当する画素位置のz座標値を示す。また、式(1)中、Psl.xは、被写体の左肩に相当する画素位置のx座標値を示す。Psr.xは、被写体の右肩に相当する画素位置のx座標値を示す。
なお、調整部30は、衣服画像の姿勢情報についても、同様にして得てもよい。
次に、調整部30は、ユーザによって選択された衣服番号に対応する衣服画像の内、被写体画像によって示される被写体の向き(被写体の姿勢情報)に対応する衣服画像を、記憶部18から取得する。
図6は、同じ衣服について、姿勢情報の異なる3種類の衣服画像が同じ衣服番号に対応づけて記憶部18に格納されている場合を示す模式図である。
例えば、記憶部18に、ユーザによって選択された衣服番号に対応する衣服画像として、筐体51に設けられた第2撮像部14Bに対して正面の向きである「正面」、正面から右に20度回転した向き「+20度」、正面から右に40度回転した向き「+40度」の各々の姿勢情報に対応する、衣服画像61A(61A0、61A20、61A40)が予め格納されていたとする。
調整部30は、被写体画像によって示される被写体の向きが、「正面」である場合には、第2取得部26が取得した、ユーザによって選択された衣服番号に対応するこれらの衣服画像61A(61A0、61A20、61A40)の内、該被写体の向き「正面」に対応する衣服画像61A0を記憶部18から読み出す。
次に、調整部30は、第3取得部22Aで取得した被写体のデプス画像の座標系(すなわち、第1撮像部14Aの座標系)を、第4取得部22Bで取得した被写体の色画像の座標系(すなわち、第2撮像部14Bの座標系)に変換する。そして、調整部30は、座標変換後の被写体のデプス画像を構成する各画素位置の画素が、同じタイミングで取得された被写体の色画像を構成する各画素の画素位置に対応する位置となるように射影することで、被写体のデプス画像の解像度を色画像と同じ解像度に調整する。
例えば、第1撮像部14Aによって得られた被写体のデプス画像の解像度が640×480ピクセルであり、第2撮像部14Bによって得られた被写体の色画像の解像度が1080×1920ピクセルであったとする。この場合、デプス画像を構成する各画素を、1ピクセル×1ピクセルの点として色画像上に射影すると、デプス画像を構成する各画素の間に隙間が生じてしまう。このため、調整部30では、必要に応じて、ガウシアンフィルタやモルフォロジー演算等の公知の演算を用いたフィルタを適用し、色画像上に射影されたデプス画像を構成する各画素の間に隙間が生じないように調整する。
次に、調整部30は、被写体の向きに対応する衣服画像における、特徴領域の大きさを算出する。
特徴領域は、衣服を試着する被写体の形状を推定可能な領域である。特徴領域には、人体の肩に対応する肩領域や、腰に対応する腰領域や、足の長さに対応する足領域等があるが、これらに限られない。本実施の形態では、特徴領域として、人体の肩に対応する肩領域を用いる場合を説明するが、肩領域に限られない。
例えば、調整部30は、被写体の向きに対応する衣服画像における特徴領域の大きさとして、該衣服画像における肩幅を算出する。
図7は、調整部30による衣服画像の特徴領域の大きさ算出の説明図である。
調整部30は、被写体の向きに対応する衣服画像における、該衣服画像に対応する姿勢情報に含まれる骨格情報から、衣服画像上の関節位置の内、左肩に相当する画素位置の画素のY座標と、右肩に相当する画素位置の画素のY座標と、の各々の位置を求める。そして、これらのY座標の平均のY座標を求める。次に、調整部30は、求めた該Y座標の位置(高さ)において、該左肩に相当する画素位置のX座標から、衣服の外側に相当する領域に向かって探索を行い、衣服の左肩側の境界線の位置を示すX座標を求める。さらに、調整部30は、求めた該Y座標の位置(高さ)において、右肩に相当する画素位置のX座標から、衣服の外側に相当する領域に向かって探索を行い、衣服の右肩側の境界線の位置を示すX座標を求める。
このようにして求めた2つのX座標の差を求めることで、衣服画像上の肩幅(ピクセル数)を求めることができる(図7(A)の、衣服画像61Aにおける肩幅Sc参照)。
なお、ある1つの肩関節のY座標について算出するのではなく、肩関節のY座標を中心に、Y座標の上下方向に幅を持たせて、複数の水平方向のラインについて探索を行い、水平方向について両側の平均のX座標を求めることで、肩幅を求めてもよい。
次に、調整部30は、色画像と同じ解像度に調整した、被写体のデプス画像と、被写体の骨格情報と、を用いて、被写体の画像上の肩幅を算出する。
図7(B)に示すように、調整部30は、被写体のデプス画像における、左肩に相当する画素位置のY座標と、右肩に相当する画素位置のY座標と、の平均のY座標を求める。次に、左肩に相当する画素位置のX座標から、被写体の外側に相当する領域向かって探索を行い、被写体領域の一方の境界線であるX座標を求める。
さらに、調整部30は、被写体のデプス画像における、右肩に相当する画素位置のX座標から、被写体の外側に相当する領域に向かって探索を行い、被写体領域のもう一方の境界線であるX座標を求める。
調整部30は、このようにして求めた2つのX座標の差を求めることで、被写体について、画像上の肩幅(ピクセル数)を求める(図7(B)中、被写体のデプス画像71Aの肩幅Sh参照)。
なお、調整部30は、肩関節の1つのY座標について肩幅を求めるのではなく、肩関節のY座標を中心にY座標の上下方向に幅を持たせて、複数の水平方向のラインについて探索を行う。そして、調整部30は、水平方向について両側の平均のX座標を求めることで、肩幅を求めてもよい。
次に、調整部30は、上記で算出した特徴領域の大きさ、すなわち、衣服画像の肩幅Scと、被写体画像の肩幅Shと、を用いて、衣服画像のスケーリング値(拡大縮小率)を決定する。
具体的には、調整部30は、被写体画像の肩幅Shを、服画像の肩幅Scで除算した除算値(Sh/Sc)を、スケーリング値として算出する。スケーリング値は、衣服の実際の大きさや、衣服画像領域の幅および高さの画素数などの値を用いて、異なる式から算出してもよい。
そして、調整部30は、重畳対象の衣服画像(色画像)を、該スケーリング値によって特定される拡大縮小率で、拡大または縮小する。同様に、調整部30は、重畳対象の衣服画像の姿勢情報に含まれる骨格情報についても、同じスケーリング値(Sh/Sc)で特定される拡大縮小率で、拡大または縮小する。
次に、調整部30は、拡大または縮小後の衣服画像と、被写体画像と、から、後述する第1算出部34で用いる特徴領域を抽出する。
特徴領域とは、衣服画像、及び被写体画像の各々における、被写体の形状を推定可能な領域を示す。特徴領域は、例えば、人体の肩、腰等を示す領域である。本実施の形態では、調整部30は、衣服画像及び被写体画像の各々の輪郭における、人体の肩に相当する領域(肩領域)を、特徴領域として抽出する場合を説明する。
まず、調整部30は、座標変換及び解像度に調整された被写体のデプス画像から、輪郭を抽出する。また、調整部30は、被写体画像と同じスケーリング値となるように拡大または縮小された衣服画像の輪郭を抽出する。なお、輪郭の抽出には、公知の方法を用いる。そして、調整部30は、これらの輪郭から、人体の肩に相当する領域(肩領域)の輪郭を、特徴領域として抽出する。
ここで、調整部30は、衣服画像の形状に応じて輪郭を抽出することが好ましい。
図8は、輪郭の抽出の一例を示す模式図である。
図8(A)に示すように、衣服画像61Aが、人体の正面側に縦長の開口部を有する形状であるとする。この場合、輪郭が、図8(B)に示すように、人体の中央部にも示されることとなる。このような輪郭を用いて、後述する第1算出部34でテンプレートマッチング(詳細後述)を行うと、人体の中央部分に相当する領域のマッチング精度が低下する場合がある。
このため、衣服画像61Aが、人体の正面側に縦長の開口部を有する形状である場合には、調整部30は、図8(B)に示す輪郭から、人体の中央部に相当する領域の輪郭を除去することで、人体の外形に沿った部分の輪郭61Cを、衣服画像の輪郭として抽出することが好ましい(図8(D))。
なお、画像処理装置12では、衣服画像を取得したときに、該衣服画像の衣服を試着していたマネキン等の被写体のデプス画像を、該衣服画像に対応づけて記憶部18に予め記憶しておく。調整部30は、このデプス画像から、該デプス画像における輪郭に連続する内側の領域の一部を公知のモルフォルジー演算等の画像フィルタ処理により削除する。そして、この削除後のデプス画像71C(図8(C)参照)を用意する。そして、調整部30は、図8(B)に示す輪郭61Bから、デプス画像71C(図8(C)参照)と重なる領域を削除することで、人体の外形に沿った部分の輪郭61Cを、衣服画像の輪郭として抽出する(図8(D))。
そして、調整部30は、これらの衣服画像、及び被写体画像(デプス画像)の各々の輪郭から、人体の肩に相当する肩領域を、特徴領域として抽出する。
なお、衣服画像によって特定される衣服が、タンクトップやベアトップ等、衣服画像から人体の外形に沿った形状(肩の輪郭等)を抽出することが難しい場合もある。この場合には、衣服を試着させたマネキン等の被写体のデプス画像を記憶部18に予め記憶しておき、該被写体の肩部から肩領域の輪郭を算出してもよい。
図1に戻り、説明を続ける。
第1算出部34は、重畳対象の衣服画像における特徴領域の位置と、第1取得部22で取得された被写体画像における特徴領域の位置と、が一致するように、被写体画像における衣服画像の第1位置を算出する。
なお、第1算出部34は、後述する判別部28によって、第1取得部22で取得された被写体画像が予め定めた第1条件を満たすと判別された場合に、第1位置の算出を行う。判別部28の判別処理及び判別の条件については、詳細を後述する。
第1算出部34は、被写体画像の特徴領域に対して、衣服画像の特徴領域をテンプレートとして、公知のテンプレートマッチングを行うことで被写体画像(デプス画像)を探索する。そして、第1算出部34は、被写体画像(デプス画像)上における、衣服画像における特定領域(本実施の形態では肩領域)と一致する位置を、第1位置として算出する。
第1位置は、被写体画像上における位置座標によって示される。具体的には、第1位置は、被写体画像上における、被写体画像の特徴領域と衣服画像の特徴領域とが一致したときの、該特徴領域の中心位置とする。本実施の形態では、第1算出部34は、被写体画像上における、被写体画像の特徴領域(肩領域)の中心位置を、第1位置として算出することとなる。
第2算出部36は、衣服画像における、前記特徴領域に応じて予め定められた特徴点の位置と、被写体画像における特徴点の位置と、が一致するように、被写体画像における衣服画像の第2位置を算出する。
上述のように、第1算出部34は、特徴領域についてテンプレートマッチングを行うことで、第1位置を算出する。一方、第2算出部36では、特徴点の位置から第2位置を算出する。このため、第1算出部34は、第2算出部36に比べて高精度に第1位置を算出することができる。一方、第2算出部36では、第1算出部34に比べて第2位置の算出精度が落ちるものの、第1算出部34より低負荷で第2位置を算出することができる。
特徴点は、衣服を試着する被写体の体型を推定可能な位置である。特徴点は、特徴領域に応じて予め定められる。例えば、特徴点は、第1算出部34で用いる特徴領域の中央に相当する位置に定める。このため、特徴点は、第1算出部34が特徴領域として用いる領域に応じて、予め設定される。また、特徴点は、画像上の位置座標で示される。
本実施の形態では、第1算出部34は、特徴領域として肩領域を用いている。このため、第2算出部36では、肩領域の中心位置として、人体の両肩の中央に相当する位置を、特徴点として定める場合を説明する。
図9は、第2算出部36による第2位置の算出の一例を示す模式図である。
第2算出部36は、例えば、図9(A)に示す衣服画像61Aの骨格情報81Aから、両肩間の中心位置Q1を求める。また、第2算出部36は、図9(B)に示す被写体画像71Aの骨格情報81Bから、両肩間の中心位置Q2を求める。そして、第2算出部36は、衣服画像61Aにおける、両肩間の中心位置Q1と、被写体画像71Aにおける両肩間の中心位置Q2と、が一致するように、衣服画像61Aの被写体画像71Aにおける第2位置を算出する。本実施の形態では、第2算出部36は、被写体画像71Aにおける両肩間の中心位置Q2を、第2位置として算出することとなる。
図1に戻り、判別部28は、第1取得部22で取得された被写体画像が、予め定めた第1条件を満たすか否かを判別する。
第1条件は、第1算出部34で第1位置の算出処理を実行するか否かを判断するための条件である。すなわち、第1算出部34では、第1取得部22で取得された被写体画像が、判別部28によって第1条件を満たすと判別された場合にのみ、第1位置の算出を実行する。一方、第2算出部36では、第1取得部22で取得された被写体画像が、判別部28によって第1条件を満たすと判別された場合、及び該第1条件を満たさないと判別された場合の何れにおいても、第2位置の算出を実行する。
第1条件には、下記の条件が挙げられる。なお、下記の条件の内の1つを第1条件として定めてもよいし、下記の条件の内の任意の複数の条件を第1条件として定めてもよい。
第1条件としては、撮像部14によって撮像される領域に存在する被写体が異なる被写体に入れ替わったとき、が挙げられる。
この場合、判別部28は、第1取得部22で取得された被写体画像としてのデプス画像における、被写体の関節位置の座標値から、提示部20から予め定めた距離内に被写体として人物が存在するか否かを判別する。そして、ある時刻に取得された被写体画像には被写体として人物が存在し、その後の時刻に取得された被写体画像に被者体として人物が存在せず、さらにその後の時刻に取得された被写体画像に被写体として人物が存在したと判別したときに、判別部28は、撮像部14によって撮像される領域に存在する人物が異なる人物に入れ替わったと判別する。これによって、判別部28は、取得された被写体画像が、判別部28によって予め定めた第1条件を満たすと判別する。
例えば、提示部20の前に位置して試着を行う被写体が入れ替わった場合、体型等が異なることから、より精度よく位置(第1位置または第2位置)を算出することが好ましい。このため、撮像部14によって撮像される領域に存在する人物が異なる人物に入れ替わったときを、判別部28の判別の条件として設定することで、後述する重畳位置の精度向上が図れる。
なお、提示部20の前に位置する人物が移動中に撮像された被写体画像から第1位置を算出すると、算出精度が低下する可能性がある。このため、判別部28は、撮像部14によって撮像される領域に存在する人物が異なる人物に入れ替わってから所定時間後に該人物の静止を検出した後に取得された被写体画像を、第1条件を満たす被写体画像と判別することが好ましい。
これらの人物の移動や、人物の静止の検出には、公知の画像処理技術を用いればよい。
また、他の第1条件としては、ユーザによる入力部16の操作指示によって、試着対象の衣服番号として、提示中の合成画像に含まれる衣服画像とは異なる衣服番号が指示されたとき、が挙げられる。
この場合、判別部28は、第1取得部22によって取得された被写体画像が、ユーザによる入力部16の操作指示によって、新たな衣服番号が指示された直後に取得された被写体画像であるか否かを判別する。これによって、判別部28は、取得された被写体画像が、判別部28によって予め定めた第1条件を満たすと判別する。
なお、提示部20の前に位置して試着を行う被写体が入力部16を操作指示するために移動中であるときに撮像された被写体画像から第1位置を算出すると、算出精度が低下する可能性がある。このため、判別部28は、ユーザによる入力部16の操作指示がなされたと判別してから所定時間後に人物の静止を検出した後に取得された被写体画像を、第1条件を満たす被写体画像と判別することが好ましい。
また、他の第1条件としては、取得した被写体画像が、第1位置算出対象の被写体画像であると前回判別されてから、予め定めた枚数の被写体画像を取得した後に取得された被写体画像であるとき、が挙げられる。
この場合、判別部28は、第1取得部22によって取得された被写体画像が、前回、第1位置算出対象として判別した被写体画像の取得から、予め定めた枚数取得した後に取得された被写体画像であるか否かを判別する。これによって、判別部28は、取得された被写体画像が、判別部28によって第1条件を満たすと判別する。
なお、この枚数としては、例えば、15枚(動画像である場合には15フレーム)等が挙げられるが、この数に限られない。また、この枚数は、第1算出部34の処理負荷が高くなるほど大きい値を設定してもよいし、被写体の移動量が大きいほど大きい値を設定してもよい。また、これらの設定条件を組み合わせて、第1条件を満たすと判別する取得する被写体画像の間隔を定めてもよい。
また、判別部28は、第1取得部22によって取得された被写体画像が、前回、第1位置算出対象として判別した被写体画像の取得から、予め定めた時間経過後に取得された被写体画像であるか否かを判別してもよい。これによって、判別部28は、取得された被写体画像が、判別部28によって第1条件を満たすと判別する。
この場合についても、判別部28は、被写体の移動量や第1算出部34の処理負荷に応じて、該第1条件を満たすと判別する経過時間を定めればよい。
また、他の第1条件としては、ユーザによる入力部16の操作指示によって指示された衣服画像の姿勢情報と、被写体の姿勢情報と、が一致したとき、が挙げられる。
この場合、判別部28は、第1取得部22で取得された被写体画像から抽出部32で作成された骨格情報と、記憶部18に記憶されている、ユーザの入力部16の操作指示によって指示された衣服画像の姿勢情報に含まれる骨格情報と、が一致したか否かを判別する。そして、一致する場合に、判別部28は、取得された被写体画像が、判別部28によって第1条件を満たすと判別する。
被写体の姿勢と、記憶部18に記憶されている重畳対象、すなわち試着対象の衣服の衣服画像の姿勢と、が不一致である場合には、第1算出部34でテンプレートマッチングを行っても、十分な精度のマッチングを行うことが難しい場合がある。
そこで、ユーザによる入力部16の操作指示によって指示された衣服画像の姿勢情報と、被写体の姿勢情報と、が一致する場合に、判別部28は、取得された被写体画像が、判別部28によって予め定めた第1条件を満たすと判別することが好ましい。
また、他の第1条件としては、被写体画像に含まれる被写体の移動量が、予め定めた値以下である場合、が挙げられる。
この場合、判別部28は、第1取得部22で取得された被写体画像としてのデプス画像における、被写体の関節位置の座標値から、被写体画像中における被写体としての人物の位置を判別する。そして、前回取得された被写体画像としてのデプス画像における、被写体としての人物の位置と、今回取得された被写体画像としてのデプス画像における、被写体としての人物の位置と、を比較することで、該人物の移動量を算出する。そして、この人物の移動量が予め定めた値以下であると判別した場合に、判別部28は、取得された被写体画像が、判別部28によって予め定めた第1条件を満たすと判別する。
また、他の第1条件としては、取得された被写体画像に含まれる被写体としての人物が腕を下げた状態である場合、が挙げられる。
この場合、判別部28は、第1取得部22で取得された被写体のデプス画像における、被写体の関節位置の座標値から、被写体の腕部に相当する位置が、被写体の肩部より下側(足側)に伸びる方向に位置しているか否かを判別する。そして、判別部28は、取得された被写体画像(被写体のデプス画像)に含まれる被写体としての人物が腕を下げた状態である場合に、取得された被写体画像が予め定めた第1条件を満たすと判別する。
被写体としての人物が腕を上げた姿勢である場合、重畳対象の衣服画像の姿勢情報と、被写体の姿勢情報と、が異なる可能性が高い。このような姿勢の被写体の被写体画像を用いて、第1算出部34によるテンプレートマッチングを行うと、テンプレートマッチングの精度が低下する場合がある。そこで、判別部28は、被写体画像に含まれる被写体としての人物が腕を下げた状態であると判別した場合に、取得された被写体画像が予め定めた第1条件を満たすと判別することが好ましい。
次に、決定部38について説明する。
決定部38は、第1取得部22で取得された被写体画像が、判別部28によって第1条件を満たすと判別された場合、第1算出部34で算出された第1位置を、該被写体画像における衣服画像の重畳位置として決定する。
また、決定部38は、第1取得部22で取得された被写体画像が、判別部28によって第1条件を満たさないと判別された場合、該被写体画像より前に取得された被写体画像である第1被写体画像に対して算出された第1位置と該第1被写体画像から第2算出部36で算出された第2位置との差分から、重畳位置を決定する。
具体的には、決定部38は、第1取得部22で取得された被写体画像が、判別部28によって上記第1条件を満たさないと判別された場合、今回第1取得部22で取得された被写体画像に基づいて第2算出部36で算出された第2位置を、上記差分に応じてずらした位置を重畳位置として決定する。
すなわち、差分は、今回第1取得部22で取得された被写体画像より前に、第1取得部22で取得された被写体画像が、第1条件を満たす被写体画像であるときに、該被写体画像(第1被写体画像)から第1算出部34で算出された第1位置と、該被写体画像(第1被写体画像)から第2算出部36で算出された第2位置と、の差分である。
生成部40は、今回取得された被写体画像における、決定部38で決定された重畳位置に、衣服画像を重畳した合成画像を生成する。
詳細には、生成部40は、第1取得部22で取得した被写体画像としての、被写体の色画像上の重畳位置に、ユーザによる入力部16の操作指示によって指示され、調整部30で調整された重畳対象の衣服画像(色画像)を重畳する。これによって、生成部40は、合成画像を生成する。
具体的には、生成部40は、調整部30で調整された衣服画像について、画素毎に定義された色値(Cr,Cg,Cb)、及びアルファ値(a)を参照する。なお、アルファ値aは、0以上1以下の値である。また、被写体の色画像についても、画素毎の色値(Ir,Ig,Ib)を参照する。そして、同じ画素位置の画素毎に、下記式(2)を用いて、画素毎の画素値(色値及びアルファ値)を定めることで、合成画像を生成する。
なお、衣服画像が、被写体の色画像の一部の領域のみを占有している場合、衣服画像の占有領域外の領域では、アルファ値の値は“0”(a=0)として計算する。
Ox=(1−a)×Ix+a×Cx ・・・式(2)
式(2)中、xは、r、g、bを示す。
提示制御部42は、合成画像を提示部20に提示する制御を行う。
次に、本実施の形態の画像処理装置12で実行する画像処理を説明する。
図10は、本実施の形態の画像処理装置12で実行する画像処理の手順を示すフローチャートである。
画像処理装置12では、撮像部14から被写体画像を1枚(同じタイミングで撮像された、被写体のデプス画像及び被写体画像の色画像の各々を1枚)受け付ける毎に、ステップS100〜ステップS130の処理を実行する。なお、画像処理装置12が、撮像部14から複数フレームからなる動画像を受け付ける場合には、画像処理装置12は、フレーム毎にステップS100〜ステップS130の処理を実行する。
まず、第1取得部22が、被写体画像を取得する(ステップS100)。
次に、抽出部32が、抽出処理を実行する(ステップS102)。具体的には、ステップS102において、抽出部32は、ステップS100で取得された被写体のデプス画像から、骨格情報を生成する。また、本実施の形態では、抽出部32は、被写体の骨格情報の座標系(すなわち、第1撮像部14Aの座標系)を、第2撮像部14Bの座標系に変換する。
次に、判別部28が、上記ステップS100で取得した被写体画像が、第1条件を満たすか否かを判別する(ステップS104)。
ステップS104で肯定判断すると(ステップS104:Yes)、ステップS106へ進む。
ステップS106では、調整部30が、調整処理を実行する(ステップS106)。ステップS106において、調整部30は、重畳対象の衣服画像の輪郭の少なくとも一部と、被写体画像の輪郭の少なくとも一部とが一致するように、衣服画像及び被写体画像の少なくとも一方を拡大または縮小する。また、調整部30は、拡大または縮小後の衣服画像と、拡大または縮小後の被写体画像と、から、第1算出部34で用いる特徴領域を抽出する。
なお、重畳対象の衣服画像は、調整部30による調整処理中に取得される。ステップS106の調整処理の手順の詳細は、後述する。
次に、第1算出部34が、第1位置算出処理を実行する(ステップS108)。ステップS108では、第1算出部34は、調整部30で取得された重畳対象の衣服画像における特徴領域の位置と、ステップS100で取得された被写体画像における特徴領域の位置と、が一致するように、被写体画像における衣服画像の第1位置を算出する。なお、ステップS108の第1位置算出処理の手順の詳細は、後述する。
次に、第1算出部34は、算出した第1位置を、上記ステップS100で取得した被写体画像を特定可能な情報に対応づけて記憶部18に記憶する(ステップ110)。特定可能な情報は、例えば、被写体画像の取得日時等を用いる。
次に、第2算出部36が、第2位置算出処理を実行する(ステップS112)。ステップS112では、第2算出部36は、調整部30で取得された重畳対象の衣服画像における特徴点の位置と、被写体画像における特徴点の位置と、が一致するように、被写体画像における衣服画像の第2位置を算出する。第2位置算出処理の詳細は後述する。
次に、第2算出部36は、算出した第2位置を、上記ステップS100で取得した被写体画像を特定可能な情報に対応づけて記憶部18に記憶する(ステップS114)。この特定可能な情報には、ステップS110と同じ情報を用いればよい。
次に、決定部38が、上記ステップS108で算出された第1位置と、前記ステップS112で算出された第2位置と、を記憶部18から読取り、これらの差分を算出する(ステップS116)。そそいて、決定部38は、算出した差分を、上記ステップS110及びステップS114で用いた被写体画像を特定可能な情報に対応づけて記憶部18に記憶する(ステップS118)。
なお、決定部38は、記憶部18に、既に差分が記憶されている場合には、記憶されている差分を、ステップS116で新たに算出した差分に上書きしてもよい。このようにして、決定部38、ステップS116で算出した差分として、最新の差分のみを記憶部18に記憶してもよい。
次に、決定部38が、重畳位置を決定する(ステップS120)。ステップS120では、決定部38は、上記ステップS108で算出された第1位置を、ステップS100で取得した被写体画像における、上記ステップS106の調整処理によって取得した重畳対象の衣服画像の重畳位置として決定する。そして、後述するステップS126へ進む。
ステップS104〜ステップS120の処理によって、画像処理装置12では、ステップS100で取得された被写体画像が、判別部28によって第1条件を満たすと判別された場合、第1算出部34で算出された第1位置を、該被写体画像における衣服画像の重畳位置として決定する。
一方、上記ステップS104で否定判断されると(ステップS104:No)、ステップS122へ進む。ステップS122では、上記ステップS112と同様にして、第2算出部36が、第2位置算出処理を実行する(ステップS122)(詳細後述)。
次に、決定部38が、重畳位置を決定する(ステップS124)。
具体的には、決定部38は、第1算出部34で、今回取得された被写体画像より前に取得された被写体画像(第1被写体画像)から算出された第1位置と、該第1位置の算出に用いた被写体画像(第1被写体画像)から第2算出部36で算出された第2位置と、の差分を、記憶部18から読み取る。決定部38は、記憶部18に記憶されている差分の内、最新の差分(すなわち、前回算出された差分)を読取る。そして、決定部38は、上記ステップS122で今回取得した被写体画像から算出された第2位置を、読取った該差分に応じてずらした位置を、重畳位置として決定する。
なお、上記ステップS122で今回取得した被写体画像から算出された該第2位置をずらす方向は、前回第2算出部36で算出された第2位置を始点、前回第1算出部34で算出された第1位置を終点、とする方向ベクトルに対して平行な方向である。そして、ステップS126へ進む。
次に、生成部40が、合成画像を生成する(ステップS126)。ステップS126では、生成部40は、上記ステップS100で取得した被写体の色画像上の重畳位置に、上記ステップS106の調整処理によって取得され且つ被写体画像に応じて拡大または縮小された重畳対象の衣服画像を重畳することで、合成画像を生成する。
次に、提示制御部42が、上記ステップS128で生成された合成画像を、提示部20へ提示する制御を行う(ステップS128)。
次に、画像処理装置12では、画像処理を終了するか否かを判別する(ステップS130)。画像処理装置12は、例えば、画像処理装置12の図示を省略する終了指示ボタンがユーザの操作指示によって操作されることで、終了指示を示す信号を受け付けたか否かを判別することによって行う。
ステップS130で否定判断すると(ステップS130:No)、上記ステップS100へ戻る。ステップS130で肯定判断すると(ステップS130:Yes)、本ルーチンを終了する。
次に、上記ステップS106の調整処理について説明する。
図11は、調整部30が実行する調整処理の手順を示すフローチャートである。
まず、調整部30は、ステップS102(図10参照)において抽出部32で作成された被写体の骨格情報から、被写体の向きを算出する(ステップS200)。
次に、調整部30は、ユーザによって選択された衣服番号に対応する衣服画像の内、上記ステップS200で算出された被写体の向き(被写体の姿勢情報)に対応する姿勢情報の衣服画像を、記憶部18の第1テーブルから読み取る(ステップS202)。
次に、調整部30は、第3取得部22Aで取得した被写体のデプス画像を調整する(ステップS204)。具体的には、調整部30は、被写体のデプス画像の各画素の画素位置の座標系(第1撮像部14Aの座標系)を、第2撮像部14Bの座標系に変換する。そして、調整部30は、座標変換後の被写体のデプス画像を構成する各画素位置の画素が、同じタイミングで取得された被写体の色画像を構成する各画素の画素位置に対応する位置となるように射影することで、被写体のデプス画像の解像度を、被写体の色画像と同じ解像度に調整する。
次に、調整部30は、上記ステップS202で読取った衣服画像における特徴領域の大きさ、及び被写体画像における特徴領域の大きさ、の各々を算出する(ステップS206)。上述ように、本実施の形態では、特徴領域として、肩領域を用いる。このため、本実施の形態では、調整部30は、上記ステップS202で読取った衣服画像における肩幅と、上記ステップS100(図10参照)で取得した被写体画像における肩幅と、の各々を算出する。
次に、調整部30は、上記ステップS206で算出された特徴領域の大きさ、すなわち、衣服画像の肩幅と、被写体画像の肩幅と、から、衣服画像のスケーリング値(拡大縮小率)を決定する(ステップS208)。
次に、調整部30は、上記ステップS202で読取った衣服画像を、ステップS208で決定されたスケーリング値によって特定される拡大縮小率で、スケーリング(拡大または縮小)する(ステップS210)。同様に、調整部30は、重畳対象の衣服画像の姿勢情報に含まれる骨格情報についても、同じスケーリング値で特定される拡大縮小率で、拡大または縮小する。
次に、調整部30は、上記ステップS210で拡大または縮小された後の衣服画像と、上記ステップS100(図10参照)で取得した被写体画像と、から、特徴領域を抽出する。
まず、調整部30は、上記ステップS210で拡大または縮小された後の衣服画像と、上記ステップS100(図10参照)で取得した被写体画像と、の各々の輪郭を抽出する(ステップS212)。次に、調整部30は、衣服画像の輪郭と、被写体画像の輪郭と、の各々における肩領域を抽出する(ステップS214)。そして、本ルーチンを終了する。
なお、上記ステップS208では、衣服画像のスケーリング値(拡大縮小率)を決定し、衣服画像を該スケーリング値によって特定される拡大縮小率にスケーリングする場合を説明した。しかし、衣服画像の輪郭及び被写体画像の輪郭の少なくとも一部が一致するように、衣服画像及び被写体画像の少なくとも一方の拡大縮小率を求めればよい。そして、決定した衣服画像の拡大縮小率の逆数で、該被写体画像をスケーリングしてもよい。
ステップS200〜ステップS214の処理を実行することによって、調整部30は、重畳対象の衣服画像の輪郭の少なくとも一部と、被写体画像の輪郭の少なくとも一部とが一致するように、衣服画像及び被写体画像の少なくとも一方を拡大または縮小する。また、調整部30は、拡大または縮小後の衣服画像と、拡大または縮小後の被写体画像と、から、特徴領域として、肩領域を抽出する。
次に、図10のステップS108で説明した、第1算出部34が実行する第1位置算出処理の手順を説明する。
図12は、第1算出部34が実行する第1位置算出処理の手順を示すフローチャートである。
第1算出部34は、調整部30で抽出された、特徴領域としてとしての、被写体画像の肩領域と、衣服画像の肩領域と、を用いて、公知のテンプレートマッチングを実行する(ステップS400)。ステップS400では、第1算出部34は、テンプレートマッチングによって、調整部30で調整された被写体のデプス画像を探索し、該デプス画像上における、衣服画像における特定領域(肩領域)と一致する位置を、第1位置として算出する。
そして、第1算出部34は、算出した第1位置を、判別部28へ出力する(ステップS402)。そして、本ルーチンを終了する。
次に、図10のステップS112及びステップS122で説明した、第2算出部36が実行する第2位置算出処理の手順を説明する。
図13は、第2算出部36が実行する第2位置算出処理の手順を示すフローチャートである。
まず、第2算出部36は、衣服画像の特徴点として、衣服画像の両肩間の中心位置を算出する(ステップS300)。
次に、第2算出部36は、被写体画像の両肩間の中心位置を算出する(ステップS302)。具体的には、第2算出部36は、上記ステップ106(図10参照)の処理によって抽出部32で作成された被写体の骨格情報から、被写体の両肩間の中心位置を算出する。
次に、第2算出部36は、ステップS300で算出された中心位置と、ステップS302で算出された中心位置と、が一致するように、第2位置を算出する(ステップS304)。本実施の形態では、第2算出部36は、ステップS302で算出された被写体画像における両肩間の中心位置を、第2位置として算出する。
そして、本ルーチンを終了する。
図14は、本実施の形態の画像処理装置12における合成画像の生成を模式的に示す説明図である。
例えば、重畳対象の衣服画像が衣服画像61A(図14(A)参照)であったとする。また、被写体のデプス画像が、デプス画像71C(図14(D)参照)であったとする。
この場合、調整部30による調整処理によって、衣服画像61Aの輪郭61Bが抽出される(図14(B)参照)。さらに、調整部30による調整処理によって、特徴領域として、肩領域61Dが抽出される(図14(C)参照)。
同様に、調整部30による調整処理によって、被写体のデプス画像71Cから輪郭71Bが抽出される(図14(E)参照)。さらに、調整部30による調整処理によって、特徴領域として、肩領域71Dが抽出される(図14(F)参照)。
判別部28によって被写体画像が第1条件を満たすと判別された場合、第1算出部34は、衣服画像61Aの肩領域61Dと、被写体のデプス画像71Cの肩領域71Dと、を用いたテンプレートマッチング(図14(G))を行うことで、第1位置(図14では図示省略)を算出する。決定部38は、判別部28によって被写体画像が第1条件を満たすと判別された場合、第1位置を重畳位置として決定する。
そして、生成部40は、第1取得部22で取得した被写体の色画像上の重畳位置に、上記ステップS106の調整処理によって取得され且つ被写体画像に応じて拡大または縮小された重畳対象の衣服画像を、重畳することで、合成画像Wを生成する(図14(H)算出)。
以上説明したように、本実施の形態の画像処理装置12では、第1取得部22で取得された被写体画像が、判別部28によって第1条件を満たすと判別された場合、第1算出部34で算出された第1位置を、該被写体画像における衣服画像の重畳位置として決定する。そして、生成部40は、第1取得部22で取得した被写体の色画像上の重畳位置に、上記ステップS106の調整処理によって取得され且つ被写体画像に応じて拡大または縮小された重畳対象の衣服画像を、重畳することで、合成画像を生成する。
一方、画像処理装置12では、第1取得部22で取得された被写体画像が、判別部28によって第1条件を満たさないと判別された場合、該被写体画像より前に取得された被写体画像である第1被写体画像に対して算出された第1位置と該第1被写体画像から第2算出部36で算出された第2位置との差分から、重畳位置を決定する。
なお、第1条件は、第1算出部34で第1位置の算出処理を実行するか否かを判断するための条件である。そして、生成部40は、第1取得部22で取得した被写体画像上の重畳位置に、上記ステップS106の調整処理によって取得され且つ被写体画像に応じて拡大または縮小された重畳対象の衣服画像を重畳することで、合成画像を生成する。
このように、本実施の形態の画像処理装置12によれば、取得した被写体画像の内、第1条件を満たすと判別された被写体画像についてのみ、第1算出部34で第1位置の算出処理を実行する。そして、決定部38が、第1位置を重畳位置として決定する。一方、第1条件を満たさないと判別された被写体画像については、第1算出部34で第1位置の算出処理を行わず、第1算出部34で前回算出された第1位置と該第1位置の算出に用いた被写体画像(第1被写体画像)から第2算出部36で算出された第2位置との差分から、重畳位置を決定する。
従って、本実施の形態の画像処理装置12は、精度向上を図りつつ、且つ低負荷で合成画像を提供することができる。
なお、本実施の形態の画像処理装置12では、調整部30は、第1取得部22で取得された被写体画像が、判別部28によって第1条件を満たすと判別された場合に、調整処理を行う場合を説明した。しかし、調整部30は、第1取得部22で取得された被写体画像が、第1条件を満たすか否かに拘らず、上述した調整処理を実行してもよい。しかし、調整部30による上記調整処理は、第1算出部34より処理負荷が低いものの、第2算出部36より処理負荷が高い。このため、調整部30による調整処理は、上記実施の形態で示したように、第1取得部22で取得された被写体画像が、判別部28によって第1条件を満たすと判別された場合に実行することが好ましい。
なお、本実施の形態では、調整部30は、抽出した特徴領域について、被写体の姿勢情報に応じた重み付処理を行ってもよい。この場合、第1算出部34は、重み付処理された特徴領域を用いて、テンプレートマッチングを行う。
具体的には、調整部30は、被写体のデプス画像から抽出した輪郭から、特徴領域を抽出するときに、被写体画像の撮像時により撮像部14に近い位置に位置していた領域ほど、輝度値の高い輪郭となるように、肩領域の輪郭を抽出する。
例えば、被写体が撮像部14に対して左に傾いた方向を向いている場合、被写体の左肩は右肩に比べて撮像部14に近い状態で撮像される。このため、被写体画像の姿勢情報が、撮像部14に対して正面を向いた姿勢から左方向に傾いた姿勢であることを示す場合には、調整部30は、被写体のデプス画像から抽出した輪郭における、左肩に相当する領域の輪郭を右肩に相当する領域の輪郭に比べて輝度値を高くするように、重み付処理を行う。
なお、調整部30は、重み付処理を行う対象の画素位置の画素の画素値に、予め定めた定数を乗算することで、重み付処理を行う。なお、調整部30は、デプス画像から、より撮像部14に近い画素位置の画素を求め、撮像部14に近い画素位置の画素ほど高い定数を用いて、重み付処理を行ってもよい。
同様に、調整部30は、衣服画像についても、衣服画像から抽出した輪郭から特徴領域を抽出するときに、重畳対象の衣服画像における撮像時に撮像部14により近い位置に位置していた領域ほど、輝度値の高い輪郭となるように、肩領域の輪郭を抽出する。
このような重み付けを行うことで、第1算出部34によるテンプレートマッチング処理においては、より撮像部14側により近い領域の精度が高くなるように、第1位置を算出することができる。このため、さらなる精度向上が図れる。
図15は、調整部30が重み付処理を行う場合の、合成画像の生成を模式的に示す説明図である。
例えば、重畳対象の衣服画像が衣服画像61A2(図15(A)参照)であったとする。また、被写体のデプス画像が、デプス画像71C2(図15(D)参照)であったとする。このように、被写体が、撮像部14(図15では図示省略)に対して左肩が右肩に比べて撮像部14に近くなるように傾いた姿勢で撮像されたとする。この場合、上述したように、画像処理装置12では、この傾いた姿勢に対応する衣服画像が記憶部18から読み取られる。
この場合、調整部30による調整処理によって、衣服画像61A2の輪郭61B2が抽出される(図15(B)参照)。さらに、調整部30による調整処理によって、特徴領域として、肩領域61D2が抽出される(図15(C)参照)。このとき、調整部30は、左肩に相当する領域SAに重み付処理を行った上で、肩領域61D2を抽出する。このため、肩領域61D2は、図15(C)に示すように、人体の左肩に相当する領域SAの輝度値が高くなるように重み付処理された輪郭となる。
同様に、調整部30による調整処理によって、被写体のデプス画像71C2から輪郭71B2が抽出される(図15(E)参照)。さらに、調整部30による調整処理によって、特徴領域として、肩領域71D2が抽出される(図15(C)参照)。このとき、調整部30は、左肩に相当する領域SBに重み付処理を行った上で、肩領域71D2を抽出する。このため、肩領域71D2は、図15(F)に示すように、人体の左肩に相当する領域SBの輝度値が高くなるように補正された輪郭となる。
判別部28によって被写体画像が第1条件を満たすと判別された場合、第1算出部34は、衣服画像61A2の肩領域61D2と、被写体のデプス画像71C2の肩領域71D2と、を用いたテンプレートマッチング(図15(G))を行うことで、第1位置(図15では図示省略)を算出する。
このとき、衣服画像61A2の肩領域61D2と、被写体のデプス画像71C2の肩領域71D2と、は、より撮像部14側に近い領域である左肩に相当する領域の輝度値が高くなるように重み付処理された輪郭となっている。このため、第1算出部34では、この左肩に相当する領域の探索精度が高くなるように、テンプレートマッチングを行うことができる。
決定部38は、判別部28によって被写体画像が第1条件を満たすと判別された場合、第1位置を重畳位置として決定する。
そして、生成部40は、第1取得部22で取得した被写体の色画像上の重畳位置に、上記ステップS106の調整処理によって取得され且つ被写体画像に応じて拡大または縮小された重畳対象の衣服画像を、重畳することで、合成画像WAを生成する(図15(H)参照)。
このように、調整部30が重み付処理を行うことによって、さらなる精度向上が図れる。
なお、本実施の形態では、特徴領域として、肩領域を用いる場合を説明した。これは、本実施の形態では、重畳対象の衣服画像として、人体の上半身側に試着する衣服の衣服画像を一例として挙げたためである。
しかし、上述したように、特徴領域は、衣服を試着する被写体の形状を推定可能な領域であればよく、肩領域に限られない。
また、特徴領域は、画像処理装置12で取得した被写体画像の被写体の姿勢に応じて設定してもよい。
例えば、撮像部14に対して真横を向いた姿勢の被写体の被写体画像を取得した場合、被写体の両肩部分の輪郭を抽出することは難しく、肩領域を特徴領域として用いることが難しい場合がある。
そこで、画像処理装置12では、被写体画像の被写体の姿勢情報(被写体の向きを含む)と、姿勢情報に対応する特徴領域と、該特徴領域に応じた特徴点と、を予め記憶部18に記憶してもよい。この場合、姿勢情報に対応する特徴領域には、対応する姿勢情報の姿勢の被写体から該被写体の形状を推定可能な領域を予め定めればよい。例えば、撮像部14に対して横向きであることを示す姿勢情報には、腰領域または首領域を、特徴領域として予め定める。また、上述したように、特徴点は、対応する特徴領域に応じて予め定めればよい。
そして、調整部30では、第1取得部22で取得された被写体画像から被写体の向きを算出した後、該被写体の向きの姿勢情報に対応する特徴領域及び特徴点を記憶部18から読取る。そして、調整部30は、読取った特徴領域を用いて、上記調整処理を実行する。また、調整部30は、読取った特徴領域を第1算出部34へ出力し、読取った特徴点を第2算出部36へ出力する。第1算出部34及び第2算出部36では、調整部30から受け付けた特徴領域及び特徴点を各々用いて、上記算出処理を実行すればよい。
また、本実施の形態では、第1撮像部14Aで取得した被写体のデプス画像を、第2撮像部14Bの座標系に変換した後に、第2撮像部14Bで取得した被写体の色画像上の重畳位置に、衣服画像を重畳した合成画像を生成する場合を説明した。
しかし、画像処理装置12では、衣服画像として、第1撮像部14Aにより撮像された衣服のデプス画像と、第2撮像部14Bにより撮像された衣服の色画像と、を用いて画像処理を行ってもよい。この場合、衣服のデプス画像と、被写体のデプス画像と、の位置合わせを第1撮像部14Aの座標系上で行った後に、衣服画像の重畳位置を第1撮像部14Aの座標系から第2撮像部14Bの座標系に変換する。
この処理において、衣服の撮像時の第1撮像部14Aと、被写体の撮像時の第1撮像部14Aと、の位置が異なる場合であっても、公知の手法により座標変換を行うことが可能である。
(実施の形態2)
図16は、画像処理システム10Aを示す模式図である。
画像処理システム10Aは、記憶装置72と、処理装置11と、が通信回線74を介して接続されている。
記憶装置72は、実施の形態1における記憶部18を備えた装置であり、公知のパーソナルコンピュータ等である。処理装置11は、実施の形態1における、画像処理装置12、撮像部14、入力部16、及び提示部20を備えた装置である。なお、実施の形態1と同じ機能部には同じ符号を付与して詳細な説明を省略する。通信回線74は、インターネット等の通信回線であり、有線通信回線や、無線通信回線がある。
図16に示すように、記憶部18を、通信回線74を介して処理装置11(画像処理装置12)に接続された記憶装置72に設けた構成とすることで、複数の処理装置(画像処理装置12)から同じ記憶部18にアクセスすることができ、記憶部18に記憶されているデータの一元管理が可能となる。
なお、処理装置11は、任意の箇所に設置可能である。例えば、処理装置11を、ユーザが合成画像を視認する場所、例えば、店舗等に設置してもよい。また、処理装置11の各機能を、公知の携帯端末に搭載してもよい。
(実施の形態2)
次に、本実施の形態1及び実施の形態2の画像処理装置12のハードウェア構成について説明する。図17は、本実施の形態の画像処理装置12のハードウェア構成例を示すブロック図である。
実施の形態1及び実施の形態2の画像処理装置12は、提示部80、通信I/F部82、撮像部84、入力部94、CPU(Central Processing Unit)86、ROM(Read Only Memory)88、RAM(Random Access Memory)90、及びHDD92等がバス96により相互に接続されており、通常のコンピュータを利用したハードウェア構成となっている。
CPU86は、画像処理装置12の全体の処理を制御する演算装置である。RAM90は、CPU86による各種処理に必要なデータを記憶する。ROM88は、CPU86による各種処理を実現するプログラム等を記憶する。HDD92は、上述した記憶部18に格納されるデータを記憶する。通信I/F部82は、外部装置や外部端末に通信回線等を介して接続し、接続した外部装置や外部端末との間でデータを送受信するためのインタフェースである。提示部80は、上述した提示部20に相当する。撮像部84は、上述した撮像部14に相当する。入力部94は、上述した入力部16に相当する。
本実施の形態1及び実施の形態2の画像処理装置12で実行される上記各種処理を実行するためのプログラムは、ROM88等に予め組み込んで提供される。
なお、本実施の形態1及び実施の形態2で実行されるプログラムは、これらの装置にインストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録されて提供するように構成してもよい。
また、本実施の形態1及び実施の形態2で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、本実施の形態1及び実施の形態2の画像処理装置12における上記各処理を実行するためのプログラムを、インターネット等のネットワーク経由で提供または配布するように構成してもよい。
本実施の形態1及び実施の形態2で実行される上記各種処理を実行するためのプログラムは、上述した各部が主記憶装置上に生成されるようになっている。
なお、上記HDD92に格納されている各種情報、すなわち記憶部18に格納されている各種情報は、外部装置(例えばサーバ)に格納してもよい。この場合には、該外部装置とCPU86と、を、ネットワーク等を介して接続した構成とすればよい。
なお、上記には、本発明のいくつかの実施の形態を説明したが、これらの実施の形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施の形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施の形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。