JP2018092273A - 姿勢推定方法、姿勢推定プログラム及び姿勢推定装置 - Google Patents

姿勢推定方法、姿勢推定プログラム及び姿勢推定装置 Download PDF

Info

Publication number
JP2018092273A
JP2018092273A JP2016233425A JP2016233425A JP2018092273A JP 2018092273 A JP2018092273 A JP 2018092273A JP 2016233425 A JP2016233425 A JP 2016233425A JP 2016233425 A JP2016233425 A JP 2016233425A JP 2018092273 A JP2018092273 A JP 2018092273A
Authority
JP
Japan
Prior art keywords
image
posture
unit
range
model
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
Application number
JP2016233425A
Other languages
English (en)
Inventor
隆登 大橋
Takato Ohashi
隆登 大橋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2016233425A priority Critical patent/JP2018092273A/ja
Priority to US15/786,831 priority patent/US10304181B2/en
Publication of JP2018092273A publication Critical patent/JP2018092273A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/0007Image acquisition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • G06T7/0004Industrial image inspection
    • G06T7/001Industrial image inspection using an image reference approach
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/149Segmentation; Edge detection involving deformable models, e.g. active contour models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/107Static hand or arm
    • G06V40/113Recognition of static hand signs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/20Movements or behaviour, e.g. gesture recognition
    • G06V40/28Recognition of hand or arm movements, e.g. recognition of deaf sign language
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10024Color image

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • General Health & Medical Sciences (AREA)
  • Social Psychology (AREA)
  • Psychiatry (AREA)
  • Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Artificial Intelligence (AREA)
  • Image Analysis (AREA)
  • Length Measuring Devices By Optical Means (AREA)
  • Image Processing (AREA)

Abstract

【課題】パーティクルを生成する乱数の発生範囲を適切に設定すること。
【解決手段】姿勢推定装置10は、画像を取得し、取得された第1の画像と、第1の画像よりも前に取得された第2の画像との差分に基づいて不一致度を算出し、不一致度から第1の画像が取得されたフレームで姿勢の推定対象とするモデルの可動部が可動すると推定される範囲を可動部ごとに設定し、可動部ごとに設定された範囲をモデルの各可動部の変化量を定める乱数の生成範囲として、モデルの姿勢の候補とするパーティクルを生成する生成部へ出力する処理を実行する。
【選択図】図1

Description

本発明は、姿勢推定方法、姿勢推定プログラム及び姿勢推定装置に関する。
形状が変化する物体の姿勢を推定する技術の一例として、進化的アルゴリズムの1つであるPSO(Particle Swarm Optimization)という技術が用いられる。例えば、手の姿勢が推定される場合、手の可動部である関節ごとに関節の位置および関節が可動する角度などのパラメータを持つモデルが定義される。このようなモデル化が行われる場合、手の姿勢の推定には、26次元のパラメータの推定が行われることになる。
ここで、PSOでは、1時刻前に推定された姿勢に乱数を用いて算出された変化量を加算することにより現在の姿勢の候補をパーティクルとして生成する。例えば、手の姿勢が推定される場合、パーティクルの生成に用いる乱数の発生範囲は、関節が可動できる最大の範囲内に設定される。このように生成される複数のパーティクルと観測データとの誤差にしたがって各パーティクルの更新を繰り返し、評価が最高となるパーティクルが出力される。
特開2008−112211号公報 国際公開第2005/043466号 国際公開第2009/091029号
しかしながら、上記の技術では、パーティクルを生成する乱数の発生範囲を適切に設定することができない場合がある。
すなわち、観測データが取得される度に、各関節が当該関節の可動できる最大の範囲まで可動されるとは限らない。それにもかかわらず、上記の乱数の発生範囲を関節の可動最大範囲に固定して設定する場合、実際の姿勢の変化よりも過度に大きな範囲でパーティクルが生成されることになる。この場合、パーティクルの更新結果が現実の姿勢に収束しづらくなり、パーティクルの更新結果が現実の姿勢に収束するまでに多くの繰り返しが必要となる。さらに、パーティクルの更新を繰り返す途中で局所解に陥る可能性も高まり、現実の姿勢からかけ離れた姿勢が推定されてしまうこともある。
1つの側面では、本発明は、パーティクルを生成する乱数の発生範囲を適切に設定できる姿勢推定方法、姿勢推定プログラム及び姿勢推定装置を提供することを目的とする。
一態様の姿勢推定方法では、画像を取得し、取得された第1の画像と、前記第1の画像よりも前に取得された第2の画像との差分に基づいて不一致度を算出し、前記不一致度から、前記第1の画像が取得されたフレームで姿勢の推定対象とするモデルの可動部が可動すると推定される範囲を前記可動部ごとに設定し、前記可動部ごとに設定された範囲を前記モデルの各可動部の変化量を定める乱数の生成範囲として、前記モデルの姿勢の候補とするパーティクルを生成する生成部へ出力する、処理をコンピュータが実行する。
パーティクルを生成する乱数の発生範囲を適切に設定できる。
図1は、実施例1に係る姿勢推定装置の機能的構成を示すブロック図である。 図2は、モデルの一例を示す図である。 図3は、可動範囲の設定例を示す図である。 図4は、実施例1に係る姿勢推定処理の手順を示すフローチャートである。 図5は、乱数の発生範囲の一例を示す図である。 図6は、乱数の発生範囲の一例を示す図である。 図7は、不一致度算出の応用例を示す図である。 図8は、実施例1及び実施例2に係る姿勢推定プログラムを実行するコンピュータのハードウェア構成例を示す図である。
以下に添付図面を参照して本願に係る姿勢推定方法、姿勢推定プログラム及び姿勢推定装置について説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
図1は、実施例1に係る姿勢推定装置の機能的構成を示すブロック図である。図1に示す姿勢推定装置10は、形状が変化する物体の姿勢を推定するものである。この姿勢の推定には、一例として、進化的アルゴリズムの1つであるPSOが適用される。
[PSO]
このPSOでは、n−1フレーム目で推定された姿勢からnフレーム目の姿勢の候補、いわゆる姿勢の仮説を乱数を用いてパーティクルとして生成する。その上で、下記の式(1)および下記の式(2)にしたがってパーティクルが更新される。
Figure 2018092273
Figure 2018092273
式(1)は、k+1回目の更新におけるi番目のパーティクルの姿勢の変化速度vを算出する式である。この式(1)には、3つの項が含まれる。すなわち、1項目には、固定の重み係数wと、k回目の更新におけるi番目のパーティクルの姿勢の変化速度vとが含まれる。さらに、2項目には、固定の比率cと、乱数rと、k回目の更新において1つのパーティクルの中で最適である姿勢xPbest,iと、k回目の更新にけるi番目のパーティクルの姿勢xとが含まれる。ここで、k回目の更新時における姿勢xPbest,iには、k回目までに算出されたi番目のパーティクルの中でnフレーム目の観測データとの間で求まる評価値が最大であるものが選択される。この2項目は、k+1回目の更新における変化速度vがi番目のパーティクル個体の最適状態を維持しようと機能する。さらに、3項目には、固定の比率cと、乱数rと、k回目の更新において全てのパーティクルの中で最適である姿勢xGbest,iと、k回目の更新にけるi番目のパーティクルの姿勢xとが含まれる。ここで、k回目の更新時における姿勢xGbest,iには、k回目に算出された全てのパーティクルの中でnフレーム目の観測データとの間で求まる評価値が最大であるものが選択される。この3項目は、k+1回目の更新における変化速度vがi番目のパーティクル全体の最適状態へ向かうように機能する。なお、乱数r及び乱数rは、更新回数が小さいほどその発生範囲を広く設定し、更新回数が多くなるほどその発生範囲を小さく設定することにより、パーティクルを収束しやく制御することもできる。
式(2)は、k+1回目の更新におけるi番目のパーティクルの姿勢xを算出する式である。この式(2)には、2つの項が含まれる。すなわち、1項目には、k回目の更新にけるi番目のパーティクルの姿勢xが含まれる。さらに、2項目には、式(1)で求められる、k+1回目の更新におけるi番目のパーティクルの姿勢の変化速度vが含まれる。
これら式(1)及び式(2)にしたがって変化速度vおよび姿勢xがパーティクルごとに更新される。その後、変化速度vおよび姿勢xの更新は、更新回数が所定の上限回数に達するか、あるいは姿勢xGbest,iの評価値が所定の閾値以上になるまで繰り返し行われる。
[モデルの一例]
図2は、モデルの一例を示す図である。図2には、手が手首、手首から先の関節および抹消部(指先)にモデル化された例が示されている。さらに、図2には、手首の関節のパラメータがグローバル座標系で表される一方で、その他の関節や抹消部は、1つ前の関節の座標系で表される場合が例示されている。さらに、図2に示すパラメータのうち「X」、「Y」及び「Z」は、3次元の直交座標を指し、「r」「p」「y」は、X軸回りの角度、Y軸回りの角度、Z軸回りの角度を指す。なお、図2には、手のモデルを一例として示したが、形状が変化する他の物体のモデルにもPSOによる姿勢推定を適用できる。
図2に示すように、手のモデルには、手首と、親指の関節1〜関節3および親指の指先と、人差し指の関節1〜関節3および人差し指の指先と、中指の関節1〜関節3および中指の指先と、薬指の関節1〜関節3および薬指の指先と、小指の関節1〜関節3および小指の指先とが含まれる。これらのうち、関節には、関節の位置と向きとがパラメータとして定義される一方で、指先には、位置がパラメータとして定義される。これらのパラメータのうち、図2に太字で示されたパラメータは、手の動きにより変化するパラメータであり、その他のパラメータは、個人の特性、すなわち身体的特徴により定まる固定のパラメータである。故に、手の姿勢を推定することは、図2に太字で示された26個のパラメータを推定することと等価であると言える。
このように図2に示す手のモデルから手の姿勢を推定する場合、図2に太字で示されたパラメータを含むベクトルがパーティクルの姿勢xとして定義されると共に、この姿勢xが時間で微分されたものが変化速度vとして定義される。すなわち、i番目のパーティクルの姿勢xは、下記の式(3)の通りに表されると共に、i番目のパーティクルの変化速度vは、下記の式(4)の通りに表される。
Figure 2018092273
Figure 2018092273
[機能的構成]
図1に示すように、姿勢推定装置10は、画像入力部11と、画像保持部12と、不一致度算出部13と、可動範囲設定部14と、パーティクル生成部15と、第1の更新部16と、第2の更新部17と、出力部18とを有する。
画像入力部11は、画像を入力する処理部である。この画像入力部11は、取得部の一例である。
一実施形態として、画像入力部11は、図示しない距離画像センサ、例えばIR(infrared)カメラ等を用いて、IRカメラが赤外線の照射光が環境の対象物に反射して戻ってくるまでの時間を計測することにより距離画像(x,y,d)を取得することができる。他の一例として、画像入力部11は、映像を蓄積するハードディスクや光ディスクなどの補助記憶装置またはメモリカードやUSB(Universal Serial Bus)メモリなどのリムーバブルメディアから距離画像を取得することもできる。更なる一例として、画像入力部11は、外部装置からネットワークを介して受信することによって距離画像を取得することもできる。このように姿勢推定装置10が距離画像を取得する経路は、センサ、ネットワークや記録媒体などの任意の経路であってよく、特定の経路に限定されない。その後、画像入力部11は、任意の経路を通じて取得された距離画像を画像保持部12、不一致度算出部13および第2の更新部17へ入力する。
なお、ここでは、画像保持部12、不一致度算出部13および第2の更新部17に距離画像が入力される場合を例示したが、画像保持部12および不一致度算出部13には、必ずしも距離画像が入力されずともよく、グレイスケールの画像が入力されることとしてもよいし、RGB等のカラー画像が入力されることとしてもかまわない。
画像保持部12は、画像を保持する記憶部である。
一実施形態として、画像保持部12には、画像入力部11から入力される距離画像が保持される。例えば、画像保持部12は、画像入力部11から入力される距離画像がnフレームであるとしたとき、nフレームから所定数のフレームまで遡って距離画像を保持することができる。このとき、所定数のフレームよりも前のフレームの距離画像は、画像保持部12から自動的に削除されることとしてもかまわない。このように距離画像が保存される他、画像保持部12には、後述の不一致度算出部13により距離画像から姿勢の推定対象とする物体の領域が切り出された部分画像がさらに保持される。
不一致度算出部13は、姿勢の推定対象とする物体に対応する領域が画像のフレームの前後で不一致となる度合いを算出する処理部である。この不一致算出部13は、算出部の一例である。
一実施形態として、不一致度算出部13は、画像入力部11によりnフレーム目の距離画像が入力されると、当該nフレーム目の距離画像から手に対応する領域を抽出する。以下、距離画像のうち手に対応する領域のことを「手領域」と記載する場合がある。このような手領域を抽出する場合、不一致度算出部13は、一例として、距離画像の中で距離の差が所定の閾値以上である画素をエッジとして検出することにより、物体の候補の輪郭を切り出す。そして、不一致度算出部13は、先のように輪郭が切り出された物体の候補のうち、姿勢の推定対象である手のモデルの大きさから逸脱しない面積を持つ物体の候補を手領域として抽出する。
その上で、不一致度算出部13は、nフレーム目の手領域と、画像保持部12により保持されたn−1フレーム目の手領域とを比較することにより、不一致度を算出する。例えば、不一致度算出部13は、nフレーム目の手領域と、n−1フレーム目の手領域とを互いの重心や中心などの対応点が一致するように重ね合わせる。続いて、不一致度算出部13は、nフレーム目の手領域とn−1フレーム目の手領域とが重ならない画素を計数すると共に、nフレーム目の手領域とn−1フレーム目の手領域とが重なる画素を計数する。これによって、nフレーム及びn−1フレームの間で手領域が重なる部分の面積aと、nフレーム及びn−1フレームの間で手領域が重ならない部分の面積bとが求まる。その上で、不一致度算出部13は、一例として、面積bを面積aおよび面積bの和で除算する計算、すなわちb/(a+b)により、不一致度を算出する。
図3は、可動範囲の設定例を示す図である。図3には、n−1フレーム目の手領域30Aがハッチング無しで示される一方で、nフレーム目の手領域30Bがハッチング有りで示されている。これらn−1フレーム目の手領域30Aおよびnフレーム目の手領域30Bが重心等を対応点にして重ね合わされる。その後、n−1フレーム目の手領域30Aおよびnフレーム目の手領域30Bが重ならない画素が計数されると共に、n−1フレーム目の手領域30Aおよびnフレーム目の手領域30Bが重なる画素が計数される。これによって、nフレーム及びn−1フレームの間で手領域が重ならない部分の面積と、nフレーム及びn−1フレームの間で手領域が重なる部分の面積とが算出される。その後、nフレーム及びn−1フレームの間で手領域が重ならない部分の面積を、nフレーム及びn−1フレームの間で手領域が重なる部分の面積とnフレーム及びn−1フレームの間で手領域が重ならない部分の面積との和で除算することにより、不一致度が10%と求まる。
なお、ここでは、nフレーム目の手領域と、n−1フレーム目の手領域とから不一致度を算出する場合を例示したが、nフレーム目の距離画像と、n−1フレーム目の距離画像とから不一致度を算出することとしてもかまわない。この場合、一例として、nフレーム及びn−1フレームの間で、互いに対応する位置の画素が持つ画素値、例えばデプス値dの差が所定の範囲以内でない画素と、所定の範囲内である画素とを計数してこれらの割合を不一致度として算出することとすればよい。
可動範囲設定部14は、モデルに含まれる可動部が可動すると推定される範囲を設定する処理部である。この可動範囲設定部14は、設定部の一例である。以下では、可動部が可動すると推定される範囲のことを「可動範囲」と記載する一方で、可動部が可動できる最大の範囲のことを「可動域」と記載する場合がある。
一実施形態として、可動域設定部14は、不一致度算出部13により不一致度が算出される度に、当該不一致度と関節の可動域とから可動範囲を関節ごとに設定する。このような可動範囲の設定は、一例として、図2に太字で示されたパラメータを含む関節ごとに実施される。さらに、関節の可動域には、図2に太字で示されたパラメータを含む関節ごとに、一例として、姿勢の推定対象とする人物の手から実際に測定された測定値を参照することとしてもよいし、年代、男女、人種などのうち少なくとも1つの項目に対応付けられた統計値のうち姿勢の推定対象とする人物が該当する項目に対応付けられた統計値を参照することもできる。
ここで、可動範囲設定部14は、不一致度が大きくなるにしたがって大きい可動範囲を設定する一方で、不一致度が小さくなるにしたがって小さい可動範囲を設定する。より具体的には、可動範囲設定部14は、各関節に設定された可動域に不一致度算出部13により算出された不一致度が乗算された乗算値を可動範囲として関節ごとに設定する。例えば、図3に示した通り、不一致度が10%と算出された場合を想定する。この場合、可動域が90°である関節の可動範囲を算出する場合、90°×10%の計算により、9°(±4.5°)が当該関節の可動範囲として設定される。このような関節の可動範囲をn−1フレーム目に推定された関節の角度に加算する変化量を定める乱数の発生範囲として用いることにより、乱数の発生範囲を関節の可動域から関節の可動範囲まで絞り込むことができる。
パーティクル生成部15は、パーティクルを生成する処理部である。このパーティクル生成部15は、生成部の一例である。
一実施形態として、パーティクル生成部15は、可動範囲設定部14により関節ごとに可動範囲が設定される度に、関節ごとに設定された可動範囲を乱数発生部15aによる乱数の発生範囲として乱数を関節ごとに発生させる。その上で、パーティクル生成部15は、乱数発生部15aにより関節ごとに発生された乱数を各関節の変化量としてn−1フレーム目に推定された各関節の角度に加算することにより、パーティクルを生成する。このようなパーティクルの生成を繰り返すことにより、パーティクル生成部15は、所定数のパーティクルを姿勢パラメータ情報15bとして生成する。ここで、パーティクル生成部15が生成するパーティクルの数は、一例として、プロセッサの性能や出力を要求する姿勢の推定精度が高くなるにつれて多く設定することができる。この他、姿勢の推定の所要期間が短くなるにつれて少ないパーティクルを生成することもできる。このように生成された姿勢パラメータ情報15bが第1の更新部16に出力される。
第1の更新部16は、各パーティクルに関するパラメータを更新する処理部である。
一実施形態として、第1の更新部16は、パーティクルごとに変化速度および姿勢を更新する。例えば、i番目のパーティクルに関するk+1回目の更新が行われる場合、第1の更新部16は、上記の式(1)にしたがってk+1回目の更新におけるi番目のパーティクルの姿勢の変化速度vを算出する。すなわち、第1の更新部16は、k回目の更新時に算出されたi番目のパーティクルの変化速度vを式(1)の第1項に代入する。さらに、第1の更新部16は、k回目の更新時に第2の更新部17により更新された、1つのパーティクルの中で最適である姿勢xPbest,iと、k回目の更新時におけるi番目のパーティクルの姿勢xとを式(1)の第2項に代入する。さらに、第1の更新部16は、k回目の更新時に第2の更新部17により更新された全てのパーティクルの中で最適である姿勢xGbest,iと、k回目の更新にけるi番目のパーティクルの姿勢xとを式(1)の第3項に代入する。これにより、k+1回目の更新におけるi番目のパーティクルの姿勢の変化速度vが算出される。
その上で、第1の更新部16は、上記の式(2)にしたがってk+1回目の更新におけるi番目のパーティクルの姿勢xを算出する。すなわち、第1の更新部16は、k回目の更新にけるi番目のパーティクルの姿勢xを式(2)の第1項に代入すると共に、式(1)により求められた、k+1回目の更新におけるi番目のパーティクルの姿勢の変化速度vを式(2)の第2項に代入する。これにより、k+1回目の更新におけるi番目のパーティクルの姿勢xを算出することができる。
これら式(1)および式(2)の計算を全てのパーティクルに実行することにより、各パーティクルの変化速度および姿勢を更新できる。
第2の更新部17は、最適値の更新を行う処理部である。
一実施形態として、第2の更新部17は、第1の更新部16によりパーティクルの変化速度および姿勢が更新された後、パーティクルごとの姿勢の最適値xPbest,iと、全パーティクルの姿勢の最適値xGbest,iとを更新する。
例えば、第2の更新部17は、k+1回目の更新で算出されたi番目のパーティクルと、画像入力部12から観測データとして入力されるnフレーム目の距離画像との誤差からk+1回目の更新で算出されたi番目のパーティクルの評価値を算出する。その上で、第2の更新部17は、更新回数が0回目からk+1回目までの間に算出されたi番目のパーティクルの姿勢xのうち評価値が最高であるものをk+1回目の更新におけるi番目のパーティクルの姿勢の最適値xPbest,iとして更新する。このような更新を全てのパーティクルに実施することにより、パーティクルごとに姿勢の最適値xPbest,iを更新する。さらに、第2の更新部17は、k+1回目の更新で算出された全てのパーティクルの姿勢xのうち最大の評価値を有するパーティクルをk+1回目の更新における全パーティクルの姿勢の最適値xGbest,iとして更新する。
このようにパーティクルごとの姿勢の最適値xPbest,iおよび全パーティクルの姿勢の最適値xGbest,iが行われた後、第2の更新部17は、姿勢推定の終了条件を満たすか否かを判定する。例えば、第2の更新部17は、全パーティクルの姿勢の最適値xGbest,iの評価値が所定の閾値以上であるか否かを判定する。このとき、第2の更新部17は、全パーティクルの姿勢の最適値xGbest,iの評価値が閾値以上である場合、姿勢の推定を終了する。一方、第2の更新部17は、全パーティクルの姿勢の最適値xGbest,iの評価値が閾値以上でない場合、更新回数が所定の上限回数に達したか否かをさらに判定する。そして、第2の更新部17は、更新回数が上限回数に達した場合、姿勢の推定を終了する。一方、第2の更新部17は、更新回数が上限回数に達していない場合、各パーティクルの変化速度および姿勢の更新を第1の更新部16に実行させる。
出力部18は、姿勢の推定結果を出力する処理部である。
一実施形態として、出力部18は、全パーティクルの姿勢の最適値xGbest,iの評価値が閾値以上である場合、あるいは更新回数が上限回数に達した場合、全パーティクルの姿勢の最適値xGbest,iを所定の出力先に出力する。このような出力先の一例として、手の動きやサインなどのジェスチャを認識するジェスチャ認識プログラムなどが挙げられる。このジェスチャ認識をUIに用いることにより、情報処理装置を始めとする各種の電子機器に対する指示操作の検出を実現することができる。この他、ティスプレイ等の表示部を出力先とすることとしてもかまわない。
なお、図1に示す画像入力部11、不一致度算出部13、可動範囲設定部14、パーティクル生成部15、第1の更新部16、第2の更新部17及び出力部18などの機能部は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などのハードウェアプロセッサにより実装することができる。ここでは、プロセッサの一例として、CPUやMPUを例示したが、汎用型および特化型を問わず、任意のプロセッサにより実装することができる。この他、上記の機能部は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などのハードワイヤードロジックによって実現されることとしてもかまわない。
また、図1に示す画像保持部12、さらには、上記の機能部が使用するワークエリアには、一例として、各種の半導体メモリ素子、例えばRAM(Random Access Memory)やフラッシュメモリもしくはその記憶領域の一部を採用することができる。また、必ずしも主記憶装置が用いられずともよく、HDD(Hard Disk Drive)、光ディスクやSSD(Solid State Drive)などの補助記憶装置を採用することとしてもかまわない。
[姿勢推定処理]
図4は、実施例1に係る姿勢推定処理の手順を示すフローチャートである。この処理は、画像入力部11により距離画像が入力される度に繰り返し行われる。図4に示すように、画像入力部11により距離画像が入力されると(ステップS101)、不一致度算出部13は、ステップS101で入力されたnフレーム目の距離画像から抽出された手領域と、画像保持部12により保持されたn−1フレーム目の距離画像から抽出された手領域との不一致度を算出する(ステップS102)。
続いて、可動域設定部14は、ステップS102で関節ごとに算出された不一致度と関節の可動域とから可動範囲を関節ごとに設定する(ステップS103)。その上で、パーティクル生成部15は、ステップS103で関節ごとに設定された可動範囲を乱数発生部15aによる乱数の発生範囲として発生された乱数を各関節の変化量としてn−1フレーム目に推定された各関節の角度に加算する処理を繰り返すことにより、所定数のパーティクルを生成する(ステップS104)。
そして、第1の更新部16は、上記の式(1)にしたがって姿勢の変化速度vをパーティクルごとに更新すると共に、上記の式(2)にしたがって姿勢xを更新する処理をパーティクルごとに行う(ステップS105)。その上で、第2の更新部17は、パーティクルごとの姿勢の最適値xPbest,iと、全パーティクルの姿勢の最適値xGbest,iとを更新する(ステップS106)。
そして、全パーティクルの姿勢の最適値xGbest,iの評価値が閾値以上になるか、あるいは更新回数が上限回数に達するまで(ステップS107No)、上記のステップS105及びステップS106の処理が繰り返し行われる。
その後、全パーティクルの姿勢の最適値xGbest,iの評価値が閾値以上になった場合、あるいは更新回数が上限回数に達した場合(ステップS107Yes)、処理が終了される。
[効果の一側面]
上述してきたように、本実施例に係る姿勢推定装置10は、入力される画像のフレーム間の差分から求めた不一致度と関節の可動域とから関節ごとに設定する可動範囲をPSOにおける各関節の変化量を定める乱数の生成範囲として用いる。このため、乱数の発生範囲を関節の可動域から関節の可動範囲まで絞り込むことができる。それ故、実際の姿勢の変化よりも過度に大きな範囲でパーティクルが生成されるのを抑制できる。したがって、本実施例に係る姿勢推定装置10によれば、パーティクルを生成する乱数の発生範囲を適切に設定できる。
例えば、不一致度が0.5と算出された場合、各関節の可動域の0.5倍にまで関節の可動範囲が絞り込まれる。このとき、関節の数が10であるとしたとき、k=0の初期値としてとりうる姿勢の変化量の範囲は、乱数の発生範囲を関節の可動域とする場合に比べて、0.510(≒1/1000)倍となる。そして、PSOでは、式(1)における「w」や「c」といったパラメータにより更新結果が収束する速度が決まるが、0.510(≒1/1000)倍の範囲までパーティクルが収束するのに要する更新回数を10回程度低減できる。さらに、40回程度の更新回数でパーティクルが収束する場合、25%の処理軽減、言い換えれば25%の処理時間短縮が可能となる。
図5は、乱数の発生範囲の一例を示す図である。図5には、関節の可動域に対応する乱数の発生範囲E1と、不一致度にしたがって設定された関節の可動範囲に対応する乱数の発生範囲E2とされる場合とが示されている。このうち、乱数の発生範囲E1は、破線により示される一方で、乱数の発生範囲E2は、ハッチングにより示されている。図5に示すように、乱数の発生範囲E1は、前回の姿勢の推定結果から実際の姿勢への姿勢の変化に比べて乱数の発生範囲が広すぎる。この場合、パーティクルの更新結果が現実の姿勢に収束しづらくなり、パーティクルの更新結果が実際の姿勢に収束するまでの更新回数も増大する。一方、乱数の発生範囲E2は、乱数の発生範囲E1に比べて狭い範囲に絞り込まれる。このため、パーティクルの更新結果が現実の姿勢に収束し易くでき、パーティクルの更新結果が実際の姿勢に収束するまでの更新回数を低減できることがわかる。
図6は、乱数の発生範囲の一例を示す図である。図6にも、関節の可動域に対応する乱数の発生範囲E3と、不一致度にしたがって設定された関節の可動範囲に対応する乱数の発生範囲E4とが示されている。このうち、乱数の発生範囲E3は、破線により示される一方で、乱数の発生範囲E4は、ハッチングにより示されている。さらに、図6には、実際の姿勢に対応する最適解B1と、最適解以外にも局所的に優位となる5つの局所解L1〜L5が例示されている。このような局所解は、一側面として、姿勢の最適値の更新や繰り返しの適否の判定などを行うために用いる姿勢の評価値を算出する評価関数が高次元となることが一因となって発生する。
図6に示すように、乱数の発生範囲E3は、前回の姿勢の推定結果から実際の姿勢への姿勢の変化に比べて乱数の発生範囲が広すぎる。このような乱数の発生範囲E3には、最適解B1と共に5つの局所解L1〜L5が含まれる。一方、乱数の発生範囲E4は、乱数の発生範囲E3に比べて狭い範囲に絞り込まれる。このような乱数の発生範囲E4には、最適解B1と共に2つの局所解L4及びL5が含まれる。このように乱数の発生範囲E4が絞り込まれることにより、3つの局所解L1〜L3を回避できる。それ故、パーティクルの更新を繰り返す途中で局所解に陥る可能性を低減できる結果、姿勢の推定精度を向上させることができる。
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
[一致度の算出]
上記の実施例1では、可動範囲の設定に不一致度を用いる場合を例示したが、一致度を用いることとしてもかまわない。すなわち、nフレーム及びn−1フレームの間で手領域が重なる部分の面積aを、nフレーム及びn−1フレームの間で手領域が重なる部分の面積aとnフレーム及びn−1フレームの間で手領域が重ならない部分の面積bとの和で除算することにより、一致度を算出することもできる。この場合、1(=100%)から一致度が減算された減算値を関節の可動域に乗算することにより、不一致度が関節の可動域に乗算される場合と同等の結果を得ることができる。
[可動範囲の設定の応用例]
上記の実施例1では、不一致度を関節の可動域に乗算することにより可動範囲を設定する場合を例示したが、例えば、関節の可動範囲の下限値を関節の可動域の3割とし、関節の可動範囲の上限値を7割とし、不一致度の値に応じて上限値および下限値に定まる区間を線形または非線形で算出することとしてもかまわない。
[不一致度の算出の応用例]
上記の姿勢推定装置10は、nフレーム目の距離画像と、n−1フレーム目の距離画像の間における距離の統計値、例えば平均値を不一致度として算出することもできる。これらnフレーム目およびn−1フレーム目の各距離画像から、上記の実施例1と同様にして、手領域が抽出される。
図7は、不一致度算出の応用例を示す図である。図7には、n−1フレーム目の手領域に含まれる点群S1〜S8と、nフレーム目の手領域に含まれる点群U1〜U8とが示されている。ここでは、手領域に含まれる点群として8つの点を抜粋して例示したが、これはあくまで模式図であり、この数値に限定されない。これら点群S1〜S8と点群U1〜U8は、ICP(Iterative Closest Point)アルゴリズムにしたがって重ね合わされる。すなわち、nフレーム目の手領域に含まれる点ごとに、n−1フレーム目の手領域に含まれる点のうちnフレーム目の手領域に含まれる点が探索される。例えば、点S1には点U1、点S2には点U2、点S3には点U3、点S4には点U4、点S5には点U5、点S6には点U6、点S7には点U7、点S8には点U8が探索される。その後、nフレーム目の手領域に含まれる点ごとに、当該点と、当該点に対応するn−1フレーム目の手領域上の点との距離が算出される。図7の例で言えば、点S1および点U1の距離、点S2及び点U2の距離、点S3及び点U3の距離、点S4及び点U4の距離、点S5及び点U5の距離、点S6及び点U6の距離、点S7及び点U7の距離、点S8及び点U8の距離が算出される。これらの8つの距離の平均値が平均距離lとして算出される。この平均距離lを所定の閾値、例えば手領域が完全に重ならなくなる最小の移動距離などで除算することにより、最大値を1、言い換えれば100%とし、平均距離lを正規化することにより、不一致度として用いることができる。
[分散および統合]
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されておらずともよい。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、画像入力部11、不一致度算出部13、可動範囲設定部14、パーティクル生成部15、第1の更新部16、第2の更新部17または出力部18を姿勢推定装置10の外部装置としてネットワーク経由で接続するようにしてもよい。また、画像入力部11、不一致度算出部13、可動範囲設定部14、パーティクル生成部15、第1の更新部16、第2の更新部17又は出力部18を別の装置がそれぞれ有し、ネットワーク接続されて協働することで、上記の姿勢推定装10置の機能を実現するようにしてもよい。また、画像保持部12に記憶される情報の全部または一部を別の装置がそれぞれ有し、ネットワーク接続されて協働することで、上記の姿勢推定装置10の機能を実現するようにしてもかまわない。
[姿勢推定プログラム]
また、上記の実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図8を用いて、上記の実施例と同様の機能を有する姿勢推定プログラムを実行するコンピュータの一例について説明する。
図8は、実施例1及び実施例2に係る姿勢推定プログラムを実行するコンピュータのハードウェア構成例を示す図である。図8に示すように、コンピュータ100は、操作部110aと、スピーカ110bと、カメラ110cと、ディスプレイ120と、通信部130とを有する。さらに、このコンピュータ100は、CPU150と、ROM160と、HDD170と、RAM180とを有する。これら110〜180の各部はバス140を介して接続される。
HDD170には、図8に示すように、上記の実施例1で示した画像入力部11、不一致度算出部13、可動範囲設定部14、パーティクル生成部15、第1の更新部16、第2の更新部17及び出力部18と同様の機能を発揮する姿勢推定プログラム170aが記憶される。この姿勢推定プログラム170aは、図1に示した画像入力部11、不一致度算出部13、可動範囲設定部14、パーティクル生成部15、第1の更新部16、第2の更新部17及び出力部18の各構成要素と同様、統合又は分離してもかまわない。すなわち、HDD170には、必ずしも上記の実施例1で示した全てのデータが格納されずともよく、処理に用いるデータがHDD170に格納されればよい。例えば、上記の機能部のうち画像入力部11、不一致度算出部13及び可動範囲設定部14が発揮する機能、すなわち可動範囲を設定するまでの機能をモジュール化することもできる。
このような環境の下、CPU150は、HDD170から姿勢推定プログラム170aを読み出した上でRAM180へ展開する。この結果、姿勢推定プログラム170aは、図8に示すように、姿勢推定プロセス180aとして機能する。この姿勢推定プロセス180aは、RAM180が有する記憶領域のうち姿勢推定プロセス180aに割り当てられた領域にHDD170から読み出した各種データを展開し、この展開した各種データを用いて各種の処理を実行する。例えば、姿勢推定プロセス180aが実行する処理の一例として、図4に示す処理などが含まれる。なお、CPU150では、必ずしも上記の実施例1で示した全ての処理部が動作せずともよく、実行対象とする処理に対応する処理部が仮想的に実現されればよい。
なお、上記の姿勢推定プログラム170aは、必ずしも最初からHDD170やROM160に記憶されておらずともかまわない。例えば、コンピュータ100に挿入されるフレキシブルディスク、いわゆるFD、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に姿勢推定プログラム170aを記憶させる。そして、コンピュータ100がこれらの可搬用の物理媒体から姿勢推定プログラム170aを取得して実行するようにしてもよい。また、公衆回線、インターネット、LAN、WANなどを介してコンピュータ100に接続される他のコンピュータまたはサーバ装置などに姿勢推定プログラム170aを記憶させておき、コンピュータ100がこれらから姿勢推定プログラム170aを取得して実行するようにしてもよい。
10 姿勢推定装置
11 画像入力部
12 画像保持部
13 不一致度算出部
14 可動範囲設定部
15 パーティクル生成部
16 第1の更新部
17 第2の更新部
18 出力部

Claims (6)

  1. 画像を取得し、
    取得された第1の画像と、前記第1の画像よりも前に取得された第2の画像との差分に基づいて不一致度を算出し、
    前記不一致度から、前記第1の画像が取得されたフレームで姿勢の推定対象とするモデルの可動部が可動すると推定される範囲を前記可動部ごとに設定し、
    前記可動部ごとに設定された範囲を前記モデルの各可動部の変化量を定める乱数の生成範囲として、前記モデルの姿勢の候補とするパーティクルを生成する生成部へ出力する、
    処理をコンピュータが実行することを特徴とする姿勢推定方法。
  2. 前記算出する処理は、前記第1の画像内で前記モデルに対応する第1の領域および前記第2の画像内で前記モデルに対応する第2の領域を前記第1の画像および前記第2の画像の対応点を用いて重ね合わせ、前記第1の領域および前記第2の領域が重なる第1の面積と、前記第1の領域および前記第2の領域が重ならない第2の面積とから前記不一致度を算出することを特徴とする請求項1に記載の姿勢推定方法。
  3. 前記算出する処理は、前記第2の面積に対する前記第1の面積の割合を前記不一致度として算出することを特徴とする請求項2に記載の姿勢推定方法。
  4. 前記取得する処理は、距離画像を取得し、
    前記算出する処理は、第1の距離画像および第2の距離画像の間における距離の統計値を前記不一致度として算出することを特徴とする請求項1に記載の姿勢推定方法。
  5. 画像を取得し、
    取得された第1の画像と、前記第1の画像よりも前に取得された第2の画像との差分に基づいて不一致度を算出し、
    前記不一致度から、前記第1の画像が取得されたフレームで姿勢の推定対象とするモデルの可動部が可動すると推定される範囲を前記可動部ごとに設定し、
    前記可動部ごとに設定された範囲を前記モデルの各可動部の変化量を定める乱数の生成範囲として、前記モデルの姿勢の候補とするパーティクルを生成する生成部へ出力する、
    処理をコンピュータに実行させることを特徴とする姿勢推定プログラム。
  6. 画像を取得する取得部と、
    取得された第1の画像と、前記第1の画像よりも前に取得された第2の画像との差分に基づいて不一致度を算出する算出部と、
    前記不一致度から、前記第1の画像が取得されたフレームで姿勢の推定対象とするモデルの可動部が可動すると推定される範囲を前記可動部ごとに設定する設定部と、
    前記可動部ごとに設定された範囲を前記モデルの各可動部の変化量を定める乱数の生成範囲として、前記モデルの姿勢の候補とするパーティクルを生成する生成部へ出力する出力制御部と、
    を有することを特徴とする姿勢推定装置。
JP2016233425A 2016-11-30 2016-11-30 姿勢推定方法、姿勢推定プログラム及び姿勢推定装置 Pending JP2018092273A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016233425A JP2018092273A (ja) 2016-11-30 2016-11-30 姿勢推定方法、姿勢推定プログラム及び姿勢推定装置
US15/786,831 US10304181B2 (en) 2016-11-30 2017-10-18 Method, apparatus for attitude estimating, and non-transitory computer-readable storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016233425A JP2018092273A (ja) 2016-11-30 2016-11-30 姿勢推定方法、姿勢推定プログラム及び姿勢推定装置

Publications (1)

Publication Number Publication Date
JP2018092273A true JP2018092273A (ja) 2018-06-14

Family

ID=62190299

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016233425A Pending JP2018092273A (ja) 2016-11-30 2016-11-30 姿勢推定方法、姿勢推定プログラム及び姿勢推定装置

Country Status (2)

Country Link
US (1) US10304181B2 (ja)
JP (1) JP2018092273A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111256589B (zh) * 2020-02-14 2020-12-01 长飞光纤光缆股份有限公司 一种基于丢帧检测的图像法尺寸测量补偿方法及装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1864176A (zh) 2003-10-30 2006-11-15 日本电气株式会社 用于估计对象状态的估计系统、估计方法和估计程序
JP4709723B2 (ja) 2006-10-27 2011-06-22 株式会社東芝 姿勢推定装置及びその方法
JP4728432B2 (ja) 2008-01-16 2011-07-20 旭化成株式会社 顔姿勢推定装置、顔姿勢推定方法、及び、顔姿勢推定プログラム
US8213680B2 (en) * 2010-03-19 2012-07-03 Microsoft Corporation Proxy training data for human body tracking
US20160086350A1 (en) * 2014-09-22 2016-03-24 Foundation for Research and Technology - Hellas (FORTH) (acting through its Institute of Computer Apparatuses, methods and systems for recovering a 3-dimensional skeletal model of the human body
US9552070B2 (en) * 2014-09-23 2017-01-24 Microsoft Technology Licensing, Llc Tracking hand/body pose
US9773155B2 (en) * 2014-10-14 2017-09-26 Microsoft Technology Licensing, Llc Depth from time of flight camera
US10110881B2 (en) * 2014-10-30 2018-10-23 Microsoft Technology Licensing, Llc Model fitting from raw time-of-flight images
US9690984B2 (en) * 2015-04-14 2017-06-27 Microsoft Technology Licensing, Llc Two-dimensional infrared depth sensing
US9911219B2 (en) * 2015-05-13 2018-03-06 Intel Corporation Detection, tracking, and pose estimation of an articulated body

Also Published As

Publication number Publication date
US20180150950A1 (en) 2018-05-31
US10304181B2 (en) 2019-05-28

Similar Documents

Publication Publication Date Title
CN108369643B (zh) 用于3d手部骨架跟踪的方法和系统
JP6433149B2 (ja) 姿勢推定装置、姿勢推定方法およびプログラム
JP5772821B2 (ja) 顔特徴点位置補正装置、顔特徴点位置補正方法および顔特徴点位置補正プログラム
CN109934065B (zh) 一种用于手势识别的方法和装置
CN110363817B (zh) 目标位姿估计方法、电子设备和介质
US11244506B2 (en) Tracking rigged polygon-mesh models of articulated objects
JP5480667B2 (ja) 位置姿勢計測装置、位置姿勢計測方法、プログラム
JP2008194146A (ja) 視線検出装置及びその方法
JP2016099982A (ja) 行動認識装置、行動学習装置、方法、及びプログラム
JP2015197702A (ja) 情報処理装置、情報処理方法
JP6597914B2 (ja) 画像処理装置、画像処理方法、及びプログラム
WO2014112346A1 (ja) 特徴点位置検出装置、特徴点位置検出方法および特徴点位置検出プログラム
WO2015029287A1 (ja) 特徴点位置推定装置、特徴点位置推定方法および特徴点位置推定プログラム
US20150199592A1 (en) Contour-based classification of objects
JP2012103213A (ja) 画像処理プログラムおよび画像処理装置
JP6283124B2 (ja) 画像特性推定方法およびデバイス
CN110348359B (zh) 手部姿态追踪的方法、装置及系统
US20160189339A1 (en) Adaptive 3d registration
JP2021015479A (ja) 行動認識装置、行動認識方法、及び行動認識プログラム
KR101844278B1 (ko) 관절식 객체의 자세를 추정하기 위한 파라미터 학습 방법 및 관절식 객체의 자세 추정 방법
JP2019120577A (ja) 位置推定装置、位置推定方法及び位置推定用コンピュータプログラム
JP2018092273A (ja) 姿勢推定方法、姿勢推定プログラム及び姿勢推定装置
JP2012243285A (ja) 特徴点位置決定装置、特徴点位置決定方法及びプログラム
JP6452324B2 (ja) 画像処理装置、画像処理方法及びプログラム
JP2011232845A (ja) 特徴点抽出装置および方法