以下、明細書の図面及び具体的な実施例を参照しながら、本開示の技術的解決手段を更に詳細に説明する。
図1Aに示すように、本実施例は、画像処理方法を提供し、ステップS110〜ステップS140を含む。
ステップS110では、画像を取得する。
ステップS120では、前記画像に基づいて目標の少なくとも2つの局所の特徴を取得すると、
ステップS130では、前記少なくとも2つの局所の特徴及び連結部の第1運動制約条件によって、前記連結部の運動情報を決定する。前記連結部は、前記少なくとも2つの局所のうちの2つの局所を連結するために用いられる。
ステップS140では、前記連結部の運動情報によって被制御モデルの連結部の運動を制御する。
本実施例で提供される画像処理方法は、画像処理によって被制御モデルを運動させることができる。
本実施例で提供される画像処理方法は、画像処理を実行可能な各種電子機器、例えば、画像収集、画像表示及び画像処理を行う電子機器のような画像デバイスに利用可能である。この画像デバイスは、携帯端末及び/又は固定端末のような各種端末装置を含むが、それらに限定されなく、更に、画像サービスを提供可能な各種サーバを含んでもよい。前記携帯端末は、ユーザに携帯されやすい携帯電話又はタブレット型コンピュータ等の携帯型装置を含み、更に、例えば、スマートブレスレット、スマートウォッチやスマートグラス等のユーザが着用する装置を含んでもよい。前記固定端末は、固定されたデスクトップコンピュータ等を含む。
本実施例では、ステップS110で取得された画像は2D(2次元)画像又は3D(3次元)画像であってよい。前記2D画像は、単眼又は複眼カメラで取得された画像、例えば赤緑青(RGB)画像等を含んでよい。前記画像を取得する手法として、画像デバイスそのものに備えたカメラによって前記画像を取得する手法、及び/又は、外部装置から画像を受信する手法、及び/又は、ローカルデータベース又はローカルメモリから前記画像を読み取る手法を含んでよい。
3D画像は、2D画像から2D座標を検出して、2D座標から3D座標への変換アルゴリズムによって取得した3D画像であってもよく、更に、3Dカメラで取得された画像であってもよい。
ステップS110において、取得された画像は、1フレームの画像であってもよいし、複数フレームの画像であってもよい。例えば、取得された画像が1フレームの画像である時に、その後で得られた運動情報は、現在画像における連結部が初期座標系(カメラ座標系と呼んでも良い)における対応連結部に対する運動を反映できる。更に例を挙げると、取得された画像が複数フレームの画像である時に、その後で得られた運動情報は、現在画像における連結部が前の複数フレームの画像における対応連結部に対する運動を反映するか、現在画像における連結部がカメラ座標系の対応連結部に対する運動を反映することができる。本願では取得される画像の数量が限定されない。
前記ステップS120は、前記画像を検出することで、目標における異なる局所である少なくとも2つの局所の特徴を取得するステップを含んでよい。これら2つの局所は目標に連続的に分布しているものであってもよく、間隔をおいて前記目標に分布しているものであってもよい。
例えば、前記目標が人間であれば、前記少なくとも2つの局所は、頭部、胴体、四肢、上肢、下肢、手部及び足部等の少なくとも2つを含んでよい。前記連結部は、頭部と胴体をつなぐ頸部、右脚と胴体をつなぐ右股間部、手部と下膊をつなぐ手首等であってよい。別の実施例では、前記目標は人間に限定されなく、更に動物等の様々な可動な生体又は非生体であってもよい。
本実施例では、少なくとも2つの局所の特徴を取得することになり、この特徴はこれら2つの局所の空間構造情報、位置情報又は運動状態を表す各種形態の特徴であってよい。
前記2つの局所の特徴は各種画像特徴を含むが、それらに限定されない。例えば、前記画像特徴は色特徴及び/又はオプティカルフローアルゴリズム等により得られたオプティカルフロー特徴を含んでよい。前記色特徴はRGB特徴及び/又はグレースケール特徴を含むが、それらに限定されない。本実施例では、ニューラルネットワーク等の深層学習モデルを用いて前記画像を検出して前記特徴を取得するようにしてよい。
前記特徴を取得した後、この特徴、これら2つの局所と連結部との連結関係、及び連結部の運動が満たした第1運動制約条件に基づいて、連結部の精確な運動情報を得ることができる。
1つの連結部が3つないしそれ以上の局所を連結した場合に、この連結部を複数のサブ連結部に分解し、続いて本開示で提供された方法で各サブ連結部の運動情報をそれぞれ計算し、次にサブ連結部の運動情報を合わせてこの連結部の運動情報を得るようにしてもよい。簡略化するために、本開示では、以下、1つの連結部が2つの局所を連結した場合について説明する。
前記被制御モデルは前記目標に対応するモデルであってよい。例えば、目標が人間であれば、前記被制御モデルは人体モデルであり、前記目標が動物であれば、前記被制御モデルは対応の動物の身体モデルであってよく、前記目標が乗り物であれば、前記被制御モデルは乗り物のモデルであってよい。
本実施例では、前記被制御モデルは目標の所属するカテゴリーに対してのモデルである。このモデルは事前に決定されたものであってよく、更に多種のスタイルに分けられてよい。前記被制御モデルのスタイルは、ユーザコマンドに基づいて決定されてよく、例えば、実際の人物をシミュレートするスタイル、アニメスタイル、ネットで人気を集めたスタイル、異なる風格のスタイル、ゲームスタイル等の多種のスタイルを含んでよい。ここで、異なる風格のスタイルは、文芸スタイル又はロックスタイルであってよい。ゲームスタイルでは、被制御モデルはゲームキャラクターであってよい。
例えば、オンライン授業中に、プライバシーを保護する観点から、自分の顔や姿を公開したくない教師がいる。直接録画すると、教師の顔や姿等が必ず公開されることになる。本実施例では、画像取得等の手法によって教師の運動画像を取得し、続いて特徴抽出及び運動情報の取得によって仮想被制御モデルを制御して運動させることができる。そのようにして、自身の肢体運動で、被制御モデルに教師の運動をシミュレートさせて肢体運動授業を完了させることができ、一方、被制御モデルの運動によって授業するため、この教師の顔や姿が直接授業動画に公開されることがなく、教師のプライバシーが保護される。
更に例を挙げると、道路監視ビデオで、車両のビデオを直接取得すれば、ビデオが一旦ネットに公開されると、一部の特定のユーザの車両の情報が全て公開されてしまい、なお、監視しないと、交通事故が発生した時に責任判定ができないことがある。本実施例の方法によれば、車両モデルによって実際の車両の運動をシミュレートして監視ビデオを取得することができ、車両のブランド、車種、色及び新しさ等を隠し、車両のナンバープレート情報及び/又は車両の全体的な外輪郭をこの監視ビデオに保留すればよく、それによってユーザのプライバシーを保護する。
本開示の実施例で提供される技術的解決手段によれば、少なくとも2つの局所の特徴によって連結部の運動情報を取得することになり、運動情報を直接取得しにくい連結部であっても、この連結部の運動情報を精確に取得可能であり、それによって被制御モデルの対応連結部の運動を制御する。そのようにして、被制御モデルを用いて目標の運動をシミュレートして生放送する時に、被制御モデルの連結部の運動を精確に制御でき、それによって被制御モデルがユーザ等の取得対象の運動を精確にシミュレートすることができ、生放送すると同時に、ユーザプライバシーを保護する。
更に、図1Bに示すように、本実施例は、画像処理方法を更に提供する。図1Aを基礎として、前記方法は、ステップS150及びステップS160を更に含む。
ステップS150では、前記特徴に基づいて前記少なくとも2つの局所の運動情報を決定する。
ステップS160では、前記2つの局所の運動情報によって被制御モデルの局所の運動を制御する。
少なくとも2つの局所の特徴が得られた後、少なくとも2つの局所の運動情報が取得可能になり、この運動情報は、2つの局所の2つの隣接時刻での動作変化及び/又は表情変化等を表す。
前記少なくとも2つの局所の運動情報が得られた後、連結部とこれら2つの局所の連結関係及び対応する第1運動制約条件によって、前記連結部の運動情報を得ることが可能になる。
前記少なくとも2つの局所の運動情報の情報形式は、局所に対応するキーポイントの座標を含むが、それらに限定されない。該座標は、2D座標及び3D座標を含むが、それらに限定されなく、該座標は、局所に対応するキーポイントが基準位置に対する変化を表すことができ、それによって対応局所の運動状況を表すことができる。
前記運動情報はベクトル、アレー、1次元数値、行列等の各種情報形式で表してよい。
本実施例では、2つの局所の運動情報を更に取得し、2つの局所の運動情報によって被制御モデルの局所の運動を制御し、それによって被制御モデルの各局所がいずれも目標をシミュレートして運動することができる。
いくつかの実施例では、図2に示すように、図1Bを基礎として、前記ステップS120は、
前記画像に基づいて前記目標の第1種の局所の第1種の特徴を取得するステップS121と、
前記画像に基づいて、前記第1種の特徴の種類と異なる、前記目標の第2種の局所の第2種の特徴を取得するステップS122と、を含んでよい。
本実施例では、前記第1種の特徴と前記第2種の特徴は、対応局所の空間構造情報、位置情報及び/又は運動状態を同様に表す特徴であるが、その種類が異なる。
異なる種類の特徴は異なる特性を有し、異なる種類の局所に適用すればより高い精度を実現できる。いくつかの実施例では、画像に基づいて第1種の局所の第1種の特徴と第2種の局所の第2種の特徴をそれぞれ取得する。第1種の特徴と第2種の特徴を取得する取得主体が異なり、例えば、異なる深層学習モデル又は深層学習モジュールを使用して取得する。第1種の特徴と前記第2種の特徴の取得論理が異なる。
前記第1種の局所と前記第2種の局所は異なる種類の局所であり、異なる種類の局所は異なる種類の局所の運動可能幅又は異なる種類の局所の運動精度によって区別してもよい。
本実施例では、前記第1種の局所と第2種の局所は、運動最大幅が大きく相違する2種類の局所であってよい。例えば、第1種の局所は頭部であってよく、頭部の五官がいずれも運動可能であるが、頭部の五官の運動が全て小さく、頭部が一体として運動することも可能であり、例えば、軽く頭を下げるか、頭を横に振る等が可能であるが、運動幅が肢体又は胴体に比べて小さい。
第2種の局所は上肢、下肢又は四肢であってよく、肢体運動の幅がいずれも大きい。これら2種類の局所の運動状態を同じ種類の特徴で表せば、ある局所の運動幅に対応させるために、精度が小さくなったり、アルゴリズムの複雑度が大きくなったりする等の問題が発生することがある。
ここで、異なる種類の局所の特性に基づいて異なる種類の特徴で運動情報を取得することは、同じ種類の特徴で同じ種類の局所を表す関連方式に比べて、少なくとも1種の局所の情報正確度を増加することができ、運動情報の精度を高くした。
いくつかの実施例では、前記ステップS121は、前記画像に基づいて頭部の表情特徴を取得するステップを含んでよい。
本実施例では、前記第1種の局所は顔部を含む頭部であり、前記表情特徴は、眉の運動、口の運動、鼻の運動、目の運動及び頬の運動の少なくとも1つを含むが、それらに限定されない。眉の運動は、眉を上げる運動、眉を垂れる運動を含んでよい。口の運動は、口を開く、口を閉じる、下唇を突き出す、口をとがらせる、口をゆがめる、歯をむき出す等を含んでよい。鼻の運動は、鼻内へ息を吸うことで鼻が収縮する運動、息を吐き出すに伴って鼻が広がる運動を含んでよい。眼部運動は、目縁の運動及び/又は眼球の運動を含んでよいが、それらに限定されない。前記目縁の運動は目縁の大きさ及び/又は形状を変更することがあり、例えば、目を細くしたり、目を見張ったり、笑ったりする時の目縁の形状と大きさが変わる。眼球の運動は、眼球の目縁内での位置を含んでよく、例えば、ユーザ視線の変化で眼球が目縁の異なる位置に位置するようになり、左右目の眼球が同時に運動すると、ユーザの異なる気持ち状態等を反映できる。頬運動については、笑顔になると、えくぼなどが現れ、頬の形状もそれに伴って変わるユーザがいる。
いくつかの実施例では、前記頭部の運動は前記表情運動に限定されなく、そのため前記第1種の特徴は前記表情特徴に限定されなく、前記頭部の毛髪運動等の毛髪運動特徴を更に含み、前記第1種の特徴は更に、頭を横に振る及び/又は軽く頭を下げる等の頭部の一体とした運動特徴を含んでよい。
いくつかの実施例では、前記ステップS121は、前記画像に基づいて前記表情特徴の強度係数を取得するステップを更に含む。
本実施例では、前記強度係数が顔部表情の表情幅に対応してよい。例えば、それぞれ表情動作に一対一に対応する複数のベース表情を顔部に設置し、ここの強度係数はこの表情動作の強度を表すためのものとなってよく、例えば、この強度は表情動作の幅であってよい。
いくつかの実施例では、前記強度係数が大きいほど、表す強度が高い。例えば、前記強度係数が高いほど、口を開くベース表情の幅が大きく、口をとがらせるベース表情の幅が大きい等を示す。更に例を挙げると、前記強度係数が大きいほど、眉を上げるベース表情の眉の高さが大きい。
強度係数の導入によって、被制御モデルが目標の現在の動作をシミュレートすることができるだけでなく、目標の現在の表情の強度を精確にシミュレートすることもでき、表情の精確な移転が実現される。そのようにして、この方法を体感ゲームに用いれば、ゲームキャラクターが被制御対象となり、このような方法によれば、ゲームキャラクターがユーザの肢体動作に制御されることが可能であるだけでなく、ユーザの表情特徴を精確にシミュレートすることもできる。そのようにして、ゲームシーンで、ゲームシーンの真似程度を高め、ユーザのゲーム体験を高める。
いくつかの実施例では、前記ステップS160は、前記表情特徴に基づいて前記被制御モデルの頭部の表情変化を制御するステップと、前記強度係数に基づいて、前記被制御モデルの前記表情変化の強度を制御するステップと、を含んでよい。
いくつかの実施例では、前記画像に基づいて前記目標の表情特徴を取得するステップは、前記画像に基づいて前記第1種の局所のメッシュ情報を取得するステップを含む。
本実施例では、目標が人間である時に、ステップS120においてメッシュ検出等によって頭部の表情変化を表すメッシュ(mesh)情報を取得し、mesh情報に基づいて被制御モデルの変化を制御する。このmesh情報は、四辺形メッシュ情報及び/又は三角形パッチ情報を含むが、それらに限定されない。四辺形メッシュ情報は経緯線の情報を示し、三角形パッチ情報は3つのキーポイントを連結してなった三角形パッチの情報である。
例えば、mesh情報は、顔部を含む体表の特定個数の顔部キーポイントで形成されたものであり、四辺形メッシュ情報で表されるメッシュの経緯線の交点は前記顔部キーポイントの所在位置となってよく、メッシュの交点の位置変化は表情変化となり、そのようにして、四辺形メッシュ情報に基づいて得られた表情特徴と強度係数は、被制御モデルの顔部の表情を正確に制御できる。それに類似するように、三角形パッチ情報に対応する三角形パッチの頂点は顔部キーポイントを含む。キーポイントの位置での変化は表情変化となる。三角形パッチ情報に基づいて得られた表情特徴と強度係数は、被制御モデルの顔部の表情の精確な制御に用いることができる。
いくつかの実施例では、前記画像に基づいて前記表情特徴の強度係数を取得するステップは、画像に基づいて第1種の局所のうちの各サブ局所を表す強度係数を取得するステップを含む。
例えば、顔部の五官については、目、眉、鼻、口、耳はそれぞれ少なくとも1つのベース表情に対応し、複数のベース表情に対応するものもあり、1つのベース表情は1つの五官の1種の表情動作に対応し、強度係数はこの表情動作の幅を表す。
いくつかの実施例では、前記ステップS122は、前記画像に基づいて前記目標の第2種の局所のキーポイントの位置情報を取得するステップを含んでよい。
この位置情報は目標のキーポイントの位置情報で表してよく、このキーポイントはサポートキーポイントと外輪郭キーポイントを含んでよい。人間を例とすると、サポートキーポイントは人体の骨格キーポイントを含んでよく、輪郭キーポイントは人体体表の外輪郭のキーポイントであってよい。
前記位置情報は座標で表してよく、例えば、特定座標系の2D座標及び/又は3D座標で表す。この特定座標系は、画像の所在する画像座標系を含むが、それに限定されない。位置情報はキーポイントの座標であってよく、前記mesh情報と異なることは言うまでもない。第2種の局所が第1種の局所と異なるので、位置情報を用いて第2種の局所の運動変化をより精確に表すことができる。
いくつかの実施例では、前記ステップS150は、前記位置情報に基づいて前記第2種の局所の少なくとも2つの局所の運動情報を決定するステップを含んでよい。
目標が人間であることを例とすると、前記第2種の局所は、胴体及び/又は四肢、胴体及び/又は上肢、胴体及び/又は下肢を含むが、それらに限定されない。
更に、前記ステップS122は、具体的には、前記画像に基づいて前記目標の第2種の局所のサポートキーポイントの第1座標を取得するステップと、前記第1座標に基づいて第2座標を取得するステップと、を含んでよい。
前記第1座標と前記第2座標はいずれもサポートキーポイントを表す座標である。目標が人間又は動物であることを例とすると、ここのサポートキーポイントは骨格キーポイントである。
前記第1座標と第2座標は異なる種類の座標であってもよく、例えば、第1座標は2D座標系内での2D座標であり、第2座標は3D座標系での3D座標である。第1座標と第2座標は同じ種類の座標であってもよい。例えば、前記第2座標は第1座標を補正した後の座標であり、この時に、第1座標と第2座標は同じ種類の座標である。例えば、第1座標と第2座標は共に3D座標であるか、共に2D座標である。
いくつかの実施例では、前記画像に基づいて前記目標の第2種の局所のサポートキーポイントの第1座標を取得するステップは、2D画像に基づいて前記第2種の局所のサポートキーポイントの第1の2D座標を取得するステップを含み、前記第1座標に基づいて第2座標を取得するステップは、前記第1の2D座標と2D座標から3D座標への変換関係とに基づいて、前記第1の2D座標に対応する第1の3D座標を取得するステップを含む。
いくつかの実施例では、前記画像に基づいて前記目標の第2種の局所のサポートキーポイントの第1座標を取得するステップは、3D画像に基づいて前記目標の第2種の局所のサポートキーポイントの第2の3D座標を取得するステップを含み、前記第1座標に基づいて第2座標を取得するステップは、前記第2の3D座標に基づいて第3の2D座標を取得するステップを含む。
例えば、ステップS110において3D画像を直接取得する。当該3D画像は、2D画像と2D画像に対応する深度マップを含む。2D画像はサポートキーポイントのxoy平面での座標値を提供でき、深度マップでの深度値は、サポートキーポイントのz軸での座標を提供できる。z軸がxoy平面に垂直である。
いくつかの実施例では、前記第2の3D座標に基づいて第3の2D座標を取得するステップは、前記第2の3D座標に基づいて、前記3D画像での第2種の局所の遮られた部分に対応するサポートキーポイントの3D座標を調整して、前記第3の2D座標を取得するステップを含む。
本実施例では、まず、3Dモデルを用いて3D画像から第2の3D座標を抽出し、続いて、目標における異なる局所が遮られたことを考慮した上で、補正することで目標の異なる局所の3D空間での正確な第3の2D座標を取得し、それによって後続の被制御モデルの制御精度を確保する。
いくつかの実施例では、前記ステップS150は、前記位置情報に基づいて前記第2種の局所の四元数を決定するステップを含んでよい。
いくつかの実施例では、前記少なくとも2つの局所の運動情報は四元数で表すことに限定されなく、更に、異なる座標系での座標値、例えば、オイラー座標系又はラグランジュ座標系での座標値等で表してもよい。四元数によって第2種の局所の空間位置及び/又は各方向での回転を精確に示すことができる。
いくつかの実施例では、四元数を少なくとも2つの局所の運動情報及び/又は連結部の運動情報とすることになり、具体的に実施する際、四元数に限定されなく、各種座標系での基準点に対する座標値で表してもよく、例えば、前記四元数の代わりにオイラー座標又はラグランジュ座標を利用してもよい。
いくつかの実施例では、前記ステップS120には、前記第2種の局所のうちの第1局所のサポートキーポイントの第1位置情報を取得するステップと、前記第2種の局所のうちの第2局所のサポートキーポイントの第2位置情報を取得するステップと、を含んでよい。
前記第2種の局所は、少なくとも2つの異なる局所を含んでよい。そのようにして、被制御モデルは目標の少なくとも2つの局所の運動を同時にシミュレートすることができる。
いくつかの実施例では、前記ステップS150は、前記第1位置情報によって前記第1局所の運動情報を決定するステップと、前記第2位置情報によって前記第2局所の運動情報を決定するステップと、を含んでよい。
いくつかの実施例では、前記ステップS160は、前記第1局所の運動情報によって前記被制御モデルの前記第1局所に対応する局所の運動を制御するステップと、前記第2局所の運動情報によって前記被制御モデルの前記第2局所に対応する局所の運動を制御するステップと、を含んでよい。
別の実施例では、前記第1局所は胴体であり、前記第2局所は上肢、下肢又は四肢である。
いくつかの実施例では、前記ステップS140は、前記連結部の種類に応じて、前記連結部を制御する制御方式を決定するステップと、前記制御方式及び前記連結部の運動情報によって前記被制御モデルの連結部の運動を制御するステップと、を更に含む。
この連結部は他の2つの局所を連結するものであってよく、例えば、人間を例とすると、頸部、手首、足首又は腰は共に2つの局所を連結する連結部である。これらの連結部の運動情報は、検出しにくく、又は一定の程度でそれに隣接する他の局所に依存することがある。本実施例では、連結部の種類に応じて制御方式を決定する。
例えば、手首の横方向回転については、上膊から手部への伸び方向を軸として回転すれば、手首の横方向での回転は上膊の回転によって引き起こされるものである。更に例を挙げると、足首の横方向回転については、すねの伸び方向を軸として回転すれば、足首の回転は直接すねとの連動で発生する。
頸部のような連結部においては、顔部向きと胴体向きがその回転に依存する。
別の実施例では、前記連結部の種類に応じて、前記連結部を制御する制御方式を決定するステップは、前記連結部が第1種の連結部である場合に、第1種の制御方式を使用すると決定するステップを含む。前記第1種の制御方式は、前記被制御モデルの前記第1種の連結部に対応する連結部の運動を直接制御するため用いられる。
本実施例では、前記第1種の連結部は他の局所と連動せず、自ら回転する。
別の実施例では、連結部は、第1種の連結部以外の第2種の連結部を更に含む。ここの第2種の連結部の運動は自体に限定されなく、他の局所と連動する。
いくつかの実施例では、前記連結部の種類に応じて前記連結部を制御する制御方式を決定するステップは、前記連結部が第2種の連結部である場合に、第2種の制御方式を使用すると決定するステップを含む。前記第2種の制御方式は、前記被制御モデルの前記第2種の連結部以外の局所を制御することで、前記第2種の連結部を間接的に制御するために用いられる。
この第2種の連結部以外の局所は、前記第2種の連結部に直接的に連結される局所、又は、前記第2種の連結部に間接的に連結される局所を含むが、それらに限定されない。例えば、手首が横方向に回転している時に、上肢全体が運動していることが可能であり、そのため、肩及び肘部が共に回転しており、そのようにして、肩及び/又は肘部の横方向回転を制御することで、前記手首の回転を間接的に制御することができる。
いくつかの実施例では、前記制御方式及び前記連結部の運動情報によって被制御モデルの連結部の運動を制御するステップは、前記制御方式が前記第2種の制御方式である場合に、前記連結部の運動情報を分解して、牽引部の牽引により前記連結部が回転する第1種の回転情報を取得するステップと、前記第1種の回転情報によって前記牽引部の運動情報を調整するステップと、前記牽引部の調整後の運動情報に基づいて、前記被制御モデルにおける牽引部の運動を制御して、前記連結部の運動を間接的に制御するステップと、を含む。
本実施例では、前記牽引部は前記第2種の連結部に直接的に連結される局所である。手首が前記第2種の連結部となることを例とすると、前記牽引部は前記手首の上部の肘ないしアームである。足首が前記第2種の連結部となることを例とすると、前記牽引部は前記足首の上部のひざないし太ももの付け根である。
例えば、手首の肩部、肘、手首の直線方向に沿った横方向回転は、肩部又は肘と連動して発生するものである可能性がある。しかし、運動情報を検出する時に、手首の運動によるものとされ、そのため、手首の横方向回転情報の値を実質的には肘又は肩部に付与すべきであり、このような伝達付与によって肘又は肩部の運動情報の調整が実現され、調整後の運動情報に基づいて被制御モデルにおける肘又は肩部の運動を制御する。そのようにして、肘又は肩部に対応する横方向回転は、画像の効果から言えば、被制御モデルの手首によって体現され、それによって被制御モデルが目標の運動を精確にシミュレートすることを実現した。
いくつかの実施例では、前記方法は、前記連結部の運動情報を分解して、前記第2種の連結部が前記牽引部に対して回転した第2種の回転情報を取得するステップと、前記第2種の回転情報に基づいて、前記被制御モデルにおける前記牽引部に対する前記連結部の回転を制御するステップと、を更に含む。
前記第1種の回転情報は、回転情報を抽出する情報モデルによって直接的に画像の特徴から取得される情報であり、第2種の回転情報は前記第1種の回転情報を調整することで得られる回転情報である。本実施例では、まず第2種の連結部の特徴、例えば、2D座標又は3D座標に基づいて、特定姿勢に対する第2種の連結部の運動情報を知ることができる。前記連結部の運動情報は、回転情報を含むが、それに限定されない。いくつかの実施例では、前記連結部の運動情報は平行移動情報を更に含む。
いくつかの実施例では、前記第2種の連結部は手首、足首を含む。
別の実施例では、前記第2種の連結部が手首であれば、前記手首に対応する牽引部は上膊及び/又は下膊を含み、前記第2種の連結部が足首であれば、前記足首に対応する牽引部はすね及び/又は太ももを含む。
いくつかの実施例では、前記第1種の連結部は頭部と胴体をつなぐ頸部を含む。
更に別の実施例では、前記少なくとも2つの局所の特徴及び前記連結部の第1運動制約条件によって、連結部の運動情報を決定するステップは、連結部によって連結される2つの局所の特徴によって、前記2つの局所の向き情報を決定するステップと、2つの局所の向き情報によって前記連結部の候補向き情報を決定するステップと、前記候補向き情報と前記第1運動制約条件によって、前記連結部の運動情報を決定するステップと、を含む。
いくつかの実施例では、2つの局所の向き情報によって前記連結部の候補向き情報を決定するステップは、2つの局所の向き情報によって前記連結部の第1候補向き情報と第2候補向き情報を決定するステップを含む。
2つの局所の向き情報が2つの夾角を形成することが可能であり、本実施例では、前記第1運動制約条件を満たした夾角を前記連結部の運動情報とする。
例えば、顔の向きと胴体の向きによって2つの夾角が形成され、これら2つの夾角の和が180度である。これら2つの夾角をそれぞれ第1夾角と第2夾角とする。顔と胴体をつなぐ頸部は−90〜90度の範囲を第1運動制約条件とし、90度を超えた角度が第1運動制約条件によって排除される。そのようにして、被制御モデルが目標をシミュレートして運動する過程で、時計回り又は反時計回りに90度以上、例えば、120度、180度の回転角度で回転する異常な状況を低減することができる。このような第1制約条件の極限値を超える状況が発生すると、異常値を第1制約条件に対応する極限値に取り替える。−90〜90度の範囲を前記第1運動制約条件とすれば、この第1運動制約条件は−90度と90度の2つの極限角度に対応する。
回転角度が−90〜90度の範囲を超えると、検出された回転角度が第1運動制約条件で限定された最大角度、即ち極限値に修正される。例えば、90度以上の回転角度が検出されると、検出された回転角度がそれに近い極限角度、例えば90度に修正される。
いくつかの実施例では、前記候補向き情報と前記第1運動制約条件によって前記連結部の運動情報を決定するステップは、前記第1候補向き情報と第2候補向き情報から向き変更制約範囲内にある目標向き情報を選択するステップと、前記目標向き情報によって前記連結部の運動情報を決定するステップと、を含む。
ここの目標向き情報は前記第1運動制約条件を満たした情報である。
例えば、頸部を例とすると、顔部が右に向かっている場合に、対応する頸部の向きは右への90度又は左への270度である可能性があるが、人体の生理学的構造の観点から、人体の頸部向きの変更において左へ270度回転させて頸部を右へ向かわせることが不可能である。この時に、頸部の向きとして、右への90度及び左への270度がいずれも候補向き情報となり、更に前記第1運動制約条件によって頸部の向き情報を決定する必要がある。この例において、右への90度の頸部を頸部の目標向き情報とし、且つ右への90度の頸部によって、右へ90度回転したことを頸部の現在の運動情報とする。
いくつかの実施例では、前記2つの局所の特徴によって前記2つの局所の向き情報を決定するステップは、前記2つの局所のうちの各局所の第1キーポイントと第2キーポイントを取得するステップと、前記2つの局所のうちの各局所の第1基準点を取得するステップであって、前記第1基準点は、前記目標内の第1所定キーポイントであるステップと、前記第1キーポイントと前記第1基準点に基づいて第1ベクトルを生成するステップと、前記第2キーポイントと前記第1基準点に基づいて第2ベクトルを生成するステップと、前記第1ベクトルと前記第2ベクトルに基づいて前記2つの局所のうちの各局所の向き情報を決定するステップと、を含む。
前記2つの局所のうちの第1局所が人体の肩部であれば、前記第1局所の第1基準点は前記目標の腰部キーポイント又は股間のキーポイントの中点であってよい。前記2つの局所のうちの第2局所が顔であれば、前記第2局所の第1基準点は顔に連結される頸部と肩部の連結点であってよい。
いくつかの実施例では、前記2つのベクトルに基づいて前記2つの局所のうちの各局所の向き情報を決定するステップは、各局所については、この局所の2つのベクトルのクロス積を計算してこの局所所在平面の法線ベクトルを得るステップと、前記法線ベクトルをこの局所の向き情報とするステップと、を含む。
クロス積計算によって、連結部の所在する平面の法線ベクトルである別のベクトルを得ることができ、この法線ベクトルが決定されると、局所の所在する平面の向きが決定され、そのように、連結部の基準面に対する回転角度が決定されたことに相当し、つまり、連結部の運動情報が決定されたことに相当する。
いくつかの実施例では、前記方法は、前記特徴に基づいて前記少なくとも2つの局所の運動情報を決定するステップを更に含に、前記少なくとも2つの局所の特徴及び連結部の第1運動制約条件によって前記連結部の運動情報を決定するステップは、前記少なくとも2つの局所の運動情報によって前記連結部の運動情報を決定するステップを含む。
いくつかの実施例では、前記少なくとも2つの局所の運動情報に基づいて前記連結部の運動情報を決定するステップは、第2基準点に対する前記連結部の第3の3D座標を取得するステップであって、前記第2基準点は、前記少なくとも2つの局所の第2所定キーポイントであるステップと、前記第3の3D座標によって前記連結部の絶対回転情報を取得するステップと、を含み、前記連結部の運動情報によって前記被制御モデルの連結部の運動を制御するステップは、前記絶対回転情報に基づいて前記被制御モデルの連結部の運動を制御するステップを含む。
いくつかの実施例では、前記第2基準点は目標の骨格キーポイントのうちの1つであってよく、目標が人間であることを例とすると、この第2基準点は前記第1種の連結部に連結される局所のキーポイントであってよい。例えば、頸部を例とすると、第2基準点は頸部に連結される肩部のキーポイントであってよい。
別の実施例では、前記第2基準点は前記第1基準点と同じものであってもよく、例えば、第1基準点と第2基準点は共に人体の根ノードであってよく、人体の根ノードは人体股間部の2つのキーポイントの連結線の中点であってよい。この根ノードは図7Bに示すキーポイント0を含むが、それに限定されない。図7Bは人体の骨格模式図であり、図7Bには番号が0−16の合計17個の骨格関節点を含む。
別の実施例では、前記絶対回転情報に基づいて前記被制御モデルの連結部の運動を制御するステップは、前記目標における複数の前記連結部同士の牽引階層関係によって前記絶対回転情報を分解して、相対的回転情報を取得するステップを更に含み、前記連結部の運動情報によって前記被制御モデルの連結部の運動を制御するステップは、前記相対的回転情報に基づいて前記被制御モデルの連結部の運動を制御するステップを含む。
例えば、以下、階層関係の一例を列挙する。第1階層は骨盤、第2階層は腰部、第3階層は太もも(例えば、左太もも、右太もも)、第4階層はすね(例えば、左すね、右すね)、第5階層は足部である。
更に、以下、階層関係の別の例を列挙する。第1階層は胸、第2階層は頸部、第3階層は頭である。
更に、以下、階層関係のまた1つの例を列挙する。第1階層は肩部に対応する鎖骨、第2階層は上膊、第3階層は下膊(前膊とも称する)、第4階層は手部である。
第1階層〜第5階層は、階層関係が順に低くなり、高階層の局所の運動は低階層の局所の運動に影響を及ぼす。従って、牽引部の階層が連結部の階層より高い。
前記連結部の運動情報を決定する時に、まず、各階層の局所に対応するキーポイントの運動情報を取得し、続いて、階層関係に基づいて、低階層の局所のキーポイントの高階層の局所のキーポイントに対する運動情報(即ち、前記相対的回転情報)を決定する。
例えば、四元数で運動情報を表し、そのため、相対的回転情報は以下の計算式(1)で表してよく、各キーポイントのカメラ座標系に対する回転四元数{Q0,Q1,…,Q18}を計算し、続いて、各キーポイントの親キーポイントに対する回転四元数qiを計算する。
qi=Q−1 parent(i)・Qi (1)
ただし、親キーポイントparent(i)は現在キーポイントiの前の階層のキーポイントである。Qiは現在キーポイントiのカメラ座標系に対する回転四元数であり、Q−1 parent(i)は前の階層のキーポイントの逆回転パラメータである。例えば、Qparent(i)が前の階層のキーポイントの回転パラメータであり、且つ回転角度が90度であり、そのようにQ−1 parent(i)の回転角度が−90度である。
いくつかの実施例では、前記絶対回転情報に基づいて前記被制御モデルの連結部の運動を制御するステップは、第2制約条件によって前記相対的回転情報を補正するステップを更に含み、前記相対的回転情報に基づいて前記被制御モデルの連結部の運動を制御するステップは、補正後の前記相対的回転情報に基づいて前記被制御モデルの連結部の運動を制御するステップを含む。
いくつかの実施例では、前記第2制約条件は前記連結部の回転可能角度を含む。
いくつかの実施例では、前記方法は、前記連結部の運動情報に対して姿勢欠陥補正を行って補正後の連結部の運動情報を取得するステップを更に含み、前記連結部の運動情報に基づいて被制御モデルの連結部の運動を制御するステップは、前記補正後の連結部の運動情報に基づいて前記被制御モデルの連結部の運動を制御するステップを含む。
例えば、形体があまり標準的ではない問題、歩く時に違和感がある問題等が存在するユーザがいる。被制御モデルが直接模倣しておかしい動作をすることを低減するために、本実施例では、連結部の運動情報に対して姿勢欠陥補正を行って補正後の連結部の運動情報を取得してもよい。
いくつかの実施例では、前記方法は、前記少なくとも2つの局所の運動情報に対して姿勢欠陥補正を行って、補正後の少なくとも2つの局所の運動情報を取得するステップを更に含み、前記ステップS160には、前記補正後の少なくとも2つの局所の運動情報に基づいて前記被制御モデルの対応局所の運動を制御するステップを含んでよい。
いくつかの実施例では、前記姿勢欠陥補正は、上肢と下肢の方向が一致した欠陥、がに股運動欠陥、足部を外股にした運動欠陥、足部を内股にした運動欠陥の中の少なくとも一項を含む。
いくつかの実施例では、前記方法は、前記目標の形体と基準形体との間の相違情報によって、前記少なくとも2つの局所の運動情報及び/又は連結部の運動情報を補正するための前記姿勢欠陥補正パラメータを取得するステップを更に含む。
例えば、目標を含む画像を用いて前記被制御モデルを制御する前に、先に前記目標の形体を検出し、続いて検出された形体を基準形体と比較して相違情報を得、相違情報に基づいて姿勢欠陥補正を行う。
特定姿勢を保持する通知を表示画面に出力し、ユーザが前記通知を見た後、前記特定姿勢を保持し、そのようにして画像デバイスが特定姿勢を維持したユーザの画像を取得でき、続いて画像検出によってユーザの維持した特定姿勢が十分に標準的なものであるか否かを決定して、前記相違情報を得る。
例えば、足部を外股にする人がいるが、正常な標準的立ち姿勢は両足のつま先とかかの連結線が互に平行するようになるはずであり、目標の特徴に対応する少なくとも2つの局所の運動情報及び/又は連結部の運動情報を取得して被制御モデルを制御する時に、このような形体への非標準補正(即ち、前記姿勢欠陥補正)を考えられる。この特定姿勢は、人体の直立姿勢を含んでよいが、それに限定されない。
別の実施例では、前記方法は、前記目標の別々の局所の割合関係によって基準モデルの別々の局所の割合を補正して、補正後の前記被制御モデルを取得するステップを更に含む。
別々の目標の各部分の割合関係は相違することがある。例えば、プロのファッションモデルの脚長と頭長の割合は普通の人より長い。更に例を挙げると、臀部がふくよかで、股間の幅が普通の人より大きい人がいる。
基準モデルは大規模の人体データに基づいて得られた平均値モデルであってよく、被制御モデルが目標の運動をより精確にシミュレートすることができるように、本実施例では、目標の別々の局所の割合関係によって基準モデルの別々の局所の割合を補正して、補正後の前記被制御モデルを取得する。例えば、目標が人間であることを例とすると、補正される局所は、股間部及び/又は脚部を含むが、それらに限定されない。
図3A、図3B及び図3Cに示すように、画像左上角の小さい画像は取得された画像であり、右下角は人体の被制御モデルである。図3Aから図3Bへ、次に図3Bから図3Cへ、このユーザの手部は動かしており、被制御モデルの手もそれに伴って動かしている。ユーザの手部運動は図3A〜図3Cにおいて、順に拳を握り、手のひらを広げ、人差し指を伸ばすように変化し、被制御モデルは、ユーザのジェスチャーをシミュレートして、拳を握り、手のひらを広げ、人差し指を伸ばすように変化する。
図4A、図4B及び図4Cに示すように、画像左上角の小さい画像は取得された画像であり、右下角は人体の被制御モデルである。図4Aから図4Bへ、次に図4Bから図4Cへ、このユーザの胴体は動かしており、被制御モデルの胴体もそれに伴って動かしている。図4Aから図4Cへ、ユーザは、股間を画像の右へ突き出し、股間を画像の左へ突き出し、最後にまっすぐに立つように変化する。被制御モデルもユーザをシミュレートして胴体運動をする。
図5A、図5B及び図5Cに示すように、画像左上角の小さい画像は取得された画像であり、右下角は人体の被制御モデルである。図5Aから図5Cへ、ユーザは画像右側へ足を踏み出し、画像の左側へ足を踏み出し、最後にまっすぐに立ち、被制御モデルもユーザをシミュレートして足部運動をする。
なお、図4A〜図4Cにおいて、被制御モデルは更にユーザの表情の変化をもシミュレートする。
図6に示すように、本実施例は、画像処理装置を提供する。
前記画像処理装置は、画像を取得するための第1取得モジュール110と、
前記画像に基づいて目標の少なくとも2つの局所の特徴を取得するための第2取得モジュール120と、
前記少なくとも2つの局所の特徴及び連結部の第1運動制約条件によって、前記連結部の運動情報を決定するための第1決定モジュール130と、
前記連結部の運動情報に基づいて被制御モデルの連結部の運動を制御するための制御モジュール140と、を含み、前記連結部は、前記少なくとも2つの局所のうちの2つの局所を連結するために用いられる。
いくつかの実施例では、前記制御モジュール140は、具体的には、前記連結部の種類に応じて、前記連結部を制御する制御方式を決定し、前記制御方式及び前記連結部の運動情報によって前記被制御モデルの連結部の運動を制御するために用いられる。
いくつかの実施例では、前記制御モジュール140は、具体的には、前記連結部が第1種の連結部である場合に、第1種の制御方式を前記制御方式とするために用いられ、前記第1種の制御方式は、前記被制御モデルにおける前記第1種の連結部に対応する連結部の運動を直接的に制御するために用いられる。
いくつかの実施例では、前記制御モジュール140は、具体的には、前記連結部が第2種の連結部である場合に、第2種の制御方式を前記制御方式とするために用いられ、前記第2種の制御方式は、前記被制御モデルにおける前記第2種の連結部に対応する連結部の運動を間接的に制御するために用いられ、当該間接的に制御することは、前記被制御モデルにおける前記第2種の連結部以外の局所に対応する局所を制御することで実現される。
いくつかの実施例では、前記制御モジュール140は、具体的には、前記制御方式が前記第2種の制御方式である場合に、前記連結部の運動情報を分解して、牽引部の牽引により前記連結部が回転する前記連結部の第1種の回転情報を取得し、前記第1種の回転情報によって前記牽引部の運動情報を調整し、調整後の前記牽引部の運動情報に基づいて前記被制御モデル中の前記牽引部の運動を制御して、前記連結部の運動を間接的に制御するために用いられる。
いくつかの実施例では、前記装置は、前記連結部の運動情報を分解して、前記第2種の連結部が前記牽引部に対して回転した第2種の回転情報を取得するための分解モジュールを更に含み、前記制御モジュール140は、更に、前記第2種の回転情報に基づいて、前記被制御モデルにおける前記牽引部に対する前記連結部の回転を制御するために用いられる。
いくつかの実施例では、第2種の連結部は手首、足首を含む。
いくつかの実施例では、前記第2種の連結部が手首であれば、前記手首に対応する牽引部は上膊及び/又は下膊を含み、前記第2種の連結部が足首であれば、対応する前記足首の牽引部は太もも及び/又はすねを含む。
いくつかの実施例では、第1種の連結部は、頭部と胴体をつなぐ頸部を含む。
いくつかの実施例では、前記装置は、前記連結部によって連結される前記2つの局所の特徴によって、前記2つの局所のそれぞれの向き情報を決定するための向き決定モジュールと、前記2つの局所のそれぞれの前記向き情報によって前記連結部の候補向き情報を決定するための第2決定モジュールと、前記候補向き情報と前記第1運動制約条件によって前記連結部の運動情報を決定するための選択モジュールと、を更に含む。
いくつかの実施例では、前記第2決定モジュールは、前記2つの局所のそれぞれの前記向き情報によって、前記連結部の第1候補向き情報及び第2候補向き情報を決定するために用いられる。
いくつかの実施例では、前記選択モジュールは、具体的には、前記第1候補向き情報と第2候補向き情報から向き変更制約範囲内にある目標向き情報を選択し、前記目標向き情報によって前記連結部の運動情報を決定するために用いられる。
いくつかの実施例では、前記向き決定モジュールは、具体的には、前記2つの局所のうちの各局所の第1キーポイントと第2キーポイントを取得し、前記2つの局所のうちの各局所の第1基準点を取得し、前記第1基準点は、前記目標内の第1所定キーポイントであり、前記第1キーポイントと前記第1基準点に基づいて第1ベクトルを生成し、前記第2キーポイントと前記第1基準点に基づいて第2ベクトルを生成し、前記第1ベクトルと前記第2ベクトルに基づいて前記2つの局所のうちの各局所の向き情報を決定するために用いられる。
いくつかの実施例では、前記向き決定モジュールは、具体的には、各局所については、当該局所の2つのベクトルのクロス積を計算して当該局所の所在する平面の法線ベクトルを得るステップと、前記法線ベクトルを当該局所の向き情報とするステップとに用いられる。
いくつかの実施例では、前記装置は、前記特徴に基づいて前記少なくとも2つの局所の運動情報を決定するための第3決定モジュールを更に含み、前記第1決定モジュール130は、具体的には、前記少なくとも2つの局所の運動情報によって前記連結部の運動情報を決定するために用いられる。
いくつかの実施例では、前記第1決定モジュール130は、具体的には、第2基準点に対する前記連結部の第3の3D座標を取得し、前記第2基準点は、前記少なくとも2つの局所の第2所定キーポイントであり、前記第3の3D座標によって前記連結部の絶対回転情報を取得するために用いられ、前記制御モジュール140は、具体的には、前記絶対回転情報に基づいて前記被制御モデルの連結部の運動を制御するために用いられる。
いくつかの実施例では、前記第1決定モジュール130は、具体的には、前記目標における複数の前記連結部同士の牽引階層関係によって前記絶対回転情報を分解して、相対的回転情報を取得するために用いられ、前記制御モジュール140は、具体的には、前記相対的回転情報に基づいて前記被制御モデルの連結部の運動を制御するために用いられる。
いくつかの実施例では、前記装置は、第2制約条件によって前記相対的回転情報を補正するための補正モジュールを更に含み、前記制御モジュール140は、具体的には、補正後の前記相対的回転情報に基づいて前記被制御モデルの連結部の運動を制御するために用いられる。
いくつかの実施例では、前記第2制約条件は前記連結部の回転可能角度を含む。
以下、上記の任意の実施例に基づいていくつかの具体的な例を列挙する。
(例1)
本実例は画像処理方法を提供し、この方法のステップは以下のとおりである。
目標を含む画像を取得する。該目標は、人体を含むが、それに限定されない
人体の顔部キーポイントを検出する。該顔部キーポイントは、顔の表面の輪郭キーポイントであってよい。
人体の胴体キーポイント及び/又は肢体キーポイントを検出し、ここの胴体キーポイント及び/又は肢体キーポイントは共に3D座標で表される3Dキーポイントであってよい。この3D座標は、2D画像から2D座標を検出して、2D座標を3D座標に変換する変換アルゴリズムに基づいて取得した3D座標を含んでよい。この3D座標は、更に、3Dカメラで取得した3D画像から抽出された3D座標であってよい。ここの肢体キーポイントは、上肢キーポイント及び/又は下肢キーポイントを含んでよい。手部を例とすると、この上肢キーポイントの手部キーポイントは、手首関節のキーポイント、掌関節のキーポイント、指関節のキーポイント、指先キーポイントを含むが、それらに限定されなく、これらのキーポイントの位置は手部と手の指の運動を反映できる。
顔キーポイントによって顔のメッシュ(mesh)情報を生成する。mesh情報に基づいて前記目標の現在の表情に対応するベース表情を選択し、このベース表情によって前記被制御モデルの表情を制御し、mesh情報の反映する強度係数によって、被制御モデルの各ベース表情に対応する表情強度を制御する。
前記胴体キーポイント及び/又は肢体キーポイントによって四元数に変換する。胴体キーポイントに対応する四元数によって被制御モデルの胴体運動を制御し、及び/又は、肢体キーポイントに対応する四元数によって被制御モデルの肢体運動を制御する。
例えば、前記顔部キーポイントは、106個のキーポイントを含んでよい。前記胴体キーポイント及び/又は肢体キーポイントは、具体的には図7Aと図7Bに示すように、14個のキーポイント又は17個のキーポイントを含んでよい。図7Aに14個の骨格キーポイントを含む模式図を示し、図7Bに17個の骨格キーポイントを含む模式図を示す。
図7Bは図7Aに示す14個のキーポイントに基づいて生成した17個のキーポイントの模式図であってよい。図7Bにおける17個のキーポイントは、図7Aに示すキーポイントにキーポイント0、キーポイント7及びキーポイント9が追加されたものであり、ここで、キーポイント9の2D座標はキーポイント8及びキーポイント10の2D座標に基づいて一応決定されてよく、キーポイント7の2D座標はキーポイント8の2D座標及びキーポイント0の2D座標によって決定されてよい。キーポイント0は本開示の実施例で提供される基準点となってよく、この基準点を前記の第1基準点及び/又は第2基準点としてよい。
この例における前記被制御モデルは、ゲームシーンでの体感装置、オンライン授業シーンでのオンライン教育動画における教師モデル、仮想キャス主シーンでの仮想キャス主であってよい。要するに、前記被制御モデルは適用シーンに応じて決定され、適用シーンによっては、被制御モデルのモデルが異なり及び/又は外観が異なる。
例えば、伝統的な数学、物理等の授業で、教師モデルの服装として、例えばスーツ等の穏やかで落ち着くように見える服装を採用する傾向がある。更に例を挙げると、ゆが又は体操等の運動の授業で、被制御モデルがスポーツウェアを着用する傾向がある。
(例2)
本実例は画像処理方法を提供し、この方法のステップは以下のとおりである。
目標を含む画像を取得する。該目標は、人体を含むが、それに限定されない。
人体の胴体キーポイントと肢体キーポイントを検出し、ここの胴体キーポイント及び/又は肢体キーポイントは共に3D座標で表される3Dキーポイントであってよい。この3D座標は、2D画像から2D座標を検出してから2D座標を3D座標に変換する変換アルゴリズムに基づいて取得した3D座標を含んでよい。この3D座標は、更に、3Dカメラで取得した3D画像から抽出された3D座標であってよい。ここの肢体キーポイントは、上肢キーポイント及び/又は下肢キーポイントを含んでよい。手部を例とすると、この上肢キーポイントの手部キーポイントは、手首関節のキーポイント、掌関節のキーポイント、指関節のキーポイント、指先キーポイントを含むが、それらに限定されない。これらのキーポイントの位置は手部と手の指の運動を反映できる。
胴体キーポイントを胴体運動を表す四元数に変換し、この四元数を胴体四元数と称してよい。肢体キーポイントを肢体運動を表す四元数に変換し、この四元数を肢体四元数と称してよい。
胴体四元数を用いて被制御モデルの胴体運動を制御する。肢体四元数を用いて被制御モデルの肢体運動を制御する。
前記胴体キーポイントと肢体キーポイントは、具体的には図7Aと図7Bに示すように、14個のキーポイント又は17個のキーポイントを含んでよい。
この例における前記被制御モデルは、ゲームシーンでの体感装置、オンライン授業シーンでのオンライン教育動画における教師モデル、仮想キャス主シーンでの仮想キャス主であってよい。要するに、前記被制御モデルは適用シーンに応じて決定され、適用シーンによっては、被制御モデルのモデルが異なり及び/又は外観が異なる。
例えば、伝統的な数学、物理等の授業で、教師モデルの服装として、例えばスーツ等の穏やかで落ち着くように見える服装を採用する傾向がある。更に例を挙げると、ゆが又は体操等の運動の授業で、被制御モデルがスポーツウェアを着用する傾向がある。
(例3)
この例は画像処理方法を提供し、この方法のステップは以下のとおりである。
人体であってよい目標を含む画像を取得する。
前記画像から目標の3次元空間での3D姿勢を取得し、この3D姿勢は人体の骨格キーポイントの3D座標で表してよい。
人体の関節のカメラ座標系での絶対回転パラメータを取得し、この絶対回転位置はカメラ座標系での座標に基づいて決定されてよい。
この座標によって関節の座標方向を取得する。階層関係に基づいて関節の相対的回転パラメータを決定する。前記相対的回転パラメータを決定するステップは、具体的には、関節キーポイントの人体の根ノードに対する位置を決定するステップを含んでよい。ここで、この相対的回転パラメータは四元数で表してよい。ここの階層関係は、関節同士の牽引関係であってよく、例えば、肘関節の運動は所定の程度で手首関節の運動を牽引し、肩関節の運動も肘関節の運動を牽引する等のことがある。前記階層関係は、人体の関節に応じて事前に決定されてよい。
この四元数を用いて被制御モデルの回転を制御する。
例えば、以下、階層関係の一例を列挙する。第1階層は骨盤、第2階層は腰部、第3階層は太もも(例えば、左太もも、右太もも)、第4階層はすね(例えば、左すね、右すね)、第5階層は足部である。
更に、以下、階層関係の別の例を列挙する。第1階層は胸、第2階層は頸部、第3階層は頭である。
更に、以下、階層関係のまた1つの例を列挙する。第1階層は肩部に対応する鎖骨、第2階層は上膊、第3階層は下膊(前膊とも称する)、第4階層は手部である。
第1階層〜第5階層は、階層関係が順に低くなり、高階層の局所の運動は低階層の局所の運動に影響を及ぼす。従って、牽引部の階層が連結部の階層より高い。
前記連結部の運動情報を決定する時に、まず、各階層の局所のキーポイントの運動情報を取得し、続いて、階層関係に基づいて、低階層の局所のキーポイントの高階層の局所のキーポイントに対する運動情報(即ち、前記相対的回転情報)を決定する。
例えば、四元数で運動情報を表し、そのため、相対的回転情報は以下の計算式で表してよく、各キーポイントのカメラ座標系に対する回転四元数{Q0,Q1,…,Q18}を計算し、続いて式(1)によって各キーポイントの親キーポイントに対する回転四元数qiを計算する。
四元数を用いて被制御モデルの各関節の運動を制御する前記ステップは、qiを用いて被制御モデルの各関節の運動を制御するステップを含んでよい。
更なる画像処理方法では、前記方法は、前記四元数を第1オイラー角に変換するステップと、第1オイラー角を変換して、制約条件内にある第2オイラー角を得るステップであって、当該制約条件は、第1オイラー角を角度制約することが可能であるステップと、第2オイラー角に対応する四元数を取得してから、この四元数を用いて前記被制御モデルの回転を制御するステップと、を更に含む。第2オイラー角に対応する四元数を取得する場合に、この第2オイラー角を直接四元数に変換してよい。
人体を例として説明すると、人体検出によって17個の関節のキーポイントを検出可能であり、更に、左の手と右の手に対応するように2つのキーポイントが設置されており、合計19個のキーポイントがある。図7Bは17個のキーポイントの骨格模式図である。図8は19個のキーポイントの骨格模式図である。図8に示す骨格がそれぞれ骨盤、腰部、左太もも、左すね、左足、右太もも、右すね、右足、胸部、頸部、頭部、左鎖骨、右鎖骨、右上膊、右下膊、右手部、左上膊、左下膊、左手を表す19個のキーポイントに対応するものであってよい。
まず、画像における人体関節のキーポイントの検出によって画像座標系での17個のキーポイントの座標を取得可能であり、具体可的には、S={(x0,y0,z0),…,(x16,y16,z16)}になる。(xi,yi,zi)はi番目のキーポイントの座標であり、iの値として0〜16を取ってもよい。
19個の関節のキーポイントのそれぞれの局所座標系での座標がA={(p0,q0),…,(p18,q18)}と定義されてよい。piはノードiの局所座標系での3次元座標を表し、一般的には元のモデルに固有の固定値であり、修正や移行を要さない。qiは、四元数であり、ノードiが制御する骨のその親ノード座標系での回転を表し、現在ノードの局所座標系と親ノード局所座標系の回転と見なしてもよい。
各関節に対応するキーポイントの四元数を計算する手順は以下のようになってもよい。各ノードの局所座標系の座標軸方向を決定する。各骨については、具体的に図9に示すように、子ノードから親ノードに向かう方向をx軸とし、この骨の回転可能角度を最も大きくする回転軸をz軸とし、回転軸を判断できなければ、人体の顔が向く方向をy軸とする。
この例では左手座標系を例として説明したが、具体的に実施する時に右手座標系を利用してもよい。
以上の表において、(i−j)はiからjに向かうベクトルを表し、xはクロス積の計算を表す。例えば、(1−7)は第1キーポイントから第7キーポイントに向かうベクトルを表す。
以上の表において、ノード8、15、11及び18は手と足の4つのノードであり、これら4つのキーポイントの四元数の計算は具体的な姿勢の場合にしか計算できないので、この表にこれら4つのキーポイントを含まない。なお、以上の表では、19個の骨格ノード番号は図8を参照してよく、17個の骨格のキーポイント番号は図7Bを参照してよい。
前記第1オイラー角を求める手順は以下のようになってもよい。
関節点局所回転四元数qiを算出した後、まず、それをx−y−zのデフォルト順序でオイラー角に変換する。
qi=(q0,q1,q2,q3)とし、q0が実数部分であり、q1,q2,q3がいずれも虚数部分である。そのため、オイラー角の計算式は(2)−(4)に示すようになる。
X=atan2(2*(q0*q1−q2*q3),1−2*(q1*q1+q2*q2)) (2)
Y=asin(2*(q1*q3+q0*q2))であり、且つYの値として−1〜1を取る (3)
Z=atan2(2*(q0*q3−q1*q2),1−2*(q2*q2+q3*q3)) (4)
Xが第1方向でのオイラー角であり、Yが第2方向でのオイラー角であり、Zが第3方向でのオイラー角である。第1方向、第2方向及び第3方向のうちの任意2つのものが垂直である。
続いて、制限範囲を超えた場合に、境界値に限定して、補正後の第2オイラー角(X’,Y’,Z’)を得るように、(X,Y,Z)の3つの角度を制限してもよい。新しい局所座標系回転四元数qi’に回復する。
更なる画像処理方法では、前記方法は、第2オイラー角に対して姿勢最適化調整を行うステップを更に含む。例えば、第2オイラー角中のある角度を調整する場合に、事前に設定された規則に基づいて、姿勢が最適化されたオイラー角に調整して第3オイラー角を得るようにしてよい。そのように、第2オイラー角に対応する四元数を取得するステップは、第3オイラー角を、被制御モデルを制御する四元数に変換するステップを含んでよい。
別の更な画像処理方法では、前記方法は、第2オイラー角を四元数に変換した後、変換後の四元データに対して姿勢最適化処理を行うステップを更に含む。例えば、特定規則に基づいて調整して、調整後の四元数を得、最終的な調整後の四元数によって前記被制御モデルを制御する。
いくつかの実施例では、第2オイラー角又は第2オイラー角を変換して得られた四元数を調整する時に、特定規則に基づいて調整してもよく、深層学習モデルが自ら最適化調整してもよく、具体的な実施形態は様々あり、本願で限定されない。
なお、また1つの画像処理方法では、前処理を更に含んでもよい。例えば、取得された人体のサイズによって、被制御モデルの股間部及び/又は肩部の幅を修正して、人体の姿勢全体を補正する。人体の立ち姿勢については、まっすぐに立った場合の補正、小腹を張った場合の補正を行って良い。立っている時に小腹を張る人がいて、小腹を張った場合の補正によって、被制御モデルはユーザが小腹を張っている動作をシミュレートすることがない。立っている時に背中を曲げる人がいて、背中を曲げた場合の補正によって、被制御モデルはユーザが背中を曲げている動作等をシミュレートすることがない。
(例4)
この例は画像処理方法を提供し、この方法のステップは以下のとおりである。
目標を含む画像を取得し、当該目標は、人体、人体の上肢、人体の下肢の少なくとも1つを含んでよい。
目標関節の画像座標系での位置情報によって目標関節の座標系を取得する。肢体局所の画像座標系での位置情報に基づいて、目標関節の運動を牽引する肢体局所の座標系を取得する。
前記目標関節の座標系と肢体局所の座標系に基づいて目標関節の肢体局所に対する回転を決定して、目標関節の自身回転パラメータと肢体局所に牽引される回転パラメータを含む回転パラメータを得る。
第1角度制約によって肢体局所に牽引される回転パラメータを制約して、最終牽引回転パラメータを得る。最終牽引回転パラメータによって、肢体局所の回転パラメータを補正する。肢体局所の座標系と肢体局所の補正後の回転パラメータによって相対的回転パラメータを取得し、相対的回転パラメータに対して第2角度制約を行って、制約された相対的回転パラメータを得る。
制約された回転パラメータに基づいて四元数を取得する。この四元数によって被制御モデルの目標関節の運動を制御する。
例えば、人体の上肢を処理する時に、画像座標系での手部の座標系を取得し、且つ前膊の座標系及び上膊の座標系を取得する。この時の目標関節は手首関節である。手部の前膊に対する回転を自身回転と牽引される回転に分解する。牽引される回転を前膊に伝達し、具体的には、例えば、牽引される回転の値を前膊対応方向の回転に付与し、前膊の第1角度制約によって前膊の最大回転を制約する。続いて、手部の補正後の前膊に対する回転を決定して相対的回転パラメータを得る。この相対的回転パラメータに対して第2角度制約を行って、手部の前膊に対する回転を得る。
人体の下肢を処理する時に、画像座標系での足部の座標系を取得し、且つすねの座標系及び太ももの座標系を取得し、この時の目標関節は足首関節である。足部のすねに対する回転を自身回転と牽引される回転に分解する。牽引される回転をすねに伝達し、具体的には、例えば、牽引される回転の値をすね対応方向の回転に付与し、すねの第1角度制約によってすねの最大回転を限制する。続いて、足部の補正後のすねに対する回転を決定して相対的回転パラメータを得る。この相対的回転パラメータに対して第2角度制約を行って、足部のすねに対する回転を得る。
(例5)
頸部は頭の向きを制御するものであり、顔、体、手はそれぞれ独立した部分であり、最終的に一体になり、頸部の回転が非常に重要である。
人体のキーポイントによって人体の向きを算出できる。顔キーポイントによって顔の向きを算出でき、これら2つの向きの相対的位置が頸部の回転角度となる。連結部の角度問題を解決するために、相対的計算を行う。例えば、体が0度、顔が90度であり、被制御モデルを制御するには、それは局所角度、頭及び体の角度変化しか注目せず、被制御モデルの頸部の角度を算出する必要があり、それによって被制御モデルの頭を制御できる。
この例では、まず、画像に基づいてユーザの現在の顔部の向き決定し、続いて、頸部の回転角度を計算する。頸部が所定範囲内で回転し、例えば、頸部が最も多く90度回転可能であるとする。算出された回転角度がこの範囲(−90度〜90度)を超えた場合に、範囲の境界を頸部の回転角度(例えば、−90度又は90度)とする。
3Dキーポイントで体又は顔部の向きを計算してもよく、具体的には、顔部又は体の所在する平面内の1本の直線に存在しない2つのベクトルのクロス積を計算してこの平面の法線ベクトルを得、この法線ベクトルを顔部又は体の向きとするように、向きを計算してもよい。この向きを体と顔部との間の連結部(頸部)の向きとしてもよい。
図10に示すように、本願の実施例は、情報を記憶するためのメモリ1002と、前記メモリ1002に接続され、前記メモリ1002に記憶されているコンピュータ実行可能なコマンドを実行することで前記1つ又は複数の技術的解決手段で提供された画像処理方法、例えば、図1A、図1B及び/又は図2に示す画像処理方法を実現可能であるプロセッサ1001と、を含む画像デバイスを提供する。
このメモリ1002は、ランダムアクセスメモリ、読み出し専用メモリ、フラッシュメモリ等のような様々なメモリであってよい。前記メモリ1002は、例えば、コンピュータ実行可能なコマンド等の情報を記憶するために用いてよい。前記コンピュータ実行可能なコマンドは、例えば、目標プログラムコマンド及び/又はソースプログラムコマンド等のような様々なプログラムコマンドであってよい。
前記プロセッサ1001は、例えば、中央処理装置、マイクロプロセッサ、デジタル信号プロセッサ、プログラマブルアレイ、特定用途向け集積回路又は画像プロセッサ等の様々なプロセッサであってよい。
前記プロセッサ1001はバスを介して前記メモリ1002に接続されてよい。前記バスは、集積回路バス等であってよい。
ある実施例では、前記端末装置は、更に、ネットワークインターフェイス1003、例えば、ローカルネットワークインターフェース、送受信アンテナ等を含む通信インターフェイスを含んでよい。前記通信インターフェイスは同様に前記プロセッサ1001に接続され、情報送受信を実行可能である。
ある実施例では、前記端末装置は、例えば、キーボード、タッチパネル等の各種の入出力装置を含むマンマシンインターフェイス1005を更に含む。
ある実施例では、前記画像デバイスは、各種通知、取得された顔画像及び/又は各種画面を表示可能な表示器1004を更に含む。
本願の実施例は、コンピュータ実行可能コードが記憶されているコンピュータ記憶媒体であって、前記コンピュータ実行可能コードが実行されると、前記1つ又は複数の技術的解決手段で提供された画像処理方法、例えば図1A、図1B及び/又は図2に示す画像処理方法を実現可能である非揮発性コンピュータ記憶媒体を提供する。
なお、本願が提供するいくつかの実施例では、開示した機器および方法は、他の形態で実現することができることを理解すべきである。以上に記載の機器の実施例は例示的なものに過ぎず、例えば、前記ユニットの分割は、論理機能の分割に過ぎず、実際に実現する場合に別の形態で分割してもよく、例えば、複数のユニットまたはコンポーネントは組み合わせてもよいし、または別のシステムに統合してもよいし、または一部の特徴を省略もしくは実行しなくてもよい。また、図示または説明した各構成要素の結合、または直接結合、または通信接続は、いくつかのインターフェイス、機器またはユニットを介した間接結合または通信接続であり得、電気的、機械的または他の形態であり得る。
別々の部材として前述したユニットは物理的に分離されてもされなくてもよく、ユニットとして示された部材は物理的ユニットであってもなくてもよく、一箇所にあっても複数のネットワークユニットに分散してもよく、本実施例の解決手段の目的を達成するには、実際の必要に応じて一部または全てのユニットを選択することができる。
また、本開示の各実施例における各機能ユニットは全て一つの処理モジュールに統合されてもよいし、一つのユニットとして別々に使用されてもよいし、二つ以上で一つのユニットに統合されてもよく、上記統合されたユニットはハードウェアの形で、またはハードウェアとソフトウェアを組み合わせた機能ユニットの形で実現され得る。
当業者であれば、上記各方法の実施例を実現する全てまたは一部のステップはプログラムによって関連ハードウェアに命令を出すことにより完了できることを理解でき、前記プログラムは、携帯型記憶装置、読み取り専用メモリ(ROM、Read−Only Memory)、磁気ディスクまたは光ディスクなどのプログラムコードを記憶可能である様々な媒体を含むコンピュータ読み取り可能非揮発性記憶媒体に記憶可能であり、該プログラムは実行される時に、上記各方法の実施例を含むステップを実行する。
以上で説明したのは本開示の具体的な実施形態に過ぎず、本開示の保護範囲がそれに限定されるものでなく、本開示に記載された技術範囲内に当業者に容易に想到される変化又は取り替えは、全て本開示の保護範囲に含まれる。従って、本開示の保護範囲は請求項の保護範囲に準ずるべきである。