JP2015015517A - 情報処理装置、距離算出方法、コンピュータプログラム、及び記録媒体 - Google Patents
情報処理装置、距離算出方法、コンピュータプログラム、及び記録媒体 Download PDFInfo
- Publication number
- JP2015015517A JP2015015517A JP2013139438A JP2013139438A JP2015015517A JP 2015015517 A JP2015015517 A JP 2015015517A JP 2013139438 A JP2013139438 A JP 2013139438A JP 2013139438 A JP2013139438 A JP 2013139438A JP 2015015517 A JP2015015517 A JP 2015015517A
- Authority
- JP
- Japan
- Prior art keywords
- distance
- image
- subject
- points
- imaging
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Studio Devices (AREA)
- Image Analysis (AREA)
Abstract
【課題】撮像装置から被写体までの距離を算出する情報処理装置を提供する。
【解決手段】情報処理装置は、ユーザの手を撮像する撮像部101と、撮像部101で撮像した手の画像から、手の特徴となる特徴点を抽出する特徴点抽出部106と、抽出した複数の特徴点のうちの2点間の画像上の距離を算出する測定部103と、撮像部101と手とが所定の距離にあるときの2点間の画像上の距離である基準長を記憶する記憶部105と、測定部103で算出した2点間の画像上の距離、記憶部105に記憶された基準長、及び前記所定の距離から、撮像部101と手との距離を算出する距離算出部109と、を備える。
【選択図】図2
【解決手段】情報処理装置は、ユーザの手を撮像する撮像部101と、撮像部101で撮像した手の画像から、手の特徴となる特徴点を抽出する特徴点抽出部106と、抽出した複数の特徴点のうちの2点間の画像上の距離を算出する測定部103と、撮像部101と手とが所定の距離にあるときの2点間の画像上の距離である基準長を記憶する記憶部105と、測定部103で算出した2点間の画像上の距離、記憶部105に記憶された基準長、及び前記所定の距離から、撮像部101と手との距離を算出する距離算出部109と、を備える。
【選択図】図2
Description
本発明は、カメラ等の撮像装置から被写体までの距離を算出する技術に関する。
ユーザの動きにより機器の操作を可能としたシステムがある。つまりユーザの動きが入力インタフェースとなる。ユーザの動きを入力インタフェースとして用いる場合、システムは、ユーザの各部(ここでは「手」)の空間内の位置を正しく計測する必要がある。カメラを用いる場合、手の平面的な動きを計測することは比較的容易である。しかし、奥行き方向であるカメラから被写体(手)までの距離の計測は容易ではない。距離計測のために距離画像センサを用いることが可能であるが、この場合、システム全体の小型化が困難になる。複数のカメラを用いて距離計測を行うことも可能であるが、各カメラの特性のバラツキにより、正確な計測が困難である。
特許文献1〜3には、従来の被写体(物体)までの距離を計測する技術が開示される。特許文献1では、カメラの光軸に対して垂直な面内で物体を移動させ、その移動距離、物体の画像の大きさ、基準となる面までの距離、及びカメラの画角に基づいて物体までの距離を測定する。特許文献2、3では、カメラで撮影した画像のサイズと実際のサイズとから物体までの距離を測定する。
特許文献1の技術は、被写体までの距離を計測可能であるが、被写体を一定速度で移動させなければならず、ユーザの手の動きの検出に適用することは困難である。特許文献2、3の技術は、被写体の姿勢が考慮されておらず、ユーザの手の動きの検出に適用することは困難である。また、特許文献2、3の技術では、ユーザの手の動きの検出に用いる場合、距離が一定であっても手の姿勢や位置の変化によりカメラで撮像する手の大きさが変化するために、正確な距離の測定ができない。
本発明は、上記の問題を解決するために、カメラ等の撮像装置からユーザの手のような被写体までの距離を算出する技術を提供することを主たる課題とする。
上記課題を解決する本発明の情報処理装置は、被写体を撮像する撮像手段と、前記撮像手段で撮像した前記被写体の画像から、前記被写体の特徴となる特徴点を抽出する特徴点抽出手段と、抽出した複数の前記特徴点のうちの2点間の画像上の距離を算出する測定手段と、前記撮像手段と前記被写体とが所定の距離にあるときの前記2点間の画像上の距離である基準長を記憶する記憶手段と、前記測定手段で算出した前記2点間の画像上の距離、前記記憶手段に記憶された前記基準長、及び前記所定の距離から、前記撮像手段と前記被写体との距離を算出する距離算出手段と、を備えることを特徴とする。
本発明によれば、効率よく撮像手段から被写体までの距離を算出することができる。
<第1実施形態>
図1は、本実施形態の情報処理装置のハードウェア構成図である。
情報処理装置は、CPU(Central Processing Unit)201、RAM(Random Access Memory)202、ROM(Read Only Memory)203、及び撮像装置としてのカメラ204を備える。CPU201,RAM202、ROM203、及びカメラ204は、各々がシステムバス205に接続されており、システムバス205を介して通信可能になっている。CPU201は、ROM203に格納されたコンピュータプログラムを読み込み、RAM202をワークエリアとして実行することで、情報処理装置の動作や各種処理を制御する。
図1は、本実施形態の情報処理装置のハードウェア構成図である。
情報処理装置は、CPU(Central Processing Unit)201、RAM(Random Access Memory)202、ROM(Read Only Memory)203、及び撮像装置としてのカメラ204を備える。CPU201,RAM202、ROM203、及びカメラ204は、各々がシステムバス205に接続されており、システムバス205を介して通信可能になっている。CPU201は、ROM203に格納されたコンピュータプログラムを読み込み、RAM202をワークエリアとして実行することで、情報処理装置の動作や各種処理を制御する。
図2は、CPU201がROM203に格納されたコンピュータプログラムを読み込んで実行することにより、情報処理装置内に実現される機能の機能ブロック図である。情報処理装置内には、撮像部101、認識部102、測定部103、制御部104、及び記憶部105が形成される。認識部102は、特徴点抽出部106及び姿勢認識部107を備える。制御部104は、基準長算出部108及び距離算出部109を備える。なお、コンピュータプログラムは、ROM203以外に、コンピュータ読み取り可能な記録媒体に記録されていてもよい。
撮像部101は、カメラ204により実現される。撮像部101は、被写体(ユーザ)の所定部位(手)を撮像する。撮像部101は、撮像した画像を認識部102、測定部103、及び制御部104に送る。
認識部102、測定部103、及び制御部104は、CPU201により実現される。認識部102は、特徴点抽出部106により、撮像部101で撮像した画像から、被写体の特徴となる点(特徴点)を抽出する。姿勢認識部107は、撮像部101で撮像した被写体(ユーザの手)の姿勢を認識する。
特徴点は、例えばユーザの手の関節等である。図3(a)は、本実施形態の特徴点の例示図である。特徴点抽出部106は、ユーザの掌の画像に対して、特徴点A〜Dを抽出する。特徴点A〜Dは、ユーザの手の甲が正面を向いた状態で定義される。特徴点抽出部106は、既知の技術により特徴点を抽出する。例えば、特徴点抽出部106は、姿勢認識部107により認識した被写体(ユーザの手)の姿勢と3次元モデルとのマッチングを行うことで特徴点を抽出する。姿勢認識部107による被写体の姿勢の認識には、例えば手の画像の輪郭を抽出して、複数の「手」の姿勢の各々の3次元モデルとマッチングする等の既知の技術を用いることができる。
測定部103は、撮像部101で撮像した被写体の画像上の所定の部分の長さを測定する。本実施形態では、測定部103は、ユーザの手の画像の所定の2点間の画像上の距離(特定箇所の長さ)を測定する。図3(b)は、本実施形態の特定箇所の長さの説明図である。図3(b)において、特定箇所の長さは、手の姿勢や形状の変化による影響が少ない長さである。図3(b)では、撮像した掌の縦方向(第1の方向)に並ぶ特徴点C、D間の距離(長さ)を特定箇所の長さh、及び横方向(第2の方向)に並ぶ特徴点A、B間の距離(長さ)を特定箇所の長さwと定める。
制御部104は、基準長算出部108により、姿勢認識部107で認識した被写体の姿勢に対応する、基準点における所定部位(手)の特定箇所の長さを算出する。「基準点」については後述する。距離算出部109は、撮像部101と被写体(ユーザの手)との距離を算出する。基準長算出部108及び距離算出部109による処理の詳細については後述する。
記憶部105は、RAM202により実現される。記憶部105には、後述する「前処理」時や被写体(ユーザの手)の動作時に測定した測定データ110が記憶される。また、記憶部105には、姿勢認識部107において用いる3次元モデルのデータベースとなる姿勢モデルデータ111が記憶される。本実施形態では、姿勢モデルデータ111は、ユーザの手が取り得る様々な姿勢を表すモデルデータである。姿勢モデルデータ111の詳細については後述する。
図4(a)は、手が基準点にあるときの手の画像の特定箇所の長さho、woを説明する図である。基準点は、撮像部101から所定の距離にあり、移動した手の画像の特定箇所の長さh、wと比較する際の基準となる、特定箇所の長さho、woを得るための位置である。以下、基準となる特定箇所の長さho、woを「基準長ho、wo」という。基準点から撮像部101までの距離doは、基準点を含む平面の基準点から撮像部101の真下までの距離xo及び該平面から撮像部101までの高さyoにより、以下の式で表される。
do=√(xo^2+yo^2) … (1)
do=√(xo^2+yo^2) … (1)
図4(b)は、手を基準点よりも撮像部101に接近させたときの手の特定箇所の長さh、wを説明する図である。手の位置が基準点よりも撮像部101に近いために、特定箇所の長さh、wが、基準長ho、woよりも長くなる。
図5は、「前処理」のフローチャートである。前処理は、撮像部101による撮像中に、手が基準点に置かれたときに開始される。前処理により基準長ho、woが記憶部105に記憶される。
撮像部101により撮像された手の画像は、認識部102に入力される。認識部102では、姿勢認識部107が撮像部101から取得した手の画像から姿勢を認識する。特徴点抽出部106は、手の画像の姿勢の認識結果に応じて、手の画像から特徴点を抽出する(S501)。図3(a)の例では、特徴点A〜Dを抽出する。
制御部104の基準長算出部108は、特徴点抽出部106で抽出された特徴点A〜Dにより、基準長ho、woを算出する。基準長算出部108は、算出した基準長ho、woを測定データ110として記憶部105に記憶する(S502)。
図6は、手を実際に動かしたとき(動作時)の撮像部101(カメラ204)と被写体(ユーザ)との距離を算出する距離算出処理のフローチャートである。
認識部102及び測定部103は、撮像部101で撮像した手の画像から特定箇所の長さh、wを算出する(S601)。特定箇所の長さh、wの算出は、図5と同様の処理により行われるが、基準長算出部108による処理を測定部103が行うことになる。特定箇所の長さh、wの算出後、制御部104は、距離算出部109により、手と撮像部101との距離dを算出する(S602)。一般に、撮像部101で撮像した画像の大きさは、被写体と撮像部101との距離に反比例する。そのために、手の特定箇所の長さhに対して、手と撮像部101との距離dは以下の式で表される。
d=do・ho/h … (2)
d=do・ho/h … (2)
特定箇所の長さwに対しても同様の式となる。他にも特定箇所の長さを算出している場合には、すべての特定箇所の長さに対して同様の式が得られる。複数の特定箇所の長さを算出している場合には、その平均値が手と撮像部101との距離dとなる。例えば、以下の式で表される。
d=1/2・{do・(ho/h+wo/w)} … (3)
d=1/2・{do・(ho/h+wo/w)} … (3)
手の姿勢を考慮しなければ、以上の処理により撮像部101と被写体(ユーザの手)との距離dが算出される。しかしながら、実際は、距離dが一定であっても、手の姿勢や位置が変わることで、撮像部101で撮像される手の画像の大きさや形状が変化する。このような手の画像の大きさや形状の変化に対応するために、姿勢モデルデータ111を用いる。図7は、姿勢モデルデータ111の説明図である。姿勢モデルデータ111は、手が取り得る様々な姿勢を表すモデルデータである。各モデルデータは、指の関節の座標や特徴パラメータ等である。本実施形態では、図7に示すようにモデル1〜モデル11の11個のモデルに関しての姿勢モデルデータ111が記憶部105に記憶される。
図8は、このような姿勢モデルデータ111を用いた場合の前処理のフローチャートである。図6の場合と同様に、前処理は、撮像部101による撮像中に、手が基準点に置かれたときに開始される。
撮像部101により撮像された手の画像は、認識部102に入力される。認識部102では、姿勢認識部107が撮像部101から取得した画像から手の姿勢を認識する。姿勢認識部107は、姿勢モデルデータ111を用いることで、認識した姿勢がモデル1〜11のいずれの姿勢であるかを判別する。例えば、姿勢認識部107は、手の画像から得られる手の輪郭と、姿勢モデルデータ111とのマッチングにより、認識した姿勢がモデル1〜11のいずれの姿勢であるかを判別する(S801)。モデル1〜11のいずれの姿勢でもない場合、姿勢認識部107は、いずれかの姿勢にマッチングするまでステップS801の処理を繰り返す(S801:N)。
モデル1〜11のいずれかの姿勢にマッチングした場合(S801:Y)、認識部102及び制御部104は、図5と同様の処理により、撮像部101で撮像した手の画像から基準長ho、woを算出する(S802)。既に基準長ho、woを算出済みの姿勢を再度認識した場合には、この処理を行う必要はないが、再度、基準長ho、woを算出して平均値の算出に用いてもよい。算出結果は、記憶部105に、図9(a)に示すようなモデルデータ毎の基準長ho、woを表すテーブルとして記憶される。この際、同時に、撮像部101の焦点距離も記憶する。
認識部102及び制御部104は、姿勢モデルデータ111の全モデルデータ、或いはその中で利用すると定めたモデルデータに関する基準長ho、woの算出が終了すると、前処理を終了する(S803:Y)。基準長ho、woの算出が終了すると、図9(b)に示すテーブルが記憶部105に記憶される。
図10は、手を実際に動かしたとき(動作時)の距離算出処理のフローチャートである。
撮像部101で撮像した手の画像により、姿勢認識部107は、現在の手の姿勢を認識する(S901)。手の姿勢の認識は、図8のステップS801の処理と同様である。測定部103は、現在の姿勢に対応する基準長を、記憶部105に記憶された図9(b)のテーブルから読み出す(S902)。図11は、基準長の読出処理のフローチャートである。
測定部103は、モデルを1つ選択する(S1101)。例えば、図7のモデル1〜11のいずれか1つを選択する。ここではモデル1から順に1つずつ選択する。測定部103は、選択したモデルがステップS901による姿勢認識結果に一致するか否かを判別する(S1102)。一致する場合(S1102:Y)、測定部103は、当該モデルの基準長ho、woを、図9(b)のテーブルから読み込む(S1103)。読み込んだ基準長ho、woを、現在の姿勢に対応する基準長hmo、wmoとする。例えば、一致するモデルが「2」の場合、「hmo=0.004164」、「wmo=0.036」となる。
一致しない場合(S1102:N)、測定部103は、全モデル(図7のモデル1〜11)を選択したか否かを判別する(S1104)。全モデルを選択した場合(S1104:Y)、測定部103は、エラーが発生していると判断してエラー処理を行い、処理を終了する(S1105)。未選択のモデルがある場合(S1104:N)、測定部103は、ステップS1101の処理に戻り、次のモデルを選択して処理を繰り返す。
以上のような処理により、測定部103は、現在の手の姿勢に対応する基準長hmo、wmoをテーブルから読み出す。
基準長hmo、wmoの読み出し後に、認識部102及び測定部103は、図6のステップS601と同様の処理により、撮像部101で撮像した手の画像から特定箇所の長さh、wを算出する(S903)。特定箇所の長さh、wの算出後、距離算出部109は、手と撮像部101との距離dを算出する(S904)。上述の通り、画像の大きさは距離に反比例するので、距離算出部109は、これを利用して手と撮像部101の距離dを算出する。ここでは基準長ho、woに代わり、現在の姿勢に対応付けられた基準長hmo、wmoを用いて、以下の式により算出する。
d=1/2・{do・(hmo/h+wmo/w)} … (4)
d=1/2・{do・(hmo/h+wmo/w)} … (4)
このように、本実施形態では、前処理時に、予め、基準点における被写体の所定部位(ユーザの手)がとり得る様々な姿勢による基準長ho、woを測定する。動作時には、現在の姿勢と同じ姿勢の基準点における基準長hmo、wmoを利用することで、所定部位の姿勢や位置のずれに対応して、正確な所定部位と撮像部101との距離dを算出することができる。
<第1実施形態の変形例1>
前処理時には、ユーザがモデルデータの数だけ姿勢を変えて基準長を算出する必要があるため、ユーザの負担となる。このようなユーザの負担を低減するために、基準長算出部108により、1つの姿勢について基準長hmo、wmoを算出しておき、他の姿勢については、該1つの姿勢の基準長hmo、wmoから算出してもよい。
前処理時には、ユーザがモデルデータの数だけ姿勢を変えて基準長を算出する必要があるため、ユーザの負担となる。このようなユーザの負担を低減するために、基準長算出部108により、1つの姿勢について基準長hmo、wmoを算出しておき、他の姿勢については、該1つの姿勢の基準長hmo、wmoから算出してもよい。
図12は、空間内の手の位置と、画像平面上の手の画像の位置の関係を表す図である。手の特徴点A、B、C、Dは、例えば図3(a)に示すように定義される。図12において、点Oは撮像部101のレンズ中心を示し、Z軸はレンズの光軸方向を指す。点Q(X,Y,Z)は空間中の基準点における手の座標である。画像平面は、点Oから前方にレンズの焦点距離foにあり、画像平面のx軸、y軸は、レンズの光軸に垂直である。点Q(X,Y,Z)の画像平面への射影は、直線OQと画像平面との交点q(x,y)であり、手のZ座標の値が焦点距離foに対して充分に大きい場合に次式が成り立つことが知られている。
X=x・f/z … (5)
Y=y・f/z … (6)
X=x・f/z … (5)
Y=y・f/z … (6)
撮像部101にて撮像した画像から特徴点A、B、C、Dのそれぞれの画像平面上の平面座標(x座標、y座標)が得られる。レンズの焦点距離foと基準点のZ座標は既知なので、これにより特徴点A、B、C、Dのそれぞれの基準点における空間座標(X座標、Y座標)が算出できる。このようにして得られた空間座標A、B、C、Dに対してモデル毎(姿勢毎)に定められた演算処理を行うことで、モデル毎に空間座標を求める。例えば、モデル毎に定められた回転角分回転させて、回転後のモデルごとの空間座標を求める。各軸周りの回転行列は、図13に示す通りである。図13(a)はX軸周りの回転、図13(b)はY軸周りの回転、図13(c)はZ軸周りの回転に関する計算式である。これ以外の回転行列は、これら3つの各軸周りの回転行列の積によって求められる。
(5)、(6)式により、回転後の空間座標を画像平面上の平面座標に変換することで各姿勢モデルの平面座標が得られる。特徴点Aの平面座標を(xa,ya)、特徴点Bの平面座標を(xb,yb)、特徴点Cの平面座標を(xc,yc)、特徴点Dの平面座標を(xd,yd)とすると、その姿勢における基準点での基準長hmo、wmoは以下の式で表される。
hmo=√{(yb−ya)^2+(yc−yd)^2} … (7)
wmo=√{(xb−xa)^2+(xc−xd)^2} … (8)
hmo=√{(yb−ya)^2+(yc−yd)^2} … (7)
wmo=√{(xb−xa)^2+(xc−xd)^2} … (8)
焦点距離fo=0.03、Z=100のときに、撮像部101にて撮像した画像から読み取れる座標に基づいて各軸周りに回転させたときの計算例を、図14に示す。なお、距離算出処理は図10と同様である。これによりユーザが実際に様々な姿勢をとらなくても、計算により各モデルの姿勢のときのデータを算出することができる。
<第1実施形態の変形例2>
特定箇所の長さh、wは、その両方を距離dの算出に用いているが、これは、いずれか一方のみであってもよい。
特定箇所の長さh、wは、その両方を距離dの算出に用いているが、これは、いずれか一方のみであってもよい。
図15は、特定箇所の長さh、wのいずれか一方のみを用いる場合の前処理のフローチャートである。前処理は、撮像部101による撮像中に、手が基準点に置かれたときに開始される。
撮像部101により撮像された手の画像は、認識部102に入力される。認識部102では、姿勢認識部107が基準点における手の姿勢を認識して、認識結果が姿勢モデルデータ111のいずれのモデルに当たるかを判別する。手の姿勢の認識処理は、図8のステップS801と同様である。姿勢認識部107は、この処理により手が正面を向いた姿勢(図7のモデル1)であるか否かを判別する(S1501)。姿勢認識部107は、手が正面を向いた姿勢になるまで、この処理を繰り返す(S1501:N)。
姿勢認識部107が、手が正面を向いた姿勢であると判別すると(S1501:Y)、認識部102及び制御部104は、基準長ho、woを算出する(S1502)。基準長ho、woの算出方法は、図5の処理と同様である。基準長ho、woの算出後、測定部103は、基準長ho、woの比率ro=ho/woを算出する。測定部103は、算出した比率roを測定データ110として記憶部105に記憶する。前処理は、以上のように行われる。
図16は、手を実際に動かしたとき(動作時)の距離算出処理のフローチャートである。
認識部102及び測定部103は、特定箇所の長さh、wを算出する(S1601)。特定箇所の長さh、wの算出方法は、図10のS901〜S903の処理と同様である。特定箇所の長さh、wの算出後、測定部103は、特定箇所の長さh、wの比率r=h/wを算出する(S1602)。比率rの算出後、制御部104の距離算出部109は、比率rと測定データ110として記憶した比率roとを比較する(S1603)。
認識部102及び測定部103は、特定箇所の長さh、wを算出する(S1601)。特定箇所の長さh、wの算出方法は、図10のS901〜S903の処理と同様である。特定箇所の長さh、wの算出後、測定部103は、特定箇所の長さh、wの比率r=h/wを算出する(S1602)。比率rの算出後、制御部104の距離算出部109は、比率rと測定データ110として記憶した比率roとを比較する(S1603)。
比較の結果、比率rが比率roより大きい場合(S1603:Y)、距離算出部109は、基準点における基準長hoと現在の特定箇所の長さhとから、以下の式により撮像部101と手との距離dを算出する。
d=do・ho/h …(9)
d=do・ho/h …(9)
比較の結果、比率rが比率ro以下の場合(S1603:N)、距離算出部109は、基準点における基準長hoと現在の特定箇所の長さhとから、以下の式により撮像部101と手との距離dを算出する。
d=do・wo/w …(10)
d=do・wo/w …(10)
このように、特定箇所の長さh、wのいずれか一方を用いて撮像部101と手との距離dを算出することで、計算量を削減することができ、処理の負荷を低減して高速な処理が実現できる。
以上説明したように、手の姿勢が変化した場合でも1つの撮像部101により、撮像部101と手との距離を算出することができ、装置全体の小型化を図ることができる。
[第2実施形態]
第1実施形態では、動作時の手の姿勢や特徴点を抽出して撮像部101と手との距離dを算出しているが、手の姿勢や特徴点は、撮像した画像から必ず認識できるとは限らない。第2実施形態では、手の姿勢や特徴点が認識できない場合の処理を説明する。第2実施形態においても、第1実施形態と同様の情報処理装置を用いることができる。そのために、情報処理装置の構成についての説明を省略する。また、前処理についても第1実施形態と同様であり、説明を省略する。
第1実施形態では、動作時の手の姿勢や特徴点を抽出して撮像部101と手との距離dを算出しているが、手の姿勢や特徴点は、撮像した画像から必ず認識できるとは限らない。第2実施形態では、手の姿勢や特徴点が認識できない場合の処理を説明する。第2実施形態においても、第1実施形態と同様の情報処理装置を用いることができる。そのために、情報処理装置の構成についての説明を省略する。また、前処理についても第1実施形態と同様であり、説明を省略する。
図17は、動作時に手の姿勢を認識できなかった場合の処理のフローチャートである。
認識部102の特徴点抽出部106は、撮像部101から取得した手の画像から、手の特徴点を抽出する(S1701)。上述の通り、特徴点の抽出には既知の技術を用いる。認識部102は、特徴点抽出部106が、図3(a)の特徴点A、B又は特徴点C、Dを抽出したか否かを判別する(S1702)。特徴点A、B又は特徴点C、Dを抽出できなかった場合(S1702:N)、認識部102は、エラー処理を行い処理を終了する(S1704)。
認識部102の特徴点抽出部106は、撮像部101から取得した手の画像から、手の特徴点を抽出する(S1701)。上述の通り、特徴点の抽出には既知の技術を用いる。認識部102は、特徴点抽出部106が、図3(a)の特徴点A、B又は特徴点C、Dを抽出したか否かを判別する(S1702)。特徴点A、B又は特徴点C、Dを抽出できなかった場合(S1702:N)、認識部102は、エラー処理を行い処理を終了する(S1704)。
特徴点A、Bを抽出した場合(S1702:Y、S1703:A&B)、制御部104の距離算出部109は、基準長wo及び特定箇所の長さwを利用して、撮像部101と手との距離dを算出する(S1705)。図18は、特徴点を抽出できない場合の画像の例示図である。図18(a)、(c)は、特徴点A、B、Dが抽出される場合の手の画像の例示図である。図18(a)、(c)では、撮像部101に対する掌の向きや撮像範囲外への手の移動等により、特徴点Cが抽出できなくなっている。撮像部101と手との距離dは、特徴点A、Bから求められる特定箇所の長さwにより、以下の式で算出される。
d=do・wo/w …(11)
d=do・wo/w …(11)
特徴点C、Dを抽出した場合(S1702:Y、S1703:C&D)、制御部104の距離算出部109は、基準長ho及び特定箇所の長さhを利用して、撮像部101と手の距離dを算出する(S1706)。図18(b)、(d)は、特徴点A、C、Dが抽出される場合の手の画像の例示図である。図18(b)、(d)では、撮像部101に対する掌の向きや撮像範囲外への手の移動等により、特徴点Bが抽出できなくなっている。撮像部101と手との距離dは、特徴点C、Dから求められる特定箇所の長さhにより、以下の式で算出される。
d=do・ho/h …(12)
d=do・ho/h …(12)
このように、第2実施形態では、手の画像から認識した特徴点が少なく、手の姿勢を認識できない場合でも、認識できた特徴点により撮像部101と手との距離dを算出可能である。
[第3実施形態]
第1実施形態では、撮像部101のレンズの焦点距離fが常に固定されている場合を説明した。第3実施形態では、手の位置を固定したまま、レンズの焦点距離fを変化させる。焦点距離fを変化させることで、被写体(ユーザの手)の画像を拡大して撮像可能であり、特徴点の座標を正確に取得することができる。第3実施形態においても、第1実施形態と同様の情報処理装置を用いることができる。そのために、情報処理装置の構成についての説明を省略する。また、前処理についても第1実施形態と同様であり、説明を省略する。なお、前処理時のレンズの焦点距離を「fo」とする。
第1実施形態では、撮像部101のレンズの焦点距離fが常に固定されている場合を説明した。第3実施形態では、手の位置を固定したまま、レンズの焦点距離fを変化させる。焦点距離fを変化させることで、被写体(ユーザの手)の画像を拡大して撮像可能であり、特徴点の座標を正確に取得することができる。第3実施形態においても、第1実施形態と同様の情報処理装置を用いることができる。そのために、情報処理装置の構成についての説明を省略する。また、前処理についても第1実施形態と同様であり、説明を省略する。なお、前処理時のレンズの焦点距離を「fo」とする。
画像が小さい場合には特徴点の座標値の読み出しの際に誤差が生じやすい。図19は、焦点距離fと画像の大きさの関係を表す図である。図19の例では、図19(b)よりも図19(c)、図19(c)よりも図19(d)の方が、平面画像上における手の画像が小さくなる。そのために、図19(b)が最も特徴点A〜Dの座標値の誤差が小さく、図19(d)が最も特徴点A〜Dの座標値の誤差が大きくなる。測定部103が算出する画像上の特定箇所の長さh、wは、座標値の誤差がそのまま影響するために、正確な座標値の取得が必要である。
第3実施形態では、特徴点の座標値を読み取る際に、手の画像が大きくなるように光学系(レンズ)を移動させることで焦点距離fを調整する。これにより、特徴点の座標値の誤差をできるだけ小さくする。
図20は、手を実際に動かしたとき(動作時)の距離算出処理のフローチャートである。図20は、第1実施形態の図10のフローチャートに、ステップS2001及びステップS2002の処理を追加しており、他の処理は同じである。
図10と同様に、手の姿勢を認識し、基準長hmo、wmoを記憶部105から読み出した後、情報処理装置は、撮像部101のレンズの焦点距離fを調整する(S2001)。なお、記憶部105には、基準長hmo、wmoを算出したときの焦点距離foが記憶されている。測定部103は、基準長hmo、wmoとともに、焦点距離foも読み出す。図21は、焦点距離fの調整処理のフローチャートである。
認識部102の特徴点抽出部106は、撮像部101で撮像した手の画像から特徴点A〜Dを抽出してその座標を取得し、測定データとして記憶部105に一時保持する。特徴点の抽出は、第1、第2実施形態と同様である(S2101)。測定部103は、特徴点A、B間の距離(特定箇所の長さw)と特徴点C、D間の距離(特定箇所の長さh)の和をLmaxとして記憶部105に一時保持する。また、現在の焦点距離fが記憶部105に一時保持される(S2102)。
撮像部101は、レンズの焦点距離fの調整(光学系の移動)が可能であるか否かを確認する。例えば、焦点距離fを現在より長くできるかを確認する(S2103)。可能である場合(S2103:Y)、撮像部101は、焦点距離fを「fd」だけ長くする。焦点距離は「f+fd」になる。ここで、「fd」は所定値であり、例えば、特徴点A、B間の長さと特徴点C、D間の長さに基づいて算出される(S2104)。測定部103は、撮像部101が焦点距離f+fdで撮像した手の画像を取得して、この画像内に特徴点A〜Dがあるか否かを確認する(S2105)。特徴点A〜Dのうち1つでも画像から外れている場合(S2105:N)、測定部103は、ステップS2101で一時保持した特徴点A〜Dの座標と焦点距離fとを対応づけて、測定データ110として記憶部105に記憶する(S2109)。
特徴点A〜Dが画像内にある場合(S2105:Y)、特徴点抽出部106は、撮像部101が焦点距離f+fdで撮像した手の画像から特徴点A〜Dの座標を取得する。測定部103は、特徴点A、B間の距離と特徴点C、D間の距離の和をLを算出する(S2106)。
測定部103は、ステップS2102で記憶部105に一時保持したLmaxと、ステップS2106で算出したLとを比較する(S2107)。LmaxよりもLが大きい場合(S2107:Y)、測定部103は、LmaxをLに更新する。また、特徴点A〜Dの座標及び焦点距離も、ステップS2101で一時保持したものからステップS2106で取得したものに更新する(S2108)。その後、ステップS2103に戻り、ステップS2103移行の処理を繰り返す。
LmaxよりもLが小さい場合(S2107:N)、測定部103は、その時点で一時保持している特徴点A〜Dの座標と焦点距離fを対応づけて、測定データ110として記憶部105に記憶する(S2109)。
焦点距離fを現在より大きくできない場合(S2103:N)、測定部103は、ステップS2101で一時保持した特徴点A〜Dの座標と焦点距離fを対応づけて、測定データ110として記憶部105に記憶する(S2109)。
以上の処理により、焦点距離の調整処理が終了する。焦点距離の調整処理により、手の画像を、特徴点A〜Dの座標が抽出可能な最大の画像にまで拡大して、特徴点A〜Dの座標を取得することができる。焦点距離の調整が終了すると、認識部102及び測定部103は、焦点距離調整後の特徴点A〜Dの座標に基づいて特定箇所の長さh、wを算出する(S903)。制御部104の距離算出部109は、記憶部105から測定データ110を読み込み、撮像部101と手との距離dを算出する(S2002)。基準点における焦点距離と動作時の焦点距離とが異なるために、第1実施形態とは処理に差が生じる。撮像部101と手との距離dは、基準点における焦点距離fo、基準長hmo、wmo、及び現在の焦点距離fから、以下の式により算出される。
d=1/2・{do・(hmo/h+wmo/w)・fo/f} … (13)
fo:基準点算出時の焦点距離、f:現在の焦点距離
d=1/2・{do・(hmo/h+wmo/w)・fo/f} … (13)
fo:基準点算出時の焦点距離、f:現在の焦点距離
なお、基準点における基準長hmo、wmoを測定する際にステップS2001の焦点距離の調整処理を行ってもよい。この場合、例えば図8のフローチャートで示す処理を行う場合は、ステップS801の後(ステップS803の前)にステップS2001を行い、測定した基準長ho、woと対応づけてそのときの焦点距離foを記憶部105に保持しておけばよい。
以上説明したように、本実施形態によれば、手と撮像部101の距離を測定する際に光学系を利用して測定誤差の影響を少なくすることができる。
Claims (10)
- 被写体を撮像する撮像手段と、
前記撮像手段で撮像した前記被写体の画像から、前記被写体の特徴となる特徴点を抽出する特徴点抽出手段と、
抽出した複数の前記特徴点のうちの2点間の画像上の距離を算出する測定手段と、
前記撮像手段と前記被写体とが所定の距離にあるときの前記2点間の画像上の距離である基準長を記憶する記憶手段と、
前記測定手段で算出した前記2点間の画像上の距離、前記記憶手段に記憶された前記基準長、及び前記所定の距離から、前記撮像手段と前記被写体との距離算出する距離算出手段と、を備えることを特徴とする、
情報処理装置。 - 前記被写体の複数の姿勢の各々の3次元モデルを記憶する第2の記憶手段と、
前記被写体の画像と前記3次元モデルとのマッチングにより、前記被写体の姿勢を認識する姿勢認識手段と、を備え、
前記記憶手段は、前記複数の姿勢の各々に対応する、前記撮像手段と前記被写体とが前記所定の距離にあるときの前記基準長を記憶し、
前記距離算出手段は、前記測定手段で算出した前記2点間の画像上の距離、前記姿勢認識手段で認識した前記被写体の姿勢に対応する基準長、及び前記撮像手段と前記被写体との前記所定の距離から、前記撮像手段と前記被写体との前記距離を算出することを特徴とする、
請求項1記載の情報処理装置。 - 前記撮像手段と前記被写体とが所定の距離にあるときの所定の2点間の画像上の距離である前記基準長を算出するとともに、前記所定の2点の座標を前記複数の姿勢毎に定められた演算処理を行うことで姿勢毎の新たな2点の座標を算出し、算出した姿勢毎の新たな2点の座標により、前記複数の姿勢の各々に対応する前記基準長を算出する基準長算出手段を備えることを特徴とする、
請求項2記載の情報処理装置。 - 前記測定手段は、複数の前記特徴点のうち第1の方向に並ぶ2点間の画像上の距離及び第2の方向に並ぶ2点間の画像上の距離を算出し、
前記記憶手段は、前記撮像手段と前記被写体とが所定の距離にあるときの、前記第1の方向に並ぶ2点間の画像上の距離である第1の基準長及び前記第2の方向に並ぶ2点間の画像上の距離である第2の基準長を記憶し、
前記距離算出手段は、前記測定手段で算出した前記第1の方向に並ぶ2点間の画像上の距離及び前記第2の方向に並ぶ2点間の画像上の距離、前記記憶手段に記憶された前記第1の基準長及び前記第2の基準長、及び前記所定の距離から、前記撮像手段と前記被写体との距離を算出することを特徴とする、
請求項1〜3のいずれか1項記載の情報処理装置 - 前記距離算出手段は、
前記第1の基準長と前記第2の基準長の比率及び前記第1の方向に並ぶ2点間の画像上の距離及び前記第2の方向に並ぶ2点間の画像上の距離の比率を比較し、比較の結果に応じて、前記第1の方向に並ぶ2点間の画像上の距離、前記第1の基準長、及び前記所定の距離により、又は前記第2の方向に並ぶ2点間の画像上の距離、前記第2の基準長、及び前記所定の距離により、前記撮像手段と前記被写体との距離を算出することを特徴とする、
請求項4記載の情報処理装置。 - 前記距離算出手段は、前記特徴点抽出手段が前記第1の方向に並ぶ2点又は前記第2の方向に並ぶ2点のいずれかの特徴点しか抽出できなかった場合、抽出できた2点間の画像上の距離、該2点の並ぶ方向の基準長、及び前記所定の距離により、前記撮像手段と前記被写体との距離を算出することを特徴とする、
請求項4記載の情報処理装置。 - 前記撮像手段は、焦点距離を変化させることで前記被写体の画像を拡大して撮像可能であり、
前記特徴点抽出手段は、前記特徴点を抽出可能な最大の前記被写体の画像から当該特徴点を抽出し、
前記記憶手段は、前記撮像手段と前記被写体とが所定の距離にあるときの画像を撮像したときの焦点距離を記憶し、
前記距離算出手段は、前記測定手段で算出した前記2点間の画像上の距離、前記記憶手段に記憶された前記基準長、前記記憶手段に記憶された前記焦点距離、前記所定の距離、及び前記特徴点を抽出可能な最大の前記被写体の画像を撮像したときの焦点距離から、前記撮像手段と前記被写体との距離を算出する距離算出手段と、を備えることを特徴とする、
請求項1〜3のいずれか1項記載の情報処理装置。 - 被写体を撮像する撮像装置を備えた情報処理装置により実行される方法であって、
前記撮像装置で撮像した前記被写体の画像から、前記被写体の特徴となる特徴点を抽出するステップと、
抽出した複数の前記特徴点のうちの2点間の画像上の距離を算出するステップと、
前記撮像装置と前記被写体とが所定の距離にあるときの前記2点間の画像上の距離である基準長を所定の記憶手段に記憶するステップと、
前記2点間の画像上の距離、前記記憶手段に記憶された前記基準長、及び前記所定の距離から、前記撮像装置と前記被写体との距離を算出するステップと、を含むことを特徴とする、
距離算出方法。 - 被写体を撮像する撮像装置を備えたコンピュータに、
前記撮像装置で撮像した前記被写体の画像から、前記被写体の特徴となる特徴点を抽出する特徴点抽出手段、
抽出した複数の前記特徴点のうちの2点間の画像上の距離を算出する測定手段、
前記撮像装置と前記被写体とが所定の距離にあるときの前記2点間の画像上の距離である基準長を記憶する記憶手段、
前記測定手段で算出した前記2点間の画像上の距離、前記記憶手段に記憶された前記基準長、及び前記所定の距離から、前記撮像装置と前記被写体との距離を算出する距離算出手段、
を形成するためのコンピュータプログラム。 - 請求項9記載のコンピュータプログラムが記録された、コンピュータ読み取り可能な記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013139438A JP2015015517A (ja) | 2013-07-03 | 2013-07-03 | 情報処理装置、距離算出方法、コンピュータプログラム、及び記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013139438A JP2015015517A (ja) | 2013-07-03 | 2013-07-03 | 情報処理装置、距離算出方法、コンピュータプログラム、及び記録媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2015015517A true JP2015015517A (ja) | 2015-01-22 |
Family
ID=52436981
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013139438A Pending JP2015015517A (ja) | 2013-07-03 | 2013-07-03 | 情報処理装置、距離算出方法、コンピュータプログラム、及び記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2015015517A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111657858A (zh) * | 2019-03-07 | 2020-09-15 | 株式会社日立制作所 | 图像诊断装置、图像处理方法和程序 |
-
2013
- 2013-07-03 JP JP2013139438A patent/JP2015015517A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111657858A (zh) * | 2019-03-07 | 2020-09-15 | 株式会社日立制作所 | 图像诊断装置、图像处理方法和程序 |
CN111657858B (zh) * | 2019-03-07 | 2023-08-01 | 株式会社日立制作所 | 图像诊断装置、图像处理方法和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6195915B2 (ja) | 画像計測装置 | |
US9672630B2 (en) | Contour line measurement apparatus and robot system | |
JP6245885B2 (ja) | 撮像装置およびその制御方法 | |
JP5018980B2 (ja) | 撮像装置、長さ測定方法、及びプログラム | |
JP5715735B2 (ja) | 3次元測定方法、装置、及びシステム、並びに画像処理装置 | |
JP5580164B2 (ja) | 光学情報処理装置、光学情報処理方法、光学情報処理システム、光学情報処理プログラム | |
JP6836561B2 (ja) | 画像処理装置及び画像処理方法 | |
JP5584832B2 (ja) | 円柱状物体の直径測定装置及び測定方法、測定プログラム | |
JP5951043B2 (ja) | 画像計測装置 | |
JP2014013147A5 (ja) | ||
JP2007323615A (ja) | 画像処理装置及びその処理方法 | |
WO2011125937A1 (ja) | キャリブレーションデータ選択装置、選択方法、及び選択プログラム、並びに三次元位置測定装置 | |
KR101703013B1 (ko) | 3차원 스캐너 및 스캐닝 방법 | |
JP2017033429A (ja) | 3次元物体検査装置 | |
JP2013513095A (ja) | 物体の改善されたステレオ画像を得る方法およびシステム | |
JP5007863B2 (ja) | 3次元物体位置計測装置 | |
JP6332951B2 (ja) | 画像処理装置および画像処理方法、およびプログラム | |
JP5828024B2 (ja) | 3次元測定装置 | |
JP5875272B2 (ja) | 3次元計測方法 | |
JP2017203701A (ja) | 情報処理装置、計測システム、情報処理方法およびプログラム | |
JP6789899B2 (ja) | 計測装置および計測装置の作動方法 | |
JP2013130508A (ja) | 3次元計測方法、3次元計測プログラム及びロボット装置 | |
WO2019087253A1 (ja) | ステレオカメラのキャリブレーション方法 | |
JP2007323616A (ja) | 画像処理装置及びその処理方法 | |
JP2021021577A (ja) | 画像処理装置及び画像処理方法 |