IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ベイジン バイトダンス ネットワーク テクノロジー カンパニー リミテッドの特許一覧

特許7560208顔画像表示方法、装置、電子機器及び記憶媒体
<>
  • 特許-顔画像表示方法、装置、電子機器及び記憶媒体 図1
  • 特許-顔画像表示方法、装置、電子機器及び記憶媒体 図2
  • 特許-顔画像表示方法、装置、電子機器及び記憶媒体 図3
  • 特許-顔画像表示方法、装置、電子機器及び記憶媒体 図4
  • 特許-顔画像表示方法、装置、電子機器及び記憶媒体 図5
  • 特許-顔画像表示方法、装置、電子機器及び記憶媒体 図6
  • 特許-顔画像表示方法、装置、電子機器及び記憶媒体 図7
  • 特許-顔画像表示方法、装置、電子機器及び記憶媒体 図8
  • 特許-顔画像表示方法、装置、電子機器及び記憶媒体 図9
  • 特許-顔画像表示方法、装置、電子機器及び記憶媒体 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-24
(45)【発行日】2024-10-02
(54)【発明の名称】顔画像表示方法、装置、電子機器及び記憶媒体
(51)【国際特許分類】
   G06T 19/00 20110101AFI20240925BHJP
   G06F 3/04815 20220101ALI20240925BHJP
【FI】
G06T19/00 A
G06F3/04815
【請求項の数】 13
(21)【出願番号】P 2023507827
(86)(22)【出願日】2021-08-24
(65)【公表番号】
(43)【公表日】2023-09-05
(86)【国際出願番号】 CN2021114237
(87)【国際公開番号】W WO2022057576
(87)【国際公開日】2022-03-24
【審査請求日】2023-02-03
(31)【優先権主張番号】202010981627.5
(32)【優先日】2020-09-17
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】520476341
【氏名又は名称】北京字節跳動網絡技術有限公司
【氏名又は名称原語表記】Beijing Bytedance Network Technology Co., Ltd.
【住所又は居所原語表記】Room B-0035, 2/F, No.3 Building, No.30, Shixing Road, Shijingshan District Beijing 100041 China
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】リウ,ジアチョン
【審査官】橘 高志
(56)【参考文献】
【文献】特表2019-537758(JP,A)
【文献】特開2007-060562(JP,A)
【文献】特開2018-152646(JP,A)
【文献】特開2019-047167(JP,A)
【文献】特開2004-030668(JP,A)
【文献】国際公開第2017/013936(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 19/00
G06F 3/04815
(57)【特許請求の範囲】
【請求項1】
対象顔の予め設定された相対位置において、予め設定された移動方式により複数枚の前記対象顔に対応する顔マスクを含む顔マスク配列を動的に表示するステップと、
目標顔マスクに作用するトリガー命令に応答して、前記目標顔マスクを前記対象顔に融合して表示するステップであって、前記目標顔マスクは前記顔マスク配列のうちのいずれかの顔マスクであるステップと、を含み、
対象顔の予め設定された相対位置において、予め設定された移動方式により顔マスク配列を動的に表示するステップは、
前記対象顔を中心とし、前記対象顔の頭頂方向を中心軸とし、回転移動の方式により前記顔マスク配列を動的に表示するステップであって、前記顔マスク配列における顔マスクは予め設定された円周方向に従って配置されるステップを含む、
ことを特徴とする顔画像表示方法。
【請求項2】
前記顔マスク配列は少なくとも1枚の前記対象顔に対応する変形顔マスクを含む、ことを特徴とする請求項1に記載の顔画像表示方法。
【請求項3】
前記顔マスク配列における顔マスクは前記対象顔に対応するスケーリング顔マスクである、ことを特徴とする請求項に記載の顔画像表示方法。
【請求項4】
回転移動の方式により前記顔マスク配列を動的に表示するステップは、
前記対象顔上の目標部位の特徴パラメータを取得するステップと、
前記特徴パラメータに基づいて前記回転移動の回転速度を決定し、前記回転速度に従って前記顔マスク配列を動的に表示するステップと、を含む、ことを特徴とする請求項1~3のいずれかに記載の顔画像表示方法。
【請求項5】
前記目標顔マスクを前記対象顔に融合して表示するステップの前に、
前記目標顔マスクが回転して目標位置に到達したかどうかを決定するステップであって、前記目標位置と前記対象顔とは予め設定された位置関係に合致するステップをさらに含む、ことを特徴とする請求項1~4のいずれかに記載の顔画像表示方法。
【請求項6】
前記目標位置は前記対象顔の直前の位置である、ことを特徴とする請求項に記載の顔画像表示方法。
【請求項7】
前記目標顔マスクが前記目標位置まで回転すると、前記回転移動の回転速度を予め設定された目標速度まで低下させる、ことを特徴とする請求項に記載の顔画像表示方法。
【請求項8】
前記目標顔マスクを前記対象顔に融合して表示するステップは、
予め設定された経路に従って前記目標顔マスクを前記対象顔に貼り合わせ、前記目標顔マスクと前記対象顔を融合して、融合顔画像を生成するステップであって、前記予め設定された経路は第1の位置から第2の位置に指向し、前記第1の位置は現在の前記目標顔マスクの前記顔マスク配列における位置であり、前記第2の位置は現在の前記対象顔の位置であるステップと、
前記対象顔に前記融合顔画像を表示するステップと、を含む、ことを特徴とする請求項1~のいずれかに記載の顔画像表示方法。
【請求項9】
前記顔マスク配列の各顔マスク上の各テクセルの現在の位置パラメータ及び前記対象顔の位置パラメータに基づいてレンダリング領域及び非レンダリング領域を決定し、前記レンダリング領域のみをレンダリングするステップをさらに含む、ことを特徴とする請求項1~のいずれかに記載の顔画像表示方法。
【請求項10】
対象顔の予め設定された相対位置において、予め設定された移動方式により複数枚の前記対象顔に対応する顔マスクを含む顔マスク配列を動的に表示するための表示モジュールと、
目標顔マスクに作用するトリガー命令を取得するための取得モジュールと、
前記目標顔マスクを前記対象顔に融合するための処理モジュールであって、前記目標顔マスクは前記顔マスク配列のうちのいずれかの顔マスクである処理モジュールと、を含み、
前記表示モジュールはさらに、前記目標顔マスクを融合した前記対象顔を表示するために用いられ
前記表示モジュールはさらに、前記対象顔を中心とし、前記対象顔の頭頂方向を中心軸とし、回転移動の方式により前記顔マスク配列を動的に表示するために用いられ、前記顔マスク配列における顔マスクは予め設定された円周方向に従って配置される、
ことを特徴とする顔画像表示装置。
【請求項11】
少なくとも1つのプロセッサと、メモリと、を含み、
前記メモリはコンピュータ実行命令を記憶し、
前記少なくとも1つのプロセッサは前記メモリに記憶されたコンピュータ実行命令を実行することにより、前記少なくとも1つのプロセッサに請求項1~のいずれかに記載の顔画像表示方法を実行させる、ことを特徴とする電子機器。
【請求項12】
コンピュータ可読記憶媒体であって、前記コンピュータ可読記憶媒体にはコンピュータ実行命令が記憶されており、プロセッサが前記コンピュータ実行命令を実行するとき、請求項1~のいずれかに記載の顔画像表示方法が実現される、ことを特徴とするコンピュータ可読記憶媒体。
【請求項13】
コンピュータプログラムであって、プロセッサによって実行されるとき、請求項1~のいずれかに記載の顔画像表示方法が実現される、ことを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は画像処理技術分野に関し、特に、顔画像表示方法、装置、電子機器及び記憶媒体に関する。
【背景技術】
【0002】
科学技術の発展に伴い、顔画像の表示にも多くの応用シーンが生まれ、そのうち、一部の応用シーンでは、ユーザは顔画像を処理してから表示することを望んでいる。
【0003】
しかしながら、従来のアプリケーションプログラムは画像処理の方式により、顔画像に対して各種の処理を行い、処理した顔画像を表示することができるが、従来のアプリケーションプログラムは顔画像表示中におけるインタラクション方式の多様性に対するユーザのニーズを満たすことができない。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本開示は、現在顔画像表示中におけるインタラクション方式の多様性に対するユーザのニーズを満たすことができないという技術的問題を解決するために、顔画像の表示方法、装置、電子機器及び記憶媒体を提供する。
【課題を解決するための手段】
【0005】
第1の態様において、本開示の実施例は、
対象顔の予め設定された相対位置において、予め設定された移動方式により複数枚の前記対象顔に対応する顔マスクを含む顔マスク配列を動的に表示するステップと、
目標顔マスクに作用するトリガー命令に応答して、前記目標顔マスクを前記対象顔に融合して表示するステップであって、前記目標顔マスクは前記顔マスク配列のうちのいずれかのマスクであるステップと、を含む、顔画像表示方法を提供する。
【0006】
第2の態様において、本開示の実施例は、
対象顔の予め設定された相対位置において、予め設定された移動方式により複数枚の前記対象顔に対応する顔マスクを含む顔マスク配列を動的に表示するための表示モジュールと、
目標顔マスクに作用するトリガー命令を取得するための取得モジュールと、
前記目標顔マスクを前記対象顔に融合するための処理モジュールであって、前記目標顔マスクは前記顔マスク配列のうちのいずれかのマスクである処理モジュールと、を含み、
前記表示モジュールはさらに、前記目標顔マスクを融合した前記対象顔を表示するために用いられる、顔画像表示装置を提供する。
【0007】
第3の態様において、本開示の実施例は、電子機器であって、少なくとも1つのプロセッサと、メモリとを含み、
前記メモリはコンピュータ実行命令を記憶し、
前記少なくとも1つのプロセッサは前記メモリに記憶されたコンピュータ実行命令を実行することにより、前記少なくとも1つのプロセッサに上記第1の態様及び第1の態様の各種の可能な設計に記載の顔画像表示方法を実行させる、電子機器を提供する。
【0008】
第4の態様において、本開示の実施例はコンピュータ可読記憶媒体を提供し、前記コンピュータ可読記憶媒体にはコンピュータ実行命令が記憶されており、プロセッサは前記コンピュータ実行命令を実行すると、上記第1の態様及び第1の態様の各種の可能な設計に記載の顔画像表示方法を実現させる。
【0009】
第5の態様において、本開示の実施例はコンピュータプログラムを含むコンピュータプログラム製品であって、前記コンピュータプログラムがプロセッサによって実行されると、上記第1の態様及び第1の態様の各種の可能な設計に記載の顔画像表示方法が実現される、コンピュータプログラム製品を提供する。
【0010】
第6の態様において、本開示の実施例はコンピュータプログラムであって、プロセッサによって実行されると、上記第1の態様及び第1の態様の各種の可能な設計に記載の顔画像表示方法が実現されるコンピュータプログラムを提供する。
【発明の効果】
【0011】
本開示の実施例にて提供される顔画像表示方法、装置、電子機器及び記憶媒体は、対象顔の予め設定された相対位置において、予め設定された移動方式により顔マスク配列を動的に表示し、そして、ユーザが顔マスク配列における目標顔マスクをトリガーした後、目標顔マスクを対象顔に融合して表示することにより、顔画像の表示過程におけるインタラクティブ性を向上させ、また、ユーザが目標顔マスクをトリガーした後、目標顔マスクを対象顔に融合して表示することで、対象顔に特定の顔マスクを表示する効果を実現することができる。
【図面の簡単な説明】
【0012】
以下、本開示の実施例又は従来技術における技術的解決手段をより明確に説明するために、実施例又は従来技術の説明に使用する必要がある図面を簡単に紹介し、明らかに、以下の説明における図面は本開示のいくつかの実施例であり、当業者であれば、創造的な労力をせず、これらの図面に基づいて他の図面を得ることができる。
図1】本開示の例示的な一実施例による顔画像表示方法のフローチャートである。
図2】本開示の例示的な一実施例による1枚の顔マスクの生成模式図である。
図3】本開示の例示的な一実施例による顔マスク配列の生成模式図である。
図4】本開示の例示的な一実施例による顔画像表示方法のトリガー過程のシーン模式図である。
図5】本開示の例示的な一実施例による目標顔マスクがトリガーされた行った融合表示ステップのフローチャートである。
図6】本開示の別の例示的な一実施例による顔画像表示方法のフローチャートである。
図7】本開示の例示的な一実施例によるレンダリングステップのフローチャートである。
図8図7に示すレンダリングステップによるレンダリング後の表示結果の模式図である。
図9】本開示の例示的な一実施例による顔画像表示装置の構造模式図である。
図10】開示の例示的な一実施例による電子機器の構造模式図である。
【発明を実施するための形態】
【0013】
以下、図面を参照しながら、本開示の実施例についてより詳細に説明する。本開示の何らかの実施例を図面に示したが、本開示は様々な形態で実現でき、本明細書に記載される実施例に限定されると解釈されるべきではなく、逆に、本開示をより徹底的且つ完全に理解するためにこれらの実施例を提供することが理解されるべきである。本開示の図面及び実施例は例示するためにのみ使用され、本開示の保護範囲を限定するものではないことが理解されるべきである。
【0014】
本開示の方法の実施形態に記載される各ステップは異なる順序で実行し、及び/又は並行して実行してもよいことが理解されるべきである。さらに、方法の実施形態は、追加のステップを含み、及び/又は図示のステップの実行を省略してもよい。この点において、本開示の範囲が限定されない。
【0015】
本明細書で用いられる用語の「含む」及びその変形は、非限定的な包括であり、すなわち「含むが、これに限定されない」という意味である。用語の「基づく」は「少なくとも部分的に基づく」という意味である。用語の「一実施例」は「少なくとも1つの実施例」、「別の実施例」は「少なくとも1つの別の実施例」、「いくつかの実施例」は「少なくともいくつかの実施例」を意味する。他の用語の関連定義は後述する。
【0016】
なお、本開示に言及する「第1」、「第2」などの概念は異なる装置、モジュール又はユニットを区別するためのものに過ぎず、これらの装置、モジュール又はユニットが実行する機能の順序又は相互依存関係を限定するためのものではないことに留意されたい。
【0017】
本開示に言及する「1つ」、「複数」の修飾語は限定的ではなく例示的なものであることに留意されたく、当業者が理解できるように、文脈に別に明示されない限り、「1つ又は複数」と理解されるべきである。
【0018】
現在、顔画像に対する処理方式は様々であり、例えば、顔画像に対して美顔処理を行ってもよいし、顔画像に対して変形処理を行ってもよい。処理された顔画像に対しても、多くの応用シーンが生まれるが、いずれも処理が完了した後の顔画像に基づいて直接利用し、顔画像の表示中におけるインタラクション方式の多様性に対するユーザのニーズを満たすことができない。
【0019】
本開示にて提供される実施例において、ユーザは端末機器(例えば、パソコン、ノートパソコン、タブレット及びスマートフォンなどの機器)により対象顔を取得した後、まず対象顔に基づいて顔マスク配列を生成することができ、ただし、この顔マスク配列は複数枚の顔マスクを含む。なお、顔マスク配列における顔マスクは対象顔に直接対応する顔マスクであってもよく、対象顔に対して関連処理(例えば、変形処理、美顔処理)を行ってから生成される顔マスクであってもよい。また、1つの実施例において、顔マスク配列には、複数の異なる顔形態に対応するマスクを含むことができる。
【0020】
顔マスク配列を生成した後、顔マスク配列における顔マスクは特定の分布規則に従って配置することができ、例えば、顔マスク配列における顔マスクは予め設定された円周方向に従って配置することができ、ただし、この予め設定された円周方向は対象顔を中心とし、対象顔の頭頂方向を中心軸とすることができ、それにより、顔マスク配列が対象顔を回る効果が達成される。また、顔マスク配列は予め設定された移動方式により動的に表示することができ、例えば、顔マスク配列は対象顔を回って回転移動することができる。
【0021】
また、顔マスク配列が対象顔を回って回転移動する回転速度については、ユーザの身体的特徴に基づいて決定することができ、例えば、ユーザが口を開ける度合い、ユーザが笑う度合い及びユーザの関連ジェスチャに基づいて決定されてもよい。ここで、ユーザが口を開ける度合いに基づいて回転速度を決定することを例として説明することができ、顔マスク配列が対象顔を回って回転移動する回転速度はユーザが口を開ける度合いが大きくなるにつれて速くなり、すなわちユーザが口を大きく開けるほど、顔マスク配列が対象顔を回って回転する速度が速くなる。このように、ユーザは口を開ける度合いを調整することにより、顔マスク配列が対象顔を回って回転する速度を加速及び減速することができる。
【0022】
ユーザは顔マスク配列のうちのいずれかのマスクをトリガーすると、例えば、ユーザはスクリーンをクリックすることにより、顔マスク配列のうちの1枚のマスクを選択すると、目標顔マスクとする。トリガーした後、顔マスク配列が対象顔を回って回転する速度は、まず、目標顔マスクが対象顔に対面するように移動するまで低下し、このとき、顔マスク配列の回転を停止し、この目標顔マスクを対象顔に融合して表示することができる。さらに、顔マスク配列における前記目標顔マスク以外の他の顔マスクに対し、予め設定された透明度変化規則に従って漸進的に変化して消失させることができる。
【0023】
本開示にて提供される実施例において、対象顔の予め設定された相対位置において、予め設定された移動方式により顔マスク配列を動的に表示し、そして、ユーザが顔マスク配列における目標顔マスクをトリガーした後、目標顔マスクを対象顔に融合して表示する。それにより、ユーザが目標顔マスクをトリガーする前に、顔マスク配列の表示方式と対象顔との間にインタラクションを有する効果を実現し、また、ユーザが目標顔マスクをトリガーした後に、目標顔マスクを対象顔に融合して表示し、対象顔に特定の顔マスクを表示する効果を実現することができる。以下、いくつかの具体的な実現方式によりこの画像処理方法について詳細に説明する。
【0024】
図1は本開示の例示的な一実施例による顔画像表示方法のフローチャートである。図1に示すように、本実施例にて提供される顔画像表示方法は以下のステップ101とステップ102とを含む。
【0025】
ステップ101において、対象顔の予め設定された相対位置において、予め設定された移動方式により顔マスク配列を動的に表示する。
【0026】
このステップにおいて、ユーザは端末機器により対象顔を取得した後、対象顔の予め設定された相対位置において、予め設定された移動方式により顔マスク配列を動的に表示することができ、ただし、顔マスク配列は複数枚の対象顔に対応する顔マスクを含むことができる。なお、顔マスク配列における顔マスクは対象顔が処理されずに生成される顔マスクであってもよく、対象顔に対して関連処理(例えば、変形処理、美顔処理)を行ってから生成される顔マスクであってもよい。ここで、以上の対象顔に基づいて顔マスクを生成するには、関連する3D顔処理ツールを用いて顔マスクを生成することができる。また、1つの実施例において、顔マスク配列には、複数の異なる顔形態に対応するマスクを含むことができる。
【0027】
顔マスク配列を生成した後、顔マスク配列における顔マスクは特定の分布規則に従って配置することができ、例えば、顔マスク配列における顔マスクは予め設定された円周方向に従って配置されてもよく、予め設定された方向に順次並び替えるように配置されてもよい。
【0028】
任意選択的に、顔マスク配列における顔マスクは予め設定された円周方向に従って配置可能である場合、この予め設定された円周方向は対象顔を中心とし、対象顔の頭頂方向を中心軸とすることができ、それにより、顔マスク配列が対象顔を回る効果が達成される。また、顔マスク配列は予め設定された移動方式により動的に表示することができ、例えば、顔マスク配列は対象顔を回って回転移動することができる。
【0029】
顔マスク配列における顔マスクは予め設定された方向に順次並び替えるように配置される場合、顔マスク配列は顔マスクの配置の前後順序に従って対象顔の前方をスライド移動することができる。
【0030】
なお、顔マスク配列の具体的な配置方式、及び顔マスク配列と対象顔との間の相対移動方式について、本実施例は具体的に限定せず、その具体的な形態は具体的なシーンのニーズに応じて適切に設定でき、本実施例において対象顔と顔マスク配列との間に特定の相対位置関係及び相対移動関係が存在することを例示的に説明することを目的とする。
【0031】
ステップ102において、目標顔マスクに作用するトリガー命令に応答して、目標顔マスクを対象顔に融合して表示する。
【0032】
ユーザは顔マスク配列のうちのいずれかのマスクをトリガーすると、例えば、ユーザはスクリーンをクリックすることにより、顔マスク配列における1枚の顔マスクを選択すると、目標顔マスクとする。トリガーした後、顔マスク配列が対象顔を回って回転する速度は、まず、目標顔マスクが対象顔に対面するように移動するまで低下し、このとき、顔マスク配列の回転を停止し、この目標顔マスクを対象顔に融合して表示することができる。さらに、顔マスク配列における前記目標顔マスク以外の他の顔マスクに対し、予め設定された透明度変化規則に従って漸進的に変化して消失させることができる。
【0033】
本実施例において、対象顔の予め設定された相対位置において、予め設定された移動方式により顔マスク配列を動的に表示し、そして、ユーザが顔マスク配列における目標顔マスクをトリガーした後、目標顔マスクを対象顔に融合して表示することにより、顔画像の表示過程におけるインタラクションを向上させ、また、ユーザが目標顔マスクをトリガーした後、目標顔マスクを対象顔に融合して表示することで、対象顔に特定の顔マスクを表示する効果を実現することができ、ユーザのインタラクションの楽しみ及び体験を向上させる。
【0034】
上記実施例において、顔マスク配列に含まれる顔マスクは対象顔に対応する元の顔マスクを含んでもよいし、3D顔処理ツールにより元の顔マスクを処理してから生成される変形顔マスクを含んでもよい。例えば、顔マスク配列は8枚の顔マスクを含んでもよく、そのうち、2枚の元の顔マスクと、6枚の変形顔マスクとを含んでもよい。具体的には、まず8枚の顔マスクエンティティを作成し、続いて予め設計された変形効果を備える3Dモデルを導入し、各顔マスクエンティティに変形器を追加して対応する変形の度合いを調整することができる。各枚の顔マスクの変形形態は同じではないため、各変形形態を個別に導入する必要があり、また、複数種の変形器を同一のモデルに作成することができる。
【0035】
3D顔処理ツールにより生成される顔マスクは基礎アルゴリズムの設定により、そのディフォルトの初期位置が元の顔に一致する。それを対象顔の予め設定された相対位置に表示するために、モデル空間の顔座標系で生成された顔マスクに対して変位、選択及びスケーリングなどの操作を行うことができる。ここで、図2は本開示の例示的な一実施例による1枚の顔マスクの生成模式図である。図2に示すように、現在のモデル空間における顔マスクの変形前の頂点の元の位置及び変形後の位置ずれを取得し、続いて、顔マスクを対象顔に対して常に外向きに表示するように保証する必要があるため、まず変位操作を行うことを必要とし、続いて回転操作を行うことができる。
【0036】
具体的には、頂点の元の位置に変形後の位置ずれを加えた上でZ軸上の座標ずれ量と加算することにより、対象顔の元の位置とのずれを実現することができる。また、顔マスクを囲むように対象顔を回って回転移動するとき、対象顔を完全に遮断しないように、生成された顔マスクに対してスケーリング処理を行い、例えば元の大きさの90%にスケーリングすることができ、それにより、顔マスク配列における各顔マスクはいずれも対象顔に対応するスケーリング顔マスクである。以上から分かるように、上記方式により、対象顔が予め設定された距離からずれる位置に一定の比例でスケーリングされた顔マスクを1枚表示するのを実現することができ、具体的な効果は図2に示すとおりである。
【0037】
顔マスクが予め設定された移動方式により動的に表示されることを実現するために、例えば、顔マスクを、対象顔を回って回転可能にするために、対象顔を中心とし、対象顔の頭頂方向を中心軸(例えば、Y軸)とし、以下の回転行列により回転することができ、
【数1】
ここで、θは回転角度である。
【0038】
以上から分かるように、上記方式により、1枚の顔マスクが元の大きさの90%にスケーリングされた後に、対象顔を中心とし、頭頂方向を中心軸とし、所定の半径で、且つ顔マスクの正面が常に外へ向かう回転移動を行うことができる。
【0039】
また、1枚の顔マスクの動的表示を実現した後、さらに対象顔の予め設定された相対位置において、予め設定された移動方式により顔マスク配列を動的表示することを実現することができる。ここで、顔マスク配列は8枚の顔マスクを含む場合を例に挙げて説明することができる。
【0040】
図3は本開示の例示的な一実施例による顔マスク配列の生成模式図である。図3に示すように、顔マスク配列における各枚の顔マスクの位置パラメータを初期化するときに、同一のずれ変位及びスケーリング比例を与えることができる。続いて、初期化順序に従って回転角度を順次定義し、このように、初期化された8つの顔マスクは45度おきに配置され、それにより8つの顔マスクにより形成された顔マスク配列は1つの完全な円を囲むことで、顔マスク配列を表示するときに、顔マスク配列における顔マスクは予め設定された円周方向に従って配置される。
【0041】
さらに、8つの顔マスクに異なる変形モデルを付与し顔マスクの選択を制御するためのアルゴリズムを配置することができ、このように、1つのシステムレベルのスクリプトにおいてこれらの顔マスクの移動を統合的に制御することを実現できる。
【0042】
対象顔を中心とし、頭頂方向を中心軸とし、回転移動の方式により顔マスク配列を動的に表示することを実現すると、ユーザは顔マスク配列のうちのいずれかのマスクをトリガーすることにより、目標顔マスクを選定して、この目標顔マスクを対象顔に融合して表示することができる。図4は本開示の例示的な一実施例による顔画像表示方法のトリガー過程のシーン模式図である。図4に示すように、ユーザはスクリーンをクリックすることにより、顔マスク配列における1枚のマスクを選択して目標顔マスクとすることができる。
【0043】
トリガーした後、顔マスク配列が対象顔を回って回転する速度は、まず、目標顔マスクが対象顔に対面するように移動するまで低下し、このとき、顔マスク配列の回転を停止し、この目標顔マスクを対象顔に融合して表示することができる。さらに、顔マスク配列における前記目標顔マスク以外の他の顔マスクに対し、予め設定された透明度変化規則に従って漸進的に変化して消失させることができる。
【0044】
1つの可能な設計において、図5は本開示の例示的な一実施例による目標顔マスクがトリガーされた行った融合表示ステップのフローチャートである。図5に示すように、上記実施例におけるステップ102は、具体的に以下のステップ1020~1029を含むことができる。
ステップ1020において、目標顔マスクに作用するトリガー命令を取得する。
【0045】
例えば、ユーザはスクリーンをクリックすることにより、顔マスク配列のうちの1枚のマスクを目標顔マスクとして選択することができる。
【0046】
ステップ1021において、回転速度が予め設定された目標速度より小さいか否かを判断する。判断結果がYESであれば、ステップ1022を実行し、判断結果がNOであれば、ステップ1023を実行する。
【0047】
ステップ1022において、現在の回転角度を設定する。
【0048】
ステップ1023において、回転速度を低下させる。
【0049】
ステップ1024において、回転速度が予め設定された目標速度より小さいか否かを判断する。判断結果がYESであれば、ステップ1025を実行し、判断結果がNOであれば、ステップ1023を実行する。
【0050】
ステップ1025において、目標回転角度を計算する。
【0051】
顔マスク配列における目標顔マスクをトリガーした後、回転速度が予め設定された目標速度より小さいか否かを判断する必要があり、ただし、予め設定された目標速度は1つの回転速度閾値とすることができる。判断結果がYESであれば、現在の顔マスクの回転速度が比較的遅いことが示され、目標回転角度を直接計算するという方式により、目標顔マスクを目標位置、例えば対象顔の直前の位置まで移動するように制御し、続いて後続の融合表示操作を行うことができる。しかし、現在の回転速度が予め設定された目標速度より大きい場合、目標回転角度を算出する方式を直接採用し、目標顔マスクを目標位置まで移動するように制御すると、顔マスク配列の移動状態傾向の変化が大きすぎることを引き起こし、インタラクションの感受性が悪くなる。そのため、目標回転角度を計算する前に、まず回転速度を低下させる必要があり、回転速度を予め設定された目標速度より小さく低下させた後に、後続の目標回転角度の算出を行い、目標顔マスクを目標位置まで移動するように制御する。なお、目標回転角度は顔マスクの移動が停止するときの回転角度である。続いて、顔マスク配列が8枚の顔マスクを含む場合を例に挙げて説明すると、とどまるときに、1つの顔マスクがユーザに対面しなければならず、このとき、この顔マスクの回転角度が0であるため、目標回転角度は45の整数倍でなければならない。
【0052】
具体的には、顔マスク配列における各顔マスクの目標回転角度は下記式により計算することができ、
【数2】
ここで、δは目標回転角度であり、φは現在の回転角度であり、floorは括弧内の結果より小さい最大整数を取得することを示し、括弧内に1を加えると、目標角度と現在の角度との関係方向と回転速度方向との一致を保証することができ、現在の回転角度は各顔マスクに現在対応する顔角度である。
【0053】
ステップ1026において、目標位置まで回転する顔マスクの番号を記録する。
【0054】
具体的には、顔マスク配列を生成するときに、顔マスク配列における各顔マスクに番号を割り当てることができ、この番号は各顔マスクを一意に識別するために用いられ、例えば、第1の顔マスクに番号1を割り当て、第2の顔マスクに番号2を割り当て、第3の顔マスクに番号3を割り当て、このように第8の顔マスクに番号8を割り当てるまで番号を順に割り当てる。顔マスク配列の回転過程において、現在の時刻は各時刻で目標位置まで回転した顔マスクの番号を記録し、例えば、第1の時刻で、番号1に対応する第1の顔マスクは目標位置まで回転し、第2の時刻で、番号2に対応する第2の顔マスクは目標位置まで回転する。
【0055】
ステップ1027において、目標顔マスクが目標位置まで回転するか否かを判断する。判断結果がNOであれば、ステップ1025を実行し、判断結果がYESであれば、ステップ1028及びステップ1029を実行する。
【0056】
目標顔マスクが対象顔に対面し、すなわち目標顔マスクの目標回転角度が0である場合は、目標顔マスクが目標位置に到達することが示され、このとき、顔マスク配列の回転移動を停止することができる。
【0057】
具体的には、目標顔マスクをトリガーするときに、目標顔マスクに対応する番号を記録することができ、顔マスク配列の回転過程において、現在の時刻に記録した番号が目標顔マスクに対応する番号であれば、目標顔マスクが対象顔に対面することが示され、このとき、顔マスク配列の回転移動を停止することができる。例えば、ユーザがトリガーした目標顔マスクが第3の顔マスクであれば、番号3を記録し、顔マスク配列の回転過程において、記録した番号3に対応する顔マスクが目標位置まで回転すると、第3の顔マスクが目標位置まで回転することが示され、顔マスク配列の回転移動を停止する。
【0058】
ステップ1028において、対象顔に融合顔画像を表示する。
【0059】
1つの実施例において、予め設定された経路に従って目標顔マスクを対象顔に貼り合わせ、目標顔マスクと対象顔を融合して、融合顔画像を生成することができ、ただし、予め設定された経路は第1の位置から第2の位置に指向し、第1の位置は現在の目標顔マスクの顔マスク配列における位置であり、第2の位置は現在の対象顔の位置である。このステップにおいて、顔マスクのZ軸方向におけるオフセット値を縮小することにより、すべての顔マスクが対象顔に向かって円半径を縮小することにより動する効果を実現することができる。最後に、対象顔にこの融合顔画像を表示する。
【0060】
ステップ1029において、他人の顔マスクに対して漸進的に変化して消失させる。
【0061】
また、予め設定された透明度変化規則に従って、顔マスク配列における目標顔マスク以外の他の顔マスクに対して漸進的に変化して消失させることができる。このステップにおいて、対象顔に対面しない顔マスクのalpha通路を徐々に低減することができ、ただし、alpha通路は透明度を調節することにより、対象顔に対面しない顔マスクを徐々に透明にさせるために用いられる。具体的には、実現方式は下記式を参照することができ、
【数3】
ここで、alphaは現在のフレームの顔マスクの透明度であり、alpha’は前のフレームの顔マスクの透明度であり、σは時間係数であり、Δtは現在のフレームと前のフレームとの間の時間差である。
【0062】
図6は本開示の別の例示的な一実施例による顔画像表示方法のフローチャートである。図6に示すように、本実施例にて提供される顔画像表示方法は以下のステップ201~ステップ203を含む。
【0063】
ステップ201において、顔マスク配列の各顔マスク上の各テクセルの現在の位置パラメータ及び対象顔の位置パラメータに基づいてレンダリング領域及び非レンダリング領域を決定し、レンダリング領域のみをレンダリングする。
【0064】
このステップにおいて、顔マスク配列を表示する前に、各顔マスクをレンダリングする必要がある。各顔マスクに対して差のない全方位のレンダリングを行うと、レンダリング計算量が過大になりやすく、さらに過剰な演算リソースを占有する。したがって、顔マスク配列の各顔マスク上の各テクセルの現在の位置パラメータ及び対象顔の位置パラメータに基づいてレンダリング領域及び非レンダリング領域を決定し、レンダリング領域のみをレンダリングすることができる。
【0065】
図7は本開示の例示的な一実施例によるレンダリングステップのフローチャートである。図7に示すように、本実施例における上記レンダリングステップは以下のステップ2011~ステップ2016を含むことができる。
【0066】
ステップ2011において、顔マスク上のテクセルが顔マスクの正面領域あるか否かを判断する。
【0067】
ステップ2012において、正面領域あれば、テクセルの現在の位置が対象顔に対応する位置範囲内に位置し、且つ第3の方向において対象顔の特徴キーポイントの後に位置するか否かを判断する。判断結果がYESであれば、ステップ2015を実行し、判断結果がNOであれば、ステップ2014を実行する。
【0068】
なお、第3の方向については対象顔と顔マスクとの間に視覚空間上の遮蔽が存在する方向、例えば図3におけるZ軸方向とすることができる。
【0069】
ステップ2013において、裏面領域あれば、テクセルの現在の位置が対象顔に対応する位置範囲内に位置し、且つ第3の方向において対象顔の特徴キーポイントの後に位置するか否かを判断する。判断結果がYESであれば、ステップ2015を実行し、判断結果がNOであれば、ステップ2016を実行する。
【0070】
本実施例において、顔マスクの正面領域及び裏面領域に対してそれぞれ対応する処理プロセスにより完了することができ、ただし、第1の処理プロセスは正面領域をレンダリングするためにのみ用いられ、第2の処理プロセスは裏面領域をレンダリングするためにのみに用いられる。しかし、2つの処理プロセスは1つのテクセルシェーディングエンジンを共用してレンダリングすることができ、ただし、テクセルシェーディングエンジンはいずれも現在の対象顔をサンプリングして、リアルタイムな人画像用のマットを返し、それにより顔マスクに対するレンダリングを実現する。
【0071】
ここで、テクセルの現在の位置が対象顔に対応する位置範囲内に位置し、且つ第3の方向(例えば、Z軸方向)において対象顔の特徴キーポイント(例えば、対象顔の揉み上げ位置)の後に位置するか否かを判断することにより、このテクセルをレンダリングする必要があるか否かを決定することができる。
【0072】
具体的には、テクセルの現在の位置が対象顔に対応する位置範囲内に位置する場合、テクセルは対象顔の前方にある可能性もあり、対象顔の後方にある可能性もある。しかし、テクセルの現在の位置がZ軸方向において対象顔の揉み上げ位置の前方に位置する場合、テクセルが対象顔の前方にあると決定することができ、これから分かるように、このテクセルはユーザに見える部分であるため、このテクセルをレンダリングする必要がある。しかしながら、テクセルの現在の位置がZ軸方向において対象顔の揉み上げ位置の後方に位置する場合、テクセル対象顔の後方にあることと決定することができ、これから分かるように、このテクセルはユーザに見えない部分であるため、このテクセルをレンダリングする必要がなく、それにより、不要なレンダリング過程による計算リソースの浪費を低減することができる。
【0073】
ステップ2014において、対象顔に基づいて正面領域をレンダリングする。
具体的には、顔マスク上の、レンダリング領域内に位置するテクセルに対し、正面領域にも属する場合、対象顔に基づいてレンダリングして、顔マスクに対応する対象顔の具体的な外観を表示することができる。
【0074】
ステップ2015において、顔マスクが非レンダリング領域内に位置するテクセルをレンダリングしない。
【0075】
顔マスク上の、非レンダリング領域内に位置するテクセルに対し、正面領域に属するか裏面領域に属するかにかかわらず、レンダリングせず、この領域のテクセルを透明に設定すると理解することができる。
【0076】
ステップ2016において、裏面領域を予め設定された固定テクスチャにレンダリングする。
【0077】
顔マスク上の、レンダリング領域内に位置する裏面領域に属するテクセルに対し、予め設定された固定テクスチャに基づいてレンダリングすることができ、例えば、それをグレーにレンダリングすることができる。
【0078】
図8図7に示すレンダリングステップによるレンダリング後の表示結果の模式図である。図8に示すように、領域Aに対しては、レンダリング領域に位置し且つ正面領域に属するため、対象顔に基づいてレンダリングして、顔マスクに対応する対象顔の具体的な外観を表示する。領域Bに対しては、レンダリング領域に位置し且つ裏面領域に属するため、それを例えばグレーにレンダリングする。
【0079】
図6に戻り、ステップ202において、対象顔の予め設定された相対位置において、予め設定された移動方式により顔マスク配列を動的に表示する。
【0080】
なお、本実施例におけるステップ202の具体的な実現方式は図1に示す実施例におけるステップ101の具体的な説明を参照することができる。
【0081】
また、図1に示す実施例におけるステップ101の上で、予め設定された移動の方式により顔マスク配列を動的に表示する場合に、ユーザの身体的特徴に基づいて当該予め設定された移動の速度を決定することができ、例えば、ユーザが口を開ける度合い、ユーザが笑う度合い及びユーザの関連ジェスチャに基づいて決定することができる。ここで、ユーザが口を開ける度合いに基づいて予め設定された移動の速度を決定することを例として説明することができ、顔マスク配列が対象顔を回って回転移動する回転速度はユーザが口を開ける度合いが大きくなるにつれて速くなり、すなわちユーザが口を大きく開けるほど、顔マスク配列が対象顔を回って回転する速度が速くなる。このように、ユーザは口を開ける度合いを調整することにより、顔マスク配列が対象顔を回って回転する速度を加速及び減速することができる。
【0082】
具体的には、まず対象顔上の目標部位の特徴パラメータを取得し、続いて、特徴パラメータに基づいて回転速度を決定し、回転速度に従って顔マスク配列を動的に表示することができる。例えば、対象顔の口の特徴パラメータ及び目の特徴パラメータを取得してもよく、ただし、口の特徴パラメータは上唇のキーポイントの座標及び下唇のキーポイントの座標を含み、目の特徴パラメータは左目のキーポイントの座標及び右目のキーポイントの座標を含む。続いて、上唇のキーポイントの座標及び下唇のキーポイントの座標に基づいて第1の方向(例えば、Y軸)における第1の座標差値を決定し、左目のキーポイントの座標及び右目のキーポイントの座標に基づいて第2の方向(例えば、X軸)における第2の座標差値を決定する。最後に、第1の座標差と第2の座標差値との比に基づいて特徴パラメータを決定し、ただし、この特徴パラメータは口を開ける度合いを特徴付けるために用いることができる。なお、第1の座標差値と第2の座標差値との比で口を開ける度合いを決定することにより、対象顔のカメラからの遠近の変化による口を開ける度合いの変動を回避することができる。
【0083】
ここで、特徴パラメータが予め設定された第1の閾値以下の場合、回転速度を第1の予め設定された速度とする。特徴パラメータが予め設定された第1の閾値より大きいとともに第1の予め設定された速度と追加速度との和が第2の予め設定された速度より小さい場合、回転速度を第1の予め設定された速度と追加速度との和とし、ただし、追加速度は特徴パラメータの差値に比例し、特徴パラメータの差値は特徴パラメータと予め設定された第1の閾値との差である。前記第1の予め設定された速度と前記追加速度との和が第2の予め設定された速度以上である場合、前記回転速度を前記第2の予め設定された速度として決定する。
【0084】
上記方式により、口を開ける度合いに基づいて現在のフレームの顔マスクの回転速度を計算することを実現することができ、具体的な計算式は以下のとおりであり、
【数4】
ここで、γは回転速度であり、γminは最小回転速度であり、Dは口を開ける度合いであり、dは口開け検出閾値であり、σγは速度係数であり、γmaxは最大回転速度である。なお、口開け検出閾値とは、口開け度合いがこの閾値より大きい場合のみに口開けと判定できるものであり、速度係数とは、口を開ける度合いのパラメータを回転速度に変換するときに乗算する必要がある定数である。
【0085】
なお、上式において、上記特徴パラメータが口を開ける度合いDであり、予め設定された第1の閾値は口開け検出閾値dであり、第1の予め設定された速度は最小回転速度γminであり、付加速度は(D-d)×σγであり、第2の予め設定された速度は最大回転速度γmaxである。
【0086】
これから分かるように、このステップにより、口を開ける度合いを制御することで顔マスク配列が対象顔を回って異なる回転速度で回転する効果を実現することができる。
【0087】
また、上記決定された回転速度により、現在のフレームにおける各顔マスクの回転角度を設定することができ、具体的な式は以下のとおりであり、
【数5】
ここで、φは現在のフレームにおける顔マスクの回転角度であり、φ’は前のフレームにおける顔マスクの回転角度であり、γは回転速度であり、Δtは現在のフレームと前のフレームとの間の時間差である。
【0088】
なお、上記式における式の尾部に対する剰余操作は回転角度を[0,360]の区間内に保証して、数字が大きすぎることによるメモリ溢れを防止するためである。
【0089】
ステップ203において、目標顔マスクに作用するトリガー命令に応答して、目標顔マスクを対象顔に融合して表示する。
【0090】
なお、本実施例におけるステップ203の具体的な実現方式は図1に示す実施例におけるステップ102の具体的な説明を参照することができ、ここで重複する説明は省略する。
【0091】
図9は本開示の例示的な一実施例による顔画像表示装置の構造の模式図である。図9に示すように、本実施例にて提供される顔画像表示装置300は、
対象顔の予め設定された相対位置において、予め設定された移動方式により複数枚の前記対象顔に対応する顔マスクを含む顔マスク配列を動的に表示するための表示モジュール301と、
目標顔マスクに作用するトリガー命令を取得するための取得モジュール302と、
前記目標顔マスクを前記対象顔に融合するための処理モジュール303であって、前記目標顔マスクは前記顔マスク配列のうちのいずれかのマスクである処理モジュール303と、を含み、
前記表示モジュール301はさらに、前記目標顔マスクを融合した前記対象顔を表示するために用いられる。
【0092】
本開示の1つ又は複数の実施例によれば、前記顔マスク配列は少なくとも1枚の前記対象顔に対応する変形顔マスクを含む。
【0093】
本開示の1つ又は複数の実施例によれば、前記表示モジュール301は、具体的には、
前記対象顔を中心とし、前記対象顔の頭頂方向を中心軸とし、回転移動の方式により前記顔マスク配列を動的に表示するために用いられ、前記顔マスク配列における顔マスクは予め設定された円周方向に従って配置される。
【0094】
本開示の1つ又は複数の実施例によれば、前記顔マスク配列における顔マスクは前記対象顔に対応するスケーリング顔マスクである。
【0095】
本開示の1つ又は複数の実施例によれば、前記表示モジュール301は、具体的には、
前記対象顔上の目標部位の特徴パラメータを取得し、
前記特徴パラメータに基づいて前記回転移動の回転速度を決定し、前記回転速度に従って前記顔マスク配列を動的に表示するために用いられる。
【0096】
本開示の1つ又は複数の実施例によれば、前記取得モジュール302はさらに、前記対象顔の口の特徴パラメータ及び目の特徴パラメータを取得するために用いられ、前記口の特徴パラメータは上唇のキーポイントの座標及び下唇のキーポイントの座標を含み、前記目の特徴パラメータは左目のキーポイントの座標及び右目のキーポイントの座標を含み、
前記処理モジュール303はさらに、前記上唇のキーポイントの座標及び前記下唇のキーポイントの座標に基づいて第1の方向における第1の座標差値を決定し、前記左目のキーポイントの座標及び前記右目のキーポイントの座標に基づいて第2の方向における第2の座標差値を決定するために用いられ、
前記処理モジュール303はさらに、前記第1の座標差値と前記第2の座標差値との比に基づいて前記特徴パラメータを決定するために用いられる。
【0097】
本開示の1つ又は複数の実施例によれば、前記処理モジュール303は、具体的には、
前記特徴パラメータが予め設定された第1の閾値以下の場合、前記回転速度を第1の予め設定された速度と決定することと、
前記特徴パラメータが前記予め設定された第1の閾値より大きいとともに前記第1の予め設定された速度と追加速度との和が第2の予め設定された速度よりも小さい場合、前記回転速度を前記第1の予め設定された速度と前記追加速度との和と決定することであって、ただし、前記追加速度は特徴パラメータの差値に比例し、前記特徴パラメータの差値は前記特徴パラメータと前記予め設定された第1の閾値との差であることと、
前記第1の予め設定された速度と前記追加速度との和が前記第2の予め設定された速度以上である場合、前記回転速度を前記第2の予め設定された速度として決定することと、に用いられる。
【0098】
本開示の1つ又は複数の実施例によれば、前記処理モジュール303はさらに、前記目標顔マスクが目標位置まで回転するか否かを決定することに用いられ、前記目標位置と前記対象顔とは予め設定された位置関係に合致する。
【0099】
本開示の1つ又は複数の実施例によれば、前記目標位置は前記対象顔の直前の位置である。
【0100】
本開示の1つ又は複数の実施例によれば、前記目標顔マスクが前記目標位置まで回転すると、前記回転移動の回転速度を予め設定された目標速度まで低下させる。
【0101】
本開示の1つ又は複数の実施例によれば、前記処理モジュール303はさらに、予め設定された経路に従って前記目標顔マスクを前記対象顔に貼り合わせ、前記目標顔マスクと前記対象顔を融合して、融合顔画像を生成するために用いられ、ただし、前記予め設定された経路は第1の位置から第2の位置に指向し、前記第1の位置は現在の前記目標顔マスクの前記顔マスク配列における位置であり、前記第2の位置は現在の前記対象顔の位置であり、
前記表示モジュール301はさらに、前記対象顔に前記融合顔画像を表示するために用いられる。
【0102】
本開示の1つ又は複数の実施例によれば、前記表示モジュール301はさらに、予め設定された透明度変化規則に従って、前記顔マスク配列における前記目標顔マスク以外の他の顔マスクに対して漸進的に変化して消失させるために用いられる。
【0103】
本開示の1つ又は複数の実施例によれば、前記処理モジュール303はさらに、前記顔マスク配列の各顔マスク上の各テクセルの現在の位置パラメータ及び前記対象顔の位置パラメータに基づいてレンダリング領域及び非レンダリング領域を決定し、前記レンダリング領域のみをレンダリングするために用いられる。
【0104】
本開示の1つ又は複数の実施例によれば、前記処理モジュール303はさらに、前記テクセルの現在の位置が前記対象顔に対応する位置範囲内に位置し、且つ第3の方向において前記対象顔の特徴キーポイントの後に位置する場合、前記テクセル前記非レンダリング領域に属すると決定することに用いられる
【0105】
本開示の1つ又は複数の実施例によれば、前記処理モジュール303はさらに、前記対象顔に基づいて前記正面領域をレンダリングするために用いられ、
前記処理モジュール303はさらに、前記裏面領域を予め設定された固定テクスチャにレンダリングするために用いられる。
【0106】
なお、図9に示す実施例にて提供される顔画像表示装置は、上記実施例のいずれかにて提供される方法を実行するために用いることができ、具体的な実現方式及び技術的効果は類似し、ここで重複する説明は省略する。
【0107】
図10は本開示の例示的な一実施例による電子機器の構造の模式図である。図10に示すように、本開示の実施例を実現するために適用される電子機器400の構造模式図である。本実施例における端末機器は携帯電話、ノートパソコン、デジタル放送受信機、パーソナルデジタルアシスタント(Personal Digital Assistant、PDA)、タブレット(Portable Android Device、PAD)、ポータブルマルチメディアプレーヤ(Portable Media Player、PMP)、車載端末(例えば車載ナビゲーション端末)など、画像取得機能を有する移動端末、及びデジタルTV、デスクトップコンピュータなど、画像取得機器が外付けされる固定端末を含むことができるが、これらに限定されない。図10に示す電子機器は一例に過ぎず、本開示の実施例に係る機能及び使用範囲を限定するものではない。
【0108】
図10に示すように、電子機器400は、リードオンリーメモリ(Read-Only Memory、ROM)402に記憶されたプログラムや、メモリ408からランダムアクセスメモリ(Random Access Memory、RAM)403にロードされたプログラムに基づいて、各種の適切な動作及び処理を実行することができるプロセッサ(例えば、中央処理装置、グラフィックス処理装置)401を含むことができる。RAM403には電子機器400の操作に必要な各種のプログラム及びデータがさらに記憶されている。プロセッサ401、ROM402及びRAM403はバス404を介して相互に接続されている。入力/出力(Input/Output、I/O)インタフェース405もバス404に接続されている。メモリは上記各方法の実施例に記載の方法を実行するためのプログラムを記憶するために用いられ、プロセッサはメモリに記憶されたプログラムを実行するように構成される。
【0109】
一般的には、例えば、タッチパネル、タッチパッド、キーボード、マウス、カメラ、マイク、加速度計、ジャイロスコープなどを含む入力装置406、例えば、液晶ディスプレイ(Liquid Crystal Display、LCD)、スピーカ、バイブレータなどを含む出力装置407、例えば、磁気テープ、ハードディスクなどを含むメモリ408、及び通信装置409はI/Oインタフェース405に接続できる。通信装置409は、電子機器400と他の機器がデータを交換するように無線又は有線通信を行うことを可能にする。図10は様々な装置を有する電子機器400を示すが、示されている装置のすべてを実装し、又は備える必要がないことを理解されたい。代替的に、より多くの、又はより少ない装置を実装し、又は備えることができる。
【0110】
特に、本開示の実施例によれば、フローチャートを参照して説明された以上のプロセスは、コンピュータソフトウェアプログラムとして実現され得る。例えば、本開示の実施例は、非一時的なコンピュータ可読媒体にロードされるコンピュータプログラムであって、本開示の実施例のフローチャートに示す方法を実行するためのプログラムコードを含むコンピュータプログラムを含むコンピュータプログラム製品を含む。このような実施例において、このコンピュータプログラムは通信装置409によりネットワークからダウンロードされインストールされ、又は記憶装置408からインストールされ、又はROM402からインストールされることができる。このコンピュータプログラムは、プロセッサ401により実行されると、本開示の実施例の方法において定義された上記機能を実行する。
【0111】
なお、本開示の上記コンピュータ可読媒体はコンピュータ可読信号媒体又はコンピュータ可読記憶媒体又は上記両者の任意の組み合わせとすることができる。コンピュータ可読記憶媒体は電気的、磁気的、光学的、電磁的、赤外線、又は半導体のシステム、装置又は機器、或いは以上の任意の組み合わせであってよいが、これらに限定されるものではない。コンピュータ可読記憶媒体のより具体的な例は、1つ又は複数のリードを有する電気的接続、ポータブルコンピュータ磁気ディスク、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、消去可能なプログラマブルリードオンリーメモリ(Erasable Programmable Read-Only Memory、EPROM又はフラッシュメモリ)、光ファイバー、コンパクトディスクリードオンリーメモリ(Compact Disc-Read Only Memory、CD-ROM)、光学記憶素子、磁気記憶素子、又は上記の任意の適切な組み合わせを含むことができるが、これらに限定されるものではない。本開示の実施例において、コンピュータ可読記憶媒体は、命令実行システム、装置、又は素子に使用され、又は組み合わせて使用され得るプログラムを含み、又は記憶する任意の有形媒体とすることができる。本開示の実施例において、コンピュータ可読信号媒体は、ベースバンドにおいて、又は搬送波の一部として伝搬されるデータ信号であって、その中にコンピュータ可読プログラムコードがロードされているデータ信号を含むことができる。このような伝搬されるデータ信号は、電磁信号、光信号、又は上記の任意の適切な組み合わせを含むが、これらに限定されない様々な形態を取ることができる。コンピュータ可読信号媒体はコンピュータ可読記憶媒体以外の任意のコンピュータ可読媒体とすることができ、命令実行システム、装置、又は素子に使用され、又は組み合わせて使用されるプログラムを送信、伝搬、又は伝送することができる。コンピュータ可読媒体に含まれるプログラムコードは、ワイヤ、光ケーブル、無線周波数(Radio Frequency、RF)など、又はこれらの任意の適切な組み合わせを含むが、これらに限定されない任意の適切な媒体により伝送することができる。
【0112】
上記コンピュータ可読媒体は上記電子機器に含まれてもよいし、この電子機器に組み込まれず、単独で存在してもよい。
【0113】
上記コンピュータ可読媒体には1つ又は複数のプログラムがロードされており、上記1つ又は複数のプログラムがこの電子機器により実行されると、この電子機器を、対象顔の予め設定された相対位置において、予め設定された移動方式により複数枚の前記対象顔に対応する顔マスクを含む顔マスク配列を動的に表示し、目標顔マスクに作用するトリガー命令に応答して、前記目標顔マスクを前記対象顔に融合して表示するようにさせ、ただし、前記目標顔マスクは前記顔マスク配列のうちのいずれかのマスクである。
【0114】
1つ又は複数のプログラミング言語、又はその任意の組み合わせで本開示の操作を実行するためのコンピュータプログラムコードを作成することができ、上記プログラミング言語は、例えばJava、Smalltalk、C++のようなオブジェクト指向プログラミング言語を含み、さらに、例えば「C」言語又は類似のプログラミング言語のような通常の手続き型プログラミング言語を含む。プログラムコードは、完全にユーザのコンピュータにおいて実行し、部分的にユーザのコンピュータにおいて実行し、スタンドアロンソフトウェアパッケージとして実行し、部分的にユーザのコンピュータにおいて且つ部分的にリモートコンピュータにおいて実行し、又は完全にリモートコンピュータ若しくはサーバにおいて実行することができる。リモートコンピュータに係る場合、リモートコンピュータは、ローカルエリアネットワーク(Local Area Network、LAN)又はワイドエリアネットワーク(Wide Area Network、WAN)を含む任意の種類のネットワークを経由してユーザのコンピュータに接続されてもよく、又は、(例えばインターネットサービスプロバイダを利用してインターネットを経由して接続する)外部コンピュータに接続されてもよい。
【0115】
いくつかの実施例では、クライアント、サーバは、例えば、ハイパーテキストトランスファープロトコル(HyperText Transfer Protocol、HTTP)のような現在知られており、又は将来に開発される任意のネットワークプロトコルにより通信することができ、また、任意の形態又は媒体のデジタルデータ通信(例えば、通信ネットワーク)と相互に接続することができる。通信ネットワークの例は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネットワーク(例えば、インターネット)、及びエンドツーエンドネットワーク(例えば、ad hocエンドツーエンドネットワーク)、並びに現在知られており、又は将来に開発される任意のネットワークを含む。
【0116】
図面のフローチャート及びブロック図は、本開示の各種の実施例によるシステム、方法及びコンピュータプログラム製品の実施可能なシステムアーキテクチャ、機能及び操作を示す。この点では、フローチャート又はブロック図における各ブロックは1つのモジュール、プログラムセグメント又はコードの一部を代表することができ、このモジュール、プログラムセグメント又はコードの一部は所定の論理機能を実現するための1つ又は複数の実行可能な命令を含む。代替としてのいくつかの実施形態では、ブロックに表記される機能は、図面において表記される順序とは異なって実現されてもよいことにも留意されたい。例えば、連続的に表示される2つのブロックは実質的に並列に実行されてもよく、また、係る機能によって、逆な順序で実行されてもよい。ブロック図及び/又はフローチャートにおける各ブロック、及びブロック図及び/又はフローチャートにおけるブロックの組み合わせは、所定の機能又は動作を実行する、ハードウェアに基づく専用システムによって実施されてもよいし、専用ハードウェアとコンピュータ命令との組み合わせによって実施されてもよいことにも留意されたい。
【0117】
本開示の実施例に係るモジュールはソフトウェアの形態で実施されてもよく、ハードウェアの形態で実施されてもよい。ここで、モジュールの名称はある場合にこのユニット自体を限定するものではなく、例えば、表示モジュールは「対象顔及び顔マスク配列を表示するユニット」として記載されてもよい。
【0118】
本明細書において上記した機能は、少なくとも一部が1つ又は複数のハードウェア論理部材によって実行することができる。例えば、フィールドプログラマブルゲートアレイ(Field Programmable Gate Array、FPGA)、特定用途向け集積回路(Application Specific Integrated Circuit、ASIC)、特定用途向け標準部品(Application Specific Standard Parts、ASSP)、システムオンチップ(System on Chip、SOC)、複雑なプログラマブルロジックデバイス(Complex Programmable logic device、CPLD)などを含む例示的なハードウェア論理部品を用いることができるが、これらに限定されるものではない。
【0119】
本開示の文脈において、機械可読媒体は有形の媒体であってもよく、それは、命令実行システム、装置又は機器に使用され、或いは、命令実行システム、装置又は機器と組み合わせて使用されるプログラムを含み、又は記憶することができる。機械可読媒体は機械可読信号媒体又は機械可読記憶媒体であってもよい。機械可読媒体は電子的、磁気的、光学的、電磁的、赤外線、又は半導体システム、装置又は機器、或いは上述した内容の任意の適切な組み合わせを含むことができるが、これらに限定されるものではない。機械可読記憶媒体のより具体的な例は1つ又は複数の電線による電気的接続、ポータブルコンピュータディスク、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、消去可能なプログラマブルリードオンリーメモリ(EPROM又はフラッシュメモリ)、光ファイバー、コンパクトディスクリードオンリーメモリ(CD-ROM)、光学記憶機器、磁気記憶機器、又は上記内容の任意の適切な組み合わせを含む。
【0120】
第1の態様において、本開示の1つ又は複数の実施例によれば、
対象顔の予め設定された相対位置において、予め設定された移動方式により複数枚の前記対象顔に対応する顔マスクを含む顔マスク配列を動的に表示するステップと、
目標顔マスクに作用するトリガー命令に応答して、前記目標顔マスクを前記対象顔に融合して表示するステップであって、前記目標顔マスクは前記顔マスク配列のうちのいずれかのマスクであるステップと、を含む、顔画像表示方法が提供される。
【0121】
本開示の1つ又は複数の実施例によれば、前記顔マスク配列は少なくとも1枚の前記対象顔に対応する変形顔マスクを含む。
【0122】
本開示の1つ又は複数の実施例によれば、対象顔の予め設定された相対位置において、予め設定された移動方式により顔マスク配列を動的に表示する前記ステップは、
前記対象顔を中心とし、前記対象顔の頭頂方向を中心軸とし、回転移動の方式により前記顔マスク配列を動的に表示するステップであって、前記顔マスク配列における顔マスクは予め設定された円周方向に従って配置されるステップを含む。
【0123】
本開示の1つ又は複数の実施例によれば、前記顔マスク配列における顔マスクは前記対象顔に対応するスケーリング顔マスクである。
【0124】
本開示の1つ又は複数の実施例によれば、回転移動の方式により前記顔マスク配列を動的に表示する前記ステップは、
前記対象顔上の目標部位の特徴パラメータを取得するステップと、
前記特徴パラメータに基づいて前記回転移動の回転速度を決定し、前記回転速度に従って前記顔マスク配列を動的に表示するステップと、を含む。
【0125】
本開示の1つ又は複数の実施例によれば、前記対象顔上の目標部位の特徴パラメータを取得するステップは、
前記対象顔の口の特徴パラメータ及び目の特徴パラメータを取得するステップであって、前記口の特徴パラメータは上唇のキーポイントの座標及び下唇のキーポイントの座標を含み、前記目の特徴パラメータは左目のキーポイントの座標及び右目のキーポイントの座標を含むステップと、
前記上唇のキーポイントの座標及び前記下唇のキーポイントの座標に基づいて第1の方向における第1の座標差値を決定し、前記左目のキーポイントの座標及び前記右目のキーポイントの座標に基づいて第2の方向における第2の座標差値を決定するステップと、
前記第1の座標差値と前記第2の座標差値との比に基づいて前記特徴パラメータを決定するステップと、を含む。
【0126】
本開示の1つ又は複数の実施例によれば、前記特徴パラメータに基づいて回転速度を決定する前記ステップは、
前記特徴パラメータが予め設定された第1の閾値以下の場合、前記回転速度を第1の予め設定された速度と決定するステップと、
前記特徴パラメータが前記予め設定された第1の閾値より大きいとともに前記第1の予め設定された速度と追加速度との和が第2の予め設定された速度よりも小さい場合、前記回転速度を前記第1の予め設定された速度と前記追加速度との和と決定するステップであって、前記追加速度は特徴パラメータの差値に比例し、前記特徴パラメータの差値は前記特徴パラメータと前記予め設定された第1の閾値との差であるステップと、
前記第1の予め設定された速度と前記追加速度との和が前記第2の予め設定された速度以上である場合、前記回転速度を前記第2の予め設定された速度として決定するステップと、を含む。
【0127】
本開示の1つ又は複数の実施例によれば、前記目標顔マスクを前記対象顔に融合して表示する前記ステップの前に、
前記目標顔マスクが目標位置まで回転するかどうかを決定するステップであって、前記目標位置と前記対象顔とは予め設定された位置関係に合致するステップをさらに含む。
【0128】
本開示の1つ又は複数の実施例によれば、前記目標位置は前記対象顔の直前の位置である。
【0129】
本開示の1つ又は複数の実施例によれば、前記目標顔マスクが前記目標位置まで回転すると、前記回転移動の回転速度を予め設定された目標速度まで低下させる。
【0130】
本開示の1つ又は複数の実施例によれば、前記目標顔マスクを前記対象顔に融合して表示する前記ステップは、
予め設定された経路に従って前記目標顔マスクを前記対象顔に貼り合わせ、前記目標顔マスクと前記対象顔を融合して、融合顔画像を生成するステップであって、前記予め設定された経路は第1の位置から第2の位置に指向し、前記第1の位置は現在の前記目標顔マスクの前記顔マスク配列における位置であり、前記第2の位置は現在の前記対象顔の位置であるステップと、
前記対象顔に前記融合顔画像を表示するステップと、を含む。
【0131】
本開示の1つ又は複数の実施例によれば、前記目標顔マスクを前記対象顔に融合して表示する前記ステップは、
予め設定された透明度変化規則に従って、前記顔マスク配列における前記目標顔マスク以外の他の顔マスクに対して漸進的に変化して消失させるステップをさらに含む。
【0132】
本開示の1つ又は複数の実施例によれば、前記顔画像表示方法は、
前記顔マスク配列の各顔マスク上の各テクセルの現在の位置パラメータ及び前記対象顔の位置パラメータに基づいてレンダリング領域及び非レンダリング領域を決定し、前記レンダリング領域のみをレンダリングするステップをさらに含む。
【0133】
本開示の1つ又は複数の実施例によれば、前記顔マスク配列の各顔マスク上の各テクセルの現在の位置パラメータ及び前記対象顔の位置パラメータに基づいてレンダリング領域及び非レンダリング領域を決定する前記ステップは、
前記テクセルの現在の位置が前記対象顔に対応する位置範囲内に位置し、且つ第3の方向において前記対象顔の特徴キーポイントの後に位置する場合、前記テクセル前記非レンダリング領域に属すると決定するステップを含む。
【0134】
本開示の1つ又は複数の実施例によれば、前記レンダリング領域は正面領域と裏面領域を含み、前記レンダリング領域をレンダリングする前記ステップは、
前記対象顔に基づいて前記正面領域をレンダリングするステップと、
前記裏面領域を予め設定された固定テクスチャにレンダリングするステップと、を含む。
【0135】
第2の態様において、本開示の1つ又は複数の実施例によれば、
対象顔の予め設定された相対位置において、予め設定された移動方式により複数枚の前記対象顔に対応する顔マスクを含む顔マスク配列を動的に表示するための表示モジュールと、
目標顔マスクに作用するトリガー命令を取得するための取得モジュールと、
前記目標顔マスクを前記対象顔に融合するための処理モジュールであって、前記目標顔マスクは前記顔マスク配列のうちのいずれかのマスクである処理モジュールと、を含み、
前記表示モジュールはさらに、前記目標顔マスクを融合した前記対象顔を表示するために用いられる、顔画像表示装置が提供される。
【0136】
本開示の1つ又は複数の実施例によれば、前記顔マスク配列は少なくとも1枚の前記対象顔に対応する変形顔マスクを含む。
【0137】
本開示の1つ又は複数の実施例によれば、前記表示モジュールは、具体的には、
前記対象顔を中心とし、前記対象顔の頭頂方向を中心軸とし、回転移動の方式により前記顔マスク配列を動的に表示するために用いられ、前記顔マスク配列における顔マスクは予め設定された円周方向に従って配置される。
【0138】
本開示の1つ又は複数の実施例によれば、前記顔マスク配列における顔マスクは前記対象顔に対応するスケーリング顔マスクである。
【0139】
本開示の1つ又は複数の実施例によれば、前記表示モジュールは、具体的には、
前記対象顔上の目標部位の特徴パラメータを取得し、
前記特徴パラメータに基づいて前記回転移動の回転速度を決定し、前記回転速度に従って前記顔マスク配列を動的に表示するために用いられる。
【0140】
本開示の1つ又は複数の実施例によれば、前記取得モジュールはさらに、前記対象顔の口の特徴パラメータ及び目の特徴パラメータを取得するために用いられ、前記口の特徴パラメータは上唇のキーポイントの座標及び下唇のキーポイントの座標を含み、前記目の特徴パラメータは左目のキーポイントの座標及び右目のキーポイントの座標を含み、
前記処理モジュールはさらに、前記上唇のキーポイントの座標及び前記下唇のキーポイントの座標に基づいて第1の方向における第1の座標差値を決定し、前記左目のキーポイントの座標及び前記右目のキーポイントの座標に基づいて第2の方向における第2の座標差値を決定するために用いられ、
前記処理モジュールはさらに、前記第1の座標差値と前記第2の座標差値との比に基づいて前記特徴パラメータを決定するために用いられる。
【0141】
本開示の1つ又は複数の実施例によれば、前記処理モジュールは、具体的には、
前記特徴パラメータが予め設定された第1の閾値以下の場合、前記回転速度を第1の予め設定された速度と決定することと、
前記特徴パラメータが前記予め設定された第1の閾値より大きいとともに前記第1の予め設定された速度と追加速度との和が第2の予め設定された速度よりも小さい場合、前記回転速度を前記第1の予め設定された速度と前記追加速度との和と決定することであって、ただし、前記追加速度は特徴パラメータの差値に比例し、前記特徴パラメータの差値は前記特徴パラメータと前記予め設定された第1の閾値との差であることと、
前記第1の予め設定された速度と前記追加速度との和が前記第2の予め設定された速度以上である場合、前記回転速度を前記第2の予め設定された速度として決定することと、に用いられる。
【0142】
本開示の1つ又は複数の実施例によれば、前記処理モジュールはさらに、前記目標顔マスクが目標位置まで回転するかどうかを決定するために用いられ、前記目標位置と前記対象顔とは予め設定された位置関係に合致する。
【0143】
本開示の1つ又は複数の実施例によれば、前記目標位置は前記対象顔の直前の位置である。
【0144】
本開示の1つ又は複数の実施例によれば、前記処理モジュールはさらに、前記目標顔マスクが前記目標位置まで回転すると、前記回転移動の回転速度を予め設定された目標速度まで低下させることに用いられる
【0145】
本開示の1つ又は複数の実施例によれば、前記処理モジュールはさらに、予め設定された経路に従って前記目標顔マスクを前記対象顔に貼り合わせ、前記目標顔マスクと前記対象顔を融合して、融合顔画像を生成するために用いられ、ただし、前記予め設定された経路は第1の位置から第2の位置に指向し、前記第1の位置は現在の前記目標顔マスクの前記顔マスク配列における位置であり、前記第2の位置は現在の前記対象顔の位置であり、
前記表示モジュールはさらに、前記対象顔に前記融合顔画像を表示するために用いられる。
【0146】
本開示の1つ又は複数の実施例によれば、前記表示モジュールはさらに、予め設定された透明度変化規則に従って、前記顔マスク配列における前記目標顔マスク以外の他の顔マスクに対して漸進的に変化して消失させるために用いられる。
【0147】
本開示の1つ又は複数の実施例によれば、前記処理モジュールはさらに、前記顔マスク配列の各顔マスク上の各テクセルの現在の位置パラメータ及び前記対象顔の位置パラメータに基づいてレンダリング領域及び非レンダリング領域を決定し、前記レンダリング領域のみをレンダリングするために用いられる。
【0148】
本開示の1つ又は複数の実施例によれば、前記処理モジュールはさらに、前記テクセルの現在の位置が前記対象顔に対応する位置範囲内に位置し、且つ第3の方向において前記対象顔の特徴キーポイントの後に位置する場合、前記テクセル前記非レンダリング領域に属すると決定することに用いられる
【0149】
本開示の1つ又は複数の実施例によれば、前記処理モジュールはさらに、前記対象顔に基づいて前記正面領域をレンダリングするために用いられ、
前記処理モジュールはさらに、前記裏面領域を予め設定された固定テクスチャにレンダリングするために用いられる。
【0150】
第3の態様において、本開示の実施例は、電子機器であって、少なくとも1つのプロセッサと、メモリとを含み、
前記メモリはコンピュータ実行命令を記憶し、
前記少なくとも1つのプロセッサは前記メモリに記憶されたコンピュータ実行命令を実行することにより、前記少なくとも1つのプロセッサに上記第1の態様及び第1の態様の各種の可能な設計に記載の顔画像表示方法を実行させる、電子機器を提供する。
【0151】
第4の態様において、本開示の実施例はコンピュータ可読記憶媒体を提供し、前記コンピュータ可読記憶媒体にはコンピュータ実行命令が記憶されており、プロセッサは前記コンピュータ実行命令を実行すると、上記第1の態様及び第1の態様の各種の可能な設計に記載の顔画像表示方法が実現される。
【0152】
第5の態様において、本開示の実施例はコンピュータプログラムを含むコンピュータプログラム製品であって、前記コンピュータプログラムがプロセッサによって実行されると、上記第1の態様及び第1の態様の各種の可能な設計に記載の顔画像表示方法が実現される、コンピュータプログラム製品を提供する。
【0153】
第6の態様において、本開示の実施例はコンピュータプログラムであって、プロセッサによって実行されると、上記第1の態様及び第1の態様の各種の可能な設計に記載の顔画像表示方法が実現されるコンピュータプログラムを提供する。
【0154】
以上記載したものは本開示の好ましい実施例及び用いられる技術原理の説明に過ぎない。当業者であれば、本開示に係る開示の範囲は、上記技術的特徴の特定の組み合わせによる技術的解決手段に限定されるものではなく、また上記開示の思想から逸脱することなく、上記技術的特徴又はその同等の特徴を任意に組み合わせて形成される他の技術的解決手段をカバーすべきである。例えば、上述した特徴を本開示において開示された(ただしこれに限定されない)類似の機能を有する技術的特徴と置き換えて形成される技術的解決手段が挙げられる。
【0155】
さらに、特定の順序で各操作を説明したが、これらの操作を示された特定の順番又は順序の順番で実行することが要求されると理解されるべきではない。特定の状況では、マルチタスキング及び並列処理が有利である可能性がある。同様に、上記の説明にはいくつかの具体的な実施詳細が含まれているが、これらは本開示の範囲を限定するものと解釈されるべきではない。別個の実施例の文脈で説明されるある特徴は単一の実施例に組み合わせて実装されてもよい。逆に、単一の実施例の文脈で説明される様々な特徴は複数の実施例において、単独で、又は任意の適切なサブ組み合わせの方式で実装されてもよい。
【0156】
構造的特徴及び/又は方法の論理動作に特有の言語を用いて本主題を説明したが、添付の特許請求の範囲に定義される主題は、必ずしも上述した特定の特徴又は動作に限定されないことを理解されたい。それに対して、上述した特定の特徴及び動作は、特許請求の範囲を実現するための単なる例示である。
【0157】
開示は、2020年9月17日に中国国家知識産権局に提出された、出願番号が202010981627.5、発明の名称が「顔画像表示方法、装置、電子機器及び記憶媒体」の中国特許出願の優先権を主張し、そのすべての内容は、参照により本願に組み込まれる。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10