端末装置、画像処理方法及びプログラム
【課題】携帯電話端末の如き機器で人物を撮影した画像を基に、その人物の解析が良好に行えるようにする。
【解決手段】被写体を撮像するカメラ部201と、カメラ部201で撮像した画像より被写体としての人物の全ての関節の位置を特定する画像処理部120と、画像処理部で特定した被写体の全ての関節の位置をカメラ部201で撮像した画像に記した画像を表示する表示部107と、表示部107で表示している画像内の人物を操作できる操作部106とを備える。
【解決手段】被写体を撮像するカメラ部201と、カメラ部201で撮像した画像より被写体としての人物の全ての関節の位置を特定する画像処理部120と、画像処理部で特定した被写体の全ての関節の位置をカメラ部201で撮像した画像に記した画像を表示する表示部107と、表示部107で表示している画像内の人物を操作できる操作部106とを備える。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、例えばカメラ付きの携帯電話端末に適用して好適な端末装置及び画像処理方法、並びにその画像処理方法を適用したプログラムに関する。
【背景技術】
【0002】
従来、カメラで人物の撮像を行って、その撮像して得た画像信号から、その人物の関節の位置を推定することが行われている。
従来の関節位置の推定技術の1つとして、モーションキャプチャシステムを用いる技術がある。 現在使用されているモーションキャプチャには、動きを計測するために使用するセンサの違いによって、磁気式、機械式、光学式などがあるが、いずれの方式でも、一般に何らかのセンサまたはマーカを利用者の身につける必要がある。そして、その取付けたセンサまたはマーカを撮像信号から検出して、利用者の体の動きを検出して、その利用者の手足などの関節位置を推定する(特許文献1参照)。
【0003】
そのため、身に付けたセンサまたはマーカによって動きが拘束され、またセンサやマーカの着脱に多くの時間が掛かるという問題がある。また、専用のマーカやセンサを必要とするためにシステムが高価であり、さらにセンサ設置のために専用のスタジオを必要とするといった問題がある。
【0004】
また、近年、上記の問題点を解決するために、センサやマーカを身体に取り付けず、利用者の動きをカメラで撮影し、撮影した画像を解析することで関節位置を推定するマーカレスモーションキャプチャシステムが研究されている(非特許文献1参照)。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2002−8044号公報
【非特許文献】
【0006】
【非特許文献1】「人体の構造に基づいた単一画像からの姿勢推定手法」、画像の認識・理解シンポジウム(MIRU2007)、2007年7月、IS−5−34
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、これらの技術は、予め様々な人体の構造モデル等が格納した大容量データベースを用意し、身体各部位を特定するための複雑な処理を行うためのハイスペックなPCを用意することを前提としている。そのため、計算量が非常に大きくなり、利用者が携帯できる程度の小型の端末装置に適用することは困難である。例えば、携帯電話端末にはカメラが内蔵されたものが近年普及しているが、そのような携帯電話端末に内蔵されたカメラを使って人体を撮影して、関節位置を推定するようなことは困難である。携帯電話端末の如き小型の携帯端末で、関節位置の推定が可能であれば、その推定に基づいて各種アプリケーションプログラムの実行が可能となるが、現状では不可能である。
【0008】
本発明はかかる点に鑑みてなされたものであり、身体を含む画像から、正確かつ高速に身体の関節位置および身体部位情報を検出して、その検出した情報を利用した端末装置を提供することを目的とする。
【課題を解決するための手段】
【0009】
本発明は、撮像して得た画像信号より、被写体に含まれる人物を検出し、その検出した人物の関節の位置を特定し、その特定した関節の位置に基づいて人物の体の部位の範囲を決定し、その決定した部位の範囲を示した画像信号とする画像処理を行う。
そして、画像処理で得られた画像信号を表示させる表示処理を行い、その画像処理で決定した体の部位の範囲を変化させる指示を行う操作処理を行う。
【0010】
このようにしたことで、撮像して得た画像信号から関節位置を推定した結果に基づいて、撮像した人物の体型が判るようになる。その体型が画像として表示されるようになり、操作に基づいて表示される体型が変更できるようになる。
【発明の効果】
【0011】
本発明によると、撮像した人物の体型が表示画像から判るようになる。そして、その表示された体型が、操作に基づいて変更できることで、撮像した人物が痩せた場合や太った場合の様子が表示されるようになり、ダイエットなどを行う上での手助けになる。本発明を構成する各部は、比較的演算処理の少ない処理で実現でき、例えば携帯電話端末の如き端末装置に容易に組み込むことが可能となる。
【図面の簡単な説明】
【0012】
【図1】本発明の第一の実施の形態の例の端末装置の内部構成を示すブロック図である。
【図2】本発明の第一の実施の形態の例による処理例を示すフローチャートである。
【図3】本発明の第一の実施の形態の例による正面画像、横面画像、背景画像の画像例を示す説明図である。
【図4】本発明の第一の実施の形態の例による背景差分結果の画像例を示す説明図である。
【図5】本発明の第一の実施の形態の例による肩、肘、手、腰、膝、ももの位置を検出するための画像例を示す説明図である。
【図6】本発明の第一の実施の形態の例による正面画像の関節の位置を特定した結果の画像例を示す説明図である。
【図7】本発明の第一の実施の形態の例による顔の大きさの比較したときの画像例を示す説明図である。
【図8】本発明の第一の実施の形態の例による画像間の比率と正面画像の長さを用いて横画像の関節位置を特定したときの画像例を示す説明図である。
【図9】本発明の第一の実施の形態の例による特定した結果から求められる各部位の範囲の画像例を示す説明図である。
【図10】本発明の第一の実施の形態の例による各部位の範囲より体の各部位の領域の画像例を示す説明図である。
【図11】本発明の第一の実施の形態の例による編集前の画像とポインタの画像例を示す説明図である。
【図12】本発明で第一の実施の形態の例によるポインタ操作をして画像を編集した場合の画像例を示す説明図である。
【図13】本発明の第一の実施の形態の例による画像編集結果とそのアドバイスの画像例を示す説明図である。
【図14】本発明の第一の実施の形態の例によるダイエット予定表の画像例を示す説明図である。
【図15】本発明の第二の実施の形態における処理例を示すフローチャートである。
【発明を実施するための形態】
【0013】
<第一の実施の形態>
以下、本発明の第一の実施の形態の例を、図1〜14を参照して説明する。本実施の形態の例は、カメラ付携帯電話端末を利用したダイエット支援システムに適用した例である。
【0014】
図1は、本発明の第一の実施形態例であるカメラ付携帯電話端末100の内部構成例を示すブロック図である。カメラ付携帯電話端末100は、マイクロプロセッサ等よりなる制御部120を備え、制御部120は、制御信号が伝送される制御ライン150又はデータが伝送されるデータライン160を介して、カメラ付携帯電話端末100内の各部と接続されている。そして、制御部120はこれらのラインを通して各部と通信を行い、各部の動作制御を行う。
【0015】
制御ライン150には、通信回路102と、表示部107と、操作部106と、メモリ105と、撮像制御部202が接続されている。また、データライン160には、テキストデータ、画像データ、音声データ等の種々の形態のデータを伝送されている。
【0016】
通信回路102にはアンテナ101が接続してあり、通信回路102は、アンテナ101で得られた電波を復調して音声信号や映像信号を取り出す。また、データライン160を介して入力された音声信号を音声出力するスピーカ104に供給する。さらに周囲の音声を拾って音声信号に変換するマイクロフォン103から伝送された音声信号や制御部120で制御された信号を、電波に変換してアンテナ101に出力する処理を行う。
【0017】
表示部107は、液晶パネル等で構成される表示パネルと、その表示パネルの駆動部とで構成され、着信した電話の電話番号や、アンテナ101を通して送受信される電子メールの文章等や、カメラ201からの撮像が表示される。操作部106は、数字などのダイヤルキーやその他の各種機能キーで構成される。そして、それらのキーがユーザに押下された場合に、操作内容に応じた操作信号を生成して制御部120に供給する。
【0018】
メモリ105は、ROM(Read Only Memory)やRAM(Random Access Memory)などの記憶手段で構成される。メモリ105には、カメラ付携帯電話端末100の制御に必要なソフトウェア等が格納されている。このソフトウェアの1つとして、後述するカメラ画像から理想の体系への画像を作成と解析を行い、その解析したデータからダイエット予定表と最適な運動方法の提示をするソフトウェアが予め用意してある。また、メモリ105には、制御部120で制御が行われる際に一時的に発生するデータ等も格納される。
【0019】
撮像制御部202は、ユーザを撮像するカメラ201が接続してあり、制御部120からの撮影指示に応じてカメラ201を用いて撮影処理を実行し、撮影処理により得られた画像データをメモリ105に記憶する。制御部120は、撮像して得た画像データの解析や変換などを行う画像処理部としての機能も備える。
【0020】
次に、図2のフローチャートを参照して、カメラ201が撮影した画像データから理想の体系への画像を作成と解析を行い、その解析したデータからダイエット予定表と最適な運動方法の提示をするまでの処理例について説明する。この図2のフローチャートに示した処理は、図1の構成で示した制御部120などの制御で実行されるものである。
【0021】
まず、データの入力が、最初の入力又は再入力か、もしくは、前回保存しているデータを閲覧するかをユーザに操作部の操作で選択させ、その結果を判断する(ステップS101)。
【0022】
ここで、初入力又は再入力であった場合は、ユーザの情報を入力する(ステップS102)。ここでは、ユーザの情報とは、ユーザ名、体重、身長、ダイエット期間、就寝時間を示す情報である。
【0023】
次に、ユーザの正面画像、横面画像と背景画像を同一条件の基で撮像する(ステップS103)。このときの正面画像のユーザの姿勢は、両手を左右に開いてまっすぐ伸ばし、両足を開いた状態、つまり身体を大の字にした状態である(図3(a)を参照)。また、横面画像のユーザの姿勢は、身体自体を真横に向け、両手をまっすぐ目の前に伸ばした状態である(図3(b)を参照)。背景画像は、正面画像と横面画像を撮像した同一条件(同一場所)で、ユーザのみを外して背景だけを撮像した画像である(図3(c)を参照)。
【0024】
その後、正面画像及び横面画像と、背景画像との差分の画像を得る。これにより、正面画像のシルエット画像と、横面画像のシルエット画像が作成される(ステップS104)。図4(a)は、正面画像のシルエット画像の例を示し、図4(b)は、横面画像のシルエット画像の例を示す。
【0025】
次に、作成された正面画像のシルエット画像を解析する。この解析状態を示したのが図5である。
【0026】
まず、図5(a)に示すように正面画像のシルエット画像がある状態を想定すると、図5(b)に示すように、正面画像のシルエット画像から重心位置(2−1)を決定する。次に、重心位置(2−1)から、左右垂直上にある胴体の左右の末端位置(2−2)を決定する。その後、正面画像のシルエット画像から、股の位置(2−3)、肩の位置(2−4)、頭の先端の位置(2−5)のそれぞれの位置を決定する。そして、その位置関係から胴体部分の矩形領域(2−6)を決定する。
【0027】
次に、図5(c)に示すように、正面画像のシルエット画像から首を含む頭部の重心位置(3−1)を決定する。頭部の重心位置(3−1)から、左右垂直上にある頭部の左右の末端位置(3−2)を決定する。その後、肩の位置(2−4)と頭の先端の位置(2−5)と頭部の左右の末端位置(3−2)の位置関係から、頭部の矩形領域(3−3)を決定する。
【0028】
さらに、重心位置(2−1)と股の位置(2−3)と頭部の矩形領域(3−3)の位置関係から、首と胴体をつなぐ位置(3−4)を決定する。また、頭部の矩形領域(3−3)から、頭部の長さ(3−5)を決定することができる。
【0029】
次に、図5(d)に示すように、胴体部分の矩形領域(2−6)の右上の角の位置から、頭部の長さ(3−5)に所定の肩パラメータ(Parameta_kata)をかけた長さ分を下げた位置を、右肩の関節の位置(4−1)と決定する。なお、所定の肩パラメータ(Parameta_kata)とは、人間の身体の各部位の長さは頭身を用いて表すことができるということにより、設定された値である。
【0030】
その後、図5(e)に示すように、右肩の関節の位置(4−1)を基に、右の肘関節(4−2)の位置を以下の方法で決定する。
【0031】
(x、y)は正面画像のシルエット画像の左上を原点とする画像座標系、(xr、yr)は肩関節の位置(4−1)の座標(X、Y)を原点とする極座標系とする。極座標系と直交座標系の関係式は以下の式で表される。
xr=r×sinθ、yr=r×cosθ
よって、この極座標系の位置(r、θ)を用いて画像座標系の位置(x、y)を表すと、
x=X+xr、y=Y−yr
x=X+r×sinθ、y=Y−r×cosθ
となる。
【0032】
まずは、右肩の関節の位置(4−1)から右肘の関節の位置(4−2)を決定する場合の例を示す。
まず、頭の大きさより肩関節から肘関節までの長さを推定して、rtとする。節点探索は、右肩の関節の位置(4−1)の座標(X、Y)を原点とする極座標系を基準に、90≦θ≦240の範囲で行う。
【0033】
その円周上の探索範囲内で、二つの節点を検出することができる。その検出した節点の上部のほうの位置(4−b)の座標を(x、y)=(xb、yb)、(r、θ)=(rt、θb)とし、下部のほうの位置(4−c)の座標を(x、y)=(xc、yc)、(r、θ)=(rt、θc)とする。
【0034】
そして、円周上で二つの節点の中点にある位置を右肘の関節の位置(4−2)の座標(xcenter、ycenter)を次の数1式により決定する。
【0035】
【数1】
【0036】
次に、右肘の関節の位置(4−2)から右手の位置(4−3)を決定する場合の例を示す。
【0037】
まず、頭の大きさより肩関節から肘関節までの長さを推定して、rtとする。節点探索は、右肘の関節の位置(4−2)の座標(xcenter、ycenter)を原点とする極座標系を基準に、90≦θ≦240の範囲で行う。
【0038】
その円周上の探索範囲内で、二つの節点を検出することができる。その検出した節点の上部のほうの位置の座標を(x、y)=(xb2、yb2)、(r、θ)=(rt、θb2)とし、下部のほうの位置の座標を(x、y)=(xc2、yc2)、(r、θ)=(rt、θc2)とする。
【0039】
そして、円周上で二つの節点の中点にある位置を右手の位置(4−3)の座標(xcenter2、ycenter2)を次の数2式により決定する。
【0040】
【数2】
【0041】
同様な方法で、左の肩、肘、手の位置を決定する。
【0042】
次に、図5(f)に示すように、胴体の腰の位置(5−1)を求める。これは、股の位置(2−3)の座標(xhj、yhj)の位置から、Y軸の上方向に頭部の長さ(3−5)に所定の腰パラメータ(Parameta_koshi)をかけた長さ分を上げた位置を、胴体の腰の位置(5−1)と決定する。なお、所定の腰パラメータ(Parameta_koshi)とは、人間の身体の各部位の長さは頭身を用いて表すことができるということにより、設定された値である。
【0043】
そして、右肘の関節の位置(4−2)を求めるときに用いた同様な方法で、右膝の関節の(5−2)、右足の位置(5−3)を決定する。
【0044】
(x、y)は正面画像のシルエット画像の左上を原点とする画像座標系、(xfr、yfr)は胴体の腰の位置(5−1)の座標(Xf、Yf)を原点とする極座標系とする。極座標系と直交座標系の関係式は以下の式で表される。
xfr=r×sinθf、yfr=r×cosθf
よって、この極座標系の位置(rf、θf)を用いて画像座標系の位置(x、y)を表すと、x=Xf+xfr、y=Yf−yfr
x=Xf+r×sinθf、y=Yf−r×cosθf
となる。
【0045】
まずは、胴体の腰の位置(5−1)から右膝の関節の位置(5−2)を決定する場合の例を示す。
まず、頭の大きさより腰の位置(5−1)から膝の関節までの長さを推定して、rftとする。節点探索は、胴体の腰の位置(5−1)の座標(Xf、Yf)を原点とする極座標系を基準に、180≦θ≦270の範囲で行う。
【0046】
その円周上の探索範囲内で、二つの節点を検出することができる。その検出した節点の右側の位置の座標を(x、y)=(xfb、yfb)、(r、θ)=(rft、θfb)とし、左側の位置の座標を(x、y)=(xfc、yfc)、(r、θ)=(rft、θfc)とする。
そして、円周上で二つの節点の中点にある位置を右膝の関節の位置(5−2)の座標(xR−Knee、yR−Knee)を次の数3式により決定する。
【0047】
【数3】
【0048】
次に、右膝の関節の位置(5−2)から右足の位置(5−3)を決定する場合の例を示す。
【0049】
まず、頭の大きさより肩関節から肘関節までの長さを推定して、rftとする。節点探索は、右膝の関節の位置(5−2)の座標(xR−Knee、yR−Knee)を原点とする極座標系を基準に、180≦θ≦270の範囲で行う。
【0050】
その円周上の探索範囲内で、二つの節点を検出することができる。その検出した節点の上部のほうの位置の座標を(x、y)=(xfb2、yfb2)、(r、θ)=(rft、θfb2)とし、下部のほうの位置の座標を(x、y)=(xfc2、yfc2)、(r、θ)=(rft、θfc2)とする。
【0051】
そして、円周上で二つの節点の中点にある位置を右手の位置(4−3)の座標(xR−Knee2、yR−Knee2)を次の数4式により決定する。
【0052】
【数4】
【0053】
同様な方法で、左の膝、左足の位置を決定する。
【0054】
以上により、正面画像から、各関節の位置の推定ができる(ステップS105)。図6の画像は、このようにして各関節の位置の推定を行って、各関節の位置を表示させた例である。
【0055】
次に、正面画像の関節位置より、横画像の各部位の範囲の決定を行う。
【0056】
まず、図7に示すように、正面画像での顔の領域と横面画像での顔の領域を決定する。このときの正面画像での顔の画像の縦の長さを(7−1)、横画像での顔の縦の長さを(7−2)とする。正面画像での顔の縦の長さを基準とした横画像の顔の縦の長さの比率(Ratio)は、
Ratio={(7−2)/(7−1)}
となる。
【0057】
次に、図8に示すように、各関節の位置の特定した正面画像から、頭の先端の位置(2−5)を基準として、各関節位置までの距離を求める。頭の先端の位置(2−5)から肩の位置(2−4)までの長さを(8−1)、頭の先端の位置(2−5)から腰の位置(5−1)までの長さを(8−2)、頭の先端の位置(2−5)から膝の位置(5−2)までの長さを(8−3)とする。
そして、この各関節の位置と比率(Ratio)から、横画像の各関節位置の長さが決定することができる。
(8−4)=(8−1)×Ratio
(8−5)=(8−2)×Ratio
(8−6)=(8−3)×Ratio
(8−4)は頭の先端の位置から肩の位置までの長さ、(8−5)は頭の先端の位置から腰の位置までの長さ、(8−6)は頭の先端の位置から膝の位置までの長さとなる。
【0058】
これにより、図9に示すように、横面画像での肩、腰、膝の位置が決定することができる。さらに、位置が確定されたことにより、図10に示したように、横面画像を腕、おなか、もも、背中、お尻の5つの部位範囲にする(ステップS106)。例えば、肩の位置から突き出ている部分を腕の部位とする。身体の正中線の前面では、肩の位置から腰までの部分をおなかの部位とし、腰の位置から膝までの部分をももの部位とする。そして、身体の正中線の後面では、肩の位置から腰までの部分を背中の部位とし、腰の位置から膝までの部分をお尻という部位とする。
【0059】
さらに、関節位置や各部位に区分けされたことにより、横面画像の部位ごとの単位画素当りの体重を計算する(ステップS107)。ここでは、1画素(1ピクセル)当りの体重を計算する。ただし、体重は部位ごとに一様ではないため、体重配分は考慮されているものとする。
【0060】
次に、各部位に範囲分けされた横面画像を編集して、理想の体型画像にする作業を行う(ステップS108)。例えば、図11に示すように、編集する横面画像上にあるポインタを動かして各部位のエリアの部分をクリックすることで、画像の体の部分が増減する。予め、各部位の画像の画素数を調べておき、クリックした回数に応じてその画素数を変化させる。つまり、この増減の操作を行うことで、自身の理想の体型画像を作成することができるということである。
【0061】
図12は、おなか、背中、お尻、もも、腕の各部位を操作部106で操作した場合の画像例を示したものである。
【0062】
図12(a)の例は、操作部106で操作しているポインタでおなかの部位を指定して、キーを押下げすることで、おなかの部位の画素数が減ったことを示している操作前後の画像例である。
【0063】
図12(b)の例は、操作部106で操作しているポインタで背中の部位を指定して、キーを押下げすることで、おなかの部位の画素数が減ったことを示している操作前後の画像例である。
【0064】
図12(c)の例は、操作部106で操作しているポインタでお尻の部位を指定して、キーを押下げすることで、おなかの部位の画素数が減ったことを示している操作前後の画像例である。
【0065】
図12(d)の例は、操作部106で操作しているポインタでももの部位を指定して、キーを押下げすることで、おなかの部位の画素数が減ったことを示している操作前後の画像例である。
【0066】
図12(e)の例は、操作部106で操作しているポインタで腕の部位を指定して、キーを押下げすることで、おなかの部位の画素数が減ったことを示している操作前後の画像例である。
【0067】
初めに撮像した横面画像と編集した横面画像を比較して、各部位の画素数の変化量を算出する(ステップS109)。その後、部位ごとの1[pixel]あたりの体重と各部位の画素数の変化量から、部位ごとの体重を算出する。そして、部位ごとの体重を合計した体重を算出する(ステップS110)。
【0068】
その部位ごとに変化した体重の計算式の例は、以下に示す。
初めに撮像した横面画像からの各部位の画素の総数(Part_Pixel_Org_i)[pixel]と編集した横面画像からの各部位の画素数(Part_Pixel_Target_i)[pixel]より、各部位の差分の画素数(Part_Pixel_Change_i)[pixel]が求まる。
(Part_Pixel_Change_i)=[(Part_Pixel_Org_i)―(Part_Pixel_Target_i)]
【0069】
次に、部位ごとの1[pixel]あたりの重さ(Part_Pixel_Per_Weight_i)を次の数5式により計算する。
【0070】
【数5】
【0071】
なお、(Weight_Org)は初めにユーザ情報として入力した体重とし、(Parameter_i)は部位ごとのパラメータとなる。
【0072】
この部位ごとの1[pixel]あたりの重さ(Part_Pixel_Per_Weight_i)と各部位の差分の画素数(Part_Pixel_Change_i) [pixel]より、部位ごとの差分の体重量(Weight_Part_Down_i)[kg]が計算できる。
(Weight_Part_Down_i)=(Part_Pixel_Change_i)×(Part_Pixel_Per_Weight_i)
【0073】
さらに、部位ごとの差分の体重量(Weight_Part_Down_i)[kg]を全て合計することで、体全体での差分の体重量(Weight_Down)[kg]が次の数6式により算出される。
【0074】
【数6】
【0075】
なお、各々の特徴量の添え字iは、各部位の番号を示している。例えば、i=1は腕、i=2はおなか、i=3は膝、i=4はせなか、i=5はお尻を示している。
【0076】
また、上述で算出された差分の体重とカロリの関係は、一般的に以下の式で成り立つ。
8000[kcal]=1[kg]
これにより、部位ごとの差分の体重量から換算されるカロリ量(Kcal_Part_Down_i)[kcal]と、体全体からの差分の体重量から換算されるカロリ量(Kcal_Down)[kcal]が、以下の式から求まる。
(Kcal_Part_Down_i)=(Weight_Part_Down_i)×8000
(Kcal_Down)=(Weight_Down)×8000
【0077】
次に、部位ごとの差分の体重量と体全体からの差分の体重量及びそれらのカロリ量より、ダイエット予定表を作成する(ステップS111)そして、このダイエット予定表から、一日あたりの運動目標カロリを推定する(ステップS112)。
【0078】
その後、編集した横面画像をカメラ付携帯電話100の表示画面に表示する。さらに、図13に示すように、部位の中で最も変化があった部位と体全体からの差分の体重量を表示する。例えば、最も変化があった部位が順に「おなか、せなか、お尻」だった場合は、「1位はおなか、2位はせなか、3位はお尻」の表示と1−3位までを総合した体重量をも表示させる。
【0079】
次に、カメラ付携帯電話端末100の表示画面には、現在の横面画像、編集した横面画像、ダイエット予定表及び一日あたりの運動目標カロリを同時に表示する(ステップS113、図14を参照)。同時に、表示させたデータを保存する(ステップS114)。
【0080】
それから、各部位の変化があった範囲を基に最適な運動方法の提案を受けることができる(ステップS301)。まず、各部位の変化のあった範囲がどのくらいの変化があったかを認識する(ステップS302)。例えば、その変化量を部位ごとの差分の体重量から換算されるカロリ量(Kcal_Part_Down_i)[kcal]としてもよい。
そして、その各部位の変化量を基に、理想の体型になるために効果がある最適な運動方法を部位ごとに提案する(ステップS303)。
【0081】
一方、図2のフローチャートのステップS101において、前回保存しているデータを閲覧することを選択した場合は、前回保存した現在の横面画像、編集した横面画像、ダイエット予定表及び一日あたりの運動目標カロリを再表示する(ステップS201)。そして、再度、最適な運動方法の提案を閲覧することができる。
【0082】
これにより、同一条件において撮像された正面画像、横面画像、背景画像に本発明の部位検出アルゴリズムを適用させることで、ユーザの身体各部位を容易に特定することができる。つまり、本実施の形態の例の部位検出アルゴリズムは制御情報の容量が小さく、簡単な計算式となったことである。そして、本実施の形態で適用したような携帯電話端末などの限られた資源しか持たない、携帯用の情報処理機器にも容易に身体各部位を特定する機能を搭載することが可能となる。
【0083】
また、横面画像を身体各部位に特定することができることで、ポインタ操作で横面画像を理想の体型に簡単に編集することができる。そして、編集した横面画像から、理想の体型になるための減らす体重や一日あたりの消費カロリ、ダイエット予定表を作成、表示されることにより、ユーザに強い視覚的な刺激を与えることができる。その結果、ユーザのダイエットに効果的に寄与することが可能となる。
【0084】
さらに、横面画像、編集した横面画像、一日あたりの消費カロリ、ダイエット予定表は、メモリ105に記録されるので、いつでも再閲覧は可能である。
【0085】
<第二の実施の形態>
以下に、図15を参照して、本発明の第二の実施の形態の例について説明する。
本実施の形態の例は、第一の実施の形態の例で説明した処理構成に、ユーザの新たな情報を追加することで予定表の状況推移がわかる機能を加えた場合の例である。本例におけるシステムの内部構成は、図1に示した構成と同一であるため、システム構成については説明を省略する。
【0086】
図15のフローチャートを参照して、カメラ201が撮影した画像データから理想の体系への画像を作成と解析を行い、その解析したデータからダイエット予定表と最適な運動方法の提示をするまでの処理例について説明する。
【0087】
まず、データの入力が、最初の入力又は再入力か、もしくは、前回保存しているデータを閲覧するかをユーザに操作部の操作で選択させ、その結果を判断する(ステップS101)。
【0088】
ステップS101の判断で初入力又は再入力をする場合には、処理終了までは、第一の実施の形態の例で説明した図2の処理と同一であるために、ここでは処理の説明を省略する。
【0089】
ステップS101の判断で、前回保存しているデータを閲覧することを選択した場合は、前回保存したデータを呼び出す(ステップS202)。
【0090】
次に、ユーザの正面画像と横面画像と背景画像を同一条件の基で撮像する(ステップS203)。このときの正面画像と横面画像と背景画像は、例えば図3に示した画像である。
【0091】
その後、図4に示したように、正面画像と背景画像との差分から正面画像のシルエット画像を得、横面画像と背景画像との差分から横面画像のシルエット画像を得る(ステップS204)。
【0092】
次に、作成された正面画像のシルエット画像を解析する。
【0093】
まず、図5(b)に示すように、正面画像のシルエット画像から重心位置(2−1)を決定する。次に、重心位置(2−1)から、左右垂直上にある胴体の左右の末端位置(2−2)を決定する。その後、正面画像のシルエット画像から、股の位置(2−3)、肩の位置(2−4)、頭の先端の位置(2−5)のそれぞれの位置を決定する。そして、その位置関係から胴体部分の矩形領域(2−6)を決定する。
【0094】
次に、図5(c)に示すように、正面画像のシルエット画像から首を含む頭部の重心位置(3−1)を決定する。頭部の重心位置(3−1)から、左右垂直上にある頭部の左右の末端位置(3−2)を決定する。その後、肩の位置(2−4)と頭の先端の位置(2−5)と頭部の左右の末端位置(3−2)の位置関係から、頭部の矩形領域(3−3)を決定する。
【0095】
さらに、重心位置(2−1)と股の位置(2−3)と頭部の矩形領域(3−3)の位置関係から、首と胴体をつなぐ位置(3−4)を決定する。また、頭部の矩形領域(3−3)から、頭部の長さ(3−5)を決定する。
【0096】
次に、図5(d)に示すように、胴体部分の矩形領域(2−6)の右上の角の位置から、頭部の長さ(3−5)に所定の肩パラメータ(Parameta_kata)をかけた長さ分を下げた位置を、右肩の関節の位置(4−1)と決定する。なお、所定の肩パラメータ(Parameta_kata)とは、人間の身体の各部位の長さは頭身を用いて表すことができるということにより、設定された値である。
【0097】
その後、右肩の関節の位置(4−1)を基に、右の肘関節(4−2)の位置を以下の方法で決定する。
【0098】
(x、y)は正面画像のシルエット画像の左上を原点とする画像座標系(xr、yr)は肩関節の位置(4−1)の座標(X、Y)を原点とする極座標系とする。極座標系と直交座標系の関係式は以下の式で表される。
xr=r×sinθ、yr=r×cosθ
よって、この極座標系の位置(r、θ)を用いて画像座標系の位置(x、y)を表すと、
x=X+xr、y=Y−yr
x=X+r×sinθ、y=Y−r×cosθ
となる。
【0099】
まずは、右肩の関節の位置(4−1)から右肘の関節の位置(4−2)を決定する場合の例を示す。
まず、頭の大きさより肩関節から肘関節までの長さを推定して、rtとする。節点探索は、右肩の関節の位置(4−1)の座標(X、Y)を原点とする極座標系を基準に、90≦θ≦240の範囲で行う。
【0100】
その円周上の探索範囲内で、二つの節点を検出することができる。その検出した節点の上部のほうの位置(4−b)の座標を(x、y)=(xb、yb)、(r、θ)=(rt、θb)とし、下部のほうの位置(4−c)の座標を(x、y)=(xc、yc)、(r、θ)=(rt、θc)とする。
【0101】
そして、円周上で二つの節点の中点にある位置を右肘の関節の位置(4−2)の座標(xcenter、ycenter)を次の数7式により決定する。
【0102】
【数7】
【0103】
次に、右肘の関節の位置(4−2)から右手の位置(4−3)を決定する場合の例を示す。
【0104】
まず、頭の大きさより肩関節から肘関節までの長さを推定して、rtとする。節点探索は、右肘の関節の位置(4−2)の座標(xcenter、ycenter)を原点とする極座標系を基準に、90≦θ≦240の範囲で行う。
【0105】
その円周上の探索範囲内で、二つの節点を検出することができる。その検出した節点の上部のほうの位置の座標を(x、y)=(xb2、yb2)、(r、θ)=(rt、θb2)とし、下部のほうの位置の座標を(x、y)=(xc2、yc2)、(r、θ)=(rt、θc2)とする。
【0106】
そして、円周上で二つの節点の中点にある位置を右手の位置(4−3)の座標(xcenter2、ycenter2)を次の数8式により決定する。
【0107】
【数8】
【0108】
同様な処理手順で、左の肩、肘、手の位置を決定する。
【0109】
次に、図5(f)に示すように、胴体の腰の位置(5−1)を求める。これは、股の位置(2−3)の座標(xhj、yhj)の位置から、Y軸の上方向に頭部の長さ(3−5)に所定の腰パラメータ(Parameta_koshi)をかけた長さ分を上げた位置を、胴体の腰の位置(5−1)と決定する。なお、所定の腰パラメータ(Parameta_koshi)とは、人間の身体の各部位の長さは頭身を用いて表すことができるということにより、設定された値である。
【0110】
そして、右肘の関節の位置(4−2)を求めるときに用いた同様な方法で、右膝の関節の(5−2)、右足の位置(5−3)を決定する。
【0111】
(x、y)は正面画像のシルエット画像の左上を原点とする画像座標系、(xfr、yfr)は胴体の腰の位置(5−1)の座標(Xf、Yf)を原点とする極座標系とする。極座標系と直交座標系の関係式は以下の式で表される。
xfr=r×sinθf、yfr=r×cosθf
よって、この極座標系の位置(rf、θf)を用いて画像座標系の位置(x、y)を表すと、
x=Xf+xfr、y=Yf−yfr
x=Xf+r×sinθf、y=Yf−r×cosθf
となる。
【0112】
まずは、胴体の腰の位置(5−1)から右膝の関節の位置(5−2)を決定する場合の例を示す。
まず、頭の大きさより腰の位置(5−1)から膝の関節までの長さを推定して、rftとする。節点探索は、胴体の腰の位置(5−1)の座標(Xf、Yf)を原点とする極座標系を基準に、180≦θ≦270の範囲で行う。
【0113】
その円周上の探索範囲内で、二つの節点を検出することができる。その検出した節点の右側の位置の座標を(x、y)=(xfb、yfb)、(r、θ)=(rft、θfb)とし、左側の位置の座標を(x、y)=(xfc、yfc)、(r、θ)=(rft、θfc)とする。
そして、円周上で二つの節点の中点にある位置を右膝の関節の位置(5−2)の座標(xR−Knee、yR−Knee)を次の数9式により決定する。
【0114】
【数9】
【0115】
次に、右膝の関節の位置(5−2)から右足の位置(5−3)を決定する場合の例を示す。
まず、頭の大きさより肩関節から肘関節までの長さを推定して、rftとする。節点探索は、右膝の関節の位置(5−2)の座標(xR−Knee、yR−Knee)を原点とする極座標系を基準に、180≦θ≦270の範囲で行う。
【0116】
その円周上の探索範囲内で、二つの節点を検出することができる。その検出した節点の上部のほうの位置の座標を(x、y)=(xfb2、yfb2)、(r、θ)=(rft、θfb2)とし、下部のほうの位置の座標を(x、y)=(xfc2、yfc2)、(r、θ)=(rft、θfc2)とする。
【0117】
そして、円周上で二つの節点の中点にある位置を右手の位置(4−3)の座標(xR−Knee2、yR−Knee2)を次の数10式により決定する。
【0118】
【数10】
【0119】
同様な処理手順で、左の膝、左足の位置を決定する。
【0120】
以上により、図6に示すように、正面画像から、各関節の位置の推定ができる(ステップS205)。
【0121】
次に、正面画像の関節位置より、横画像の各部位の範囲の決定を行う。
【0122】
まず、図7に示すように、正面画像での顔の領域と横面画像での顔の領域を決定する。このときの正面画像での顔の画像の縦の長さを(7−1)、横画像での顔の縦の長さを(7−2)とする。正面画像での顔の縦の長さを基準とした横画像の顔の縦の長さの比率(Ratio)は、
Ratio={(7−2)/(7−1)}
となる。
【0123】
次に、各関節の位置の特定した正面画像から、頭の先端の位置(2−5)を基準として、各関節位置までの距離を求める。即ち、図8に示すように、頭の先端の位置(2−5)から肩の位置(2−4)までの長さを(8−1)、頭の先端の位置(2−5)から腰の位置(5−1)までの長さを(8−2)、頭の先端の位置(2−5)から膝の位置(5−2)までの長さを(8−3)とする。
そして、この各関節の位置と比率(Ratio)から、横画像の各関節位置の長さが決定することができる。
(8−4)=(8−1)×Ratio
(8−5)=(8−2)×Ratio
(8−6)=(8−3)×Ratio
(8−4)は頭の先端の位置から肩の位置までの長さ、(8−5)は頭の先端の位置から腰の位置までの長さ、(8−6)は頭の先端の位置から膝の位置までの長さとなる。
【0124】
これにより、図9に示すように、横面画像での肩、腰、膝の位置が決定することができる(図9参照)。さらに、位置が確定されたことにより、横面画像を腕、おなか、もも、背中、お尻の5つの部位範囲にすることができる。例えば、肩の位置から突き出ている部分を腕の部位とする。身体の正中線の前面では、肩の位置から腰までの部分をおなかの部位とし、腰の位置から膝までの部分をももの部位とする。そして、図10に示すように、身体の正中線の後面では、肩の位置から腰までの部分を背中の部位とし、腰の位置から膝までの部分をお尻という部位とする(ステップS206)。
【0125】
新たに撮像した横面画像と保存したデータにある編集した横面画像を比較して、各部位の画素数の変化量を算出する(ステップS207)。その後、保存したデータにある部位ごとの単位画素あたり(ここでは1画素あたり)の体重と各部位の画素数の変化量から、部位ごとの体重を算出する。そして、部位ごとの体重を合計した体重を算出する(ステップS208)。
【0126】
その部位ごとに変化した体重の計算式の例は、以下に示す。
新たに撮像した横面画像からの各部位の画素の総数(Part_Pixel_Org2_i)[pixel]と保存したデータにある編集した横面画像からの各部位の画素数(Part_Pixel_Target_i)[pixel]より、各部位の差分の画素数(Part_Pixel_Change2_i)[pixel]が求まる。
(Part_Pixel_Change2_i)=[(Part_Pixel_Org2_i)―(Part_Pixel_Target_i)]
【0127】
保存したデータにある部位ごとの1[pixel]あたりの重さ(Part_Pixel_Per_Weight_i)と各部位の差分の画素数(Part_Pixel_Change2_i)[pixel]より、部位ごとの差分の体重量(Weight_Part_Down2_i)[kg]が計算できる。
(Weight_Part_Down2_i)=(Part_Pixel_Change2_i)×(Part_Pixel_Per_Weight_i)
【0128】
さらに、部位ごとの差分の体重量(Weight_Part_Down2_i)[kg]を全て合計することで、体全体での差分の体重量(Weight_Down2)[kg]が次の数11式により算出される。
【0129】
【数11】
なお、各々の特徴量の添え字iは、各部位の番号を示している。例えば、i=1は腕、i=2はおなか、i=3は膝、i=4はせなか、i=5はお尻を示している。
【0130】
また、上述で算出された差分の体重とカロリの関係は、一般的に以下の式で成り立つ。
8000[kcal]=1[kg]
これにより、部位ごとの差分の体重量から換算されるカロリ量(Kcal_Part_Down2_i)[kcal]と、体全体からの差分の体重量(Kcal_Down2)[kcal]が、以下の式から求まる。
(Kcal_Part_Down2_i)=(Weight_Part_Down2_i)×8000
(Kcal_Down2)=(Weight_Down2)×8000
【0131】
次に、部位ごとの差分の体重量と体全体からの差分の体重量及びそれらのカロリ量より、現在の部位ごとの体重と現在の体重の情報をダイエット予定表に追記する(ステップS209)。さらに、このダイエット予定表から、一日あたりの運動目標カロリを再度、推定する(ステップS210)。
【0132】
次に、カメラ付携帯電話端末100の表示画面は、図14に示すように、新たに撮像した横面画像、保存したデータにある編集した横面画像、新たな体重の情報を追記したダイエット予定表及び再度推定した一日あたりの運動目標カロリを同時に表示する(ステップS211)。同時に、表示させたデータを保存する(ステップS212)。
【0133】
それから、新たに撮像した横面画像と保存したデータにある編集した横面画像との比較により、各部位の変化があった範囲を基に最適な運動方法の提案を受けることができる(ステップS301)。まず、各部位の変化のあった範囲がどのくらいの変化があったかを認識する(ステップS302)。例えば、その変化量を部位ごとの差分の体重量から換算されるカロリ量(Kcal_Part_Down2_i)[kcal]としてもよい。
そして、図13に示すように、その各部位の変化量を基に、理想の体型になるために効果がある最適な運動方法を部位ごとに提案する(ステップS303)。
【0134】
これにより、同一条件において撮像された正面画像、横面画像、背景画像に、本実施の形態での部位検出アルゴリズムを適用させることで、ユーザの身体各部位を容易に特定することができる。つまり、本実施の形態による部位検出アルゴリズムは制御情報の容量が小さく、簡単な計算式となったことである。そして、携帯電話端末末などの限られた資源しか持たない機器にも身体各部位を特定する機能を搭載することが可能となる。
【0135】
また、横面画像を身体各部位に特定することができることで、ポインタ操作で横面画像を理想の体型に簡単に編集することができる。そして、編集した横面画像から、理想の体型になるための減らす体重や一日あたりの消費カロリ、ダイエット予定表を作成、表示されることにより、ユーザに強い視覚的な刺激を与えることができる。その結果、ユーザのダイエットに効果的に寄与することが可能となる。
【0136】
さらに、再閲覧のときには、現状での正面画像、横面画像、背景画像の撮像を行い、本実施の形態の部位検出アルゴリズムを適用させて、ユーザの身体各部位の状況を確認することができる。そして、現状のユーザ身体各部位の状況をダイエット予定表に記載を行うことで、ユーザは正確かつ客観的に自己の身体状態または体型的な変化を把握することが可能となる。
【符号の説明】
【0137】
100…カメラ付携帯電話、101…アンテナ、102…通信回路、103…マイクロフォン、104…スピーカ、105…メモリ、106…操作部、107…表示部、120…制御部、150…制御ライン、160…データライン、201…カメラ、202…撮像制御部
【技術分野】
【0001】
本発明は、例えばカメラ付きの携帯電話端末に適用して好適な端末装置及び画像処理方法、並びにその画像処理方法を適用したプログラムに関する。
【背景技術】
【0002】
従来、カメラで人物の撮像を行って、その撮像して得た画像信号から、その人物の関節の位置を推定することが行われている。
従来の関節位置の推定技術の1つとして、モーションキャプチャシステムを用いる技術がある。 現在使用されているモーションキャプチャには、動きを計測するために使用するセンサの違いによって、磁気式、機械式、光学式などがあるが、いずれの方式でも、一般に何らかのセンサまたはマーカを利用者の身につける必要がある。そして、その取付けたセンサまたはマーカを撮像信号から検出して、利用者の体の動きを検出して、その利用者の手足などの関節位置を推定する(特許文献1参照)。
【0003】
そのため、身に付けたセンサまたはマーカによって動きが拘束され、またセンサやマーカの着脱に多くの時間が掛かるという問題がある。また、専用のマーカやセンサを必要とするためにシステムが高価であり、さらにセンサ設置のために専用のスタジオを必要とするといった問題がある。
【0004】
また、近年、上記の問題点を解決するために、センサやマーカを身体に取り付けず、利用者の動きをカメラで撮影し、撮影した画像を解析することで関節位置を推定するマーカレスモーションキャプチャシステムが研究されている(非特許文献1参照)。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2002−8044号公報
【非特許文献】
【0006】
【非特許文献1】「人体の構造に基づいた単一画像からの姿勢推定手法」、画像の認識・理解シンポジウム(MIRU2007)、2007年7月、IS−5−34
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、これらの技術は、予め様々な人体の構造モデル等が格納した大容量データベースを用意し、身体各部位を特定するための複雑な処理を行うためのハイスペックなPCを用意することを前提としている。そのため、計算量が非常に大きくなり、利用者が携帯できる程度の小型の端末装置に適用することは困難である。例えば、携帯電話端末にはカメラが内蔵されたものが近年普及しているが、そのような携帯電話端末に内蔵されたカメラを使って人体を撮影して、関節位置を推定するようなことは困難である。携帯電話端末の如き小型の携帯端末で、関節位置の推定が可能であれば、その推定に基づいて各種アプリケーションプログラムの実行が可能となるが、現状では不可能である。
【0008】
本発明はかかる点に鑑みてなされたものであり、身体を含む画像から、正確かつ高速に身体の関節位置および身体部位情報を検出して、その検出した情報を利用した端末装置を提供することを目的とする。
【課題を解決するための手段】
【0009】
本発明は、撮像して得た画像信号より、被写体に含まれる人物を検出し、その検出した人物の関節の位置を特定し、その特定した関節の位置に基づいて人物の体の部位の範囲を決定し、その決定した部位の範囲を示した画像信号とする画像処理を行う。
そして、画像処理で得られた画像信号を表示させる表示処理を行い、その画像処理で決定した体の部位の範囲を変化させる指示を行う操作処理を行う。
【0010】
このようにしたことで、撮像して得た画像信号から関節位置を推定した結果に基づいて、撮像した人物の体型が判るようになる。その体型が画像として表示されるようになり、操作に基づいて表示される体型が変更できるようになる。
【発明の効果】
【0011】
本発明によると、撮像した人物の体型が表示画像から判るようになる。そして、その表示された体型が、操作に基づいて変更できることで、撮像した人物が痩せた場合や太った場合の様子が表示されるようになり、ダイエットなどを行う上での手助けになる。本発明を構成する各部は、比較的演算処理の少ない処理で実現でき、例えば携帯電話端末の如き端末装置に容易に組み込むことが可能となる。
【図面の簡単な説明】
【0012】
【図1】本発明の第一の実施の形態の例の端末装置の内部構成を示すブロック図である。
【図2】本発明の第一の実施の形態の例による処理例を示すフローチャートである。
【図3】本発明の第一の実施の形態の例による正面画像、横面画像、背景画像の画像例を示す説明図である。
【図4】本発明の第一の実施の形態の例による背景差分結果の画像例を示す説明図である。
【図5】本発明の第一の実施の形態の例による肩、肘、手、腰、膝、ももの位置を検出するための画像例を示す説明図である。
【図6】本発明の第一の実施の形態の例による正面画像の関節の位置を特定した結果の画像例を示す説明図である。
【図7】本発明の第一の実施の形態の例による顔の大きさの比較したときの画像例を示す説明図である。
【図8】本発明の第一の実施の形態の例による画像間の比率と正面画像の長さを用いて横画像の関節位置を特定したときの画像例を示す説明図である。
【図9】本発明の第一の実施の形態の例による特定した結果から求められる各部位の範囲の画像例を示す説明図である。
【図10】本発明の第一の実施の形態の例による各部位の範囲より体の各部位の領域の画像例を示す説明図である。
【図11】本発明の第一の実施の形態の例による編集前の画像とポインタの画像例を示す説明図である。
【図12】本発明で第一の実施の形態の例によるポインタ操作をして画像を編集した場合の画像例を示す説明図である。
【図13】本発明の第一の実施の形態の例による画像編集結果とそのアドバイスの画像例を示す説明図である。
【図14】本発明の第一の実施の形態の例によるダイエット予定表の画像例を示す説明図である。
【図15】本発明の第二の実施の形態における処理例を示すフローチャートである。
【発明を実施するための形態】
【0013】
<第一の実施の形態>
以下、本発明の第一の実施の形態の例を、図1〜14を参照して説明する。本実施の形態の例は、カメラ付携帯電話端末を利用したダイエット支援システムに適用した例である。
【0014】
図1は、本発明の第一の実施形態例であるカメラ付携帯電話端末100の内部構成例を示すブロック図である。カメラ付携帯電話端末100は、マイクロプロセッサ等よりなる制御部120を備え、制御部120は、制御信号が伝送される制御ライン150又はデータが伝送されるデータライン160を介して、カメラ付携帯電話端末100内の各部と接続されている。そして、制御部120はこれらのラインを通して各部と通信を行い、各部の動作制御を行う。
【0015】
制御ライン150には、通信回路102と、表示部107と、操作部106と、メモリ105と、撮像制御部202が接続されている。また、データライン160には、テキストデータ、画像データ、音声データ等の種々の形態のデータを伝送されている。
【0016】
通信回路102にはアンテナ101が接続してあり、通信回路102は、アンテナ101で得られた電波を復調して音声信号や映像信号を取り出す。また、データライン160を介して入力された音声信号を音声出力するスピーカ104に供給する。さらに周囲の音声を拾って音声信号に変換するマイクロフォン103から伝送された音声信号や制御部120で制御された信号を、電波に変換してアンテナ101に出力する処理を行う。
【0017】
表示部107は、液晶パネル等で構成される表示パネルと、その表示パネルの駆動部とで構成され、着信した電話の電話番号や、アンテナ101を通して送受信される電子メールの文章等や、カメラ201からの撮像が表示される。操作部106は、数字などのダイヤルキーやその他の各種機能キーで構成される。そして、それらのキーがユーザに押下された場合に、操作内容に応じた操作信号を生成して制御部120に供給する。
【0018】
メモリ105は、ROM(Read Only Memory)やRAM(Random Access Memory)などの記憶手段で構成される。メモリ105には、カメラ付携帯電話端末100の制御に必要なソフトウェア等が格納されている。このソフトウェアの1つとして、後述するカメラ画像から理想の体系への画像を作成と解析を行い、その解析したデータからダイエット予定表と最適な運動方法の提示をするソフトウェアが予め用意してある。また、メモリ105には、制御部120で制御が行われる際に一時的に発生するデータ等も格納される。
【0019】
撮像制御部202は、ユーザを撮像するカメラ201が接続してあり、制御部120からの撮影指示に応じてカメラ201を用いて撮影処理を実行し、撮影処理により得られた画像データをメモリ105に記憶する。制御部120は、撮像して得た画像データの解析や変換などを行う画像処理部としての機能も備える。
【0020】
次に、図2のフローチャートを参照して、カメラ201が撮影した画像データから理想の体系への画像を作成と解析を行い、その解析したデータからダイエット予定表と最適な運動方法の提示をするまでの処理例について説明する。この図2のフローチャートに示した処理は、図1の構成で示した制御部120などの制御で実行されるものである。
【0021】
まず、データの入力が、最初の入力又は再入力か、もしくは、前回保存しているデータを閲覧するかをユーザに操作部の操作で選択させ、その結果を判断する(ステップS101)。
【0022】
ここで、初入力又は再入力であった場合は、ユーザの情報を入力する(ステップS102)。ここでは、ユーザの情報とは、ユーザ名、体重、身長、ダイエット期間、就寝時間を示す情報である。
【0023】
次に、ユーザの正面画像、横面画像と背景画像を同一条件の基で撮像する(ステップS103)。このときの正面画像のユーザの姿勢は、両手を左右に開いてまっすぐ伸ばし、両足を開いた状態、つまり身体を大の字にした状態である(図3(a)を参照)。また、横面画像のユーザの姿勢は、身体自体を真横に向け、両手をまっすぐ目の前に伸ばした状態である(図3(b)を参照)。背景画像は、正面画像と横面画像を撮像した同一条件(同一場所)で、ユーザのみを外して背景だけを撮像した画像である(図3(c)を参照)。
【0024】
その後、正面画像及び横面画像と、背景画像との差分の画像を得る。これにより、正面画像のシルエット画像と、横面画像のシルエット画像が作成される(ステップS104)。図4(a)は、正面画像のシルエット画像の例を示し、図4(b)は、横面画像のシルエット画像の例を示す。
【0025】
次に、作成された正面画像のシルエット画像を解析する。この解析状態を示したのが図5である。
【0026】
まず、図5(a)に示すように正面画像のシルエット画像がある状態を想定すると、図5(b)に示すように、正面画像のシルエット画像から重心位置(2−1)を決定する。次に、重心位置(2−1)から、左右垂直上にある胴体の左右の末端位置(2−2)を決定する。その後、正面画像のシルエット画像から、股の位置(2−3)、肩の位置(2−4)、頭の先端の位置(2−5)のそれぞれの位置を決定する。そして、その位置関係から胴体部分の矩形領域(2−6)を決定する。
【0027】
次に、図5(c)に示すように、正面画像のシルエット画像から首を含む頭部の重心位置(3−1)を決定する。頭部の重心位置(3−1)から、左右垂直上にある頭部の左右の末端位置(3−2)を決定する。その後、肩の位置(2−4)と頭の先端の位置(2−5)と頭部の左右の末端位置(3−2)の位置関係から、頭部の矩形領域(3−3)を決定する。
【0028】
さらに、重心位置(2−1)と股の位置(2−3)と頭部の矩形領域(3−3)の位置関係から、首と胴体をつなぐ位置(3−4)を決定する。また、頭部の矩形領域(3−3)から、頭部の長さ(3−5)を決定することができる。
【0029】
次に、図5(d)に示すように、胴体部分の矩形領域(2−6)の右上の角の位置から、頭部の長さ(3−5)に所定の肩パラメータ(Parameta_kata)をかけた長さ分を下げた位置を、右肩の関節の位置(4−1)と決定する。なお、所定の肩パラメータ(Parameta_kata)とは、人間の身体の各部位の長さは頭身を用いて表すことができるということにより、設定された値である。
【0030】
その後、図5(e)に示すように、右肩の関節の位置(4−1)を基に、右の肘関節(4−2)の位置を以下の方法で決定する。
【0031】
(x、y)は正面画像のシルエット画像の左上を原点とする画像座標系、(xr、yr)は肩関節の位置(4−1)の座標(X、Y)を原点とする極座標系とする。極座標系と直交座標系の関係式は以下の式で表される。
xr=r×sinθ、yr=r×cosθ
よって、この極座標系の位置(r、θ)を用いて画像座標系の位置(x、y)を表すと、
x=X+xr、y=Y−yr
x=X+r×sinθ、y=Y−r×cosθ
となる。
【0032】
まずは、右肩の関節の位置(4−1)から右肘の関節の位置(4−2)を決定する場合の例を示す。
まず、頭の大きさより肩関節から肘関節までの長さを推定して、rtとする。節点探索は、右肩の関節の位置(4−1)の座標(X、Y)を原点とする極座標系を基準に、90≦θ≦240の範囲で行う。
【0033】
その円周上の探索範囲内で、二つの節点を検出することができる。その検出した節点の上部のほうの位置(4−b)の座標を(x、y)=(xb、yb)、(r、θ)=(rt、θb)とし、下部のほうの位置(4−c)の座標を(x、y)=(xc、yc)、(r、θ)=(rt、θc)とする。
【0034】
そして、円周上で二つの節点の中点にある位置を右肘の関節の位置(4−2)の座標(xcenter、ycenter)を次の数1式により決定する。
【0035】
【数1】
【0036】
次に、右肘の関節の位置(4−2)から右手の位置(4−3)を決定する場合の例を示す。
【0037】
まず、頭の大きさより肩関節から肘関節までの長さを推定して、rtとする。節点探索は、右肘の関節の位置(4−2)の座標(xcenter、ycenter)を原点とする極座標系を基準に、90≦θ≦240の範囲で行う。
【0038】
その円周上の探索範囲内で、二つの節点を検出することができる。その検出した節点の上部のほうの位置の座標を(x、y)=(xb2、yb2)、(r、θ)=(rt、θb2)とし、下部のほうの位置の座標を(x、y)=(xc2、yc2)、(r、θ)=(rt、θc2)とする。
【0039】
そして、円周上で二つの節点の中点にある位置を右手の位置(4−3)の座標(xcenter2、ycenter2)を次の数2式により決定する。
【0040】
【数2】
【0041】
同様な方法で、左の肩、肘、手の位置を決定する。
【0042】
次に、図5(f)に示すように、胴体の腰の位置(5−1)を求める。これは、股の位置(2−3)の座標(xhj、yhj)の位置から、Y軸の上方向に頭部の長さ(3−5)に所定の腰パラメータ(Parameta_koshi)をかけた長さ分を上げた位置を、胴体の腰の位置(5−1)と決定する。なお、所定の腰パラメータ(Parameta_koshi)とは、人間の身体の各部位の長さは頭身を用いて表すことができるということにより、設定された値である。
【0043】
そして、右肘の関節の位置(4−2)を求めるときに用いた同様な方法で、右膝の関節の(5−2)、右足の位置(5−3)を決定する。
【0044】
(x、y)は正面画像のシルエット画像の左上を原点とする画像座標系、(xfr、yfr)は胴体の腰の位置(5−1)の座標(Xf、Yf)を原点とする極座標系とする。極座標系と直交座標系の関係式は以下の式で表される。
xfr=r×sinθf、yfr=r×cosθf
よって、この極座標系の位置(rf、θf)を用いて画像座標系の位置(x、y)を表すと、x=Xf+xfr、y=Yf−yfr
x=Xf+r×sinθf、y=Yf−r×cosθf
となる。
【0045】
まずは、胴体の腰の位置(5−1)から右膝の関節の位置(5−2)を決定する場合の例を示す。
まず、頭の大きさより腰の位置(5−1)から膝の関節までの長さを推定して、rftとする。節点探索は、胴体の腰の位置(5−1)の座標(Xf、Yf)を原点とする極座標系を基準に、180≦θ≦270の範囲で行う。
【0046】
その円周上の探索範囲内で、二つの節点を検出することができる。その検出した節点の右側の位置の座標を(x、y)=(xfb、yfb)、(r、θ)=(rft、θfb)とし、左側の位置の座標を(x、y)=(xfc、yfc)、(r、θ)=(rft、θfc)とする。
そして、円周上で二つの節点の中点にある位置を右膝の関節の位置(5−2)の座標(xR−Knee、yR−Knee)を次の数3式により決定する。
【0047】
【数3】
【0048】
次に、右膝の関節の位置(5−2)から右足の位置(5−3)を決定する場合の例を示す。
【0049】
まず、頭の大きさより肩関節から肘関節までの長さを推定して、rftとする。節点探索は、右膝の関節の位置(5−2)の座標(xR−Knee、yR−Knee)を原点とする極座標系を基準に、180≦θ≦270の範囲で行う。
【0050】
その円周上の探索範囲内で、二つの節点を検出することができる。その検出した節点の上部のほうの位置の座標を(x、y)=(xfb2、yfb2)、(r、θ)=(rft、θfb2)とし、下部のほうの位置の座標を(x、y)=(xfc2、yfc2)、(r、θ)=(rft、θfc2)とする。
【0051】
そして、円周上で二つの節点の中点にある位置を右手の位置(4−3)の座標(xR−Knee2、yR−Knee2)を次の数4式により決定する。
【0052】
【数4】
【0053】
同様な方法で、左の膝、左足の位置を決定する。
【0054】
以上により、正面画像から、各関節の位置の推定ができる(ステップS105)。図6の画像は、このようにして各関節の位置の推定を行って、各関節の位置を表示させた例である。
【0055】
次に、正面画像の関節位置より、横画像の各部位の範囲の決定を行う。
【0056】
まず、図7に示すように、正面画像での顔の領域と横面画像での顔の領域を決定する。このときの正面画像での顔の画像の縦の長さを(7−1)、横画像での顔の縦の長さを(7−2)とする。正面画像での顔の縦の長さを基準とした横画像の顔の縦の長さの比率(Ratio)は、
Ratio={(7−2)/(7−1)}
となる。
【0057】
次に、図8に示すように、各関節の位置の特定した正面画像から、頭の先端の位置(2−5)を基準として、各関節位置までの距離を求める。頭の先端の位置(2−5)から肩の位置(2−4)までの長さを(8−1)、頭の先端の位置(2−5)から腰の位置(5−1)までの長さを(8−2)、頭の先端の位置(2−5)から膝の位置(5−2)までの長さを(8−3)とする。
そして、この各関節の位置と比率(Ratio)から、横画像の各関節位置の長さが決定することができる。
(8−4)=(8−1)×Ratio
(8−5)=(8−2)×Ratio
(8−6)=(8−3)×Ratio
(8−4)は頭の先端の位置から肩の位置までの長さ、(8−5)は頭の先端の位置から腰の位置までの長さ、(8−6)は頭の先端の位置から膝の位置までの長さとなる。
【0058】
これにより、図9に示すように、横面画像での肩、腰、膝の位置が決定することができる。さらに、位置が確定されたことにより、図10に示したように、横面画像を腕、おなか、もも、背中、お尻の5つの部位範囲にする(ステップS106)。例えば、肩の位置から突き出ている部分を腕の部位とする。身体の正中線の前面では、肩の位置から腰までの部分をおなかの部位とし、腰の位置から膝までの部分をももの部位とする。そして、身体の正中線の後面では、肩の位置から腰までの部分を背中の部位とし、腰の位置から膝までの部分をお尻という部位とする。
【0059】
さらに、関節位置や各部位に区分けされたことにより、横面画像の部位ごとの単位画素当りの体重を計算する(ステップS107)。ここでは、1画素(1ピクセル)当りの体重を計算する。ただし、体重は部位ごとに一様ではないため、体重配分は考慮されているものとする。
【0060】
次に、各部位に範囲分けされた横面画像を編集して、理想の体型画像にする作業を行う(ステップS108)。例えば、図11に示すように、編集する横面画像上にあるポインタを動かして各部位のエリアの部分をクリックすることで、画像の体の部分が増減する。予め、各部位の画像の画素数を調べておき、クリックした回数に応じてその画素数を変化させる。つまり、この増減の操作を行うことで、自身の理想の体型画像を作成することができるということである。
【0061】
図12は、おなか、背中、お尻、もも、腕の各部位を操作部106で操作した場合の画像例を示したものである。
【0062】
図12(a)の例は、操作部106で操作しているポインタでおなかの部位を指定して、キーを押下げすることで、おなかの部位の画素数が減ったことを示している操作前後の画像例である。
【0063】
図12(b)の例は、操作部106で操作しているポインタで背中の部位を指定して、キーを押下げすることで、おなかの部位の画素数が減ったことを示している操作前後の画像例である。
【0064】
図12(c)の例は、操作部106で操作しているポインタでお尻の部位を指定して、キーを押下げすることで、おなかの部位の画素数が減ったことを示している操作前後の画像例である。
【0065】
図12(d)の例は、操作部106で操作しているポインタでももの部位を指定して、キーを押下げすることで、おなかの部位の画素数が減ったことを示している操作前後の画像例である。
【0066】
図12(e)の例は、操作部106で操作しているポインタで腕の部位を指定して、キーを押下げすることで、おなかの部位の画素数が減ったことを示している操作前後の画像例である。
【0067】
初めに撮像した横面画像と編集した横面画像を比較して、各部位の画素数の変化量を算出する(ステップS109)。その後、部位ごとの1[pixel]あたりの体重と各部位の画素数の変化量から、部位ごとの体重を算出する。そして、部位ごとの体重を合計した体重を算出する(ステップS110)。
【0068】
その部位ごとに変化した体重の計算式の例は、以下に示す。
初めに撮像した横面画像からの各部位の画素の総数(Part_Pixel_Org_i)[pixel]と編集した横面画像からの各部位の画素数(Part_Pixel_Target_i)[pixel]より、各部位の差分の画素数(Part_Pixel_Change_i)[pixel]が求まる。
(Part_Pixel_Change_i)=[(Part_Pixel_Org_i)―(Part_Pixel_Target_i)]
【0069】
次に、部位ごとの1[pixel]あたりの重さ(Part_Pixel_Per_Weight_i)を次の数5式により計算する。
【0070】
【数5】
【0071】
なお、(Weight_Org)は初めにユーザ情報として入力した体重とし、(Parameter_i)は部位ごとのパラメータとなる。
【0072】
この部位ごとの1[pixel]あたりの重さ(Part_Pixel_Per_Weight_i)と各部位の差分の画素数(Part_Pixel_Change_i) [pixel]より、部位ごとの差分の体重量(Weight_Part_Down_i)[kg]が計算できる。
(Weight_Part_Down_i)=(Part_Pixel_Change_i)×(Part_Pixel_Per_Weight_i)
【0073】
さらに、部位ごとの差分の体重量(Weight_Part_Down_i)[kg]を全て合計することで、体全体での差分の体重量(Weight_Down)[kg]が次の数6式により算出される。
【0074】
【数6】
【0075】
なお、各々の特徴量の添え字iは、各部位の番号を示している。例えば、i=1は腕、i=2はおなか、i=3は膝、i=4はせなか、i=5はお尻を示している。
【0076】
また、上述で算出された差分の体重とカロリの関係は、一般的に以下の式で成り立つ。
8000[kcal]=1[kg]
これにより、部位ごとの差分の体重量から換算されるカロリ量(Kcal_Part_Down_i)[kcal]と、体全体からの差分の体重量から換算されるカロリ量(Kcal_Down)[kcal]が、以下の式から求まる。
(Kcal_Part_Down_i)=(Weight_Part_Down_i)×8000
(Kcal_Down)=(Weight_Down)×8000
【0077】
次に、部位ごとの差分の体重量と体全体からの差分の体重量及びそれらのカロリ量より、ダイエット予定表を作成する(ステップS111)そして、このダイエット予定表から、一日あたりの運動目標カロリを推定する(ステップS112)。
【0078】
その後、編集した横面画像をカメラ付携帯電話100の表示画面に表示する。さらに、図13に示すように、部位の中で最も変化があった部位と体全体からの差分の体重量を表示する。例えば、最も変化があった部位が順に「おなか、せなか、お尻」だった場合は、「1位はおなか、2位はせなか、3位はお尻」の表示と1−3位までを総合した体重量をも表示させる。
【0079】
次に、カメラ付携帯電話端末100の表示画面には、現在の横面画像、編集した横面画像、ダイエット予定表及び一日あたりの運動目標カロリを同時に表示する(ステップS113、図14を参照)。同時に、表示させたデータを保存する(ステップS114)。
【0080】
それから、各部位の変化があった範囲を基に最適な運動方法の提案を受けることができる(ステップS301)。まず、各部位の変化のあった範囲がどのくらいの変化があったかを認識する(ステップS302)。例えば、その変化量を部位ごとの差分の体重量から換算されるカロリ量(Kcal_Part_Down_i)[kcal]としてもよい。
そして、その各部位の変化量を基に、理想の体型になるために効果がある最適な運動方法を部位ごとに提案する(ステップS303)。
【0081】
一方、図2のフローチャートのステップS101において、前回保存しているデータを閲覧することを選択した場合は、前回保存した現在の横面画像、編集した横面画像、ダイエット予定表及び一日あたりの運動目標カロリを再表示する(ステップS201)。そして、再度、最適な運動方法の提案を閲覧することができる。
【0082】
これにより、同一条件において撮像された正面画像、横面画像、背景画像に本発明の部位検出アルゴリズムを適用させることで、ユーザの身体各部位を容易に特定することができる。つまり、本実施の形態の例の部位検出アルゴリズムは制御情報の容量が小さく、簡単な計算式となったことである。そして、本実施の形態で適用したような携帯電話端末などの限られた資源しか持たない、携帯用の情報処理機器にも容易に身体各部位を特定する機能を搭載することが可能となる。
【0083】
また、横面画像を身体各部位に特定することができることで、ポインタ操作で横面画像を理想の体型に簡単に編集することができる。そして、編集した横面画像から、理想の体型になるための減らす体重や一日あたりの消費カロリ、ダイエット予定表を作成、表示されることにより、ユーザに強い視覚的な刺激を与えることができる。その結果、ユーザのダイエットに効果的に寄与することが可能となる。
【0084】
さらに、横面画像、編集した横面画像、一日あたりの消費カロリ、ダイエット予定表は、メモリ105に記録されるので、いつでも再閲覧は可能である。
【0085】
<第二の実施の形態>
以下に、図15を参照して、本発明の第二の実施の形態の例について説明する。
本実施の形態の例は、第一の実施の形態の例で説明した処理構成に、ユーザの新たな情報を追加することで予定表の状況推移がわかる機能を加えた場合の例である。本例におけるシステムの内部構成は、図1に示した構成と同一であるため、システム構成については説明を省略する。
【0086】
図15のフローチャートを参照して、カメラ201が撮影した画像データから理想の体系への画像を作成と解析を行い、その解析したデータからダイエット予定表と最適な運動方法の提示をするまでの処理例について説明する。
【0087】
まず、データの入力が、最初の入力又は再入力か、もしくは、前回保存しているデータを閲覧するかをユーザに操作部の操作で選択させ、その結果を判断する(ステップS101)。
【0088】
ステップS101の判断で初入力又は再入力をする場合には、処理終了までは、第一の実施の形態の例で説明した図2の処理と同一であるために、ここでは処理の説明を省略する。
【0089】
ステップS101の判断で、前回保存しているデータを閲覧することを選択した場合は、前回保存したデータを呼び出す(ステップS202)。
【0090】
次に、ユーザの正面画像と横面画像と背景画像を同一条件の基で撮像する(ステップS203)。このときの正面画像と横面画像と背景画像は、例えば図3に示した画像である。
【0091】
その後、図4に示したように、正面画像と背景画像との差分から正面画像のシルエット画像を得、横面画像と背景画像との差分から横面画像のシルエット画像を得る(ステップS204)。
【0092】
次に、作成された正面画像のシルエット画像を解析する。
【0093】
まず、図5(b)に示すように、正面画像のシルエット画像から重心位置(2−1)を決定する。次に、重心位置(2−1)から、左右垂直上にある胴体の左右の末端位置(2−2)を決定する。その後、正面画像のシルエット画像から、股の位置(2−3)、肩の位置(2−4)、頭の先端の位置(2−5)のそれぞれの位置を決定する。そして、その位置関係から胴体部分の矩形領域(2−6)を決定する。
【0094】
次に、図5(c)に示すように、正面画像のシルエット画像から首を含む頭部の重心位置(3−1)を決定する。頭部の重心位置(3−1)から、左右垂直上にある頭部の左右の末端位置(3−2)を決定する。その後、肩の位置(2−4)と頭の先端の位置(2−5)と頭部の左右の末端位置(3−2)の位置関係から、頭部の矩形領域(3−3)を決定する。
【0095】
さらに、重心位置(2−1)と股の位置(2−3)と頭部の矩形領域(3−3)の位置関係から、首と胴体をつなぐ位置(3−4)を決定する。また、頭部の矩形領域(3−3)から、頭部の長さ(3−5)を決定する。
【0096】
次に、図5(d)に示すように、胴体部分の矩形領域(2−6)の右上の角の位置から、頭部の長さ(3−5)に所定の肩パラメータ(Parameta_kata)をかけた長さ分を下げた位置を、右肩の関節の位置(4−1)と決定する。なお、所定の肩パラメータ(Parameta_kata)とは、人間の身体の各部位の長さは頭身を用いて表すことができるということにより、設定された値である。
【0097】
その後、右肩の関節の位置(4−1)を基に、右の肘関節(4−2)の位置を以下の方法で決定する。
【0098】
(x、y)は正面画像のシルエット画像の左上を原点とする画像座標系(xr、yr)は肩関節の位置(4−1)の座標(X、Y)を原点とする極座標系とする。極座標系と直交座標系の関係式は以下の式で表される。
xr=r×sinθ、yr=r×cosθ
よって、この極座標系の位置(r、θ)を用いて画像座標系の位置(x、y)を表すと、
x=X+xr、y=Y−yr
x=X+r×sinθ、y=Y−r×cosθ
となる。
【0099】
まずは、右肩の関節の位置(4−1)から右肘の関節の位置(4−2)を決定する場合の例を示す。
まず、頭の大きさより肩関節から肘関節までの長さを推定して、rtとする。節点探索は、右肩の関節の位置(4−1)の座標(X、Y)を原点とする極座標系を基準に、90≦θ≦240の範囲で行う。
【0100】
その円周上の探索範囲内で、二つの節点を検出することができる。その検出した節点の上部のほうの位置(4−b)の座標を(x、y)=(xb、yb)、(r、θ)=(rt、θb)とし、下部のほうの位置(4−c)の座標を(x、y)=(xc、yc)、(r、θ)=(rt、θc)とする。
【0101】
そして、円周上で二つの節点の中点にある位置を右肘の関節の位置(4−2)の座標(xcenter、ycenter)を次の数7式により決定する。
【0102】
【数7】
【0103】
次に、右肘の関節の位置(4−2)から右手の位置(4−3)を決定する場合の例を示す。
【0104】
まず、頭の大きさより肩関節から肘関節までの長さを推定して、rtとする。節点探索は、右肘の関節の位置(4−2)の座標(xcenter、ycenter)を原点とする極座標系を基準に、90≦θ≦240の範囲で行う。
【0105】
その円周上の探索範囲内で、二つの節点を検出することができる。その検出した節点の上部のほうの位置の座標を(x、y)=(xb2、yb2)、(r、θ)=(rt、θb2)とし、下部のほうの位置の座標を(x、y)=(xc2、yc2)、(r、θ)=(rt、θc2)とする。
【0106】
そして、円周上で二つの節点の中点にある位置を右手の位置(4−3)の座標(xcenter2、ycenter2)を次の数8式により決定する。
【0107】
【数8】
【0108】
同様な処理手順で、左の肩、肘、手の位置を決定する。
【0109】
次に、図5(f)に示すように、胴体の腰の位置(5−1)を求める。これは、股の位置(2−3)の座標(xhj、yhj)の位置から、Y軸の上方向に頭部の長さ(3−5)に所定の腰パラメータ(Parameta_koshi)をかけた長さ分を上げた位置を、胴体の腰の位置(5−1)と決定する。なお、所定の腰パラメータ(Parameta_koshi)とは、人間の身体の各部位の長さは頭身を用いて表すことができるということにより、設定された値である。
【0110】
そして、右肘の関節の位置(4−2)を求めるときに用いた同様な方法で、右膝の関節の(5−2)、右足の位置(5−3)を決定する。
【0111】
(x、y)は正面画像のシルエット画像の左上を原点とする画像座標系、(xfr、yfr)は胴体の腰の位置(5−1)の座標(Xf、Yf)を原点とする極座標系とする。極座標系と直交座標系の関係式は以下の式で表される。
xfr=r×sinθf、yfr=r×cosθf
よって、この極座標系の位置(rf、θf)を用いて画像座標系の位置(x、y)を表すと、
x=Xf+xfr、y=Yf−yfr
x=Xf+r×sinθf、y=Yf−r×cosθf
となる。
【0112】
まずは、胴体の腰の位置(5−1)から右膝の関節の位置(5−2)を決定する場合の例を示す。
まず、頭の大きさより腰の位置(5−1)から膝の関節までの長さを推定して、rftとする。節点探索は、胴体の腰の位置(5−1)の座標(Xf、Yf)を原点とする極座標系を基準に、180≦θ≦270の範囲で行う。
【0113】
その円周上の探索範囲内で、二つの節点を検出することができる。その検出した節点の右側の位置の座標を(x、y)=(xfb、yfb)、(r、θ)=(rft、θfb)とし、左側の位置の座標を(x、y)=(xfc、yfc)、(r、θ)=(rft、θfc)とする。
そして、円周上で二つの節点の中点にある位置を右膝の関節の位置(5−2)の座標(xR−Knee、yR−Knee)を次の数9式により決定する。
【0114】
【数9】
【0115】
次に、右膝の関節の位置(5−2)から右足の位置(5−3)を決定する場合の例を示す。
まず、頭の大きさより肩関節から肘関節までの長さを推定して、rftとする。節点探索は、右膝の関節の位置(5−2)の座標(xR−Knee、yR−Knee)を原点とする極座標系を基準に、180≦θ≦270の範囲で行う。
【0116】
その円周上の探索範囲内で、二つの節点を検出することができる。その検出した節点の上部のほうの位置の座標を(x、y)=(xfb2、yfb2)、(r、θ)=(rft、θfb2)とし、下部のほうの位置の座標を(x、y)=(xfc2、yfc2)、(r、θ)=(rft、θfc2)とする。
【0117】
そして、円周上で二つの節点の中点にある位置を右手の位置(4−3)の座標(xR−Knee2、yR−Knee2)を次の数10式により決定する。
【0118】
【数10】
【0119】
同様な処理手順で、左の膝、左足の位置を決定する。
【0120】
以上により、図6に示すように、正面画像から、各関節の位置の推定ができる(ステップS205)。
【0121】
次に、正面画像の関節位置より、横画像の各部位の範囲の決定を行う。
【0122】
まず、図7に示すように、正面画像での顔の領域と横面画像での顔の領域を決定する。このときの正面画像での顔の画像の縦の長さを(7−1)、横画像での顔の縦の長さを(7−2)とする。正面画像での顔の縦の長さを基準とした横画像の顔の縦の長さの比率(Ratio)は、
Ratio={(7−2)/(7−1)}
となる。
【0123】
次に、各関節の位置の特定した正面画像から、頭の先端の位置(2−5)を基準として、各関節位置までの距離を求める。即ち、図8に示すように、頭の先端の位置(2−5)から肩の位置(2−4)までの長さを(8−1)、頭の先端の位置(2−5)から腰の位置(5−1)までの長さを(8−2)、頭の先端の位置(2−5)から膝の位置(5−2)までの長さを(8−3)とする。
そして、この各関節の位置と比率(Ratio)から、横画像の各関節位置の長さが決定することができる。
(8−4)=(8−1)×Ratio
(8−5)=(8−2)×Ratio
(8−6)=(8−3)×Ratio
(8−4)は頭の先端の位置から肩の位置までの長さ、(8−5)は頭の先端の位置から腰の位置までの長さ、(8−6)は頭の先端の位置から膝の位置までの長さとなる。
【0124】
これにより、図9に示すように、横面画像での肩、腰、膝の位置が決定することができる(図9参照)。さらに、位置が確定されたことにより、横面画像を腕、おなか、もも、背中、お尻の5つの部位範囲にすることができる。例えば、肩の位置から突き出ている部分を腕の部位とする。身体の正中線の前面では、肩の位置から腰までの部分をおなかの部位とし、腰の位置から膝までの部分をももの部位とする。そして、図10に示すように、身体の正中線の後面では、肩の位置から腰までの部分を背中の部位とし、腰の位置から膝までの部分をお尻という部位とする(ステップS206)。
【0125】
新たに撮像した横面画像と保存したデータにある編集した横面画像を比較して、各部位の画素数の変化量を算出する(ステップS207)。その後、保存したデータにある部位ごとの単位画素あたり(ここでは1画素あたり)の体重と各部位の画素数の変化量から、部位ごとの体重を算出する。そして、部位ごとの体重を合計した体重を算出する(ステップS208)。
【0126】
その部位ごとに変化した体重の計算式の例は、以下に示す。
新たに撮像した横面画像からの各部位の画素の総数(Part_Pixel_Org2_i)[pixel]と保存したデータにある編集した横面画像からの各部位の画素数(Part_Pixel_Target_i)[pixel]より、各部位の差分の画素数(Part_Pixel_Change2_i)[pixel]が求まる。
(Part_Pixel_Change2_i)=[(Part_Pixel_Org2_i)―(Part_Pixel_Target_i)]
【0127】
保存したデータにある部位ごとの1[pixel]あたりの重さ(Part_Pixel_Per_Weight_i)と各部位の差分の画素数(Part_Pixel_Change2_i)[pixel]より、部位ごとの差分の体重量(Weight_Part_Down2_i)[kg]が計算できる。
(Weight_Part_Down2_i)=(Part_Pixel_Change2_i)×(Part_Pixel_Per_Weight_i)
【0128】
さらに、部位ごとの差分の体重量(Weight_Part_Down2_i)[kg]を全て合計することで、体全体での差分の体重量(Weight_Down2)[kg]が次の数11式により算出される。
【0129】
【数11】
なお、各々の特徴量の添え字iは、各部位の番号を示している。例えば、i=1は腕、i=2はおなか、i=3は膝、i=4はせなか、i=5はお尻を示している。
【0130】
また、上述で算出された差分の体重とカロリの関係は、一般的に以下の式で成り立つ。
8000[kcal]=1[kg]
これにより、部位ごとの差分の体重量から換算されるカロリ量(Kcal_Part_Down2_i)[kcal]と、体全体からの差分の体重量(Kcal_Down2)[kcal]が、以下の式から求まる。
(Kcal_Part_Down2_i)=(Weight_Part_Down2_i)×8000
(Kcal_Down2)=(Weight_Down2)×8000
【0131】
次に、部位ごとの差分の体重量と体全体からの差分の体重量及びそれらのカロリ量より、現在の部位ごとの体重と現在の体重の情報をダイエット予定表に追記する(ステップS209)。さらに、このダイエット予定表から、一日あたりの運動目標カロリを再度、推定する(ステップS210)。
【0132】
次に、カメラ付携帯電話端末100の表示画面は、図14に示すように、新たに撮像した横面画像、保存したデータにある編集した横面画像、新たな体重の情報を追記したダイエット予定表及び再度推定した一日あたりの運動目標カロリを同時に表示する(ステップS211)。同時に、表示させたデータを保存する(ステップS212)。
【0133】
それから、新たに撮像した横面画像と保存したデータにある編集した横面画像との比較により、各部位の変化があった範囲を基に最適な運動方法の提案を受けることができる(ステップS301)。まず、各部位の変化のあった範囲がどのくらいの変化があったかを認識する(ステップS302)。例えば、その変化量を部位ごとの差分の体重量から換算されるカロリ量(Kcal_Part_Down2_i)[kcal]としてもよい。
そして、図13に示すように、その各部位の変化量を基に、理想の体型になるために効果がある最適な運動方法を部位ごとに提案する(ステップS303)。
【0134】
これにより、同一条件において撮像された正面画像、横面画像、背景画像に、本実施の形態での部位検出アルゴリズムを適用させることで、ユーザの身体各部位を容易に特定することができる。つまり、本実施の形態による部位検出アルゴリズムは制御情報の容量が小さく、簡単な計算式となったことである。そして、携帯電話端末末などの限られた資源しか持たない機器にも身体各部位を特定する機能を搭載することが可能となる。
【0135】
また、横面画像を身体各部位に特定することができることで、ポインタ操作で横面画像を理想の体型に簡単に編集することができる。そして、編集した横面画像から、理想の体型になるための減らす体重や一日あたりの消費カロリ、ダイエット予定表を作成、表示されることにより、ユーザに強い視覚的な刺激を与えることができる。その結果、ユーザのダイエットに効果的に寄与することが可能となる。
【0136】
さらに、再閲覧のときには、現状での正面画像、横面画像、背景画像の撮像を行い、本実施の形態の部位検出アルゴリズムを適用させて、ユーザの身体各部位の状況を確認することができる。そして、現状のユーザ身体各部位の状況をダイエット予定表に記載を行うことで、ユーザは正確かつ客観的に自己の身体状態または体型的な変化を把握することが可能となる。
【符号の説明】
【0137】
100…カメラ付携帯電話、101…アンテナ、102…通信回路、103…マイクロフォン、104…スピーカ、105…メモリ、106…操作部、107…表示部、120…制御部、150…制御ライン、160…データライン、201…カメラ、202…撮像制御部
【特許請求の範囲】
【請求項1】
被写体を撮像して画像信号を出力するカメラ部と、
前記カメラ部が出力する画像信号より、前記被写体に含まれる人物を検出し、その検出した人物の関節の位置を特定し、その特定した関節の位置に基づいて前記人物の体の部位の範囲を決定し、その決定した前記部位の範囲を示した画像信号とする画像処理部と、
前記画像処理部で処理された画像信号による画像を表示する表示部と、
前記画像処理部で決定した前記体の部位の範囲を変化させる指示の操作を行う操作部と
を備えた端末装置。
【請求項2】
前記カメラ部で撮像する画像は、特定の人物の正面画像と横面画像と背景画像である
請求項1記載の端末装置。
【請求項3】
前記画像処理部は、前記カメラ部が出力する画像信号より、前記被写体に含まれる人物のシルエット画像を取得し、そのシルエット画像から関節の位置を特定する
請求項1記載の端末装置。
【請求項4】
前記画像処理部は、前記シルエット画像を複数の画像領域に区分し、
前記区分した複数の画像領域ごとに1画素あたりの重量を算出し、前記人物の体重を推定する計算処理部を備えた
請求項3記載の端末装置。
【請求項5】
前記操作部での操作により、前記それぞれの画像領域毎の増減を行う
請求項4記載の端末装置。
【請求項6】
前記領域ごとの変化重量を合計した重量と設定された日数から、単位日時あたりの目標消費カロリを算出するカロリ算出部を備え、
前記表示部は、前記画像処理部で処理した画像と、前記カロリ計算部で算出した単位日時あたりの目標消費カロリとを表示する
請求項5記載の端末装置。
【請求項7】
前記画像処理部は、前記シルエット画像から第1関節の位置を特定し、前記特定した第1関節の位置を原点とする極座標系を基準に、所定の円周範囲内で所定の節点間距離を回転させて、身体のシルエットの縁との間に節点をもつ点を2つ検出し、前記2つの節点の円周上の中点を第2関節の位置と特定する
請求項3記載の端末装置。
【請求項8】
撮像して得た画像信号より、被写体に含まれる人物を検出し、その検出した人物の関節の位置を特定し、その特定した関節の位置に基づいて前記人物の体の部位の範囲を決定し、その決定した前記部位の範囲を示した画像信号とする画像処理と、
前記画像処理で得られた画像信号を表示させる表示処理と、
前記画像処理で決定した前記体の部位の範囲を変化させる指示を行う操作処理と
を行う画像処理方法。
【請求項9】
撮像して得た画像信号より、被写体に含まれる人物を検出し、その検出した人物の関節の位置を特定し、その特定した関節の位置に基づいて前記人物の体の部位の範囲を決定し、その決定した前記部位の範囲を示した画像信号とする画像処理と、
前記画像処理で得られた画像信号を表示させる表示処理と、
前記画像処理で決定した前記体の部位の範囲を変化させる指示を行う操作処理とを、
情報処理装置に実装して実行させるプログラム。
【請求項1】
被写体を撮像して画像信号を出力するカメラ部と、
前記カメラ部が出力する画像信号より、前記被写体に含まれる人物を検出し、その検出した人物の関節の位置を特定し、その特定した関節の位置に基づいて前記人物の体の部位の範囲を決定し、その決定した前記部位の範囲を示した画像信号とする画像処理部と、
前記画像処理部で処理された画像信号による画像を表示する表示部と、
前記画像処理部で決定した前記体の部位の範囲を変化させる指示の操作を行う操作部と
を備えた端末装置。
【請求項2】
前記カメラ部で撮像する画像は、特定の人物の正面画像と横面画像と背景画像である
請求項1記載の端末装置。
【請求項3】
前記画像処理部は、前記カメラ部が出力する画像信号より、前記被写体に含まれる人物のシルエット画像を取得し、そのシルエット画像から関節の位置を特定する
請求項1記載の端末装置。
【請求項4】
前記画像処理部は、前記シルエット画像を複数の画像領域に区分し、
前記区分した複数の画像領域ごとに1画素あたりの重量を算出し、前記人物の体重を推定する計算処理部を備えた
請求項3記載の端末装置。
【請求項5】
前記操作部での操作により、前記それぞれの画像領域毎の増減を行う
請求項4記載の端末装置。
【請求項6】
前記領域ごとの変化重量を合計した重量と設定された日数から、単位日時あたりの目標消費カロリを算出するカロリ算出部を備え、
前記表示部は、前記画像処理部で処理した画像と、前記カロリ計算部で算出した単位日時あたりの目標消費カロリとを表示する
請求項5記載の端末装置。
【請求項7】
前記画像処理部は、前記シルエット画像から第1関節の位置を特定し、前記特定した第1関節の位置を原点とする極座標系を基準に、所定の円周範囲内で所定の節点間距離を回転させて、身体のシルエットの縁との間に節点をもつ点を2つ検出し、前記2つの節点の円周上の中点を第2関節の位置と特定する
請求項3記載の端末装置。
【請求項8】
撮像して得た画像信号より、被写体に含まれる人物を検出し、その検出した人物の関節の位置を特定し、その特定した関節の位置に基づいて前記人物の体の部位の範囲を決定し、その決定した前記部位の範囲を示した画像信号とする画像処理と、
前記画像処理で得られた画像信号を表示させる表示処理と、
前記画像処理で決定した前記体の部位の範囲を変化させる指示を行う操作処理と
を行う画像処理方法。
【請求項9】
撮像して得た画像信号より、被写体に含まれる人物を検出し、その検出した人物の関節の位置を特定し、その特定した関節の位置に基づいて前記人物の体の部位の範囲を決定し、その決定した前記部位の範囲を示した画像信号とする画像処理と、
前記画像処理で得られた画像信号を表示させる表示処理と、
前記画像処理で決定した前記体の部位の範囲を変化させる指示を行う操作処理とを、
情報処理装置に実装して実行させるプログラム。
【図1】
【図2】
【図15】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図2】
【図15】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【公開番号】特開2010−176588(P2010−176588A)
【公開日】平成22年8月12日(2010.8.12)
【国際特許分類】
【出願番号】特願2009−20911(P2009−20911)
【出願日】平成21年1月30日(2009.1.30)
【出願人】(501431073)ソニー・エリクソン・モバイルコミュニケーションズ株式会社 (810)
【Fターム(参考)】
【公開日】平成22年8月12日(2010.8.12)
【国際特許分類】
【出願日】平成21年1月30日(2009.1.30)
【出願人】(501431073)ソニー・エリクソン・モバイルコミュニケーションズ株式会社 (810)
【Fターム(参考)】
[ Back to top ]