(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-22
(45)【発行日】2023-12-01
(54)【発明の名称】髪のレンダリング方法、装置、電子機器及び記憶媒体
(51)【国際特許分類】
G06T 13/80 20110101AFI20231124BHJP
G06T 7/254 20170101ALI20231124BHJP
G06T 7/20 20170101ALI20231124BHJP
【FI】
G06T13/80 A
G06T7/254 Z
G06T7/20 300Z
(21)【出願番号】P 2022549140
(86)(22)【出願日】2020-11-18
(86)【国際出願番号】 CN2020129859
(87)【国際公開番号】W WO2021189880
(87)【国際公開日】2021-09-30
【審査請求日】2022-08-15
(31)【優先権主張番号】202010230272.6
(32)【優先日】2020-03-27
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】520230293
【氏名又は名称】北京達佳互▲れん▼信息技術有限公司
(74)【代理人】
【識別番号】100072604
【氏名又は名称】有我 軍一郎
(74)【代理人】
【識別番号】100140501
【氏名又は名称】有我 栄一郎
(72)【発明者】
【氏名】ホウ, ペイホン
(72)【発明者】
【氏名】マー, チョンヤン
【審査官】村松 貴士
(56)【参考文献】
【文献】特開2007-286669(JP,A)
【文献】特開2009-020874(JP,A)
【文献】特開2002-269580(JP,A)
【文献】米国特許出願公開第2015/0054825(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 13/00 - 13/80
G06T 7/20 - 7/292
H04N 5/262 - 5/28
(57)【特許請求の範囲】
【請求項1】
髪のレンダリング方法であって、
髪情報が含まれるターゲットビデオを取得し、前記ターゲットビデオの画像フレームからターゲット画像フレームを選択するステップと、
前記ターゲット画像フレームのテクスチャ画像を取得するステップであって、前記テクスチャ画像が、前記ターゲット画像フレームにおけるピクセルポイントの動き状態と状態変化情報を記録するテクスチャフォーマットの画像であり、前記テクスチャ画像における髪領域が、グリッド線で少なくとも1つの粒子領域に分割されるステップと、
前記テクスチャ画像から第1のターゲット粒子領域の第1のターゲット動き状態とターゲット状態変化情報を取得するステップであって、前記第1のターゲット粒子領域が前記少なくとも1つの粒子領域のいずれか1つの領域であるステップと、
前記第1のターゲット動き状態と前記ターゲット状態変化情報に基づいて、次の画像フレームにおける前記第1のターゲット粒子領域の第2のターゲット動き状態を決定するステップであって、前記次の画像フレームが前記ターゲットビデオにおける前記ターゲット画像フレームの次のフレーム画像であるステップと、
前記第2のターゲット動き状態に基づいて前記テクスチャ画像における動き状態を更新して、前記髪領域をレンダリングするステップと、を含む、
ことを特徴とする髪のレンダリング方法。
【請求項2】
前記第2のターゲット動き状態に基づいて前記テクスチャ画像における動き状態を更新するステップは、
前記第2のターゲット動き状態に基づいて前記第1のターゲット粒子領域の動き状態を更新し、残りの粒子領域の運動状態を保持するステップであって、前記残りの粒子領域が、前記少なくとも1つの粒子領域内の前記第1のターゲット粒子領域を除く他の粒子領域であるステップを含む、
ことを特徴とする請求項1に記載の髪のレンダリング方法。
【請求項3】
前記第1のターゲット動き状態は第1の画面座標を含み、前記ターゲット状態変化情報は第1の速度を含み、
前記第1のターゲット動き状態と前記ターゲット状態変化情報に基づいて、次の画像フレームにおける前記第1のターゲット粒子領域の第2のターゲット動き状態を決定するステップは、
前記ターゲット画像フレームと前記次の画像フレームとの時間差分値を決定するステップと、
前記第1の画面座標、前記第1の速度及び前記時間差分値に基づいて、前記次の画像フレームにおける前記第1のターゲット粒子領域の第2の画面座標を決定し、前記第2のターゲット動き状態とするステップと、を含む、
ことを特徴とする請求項1または2に記載の髪のレンダリング方法。
【請求項4】
前記第2のターゲット動き状態に基づいて前記テクスチャ画像における動き状態を更新するステップは、
前記第2の画面座標が前記髪領域の外にある場合、前記テクスチャ画像の髪領域を再決定し、新たに決定された髪領域に対応する粒子領域から第2のターゲット粒子領域を決定するステップと、
前記テクスチャ画像から前記第2のターゲット粒子領域の参照ターゲット動き状態と参照ターゲット状態変化情報を取得するステップと、
前記参照ターゲット動き状態と前記参照ターゲット状態変化情報に基づいて、前記次の画像フレームにおける前記第2のターゲット粒子領域の動き状態を決定し、第3のターゲット動き状態を得るステップと、
前記第3のターゲット動き状態に基づいて前記テクスチャ画像における動き状態を更新するステップと、を含む、
ことを特徴とする請求項3に記載の髪のレンダリング方法。
【請求項5】
前記第1のターゲット動き状態は第2の速度を含み、前記ターゲット状態変化情報は髪方向角を含み、
前記第1のターゲット動き状態と前記ターゲット状態変化情報に基づいて、次の画像フレームにおける前記第1のターゲット粒子領域の第2のターゲット動き状態を決定するステップは、
予め設定されたレートを取得するステップと、
前記第2の速度、前記髪方向角および前記レートに基づいて、前記次の画像フレームにおける前記第1のターゲット粒子領域の第3の速度を決定し、前記第2のターゲット動き状態を得るステップと、を含む、
ことを特徴とする請求項1または2に記載の髪のレンダリング方法。
【請求項6】
前記ターゲット画像フレームのテクスチャ画像を取得するステップの前に、
前記ターゲットビデオにおける、経時的に変化するピクセル状態情報に基づいて、前記ターゲット画像フレームにおける各ピクセルポイントの候補状態変化情報を決定するステップと、
前記ターゲット画像フレームに対応する髪方向図と髪領域マスクマップを取得するステップであって、前記髪方向図に前記各ピクセルポイントの髪方向角が含まれ、前記髪領域マスクマップに前記ターゲット画像フレームにおける髪領域のマスク情報が含まれるステップと、
前記髪方向図における髪方向角と前記髪領域マスクマップにおけるマスク情報に基づいて、前記各ピクセルポイントの候補動き状態を決定するステップと、
前記候補状態変化情報と前記候補動き状態を前記少なくとも1つの粒子領域の頂点位置に記憶するステップであって、前記少なくとも1つの粒子領域の頂点位置が前記各ピクセルポイントに対応するステップと、をさらに含む、
ことを特徴とする請求項1
または2に記載の髪のレンダリング方法。
【請求項7】
前記候補状態変化情報と前記候補動き状態を前記少なくとも1つの粒子領域の頂点位置に記憶するステップの後に、
テクスチャ画像を第1のフレームバッファに記憶するステップをさらに含み、
前記第2のターゲット動き状態に基づいて前記テクスチャ画像における動き状態を更新するステップの後に
第1のフレームバッファ内のテクスチャ画像を第2のフレームバッファに記憶するステップと、
更新後の前記テクスチャ画像を前記第1のフレームバッファに記憶するステップと、をさらに含む、
ことを特徴とする請求項6に記載の髪のレンダリング方法。
【請求項8】
前記ターゲット画像フレームのテクスチャ画像を取得するステップの後に、
前記テクスチャ画像における髪領域を決定するステップと、
予め決定された粒子束の数に基づいて前記髪領域をグリッド分割し、対応する少なくとも1つの粒子束を得るステップと、
予め決定された粒子の数に基づいて前記少なくとも1つの粒子束をそれぞれグリッド分割し、対応する少なくとも1つの粒子領域を得るステップと、をさらに含む、
ことを特徴とする請求項1
または2に記載の髪のレンダリング方法。
【請求項9】
前記テクスチャ画像から第1のターゲット粒子領域の第1のターゲット動き状態とターゲット状態変化情報を取得するステップの前に、
前記少なくとも1つの粒子束における設定位置にある粒子領域を、前記第1のターゲット粒子領域として決定するステップをさらに含む、
ことを特徴とする請求項8に記載の髪のレンダリング方法。
【請求項10】
髪のレンダリング装置であって、
髪情報が含まれるターゲットビデオを取得し、前記ターゲットビデオの画像フレームからターゲット画像フレームを選択するステップを実行するように構成される画像フレーム決定ユニットと、
前記ターゲット画像フレームのテクスチャ画像を取得するステップを実行するように構成されるテクスチャ画像取得ユニットであって、前記テクスチャ画像が、前記ターゲット画像フレームにおけるピクセルポイントの動き状態と状態変化情報を記録するテクスチャフォーマットの画像であり、前記テクスチャ画像における髪領域が、グリッド線で少なくとも1つの粒子領域に分割されるテクスチャ画像取得ユニットと、
前記テクスチャ画像から第1のターゲット粒子領域の第1のターゲット動き状態とターゲット状態変化情報を取得するステップを実行するように構成される状態情報取得ユニットであって、前記第1のターゲット粒子領域が前記少なくとも1つの粒子領域のいずれか1つの領域である状態情報取得ユニットと、
前記第1のターゲット動き状態と前記ターゲット状態変化情報に基づいて、次の画像フレームにおける前記第1のターゲット粒子領域の第2のターゲット動き状態を決定するステップを実行するように構成される動き状態決定ユニットであって、前記次の画像フレームが前記ターゲットビデオにおける前記ターゲット画像フレームの次のフレーム画像である動き状態決定ユニットと、
前記第2のターゲット動き状態に基づいて前記テクスチャ画像における動き状態を更新して、前記髪領域をレンダリングするステップを実行するように構成される動き状態更新ユニットと、を含む、
ことを特徴とする髪のレンダリング装置。
【請求項11】
前記動き状態更新ユニットはさらに、前記第2のターゲット動き状態に基づいて前記第1のターゲット粒子領域の動き状態を更新し、残りの粒子領域の運動状態を保持するステップを実行するように構成され、前記残りの粒子領域が、前記少なくとも1つの粒子領域内の前記第1のターゲット粒子領域を除く他の粒子領域である、
ことを特徴とする請求項10に記載の髪のレンダリング装置。
【請求項12】
前記第1のターゲット動き状態は第1の画面座標を含み、前記ターゲット状態変化情報は第1の速度を含み、
前記動き状態決定ユニットは、
前記ターゲット画像フレームと前記次の画像フレームとの時間差分値を決定するステップを実行するように構成される時間差分値決定サブユニットと、
前記第1の画面座標、前記第1の速度及び前記時間差分値に基づいて、前記次の画像フレームにおける前記第1のターゲット粒子領域の第2の画面座標を決定し、前記第2のターゲット動き状態とするステップを実行するように構成される第1の動き状態決定サブユニットと、を含む、
ことを特徴とする請求項10または11に記載の髪のレンダリング装置。
【請求項13】
前記動き状態更新ユニットは、
前記第2の画面座標が前記髪領域の外にある場合、前記テクスチャ画像の髪領域を再決定し、新たに決定された髪領域に対応する粒子領域から第2のターゲット粒子領域を決定するステップを実行するように構成される粒子領域決定サブユニットと、
前記テクスチャ画像から前記第2のターゲット粒子領域の参照ターゲット動き状態と参照ターゲット状態変化情報を取得するステップを実行するように構成される状態情報取得サブユニットと、
前記参照ターゲット動き状態と前記参照ターゲット状態変化情報に基づいて、前記次の画像フレームにおける前記第2のターゲット粒子領域の動き状態を決定し、第3のターゲット動き状態を得るステップを実行するように構成される第2の動き状態決定サブユニットと、
前記第3のターゲット動き状態に基づいて前記テクスチャ画像における動き状態を更新するステップを実行するように構成される動き状態更新サブユニットと、を含む、
ことを特徴とする請求項12に記載の髪のレンダリング装置。
【請求項14】
前記第1のターゲット動き状態は第2の速度を含み、前記ターゲット状態変化情報は髪方向角を含み、
前記動き状態決定ユニットは、
予め設定されたレートを取得するステップを実行するように構成されるレート取得サブユニットと、
前記第2の速度、前記髪方向角および前記レートに基づいて、前記次の画像フレームにおける前記第1のターゲット粒子領域の第3の速度を決定し、前記第2のターゲット動き状態を得るステップを実行するように構成される第3の動き状態決定サブユニットと、を含む、
ことを特徴とする請求項10または11に記載の髪のレンダリング装置。
【請求項15】
前記髪のレンダリング装置は、
前記ターゲットビデオにおける、経時的に変化するピクセル状態情報に基づいて、前記ターゲット画像フレームにおける各ピクセルポイントの候補状態変化情報を決定するステップを実行するように構成される状態変化情報決定ユニットと、
前記ターゲット画像フレームに対応する髪方向図と髪領域マスクマップを取得するステップを実行するように構成される画像取得ユニットであって、前記髪方向図に前記各ピクセルポイントの髪方向角が含まれ、前記髪領域マスクマップに前記ターゲット画像フレームにおける髪領域のマスク情報が含まれる画像取得ユニットと、
前記髪方向図における髪方向角と前記髪領域マスクマップにおけるマスク情報に基づいて、前記各ピクセルポイントの候補動き状態を決定するステップを実行するように構成される候補動き状態決定ユニットと、
前記候補状態変化情報と前記候補動き状態を前記少なくとも1つの粒子領域の頂点位置に記憶するステップを実行するように構成される候補動き状態記憶ユニットであって、前記少なくとも1つの粒子領域の頂点位置が前記各ピクセルポイントに対応する候補動き状態記憶ユニットと、をさらに含む、
ことを特徴とする請求項10
または11に記載の髪のレンダリング装置。
【請求項16】
前記髪のレンダリング装置は、
テクスチャ画像を第1のフレームバッファに記憶するステップを実行するように構成される第1の画像記憶ユニットと、
第1のフレームバッファ内のテクスチャ画像を第2のフレームバッファに記憶するステップを実行するように構成される画像転写ユニットと、
更新後の前記テクスチャ画像を前記第1のフレームバッファに記憶するステップを実行するように構成される第2の画像記憶ユニットと、をさらに含む、
ことを特徴とする請求項15に記載の髪のレンダリング装置。
【請求項17】
前記髪のレンダリング装置は、
前記テクスチャ画像における髪領域を決定するステップを実行するように構成される領域決定ユニットと、
予め決定された粒子束の数に基づいて前記髪領域をグリッド分割し、対応する少なくとも1つの粒子束を得るステップを実行するように構成される領域分割ユニットと、
予め決定された粒子の数に基づいて前記少なくとも1つの粒子束をそれぞれグリッド分割し、対応する少なくとも1つの粒子領域を得るステップを実行するように構成される粒子束分割ユニットと、をさらに含む、
ことを特徴とする請求項10
または11に記載の髪のレンダリング装置。
【請求項18】
前記髪のレンダリング装置は、
前記少なくとも1つの粒子束における設定位置にある粒子領域を、前記第1のターゲット粒子領域として決定するステップを実行するように構成される粒子領域決定ユニットをさらに含む、
ことを特徴とする請求項17に記載の髪のレンダリング装置。
【請求項19】
電子機器であって、
プロセッサと、
前記プロセッサの実行可能な命令を記憶するためのメモリと、を含み、
前記プロセッサは、請求項
1に記載の髪のレンダリング方法を実現するために前記命令を実行するように構成される、
ことを特徴とする電子機器。
【請求項20】
記憶媒体であって、前記記憶媒体における命令が電子機器のプロセッサによって実行される場合、前記電子機器が請求項
1に記載の髪のレンダリング方法を実行できるようにする、
記憶媒体。
【発明の詳細な説明】
【関連出願の相互参照】
【0001】
本出願は、中国特許出願番号「202010230272.6」、出願日2020年3月27日の中国特許出願に基づいて提出され、当該中国特許出願の優先権を主張し、当該中国特許出願のすべての内容はここで参照として本出願に組み込まれる。
【技術分野】
【0002】
本開示は、画像処理技術の分野に関し、特に髪のレンダリング方法、装置、電子機器及び記憶媒体に関する。
【背景技術】
【0003】
ネットワークライブなどの技術の発展につれて、リアルタイムレンダリング技術のモバイル端末での応用はますます広くなっており、例えば、ライブ中に画像、ビデオにおけるユーザの髪を染めたり柔らかくしたりするなどのレンダリング処理を行う。
【0004】
現在、Po(パーソナルコンピューター)側またはサーバ側のCPU(中央処理装置)を介して、髪領域におけるピクセルポイントに対して色替え、ぼかしなどのレンダリング処理を行う。
【0005】
しかしながら、現在のレンダリング方法は演算量が多く、髪粒子情報に対するCPUの処理プロセスがしばしば複雑で、モバイル端末でリアルタイムレンダリングを実現することができない。現在、モバイル端末を介してライブ配信するニーズが高まっているため、モバイル端末で髪をリアルタイムにレンダリングできる方法を提供する必要がある。
【発明の概要】
【発明が解決しようとする課題】
【0006】
本開示は、関連技術においてモバイル端末で髪をリアルタイムにレンダリングできない問題を少なくとも解決するために、髪のレンダリング方法、装置、電子機器及び記憶媒体を提供し、本開示の技術案は以下の通りである。
【課題を解決するための手段】
【0007】
本開示の実施例の第1の態様によれば、髪情報が含まれるターゲットビデオを取得し、前記ターゲットビデオの画像フレームからターゲット画像フレームを選択するステップと、前記ターゲット画像フレームのテクスチャ画像を取得するステップであって、前記テクスチャ画像が、前記ターゲット画像フレームにおけるピクセルポイントの動き状態と状態変化情報を記録するテクスチャフォーマットの画像であり、前記テクスチャ画像における髪領域が、グリッド線で少なくとも1つの粒子領域に分割されるステップと、前記テクスチャ画像から第1のターゲット粒子領域の第1のターゲット動き状態とターゲット状態変化情報を取得するステップであって、前記第1のターゲット粒子領域が前記少なくとも1つの粒子領域のいずれか1つの領域であるステップと、前記第1のターゲット動き状態と前記ターゲット状態変化情報に基づいて、次の画像フレームにおける前記第1のターゲット粒子領域の第2のターゲット動き状態を決定するステップであって、前記次の画像フレームが前記ターゲットビデオにおける前記ターゲット画像フレームの次のフレーム画像であるステップと、前記第2のターゲット動き状態に基づいて前記テクスチャ画像における動き状態を更新して、前記髪領域をレンダリングするステップと、を含む髪のレンダリング方法を提供する。
【0008】
選択的に、前記第2のターゲット動き状態に基づいて前記テクスチャ画像における動き状態を更新するステップは、前記第2のターゲット動き状態に基づいて前記第1のターゲット粒子領域の動き状態を更新し、残りの粒子領域の運動状態を保持するステップを含み、前記残りの粒子領域が、前記少なくとも1つの粒子領域内の前記第1のターゲット粒子領域を除く他の粒子領域である。
【0009】
選択的に、前記第1のターゲット動き状態は第1の画面座標を含み、前記ターゲット状態変化情報は第1の速度を含む。前記第1のターゲット動き状態と前記ターゲット状態変化情報に基づいて、次の画像フレームにおける前記第1のターゲット粒子領域の第2のターゲット動き状態を決定するステップは、前記ターゲット画像フレームと前記次の画像フレームとの時間差分値を決定するステップと、前記第1の画面座標、前記第1の速度及び前記時間差分値に基づいて、前記次の画像フレームにおける前記第1のターゲット粒子領域の第2の画面座標を決定し、前記第2のターゲット動き状態とするステップと、を含む。
【0010】
選択的に、前記第2のターゲット動き状態に基づいて前記テクスチャ画像における動き状態を更新するステップは、前記第2の画面座標が前記髪領域の外にある場合、前記テクスチャ画像の髪領域を再決定し、新たに決定された髪領域に対応する粒子領域から第2のターゲット粒子領域を決定するステップと、前記テクスチャ画像から前記第2のターゲット粒子領域の参照ターゲット動き状態と参照ターゲット状態変化情報を取得するステップと、前記参照ターゲット動き状態と前記参照ターゲット状態変化情報に基づいて、前記次の画像フレームにおける前記第2のターゲット粒子領域の動き状態を決定し、第3のターゲット動き状態を得るステップと、前記第3のターゲット動き状態に基づいて前記テクスチャ画像における動き状態を更新するステップと、を含む。
【0011】
選択的に、前記第1のターゲット動き状態は第2の速度を含み、前記ターゲット状態変化情報は髪方向角を含む。前記第1のターゲット動き状態と前記ターゲット状態変化情報に基づいて、次の画像フレームにおける前記第1のターゲット粒子領域の第2のターゲット動き状態を決定するステップは、予め設定されたレートを取得するステップと、前記第2の速度、前記髪方向角および前記レートに基づいて、前記次の画像フレームにおける前記第1のターゲット粒子領域の第3の速度を決定し、前記第2のターゲット動き状態を得るステップと、を含む。
【0012】
選択的に、前記ターゲット画像フレームのテクスチャ画像を取得するステップの前に、前記ターゲットビデオにおける、経時的に変化するピクセル状態情報に基づいて、前記ターゲット画像フレームにおける各ピクセルポイントの候補状態変化情報を決定するステップと、前記ターゲット画像フレームに対応する髪方向図と髪領域マスクマップを取得するステップであって、前記髪方向図に前記各ピクセルポイントの髪方向角が含まれ、前記髪領域マスクマップに前記ターゲット画像フレームにおける髪領域のマスク情報が含まれるステップと、前記髪方向図における髪方向角と前記髪領域マスクマップにおけるマスク情報に基づいて、前記各ピクセルポイントの候補動き状態を決定するステップと、前記候補状態変化情報と前記候補動き状態を前記少なくとも1つの粒子領域の頂点位置に記憶するステップであって、前記少なくとも1つの粒子領域の頂点位置が前記各ピクセルポイントに対応するステップと、をさらに含む。
【0013】
選択的に、前記候補状態変化情報と前記候補動き状態を前記少なくとも1つの粒子領域の頂点位置に記憶するステップの後に、テクスチャ画像を第1のフレームバッファに記憶するステップをさらに含む。前記第2のターゲット動き状態に基づいて前記テクスチャ画像における動き状態を更新するステップの後に、第1のフレームバッファ内のテクスチャ画像を第2のフレームバッファに記憶するステップと、更新後の前記テクスチャ画像を前記第1のフレームバッファに記憶するステップと、をさらに含む。
【0014】
選択的に、前記ターゲット画像フレームのテクスチャ画像を取得するステップの後に、前記テクスチャ画像における髪領域を決定するステップと、予め決定された粒子束の数に基づいて前記髪領域をグリッド分割し、対応する少なくとも1つの粒子束を得るステップと、予め決定された粒子の数に基づいて前記少なくとも1つの粒子束をそれぞれグリッド分割し、対応する少なくとも1つの粒子領域を得るステップと、をさらに含む。
【0015】
選択的に、前記テクスチャ画像から第1のターゲット粒子領域の第1のターゲット動き状態とターゲット状態変化情報を取得するステップの前に、前記少なくとも1つの粒子束における設定位置にある粒子領域を、前記第1のターゲット粒子領域として決定するステップをさらに含む。
【0016】
本開示の実施例に係る第2の態様によれば、髪情報が含まれるターゲットビデオを取得し、前記ターゲットビデオの画像フレームからターゲット画像フレームを選択するステップを実行するように構成される画像フレーム決定ユニットと、前記ターゲット画像フレームのテクスチャ画像を取得するステップを実行するように構成されるテクスチャ画像取得ユニットであって、前記テクスチャ画像が、前記ターゲット画像フレームにおけるピクセルポイントの動き状態と状態変化情報を記録するテクスチャフォーマットの画像であり、前記テクスチャ画像における髪領域が、グリッド線で少なくとも1つの粒子領域に分割されるテクスチャ画像取得ユニットと、前記テクスチャ画像から第1のターゲット粒子領域の第1のターゲット動き状態とターゲット状態変化情報を取得するステップを実行するように構成される状態情報取得ユニットであって、前記第1のターゲット粒子領域が前記少なくとも1つの粒子領域のいずれか1つの領域である状態情報取得ユニットと、前記第1のターゲット動き状態と前記ターゲット状態変化情報に基づいて、次の画像フレームにおける前記第1のターゲット粒子領域の第2のターゲット動き状態を決定するステップを実行するように構成される動き状態決定ユニットであって、前記次の画像フレームが前記ターゲットビデオにおける前記ターゲット画像フレームの次のフレーム画像である動き状態決定ユニットと、前記第2のターゲット動き状態に基づいて前記テクスチャ画像における動き状態を更新して、前記髪領域をレンダリングするステップを実行するように構成される動き状態更新ユニットと、を含む髪のレンダリング装置を提供する。
【0017】
選択的に、前記動き状態更新ユニットはさらに、前記第2のターゲット動き状態に基づいて前記第1のターゲット粒子領域の動き状態を更新し、残りの粒子領域の運動状態を保持するステップを実行するように構成され、前記残りの粒子領域が、前記少なくとも1つの粒子領域内の前記第1のターゲット粒子領域を除く他の粒子領域である。
【0018】
選択的に、前記第1のターゲット動き状態は第1の画面座標を含み、前記ターゲット状態変化情報は第1の速度を含む。前記動き状態決定ユニットは、前記ターゲット画像フレームと前記次の画像フレームとの時間差分値を決定するステップを実行するように構成される時間差分値決定サブユニットと、前記第1の画面座標、前記第1の速度及び前記時間差分値に基づいて、前記次の画像フレームにおける前記第1のターゲット粒子領域の第2の画面座標を決定し、前記第2のターゲット動き状態とするステップを実行するように構成される第1の動き状態決定サブユニットと、を含む。
【0019】
選択的に、前記動き状態更新ユニットは、前記第2の画面座標が前記髪領域の外にある場合、前記テクスチャ画像の髪領域を再決定し、新たに決定された髪領域に対応する粒子領域から第2のターゲット粒子領域を決定するステップを実行するように構成される粒子領域決定サブユニットと、前記テクスチャ画像から前記第2のターゲット粒子領域の参照ターゲット動き状態と参照ターゲット状態変化情報を取得するステップを実行するように構成される状態情報取得サブユニットと、前記参照ターゲット動き状態と前記参照ターゲット状態変化情報に基づいて、前記次の画像フレームにおける前記第2のターゲット粒子領域の動き状態を決定し、第3のターゲット動き状態を得るステップを実行するように構成される第2の動き状態決定サブユニットと、前記第3のターゲット動き状態に基づいて前記テクスチャ画像における動き状態を更新するステップを実行するように構成される動き状態更新サブユニットと、を含む。
【0020】
選択的に、前記第1のターゲット動き状態は第2の速度を含み、前記ターゲット状態変化情報は髪方向角を含む。前記動き状態決定ユニットは、予め設定されたレートを取得するステップを実行するように構成されるレート取得サブユニットと、前記第2の速度、前記髪方向角および前記レートに基づいて、前記次の画像フレームにおける前記第1のターゲット粒子領域の第3の速度を決定し、前記第2のターゲット動き状態を得るステップを実行するように構成される第3の動き状態決定サブユニットと、を含む。
【0021】
選択的に、前記髪のレンダリング装置は、前記ターゲットビデオにおける、経時的に変化するピクセル状態情報に基づいて、前記ターゲット画像フレームにおける各ピクセルポイントの候補状態変化情報を決定するステップを実行するように構成される状態変化情報決定ユニットと、前記ターゲット画像フレームに対応する髪方向図と髪領域マスクマップを取得するステップを実行するように構成される画像取得ユニットであって、前記髪方向図に前記各ピクセルポイントの髪方向角が含まれ、前記髪領域マスクマップに前記ターゲット画像フレームにおける髪領域のマスク情報が含まれる画像取得ユニットと、前記髪方向図における髪方向角と前記髪領域マスクマップにおけるマスク情報に基づいて、前記各ピクセルポイントの候補動き状態を決定するステップを実行するように構成される候補動き状態決定ユニットと、前記候補状態変化情報と前記候補動き状態を前記少なくとも1つの粒子領域の頂点位置に記憶するステップを実行するように構成される候補動き状態記憶ユニットであって、前記少なくとも1つの粒子領域の頂点位置が前記各ピクセルポイントに対応する候補動き状態記憶ユニットと、をさらに含む。
【0022】
選択的に、前記髪のレンダリング装置は、テクスチャ画像を第1のフレームバッファに記憶するステップを実行するように構成される第1の画像記憶ユニットと、第1のフレームバッファ内のテクスチャ画像を第2のフレームバッファに記憶するステップを実行するように構成される画像転写ユニットと、更新後の前記テクスチャ画像を前記第1のフレームバッファに記憶するステップを実行するように構成される第2の画像記憶ユニットと、をさらに含む。
【0023】
選択的に、前記髪のレンダリング装置は、前記テクスチャ画像における髪領域を決定するステップを実行するように構成される領域決定ユニットと、予め決定された粒子束の数に基づいて前記髪領域をグリッド分割し、対応する少なくとも1つの粒子束を得るステップを実行するように構成される領域分割ユニットと、予め決定された粒子の数に基づいて前記少なくとも1つの粒子束をそれぞれグリッド分割し、対応する少なくとも1つの粒子領域を得るステップを実行するように構成される粒子束分割ユニットと、をさらに含む。
【0024】
選択的に、前記髪のレンダリング装置は、前記少なくとも1つの粒子束における設定位置にある粒子領域を、前記第1のターゲット粒子領域として決定するステップを実行するように構成される粒子領域決定ユニットをさらに含む。
【0025】
本開示の実施例に係る第3の態様によれば、電子機器を提供し、前記電子機器は、プロセッサと、前記プロセッサによって実行可能な命令を記憶するメモリと、を含み、ここで、前記プロセッサは、上記に記載の髪のレンダリング方法を実現するために、前記命令を実行するように構成される。
【0026】
本開示の実施例に係る第4の様態によれば、記憶媒体を提供し、前記記憶媒体における命令が電子機器のプロセッサによって実行される場合、前記電子機器が上記に記載の髪のレンダリング方法を実行できるようにする。
【0027】
本開示の実施例に係る第5の態様によれば、コンピュータプログラムを提供し、前記コンピュータプログラムは、読み取り可能な記憶媒体に記憶されており、電子機器の少なくとも1つのプロセッサは、前記読み取り可能な記憶媒体から前記コンピュータプログラムを読み取り、実行し、電子機器が上記の実施例に記載の髪のレンダリング方法を実行する。
【発明の効果】
【0028】
本開示の実施例によって提供される技術案は、少なくとも以下の有益な効果をもたらす。髪情報が含まれるターゲットビデオに基づいてターゲット画像フレームのテクスチャ画像を取得し、当該テクスチャ画像はGPUによって処理することができる。当該テクスチャ画像における髪領域は少なくとも1つの粒子領域に分割され、GPUによる粒子領域の処理を実現するとともに、GPUのグラフィック処理効率を大幅に簡素化することができ、モバイル端末での演算を実現する。また、テクスチャ画像からターゲット粒子領域の第1のターゲット動き状態とターゲット状態変化情報を取得し、これによって次の画像フレームにおける第1のターゲット粒子領域の第2のターゲット動き状態を決定し、第2のターゲット動き状態に基づいてテクスチャ画像における動き状態を更新して、髪領域に対するレンダリングを実現する。本開示の上記の技術案によれば、モバイル端末で髪領域をリアルタイムにレンダリングすることを実現するとともに、特定の粒子領域の動き状態を修正することができ、粒子が髪の毛の方向に流れるレンダリング特殊効果を実現することができる。
【0029】
なお、上記一般的な説明及び後文の詳細な説明は、単なる例示的及び解釈的なものであり、本開示を限定するものではない。
【図面の簡単な説明】
【0030】
ここでの図面は、明細書に組み込まれ、本明細書の一部として構成され、本開示に適合する実施例を示し、本開示の原理を説明するために明細書とともに使用され、本開示に対する不当な限定を構成するものではない。
【
図1】例示的な実施例に係る髪のレンダリング方法の適用環境図である。
【
図2】例示的な実施例に係る髪のレンダリング方法のフローチャートである。
【
図3】例示的な実施例に係る粒子束の概略構成図である。
【
図4】例示的な実施例に係る髪のレンダリングの概略表示図である。
【
図5】別の例示的な実施例に係る髪のレンダリング方法のフローチャートである。
【
図6】例示的な実施例に係る髪のレンダリング装置のブロック図である。
【発明を実施するための形態】
【0031】
本開示の技術案を当業者がよりよく理解するために、以下に添付の図面と併せて、本開示の実施例の技術案を明確かつ完全に説明する。
【0032】
なお、本開示の明細書及び特許請求の範囲及び上記図面における「第1」、「第2」などの用語は、特定の順序や優先順位を説明する必要なく、類似のオブジェクトを区別するためのものである。このようにして使用されるデータは、本明細書で説明される本開示の実施例が、本明細書で図示または説明されるもの以外の順序で実施できるように、適切な場合に交換可能であることを理解されたい。以下の例示的な実施例に記載の実施形態は、本開示と一致する全ての実施形態を表すものではない。むしろ、それらは、添付の特許請求の範囲に詳細に記載された、本開示のいくつかの態様に一致する装置及び方法の例にすぎない。
【0033】
本開示によって提供される髪のレンダリング方法は、
図1に示す装置100に応用されることができる。装置100は、携帯電話、コンピュータ、デジタル放送端末、メッセージングデバイス、ゲームコンソール、タブレットデバイス、医療機器、フィットネス機器、パーソナルデジタルアシスタントなどのモバイル端末であってもよい。
【0034】
図1を参照すると、装置100は、処理コンポーネント101、メモリ102、電源コンポーネント103、マルチメディアコンポーネント104、オーディオコンポーネント105、入力/出力(I/O)のインターフェース106、センサコンポーネント107、および通信コンポーネント108、1つまたは複数のコンポーネントを含むことができる。これらのコンポーネントについて、以下通りに説明する。
【0035】
処理コンポーネント101は、通常、表示、電話の呼び出し、データ通信、カメラ操作、及び記録操作に関連する操作のような装置100の全体の操作を制御する。処理コンポーネント101は、上記方法の全てまたは一部のステップを完成するために、命令を実行するための1つまたは複数のプロセッサ109を含むことができる。また、処理コンポーネント101は、他のコンポーネントとのインタラクションの処理を容易にするために、1つまたは複数のモジュールを含むことができる。例えば、処理コンポーネント101は、マルチメディアコンポーネント104と処理コンポーネント101とのインタラクションを容易にするために、マルチメディアモジュールを含むことができる。
【0036】
メモリ102は、装置100上の操作をサポートするために、様々なタイプのデータを記憶するように構成される。これらのデータの例は、装置100で操作するためのあらゆるアプリケーションプログラムまたは方法の命令、連絡先データ、電話帳データ、メッセージ、画像、ビデオなどを含む。メモリ102は、スタティックランダムアクセスメモリ(SRAM)、電気的消去可能プログラマブル読み出し専用メモリ(EEPROM)、消去可能プログラマブル読み出し専用メモリ(EPROM)、プログラマブル読み出し専用メモリ(PROM)、読み出し専用メモリ(ROM)、磁気メモリ、フラッシュメモリ、磁気ディスク、または光ディスクのような、あらゆるタイプの揮発性または不揮発性の記憶装置またはそれらの組み合わせによって実現されてもよい。
【0037】
電源コンポーネント103は、装置100の各種類のコンポーネントのために電力を提供する。電力コンポーネント103は、電源管理システム、1つまたは複数の電源、および他の装置100のために電力を生成し、管理し、割り当てることに関連するコンポーネントを含むことができる。
【0038】
マルチメディアコンポーネント104は、前記装置100とユーザとの間の出力インターフェースを提供するスクリーンに含まれる。いくつかの実施例では、スクリーンは、液晶ディスプレイ(LCD)とタッチパネル(TP)を含むことができる。スクリーンがタッチパネルを含む場合、スクリーンは、ユーザからの入力信号を受信するように、タッチスクリーンとして実現されることができる。タッチパネルには、タッチ、スライド、タッチパネルのジェスチャーを感知するように、1つまたは複数のタッチセンサが含まれる。前記タッチセンサは、タッチまたはスライド動作の境界を感知するだけでなく、タッチまたはスライド操作に関連する持続時間と圧力を検出することができる。いくつかの実施例では、マルチメディアコンポーネント104は、1つのフロントカメラおよび/またはバックカメラを含む。装置100が撮影モードやビデオモードなどの操作モードにある場合、フロントカメラおよび/またはバックカメラは、外部のマルチメディアデータを受信することができる。各フロントカメラおよびバックカメラは、1つの固定的な光学レンズシステムであってもよく、または焦点距離と光学ズーム能力を備えてもよい。
【0039】
オーディオコンポーネント105は、オーディオ信号を出力および/または入力するように構成される。例えば、オーディオコンポーネント105は、装置100が呼び出しモード、記録モード、および音声認識モードのような操作モードにある場合、外部オーディオ信号を受信するように構成されるマイクロフォン(MIC)を含む。受信されたオーディオ信号は、さらにメモリ102に記憶されてもよく、または通信コンポーネント108を介して送信されてもよい。いくつかの実施例では、オーディオコンポーネント105は、オーディオ信号を出力するための1つのスピーカをさらに含む。
【0040】
I/Oインターフェース106は、処理コンポーネント101と周囲インターフェースモジュールとの間のインターフェースを提供し、上記の周囲インターフェースモジュールはキーボード、クリックホイール、ボタンなどであってもよい。これらのボタンは、ホームボタン、音量ボタン、スタートボタン、およびロックボタンを含むことができるが、これらに限定されない。
【0041】
センサコンポーネント107は、装置100に様々な態様の状態評価を提供するように、1つまたは複数のセンサを含む。例えば、センサコンポーネント107は、装置100のオン/オフ状態、コンポーネントの相対的な位置決めを検出でき、例えば、前記コンポーネントは装置100のディスプレイおよびキーパッドであり、センサコンポーネント107は、さらに、装置100または装置100の1つのコンポーネントの位置変化、ユーザと装置100との接触が存在するか存在しないか、装置100の方位または加速/減速および装置100の温度変化を検出することができる。センサコンポーネント107は、任意の物理的接触がない場合、付近の物体の存在を検出するように構成される近接センサを含むこともできる。センサコンポーネント107は、イメージングアプリケーションに使用されるCMOSまたはCCDイメージセンサのような光センサをさらに含むことができる。いくつかの実施例では、当該センサコンポーネント107は、加速度センサ、ジャイロセンサ、磁気センサ、圧力センサ、または温度センサをさらに含むことができる。
【0042】
通信コンポーネント108は、端末100と他の装置との間の有線または無線方式の通信を容易にするように構成される。装置100は、通信規格に基づく無線ネットワーク、例えばWiFi、オペレータネットワーク(2G、3G、4Gまたは5G)、またはこれらの組み合わせにアクセスすることができる。例示的な実施例では、通信コンポーネント108は、ブロードキャストチャネルを介して外部ブロードキャスト管理システムからのブロードキャスト信号またはブロードキャスト関連情報を受信する。例示的な実施例では、前記通信コンポーネント108は、短距離通信を容易にするために、近距離通信(NFC)モジュールをさらに含む。例えば、NFCモジュールは、無線周波数認識(RFID)技術、赤外線データ協会(IrDA)技術、超広帯域(UWB)技術、ブルートゥース(BT)技術、および他の技術に基づいて実現されてもよい。
【0043】
例示的な実施例では、装置100は、上記方法を実行するように、専用集積回路(ASIC)、デジタル信号プロセッサ(DSP)、デジタル信号処理装置(DSPD)、プログラマブルロジックデバイス(PLD)、フィールドプログラマブルゲートアレイ(FPGA)、コントローラ、マイクロコントローラ、マイクロプロセッサ、または他の電子部品のような1つまたは複数のアプリケーションによって実現されてもよい。
【0044】
図2は、例示的な実施例に係る髪のレンダリング方法のフローチャートである。髪のレンダリング方法は、
図1に示す装置100に使用することができる(
図1のプロセッサ109にも具体的に使用することができ、より具体的には、装置100のGPUにも応用することができる)、
図2に示すように、以下のステップS201/S202/S203/S204/S205を含み、以下の通りに詳細に説明する。
【0045】
ステップS201において、髪情報が含まれるターゲットビデオを取得し、前記ターゲットビデオの画像フレームからターゲット画像フレームを選択する。
【0046】
ターゲットビデオは、撮影装置により人体(動物体であってもよい)の頭部を収集して得られたものであってもよい。撮影装置は、装置100上のセンサコンポーネント107であってもよいし、装置100とネットワーク接続関係があるカメラであってもよい。ターゲットビデオに含まれる髪情報は、髪領域の位置、髪領域の大きさ、髪領域のリアルタイム位置、髪色、髪の毛の長さ、髪の毛の方向などの情報を指すことができる。
【0047】
カメラは、設定された時間帯の髪情報が含まれるターゲットビデオを撮影し、撮影して得られたターゲットビデオを装置100(または装置100のプロセッサに直接送信する)に送信することができ、プロセッサによって髪のレンダリングを行う。さらに、カメラは、ターゲットビデオを予め撮影し、撮影されたターゲットビデオを装置100に一緒に送信してもよく、撮影中にターゲットビデオをリアルタイムにプロセッサに送信してもよい。
【0048】
さらに、ターゲットビデオの各タイミングには画像フレームが対応し、装置100は、一回の髪のレンダリングプログラムにおいて、そのうちのいずれかまたはいくつかの画像フレームに対して髪のレンダリング処理を行うことができ、前記いずれかまたはいくつかの画像フレームは、ターゲット画像フレームとして理解することができる。ターゲット画像フレームは、ターゲットビデオからランダムに選択された画像フレームであってもよく、時間順に選択された互いに連続するいくつかの画像フレームであってもよい。
【0049】
ステップS202において、前記ターゲット画像フレームのテクスチャ画像を取得し、前記テクスチャ画像が、前記ターゲット画像フレームにおけるピクセルポイントの動き状態と状態変化情報を記録するテクスチャフォーマットの画像であり、前記テクスチャ画像における髪領域が、グリッド線で少なくとも1つの粒子領域に分割される。
【0050】
テクスチャフォーマットはGPUによって識別可能なピクセルフォーマットであり、本開示の実施例のテクスチャ画像はテクスチャフォーマットの画像であり、さらに、テクスチャ画像は直接「テクスチャ」と略称することもでき、half float(半浮動小数点)またはfloat(浮動小数点)型のテクスチャ画像であってもよい。
【0051】
本ステップにおいて、ターゲット画像フレームのテクスチャ画像を取得し、装置100内のGPUにより当該テクスチャ画像を処理する。ターゲット画像フレームにおける各ピクセルポイントの色に基づいてテクスチャ画像における髪領域を決定することができ、例えば、設定値よりも面積が大きい黒領域を髪領域として決定し、さらにテクスチャ画像内に髪領域を表すために、対応する情報をテクスチャ画像の対応するグリッドに補填する。もちろん、髪領域を決定するプロセスも機械学習で実現することができ、例えば、複数の髪情報が含まれるビデオを予め構築されたニューラルネットワークモデルに入力し、同時に当該ニューラルネットワークモデルに、各ビデオの各画像フレームに対応する髪領域情報を入力し、当該ニューラルネットワークモデルは、入力された情報で自己学習し、トレーニングプロセスを完了させ、トレーニング終了後にカメラで撮影されたターゲットビデオをニューラルネットワークモデルに入力すると、ニューラルネットワークモデルは、当該ターゲットビデオにおける各画像フレームの髪領域を自動的に出力することができる。
【0052】
さらに、テクスチャ画像における髪領域は、少なくとも1つの粒子領域に分割され(場合によっては、髪領域の外の他の領域をグリッド分割することもでき、対応する粒子領域を得る)、その粒子領域は、装置100を介してテクスチャ画像を取得した後に分割して得られてもよく、装置100の外部デバイスや装置100内のプロセッサ以外の他のコンポーネントを介して分割して得られてもよい(例えば、装置100上のセンサコンポーネントで分割して得ることができる)。さらに、設定数のグリッド線に従ってテクスチャ画像に対応する髪領域を分割し、分割して得られたグリッドに基づいて粒子領域を決定することができる。髪の毛の分布に基づいてテクスチャ画像を分割することもでき、例えば、各毛束(髪の毛間の距離が十分に小さい)を粒子領域として決定する。また、テクスチャ画像における粒子領域の数は実際の状況に応じて決定することができ、髪領域をより正確にレンダリングする必要がある場合、粒子領域の数をより大きい値であってもよく、髪領域をより粗いレンダリングする必要がある場合、粒子領域の数はより小さな値であってもよい。
【0053】
さらに、ターゲット画像フレームは、装置100の表示画面に表示される画像フレームであってもよく、すなわち、テクスチャ画像は、現在、表示画面で表示されている画像フレームの粒子情報を記録し、その粒子情報は、ターゲット画像フレームにおける各ピクセルポイント(各ピクセルポイントに対応する粒子領域を有することができる)の運動状態及び状態変化情報である。動き状態は、対応する画像フレームにおける粒子の状態であり、位置情報、速度情報(レートと方向を含む)、髪方向角、サイズなどであってもよい。状態変化情報は、その粒子の状態変化を説明する情報を指すことができ、次の隣接画像フレームにおけるその粒子の動き状態を表すことができ、速度、髪方向角、回転方向、ライフサイクルなどであってもい。なお、一部の粒子情報は、動き状態であってもよく、状態変化情報であってもよい。例えば、速度は、ある画像フレームのレートと方向情報(この時に動き状態とすることができる)を表すこともできるし、当該画像フレームの移動状態を表すこともできる(この時に状態変化情報とすることができ、それは時間情報と結合して粒子の移動距離を決定し、さらに粒子の位置座標を決定することができる)。具体的には、次の画像フレームにおける粒子の位置を算出する必要がある場合、速度は、次の時点での粒子の位置を評価することができ、この時に位置情報は動き状態とすることができ、速度は状態変化情報とすることができる。次の画像フレームにおける粒子の速度を算出する必要がある場合、レートは粒子の次の時点での速度を評価することができ、この時に速度は動き状態とすることができ、レートは状態変化情報とすることができ、上記の場合、速度は、動き状態としてもよく、状態変化情報としてもよい。
【0054】
例示的な実施例では、テクスチャ画像における記憶チャネルが限られているため、1枚のテクスチャ画像が動き状態または状態変化情報を記憶するのに不足している場合、2枚のテクスチャ画像によって記憶することができる。例えば、4つのチャンネルしかないテクスチャ画像に対して、位置情報、速度情報(レートと方向を含む)、髪方向角、回転方向、ライフサイクル、サイズなどの次元の情報を2枚のテクスチャ画像によって記憶することができる。
【0055】
ステップS203において、前記テクスチャ画像から第1のターゲット粒子領域の第1のターゲット動き状態とターゲット状態変化情報を取得し、前記第1のターゲット粒子領域が前記少なくとも1つの粒子領域のいずれか1つの領域である。
【0056】
テクスチャ画像における各粒子にはそれぞれの番号が付けられていてもよく、各粒子の粒子情報はテクスチャ画像の各粒子領域に記憶される。ターゲット粒子領域はテクスチャ画像の各粒子領域からランダムに選択することもでき、特定のルールに従って選択することもできる(例えば、特定の位置の粒子領域を選択する)。さらに、ターゲット粒子領域に記録された粒子情報によって対応するターゲット動き状態と状態変化情報、すなわち第1のターゲット動き状態とターゲット状態変化情報を得ることができる。
【0057】
S203の具体的な実現プロセスは以下の通りであってもよい。前記テクスチャ画像から前記ターゲット粒子の画面座標、速度、方向角、回転姿勢、現在のライフ状態、ライフサイクル、サイズの少なくとも1つを取得し、取得された情報に基づいて第1のターゲット動き状態とターゲット状態変化情報(現在更新すべきの動き状態に基づいて対応するターゲット状態変化情報を決定することができる)を得ることができる。
【0058】
例示的な実施例では、前記ターゲット画像フレームのテクスチャ画像を取得するステップの後に、前記テクスチャ画像における髪領域を決定するステップと、予め決定された粒子束の数に基づいて前記髪領域をグリッド分割し、対応する少なくとも1つの粒子束を得るステップと、予め決定された粒子の数に基づいて前記少なくとも1つの粒子束をそれぞれグリッド分割し、対応する少なくとも1つの粒子領域を得るステップと、をさらに含む。
【0059】
粒子束の数は髪領域に含まれる粒子束の数を表し、この数は、画面解像度、レンダリング精度などに基づいて決定することができる。粒子の数は粒子束に含まれる粒子領域の数を表し、この数は、画像解像度、レンダリング精度などに基づいて決定することもできる。さらに、数を知った後、等間隔(もちろん、間隔は不等であってもよい)であるグリッド線に従って髪領域または粒子束を分割することができ、また、横方向の分割を行ってもよく、縦方向の分割を行ってもよく、横方向分割と縦方向分割との結合(横方向の分割と縦方向の分割の両方を行い、この場合の横方向と縦方向の分割間隔は同じであってもよいし、異なってもよい)であってもよく、さらには、画面の水平線と一定の角度(例えば30°)をなす線に従って分割してもよい。
【0060】
テクスチャ画像の概略図は、
図3に示すように、
図3の左側には、髪の輪郭(太い実線)と顔の輪郭(細い実線)が含まれる女の子の頭の輪郭が示されており、この2つの輪郭はそれぞれ髪領域301と顔領域302を構成する。さらに、髪領域は複数の粒子束に分割され、
図3のように太い破線で囲まれた1つの方眼領域303が1つの粒子束として理解することができる。さらに、これらの粒子束は、複数の小領域にも分割されることができ、これらの小領域は、第1のターゲット粒子領域304(髪粒子または粒子と呼ぶこともでき、その具体的な分割状況は、
図3の右側の拡大図を参照することができる)と呼ぶことができる。
【0061】
なお、
図3は、テクスチャ画像全体をグリッド分割し、実際のアプリケーションシーンでは、髪領域のみ(または髪領域と顔領域のみ)を分割することができる。さらに、1つのビデオに複数のフレームが含まれ、ヘッドの位置が変化する可能性があるため、各フレームにおける髪領域も変化し、そのため、1枚のテクスチャ画像を取得した後、髪領域を再決定して髪領域をグリッド分割することができる。
【0062】
例示的な実施例では、前記テクスチャ画像から前記少なくとも1つの粒子領域内の第1のターゲット粒子領域の第1のターゲット動き状態とターゲット状態変化情報を取得するステップの前に、前記少なくとも1つの粒子束における設定位置にある粒子領域を、前記第1のターゲット粒子領域として決定するステップをさらに含む。
【0063】
設定位置は、ある粒子束における中央位置、ヘッダ位置(1番目の番号の位置)、末尾位置(最後の番号の位置)などにある粒子領域であってもよい。
【0064】
さらに、本開示の実施例では、粒子束の複数の粒子領域からターゲット粒子領域(
図3の304のように)を選択し、その選択方法は、ランダムに選択することであってもよいし、中央またはエッジ位置の粒子をターゲット粒子として選択することであってもよい。いくつかの実施例では、ターゲット粒子領域はヘッダ粒子(その粒子はレンダリング中に他の粒子を動かして移動させるという役割を果す)とも呼ばれることができる。別の態様では、同じテクスチャ画像における異なる粒子束においてターゲット粒子を選択する方法は、一致していてもよく、一致していなくてもよい。一致していない場合を例として、その実現形態は以下の通りである。ある粒子束におけるエッジ位置にある粒子領域をターゲット粒子領域として選択し、別の粒子束において中央位置にある粒子領域をターゲット粒子領域として選択することができる。また、1つの粒子束に対応するターゲット粒子領域の数は、1つ、2つまたは複数であってもよい。さらに、ターゲット粒子領域は、髪領域におけるすべての粒子束において選択されたターゲット粒子領域であってもよいし、一部またはある粒子束において選択されたターゲット粒子領域であってもよい。テクスチャ画像における髪領域を分割し、そのうちの特定の粒子領域に対して動き状態の更新を行うことができ、これにより、これらの粒子領域が最終的に表示されるビデオ内で、徐々に変化し、粒子が髪の毛方向に流れるレンダリング特殊効果になっている。
【0065】
ステップS204において、前記第1のターゲット動き状態と前記ターゲット状態変化情報に基づいて、次の画像フレームにおける前記第1のターゲット粒子領域の第2のターゲット動き状態を決定し、前記次の画像フレームが前記ターゲットビデオにおける前記ターゲット画像フレームの次のフレーム画像である。
【0066】
次の画像フレームは、次の時点でのターゲット画像フレームの画像フレームであり、当該「次の時刻」における時刻は、フレームサンプリングレートに基づいて決定することができ、1minで60個の画像フレーム[1秒(s)ごとに1個の画像フレームがある]が含まれることを例とすると、フレームサンプリングレートが5s/フレームである場合、次の画像フレームとターゲット画像フレームとの間に4つの画像フレームが置かれており、一方、フレームサンプリングレートが1s/フレームである場合、次の画像フレームとターゲット画像フレームとの間に0個の画像フレーム(すなわち、両者が隣接する)が置かれている。したがって、実際の状況に応じる画像フレームの選択を調整することができ、例えば、レンダリング精度に対する要件が高い場合、フレームサンプリングレートは高い値を取ることができ(この場合はより多くの画像フレームを処理する必要がある)、一方、レンダリング精度に対する要件が低い場合、フレームサンプリングレートは低い値を取ることができる。
【0067】
第1のターゲット動き状態はターゲット画像フレームにおける第1のターゲット粒子領域の動き状態を表し、ターゲット状態変化情報は、ターゲット画像フレームにおける第1のターゲット粒子領域の状態変化に与える影響を表すため、両者を互いに結合することにより、次の画像フレームにおける第1のターゲット粒子領域の動き状態を知り、すなわち第2のターゲット動き状態を得ることができる。例えば、テクスチャ画像には、第1のターゲット粒子領域の位置座標が(2、2)であり、その速度方向が画面水平線(x軸と記載できる)の正方向36.87°であり、速度値が5mm/sであるという粒子情報が含まれ、位置座標が第1のターゲット動き状態であり、速度方向と速度値がターゲット状態変化情報であり、上記の情報に基づいて、第1のターゲット粒子領域がターゲット画像フレームから次の画像フレーム(ターゲット画像フレームと次の画像フレームとの間隔時間を1sとすることを例とする)までx軸正方向に3mm、y軸方向に4mm移動したことを決定することができ、したがって、次の画像フレームにおける第1のターゲット粒子領域の位置座標が(5、6)であると決定し、すなわち第2のターゲット動き状態が得られることができる。
【0068】
ステップS205において、前記第2のターゲット動き状態に基づいて前記テクスチャ画像における動き状態を更新して、前記髪領域をレンダリングする。
【0069】
テクスチャ画像における動き状態を更新することは、テクスチャ画像における第1のターゲット動き状態を第2のターゲット動き状態に直接切り替えるものとして理解することができる。
【0070】
装置100の表示画面には、開始直後にテクスチャ画像に基づいてターゲット画像フレームを表示し、テクスチャ画像を更新した後、表示画面に対応する次の画像フレームを表示することができ、この時、画面における第1のターゲット粒子領域の動き状態として、第1のターゲット動き状態から第2のターゲット動き状態に変化し、すなわち、髪領域内で特定の粒子が流れるレンダリング効果を実現する。
【0071】
さらに、ターゲット画像フレームと次の画像フレームの切り替えが完了したことにより、髪領域のレンダリングが完了したと考えられる。次に、新しいレンダリングを続けることができる。
【0072】
上記髪のレンダリング方法では、髪情報が含まれるターゲットビデオに基づいてターゲット画像フレームのテクスチャ画像を取得し、当該テクスチャ画像はGPUによって処理することができる。当該テクスチャ画像における髪領域は少なくとも1つの粒子領域に分割され、GPUによる粒子領域の処理を実現するとともに、GPUのグラフィック処理効率を大幅に簡素化することができ、モバイル端末での演算を実現する。また、テクスチャ画像からターゲット粒子領域の第1のターゲット動き状態とターゲット状態変化情報を取得し、これによって次の画像フレームにおける第1のターゲット粒子領域の第2のターゲット動き状態を決定し、第2のターゲット動き状態に基づいてテクスチャ画像における動き状態を更新して、髪領域に対するレンダリングを実現する。本開示の上記の技術案によれば、モバイル端末で髪領域をリアルタイムにレンダリングすることを実現するとともに、特定の粒子領域の動き状態を修正することができ、粒子が髪の毛の方向に流れるレンダリング特殊効果を実現することができる。
【0073】
例示的な実施例では、前記第2のターゲット動き状態に基づいて前記テクスチャ画像における動き状態を更新するステップは、前記第2のターゲット動き状態に基づいて前記第1のターゲット粒子領域の動き状態を更新し、残りの粒子領域(末尾粒子領域または末尾粒子とも呼ばれる)の動き状態を保持するステップを含み、前記残りの粒子領域が、前記少なくとも1つの粒子領域内の前記第1のターゲット粒子領域を除去する粒子領域である。
【0074】
図3の303の拡大図に示すように、粒子束における第1のターゲット粒子領域304を除いた粒子の全部または一部は、
図3の305に示すように、残りの粒子領域と見なすことがでる。例示的な実施例では、第1のターゲット粒子領域と残りの粒子領域を決定するプロセスは以下の通りである。粒子情報を記憶するテクスチャ画像の解像度をW*Hとし、粒子のW、H方向の分布をそれぞれm、n個とすると、合計粒子数はm*nであり、m<=W、n<=Hである。各粒子束をK個の粒子で構成し、H方向をn/K個の格子に分割すると、各格子は粒子束の情報を記憶する。各格子をK個のサブ区間k(i)に分割し、iの取り得る値の範囲が0~K-1であり、k(0)が、粒子束のターゲット粒子(すなわち、ヘッダ粒子)である、k(1)~k(K-1)が粒子束の残りの粒子(すなわち末尾粒子)である。W/H/m/n/K/kの数は実際の状況に応じて決定することができる。
【0075】
本実施例では、次の画像フレームにおける残りの粒子領域の動き状態は、ターゲット画像フレームの動き状態をそのまま使用し、一方、第1のターゲット粒子領域の動き状態はリアルタイムに更新され、これにより、表示画面に表示される状態は、第1のターゲット粒子領域の状態が変化し、残りの粒子領域の状態が変化しない。このようにして、ターゲット画像フレームを表示した後に次の画像フレームを表示することで、「ストリーキング」という効果を形成することができ、ゲームなどで「ストリーキング」という効果を形成する必要があるシーンにおいて適用性が高い。
図4に示すように、ターゲット画像フレームの髪領域の表示概略図を
図4(a)に示すようにしてもよい(表示時にグリッド線を表示しなくてもよい)、髪の毛の状態をはっきり見ることができる。レンダリング処理後、ストリーキングレンダリングのあるヘア髪領域は
図4(b)に示すように、
図4(b)のグレー領域401は、第1のターゲット粒子領域であってもよい、第1のターゲット粒子領域がフレーム切り替え中で動きによって髪の毛がぼかし、他の領域の粒子状態が変わらくても髪の毛がはっきり見えるため、粒子束が髪の毛の方向に流れることと、「ストリーキング」というレンダリング効果を実現する。
【0076】
例示的な実施例では、次の画像フレームにおける残りの粒子領域の動き状態は、ターゲット画像フレームにおける対応する参照残りの動き状態を採用しなくてもよく、第2のターゲット動き状態の決定方法に従って候補残りの動き状態を得て、候補残りの動き状態と参照残りの動き状態との差分値を決定し、当該差分値に一定の割合(例えば、30%)を乗算した後、参照残りの動き状態と加算して、次の画像フレームにおける残りの粒子領域の動き状態を得て、このような処理により、レンダリング中に残りの粒子にも状態変化が発生し、その変化幅がターゲット粒子ほど大きくなく、「ストリーキング」という効果を生成しながら、髪の流動性をより自然なものにすることができる。
【0077】
さらに、例示的な実施例では、シーンの必要に応じてターゲット粒子領域や残りの粒子領域に対してカラーレンダリング(例えば、黒い粒子を金色の粒子に変更するなど)などの操作を行うことができる。
【0078】
例示的な実施例では、前記第1のターゲット動き状態は第1の画面座標を含み、前記ターゲット状態変化情報は第1の速度を含む。前記第1のターゲット動き状態と前記ターゲット状態変化情報に基づいて、次の画像フレームにおける前記第1のターゲット粒子領域の第2のターゲット動き状態を決定するステップは、前記ターゲット画像フレームと前記次の画像フレームとの時間差分値を決定するステップと、前記第1の画面座標、前記第1の速度及び前記時間差分値に基づいて前記次の画像フレームにおける前記第1のターゲット粒子領域の第2の画面座標を決定し、前記第2のターゲット動き状態とするステップと、を含む。
【0079】
ターゲット画像フレームと次の画像フレームとの時間差分値は、上記の実施例に係るフレームサンプリングレートに基づいて決定することができ、さらに、あるアプリ製品が設定された特殊効果フレームレートが30fpsであるなど、ビデオ特殊効果の全体的なフレームレートで決定することができ、隣接画像フレーム間の時間差分値(delta_t)は、約1000/30=33msに等しく、ターゲット画像フレームと次の画像フレームが隣接画像フレームである場合、両者の時間差分値は33msである。
【0080】
画面座標は、装置100の表示画面における第1のターゲット粒子領域の頂点の位置座標と理解することができる。
【0081】
さらに、第1のターゲット粒子領域の画面座標を更新することは、第1のターゲット粒子領域の頂点位置を更新し、他の位置を更新しないことであってもよい。
【0082】
本実施例では、第1の画面座標、第1の速度および時間差分値に基づいて次の画像フレームにおける第1のターゲット粒子領域の第2の画面座標を決定し、第2の画面座標を第2のターゲット動き状態とする。動き状態の決定プロセスは簡単で、髪領域のレンダリングの効率を効果的に向上させ、モバイル端末でのリアルタイムレンダリングを実現することができる。
【0083】
さらに、例示的な実施例では、前記第2のターゲット動き状態に基づいて前記テクスチャ画像における動き状態を更新するステップは、前記第2の画面座標が前記髪領域の外にある場合、前記テクスチャ画像の髪領域を再決定し、新たに決定された髪領域に対応する粒子領域から第2のターゲット粒子領域を決定するステップと、前記テクスチャ画像から前記第2のターゲット粒子領域の参照ターゲット動き状態と参照ターゲット状態変化情報を取得するステップと、前記参照ターゲット動き状態と前記参照ターゲット状態変化情報に基づいて前記次の画像フレームにおける前記第2のターゲット粒子領域の動き状態を決定し、第3のターゲット動き状態を得るステップと、前記第3のターゲット動き状態に基づいて前記テクスチャ画像における動き状態を更新するステップと、を含む。
【0084】
第2の画面座標を髪領域内の各粒子領域の座標と比較することができ、いずれも一致しない場合、第1の画面座標は髪領域の外にあると見なすことができる。
【0085】
「前記参照ターゲット動き状態と前記参照ターゲット状態変化情報に基づいて前記次の画像フレームにおける前記第2のターゲット粒子領域の動き状態を決定し、第3のターゲット動き状態を得る」ステップは、上記実施例の「前記第1のターゲット動き状態と前記ターゲット状態変化情報に基づいて、次の画像フレームにおける前記第1のターゲット粒子領域の第2のターゲット動き状態を決定する」というプロセスを参照することができ、「前記第3のターゲット動き状態に基づいて前記テクスチャ画像における動き状態を更新する」ステップは、上記実施例の「前記第2のターゲット動き状態に基づいて前記テクスチャ画像における動き状態を更新して、前記髪領域をレンダリングする」というプロセスを参照することができ、本実施例はこれに対して説明を省略する。
【0086】
本実施例では、ターゲット粒子がターゲット画像フレームに対応する髪領域の外にあると決定した場合、ターゲット粒子の動き状態(すなわち、第3のターゲット動き状態)を再決定し、第3のターゲット動き状態に基づいてテクスチャ画像を更新することにより、画面に表示される髪領域の一貫性を確保し、髪領域が突然変形する問題が発生せず、良好な髪表示効果を確保することができる。
【0087】
例示的な実施例では、第3のターゲット動き状態に対応する画面座標が依然として髪領域の外にある場合、引き続き第3のターゲット動き状態と第3のターゲット状態変化情報に基づいて新たな動き状態を決定することができ、決定された画面座標が髪領域にあるまで、このように類推する。もちろん、場合によっては、決定された画面座標(前記第2の画面座標を含む)は、髪領域の外にあり、髪領域のエッジとの間の距離は、予め設定された閾値より小さい(閾値は実際の状況に応じて決定することができ、本開示ではこれを限定しない)、動き状態を再決定するのではなく、第2のターゲット動き状態に基づいてテクスチャ画像を直接更新することもでき、このような処理によって良好な髪表示効果を確保しながら演算量を効果的に削減することができる。
【0088】
例示的な実施例では、前記第1のターゲット動き状態は第2の速度を含み、前記ターゲット状態変化情報は髪方向角を含む。前記第1のターゲット動き状態と前記ターゲット状態変化情報に基づいて、次の画像フレームにおける前記第1のターゲット粒子領域の第2のターゲット動き状態を決定するステップは、予め設定されたレートを取得するステップと、前記第2の速度、前記髪方向角および前記レートに基づいて前記次の画像フレームにおける前記第1のターゲット粒子領域の第3の速度を決定し、前記第2のターゲット動き状態を得るステップと、を含む。
【0089】
なお、第1の速度と第2の速度は、いずれも同じテクスチャ画像におけるあるチャンネルから取得された速度情報であり、その大きさは一致することができる。画面座標を更新する時、速度に基づいて粒子の画面座標を更新する場合、速度は状態変化情報として、速度を更新する場合、速度は動き状態として使用される。
【0090】
レートは速度スカラとも呼ばれ、粒子の流れの速度を制御するために使用され、ユーザによって予め設定されてもよいし、一定のアルゴリズム(例えば、経時的に速度スカラが徐々に小さくなる)によって決定されていてもよい。
【0091】
髪方向角とは、画面水平線x軸の正方向に対する第1のターゲット粒子領域の速度の角度を指すことができ、第1のターゲット粒子領域の動き方向と理解することができ、D(cost、sint)によって表すことができ、tがx軸の正方向に対するターゲット粒子の角度を表し、costとsintがそれぞれx軸とy軸方向における第1のターゲット粒子領域の移動距離の距離成分を表す。
【0092】
さらに、第3の速度は、次の式で計算することができる。
第3の速度=第2の速度+髪方向角*レート
【0093】
第2の速度には速度値と方向角が含まれる。したがって、「第2の速度」と「髪方向角*レート」の合計は、速度値の合計だけでなく、方向角の融合を含むこともできる。
【0094】
別の例示的な実施例では、第2の速度と結合して第3の速度を決定するのではなく、直接髪方向角とレートの積を第3の速度とすることもでき、具体的な計算式は以下の通りである。
【0095】
第3の速度v(u、v)=D(cost、sint)*Vであり、D(cost、sint)が髪方向角であり、Vがユーザによって定義された速レートである。このような処理により、第1のターゲット粒子領域の速度を装置100を介して制御することができ、ユーザの必要に応じて髪の毛の流れの速度を制御することができ、より個性的な髪特殊効果の表示効果を発揮することができる。
【0096】
上記の実施例では、方向角とレートに基づいて次の画像フレームの速度情報を決定し、決定プロセスが簡単で、演算効率を効果的に向上させ、モバイル端末でのリアルタイムレンダリングを実現することができる。
【0097】
例示的な実施例では、前記ターゲット画像フレームのテクスチャ画像を取得するステップの前に、前記ターゲットビデオにおける、経時的に変化するピクセル状態情報に基づいて、前記ターゲット画像フレームにおける各ピクセルポイントの候補状態変化情報を決定するステップと、前記ターゲット画像フレームに対応する髪方向図と髪領域マスクマップを取得するステップであって、前記髪方向図に前記各ピクセルポイントの髪方向角が含まれ、前記髪領域マスクマップに前記ターゲット画像フレームにおける髪領域のマスク情報が含まれるステップと、前記髪方向図における髪方向角と前記髪領域マスクマップにおけるマスク情報に基づいて前記各ピクセルポイントの候補動き状態を決定するステップと、前記候補状態変化情報と前記候補動き状態を前記少なくとも1つの粒子領域の頂点位置に記憶するステップであって、前記少なくとも1つの粒子領域の頂点位置が前記各ピクセルポイントに対応するステップと、をさらに含む。
【0098】
ピクセル状態情報とは、ビデオにおける各ピクセルポイントの色、位置などの状態情報及びピクセルポイントとの間の状態の時間的変化関係を指すことができる(例えば、あるフレームにおいて、あるピクセルポイントP1が真っ黒であり、次のフレームにおいて、その隣接ピクセルポイントP2が真っ黒となり、ピクセルポイントP1が他の色となる)。粒子は1つまたは複数のピクセルポイント(粒子とピクセルポイントとの間にマッピング関係がある)に対応する可能性があり、対応するピクセルポイントのピクセル状態情報に基づいて、各粒子の状態変化情報(例えば、移動速度など)を決定し、候補状態変化情報を得ることができる。
【0099】
髪方向角は髪の毛の方向であり、各粒子の髪方向角tが対応して配列されると、髪方向図が形成される。他の実施例では、髪方向図にcost2tとsin2tの値を記憶することができ(2t角の正弦と余弦の値を記憶するのは、髪方向の同じ直線における曖昧性を防ぐためである)、髪方向角を処理する必要がある場合、以下の式でcostとsintをそれぞれ決定することができる。
cost = sqrt((1+cos2t)/2) * sign(sin2t)
sint = sqrt(1-cost^2)
signが符号関数を表す。
【0100】
さらに、tは以下のようにして決定することができる。Sa.ターゲット画像フレームの階調図を算出する。Sb.階調図の勾配図を算出する。Sc.勾配図に対してぼかし処理を行う。Sd.Scの垂直ベクトルの各ピクセルの方向ベクトルを取り、tを得る。
【0101】
マスクは一連のバイナリコードであり、ターゲットフィールドに対してビットと演算を行い、髪領域のマスク情報は、各粒子が髪領域にあるか否かを表すことができ、各粒子のマスク情報が配列されると、髪領域マスクマップが形成される。
【0102】
ある画像フレームの髪方向図における髪方向角に基づいて各粒子の方向角を得ることができ、ある画像フレームの髪領域マスクマップに基づいて各粒子の位置情報、サイズなどを得ることができ、さらに、隣接画像フレームの髪方向図に結合することで各粒子の回転方向を知ることができ、隣接画像フレームの髪領域マスクマップと結合することで各粒子のライフサイクル(例えば、ある粒子がA画像フレームで生成され、B画像フレームで消えたと決定すると、AとBの間に異なるフレーム数をその粒子のライフサイクルとすることができる)、速度情報(例えば、ある粒子はC画像フレームにおいてc位置にあり、D画像フレームにおいてd位置にあり、c位置とd位置との間の距離とC画像フレームとD画像フレームとの間の時間差に基づいてその粒子の速度情報を決定することができる)を知ることができる。
【0103】
また、ニューラルネットワークモデルを介して、ターゲットビデオ情報か髪方向図と髪領域マスクマップを取得することができる。当該ニューラルネットワークモデルは、CNN(畳み込みニューラルネットワーク)モデルなどであってもよい。
【0104】
上記の実施例では、ターゲットビデオ情報に基づいて、ターゲット画像フレームの候補動き状態と候補状態変化情報を決定し、これらの情報をテクスチャ画像に記憶し、ターゲットビデオを予め処理するプロセスであり、後続の髪のレンダリングプロセスを順序よく行うことを容易にする。
【0105】
例示的な実施例では、前記候補状態変化情報と前記候補動き状態を前記少なくとも1つの粒子領域の頂点位置に記憶するステップの後に、テクスチャ画像を第1のフレームバッファに記憶するステップをさらに含み、前記第2のターゲット動き状態に基づいて前記テクスチャ画像における動き状態を更新するステップの後に、第1のフレームバッファ内のテクスチャ画像を第2のフレームバッファに記憶するステップと、更新後の前記テクスチャ画像を前記第1のフレームバッファに記憶するステップと、をさらに含む。
【0106】
候補状態変化情報と候補動き状態を取得した後、本実施例では、これら2つの情報をテクスチャ画像中における対応する頂点位置に記憶して使用に備える。髪をレンダリングする必要がある場合、テクスチャ画像からターゲット画像フレームに対応する候補状態変化情報と候補動き状態、それぞれターゲット状態変化情報と第1のターゲット動き状態として取得する。
【0107】
本実施例では第1のフレームバッファと第2のフレームバッファという2つのフレームバッファを介してテクスチャ画像を記憶し、第1のフレームバッファに記憶されたテクスチャ画像は、出力とすることができ(すなわち、画面に表示される)、第2のフレームバッファに記憶されたテクスチャ画像は、入力とすることができ、例えば、画像フレームの表示を行う必要がある場合、第1のフレームバッファ内のテクスチャ画像を第2のフレームバッファに入力し、さらに第1のフレームバッファ内のテクスチャ画像に基づいて画像フレームの出力表示を行う。
【0108】
また、第1フレームバッファと第2フレームバッファとは、入出力の切り替えも可能であり、例えば、現在時刻に、第1のフレームバッファ内のテクスチャ画像を出力し、第2のフレームバッファを第1のフレームバッファのバックアップとして次の画像フレームに対応するテクスチャ画像を記憶する。次の時刻に、第2のフレームバッファ内の次の画像フレームに対応するテクスチャ画像を出力し、第1のフレームバッファを第2のフレームバッファのバックアップとして、新たに決定された次の画像フレーム(次の画像フレームの次のフレーム画像)に対応するテクスチャ画像を第1のフレームバッファに記憶する。
【0109】
上記の実施例では、二重バッファによってテクスチャ画像を記憶することにより、テクスチャ画像における情報の入出力の秩序を確保し、データの損失を防ぎ、髪のレンダリングの正確性を確保することができる。
【0110】
例示的な実施例では、
図1に示す装置に応用される髪のレンダリング方法のフローチャートを提供し、
図5に示すように、実現プロセスは以下の通りである。
【0111】
S501、髪方向図&髪領域マスクマップを取得する。
【0112】
S502、二重フレームバッファを用いて粒子情報を読み取ったり書き込んだりする。髪方向図&髪領域マスクマップからターゲット画像フレームの粒子情報を取得し、取得された粒子情報は、粒子の速度、位置、回転姿勢、現在のライフ状態、サイズ、髪の毛方向を含み、取得された粒子情報を2枚のテクスチャを介して記憶し、粒子情報が記録されたテクスチャを第1のフレームバッファに記憶し、別のフレームバッファが第1のフレームバッファをバックアップするために使用される。例えば、位置に対して、その取得プロセスは以下の通りである。2枚のテクスチャを初期化し、全画面でランダムに粒子を生成し、粒子が髪領域内にある場合、その粒子の画面座標をフレームバッファに書き込む。髪の毛方向に対して、髪方向図に記憶されたcos2tとsin2tに基づいてcostとsintを決定し、髪の毛方向D(cost、sint)を得る。
【0113】
S503、ターゲット粒子の速度を更新する。髪の毛方向D(cost、sint)と速度スカラVに基づいて次の画像フレームにおけるターゲット粒子の速度v2(u、v):v2(u、v)=D(cost、sint)*Vを決定し、v2(u、v)に基づいてターゲット画像フレームの速度を更新する。
【0114】
S504、ターゲット粒子の位置を更新する。ターゲット画像フレームの粒子速度v1(u、v)に基づいて次の画像フレームにおけるターゲット粒子の位置P(u、v)=P_prev(u、v)+v1(u、t)*delta_tを決定し、P_prev(u、v)がターゲット画像フレームにおけるターゲット粒子の位置を表し、delta_tが時間の増分を表し、P(u、v)に基づいてP_prev(u、v)を更新する。更新後の粒子位置が髪領領域の範囲を超えた場合、ランダムな粒子位置を画面で再生成し、位置を再決定して位置更新を行う。
【0115】
S505、残りの粒子の状態を一定のままにする。次の画像フレームにおける残りの粒子の速度と位置については、ターゲット画像フレームの速度と位置が使用される。
【0116】
上記の実施例は以下の有益な効果を実現する。
1、髪粒子を粒子束に統合し、髪の乱れを回避し、「ストリーマ」のスムーズなレンダリング効果を実現する。
2、従来技術では、ビデオ特殊効果の大部分の実現は比較的簡単であり、GPU粒子技術の実現は複雑であり、固定的なモデルとして普及するのは比較的難しいため、一般的なニーズは依然として伝統的なcpu計算を使用して粒子システムを実現することである。上記の実施例はGPUを使用して粒子情報の計算を実現し、GPU粒子システムを実現し、粒子システムの計算効率を大幅に向上させ、モバイル端末におけるリアルタイムを実現でき、モバイル端末の髪へのリアルタイムレンダリングを実現する。
【0117】
なお、
図2と
図5のフローチャートの各ステップは矢印の指示に従って順次表示されるが、これらのステップは必ずしも矢印の指示に従って順次実行されるとは限らない。本明細書で明確な説明がない限り、これらのステップの実行には厳格な順序制限はなく、これらのステップは他の順次実行することができる。
図2と
図5のステップの少なくとも一部は、複数のステップ又は複数の段階を含むことができ、これらのステップまたは段階は、必ずしも同じ時刻で実行して完了するものではなく、異なる時刻で実行することができ、これらのステップまたは段階の実行順序も、必ずしも順次実行するものではなく、他のステップまたは他のステップのステップまたはノードの少なくとも一部と交替や交互に実行することができる。
【0118】
図6は例示的な実施例に係る髪のレンダリング装置600のブロック図である。
図6を参照すると、当該装置は、画像フレーム決定ユニット601、テクスチャ画像取得ユニット602、状態情報取得ユニット603、動き状態決定ユニット604及び動き状態更新ユニット605を含む。
【0119】
画像フレーム決定ユニット601は、髪情報が含まれるターゲットビデオを取得し、前記ターゲットビデオの画像フレームからターゲット画像フレームを選択するステップを実行するように構成される。
【0120】
テクスチャ画像取得ユニット602は、前記ターゲット画像フレームのテクスチャ画像を取得するステップを実行するように構成され、前記テクスチャ画像が、前記ターゲット画像フレームにおけるピクセルポイントの動き状態と状態変化情報に対して記録するテクスチャフォーマットの画像であり、前記テクスチャ画像における髪領域が、グリッド線で少なくとも1つの粒子領域に分割される。
【0121】
状態情報取得ユニット603は、前記テクスチャ画像から前記少なくとも1つの粒子領域における第1のターゲット粒子領域の第1のターゲット動き状態とターゲット状態変化情報を取得するステップを実行するように構成される。
【0122】
動き状態決定ユニット604は、前記第1のターゲット動き状態と前記ターゲット状態変化情報に基づいて、次の画像フレームにおける前記第1のターゲット粒子領域の第2のターゲット動き状態を決定するステップを実行するように構成され、前記次の画像フレームが前記ターゲットビデオにおける前記ターゲット画像フレームの次のフレーム画像である。
【0123】
動き状態更新ユニット605は、前記第2のターゲット動き状態に基づいて前記テクスチャ画像における動き状態を更新して、前記髪領域をレンダリングするステップを実行するように構成される。
【0124】
上記の実施例によって提供される髪のレンダリング装置は、髪情報が含まれるターゲットビデオに基づいてターゲット画像フレームのテクスチャ画像を取得し、当該テクスチャ画像はGPUによって処理することができる。当該テクスチャ画像における髪領域は少なくとも1つの粒子領域に分割され、GPUによる粒子領域の処理を実現するとともに、GPUのグラフィック処理効率を大幅に簡素化することができ、モバイル端末での演算を実現する。また、テクスチャ画像からターゲット粒子領域の第1のターゲット動き状態とターゲット状態変化情報を取得し、これによって次の画像フレームにおける第1のターゲット粒子領域の第2のターゲット動き状態を決定し、第2のターゲット動き状態に基づいてテクスチャ画像における動き状態を更新して、髪領域に対するレンダリングを実現する。本開示の上記の技術案によれば、モバイル端末で髪領域をリアルタイムにレンダリングすることを実現するとともに、特定の粒子領域の動き状態を修正することができ、粒子が髪の毛の方向に流れるレンダリング特殊効果を実現することができる。
【0125】
例示的な実施例では、前記動き状態更新ユニットはさらに、前記第2のターゲット動き状態に基づいて前記第1のターゲット粒子領域の動き状態を更新し、残りの粒子領域の運動状態を保持するステップを実行するように構成され、前記残りの粒子領域が、前記少なくとも1つの粒子領域内の前記第1のターゲット粒子領域を除去する粒子領域である。
【0126】
例示的な実施例では、前記第1のターゲット動き状態は第1の画面座標を含み、前記ターゲット状態変化情報は第1の速度を含む。前記動き状態決定ユニットは、前記ターゲット画像フレームと前記次の画像フレームとの時間差分値を決定するステップを実行するように構成される時間差分値決定サブユニットと、前記第1の画面座標、前記第1の速度及び前記時間差分値に基づいて前記次の画像フレームにおける前記第1のターゲット粒子領域の第2の画面座標を決定し、前記第2のターゲット動き状態とするステップを実行するように構成される第1の動き状態決定サブユニットと、を含む。
【0127】
例示的な実施例では、前記動き状態更新ユニットは、前記第2の画面座標が前記髪領域の外にある場合、前記テクスチャ画像の髪領域を再決定し、新たに決定された髪領域に対応する粒子領域から第2のターゲット粒子領域を決定するステップを実行するように構成される粒子領域決定サブユニットと、前記テクスチャ画像から前記第2のターゲット粒子領域の参照ターゲット動き状態と参照ターゲット状態変化情報を取得するステップを実行するように構成される状態情報取得サブユニットと、前記参照ターゲット動き状態と前記参照ターゲット状態変化情報に基づいて前記次の画像フレームにおける前記第2のターゲット粒子領域の動き状態を決定し、第3のターゲット動き状態を得るステップを実行するように構成される第2の動き状態決定サブユニットと、前記第3のターゲット動き状態に基づいて前記テクスチャ画像における動き状態を更新するステップを実行するように構成される動き状態更新サブユニットと、を含む。
【0128】
例示的な実施例では、前記第1のターゲット動き状態は第2の速度を含み、前記ターゲット状態変化情報は髪方向角を含む。前記動き状態決定ユニットは、予め設定されたレートを取得するステップを実行するように構成されるレート取得サブユニットと、前記第2の速度、前記髪方向角および前記レートに基づいて前記次の画像フレームにおける前記第1のターゲット粒子領域の第3の速度を決定し、前記第2のターゲット動き状態を得るステップを実行するように構成される第3の動き状態決定サブユニットと、を含む。
【0129】
例示的な実施例では、前記髪のレンダリング装置は、前記ターゲットビデオにおける、経時的に変化するピクセル状態情報に基づいて、前記ターゲット画像フレームにおける各ピクセルポイントの候補状態変化情報を決定するステップを実行するように構成される状態変化情報決定ユニットと、前記ターゲット画像フレームに対応する髪方向図と髪領域マスクマップを取得するステップを実行するように構成される画像取得ユニットであって、前記髪方向図に前記各ピクセルポイントの髪方向角が含まれ、前記髪領域マスクマップに前記ターゲット画像フレームにおける髪領域のマスク情報が含まれる画像取得ユニットと、前記髪方向図における髪方向角と前記髪領域マスクマップにおけるマスク情報に基づいて前記各ピクセルポイントの候補動き状態を決定するステップを実行するように構成される候補動き状態決定ユニットと、前記候補状態変化情報と前記候補動き状態を前記少なくとも1つの粒子領域の頂点位置に記憶するステップを実行するように構成される候補動き状態記憶ユニットであって、前記少なくとも1つの粒子領域の頂点位置が前記各ピクセルポイントに対応する候補動き状態記憶ユニットと、をさらに含む。
【0130】
例示的な実施例では、前記髪のレンダリング装置は、テクスチャ画像を第1のフレームバッファに記憶するステップを実行するように構成される第1の画像記憶ユニットと、第1のフレームバッファ内のテクスチャ画像を第2のフレームバッファに記憶するステップを実行するように構成される画像転写ユニットと、更新後の前記テクスチャ画像を前記第1のフレームバッファに記憶するステップを実行するように構成される第2の画像記憶ユニットと、をさらに含む。
【0131】
例示的な実施例では、前記髪のレンダリング装置は、前記テクスチャ画像における髪領域を決定するステップを実行するように構成される領域決定ユニットと、予め決定された粒子束の数に基づいて前記髪領域をグリッド分割し、対応する少なくとも1つの粒子束を得るステップを実行するように構成される領域分割ユニットと、予め決定された粒子の数に基づいて前記少なくとも1つの粒子束をそれぞれグリッド分割し、対応する少なくとも1つの粒子領域を得るステップを実行するように構成される粒子束分割ユニットと、をさらに含む。
【0132】
例示的な実施例では、前記髪のレンダリング装置は、前記少なくとも1つの粒子束における設定位置にある粒子領域を、前記第1のターゲット粒子領域として決定するステップを実行するように構成される粒子領域決定ユニットをさらに含む。
【0133】
上記実施例の装置について、その各モジュールの操作を実行する具体的な方式は、当該方法に関する実施例においてすでに詳細に説明したが、ここでは詳細に説明しない。
【0134】
例示的な実施例では、電子機器をさらに提供し、その概略構成図は、
図1に示すように、前記電子機器は、プロセッサと、前記プロセッサによって実行可能な命令を記憶するメモリと、を含み、ここで、前記プロセッサは、上記の実施例に記載の髪のレンダリング方法を実現するために、前記命令を実行するように構成される。
【0135】
例示的な実施例では、命令を含む非一時的なコンピュータ読み取り可能な記憶媒体、例えば、命令を含むメモリ102をさらに提供し、上記命令は、上記方法を完成するように、装置100のプロセッサ120によって実行されてもよい。例えば、前記非一時的なコンピュータ読み取り可能な記憶媒体はROM、ランダムアクセスメモリ(RAM)、CD―ROM、磁気テープ、フロッピーディスク、光データ記憶装置であってもよい。
【0136】
例示的な実施例では、コンピュータプログラムを提供し、前記コンピュータプログラムは、読み取り可能な記憶媒体に記憶されており、電子機器の少なくとも1つのプロセッサは、前記読み取り可能な記憶媒体から前記コンピュータプログラムを読み取り、実行し、電子機器が上記の実施例に記載の髪のレンダリング方法を実行する。
【0137】
当業者は、明細書を検討し、かつ、明細書で開示された発明を実践した後、本開示の他の実施案を容易に想到し得る。本開示は、本発明のいかなる変形、用途または適宜な変化をカバーすることを意図し、これらの変形、用途または適宜な変化は、本開示の一般原理に従うとともに、本開示で開示されていない当分野の公知常識または慣用技術手段を含む。明細書および実施例は、単なる例示と見なされ、本開示の真の範囲および精神は、以下の特許請求の範囲によって示されている。
【0138】
なお、本開示は、上記に記載され、図面に示されている厳密な構造に限定されず、その範囲から逸脱しない限り、様々な修正や変更を行うことができる。本開示の範囲は、添付の特許請求の範囲のみによって限定される。