(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-08-07
(45)【発行日】2023-08-16
(54)【発明の名称】画像処理装置、画像処理プログラム、及び画像処理方法
(51)【国際特許分類】
G06T 7/60 20170101AFI20230808BHJP
【FI】
G06T7/60 180B
(21)【出願番号】P 2019138494
(22)【出願日】2019-07-29
【審査請求日】2022-04-27
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100074099
【氏名又は名称】大菅 義之
(74)【代理人】
【識別番号】100121083
【氏名又は名称】青木 宏義
(74)【代理人】
【識別番号】100138391
【氏名又は名称】天田 昌行
(72)【発明者】
【氏名】堀内 伸一
【審査官】片岡 利延
(56)【参考文献】
【文献】特開2009-290782(JP,A)
【文献】特開2010-039580(JP,A)
【文献】特開2017-027197(JP,A)
【文献】特開2015-188251(JP,A)
【文献】特開2016-059051(JP,A)
【文献】特開2014-116789(JP,A)
【文献】特開2008-089811(JP,A)
【文献】特開2006-018246(JP,A)
【文献】特開2018-055644(JP,A)
【文献】Dushyant Mehta et al.,XNect: Real-time Multi-person 3D Human PoseEstimation with a Single RGB Camera,[online],2019年07月01日,https://arxiv.org/abs/1907.00837v1
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/60
(57)【特許請求の範囲】
【請求項1】
複数の被写体が写っている画像を記憶する記憶部と、
前記画像内で前記複数の被写体それぞれが写っている領域
から検出されたエッジに基づいて、前記複数の被写体それぞれが写っている領域の鮮明度
を計算し、前記複数の被写体のうち特定の被写体
が写っている領域の鮮明度と前記複数の被写体のうち他の被写体
が写っている領域の鮮明度との差分を、前記画像の奥行方向における前記特定の被写体と前記他の被写体との間の相対距離を示す指標
として計算する計算部と、
前記画像内における前記特定の被写体の大きさと、前記画像内における前記他の被写体の大きさとに基づいて、前記特定の被写体又は前記他の被写体のうちいずれの方が前記画像を撮影した撮像装置に近いかを推定し、前記特定の被写体又は前記他の被写体のうちいずれの方が前記撮像装置に近いかを推定した結果と、前記特定の被写体と前記他の被写体との間の相対距離を示す指標とに基づいて、前記特定の被写体と前記他の被写体との間の位置関係を推定する推定部と、
を備えることを特徴とする画像処理装置。
【請求項2】
前記画像から前記複数の被写体それぞれが写っている領域の下端の位置を検出する検出部と、
前記複数の被写体それぞれが写っている領域の下端の位置を用いて、前記特定の被写体と前記他の被写体との間の相対距離を示す指標を補正する補正部とをさらに備え、
前記推定部は、補正後の指標に基づいて、前記特定の被写体と前記他の被写体との間の位置関係を推定することを特徴とする請求項1記載の画像処理装置。
【請求項3】
前記複数の被写体それぞれが写っている領域を用いて、前記画像内における前記複数の被写体の間の重なりを判定する判定部と、
前記複数の被写体の間の重なりを判定した結果を用いて、前記特定の被写体と前記他の被写体との間の相対距離を示す指標を補正する補正部とをさらに備え、
前記推定部は、補正後の指標に基づいて、前記特定の被写体と前記他の被写体との間の位置関係を推定することを特徴とする請求項1記載の画像処理装置。
【請求項4】
前記複数の被写体それぞれに対応する3次元モデルを生成し、前記特定の被写体と前記他の被写体との間の位置関係を複数の3次元モデルの間の位置関係に反映する生成部をさらに備えることを特徴とする請求項1乃至3のいずれか1項に記載の画像処理装置。
【請求項5】
画像内で複数の被写体それぞれが写っている領域
から検出されたエッジに基づいて、前記複数の被写体それぞれが写っている領域の鮮明度
を計算し、
前記複数の被写体のうち特定の被写体
が写っている領域の鮮明度と前記複数の被写体のうち他の被写体
が写っている領域の鮮明度との差分を、前記画像の奥行方向における前記特定の被写体と前記他の被写体との間の相対距離を示す指標
として計算し、
前記画像内における前記特定の被写体の大きさと、前記画像内における前記他の被写体の大きさとに基づいて、前記特定の被写体又は前記他の被写体のうちいずれの方が前記画像を撮影した撮像装置に近いかを推定し、前記特定の被写体又は前記他の被写体のうちいずれの方が前記撮像装置に近いかを推定した結果と、前記特定の被写体と前記他の被写体との間の相対距離を示す指標とに基づいて、前記特定の被写体と前記他の被写体との間の位置関係を推定する、
処理をコンピュータに実行させるための画像処理プログラム。
【請求項6】
コンピュータによって実行される画像処理方法であって、
前記コンピュータが、
画像内で複数の被写体それぞれが写っている領域
から検出されたエッジに基づいて、前記複数の被写体それぞれが写っている領域の鮮明度
を計算し、
前記複数の被写体のうち特定の被写体
が写っている領域の鮮明度と前記複数の被写体のうち他の被写体
が写っている領域の鮮明度との差分を、前記画像の奥行方向における前記特定の被写体と前記他の被写体との間の相対距離を示す指標
として計算し、
前記画像内における前記特定の被写体の大きさと、前記画像内における前記他の被写体の大きさとに基づいて、前記特定の被写体又は前記他の被写体のうちいずれの方が前記画像を撮影した撮像装置に近いかを推定し、前記特定の被写体又は前記他の被写体のうちいずれの方が前記撮像装置に近いかを推定した結果と、前記特定の被写体と前記他の被写体との間の相対距離を示す指標とに基づいて、前記特定の被写体と前記他の被写体との間の位置関係を推定する、
ことを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置、画像処理プログラム、及び画像処理方法に関する。
【背景技術】
【0002】
日常のエンターテインメント、ビジネス等において、インタラクティブなVR(Virtual Reality)及びAR(Augmented Reality)のニーズが高まっている中で、ユーザ自身の動きを仮想空間内の3次元モデルに反映することが試みられている。
【0003】
人物を撮像した画像に関して、撮像画像に含まれる顔を検出し、検出された顔の顔幅に基づいて、レンズ部の光軸方向における各顔の位置の前後関係を推定する技術が知られている(例えば、特許文献1を参照)。
【0004】
画像から顔を検出する技術、及び2次元姿勢推定の技術も知られている(例えば、非特許文献1~非特許文献5を参照)。
【先行技術文献】
【特許文献】
【0005】
【非特許文献】
【0006】
【文献】V. Kazemi et al.,“One Millisecond Face Alignment with an Ensemble of Regression Trees”, 2014 IEEE Conference on Computer Vision and Pattern Recognition, pp.1867-1874, 2014
【文献】Z. Cao et al.,“OpenPose: Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields”, Cornell University, arXiv:1812.08008v2 [cs.CV], May 2019
【文献】“tf-pose-estimation”、GitHub, Inc.、[online]、[令和1年7月5日検索]、インターネット<URL:https://github.com/ildoonet/tf-pose-estimation>
【文献】“OpenPose”、GitHub, Inc.、[online]、[令和1年7月5日検索]、インターネット<URL:https://github.com/CMU-Perceptual-Computing-Lab/openpose>
【文献】“Pose Detection in the Browser: PoseNet Model”、GitHub, Inc.、[online]、[令和1年7月5日検索]、インターネット<URL:https://github.com/tensorflow/tfjs-models/tree/master/posenet>
【発明の概要】
【発明が解決しようとする課題】
【0007】
複数の人物を撮影した画像からそれぞれの人物の3次元モデルを生成する場合、3次元空間における人物間の奥行方向の距離を、仮想空間内の複数の3次元モデルの間の距離に反映することは困難である。
【0008】
なお、かかる問題は、仮想空間内の3次元モデルを生成する場合に限らず、3次元空間における人物間の距離に基づく他の処理を行う場合においても生ずるものである。また、かかる問題は、複数の人物を撮影した画像から人物間の距離を推定する場合に限らず、人物以外の複数の被写体を撮影した画像から被写体間の距離を推定する場合においても生ずるものである。
【0009】
1つの側面において、本発明は、複数の被写体が写っている画像から、画像の奥行方向における被写体間の位置関係を推定することを目的とする。
【課題を解決するための手段】
【0010】
1つの案では、画像処理装置は、記憶部、計算部、及び推定部を含む。記憶部は、複数の被写体が写っている画像を記憶する。
【0011】
計算部は、画像内で複数の被写体それぞれが写っている領域の鮮明度に基づいて、画像の奥行方向における複数の被写体の間の相対距離を示す指標を計算する。推定部は、複数の被写体の間の相対距離を示す指標と、画像内における複数の被写体それぞれの大きさとに基づいて、画像の奥行方向における複数の被写体の間の位置関係を推定する。
【発明の効果】
【0012】
1つの側面において、複数の被写体が写っている画像から、画像の奥行方向における被写体間の位置関係を推定することができる。
【図面の簡単な説明】
【0013】
【
図3】画像処理装置の第1の具体例を示す機能的構成図である。
【
図5】複数の人物が写っている画像を示す図である。
【
図12】画像処理の第1の具体例を示すフローチャートである。
【
図13】画像処理装置の第2の具体例を示す機能的構成図である。
【
図14】足の位置が異なる複数の人物が写っている画像を示す図である。
【
図15】足の位置が異なる人物間の位置関係を示す図である。
【
図17】足の位置が異なる複数の人物の補正後スコア差を示す図である。
【
図18】足の位置が異なる人物間の補正後の位置関係を示す図である。
【
図19】足の位置が異なる複数の人物の3次元モデルを示す図である。
【
図20】画像処理の第2の具体例を示すフローチャートである。
【
図21】足の位置に基づく補正処理のフローチャートである。
【
図22】画像処理装置の第3の具体例を示す機能的構成図である。
【
図23】身体が重なった複数の人物が写っている画像を示す図である。
【
図24】身体が重なった人物間の位置関係を示す図である。
【
図27】身体が重なった複数の人物の補正後スコア差を示す図である。
【
図28】身体が重なった人物間の補正後の位置関係を示す図である。
【
図29】身体が重なった複数の人物の3次元モデルを示す図である。
【
図30】人物の重なりに基づく補正処理のフローチャートである。
【
図32】画像処理の第3の具体例を示すフローチャートである。
【
図33】情報処理装置のハードウェア構成図である。
【発明を実施するための形態】
【0014】
以下、図面を参照しながら、実施形態を詳細に説明する。
VR又はARにおいて、ユーザ自身の動きを仮想空間内の3次元モデルに反映する方法として、ユーザの全身に装着されたセンサを用いるモーショントラッキング、複数台の赤外線カメラを用いる方法等が存在する。しかし、これらのセンサ、赤外線カメラ等は、ユーザの身近に存在する機器ではないため、これらの機器を用いる方法では、一般的なニーズに応えることが難しい。このため、ユーザの動きを手軽に3次元モデルに反映する方法は確立されていない。
【0015】
そこで、一般家庭における普及率が高い単眼カメラを用いて、3次元空間におけるユーザの位置及び姿勢を仮想空間内の3次元モデルの位置及び姿勢に変換する技術が開発されている。しかしながら、単眼カメラの画像は、現実の4次元時空から奥行方向と時間方向の次元を除いた、水平方向と垂直方向の2次元形式で出力されるため、奥行方向の情報を持たない。このため、ユーザの位置及び姿勢を仮想空間に変換した際に、仮想空間の奥行方向の次元が活用されない。
【0016】
特に、複数の人物を撮影した画像から複数の3次元モデルを生成する場合、人物同士の奥行座標の違いが3次元モデルに反映されないため、複数の3次元モデルが仮想空間内で同じ領域を共有する状況が発生することがある。また、複数の人物がカメラに向かって意識的に横2列以上の列に並んだ場合、それらの人物を撮影した画像から3次元モデルを生成すると、横1列に並んだ3次元モデルが生成される。
【0017】
画像に写っている人物の顔の大きさ、人物の身体同士の重なり等に基づいて、人物間の前後関係を推定することは可能であるが、顔、身体等の誤検出によって推定精度が低下することが多い。また、顔の大きさ、身体同士の重なり等に基づいて、人物間の距離を推定することは困難である。画像から奥行方向の情報を再現するには、画像の光学情報を解析することが望ましい。
【0018】
図1は、実施形態の画像処理装置の機能的構成例を示している。
図1の画像処理装置101は、記憶部111、計算部112、及び推定部113を含む。記憶部111は、複数の被写体が写っている画像121を記憶する。計算部112及び推定部113は、画像121を用いて画像処理を行う。
【0019】
図2は、
図1の画像処理装置101が行う画像処理の例を示すフローチャートである。まず、計算部112は、画像121内で複数の被写体それぞれが写っている領域の鮮明度に基づいて、画像121の奥行方向における複数の被写体の間の相対距離を示す指標を計算する(ステップ201)。次に、推定部113は、複数の被写体の間の相対距離を示す指標と、画像121内における複数の被写体それぞれの大きさとに基づいて、画像121の奥行方向における複数の被写体の間の位置関係を推定する(ステップ202)。
【0020】
図1の画像処理装置101によれば、複数の被写体が写っている画像から、画像の奥行方向における被写体間の位置関係を推定することができる。
【0021】
図3は、
図1の画像処理装置101の第1の具体例を示している。
図3の画像処理装置301は、記憶部311、画像取得部312、計算部313、推定部314、生成部315、及び出力部316を含み、複数の人物を撮影した画像から、それぞれの人物の3次元モデルを生成する。人物は、被写体の一例である。
【0022】
記憶部311、計算部313、及び推定部314は、
図1の記憶部111、計算部112、及び推定部113にそれぞれ対応する。画像処理装置301は、タブレット、ノート型PC(Personal Computer)、スマートデバイス等の携帯端末装置であってもよく、クラウド上のサーバであってもよい。
【0023】
撮像装置302は、例えば、CCD(Charged-Coupled Device)、CMOS(Complementary Metal-Oxide-Semiconductor)等の撮像素子を有するカメラである。撮像装置302は、単眼カメラであってもよい。
【0024】
撮像装置302は、複数の人物を撮影して画像321を出力する。画像取得部312は、撮像装置302から画像321を取得して、記憶部311に格納する。画像321は、
図1の画像121に対応する。
【0025】
計算部313は、画像321から各人物の顔が写っている顔領域を抽出し、各人物の顔領域の鮮明度を示すスコア322を計算して、記憶部311に格納する。次に、計算部313は、画像321に写っている複数の人物の中から、特定の人物を基準人物として選択する。
【0026】
そして、計算部313は、基準人物のスコア322と、画像321に写っている各人物のスコア322との差分を計算し、スコア差323として記憶部311に格納する。スコア差323は、画像321の奥行方向における人物間の相対距離を示す指標の一例であり、基準人物と他の人物との間の相対距離を示している。画像321の奥行方向は、撮像装置302の光軸の方向に対応する。
【0027】
推定部314は、画像321内における基準人物の顔の大きさと他の人物の顔の大きさとに基づいて、いずれの人物の方が撮像装置302に近いかを推定する。そして、推定部314は、いずれの人物の方が撮像装置302に近いかを推定した結果とスコア差323とに基づいて、画像321の奥行方向における人物間の位置関係を推定する。人物間の位置関係は、基準人物と他の人物との間の位置関係によって表される。
【0028】
図4は、人物間の位置関係を推定する推定処理の例を示している。人物401~人物403のうち、人物402は、撮像装置302の焦点の位置に立っており、人物401は、焦点よりも撮像装置302に近い位置(前方)に立っており、人物403は、焦点よりも撮像装置302から遠い位置(後方)に立っている。
【0029】
人物401~人物403を撮影した画像内において、光学的には、焦点に位置する被写体の鮮明度が最も高く、被写体が焦点から離れるほど鮮明度が低下する。したがって、人物402のスコアが最も大きく、人物401及び人物403のスコアは、人物402のスコアよりも小さくなる。
【0030】
この例では、最大のスコアを持つ人物402が基準人物として選択され、人物402のスコア差は0となり、人物401及び人物403のスコア差は100となる。しかし、スコア差は人物402の位置からの相対距離を示しているのみであり、スコア差だけでは、人物401及び人物403が人物402の前方又は後方のいずれに位置するかが決定されない。
【0031】
そこで、推定部314は、人物401と人物402の顔の大きさを比較し、人物401の顔が人物402の顔よりも大きいため、人物401が人物402よりも前方に位置すると判定して、人物401のスコア差に負の符号を付加する。これにより、人物401のスコア差は-100に変更される。一方、人物403の顔は人物402の顔よりも小さいため、推定部314は、人物403が人物402よりも後方に位置すると判定する。この場合、人物403のスコア差に負の符号は付加されない。
【0032】
符号を含めたスコア差の昇順は、各人物が撮像装置302に近い順を表しており、人物間におけるスコア差の差分は、人物間の相対距離を示している。
【0033】
このように、画像321に写っている特定の人物を基準人物として選択し、基準人物と他の人物とのスコア差323を計算することで、人物間の相対距離を容易に推定することができる。また、基準人物と他の人物の顔の大きさを比較することで、他の人物が基準人物の前方又は後方のいずれに位置するかを推定することができる。
【0034】
生成部315は、複数の人物それぞれに対応する、仮想空間内の3次元モデル325を生成し、人物間の位置関係を、仮想空間内における複数の3次元モデル325の間の位置関係に反映する。各人物の3次元モデル325は、バーチャルキャラクターであってもよい。
【0035】
生成部315は、人物間の位置関係から、仮想空間内における各3次元モデル325の奥行方向の座標324を計算して、記憶部311に格納する。そして、生成部315は、各3次元モデル325を座標324が示す位置に配置することで、人物間の位置関係を複数の3次元モデル325の間の位置関係に反映する。出力部316は、仮想空間内に配置された3次元モデル325を示す情報を出力する。
【0036】
図3の画像処理装置301によれば、画像に写っている複数の人物を空間的に識別して、画像の奥行方向における人物間の位置関係を推定することができる。これにより、人物同士の奥行座標の違いを仮想空間内の3次元モデルに反映することが可能になる。
【0037】
図5は、複数の人物が写っている画像321の例を示している。
図5の画像321には、人物A、人物B、人物C、人物D、人物E、及び人物Fが写っている。
【0038】
まず、計算部313は、
図5の画像321から各人物の顔領域を抽出する。例えば、計算部313は、非特許文献1の技術、又は機械学習OSS(Open Source Software)のライブラリであるDLibの顔検出機能を用いて、顔領域を抽出することができる。
【0039】
図6は、
図5の画像321から抽出された顔領域の例を示している。顔領域601は人物Eの顔領域であり、顔領域602は人物Aの顔領域であり、顔領域603は人物Dの顔領域である。顔領域604は人物Bの顔領域であり、顔領域605は人物Cの顔領域であり、顔領域606は人物Fの顔領域である。
【0040】
顔領域の鮮明度は顔領域の大きさの影響を受けるため、正確な鮮明度を示すスコア322を求めるために、6人の顔領域の大きさを統一することが好ましい。そこで、計算部313は、顔領域601~顔領域606のうち最も小さな顔領域を基準領域として選択し、他の顔領域の中心を固定して基準領域と同じ大きさの領域を切り抜くことで、他の顔領域をリサイズする。これにより、6人の顔領域の大きさが統一される。
【0041】
図7は、リサイズされた顔領域の例を示している。顔領域701は人物Eの顔領域であり、顔領域702は人物Aの顔領域であり、顔領域703は人物Dの顔領域である。顔領域704は人物Bの顔領域であり、顔領域705は人物Cの顔領域であり、顔領域706は人物Fの顔領域である。
【0042】
次に、計算部313は、各人物の顔領域のスコア322を計算する。例えば、計算部313は、各人物の顔領域の画像をグレースケール画像に変換し、グレースケール画像からエッジを検出し、検出されたエッジを用いてスコア322を計算することができる。グレースケール画像からエッジを検出するオペレータとしては、ラプラシアンフィルタ、ソーベルフィルタ、プレヴィットフィルタ、キャニーフィルタ等を用いることができる。
【0043】
例えば、ラプラシアンフィルタを用いる場合、計算部313は、次式により、顔領域内のi番目(i=1~N)の画素に対するラプラシアンLiを計算する。
【0044】
【0045】
式(1)の右辺は、ラプラシアンフィルタによる演算を表し、fiは、i番目の画素の輝度を表す。xは、画像321の水平方向の座標を表し、yは、画像321の垂直方向の座標を表す。例えば、計算部313は、画像処理OSSのライブラリであるOpenCV(Open Source Computer Vision Library)のラプラシアン関数を用いて、ラプラシアンLiを計算することができる。次に、計算部313は、次式により、ラプラシアンLiの分散σ2を計算する。
【0046】
【0047】
Nは、顔領域内の画素の総数を表し、式(3)のL0は、ラプラシアンLiの標本平均を表す。式(2)の分散σ2がスコア322として用いられる。
【0048】
図8は、
図7の顔領域から計算された各人物のスコア322の例を示している。スコア322は、各顔領域の画像の鮮明度を示しており、スコアが大きい方がより鮮明な画像である。したがって、人物A~人物Fのうち、人物Bの顔領域の画像が最も鮮明であることが分かる。
【0049】
そこで、計算部313は、人物Bを基準人物として選択し、人物Bのスコア322と各人物のスコア322との差分を、スコア差323として計算する。
【0050】
図9は、
図8のスコア322から計算された各人物のスコア差323の例を示している。
図9のスコア差323は、次式により計算される。
【0051】
人物A 人物Bのスコア-人物Aのスコア
=15022-6172
=8850
人物B 人物Bのスコア-人物Bのスコア
=15022-15022
=0
人物C 人物Bのスコア-人物Cのスコア
=15022-10515
=4507
人物D 人物Bのスコア-人物Dのスコア
=15022-10978
=4044
人物E 人物Bのスコア-人物Eのスコア
=15022-10619
=4403
人物F 人物Bのスコア-人物Fのスコア
=15022-7342
=7680
【0052】
次に、推定部314は、画像321に写っている各人物の顔の大きさを計算する。例えば、推定部314は、非特許文献1の技術又はDLibの顔検出機能を用いて、顔の大きさを計算することができる。推定部314は、2次元姿勢推定により、顔の特徴点(目、耳等)から顔の大きさを計算してもよく、OpenCVの顔検出機能を用いて顔の大きさを計算してもよい。顔の大きさは、顔の2つの特徴点の間の距離であってもよく、顔の面積であってもよい。
【0053】
次に、推定部314は、人物Bと他の人物の顔の大きさを比較し、他の人物の顔が人物Bの顔よりも大きい場合、他の人物のスコア差に負の符号を付加する。例えば、人物Dの顔は人物Bの顔よりも大きいため、人物Dのスコア差は、4044から-4044に変更される。人物Aの顔は人物Bの顔よりも小さいため、人物Aのスコア差は変更されない。人物C、人物E、及び人物Fについても、人物Aと同様である。
【0054】
図10は、人物Dのスコア差を変更した後の各人物のスコア差323によって示される、人物間の位置関係の例を示している。この例では、スコア差323が昇順にソートされている。
図10の人物間の位置関係は、人物D、人物B、人物E、人物C、人物F、及び人物Aの順に、撮像装置302に近いことを示している。したがって、人物Dが最も近く、人物Aが最も遠い。
【0055】
次に、生成部315は、人物A~人物Fの3次元モデル325を生成し、
図10の人物間の位置関係を、6人の3次元モデル325の間の位置関係に反映する。
【0056】
図11は、
図5の人物A~人物Fの3次元モデル325の例を示している。3次元モデル1101~3次元モデル1106は、人物A~人物Fにそれぞれ対応している。仮想空間内における3次元モデル1101~3次元モデル1106の奥行方向の座標324は、
図10のスコア差323を反映した値に設定される。
【0057】
図12は、
図3の画像処理装置301が行う画像処理の第1の具体例を示すフローチャートである。まず、画像取得部312は、撮像装置302から画像321を取得し(ステップ1201)、画像321に複数の人物が写っているか否かを判定する(ステップ1202)。
【0058】
例えば、ユーザは、画像321に複数の人物が写っているか否かを示す情報を、画像処理装置301に入力する。この場合、画像取得部312は、入力された情報に基づいて、画像321に複数の人物が写っているか否かを判定することができる。画像取得部312は、画像321から人物を検出することで、複数の人物が写っているか否かを判定してもよい。
【0059】
画像321に複数の人物が写っていない場合(ステップ1202,NO)、画像処理装置301は、処理を終了する。
【0060】
一方、画像321に複数の人物が写っている場合(ステップ1202,YES)、計算部313は、画像321から各人物の顔領域を抽出し(ステップ1203)、顔領域のスコア322を計算する(ステップ1204)。そして、計算部313は、画像321に写っている複数の人物の中から、基準人物を選択する(ステップ1205)。
【0061】
次に、計算部313は、画像321に写っているいずれかの人物を処理対象として選択し、処理対象の人物のスコア差323を計算する(ステップ1206)。
【0062】
次に、推定部314は、基準人物と処理対象の人物の顔の大きさを比較して、処理対象の人物の顔が基準人物の顔よりも大きい場合、処理対象の人物のスコア差323に負の符号を付加する(ステップ1207)。そして、推定部314は、スコア差323に基づいて、画像321の奥行方向における、基準人物と処理対象の人物との位置関係を推定する(ステップ1208)。
【0063】
次に、生成部315は、処理対象の人物に対応する3次元モデル325を生成し、推定された位置関係を、基準人物の3次元モデル325と、処理対象の人物の3次元モデル325との位置関係に反映する(ステップ1209)。そして、出力部316は、生成された3次元モデル325を示す情報を出力する。
【0064】
なお、処理対象の人物が基準人物である場合、ステップ1207及びステップ1208の処理は省略される。
【0065】
次に、生成部315は、画像321に写っているすべての人物の処理が終了したか否かをチェックする(ステップ1210)。未処理の人物が残っている場合(ステップ1210,NO)、画像処理装置301は、次の人物を処理対象として選択して、ステップ1206以降の処理を繰り返す。そして、すべての人物の処理が終了した場合(ステップ1210,YES)、画像処理装置301は、処理を終了する。
【0066】
ところで、顔領域の鮮明度に基づく人物間の相対距離の推定精度は、撮像装置302の解像度及び被写界深度に依存する。解像度が高い方が鮮明度の違いが明確に表れるため、相対距離の推定精度が高くなる。また、被写界深度が浅い方が鮮明度の違いが明確に表れるため、相対距離の推定精度が高くなる。
【0067】
しかし、撮像装置302の解像度が常に高く、被写界深度が常に浅いとは限らないため、相対距離の推定精度を向上させるために、顔領域の鮮明度以外の情報を用いてスコア差323を補正することが望ましい。
【0068】
例えば、複数の人物が平らな床面上に立っている場合、撮像装置302からより遠い位置に立っている人物の足先は、画像321の垂直方向においてより高い位置に写る。したがって、画像321から足の位置を検出することで、スコア差323が適切であるか否かを判定することができる。
【0069】
また、画像321内で人物の身体が重なって写っている場合、他の人物に隠れている人物の方が、撮像装置302からより遠い位置に立っている。したがって、画像321から人物の重なりを検出することで、スコア差323が適切であるか否かを判定することができる。
【0070】
図13は、足の位置に基づく補正処理を行う、
図1の画像処理装置101の第2の具体例を示している。
図13の画像処理装置1301は、
図3の画像処理装置301において、検出部1311及び補正部1312を追加した構成を有する。
【0071】
検出部1311は、画像321から各人物が写っている領域の下端の位置を示す下端座標1321を検出して、記憶部311に格納する。例えば、検出部1311は、非特許文献2~非特許文献5のいずれかに記載された2次元姿勢推定を行うことで、画像321から下端座標1321を検出することができる。
【0072】
補正部1312は、下端座標1321を用いてスコア差323を補正し、補正後のスコア差323を補正後スコア差1322として記憶部311に格納する。推定部314は、補正後スコア差1322に基づいて人物間の位置関係を推定する。
【0073】
図13の画像処理装置1301によれば、顔領域の鮮明度に基づく人物間の位置関係の推定精度が低い場合であっても、各人物の足の位置に基づいて人物間の位置関係を修正することができる。
【0074】
図14は、足の位置が異なる複数の人物が写っている画像321の例を示している。
図14の画像321は、解像度が低く、かつ、被写界深度が深い撮像装置302によって撮影された画像であり、画像321には、人物A、人物B、及び人物Cが写っている。この場合、人物C、人物B、及び人物Aの順に、撮像装置302に近い。
【0075】
図15は、
図14の画像321から計算された各人物のスコア差323によって示される、人物間の位置関係の例を示している。
図15の人物間の位置関係は、人物B、人物C、及び人物Aの順に、撮像装置302に近いことを示している。
【0076】
しかしながら、
図15のスコア差323は、
図14の画像321に写っている人物間の位置関係を十分に反映しておらず、人物Bと人物Cの順序が逆転している。
【0077】
図16は、
図14の画像321から検出された各人物の下端座標1321の例を示している。
図16の下端座標1321は、各人物の左足の足先の位置を示す垂直方向の座標であり、画像321の垂直方向の長さを1として規格化されている。より大きな下端座標1321は、画像321の下端により近い位置を示す。したがって、人物C、人物B、及び人物Aの順に、画像321の下端に近いことが分かる。
【0078】
ここで、
図15に示した人物X(X=A,B,C)のスコア差323をスコア差d(X)とし、
図16に示した人物Xの下端座標1321をy(X)とし、人物Xの補正後スコア差1322を補正後スコア差c(X)とする。例えば、スコア差d(A)~スコア差d(C)のうち最大のスコア差d(A)を基準値として用いた場合、補正部1312は、次式により補正後スコア差c(X)を計算することができる。
【0079】
c(X)=d(A)-{y(X)-y(A)}×d0 (11)
d0=MAX{d(A),d(B),d(C)}
-MIN{d(A),d(B),d(C)} (12)
【0080】
式(12)のMAX{d(A),d(B),d(C)}は、スコア差d(A)~スコア差d(C)の最大値を表し、MIN{d(A),d(B),d(C)}は、スコア差d(A)~スコア差d(C)の最小値を表す。式(11)によれば、最大のスコア差d(A)を有する人物Aと人物Xの下端座標1321の差分に基づいて、人物Xの補正後スコア差c(X)を求めることができる。
【0081】
図17は、式(11)により計算された各人物の補正後スコア差1322の例を示している。
図17の補正後スコア差1322は、下端座標1321の昇順に小さくなっている。補正部1312は、スコア差d(B)又はスコア差d(C)を基準値として用いて、別の計算式により補正後スコア差c(X)を計算してもよい。
【0082】
図18は、各人物の補正後スコア差1322によって示される、人物間の補正後の位置関係の例を示している。この例では、補正後スコア差1322が昇順にソートされている。
図18の人物間の位置関係は、人物C、人物B、及び人物Aの順に、撮像装置302に近いことを示しており、下端座標1321の順序と整合している。
【0083】
図19は、
図14の人物A~人物Cの3次元モデル325の例を示している。3次元モデル1901~3次元モデル1903は、人物A~人物Cにそれぞれ対応している。仮想空間内における3次元モデル1901~3次元モデル1903の奥行方向の座標324は、
図18の補正後スコア差1322を反映した値に設定される。
【0084】
図20は、
図13の画像処理装置1301が行う画像処理の第2の具体例を示すフローチャートである。ステップ2001~ステップ2010の処理は、
図12のステップ1201~ステップ1210の処理と同様である。
【0085】
すべての人物の処理が終了した場合(ステップ2010,YES)、画像処理装置1301は、足の位置に基づく補正処理を行う(ステップ2011)。
【0086】
図21は、
図20のステップ2011における、足の位置に基づく補正処理の例を示すフローチャートである。まず、検出部1311は、画像321から各人物の下端座標1321を検出する(ステップ2101)。そして、補正部1312は、ステップ2008において推定された人物間の位置関係が、下端座標1321の順序と整合しているか否かをチェックする(ステップ2102)。
【0087】
人物間の位置関係が示す撮像装置302に近い人物の順序と、下端座標1321が示す画像321の下端に近い人物の順序とが一致している場合、位置関係が下端座標1321の順序と整合していると判定される。一方、撮像装置302に近い人物の順序と画像321の下端に近い人物の順序とが一致していない場合、位置関係が下端座標1321の順序と整合していないと判定される。
【0088】
位置関係が下端座標1321の順序と整合していない場合(ステップ2102,NO)、補正部1312は、下端座標1321を用いてスコア差323を補正して、補正後スコア差1322を生成する(ステップ2103)。
【0089】
次に、推定部314は、補正後スコア差1322に基づいて、画像321の奥行方向における人物間の位置関係を推定し(ステップ2104)、生成部315は、推定された位置関係に基づいて、複数の3次元モデル325の間の位置関係を修正する(ステップ2105)。そして、出力部316は、修正された3次元モデル325を示す情報を出力する。
【0090】
一方、位置関係が下端座標1321の順序と整合している場合(ステップ2102,YES)、画像処理装置1301は、処理を終了する。
【0091】
図22は、人物の重なりに基づく補正処理を行う、
図1の画像処理装置101の第3の具体例を示している。
図22の画像処理装置2201は、
図3の画像処理装置301において、判定部2211及び補正部2212を追加した構成を有する。
【0092】
判定部2211は、画像321内で各人物が写っている領域を用いて、画像321内における人物間の重なりを判定し、判定結果2221を記憶部311に格納する。例えば、検出部2211は、非特許文献2~非特許文献5のいずれかに記載された2次元姿勢推定を行うことで、人物間における身体の重なりを検出することができる。
【0093】
補正部2212は、判定結果2221を用いてスコア差323を補正し、補正後のスコア差323を補正後スコア差2222として記憶部311に格納する。推定部314は、補正後スコア差2222に基づいて人物間の位置関係を推定する。
【0094】
図22の画像処理装置2201によれば、顔領域の鮮明度に基づく人物間の位置関係の推定精度が低い場合であっても、人物の重なりに基づいて人物間の位置関係を修正することができる。
【0095】
図23は、身体が重なった複数の人物が写っている画像321の例を示している。
図23の画像321は、解像度が低い撮像装置302によって撮影された画像であり、画像321には、人物A、人物B、人物C、人物D、及び人物Eが写っている。この場合、人物Aは、人物Bよりも前方に位置し、人物Cは、人物B及び人物Dよりも前方に位置し、人物Eは、人物Dよりも前方に位置している。
【0096】
図24は、
図23の画像321から計算された各人物のスコア差323によって示される、人物間の位置関係の例を示している。
図24の人物間の位置関係は、人物E、人物C、人物B、人物D、及び人物Aの順に、撮像装置302に近いことを示している。
【0097】
しかしながら、
図24のスコア差323は、
図23の画像321に写っている人物間の位置関係を十分に反映しておらず、人物Aと人物Bの順序が逆転している。
【0098】
図25は、判定部2211が行う判定処理の例を示している。判定部2211は、2次元姿勢推定により検出された各人物の骨格を用いて、人物間における身体の重なりを判定する。
【0099】
例えば、判定部2211は、人物P1及び人物P2のうち、人物P1の身体の一部が人物P2の両肩よりも下方の部分と重なっている場合、人物P1と人物P2の身体が重なっており、かつ、人物P2が人物P1よりも前方に位置すると判定する。人物P1に着目した判定処理と人物P2に着目した判定処理とで、相反する判定結果が得られた場合、判定部2211は、人物P1と人物P2の身体の大きさを比較し、身体の大きい人物が身体の小さい人物よりも前方に位置すると判定する。
【0100】
図25(a)は、人物が左腕を身体の左方向に伸ばしている場合の判定処理の例を示している。線分2511は、画像321に写っている人物2501の左腕を表し、点2521及び点2522は、画像321に写っている人物2502の右肩及び左肩をそれぞれ表す。点2523は、点2521から画像321の下端へ降ろした垂線の足を表し、点2524は、点2522から画像321の下端へ降ろした垂線の足を表す。
【0101】
点2521~点2524を頂点とする矩形2531は、人物2502の両肩よりも下方の部分が写っている領域を表す。この場合、線分2511の一部が矩形2531内に含まれているため、判定部2211は、人物2501と人物2502の身体が重なっており、かつ、人物2502が人物2501よりも前方に位置すると判定する。
【0102】
図25(b)は、一方の人物が左腕を身体の左方向に伸ばしており、他方の人物が右腕を身体の右方向に伸ばしている場合の判定処理の例を示している。線分2551は、画像321に写っている人物2503の左腕を表し、点2541及び点2542は、人物2503の右肩及び左肩をそれぞれ表す。点2543は、点2541から画像321の下端へ降ろした垂線の足を表し、点2544は、点2542から画像321の下端へ降ろした垂線の足を表す。
【0103】
線分2581は、画像321に写っている人物2504の右腕を表し、点2571及び点2572は、人物2504の右肩及び左肩をそれぞれ表す。点2573は、点2571から画像321の下端へ降ろした垂線の足を表し、点2574は、点2572から画像321の下端へ降ろした垂線の足を表す。
【0104】
点2541~点2544を頂点とする矩形2561は、人物2503の両肩よりも下方の部分が写っている領域を表し、点2571~点2574を頂点とする矩形2591は、人物2504の両肩よりも下方の部分が写っている領域を表す。
【0105】
人物2503に着目すると、線分2551の一部が矩形2591内に含まれているため、判定部2211は、人物2503と人物2504の身体が重なっており、かつ、人物2504が人物2503よりも前方に位置すると判定する。一方、人物2504に着目すると、線分2581の一部が矩形2561内に含まれているため、判定部2211は、人物2503と人物2504の身体が重なっており、かつ、人物2503が人物2504よりも前方に位置すると判定する。
【0106】
人物2503に着目した判定処理と人物2504に着目した判定処理とで、相反する判定結果が得られたため、判定部2211は、人物2503と人物2504の身体の大きさを比較し、身体の大きい人物が身体の小さい人物よりも前方に位置すると判定する。
【0107】
図26は、
図23の画像321から生成された判定結果2221の例を示している。人物Bに着目した判定処理において、人物A及び人物Cの身体が人物Bの身体と重なっており、かつ、人物A及び人物Cが人物Bよりも前方に位置すると判定される。また、人物Dに着目した判定処理において、人物C及び人物Eの身体が人物Dの身体と重なっており、かつ、人物C及び人物Eが人物Dよりも前方に位置すると判定される。
【0108】
図24に示した人物間の位置関係は、人物Dに着目した判定処理の結果と整合しているが、人物Bに着目した判定処理の結果と整合しておらず、人物Aと人物Bの順序が逆転している。
【0109】
ここで、
図23に示した人物X(X=A,B,C,D,E)のスコア差323をスコア差d(X)とし、人物Xの補正後スコア差2222を補正後スコア差c(X)とすると、補正部2212は、以下の手順で補正後スコア差c(X)を計算することができる。
【0110】
人物Xの位置関係が判定結果2221と整合している場合、補正部2212は、次式により補正後スコア差c(X)を決定する。
【0111】
c(X)=d(X) (13)
【0112】
判定部2211によって人物X及び人物Qが人物Pよりも前方に位置すると判定され、人物Xの位置関係が判定結果2221と整合しておらず、人物Qの位置関係が判定結果2221と整合している場合、補正部2212は、次式により係数r(X)を計算する。
【0113】
r(X)={d(X)-d(P)}/{d(P)-d(Q)} (14)
【0114】
r(X)≦1である場合、補正部2212は、次式により補正後スコア差c(X)を計算する。
【0115】
c(X)=d(P)-{d(P)-d(Q)}×r(X) (15)
【0116】
一方、r(X)>1である場合、補正部2212は、次式により補正後スコア差c(X)を計算する。
【0117】
c(X)=d(P)-{d(P)-d(Q)}×(1/r(X)) (16)
【0118】
式(15)又は式(16)によれば、人物Pと人物Qのスコア差323の差分と、係数r(X)とに基づいて、人物Xの補正後スコア差c(X)を求めることができる。
【0119】
いずれかの人物の補正後スコア差c(X)が判定結果2221と整合していない場合、補正部2212は、補正後スコア差c(X)を新たなスコア差d(X)として用いて、新たな補正後スコア差c(X)を計算する処理を繰り返す。そして、すべての人物の補正後スコア差c(X)が判定結果2221と整合した場合、補正部2212は、最終的に得られた補正後スコア差c(X)を、補正後スコア差2222として記憶部311に格納する。
【0120】
図26の判定結果2221は、人物A及び人物Cが人物Bよりも前方に位置すること示している。この場合、
図24に示した人物間の位置関係において、人物Aの位置関係は判定結果2221と整合しておらず、人物Cの位置関係は判定結果2221と整合している。そこで、補正部2212は、X=A、P=B、及びQ=Cとして、式(14)により係数r(A)を計算する。
【0121】
r(A)={d(A)-d(B)}/{d(B)-d(C)}
={2664-0}/{0-(-2123)}
=2664/2123 (17)
【0122】
この場合、r(A)>1であるため、補正部2212は、式(16)により補正後スコア差c(A)を計算する。
【0123】
c(A)=d(B)-{d(B)-d(C)}×(1/r(A))
=0-{0-(-2123)}×(2123/2664)
=-1692 (18)
【0124】
図27は、式(13)~式(16)により計算された各人物の補正後スコア差2222の例を示している。人物Aの補正後スコア差2222は-1692であり、人物B~人物Eの補正後スコア差2222は、補正前のスコア差323と同じである。人物Aの補正後スコア差2222は、人物Bの補正後スコア差2222よりも小さくなっている。
【0125】
図28は、各人物の補正後スコア差2222によって示される、人物間の補正後の位置関係の例を示している。この例では、補正後スコア差2222が昇順にソートされている。
図28の人物間の位置関係は、人物E、人物C、人物A、人物B、及び人物Dの順に、撮像装置302に近いことを示しており、
図26の判定結果2221と整合している。
【0126】
図29は、
図23の人物A~人物Eの3次元モデル325の例を示している。3次元モデル2901~3次元モデル2905は、人物A~人物Eにそれぞれ対応している。仮想空間内における3次元モデル2901~3次元モデル2905の奥行方向の座標324は、
図28の補正後スコア差2222を反映した値に設定される。
【0127】
図22の画像処理装置2201が行う画像処理は、
図20に示した画像処理と同様である。ただし、画像処理装置2201は、ステップ2011において、足の位置に基づく補正処理の代わりに、人物の重なりに基づく補正処理を行う。
【0128】
図30は、人物の重なりに基づく補正処理の例を示すフローチャートである。まず、判定部2211は、画像321に写っている人物の2次元姿勢推定を行って(ステップ3001)、人物の重なりが存在するか否かを判定する(ステップ3002)。人物の重なりが存在する場合(ステップ3002,YES)、補正部2212は、ステップ2008において推定された人物間の位置関係が、判定結果2221の順序と整合しているか否かをチェックする(ステップ3003)。
【0129】
位置関係が判定結果2221の順序と整合していない場合(ステップ3003,NO)、補正部2212は、判定結果2221を用いてスコア差323を補正して、補正後スコア差2222を生成する(ステップ3004)。
【0130】
次に、推定部314は、補正後スコア差2222に基づいて、画像321の奥行方向における人物間の位置関係を推定し(ステップ3005)、生成部315は、推定された位置関係に基づいて、複数の3次元モデル325の間の位置関係を修正する(ステップ3006)。そして、出力部316は、修正された3次元モデル325を示す情報を出力する。
【0131】
人物の重なりが存在しない場合(ステップ3002,NO)、又は位置関係が判定結果2221の順序と整合している場合(ステップ3003,YES)、画像処理装置2201は、処理を終了する。
【0132】
図3の画像処理装置301、
図13の画像処理装置1301、及び
図22の画像処理装置2201は、静止画像に写っている複数の人物だけでなく、映像に映っている複数の人物それぞれの3次元モデル325を生成することもできる。
【0133】
この場合、撮像装置302は、複数の人物を撮影した映像を出力する。映像には、時系列のフレームが含まれている。画像取得部312は、複数の時刻それぞれにおけるフレームを取得し、各時刻のフレームを画像321として記憶部311に格納する。
【0134】
そして、画像処理装置301、画像処理装置1301、及び画像処理装置2201は、各時刻の画像321から3次元モデル325を生成する。出力される3次元モデル325のフレームレートを、撮像装置302が出力する映像のフレームレートと合わせることで、3次元モデル325の動画像をリアルタイムで出力することも可能である。
【0135】
図31は、3次元モデル325の動画像の例を示している。フレーム番号は、映像に含まれる各フレームの識別情報である。入力画像は、各フレームの画像321を表し、出力画像は、各フレームの画像321から生成された仮想空間の画像を表す。
【0136】
図32は、
図3の画像処理装置301が3次元モデル325の動画像を生成する画像処理の第3の具体例を示すフローチャートである。まず、画像取得部312は、撮像装置302から静止画像又は映像のいずれが出力されているかをチェックする(ステップ3201)。
【0137】
撮像装置302から映像が出力されている場合(ステップ3201,YES)、画像取得部312は、映像に含まれる各フレームの画像を画像321として取得し(ステップ3202)、画像処理装置301は、モデル生成処理を行う(ステップ3203)。
【0138】
次に、画像取得部312は、映像が終了したか否かをチェックし(ステップ3204)、映像が終了していない場合(ステップ3204,NO)、画像処理装置301は、次のフレームについてステップ3202以降の処理を繰り返す。そして、映像が終了した場合(ステップ3204,YES)、画像処理装置301は、処理を終了する。
【0139】
一方、撮像装置302から静止画像が出力されている場合(ステップ3201,NO)、画像取得部312は、静止画像を画像321として取得し(ステップ3205)、画像処理装置301は、モデル生成処理を行う(ステップ3206)。
【0140】
ステップ3203及びステップ3206のモデル生成処理は、
図12のステップ1202~ステップ1210の処理と同様である。
【0141】
画像処理装置1301及び画像処理装置2201も、
図32と同様の画像処理を行うことで、3次元モデル325の動画像を生成することができる。この場合、画像処理装置1301及び画像処理装置2201は、ステップ3203及びステップ3206において、
図20のステップ2002~ステップ2011と同様の処理を行う。
【0142】
図1、
図3、
図13、及び
図22の画像処理装置の構成は一例に過ぎず、画像処理装置の用途又は条件に応じて一部の構成要素を省略又は変更してもよい。例えば、
図3、
図13、及び
図22の画像処理装置において、事前に画像321が記憶部311に格納されている場合は、画像取得部312を省略することができる。仮想空間内の3次元モデル325を生成しない場合は、生成部315及び出力部316を省略することができる。被写体は、人物には限られず、動物、植物、車両、建造物等であってもよい。
【0143】
図2、
図12、
図20、
図21、
図30、及び
図32のフローチャートは一例に過ぎず、画像処理装置の構成又は条件に応じて一部の処理を省略又は変更してもよい。例えば、事前に画像321が記憶部311に格納されている場合は、
図12のステップ1201、
図20のステップ2001、
図32のステップ3201、ステップ3202、及びステップ3205の処理を省略することができる。仮想空間内の3次元モデル325を生成しない場合は、
図12のステップ1209及び
図20のステップ2009の処理を省略することができる。
【0144】
図4の推定処理は一例に過ぎず、画像処理装置の構成又は条件に応じて別の推定方法を用いてもよい。
図5、
図14、
図23、及び
図31の画像321と
図6及び
図7の顔領域は一例に過ぎず、画像321及び顔領域は、被写体に応じて変化する。画像処理装置は、顔以外の部位が写っている領域の鮮明度を示すスコア322を計算してもよく、顔以外の部位の大きさに基づいて撮像装置302に近い人物を推定してもよい。
【0145】
図8のスコア322と
図9、
図10、
図15、及び
図24のスコア差323は一例に過ぎず、スコア322及びスコア差323は、画像321に応じて変化する。
図11、
図19、
図29、及び
図31の3次元モデル325は一例に過ぎず、3次元モデル325は、画像321に応じて変化する。
【0146】
図16の下端座標1321と
図17及び
図18の補正後スコア差1322は一例に過ぎず、下端座標1321及び補正後スコア差1322は、画像321に応じて変化する。
図25の判定処理は一例に過ぎず、画像処理装置の構成又は条件に応じて別の判定方法を用いてもよい。
図26の判定結果2221と
図27及び
図28の補正後スコア差2222は一例に過ぎず、判定結果2221及び補正後スコア差2222は、画像321に応じて変化する。
【0147】
式(1)~式(18)の計算式は一例に過ぎず、画像処理装置の構成又は条件に応じて別の計算式を用いてもよい。例えば、式(2)の分散σ2の代わりに、標準偏差をスコア322として用いることもできる。
【0148】
図33は、
図1、
図3、
図13、及び
図22の画像処理装置として用いられる情報処理装置(コンピュータ)のハードウェア構成例を示している。
図33の情報処理装置は、CPU(Central Processing Unit)3301、メモリ3302、入力装置3303、出力装置3304、補助記憶装置3305、媒体駆動装置3306、及びネットワーク接続装置3307を含む。これらの構成要素はハードウェアであり、バス3308により互いに接続されている。
図3、
図13、及び
図22の撮像装置302は、バス3308に接続されていてもよい。
【0149】
メモリ3302は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)、フラッシュメモリ等の半導体メモリであり、処理に用いられるプログラム及びデータを格納する。メモリ3302は、
図1の記憶部111、又は
図3、
図13、及び
図22の記憶部311として用いることができる。
【0150】
CPU3301(プロセッサ)は、例えば、メモリ3302を利用してプログラムを実行することにより、
図1の計算部112及び推定部113として動作する。
【0151】
CPU3301は、メモリ3302を利用してプログラムを実行することにより、
図3、
図13、及び
図22の画像取得部312、計算部313、推定部314、及び生成部315としても動作する。
【0152】
CPU3301は、メモリ3302を利用してプログラムを実行することにより、
図13の検出部1311及び補正部1312としても動作する。CPU3301は、メモリ3302を利用してプログラムを実行することにより、
図22の判定部2211及び補正部2212としても動作する。
【0153】
入力装置3303は、例えば、キーボード、ポインティングデバイス等であり、オペレータ又はユーザからの指示又は情報の入力に用いられる。出力装置3304は、例えば、表示装置、プリンタ、スピーカ等であり、オペレータ又はユーザへの問い合わせ又は指示、及び処理結果の出力に用いられる。処理結果は、3次元モデル325を示す情報であってもよい。出力装置3304は、
図3、
図13、及び
図22の出力部316として用いることができる。
【0154】
補助記憶装置3305は、例えば、磁気ディスク装置、光ディスク装置、光磁気ディスク装置、テープ装置等である。補助記憶装置3305は、ハードディスクドライブ又はフラッシュメモリであってもよい。情報処理装置は、補助記憶装置3305にプログラム及びデータを格納しておき、それらをメモリ3302にロードして使用することができる。補助記憶装置3305は、
図1の記憶部111、又は
図3、
図13、及び
図22の記憶部311として用いることができる。
【0155】
媒体駆動装置3306は、可搬型記録媒体3309を駆動し、その記録内容にアクセスする。可搬型記録媒体3309は、メモリデバイス、フレキシブルディスク、光ディスク、光磁気ディスク等である。可搬型記録媒体3309は、CD-ROM(Compact Disk Read Only Memory)、DVD(Digital Versatile Disk)、USB(Universal Serial Bus)メモリ等であってもよい。オペレータ又はユーザは、この可搬型記録媒体3309にプログラム及びデータを格納しておき、それらをメモリ3302にロードして使用することができる。
【0156】
このように、処理に用いられるプログラム及びデータを格納するコンピュータ読み取り可能な記録媒体は、メモリ3302、補助記憶装置3305、又は可搬型記録媒体3309のような、物理的な(非一時的な)記録媒体である。
【0157】
ネットワーク接続装置3307は、LAN(Local Area Network)、WAN(Wide Area Network)等の通信ネットワークに接続され、通信に伴うデータ変換を行う通信インタフェース回路である。情報処理装置は、プログラム及びデータを外部の装置からネットワーク接続装置3307を介して受信し、それらをメモリ3302にロードして使用することができる。ネットワーク接続装置3307は、
図3、
図13、及び
図22の出力部316として用いることができる。
【0158】
なお、情報処理装置が
図33のすべての構成要素を含む必要はなく、用途又は条件に応じて一部の構成要素を省略することも可能である。例えば、可搬型記録媒体3309又は通信ネットワークを使用しない場合は、媒体駆動装置3306又はネットワーク接続装置3307を省略してもよい。
【0159】
開示の実施形態とその利点について詳しく説明したが、当業者は、特許請求の範囲に明確に記載した本発明の範囲から逸脱することなく、様々な変更、追加、省略をすることができるであろう。
【0160】
図1乃至
図33を参照しながら説明した実施形態に関し、さらに以下の付記を開示する。
(付記1)
複数の被写体が写っている画像を記憶する記憶部と、
前記画像内で前記複数の被写体それぞれが写っている領域の鮮明度に基づいて、前記画像の奥行方向における前記複数の被写体の間の相対距離を示す指標を計算する計算部と、
前記複数の被写体の間の相対距離を示す指標と、前記画像内における前記複数の被写体それぞれの大きさとに基づいて、前記画像の奥行方向における前記複数の被写体の間の位置関係を推定する推定部と、
を備えることを特徴とする画像処理装置。
(付記2)
前記複数の被写体の間の相対距離を示す指標は、前記複数の被写体のうち特定の被写体と、前記複数の被写体のうち他の被写体との間の相対距離を示す指標であり、
前記推定部は、前記画像内における前記特定の被写体の大きさと、前記画像内における前記他の被写体の大きさとに基づいて、前記特定の被写体又は前記他の被写体のうちいずれの方が前記画像を撮影した撮像装置に近いかを推定し、前記特定の被写体又は前記他の被写体のうちいずれの方が前記撮像装置に近いかを推定した結果と、前記特定の被写体と前記他の被写体との間の相対距離を示す指標とに基づいて、前記特定の被写体と前記他の被写体との間の位置関係を推定することを特徴とする付記1記載の画像処理装置。
(付記3)
前記画像から前記複数の被写体それぞれが写っている領域の下端の位置を検出する検出部と、
前記複数の被写体それぞれが写っている領域の下端の位置を用いて、前記特定の被写体と前記他の被写体との間の相対距離を示す指標を補正する補正部とをさらに備え、
前記推定部は、補正後の指標に基づいて、前記特定の被写体と前記他の被写体との間の位置関係を推定することを特徴とする付記2記載の画像処理装置。
(付記4)
前記複数の被写体それぞれが写っている領域を用いて、前記画像内における前記複数の被写体の間の重なりを判定する判定部と、
前記複数の被写体の間の重なりを判定した結果を用いて、前記特定の被写体と前記他の被写体との間の相対距離を示す指標を補正する補正部とをさらに備え、
前記推定部は、補正後の指標に基づいて、前記特定の被写体と前記他の被写体との間の位置関係を推定することを特徴とする付記2記載の画像処理装置。
(付記5)
前記複数の被写体それぞれに対応する3次元モデルを生成し、前記複数の被写体の間の位置関係を複数の3次元モデルの間の位置関係に反映する生成部をさらに備えることを特徴とする付記1乃至4のいずれか1項に記載の画像処理装置。
(付記6)
画像内で複数の被写体それぞれが写っている領域の鮮明度に基づいて、前記画像の奥行方向における前記複数の被写体の間の相対距離を示す指標を計算し、
前記複数の被写体の間の相対距離を示す指標と、前記画像内における前記複数の被写体それぞれの大きさとに基づいて、前記画像の奥行方向における前記複数の被写体の間の位置関係を推定する、
処理をコンピュータに実行させるための画像処理プログラム。
(付記7)
前記複数の被写体の間の相対距離を示す指標は、前記複数の被写体のうち特定の被写体と、前記複数の被写体のうち他の被写体との間の相対距離を示す指標であり、
前記コンピュータは、前記画像内における前記特定の被写体の大きさと、前記画像内における前記他の被写体の大きさとに基づいて、前記特定の被写体又は前記他の被写体のうちいずれの方が前記画像を撮影した撮像装置に近いかを推定し、前記特定の被写体又は前記他の被写体のうちいずれの方が前記撮像装置に近いかを推定した結果と、前記特定の被写体と前記他の被写体との間の相対距離を示す指標とに基づいて、前記特定の被写体と前記他の被写体との間の位置関係を推定することを特徴とする付記6記載の画像処理プログラム。
(付記8)
前記画像処理プログラムは、
前記画像から前記複数の被写体それぞれが写っている領域の下端の位置を検出し、
前記複数の被写体それぞれが写っている領域の下端の位置を用いて、前記特定の被写体と前記他の被写体との間の相対距離を示す指標を補正する、
処理を前記コンピュータにさらに実行させ、
前記コンピュータは、補正後の指標に基づいて、前記特定の被写体と前記他の被写体との間の位置関係を推定することを特徴とする付記7記載の画像処理プログラム。
(付記9)
前記画像処理プログラムは、
前記複数の被写体それぞれが写っている領域を用いて、前記画像内における前記複数の被写体の間の重なりを判定し、
前記複数の被写体の間の重なりを判定した結果を用いて、前記特定の被写体と前記他の被写体との間の相対距離を示す指標を補正する、
処理を前記コンピュータにさらに実行させ、
前記推定部は、補正後の指標に基づいて、前記特定の被写体と前記他の被写体との間の位置関係を推定することを特徴とする付記7記載の画像処理プログラム。
(付記10)
前記画像処理プログラムは、
前記複数の被写体それぞれに対応する3次元モデルを生成し、
前記複数の被写体の間の位置関係を複数の3次元モデルの間の位置関係に反映する、
処理を前記コンピュータにさらに実行させることを特徴とする付記6乃至9のいずれか1項に記載の画像処理プログラム。
(付記11)
コンピュータによって実行される画像処理方法であって、
前記コンピュータが、
画像内で複数の被写体それぞれが写っている領域の鮮明度に基づいて、前記画像の奥行方向における前記複数の被写体の間の相対距離を示す指標を計算し、
前記複数の被写体の間の相対距離を示す指標と、前記画像内における前記複数の被写体それぞれの大きさとに基づいて、前記画像の奥行方向における前記複数の被写体の間の位置関係を推定する、
ことを特徴とする画像処理方法。
(付記12)
前記複数の被写体の間の相対距離を示す指標は、前記複数の被写体のうち特定の被写体と、前記複数の被写体のうち他の被写体との間の相対距離を示す指標であり、
前記コンピュータは、前記画像内における前記特定の被写体の大きさと、前記画像内における前記他の被写体の大きさとに基づいて、前記特定の被写体又は前記他の被写体のうちいずれの方が前記画像を撮影した撮像装置に近いかを推定し、前記特定の被写体又は前記他の被写体のうちいずれの方が前記撮像装置に近いかを推定した結果と、前記特定の被写体と前記他の被写体との間の相対距離を示す指標とに基づいて、前記特定の被写体と前記他の被写体との間の位置関係を推定することを特徴とする付記11記載の画像処理方法。
(付記13)
前記コンピュータは、
前記画像から前記複数の被写体それぞれが写っている領域の下端の位置を検出し、
前記複数の被写体それぞれが写っている領域の下端の位置を用いて、前記特定の被写体と前記他の被写体との間の相対距離を示す指標を補正し、
補正後の指標に基づいて、前記特定の被写体と前記他の被写体との間の位置関係を推定することを特徴とする付記12記載の画像処理方法。
(付記14)
前記コンピュータは、
前記複数の被写体それぞれが写っている領域を用いて、前記画像内における前記複数の被写体の間の重なりを判定し、
前記複数の被写体の間の重なりを判定した結果を用いて、前記特定の被写体と前記他の被写体との間の相対距離を示す指標を補正し、
補正後の指標に基づいて、前記特定の被写体と前記他の被写体との間の位置関係を推定することを特徴とする付記12記載の画像処理方法。
(付記15)
前記コンピュータは、
前記複数の被写体それぞれに対応する3次元モデルを生成し、
前記複数の被写体の間の位置関係を複数の3次元モデルの間の位置関係に反映することを特徴とする付記11乃至14のいずれか1項に記載の画像処理方法。
【符号の説明】
【0161】
101、301、1301、2201 画像処理装置
111、311 記憶部
112、313 計算部
113、314 推定部
121、321 画像
302 撮像装置
312 画像取得部
315 生成部
316 出力部
322 スコア
323 スコア差
324 座標
325、1101~1106、1901~1903、2901~2905 3次元モデル
401~403、2501~2504 人物
601~606、701~706 顔領域
1311 検出部
1312、2212 補正部
1321 下端座標
1322、2222 補正後スコア差
2211 判定部
2221 判定結果
2511、2551、2581 線分
2521~2524、2541~2544、2571~2574 点
2531、2561、2591 矩形
3301 CPU
3302 メモリ
3303 入力装置
3304 出力装置
3305 補助記憶装置
3306 媒体駆動装置
3307 ネットワーク接続装置
3308 バス
3309 可搬型記録媒体