CN116612036A - 一种基于Unity实现人像磨皮和美白的方法 - Google Patents
一种基于Unity实现人像磨皮和美白的方法 Download PDFInfo
- Publication number
- CN116612036A CN116612036A CN202310628246.2A CN202310628246A CN116612036A CN 116612036 A CN116612036 A CN 116612036A CN 202310628246 A CN202310628246 A CN 202310628246A CN 116612036 A CN116612036 A CN 116612036A
- Authority
- CN
- China
- Prior art keywords
- image
- texture
- skin
- shader
- whitening
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000002087 whitening effect Effects 0.000 title claims abstract description 47
- 238000000034 method Methods 0.000 title claims abstract description 28
- 238000001914 filtration Methods 0.000 claims abstract description 42
- 230000002146 bilateral effect Effects 0.000 claims abstract description 33
- 238000004040 coloring Methods 0.000 claims abstract description 9
- 239000012634 fragment Substances 0.000 claims description 43
- 238000004364 calculation method Methods 0.000 claims description 11
- 230000002265 prevention Effects 0.000 claims description 3
- 230000000694 effects Effects 0.000 abstract description 6
- 230000037303 wrinkles Effects 0.000 abstract description 2
- 206010040844 Skin exfoliation Diseases 0.000 description 9
- 238000001514 detection method Methods 0.000 description 4
- 238000009499 grossing Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 210000003739 neck Anatomy 0.000 description 2
- 230000001131 transforming effect Effects 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005498 polishing Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/90—Dynamic range modification of images or parts thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/70—Denoising; Smoothing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/40—Analysis of texture
- G06T7/41—Analysis of texture based on statistical description of texture
- G06T7/44—Analysis of texture based on statistical description of texture using image operators, e.g. filters, edge density metrics or local histograms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/90—Determination of colour characteristics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/16—Human faces, e.g. facial parts, sketches or expressions
- G06V40/161—Detection; Localisation; Normalisation
- G06V40/162—Detection; Localisation; Normalisation using pixel segmentation or colour matching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20024—Filtering details
- G06T2207/20028—Bilateral filtering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30196—Human being; Person
- G06T2207/30201—Face
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Probability & Statistics with Applications (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Oral & Maxillofacial Surgery (AREA)
- Human Computer Interaction (AREA)
- Multimedia (AREA)
- Image Processing (AREA)
Abstract
一种基于Unity实现人像磨皮和美白的方法,利用皮肤识别着色器可以根据肤色特征自动识别人脸区域的皮肤信息,避免了手动选取皮肤区域的繁琐操作。双边过滤着色器可以在去除噪点的同时保留图像的细节和纹理,避免了传统的均值滤波等方法带来的模糊效应。美白着色器可以根据图像亮度和饱和度的调整实现人像的美白效果。皮肤识别着色器可以根据肤色特征实现磨皮处理,去除人像图像中的皱纹和瑕疵,使其更加自然。
Description
技术领域
本发明涉及计算机图像处理技术领域,具体涉及一种基于Unity实现人像磨皮和美白的方法。
背景技术
目前,在计算机图像处理领域,人像磨皮和美白技术已经逐渐成为一个热门的研究方向。传统的人像磨皮和美白方法主要采用基于平滑滤波和直方图均衡化的方式实现。然而这些方法容易造成过度平滑和失真,影响人像的真实性和自然度。
为
发明内容
本发明为了克服以上技术的不足,提供了一种可以实时调节磨皮和美白的程度的人像磨皮和美白的方法。
本发明克服其技术问题所采用的技术方案是:
一种基于Unity实现人像磨皮和美白的方法,包括如下步骤:
a)采集图像;
b)将采集的图像输入到皮肤识别着色器中识别人像的皮肤区域,得到mask图;c)将mask图输入到双边过滤着色器中,得到双边滤波纹理图和高斯纹理图;
d)将采集的图像、mask图、双边滤波纹理图、高斯纹理图输入到美白着色器中进行美白计算,得到磨皮美白后的图像;
e)将磨皮美白后的图像在屏幕上实时显示。
进一步的,步骤a)中通过传入视频图像信息完成图像采集或通过摄像头完成图像采集。
优选的,在Unity中的WebCamTexture类中传入摄像头名称、摄像头像素宽、摄像头像素高后,将WebCamTexture类绑定到RenderTexture,使用WebCamTexture类的Play方法获取摄像头的图像信息,完成图像采集。
进一步的,步骤b)中皮肤识别着色器将采集的图像转换为YCbCr颜色模型,使用人类皮肤的颜色范围确定阈值范围,转换为YCbCr颜色模型的图像中各个像素与阈值范围进行比较,如果像素位于阈值范围中,则判定为肤色像素,得到肤色区域,将肤色区域内的各个像素的alpha值设置为1。
优选的,阈值范围为:Y区间为:[0.16,0.90],Cb区间为:[0.51,0.73],Cr区间为:[0.57,0.90]。
进一步的,步骤c)包括如下步骤:
c-1)指定顶点着色器vert和片元着色器frag,使用_MainTex纹理,在顶点着色器vert中利用Unity0bjectToClipPos函数将顶点坐标从对象空间转换到剪裁空间,将纹理坐标传递到片元着色器frag中;
c-2)在片元着色器frag中执行双边滤波算法,将纹理坐标传递给bilater函数,计算mask图当前像素周围区域的加权平均值并返回一个新的颜色值,得到双边滤波纹理图;
c-3)指定顶点着色器vert和片元着色器frag,使用_MainTex纹理,在顶点着色器vert中利用Unity0bjectToClipPos函数将顶点坐标从对象空间转换到剪裁空间,将纹理坐标传递到片元着色器frag中;
c-4)在片元着色器frag中执行X轴反向的高斯滤波算法或Y轴反向的高斯滤波算法,将纹理坐标传递给frag函数,计算mask图当前像素周围区域的加权平均值并返回一个新的颜色值,得到高斯纹理图。
进一步的,步骤d)包括如下步骤:
d-1)指定顶点着色器vert和片元着色器frag;
d-2)使用_MainTex纹理,在顶点着色器vert中,使用UnityObjectToClipPos函数将顶点坐标从对象空间转换到裁剪空间,将纹理坐标传递到片元着色器frag中;
d-3)在片元着色器frag中,通过tex2D函数获取原图、mask图、双边滤波纹理图、高斯纹理图,将原图、mask图、双边滤波纹理图进行权重计算后与高斯纹理图进行插值计算,得到新的模糊纹理,对新的模糊纹理使用saturate函数进行防止颜色值溢出处理,将处理后的新的模糊纹理与原图、mask图进行插值,插值结果如果是肤色区域,则取处理后的新的模糊纹理作为最终颜色图β,如果插值结果如果不是肤色区域,则取原图作为最终颜色图β;
d-4)将最终颜色输入到bright函数中利用公式计算得到美白后的图v′,式中β为亮度等级。
d-5)使用lerp函数将双边滤波纹理图、原图、图v′进行插值后再根据提亮级别进行插值,得到磨皮美白后的图像。
进一步的,步骤e)中使用Untiy的RawImage组件将磨皮美白后的图像在屏幕上实时显示。
本发明的有益效果是:利用皮肤识别着色器可以根据肤色特征自动识别人脸区域的皮肤信息,避免了手动选取皮肤区域的繁琐操作。双边过滤着色器可以在去除噪点的同时保留图像的细节和纹理,避免了传统的均值滤波等方法带来的模糊效应。美白着色器可以根据图像亮度和饱和度的调整实现人像的美白效果。皮肤识别着色器可以根据肤色特征实现磨皮处理,去除人像图像中的皱纹和瑕疵,使其更加自然。
附图说明
图1为本发明的方法流程图。
具体实施方式
下面结合附图1对本发明做进一步说明。
一种基于Unity实现人像磨皮和美白的方法,包括如下步骤:
a)采集图像。
b)将采集的图像输入到皮肤识别着色器中识别人像的皮肤区域,得到mask图。以便针对皮肤区域进行磨皮和美白处理。皮肤识别着色器基于皮肤颜色的特征,通过计算像素与肤色之间的差异来判断是否为皮肤区域,然后将其标记出来。
c)将mask图输入到双边过滤着色器中,得到双边滤波纹理图和高斯纹理图。双边过滤着色器的作用是保留轮廓和纹理细节,同时保持边缘信息的清晰度,避免过度平滑和失真。
d)将采集的图像、mask图、双边滤波纹理图、高斯纹理图输入到美白着色器中进行美白计算,得到磨皮美白后的图像。美白着色器通过对皮肤区域进行亮度和色彩的调整,减少皮肤的色斑和暗沉,使皮肤更加白皙和亮丽。中间还会结合之前的双边滤波纹理、高斯纹理和mask图,对原始图像进行最后的处理,得到最终的美颜效果。
e)将磨皮美白后的图像在屏幕上实时显示。
获取摄像头图像信息传入RenderTexture,然后使用皮肤检测着色器进行皮肤的识别,得到一张mask图,以便针对皮肤区域进行磨皮和美白处理;然后使用双边滤波着色器和得到的mask图,对原始图像进行平滑处理,得到一张双边滤波纹理,双边滤波着色器继续对双边过滤得到的纹理分别进行x,y方向的高斯处理,得到一张高斯纹理,作用是保持边缘信息的清晰度,避免过度平滑和失真;接着使用基于美白计算公式的美白着色器结合之前的双边滤波纹理、高斯纹理和mask图,对原始图像进行最后的处理,得到最终的美颜效果;最后将处理完成的图像输出到RawImage。可以在不借助SDK的基础上实现人像的磨皮和美白,解决了传统的人像磨皮和美白方法容易造成过度平滑和失真,影响人像的真实性和自然度的问题。
实施例1:
步骤a)中通过传入视频图像信息完成图像采集或通过摄像头完成图像采集。具体的在Unity中的WebCamTexture类中传入摄像头名称、摄像头像素宽、摄像头像素高后,WebCamTexture类,它继承自Texture并实现了相关的接口,将WebCamTexture类绑定到RenderTexture,使用WebCamTexture类的Play方法获取摄像头的图像信息,完成图像采集。采集使用人像视频时,只需要将人像视频绑定到RenderTexture即可。
实施例2:
步骤b)中皮肤识别着色器将采集的图像转换为YCbCr颜色模型,使用人类皮肤的颜色范围确定阈值范围,转换为YCbCr颜色模型的图像中各个像素与阈值范围进行比较,如果像素位于阈值范围中,则判定为肤色像素,得到肤色区域,将肤色区域内的各个像素的alpha值设置为1。好处是识别不局限于人脸,包括脖子,手和手臂都会进行处理,避免了人脸和脖子处理不统一的问题。
在该实施例中,优选的,阈值范围为:Y区间为:[0.16,0.90],Cb区间为:[0.51,0.73],Cr区间为:[0.57,0.90]。这些阈值是基于人类皮肤的颜色范围确定的。如果像素的Y、Cb和Cr值都在这些阈值范围内,则将该像素标记为肤色像素。
实施例3:
步骤c)包括如下步骤:
c-1)指定顶点着色器vert和片元着色器frag,使用_MainTex纹理,在顶点着色器vert中利用Unity0bjectToClipPos函数将顶点坐标从对象空间转换到剪裁空间,将纹理坐标传递到片元着色器frag中。
c-2)在片元着色器frag中执行双边滤波算法,将纹理坐标传递给bilater函数,计算mask图当前像素周围区域的加权平均值并返回一个新的颜色值,得到双边滤波纹理图。
c-3)指定顶点着色器vert和片元着色器frag,使用_MainTex纹理,在顶点着色器vert中利用Unity0bjectToClipPos函数将顶点坐标从对象空间转换到剪裁空间,将纹理坐标传递到片元着色器frag中。
c-4)在片元着色器frag中执行X轴反向的高斯滤波算法或Y轴反向的高斯滤波算法,将纹理坐标传递给frag函数,计算mask图当前像素周围区域的加权平均值并返回一个新的颜色值,得到高斯纹理图。
实施例4:
步骤d)包括如下步骤:
d-1)指定顶点着色器vert和片元着色器frag。
d-2)使用_MainTex纹理,在顶点着色器vert中,使用UnityObjectToClipPos函数将顶点坐标从对象空间转换到裁剪空间,将纹理坐标传递到片元着色器frag中。
d-3)在片元着色器frag中,通过tex2D函数获取原图、mask图、双边滤波纹理图、高斯纹理图,将原图、mask图、双边滤波纹理图进行权重计算后与高斯纹理图进行插值计算,得到新的模糊纹理,对新的模糊纹理使用saturate函数进行防止颜色值溢出处理,将处理后的新的模糊纹理与原图、mask图进行插值,插值结果如果是肤色区域,则取处理后的新的模糊纹理作为最终颜色图β,如果插值结果如果不是肤色区域,则取原图作为最终颜色图β。
d-4)将最终颜色输入到bright函数中利用公式计算得到美白后的图v′,式中β为亮度等级。
d-5)使用lerp函数将双边滤波纹理图、原图、图v′进行插值后再根据提亮级别进行插值,得到磨皮美白后的图像。
皮肤检测完全不借助SDK处理,实现高自由度,可以根据实际需求自由定制皮肤检测的效果,并且避免了SDK处理的延时和额外的计算。可以减少因SDK版本更新或者兼容性问题导致的程序异常,可以适用于不同平台和设备,避免了因SDK不支持某些设备或平台而无法使用的问题,并且可以根据不同的场景需求定制不同的皮肤检测效果。使用美白着色器进行亮度和色彩的调整,可以对图像进行局部或全局的处理,可以通过调整参数来控制处理的范围和强度,并且使用基于颜色空间的算法HSV,可以调整颜色亮度、对比度和饱和度等参数来实现美白效果。
实施例5:
步骤e)中使用Untiy的RawImage组件将磨皮美白后的图像在屏幕上实时显示。即可在屏幕上实时显示出经过磨皮美白处理后的图像。
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种基于Unity实现人像磨皮和美白的方法,其特征在于,包括如下步骤:
a)采集图像;
b)将采集的图像输入到皮肤识别着色器中识别人像的皮肤区域,得到mask图;
c)将mask图输入到双边过滤着色器中,得到双边滤波纹理图和高斯纹理图;
d)将采集的图像、mask图、双边滤波纹理图、高斯纹理图输入到美白着色器中进行美白计算,得到磨皮美白后的图像;
e)将磨皮美白后的图像在屏幕上实时显示。
2.根据权利要求1所述的基于Unity实现人像磨皮和美白的方法,其特征在于:步骤a)中通过传入视频图像信息完成图像采集或通过摄像头完成图像采集。
3.根据权利要求2所述的基于Unity实现人像磨皮和美白的方法,其特征在于:在Unity中的WebCamTexture类中传入摄像头名称、摄像头像素宽、摄像头像素高后,将WebCamTexture类绑定到RenderTexture,使用WebCamTexture类的Play方法获取摄像头的图像信息,完成图像采集。
4.根据权利要求1所述的基于Unity实现人像磨皮和美白的方法,其特征在于:步骤b)中皮肤识别着色器将采集的图像转换为YCbCr颜色模型,使用人类皮肤的颜色范围确定阈值范围,转换为YCbCr颜色模型的图像中各个像素与阈值范围进行比较,如果像素位于阈值范围中,则判定为肤色像素,得到肤色区域,将肤色区域内的各个像素的alpha值设置为1。
5.根据权利要求4所述的基于Unity实现人像磨皮和美白的方法,其特征在于,阈值范围为:Y区间为:[0.16,0.90],Cb区间为:[0.51,0.73],Cr区间为:
[0.57,0.90]。
6.根据权利要求1所述的基于Unity实现人像磨皮和美白的方法,其特征在于,步骤c)包括如下步骤:
c-1)指定顶点着色器vert和片元着色器frag,使用_MainTex纹理,在顶点着色器vert中利用Unity0bjectToClipPos函数将顶点坐标从对象空间转换到剪裁空间,将纹理坐标传递到片元着色器frag中;
c-2)在片元着色器frag中执行双边滤波算法,将纹理坐标传递给bilater函数,计算mask图当前像素周围区域的加权平均值并返回一个新的颜色值,得到双边滤波纹理图;
c-3)指定顶点着色器vert和片元着色器frag,使用_MainTex纹理,在顶点着色器vert中利用Unity0bjectToClipPos函数将顶点坐标从对象空间转换到剪裁空间,将纹理坐标传递到片元着色器frag中;
c-4)在片元着色器frag中执行X轴反向的高斯滤波算法或Y轴反向的高斯滤波算法,将纹理坐标传递给frag函数,计算mask图当前像素周围区域的加权平均值并返回一个新的颜色值,得到高斯纹理图。
7.根据权利要求1所述的基于Unity实现人像磨皮和美白的方法,其特征在于,步骤d)包括如下步骤:
d-1)指定顶点着色器vert和片元着色器frag;
d-2)使用_MainTex纹理,在顶点着色器vert中,使用UnityObjectToClipPos函数将顶点坐标从对象空间转换到裁剪空间,将纹理坐标传递到片元着色器frag中;
d-3)在片元着色器frag中,通过tex2D函数获取原图、mask图、双边滤波纹理图、高斯纹理图,将原图、mask图、双边滤波纹理图进行权重计算后与高斯纹理图进行插值计算,得到新的模糊纹理,对新的模糊纹理使用saturate函数进行防止颜色值溢出处理,将处理后的新的模糊纹理与原图、mask图进行插值,插值结果如果是肤色区域,则取处理后的新的模糊纹理作为最终颜色图v,如果插值结果如果不是肤色区域,则取原图作为最终颜色图v;
d-4)将最终颜色输入到bright函数中利用公式计算得到美白后的图v′,式中β为亮度等级;
d-5)使用lerp函数将双边滤波纹理图、原图、图v′进行插值后再根据提亮级别进行插值,得到磨皮美白后的图像。
8.根据权利要求1所述的基于Unity实现人像磨皮和美白的方法,其特征在于:步骤e)中使用Untiy的RawImage组件将磨皮美白后的图像在屏幕上实时显示。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310628246.2A CN116612036A (zh) | 2023-05-31 | 2023-05-31 | 一种基于Unity实现人像磨皮和美白的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310628246.2A CN116612036A (zh) | 2023-05-31 | 2023-05-31 | 一种基于Unity实现人像磨皮和美白的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116612036A true CN116612036A (zh) | 2023-08-18 |
Family
ID=87676251
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310628246.2A Pending CN116612036A (zh) | 2023-05-31 | 2023-05-31 | 一种基于Unity实现人像磨皮和美白的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116612036A (zh) |
-
2023
- 2023-05-31 CN CN202310628246.2A patent/CN116612036A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4294371B2 (ja) | 肖像画像の強調方法及びシステム | |
CN108229279B (zh) | 人脸图像处理方法、装置和电子设备 | |
CN108229278B (zh) | 人脸图像处理方法、装置和电子设备 | |
CN108932493B (zh) | 一种面部皮肤质量评价方法 | |
JP5547730B2 (ja) | 顔検知を用いた顔及び肌の自動美化 | |
JP2004265406A (ja) | バッチモードで処理されるポートレート画像を向上する方法及びシステム | |
WO2013168618A1 (ja) | 画像処理装置及び画像処理方法 | |
JP2001126075A (ja) | 画像処理方法および装置並びに記録媒体 | |
JP2008234342A (ja) | 画像処理装置及び画像処理方法 | |
Pei et al. | Effective image haze removal using dark channel prior and post-processing | |
CN114331873B (zh) | 一种基于区域划分的非均匀光照彩色图像校正方法 | |
CN113808027B (zh) | 一种人体图像处理方法、装置、电子设备及存储介质 | |
CN108288258A (zh) | 一种针对恶劣天气条件下的低质图像增强方法 | |
CN109272475B (zh) | 一种快速有效修复与强化水下图像颜色的方法 | |
CN110298796B (zh) | 基于改进Retinex与对数图像处理的低照度图像增强方法 | |
Meylan et al. | Color image enhancement using a Retinex-based adaptive filter | |
CN116188339A (zh) | 一种基于Retinex及图像融合的暗视觉图像增强方法 | |
CN116612263B (zh) | 一种感知潜视觉合成一致性动态拟合的方法及装置 | |
Asari et al. | Nonlinear enhancement of extremely high contrast images for visibility improvement | |
JP4742068B2 (ja) | 画像処理方法、画像処理システムおよび画像処理プログラム | |
CN114429426B (zh) | 一种基于Retinex模型的低照度图像质量改善方法 | |
CN113284058B (zh) | 一种基于迁移理论的水下图像增强方法 | |
CN107392869B (zh) | 一种基于边缘保持滤波器的人脸图像滤波方法 | |
CN116612036A (zh) | 一种基于Unity实现人像磨皮和美白的方法 | |
CN113191956B (zh) | 基于深度抠图的逆光图像增强方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |