一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

人脸图像处理方法、装置、设备及计算机可读存储介质与流程

2021-11-15 17:14:00 来源:中国专利 TAG:


1.本发明涉及人脸识别领域,具体涉及一种人脸图像处理方法、装置、视频通话方法、设备及计算机可读存储介质。


背景技术:

2.前置摄像头目前是手机、平板电脑和电脑的必备部件,其被广泛地用于自拍或者进行视频通话。前置摄像头的分辨率越来越高,在视频通话过程中,通信双方彼此看到的图像也越来越清晰。
3.电脑上的前置摄像头一般安装在屏幕框架的上部,也有隐藏在键盘区域;手机的前置摄像头也是位于框架的上部或下部。前置摄像头的位置相较于屏幕的位置有一些偏差。这些设备的前置摄像头获取拍摄者的影像时,拍摄者往往对着手机屏幕中的自己的图像而非直接正视摄像头进行自拍,或者,在对着例如电脑进行视频通话时,人往往对着屏幕中的另一方而非摄像头进行视频通话。在上述情况下,则导致人眼视线与摄像头与人眼的连线之间存在一定的角度,从而导致眼神无神、视频交流不自然等现象,很容易被通信对象注意到,影响了用户体验。


技术实现要素:

4.有鉴于此,本发明提供一种人脸图像处理方法、装置、设备及计算机可读存储介质,人脸图像处理方法,通过对人脸图像中的人眼实现进行实时矫正,能够将图像/视频中的人眼视线方向调整为直视摄像头,解决视线不对视所造成的不良体验问题,打造更真实自然的视频、拍照效果。
5.以下从多个方面介绍本技术,以下多个方面的实施方式和有益效果可互相参考。
6.第一方面,本技术提供一种人脸图像处理方法,该方法包括:获取人脸图像;基于所述人脸图像检测眼部特征,获取眼部特征数据,其中,所述眼部特征包括眼皮及虹膜,所述眼部特征数据包括眼皮关键点、虹膜中心以及虹膜半径;基于所述眼部特征数据,确定眼部调整程度;基于所述眼部调整程度对所述人脸图像中的所述眼部特征进行调整,得到处理后图像。
7.根据本技术的实施方式,利用终端设备(手机、平板电脑、电脑、台式电脑、大屏设备等终端设备)进行视频通话或进行拍照时,通过终端设备的摄像头获取人脸图像;接着,基于所述人脸图像检测包括虹膜的眼部特征,获取包括眼皮关键点、虹膜中心以及虹膜半径的眼部特征数据。该方法基于眼部特征数据,对于所述人脸图像中的所述眼部特征进行调整,通过对人脸图像中的人眼实现进行实时矫正,能够将图像/视频中的人眼视线方向调整为直视摄像头,解决视线不对视所造成的不良体验问题,能够实现更真实自然的视频、拍照效果。其中,眼皮关键点有时也称作眼部关键点,其指的是从两个眼角点沿着上下眼皮边缘轮廓分布的关键点。
8.在上述第一方面的一种可能的实现中,所述基于所述人脸图像检测眼部特征,获
取眼部特征数据包括:基于所述人脸图像,确定每只眼睛的两个眼角点;以所述两个眼角点为基准,在所述人脸图像上提取眼部区域;在所述眼部区域,检测所述眼部特征以获取所述眼部特征数据。也就是说,可以先通过人眼检测算法,确定每只眼睛的两个眼角点,接着以所述两个眼角点为基准,在所述人脸图像上提取眼部区域,然后在所述眼部区域,检测所述眼部特征以获取所述眼部特征数据。实际上,视线调整仅仅涉及到眼部以及眼部周围区域,因此,无需对整个人脸图像进行计算而只需对其中的眼部区域进行计算,由此能够很大程度上减少计算量。眼角点作为每只眼睛的关键点之一,其中的每只眼睛的两个眼角点的计算与检测是相对成熟的技术,基于此来确定眼部区域能够相对快速、准确地获取眼部区域。
9.在上述第一方面的一种可能的实现中,所述以所述两个眼角点为基准在所述人脸图像上提取所述眼部区域包括:以所述两个眼角点为基准,在所述人脸图像上确定眼部图像;将所述眼部图像处理至具有预定像素值的图像,得到所述眼部区域,其中,所述两个眼角点的连线处于水平状态。也就是说,首先,以所述两个眼角点为基准,以所述两个眼角点的连线处于水平状态,在所述人脸图像上确定眼部图像;接着,将所述眼部图像处理至具有预定像素值的图像,由此来获取所述眼部区域。所谓具有预定像素值,指具有预定尺寸的图像。也就是说,以两个眼角点连线,以平行于该连线的上下边框,以及垂直于该连线的左右边框进行截取,得到具有一定尺寸的图像,作为眼部区域。由此,可以仅在该眼部区域内进行调整程度的计算并基于此进行调整,能够大大减小计算量,同时能够使得实时调整更顺畅。
10.在上述第一方面的一种可能的实现中,所述在所述眼部区域,所述在所述眼部区域,检测所述眼部特征以获取所述眼部特征数据包括:在所述眼部区域中,检测所述眼皮关键点;基于所述眼皮关键点,确定眼睑以内的眼球部分掩膜;基于所述眼球部分掩膜,确认虹膜轮廓;基于所述虹膜轮廓确定所述虹膜中心以及虹膜半径。也就是说,首先,在所述眼部区域中,检测眼皮关键点(检测方法例如可以是dlib法等);接着,基于所述眼皮关键点,确定眼睑以内的眼球部分掩膜;然后,基于所述眼球部分掩膜,确认虹膜轮廓;此后,基于所述虹膜轮廓确定所述虹膜中心以及虹膜半径。
11.在上述第一方面的一种可能的实现中,所述基于所述眼皮关键点,确定眼睑以内的眼球部分掩膜包括:基于所述眼皮关键点,通过二次函数拟合上下眼皮曲线;对于偏离所述上下眼皮曲线的眼皮关键点进行修正;基于修正后的所述眼皮关键点,确定所述眼睑以内的眼球部分掩膜。也就是说,首先,基于所述眼皮关键点,通过二次函数拟合上下眼皮曲线;接着,对于偏离所述上下眼皮曲线的眼皮关键点进行修正以使得曲线平滑化;然后,基于修正后的所述眼皮关键点,确定所述眼睑以内的眼球部分掩膜。由此,能够消除一些噪点带来的影响,使得眼球部分掩膜更加准确。
12.在上述第一方面的一种可能的实现中,所述基于所述眼球部分掩膜,确认虹膜轮廓包括:进行亮度均衡以调整所述眼球部分掩膜的灰度值,获得具有预定亮度的灰度图;对于所述灰度图进行阈值化处理,得到阈值化后的所述虹膜轮廓。也就是说,首先,进行亮度均衡以调整所述眼球部分掩膜的灰度值,获得具有预定亮度的灰度图;接着,对于所述灰度图进行阈值化处理,得到阈值化后的所述虹膜轮廓。经过阈值化处理,能够消除亮度变化导致的眼部特征数据的变化。
13.在上述第一方面的一种可能的实现中,所述基于所述虹膜轮廓确定所述虹膜中心
以及虹膜半径包括:对于所述阈值化后的所述虹膜轮廓进行椭圆拟合,以拟合得到的椭圆的中心为所述虹膜中心,以所述椭圆的长半轴为虹膜半径。也就是说,对于所述阈值化后的所述虹膜轮廓进行椭圆拟合,并基于拟合得到的椭圆来确定所述虹膜中心和虹膜半径。经过椭圆拟合,能够去除一些噪点带来的影响,使得所获得的眼部特征参数更接近于真实的眼部特征参数。
14.在上述第一方面的一种可能的实现中,基于所述眼部特征数据,确定眼部调整程度包括:基于所述眼部特征数据判断当前是否正在眨眼,当判断为当前未眨眼,则基于本帧图像人脸图像的所述眼部特征数据,确定所述眼部调整程度,所述眼部调整程度包括眼皮调整位置以及虹膜中心调整位置;当判断为当前正在眨眼,则调用之前最后一帧未眨眼图像的所述眼部调整程度。也就是说,在基于所述人脸图像检测眼部特征,获取眼部特征数据后,接着,基于所述眼部特征数据判断当前是否正在眨眼。然后,当判断为当前未眨眼,则基于本帧图像人脸图像的所述眼部特征数据,确定所述眼部调整程度,当判断为当前正在眨眼,则调用之前最后一帧未眨眼图像的所述眼部调整程度。由于在视频中,在眨眼帧图像下,无法确认到虹膜参数,通过调用眨眼之前最后一帧未眨眼的图像的眼部特征数据,能够将当前正在眨眼的图像处理成未眨眼的图像,而且由于调用的是之前最后一帧图像的眼部调整位置,因此虹膜中心调整位置具有连续性,使得视频双方交流更自然,能够进一步提升用户体验。
15.在上述第一方面的一种可能的实现中,所述基于所述眼部特征数据判断当前是否正在眨眼包括:基于阈值化后的所述虹膜轮廓,计算虹膜暴露部分占虹膜圆的比例,得到虹膜占比;据所述眼皮关键点计算眼睛纵横比;根据所述虹膜占比以及所述眼睛纵横比,判断当前是否正在眨眼。也就是说,通过计算虹膜暴露部分占虹膜圆的比例,来确定虹膜占比;并基于眼皮关键点计算眼睛纵横比;当所述虹膜占比以及所述眼睛纵横比满足预定条件(例如,两者均小于各自的特定阈值时),确定当前正在眨眼,否则则为未眨眼。
16.在上述第一方面的一种可能的实现中,所述根据所述眼部特征数据,确定所述眼部调整程度包括:基于所述两个眼角点,确定虹膜中心调整位置;和基于所述虹膜中心调整位置,确定眼皮调整位置,所述眼皮调整位置包括上眼皮最高点调整位置和下眼皮最低点调整位置。也就是说,通过眼皮关键点中的两个眼角点的连线的中心在竖直方向上偏上或偏下预定值(该预定值的大小,和终端设备的摄像头在屏幕上的位置有一定关系),来确定虹膜中心调整位置,并在所述虹膜中心调整位置基础上结合眼部特征数据,由此来确定上眼皮最高点调整位置和下眼皮最低点调整位置。
17.在上述第一方面的一种可能的实现中,所述基于所述眼部调整程度位置,对于所述人脸图像中的所述眼部特征进行调整,得到处理后图像包括:分别将上眼皮最高点调整到所述上眼皮最高调整位置,下眼皮最低点调整到所述下眼皮最低点调整位置,并对在所述眼部区域内对于其余眼皮像素进行逐列像素平移,以进行眼皮调整;基于所述虹膜中心,合成虹膜图像,并将所述虹膜中心移动到所述虹膜中心调整位置,以进行虹膜调整。也就是说,首先,分别将上眼皮最高点调整到所述上眼皮最高调整位置,下眼皮最低点调整到所述下眼皮最低点调整位置,并对在所述眼部区域内对于其余眼皮像素进行逐列像素平移,以进行眼皮调整;接着,在调整好的眼皮之内,在虹膜中心调整位置处填上合成的虹膜图像,来进行虹膜调整。
18.在上述第一方面的一种可能的实现中,在所述眼部区域内的中部预定范围内进行逐列像素平移,并在像素平移后,基于所述眼部区域内的所述中部预定范围内之外的区域进行缩放以填充平移后产生的空隙。也就是说,在所述眼部区域内的中部预定范围内进行逐列像素平移,并在像素平移后,基于所述眼部区域内的所述预定范围内之外的区域进行缩放以填充平移后产生的空隙。此处,需要说明的是,所谓中部预定范围是指,在所述眼部区域内,除了靠近眼部区域的边框的预定宽度之外,剩下的中部区域,该中部区域无需为中心区域,也就是说,上下左右边框附近预留的宽度可以根据需要设定,可以相同也可以不同。由此,能够在眼部区域能形成很好的过度,不因像素平移而导致平移后的区域留下相应的空隙。
19.在上述第一方面的一种可能的实现中,在得到所述阈值化后的所述虹膜轮廓后,还根据所述眼球部分掩膜与所述阈值化后的所述虹膜轮廓获取眼白部分掩膜,在所述眼皮调整后,基于所述眼白部分掩膜进行眼白补偿,在所述眼白补偿之后合成所述虹膜图像并将所述虹膜中心移动到所述通孔调整位置。也就是说,先进行眼皮调整,此后进行眼白补偿,最后,进行虹膜合成和调整。由此,能够避免虹膜中心移动之后留下的空白部分与真实眼白部分存在差异,使得修正图像不自然的问题。
20.在上述第一方面的一种可能的实现中,人脸图像处理方法还包括:基于所述人脸图像,获取头部特征数据;基于所述头部特征数据,确定头部旋转角度,并基于所述头部旋转角度对于所述人脸图像进行旋转处理。也就是说,不仅要进行眼部调整,还基于头部偏转程度,对于头部进行调整。需要说明的是,既可以先进行头部旋转处理后进行眼部调整,也可以先进行眼部调整后进行头部旋转处理。其中,先旋转头部后调整眼部,能够使得调整后的眼部特征更加接近正视角度。由此,对人脸和眼部特征均进行调整,使得视频双方交流更自然,避免由于显示器位置的因素,用户因为观看终端设备的屏幕导致人脸倾斜而造成视频通话交流不自然的情况和拍照人脸倾斜的情况。
21.第二方面,本技术提供一种人脸图像处理装置,该人脸图像处理装置可以包括:图像采集模块,用于获取人脸图像;特征检测模块,用于基于所述人脸图像检测眼部特征,获取眼部特征数据,其中,所述眼部特征包括眼皮及虹膜,所述眼部特征数据包括眼皮关键点、虹膜中心以及虹膜半径;调整程度确定模块,用于基于所述眼部特征数据确定眼部调整程度;调整模块,用于基于所述眼部特征数据,对于所述人脸图像中的所述眼部特征进行调整,得到处理后图像。
22.在上述第二方面的一种可能的实现中,所述特征检测模块可以包括:
23.眼角点确定模块,用于基于所述人脸图像,确定每只眼睛的两个眼角点;
24.眼部区域提取模块,用于以所述两个眼角点为基准,在所述人脸图像上提取眼部区域;
25.眼部特征数据计算模块,用于在所述眼部区域,检测所述眼部特征以获取所述眼部特征数据。
26.在上述第二方面的一种可能的实现中,所述眼部区域提取模块可以包括:
27.眼部图像确定模块,用于以所述两个眼角点为基准,在所述人脸图像上确定眼部图像;
28.眼部区域获取模块,用于将所述眼部图像处理至具有预定像素值的图像,得到所
述眼部区域,其中,所述两个眼角点的连线处于水平状态。
29.在上述第二方面的一种可能的实现中,所述眼部特征数据计算模块可以包括:
30.眼皮关键点检测模块,用于在所述眼部区域中,检测眼皮关键点;
31.眼球部分掩膜确定模块,用于基于所述眼皮关键点,确定眼睑以内的眼球部分掩膜;
32.虹膜轮廓确定模块,用于基于所述眼球部分掩膜,确定虹膜轮廓;
33.虹膜中心以及虹膜半径确定模块,用于基于所述虹膜轮廓确定所述虹膜中心以及虹膜半径。
34.在上述第二方面的一种可能的实现中,所述眼球部分掩膜确定模块可以包括:
35.上下眼皮曲线获取模块,用于基于所述眼皮关键点,通过二次函数拟合上下眼皮曲线;
36.眼皮关键点修正模块,用于对于偏离所述上下眼皮曲线的眼皮关键点进行修正;
37.眼球部分掩膜确认模块,用于基于修正后的所述眼皮关键点,确定所述眼睑以内的眼球部分掩膜。
38.在上述第二方面的一种可能的实现中,所述虹膜轮廓确定模块可以包括:
39.灰度图获取模块,用于进行亮度均衡以调整所述眼球部分掩膜的灰度值,获得具有预定亮度的灰度图;
40.虹膜轮廓获取模块,用于对于所述灰度图进行阈值化处理,得到阈值化后的所述虹膜轮廓。
41.在上述第二方面的一种可能的实现中,虹膜中心以及虹膜半径确定模块可以用于:对于所述阈值化后的所述虹膜轮廓进行椭圆拟合,以拟合得到的椭圆的中心为所述虹膜中心,以所述椭圆的长半轴为虹膜半径。
42.在上述第二方面的一种可能的实现中,调整程度确定模块可以包括:
43.眨眼判断模块,用于基于所述眼部特征数据判断当前是否正在眨眼;
44.调整程度获取模块,用于当判断为当前未眨眼,则基于本帧人脸图像的所述眼部特征数据,确定所述眼部调整程度,所述眼部调整程度包括眼皮调整位置以及虹膜中心调整位置;当判断为当前正在眨眼,则调用之前最后一帧未眨眼图像的所述眼部调整程度。
45.在上述第二方面的一种可能的实现中,眨眼判断模块可以包括:
46.虹膜占比计算模块,用于基于阈值化后的所述虹膜轮廓,计算虹膜暴露部分占虹膜圆的比例,得到虹膜占比;
47.眼睛纵横比计算模块,用于根据所述眼皮关键点计算眼睛纵横比;
48.判定模块,用于根据所述虹膜占比以及所述眼睛纵横比,判断当前是否正在眨眼。
49.在上述第二方面的一种可能的实现中,所述眼部调整程度确定模块可以包括:
50.虹膜中心调整位置确定模块,用于基于所述两个眼角点,确定虹膜中心调整位置;
51.眼皮调整位置确定模块,用于基于所述虹膜中心调整位置,确定眼皮调整位置,所述眼皮调整位置包括上眼皮最高点调整位置和下眼皮最低点调整位置。
52.在上述第二方面的一种可能的实现中,所述调整模块可以包括:
53.眼皮调整模块,用于分别将上眼皮最高点调整到所述上眼皮最高调整位置,下眼皮最低点调整到所述下眼皮最低点调整位置,并对在所述眼部区域内对于其余眼皮像素进
行逐列像素平移,以进行眼皮调整;
54.虹膜调整模块,用于基于所述虹膜中心,合成虹膜图像,并将所述虹膜中心移动到所述虹膜中心调整位置。
55.在上述第二方面的一种可能的实现中,所述眼皮调整模块具体用于
56.在所述眼部区域内的中部预定范围内进行逐列像素平移,并在像素平移后,基于所述眼部区域内的所述预定范围内之外的区域进行缩放以填充平移后产生的空隙。
57.在上述第二方面的一种可能的实现中,所述调整模块还可以包括:
58.眼白补偿模块,用于根据所述眼球部分掩膜与所述阈值化后的所述虹膜轮廓获取眼白部分掩膜,在所述眼皮调整后,基于所述眼白部分掩膜进行眼白补偿,在所述眼白补偿之后合成所述虹膜图像并将所述虹膜中心移动到所述虹膜中心调整位置。
59.在上述第二方面的一种可能的实现中,人脸图像处理装置还包括:
60.人脸图像旋转模块,用于基于所述人脸图像,获取头部特征数据,并基于所述头部特征数据,确定头部旋转角度,并基于所述头部旋转角度对于所述人脸图像进行旋转处理。
61.第三方面,本技术提供一种视频通话方法,应用于终端设备,包括:在视频通话开启时或视频通话中,通过启动视线矫正功能以上述所述的人脸图像处理方法对视频通话参加者的人脸图像进行处理,并输出到视频通话对象的终端设备上。也就是说,在视频通话开启时或视频通话中,通过上述所述的人脸图像处理方法对视线进行矫正,以使得视频中的人眼视线方向调整为直视摄像头,并输出到视频通话对象的终端设备上,通话对象的终端能够显示视线只视通话对象的效果,从而使得视频双方的交流更加自然。
62.在上述第三方面的一种可能的实现中,所述视频通话方法包括:
63.启动视频通话应用;
64.检测视频通话中的人员的视线是否处于正视,
65.当检测到视线为非正视时,所述终端设备出现视线矫正确认选项,
66.当选择进行视线矫正时,启动所述视线矫正功能。
67.也就是说,在视频通话中通过人为进行选择是否启动视线矫正功能,能够满足用户根据每次视频通话对于使用视线矫正功能的意愿去选择,增加了用户的自主性。
68.在上述第三方面的一种可能的实现中,所述视线矫正功能通过预设的开关启动或关闭。例如,可以通过添加在视频通话软件或拍照功能软件中的设置选项来启动或关闭。也就是说,通过预先设定是否开启或关闭视线矫正功能,能够简化视线矫正开启功能,使得视频通话中更加方便地使用视线矫正功能。
69.第四方面,本技术提供一种电子设备,包括:一个或多个处理器;一个或多个存储器,其中存储了计算机可读代码,所述计算机可读代码当由所述一个或多个处理器运行时,使得所述处理器执行上述本技术第一方面的任一种可能的实现的人脸图像处理方法。
70.第五方面,本技术提供一种计算机可读存储介质,其中存储了计算机可读代码,所述计算机可读代码当由一个或多个处理器运行时,使得所述处理器执行上述本技术第一方面的任一种可能的实现的人脸图像处理方法。
附图说明
71.图1是根据本技术一个实施例提供的人脸图像处理的应用场景图;
72.图2是根据本技术一个实施例提供的电子设备的结构示意图;
73.图3是根据本技术一个实施例提供的人脸图像处理方法的流程示意图;
74.图4是根据本技术一个实施例中眼部特征检测步骤的流程图;
75.图5是根据本技术一个具体实施例的计算眼部特征数据步骤的流程图;
76.图6是根据本技术一个实施例的眼部调整程度确定步骤的流程图;
77.图7是根据本技术一个实施例的调整步骤的流程图;
78.图8是根据本技术一个实施例的人脸图像处理装置的框图;
79.图9是根据本技术一个具体实施例提供的人脸图像处理方法的流程示意图;
80.图10是根据图9所示实施例中眼部区域提取效果图(左)和眼皮关键点修正效果图(右);
81.图11为根据图9所示实施例中眼球部分掩膜图(左)、阈值化后虹膜轮廓图(中)及虹膜边缘检测效果图(右);
82.图12为根据图9所示实施例中上下眼皮调整位置示意图;
83.图13为根据图9所示实施例中眼白部分掩膜图(左)和眼白补偿后效果图(右);
84.图14为根据图9所示实施例中完整虹膜合成图像(左)和最终合成眼图(右);
85.图15为根据图9所示实施例中的原图(左)和最后矫正后效果图(右);
86.图16是根据本技术一个实施例提供的人脸图像处理方法的触发流程图;
87.图17是根据本技术另一个实施例提供的人脸图像处理方法的触发流程图;
88.图18是根据本技术一些实施例的一种设备的框图;
89.图19是根据本技术一些实施例的一种片上系统(soc)的框图。
具体实施方式
90.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整的描述。
91.可以理解的是,如本文所使用的,术语“模块”可以指代或者包括专用集成电路(asic)、电子电路、执行一个或多个软件或固件程序的处理器(共享、专用、或群组)和/或存储器、组合逻辑电路、和/或提供所描述的功能的其他适当硬件组件,或者可以作为这些硬件组件的一部分。
92.可以理解的是,在本技术各实施例中,处理器可以是微处理器、数字信号处理器、微控制器等,和/或其任何组合。根据另一个方面,所述处理器可以是单核处理器,多核处理器等,和/或其任何组合。
93.下面,参考附图对本技术的实施例进行进一步详细说明。
94.图1是根据本技术一个实施例的人脸图像处理的应用场景图。图1中(a)示出了两个人使用电脑通过网络进行视频通话的场景。在此情况下,视频通话过程中,作为终端设备的电脑,通过摄像头获取人脸图像并基于本技术提供的脸部图像处理方法对于人脸图像进行处理,并将处理后的图像传输到视频通话对象的电脑上,以使得视频通话对象的电脑上所显示的人脸图像的视线显示为直视该视频通话对象。
95.此外,本技术的技术还可以用于如图1中(b)所示,利用手机进行自拍的场景。在此情况下,拍照过程中,通过手机的摄像头获取人脸图像,此后,手机的处理器基于本技术的
人脸图像处理方法进行处理,即当处理器对于人眼视线进行检测,当检测到所拍的照片中人眼视线偏离正视的情况下,处理器确定器眼部调整程度并将人眼视线进行相应调整使其处于正视状态,最终输出经处理的人脸图像。
96.目前,对于人脸进行调整,有如下三种方案。
97.方案一、通过建立用户面部三维模型,在三维空间内旋转头部角度,将旋转后的三维模型渲染至图像,得到视线方向改变后的新图像。作为建立面部三维模型的具体方法,例如可以利用深度相机获取深度信息并基于此进行三维重建得到所述面部三维模型(参考文献:kuster c,popa t,bazin j c,et al.gaze correction for home video conferencing[j].acm transactions on graphics(tog),2012,31(6):174.),或者基于3d人脸基模型进行模型拟合得到所述面部三维模型(参考文献:cn105357513b,会话视频中单摄像头眼神纠正方法,陶晓明等,清华大学,2015.)。然而,该方案的缺点在于在进行视线调整时实际是通过将头部角度与视线方向同时向同一方向调整来实现的,当头部角度与视线方向不一致时,效果欠佳,面部正面角度与视线正视两者不可兼得,限制了该方法的适用性。
[0098]
方案二、通过建立用户眼部三维模型,在三维空间内旋转眼球方向并渲染至图像,得到视线方向改变后的新图像。作为建立用户眼部三维模型的方法包括例如利用深度相机获取深度信息并基于此进行三维重建得到所述眼部三维模型的方法,或者基于3d眼部基模型进行模型拟合得到所述眼部三维模型(参考文献:e.wood,t.baltru
ˇ
saitis,l.-p.morency,p.robinson,and a.bulling.gazedirector:fully articulated eye gaze redi-rection in video.in computer graphics forum,volume 37,pages 217

225.wiley online library,2018.3.)。然而,利用深度相机获取深度信息并基于此进行三维重建得到所述眼部三维模型的方法依赖于深度相机这一硬件,而基于3d眼部基模型进行模型拟合得到所述眼部三维模型的方法依赖基模型表达能力,往往难以对眼部形态多样的各类人群实现精准重建;且其算法效率较低(每帧图像处理速度约80ms(3.3ghz cpu,nvidia gtx 1080)),难以满足实时视频类应用需求。
[0099]
方案三、采用基于眼图替换的方法。该类方法通过将图像中的眼部区域替换为看向其他方向的眼部图像,实现视线矫正效果(参考文献:l.wolf,z.freund,and s.avidan.an eye for an eye:a sin-gle camera gaze-replacement method.in 2010ieee com-puter society conference on computer vision and pattern recognition,pages 817

824.ieee,2010.)。然而,该方法的缺点在于,需要预先采集并存储用户看向不同方向的各个角度的眼部图像,影响用户体验;且忽略了在用户使用过程中场景光线和环境的变化,会造成合成的新图像失真;并且未考虑眨眼情况如何处理。
[0100]
与现有技术的方案相比较,利用根据本技术的具体实施方式提供的人脸图像处理方案,通过电脑进行视频通话过程中,尽管摄像头远远偏离屏幕中心,也就是视频通话对象眼睛所在位置,也能够经过电脑的处理器调用本技术的人脸图像处理方法进行处理,最终将处理后的图像显示在视频通话对象的显示屏上,在该显示屏上显示出正视图像;或者,在利用手机在拍照过程中,经过手机的处理器调用本技术的人脸图像处理方法进行处理,并输出处理后图像。在此情况下,即使摄像头偏离屏幕中心,自拍人员以任何角度看向手机屏幕都可以得到正视图像。由此,用户体验大大提升。
[0101]
图2示出了根据本技术一些实施例的电子设备100的结构示意图。该电子设备100例如可以是本技术的上述应用场景中所提及的电脑、手机,以及其他例如ipad等。
[0102]
电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,usb)接头130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170a,受话器170b,麦克风170c,耳机接口170d,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,sim)卡接口195等。其中传感器模块180可以包括压力传感器180a,陀螺仪传感器180b,气压传感器180c,磁传感器180d,加速度传感器180e,距离传感器180f,接近光传感器180g,指纹传感器180h,温度传感器180j,触摸传感器180k,环境光传感器180l,骨传导传感器180m等。
[0103]
可以理解的是,本技术实施例示意的结构并不构成对电子设备100的具体限定。在本技术另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
[0104]
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,ap),调制解调处理器,图形处理器(graphics processing unit,gpu),图像信号处理器(image signal processor,isp),控制器,视频编解码器,数字信号处理器(digital signal processor,dsp),基带处理器,和/或神经网络处理器(neural-network processing unit,npu)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
[0105]
处理器110可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
[0106]
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
[0107]
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,i2c)接口,集成电路内置音频(inter-integrated circuit sound,i2s)接口,脉冲编码调制(pulse code modulation,pcm)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,uart)接口,移动产业处理器接口(mobile industry processor interface,mipi),通用输入输出(general-purpose input/output,gpio)接口,用户标识模块(subscriber identity module,sim)接口。
[0108]
i2c接口是一种双向同步串行总线,包括一根串行数据线(serial data line,sda)和一根串行时钟线(derail clock line,scl)。在一些实施例中,处理器110可以包含多组i2c总线。处理器110可以通过不同的i2c总线接口分别耦合触摸传感器180k,充电器,闪光灯,摄像头193等。例如:处理器110可以通过i2c接口耦合触摸传感器180k,使处理器110与触摸传感器180k通过i2c总线接口通信,实现电子设备100的触摸功能。
[0109]
i2s接口可以用于音频通信。在一些实施例中,处理器110可以包含多组i2s总线。处理器110可以通过i2s总线与音频模块170耦合,实现处理器110与音频模块170之间的通
信。在一些实施例中,音频模块170可以通过i2s接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话的功能。
[0110]
pcm接口也可以用于音频通信,将模拟信号抽样,量化和编码。在一些实施例中,音频模块170与无线通信模块160可以通过pcm总线接口耦合。在一些实施例中,音频模块170也可以通过pcm接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话的功能。所述i2s接口和所述pcm接口都可以用于音频通信。
[0111]
uart接口是一种通用串行数据总线,用于异步通信。该总线可以为双向通信总线。它将要传输的数据在串行通信与并行通信之间转换。在一些实施例中,uart接口通常被用于连接处理器110与无线通信模块160。例如:处理器110通过uart接口与无线通信模块160中的蓝牙模块通信,实现蓝牙功能。在一些实施例中,音频模块170可以通过uart接口向无线通信模块160传递音频信号,实现通过蓝牙耳机播放音乐的功能。
[0112]
mipi接口可以被用于连接处理器110与显示屏194,摄像头193等外围器件。mipi接口包括摄像头串行接口(camera serial interface,csi),显示屏串行接口(display serial interface,dsi)等。在一些实施例中,处理器110和摄像头193通过csi接口通信,实现电子设备100的拍摄功能。处理器110和显示屏194通过dsi接口通信,实现电子设备100的显示功能。
[0113]
gpio接口可以通过软件配置。gpio接口可以被配置为控制信号,也可被配置为数据信号。在一些实施例中,gpio接口可以用于连接处理器110与摄像头193,显示屏194,无线通信模块160,音频模块170,传感器模块180等。gpio接口还可以被配置为i2c接口,i2s接口,uart接口,mipi接口等。
[0114]
可以理解的是,本技术实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在本技术另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
[0115]
电子设备100通过gpu,显示屏194,以及应用处理器等实现显示功能。gpu为图像处理的微处理器,连接显示屏194和应用处理器。gpu用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个gpu,其执行程序指令以生成或改变显示信息。
[0116]
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,lcd),有机发光二极管(organic light-emitting diode,oled),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrix organic light emitting diode的,amoled),柔性发光二极管(flex light-emitting diode,fled),miniled,microled,micro-oled,量子点发光二极管(quantum dot light emitting diodes,qled)等。在一些实施例中,电子设备100可以包括1个或n个显示屏194,n为大于1的正整数。
[0117]
电子设备100可以通过isp,摄像头193,视频编解码器,gpu,显示屏194以及应用处理器等实现拍摄功能。
[0118]
isp用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给isp处理,转化为肉眼可见的图像。isp还可以对图像的噪点,亮度,肤色进行算法优化。isp还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,isp可以设置在摄像头193中。
[0119]
摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,ccd)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,cmos)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给isp转换成数字图像信号。isp将数字图像信号输出到dsp加工处理。dsp将数字图像信号转换成标准的rgb,yuv等格式的图像信号。在一些实施例中,电子设备100可以包括1个或n个摄像头193,n为大于1的正整数。
[0120]
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当电子设备100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
[0121]
视频编解码器用于对数字视频压缩或解压缩。电子设备100可以支持一种或多种视频编解码器。这样,电子设备100可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,mpeg)1,mpeg2,mpeg3,mpeg4等。
[0122]
npu为神经网络(neural-network,nn)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过npu可以实现电子设备100的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
[0123]
外部存储器接口120可以用于连接外部存储卡,例如micro sd卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
[0124]
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,ufs)等。处理器110通过运行存储在内部存储器121的指令,和/或存储在设置于处理器中的存储器的指令,执行电子设备100的各种功能应用以及数据处理。根据本技术的一些实施例,内部存储器121内存储有一套用于进行人脸图像处理的计算机程序(换言之,计算机可读代码),处理器110读取内部存储器121中存储的程序时,执行根据本技术的人脸图像处理方法,对于人脸图像中的眼部进行检测和调整,最终输出经过调整后的人脸图像。具体可以参考下述实施例的人脸图像处理方法。
[0125]
下面,结合图3描述根据本技术实施例的人脸图像处理方法。
[0126]
图3示出了根据本技术一个实施例提供的人脸图像处理方法的流程示意图。
[0127]
如图3所示,概括而言,根据本技术实施例的人脸图像处理方法包括:人脸图像获取步骤(步骤s100)、眼部特征检测步骤(步骤s200)、调整程度确定步骤(步骤s300)以及眼部调整步骤(步骤s400)。
[0128]
下面,以利用电脑进行视频通话为例,对于上述每个步骤的细节逐一进行更详细说明。
[0129]
步骤s100:利用电脑的摄像头获取人脸图像。
[0130]
利用电脑进行视频通话时,一旦视频通话的功能被启用,则自动地或手动地调用其所配置的摄像头,通过该摄像头获取人脸图像。
[0131]
步骤s200:在步骤s100得到的人脸图像上检测眼皮和虹膜的特征,并获取作为眼部特征数据的眼皮关键点、虹膜中心以及虹膜半径。
[0132]
电脑通过其图像处理单元(gpu),在人脸图像上检测包括虹膜在内的眼部特征,获取包括眼皮关键点、虹膜中心以及虹膜半径在内的眼部特征数据。
[0133]
以上以眼皮和虹膜作为眼部特征的实例进行说明。眼部特征可以有多种,例如虹膜、眼皮、眼白等,这些眼部特征可以通过机器学习模型、灰度处理等方式获取。其中,眼皮以及虹膜是对于人脸图像处理为比较重要的眼部特征,人的视线根据眼皮和虹膜特征可以很好地体现。为此,作为重要的眼部特征数据,可以确定眼皮关键点、虹膜中心及虹膜半径。
[0134]
步骤s200,电脑通过其图像处理单元(gpu)来检测并计算眼部特征数据。
[0135]
图3中所示的步骤s200进一步包括下述确定眼角点步骤(步骤s210)、提取眼部区域步骤(步骤s220)和计算眼部特征数据步骤(步骤s230),如图4所示。
[0136]
首先,参考图4-图5,详细描述上述各步骤。
[0137]
步骤s210,首先,基于获取的人脸图像,确定每只眼睛的两个眼角点。
[0138]
作为每只眼睛的关键点之一的两个眼角点,其检测是相对成熟的技术,例如,可以通过机器学习模型在人脸图像上找到眼角点,也可以根据眼部区域与眼皮区域的较大的颜色差异找到眼白与眼皮的交接曲线,再找到此交接曲线最外侧的点,即为眼角点。
[0139]
步骤s220,以所述两个眼角点为基准,在所述人脸图像上提取眼部区域。
[0140]
所谓眼部区域,也就是包括眼睛在内的具有一定大小的区域。由此,能够相对快速、准确地获取眼部区域。
[0141]
作为一个具体实施例,步骤s220可以具体包括:
[0142]
以所述两个眼角点为基准,在所述人脸图像上确定眼部图像;将所述眼部图像处理至具有预定像素值的图像,得到所述眼部区域,其中,所述两个眼角点的连线处于水平状态。
[0143]
也就是说,首先,根据两个眼角点在人脸图像上确定眼部图像。
[0144]
两个眼角点是眼部的重要关键点,两个眼角点确定了则眼睛的长度确定了,而眼睛的宽度是小于眼睛的长度的,因此,通过两个眼角点即能够大致确定眼睛所在区域,例如可以根据两个眼角点画椭圆或画矩形等包裹眼部,从而确定眼部图像。例如,可以以两个眼角点画出椭圆,从而确定出眼部图像;以一只眼的两个的眼角点连线长度的1.5倍长度为椭圆的长轴,以两个眼角点的连线长度的0.5倍长度为椭圆的短轴。
[0145]
接着,例如,可以通过旋转和缩放的方式将眼部图像固定大小的图像框架内,也可以通过相对较小的图像框架去切割眼部图像,从而将眼部图像处理至具有预定像素的图像。
[0146]
为了便于后续的对人眼进行视线调整,可以先将眼部图像调整至水平状态,再将所述眼部图像处理至具有预定像素值的图像,从而得到眼部区域。眼部图像调整至水平状态的方法多种多样,例如,可以对每只眼的眼角点进行连线,通过旋转的方式将此连线处理为水平直线,得两个眼角点处于水平状态。所谓具有预定像素值,指具有预定尺寸的图像。也就是说,以两个眼角点连线,以平行于该连线的上下边框,以及垂直于该连线的左右边框
进行截取,得到具有一定尺寸的图像,作为眼部区域。由此,可以仅在该眼部区域内进行调整程度的计算并基于此进行调整,能够大大减小计算量,同时能够使得实时调整更顺畅。
[0147]
步骤s230,在所述眼部区域,检测所述眼部特征以获取所述眼部特征数据。
[0148]
也就是说,在提取眼部区域后,在其中检测眼皮和虹膜,并计算出眼部特征数据(眼皮关键点、虹膜的中心以及虹膜的半径)。此后,根据这些眼部特征数据,可以确定如何进行人眼视线调整。
[0149]
接下来,对于计算眼部特征数据步骤进行详细描述。
[0150]
如图5所示,计算眼部特征数据步骤可以具体包括:检测眼皮关键点步骤(步骤s231)、确定眼球部分掩膜步骤(步骤s232)、确定虹膜轮廓步骤(步骤s233)、以及确定所述虹膜中心以及虹膜半径步骤(步骤s234)。
[0151]
下面,针对计算眼部特征数据步骤(步骤s230)的上述每个具体步骤,进行详细说明。
[0152]
步骤s231,在所述眼部区域中,检测眼皮关键点。
[0153]
眼皮关键点提取技术已经比较成熟,在此不进行详述。例如可以通过dlib模型(一种常用人脸关键点检测模型)提取眼皮关键点。
[0154]
步骤s232,基于所述眼皮关键点,确定眼睑以内的眼球部分掩膜。
[0155]
也就是说,通过眼皮关键点,经过拟合得到眼睑以内的眼球部分掩膜。
[0156]
在一个具体示例中,步骤s222可以包括:
[0157]
a):基于所述眼皮关键点,通过二次函数拟合上下眼皮曲线。
[0158]
也就是说,可以通过二次函数将眼皮关键点进行拟合,从而形成眼皮曲线。例如,可以通过椭圆的二次函数或两个抛物线二次函数叠加对眼皮关键点进行拟合。
[0159]
b):对于偏离所述上下眼皮曲线的眼皮关键点进行修正。
[0160]
例如,可以计算眼皮关键点距离眼皮曲线的距离,并设置此距离阈值,当有些关键点距离眼皮曲线超过阈值的时候,可以将此关键点进行移动,以使得此关键点落入距离阈值,而且也可以在眼皮曲线上多设置一些关键点,从而可以形成更加密集的关键点分布。
[0161]
c):在对所述眼皮关键点进行修正后,接着,确定所述眼睑以内的眼球部分掩膜。
[0162]
具体地,可以将修正后的眼皮关键点进行连线,从而形成一个封闭的图像,将此封闭图像内的图像提取出,从而确定了眼睑内眼球部分掩膜。
[0163]
步骤s233,在确定所述眼球部分掩膜之后,基于所述眼球部分掩膜,确定虹膜轮廓。
[0164]
也就是说,对眼球部分掩膜进行处理,从而确定出虹膜轮廓。
[0165]
例如,可以根据虹膜与掩膜中非虹膜区域的颜色差异,虹膜区域较黑,非虹膜区域颜色较浅,对掩膜进行处理,从而获取虹膜区域,虹膜区域的边界为虹膜轮廓。
[0166]
在一个具体示例中,步骤s233可以包括:
[0167]
a),进行亮度均衡以调整所述眼球部分掩膜的灰度值,获得具有预定亮度的灰度图。
[0168]
例如,使用亮度均衡的方法调整掩膜灰度值以获取具有标准亮度的眼部区域灰度图。
[0169]
b),对于所述灰度图进行阈值化处理,得到阈值化后的所述虹膜轮廓。
[0170]
例如,可以对灰度图的灰度值或亮度值设定预定阈值,将不在虹膜预定阈值范围的部分过滤掉,从而得到阈值化后的虹膜轮廓。
[0171]
在阈值化处理过程中,也可以利用形态学开运算消除小物体(毛边等),便于获得更精确的虹膜轮廓。
[0172]
步骤s234,基于所述虹膜轮廓确定所述虹膜中心以及虹膜半径。
[0173]
也就是说,通过虹膜轮廓计算出虹膜中心以及虹膜半径。通常,眼睑内虹膜的横向位置是完整的,虹膜的纵向位置部分被眼皮遮挡,可以根据虹膜轮廓横向部分对虹膜轮廓进行拟合,进而计算出虹膜中心以及虹膜半径。
[0174]
在一个具体示例中,步骤s234可以包括:
[0175]
对于所述阈值化后的所述虹膜轮廓进行椭圆拟合,以拟合得到的椭圆的中心为所述虹膜中心,以所述椭圆的长半轴为虹膜半径。
[0176]
由于虹膜的横向部分没有被遮挡是完整的,因此以该横向部分进行椭圆拟合,以拟合得到的虹膜轮廓的椭圆的中心为虹膜中心,以拟合得到虹膜轮廓的椭圆的长半轴为虹膜半径。
[0177]
在计算完眼部特征数据之后,需要确定眼部调整程度,也就是确定需要将当前的眼部特征调整到具体什么程度。下面,参考图3和图6对眼部调整程度确定步骤进行详细说明。
[0178]
如图3中所示的根据本技术一些实施例,基于所述眼部特征数据,确定眼部调整程度的步骤(步骤s300)的具体实施过程包括如图6所示的步骤。
[0179]
步骤s310,基于所述眼部特征数据判断当前是否正在眨眼。
[0180]
由于眨眼时眼部调整位置和未眨眼时眼部调整程度是不同的,因此,为了更合理地确定眼部调整程度,首先,基于所述眼部特征数据判断当前是否正在眨眼。
[0181]
当判断为当前未眨眼,则执行步骤s320,即基于本帧人脸图像的所述眼部特征数据,确定所述眼部调整程度;
[0182]
当判断为当前正在眨眼,则执行步骤s330,即:调用之前最后一帧未眨眼图像的所述眼部调整程度。
[0183]
也就是说,如果当前正在眨眼,则考虑到视频图像的连续性,并且为了降低计算量、提高图像质量,直接调用此前的最后一帧未眨眼图像的眼部调整程度。
[0184]
关于如何判断当前是否正在眨眼,可以执行如下操作:基于阈值化后的所述虹膜轮廓,计算虹膜暴露部分占虹膜圆的比例,得到虹膜占比;根据所述眼皮关键点计算眼睛纵横比;根据所述虹膜占比以及所述眼睛纵横比,判断当前是否正在眨眼。
[0185]
例如,可以基于虹膜轮廓计算出虹膜轮廓所围成图像的面积,基于虹膜半径(r)计算出虹膜圆面积(πr2),则虹膜占比=虹膜轮廓所围成图像的面积/虹膜圆面积。此外,可以对眼皮关键点进行椭圆拟合,此椭圆的短轴长度/长轴长度则为眼角的纵横比。可以判定虹膜占比小于预定虹膜占比且眼睛纵横比小于预定眼睛纵横比为眨眼。
[0186]
根据本技术一些实施例,步骤s320包括:虹膜中心调整位置的确定步骤和眼皮调整位置确定步骤。
[0187]
虹膜中心调整位置确定步骤:基于所述两个眼角点,确定虹膜中心调整位置。
[0188]
例如,可以计算出两个眼角点连线中心在竖直方向向下移动预定距离(也可以理
解为图像竖直方向向下移动预定像素)的位置,确定为虹膜中心调整位置。其中,所谓“预定距离”,可以通过采集人脸正视图像进行机器学习得到,也可以根据经验来设定。
[0189]
为了消除异常数据带来的影响,可以利用多帧虹膜位置做平滑处理,例如平滑处理的本帧虹膜中心调整位置实际值=上一帧虹膜中心调整位置*40% 本帧虹膜中心调整位置计算值*60%。
[0190]
眼皮调整位置确定步骤:基于所述虹膜中心调整位置,确定眼皮调整位置,所述眼皮调整位置包括上眼皮最高点调整位置和下眼皮最低点调整位置。例如,上眼皮最高点的调整位置可以为与虹膜中心在竖直方向上距离为4/5r-l的点,其中,r为虹膜半径,l可以为经过多次测试效果比较好的数值,下眼皮最低点的调整位置可以为与虹膜圆最低点位置在竖直方向上距离为l的点。
[0191]
确定了眼部调整程度之后,则基于该眼部调整程度对于眼部特征进行调整,也就是执行眼部调整步骤s400。下面,参考图7对该步骤进行详细说明。
[0192]
也就是说,将眼部特征按照眼部特征的调整位置进行调整,可以以平移、缩放或旋转等方式进行。
[0193]
进一步地,参考图7,步骤s400可以包括眼皮调整步骤(步骤s410)以及虹膜调整(步骤s420)。
[0194]
具体地,如图7所示,步骤s410可以包括:分别将上眼皮最高点调整到所述上眼皮最高调整位置,下眼皮最低点调整到所述下眼皮最低点调整位置,并对在所述眼部区域内对于其余眼皮像素进行逐列像素平移,以进行眼皮调整。
[0195]
例如,可以通过平移的方式将上眼皮最高点调整到所述上眼皮最高调整位置,下眼皮最低点调整到所述下眼皮最低点调整位置,其余眼皮像素根据所设计的符合真实眼皮运动规律和形状的曲线函数进行逐列平移。
[0196]
在所述眼部区域内的中部预定范围内进行逐列像素平移,并在像素平移后,还可以基于所述眼部区域内的所述预定范围内之外的区域进行缩放以填充平移后产生的空隙。
[0197]
例如,在逐列像素平移过程中可以预留一定宽度的像素不进行像素平移,在平移结束后,将此前预留的预留一定宽度的像素进行缩放,从而填补空隙。由此,能够防止处理后眼部区域图像贴回原始图像造成的割裂感,使得眼皮调整效果较好。
[0198]
步骤s420可以包括:基于所述虹膜中心,合成虹膜图像,并将所述虹膜中心移动到所述虹膜中心调整位置,以进行虹膜调整。也就是说,基于本帧图像计算得到的虹膜中心以及虹膜半径,合成虹膜图像;然后,将虹膜中心移动到上述眼部调整程度步骤中所确定的虹膜中心调整位置,即完成虹膜调整。
[0199]
根据本技术一些实施例,眼部调整步骤s400,在眼皮调整步骤之后、且在虹膜调整步骤之前,还可以包括眼白补偿步骤s430。
[0200]
具体地,在得到所述阈值化后的所述虹膜轮廓后,还根据所述眼球部分掩膜与所述阈值化后的所述虹膜轮廓获取眼白部分掩膜,步骤s430中,基于所述眼白部分掩膜进行眼白补偿。
[0201]
眼白补偿根据本技术一些实施例,获取所述人脸图像后且在检测所述眼部特征之前还包括:
[0202]
基于所述人脸图像,获取头部特征数据;
[0203]
基于所述头部特征数据,确定头部旋转角度,并基于所述头部旋转角度对于所述人脸图像进行旋转处理,
[0204]
在所述旋转处理后,基于旋转处理后的所述人脸图像检测所述眼部特征以获取所述眼部特征数据。
[0205]
由此,对人脸和眼部特征均进行调整,使得视频双方交流更自然,避免由于显示器位置的因素,用户因为观看终端设备的屏幕导致人脸倾斜而造成视频通话交流或拍照不自然的情况。
[0206]
下面,结合图8描述根据本技术一实施例的人脸图像处理装置1000。
[0207]
如图8所示,根据本技术实施例的人脸图像处理装置1000,包括图像采集模块500,特征检测模块600,调整程度确定模块700,以及调整模块800。
[0208]
其中,图像采集模块500用于获取人脸图像。图像采集模块例如可以是手机中的图像传感器等。
[0209]
特征检测模块600用于基于所述人脸图像检测眼部特征,获取眼部特征数据,其中,所述眼部特征包括眼皮及虹膜,所述眼部特征数据包括眼皮关键点、虹膜中心以及虹膜半径。
[0210]
调整程度确定模块700用于基于所述眼部特征数据确定眼部调整程度。
[0211]
调整模块800用于基于所述眼部特征数据,对于所述人脸图像中的所述眼部特征进行调整,得到处理后图像。
[0212]
其中,特征检测模块600可以进一步包括眼角点确定模块、眼部区域提取模块及眼部特征数据计算模块。所述眼角点确定模块用于基于所述人脸图像,确定每只眼睛的两个眼角点。所述眼部区域提取模块用于以所述两个眼角点为基准,在所述人脸图像上提取眼部区域。所述眼部特征数据计算模块用于在所述眼部区域,检测所述眼部特征以获取所述眼部特征数据。
[0213]
调整程度确定模块700可以进一步包括眨眼判断模块以及调整程度获取模块。眨眼判断模块,用于基于所述眼部特征数据判断当前是否正在眨眼。调整程度获取模块,用于当判断为当前未眨眼,则基于本帧人脸图像的所述眼部特征数据,确定所述眼部调整程度,所述眼部调整程度包括眼皮调整位置以及虹膜中心调整位置;当判断为当前正在眨眼,则调用之前最后一帧未眨眼图像的所述眼部调整程度。
[0214]
调整模块800可以进一步包括眼皮调整模块、虹膜调整模块。眼皮调整模块用于用于分别将上眼皮最高点调整到所述上眼皮最高调整位置,下眼皮最低点调整到所述下眼皮最低点调整位置,并对在所述眼部区域内对于其余眼皮像素进行逐列像素平移,以进行眼皮调整。虹膜调整模块用于基于所述虹膜中心合成虹膜图像,并将所述虹膜中心移动到所述虹膜中心调整位置。调整模块800还可以包括眼白补偿模块,用于在所述眼皮调整后,基于眼白部分掩膜进行眼白补偿。
[0215]
下面,参考图9-图15,结合具体实施例对人脸图像处理方法进行详细说明。
[0216]
图9示出了根据本技术一个具体实施例提供的人脸图像处理的流程示意图。
[0217]
步骤s1,人脸图像输入。例如,通过终端设备打开视频软件或拍照软件,调用摄像头拍摄人脸图像。
[0218]
步骤s2,眼部区域提取。
[0219]
首先,根据每只眼睛的两个眼角点来截取眼部图像,例如:截取的宽度是两个眼角点距离的2倍,高度是宽度*0.48。
[0220]
接着,把眼部图像旋转和/或缩放到固定大小的图像上,例如200*96像素,眼睛处于正中间,两个眼角点连线处于水平状态,所提取的区域如图10左图所示。
[0221]
将输入的特征点集对应变化到眼部区域图像上。
[0222]
步骤s3,眼皮关键点修正。
[0223]
基于已知的眼皮关键点,利用二次函数拟合的方法进行优化。通过拟合出上下眼皮曲线,对偏离曲线的关键点修正,并提取更加密集的关键点分布。如图10右图所示。
[0224]
步骤s4,虹膜检测及参数提取。
[0225]
根据优化后的眼皮关键点,获取眼睑以内眼球部分的掩膜,示于图11左图。
[0226]
此后,使用亮度均衡的方法调整掩膜灰度值以获取具有标准亮度的眼部区域灰度图。
[0227]
进行阈值化处理,并利用形态学开运算消除小物体,得到阈值化后虹膜部分的轮廓,如图11中图所示。
[0228]
最后,使用椭圆拟合所述虹膜部分轮廓,将得到的椭圆中心作为虹膜中心,得到的椭圆长半轴作为虹膜半径。所拟合的虹膜边缘如图11右图中眼球边缘的圆圈所示。为提高稳定性,可连续统计多帧虹膜的半径,以其平均值作为标准虹膜半径。
[0229]
步骤s5,检测当前是否正在眨眼。
[0230]
具体通过如下步骤来确定是否眨眼:
[0231]
计算虹膜暴露部分占虹膜圆的比例,即虹膜占比;
[0232]
根据上下眼皮关键点计算得到眼睛纵横比;
[0233]
当虹膜占比小于x且眼睛纵横比小于y时,判定当前正在眨眼。
[0234]
若判断为未眨眼,则进行虹膜中心调整位置及眼皮调整程度的计算,若判断为眨眼,则以上一帧未眨眼图像计算,眼皮调整幅度与上一个未眨眼帧的眼皮调整幅度保持一致且虹膜中心调整位置也参考上一帧。
[0235]
在判断为未眨眼的情况下,执行步骤s6、s7,然后执行步骤s9进行眼皮调整;在判断为眨眼的情况下,执行步骤s8,此后执行步骤s9进行眼皮调整。下面,首先就步骤s6、s7、s8进行详细说明。
[0236]
步骤s6,虹膜中心调整位置计算:计算在竖直方向上两眼角连线中心偏下m像素的位置为虹膜中心应调整的位置,m为经验值。为了消除异常数据的影响,可以利用多帧的虹膜位置做平滑处理,例如本帧的实际调整位置=上一帧实际调整位置*40% 本帧计算调整位置*60%。
[0237]
步骤s7,眼皮调整程度计算。
[0238]
其中,如图12所示,上眼皮最高点调整到的位置l1应该固定在距离虹膜中心(4/5r-d)的位置,下眼皮最低点调整到的位置l2应该固定在距离虹膜圆形底端d的位置,其中d为经验值,r为虹膜半径。为了消除异常数据的影响,上下眼皮的调整位置可以同样利用多帧信息进行平滑处理。
[0239]
步骤s8,调用之前最后一帧未眨眼图像的计算结果,即调用在本帧之前最后一帧未眨眼图像计算的道的眼部调整程度。此后,使用调用的计算结果执行步骤s9等。
[0240]
步骤s9,眼皮调整。
[0241]
通过符合真实眼皮运动规律和形状的曲线函数,并根据“视线调整程度计算”中所确定的上眼皮最高点和下眼皮最低点位置,将上下眼皮按照逐列像素平移 缩放的方式进行调整。具体步骤举例如下:
[0242]
上眼皮运动规律符合圆锥曲线形式。定义圆锥曲线f
up
(x),(x∈[0,π]),,并将眼部区域图像的像素坐标按照函数g(
·
)映射到圆锥曲线f
up
(x)的取值空间,公式如下述式(1)和式(2)所示,其中w表示眼部图像的水平宽度,i表示第i列像素。
[0243][0244][0245]
记视线调整的程度(即上眼皮最高点的移动距离)为f,则最终每列移动的距离为f
i
=f*f
up
(g(i))。
[0246]
此外,为了防止处理后眼部区域图像贴回原始图像造成的割裂感,眼部区域图像周围应预留一定宽度w
save
像素不参与像素平移处理。
[0247]
设眼部区域图像的高度为h,则每列像素移动过后将会产生h-f
i-w
save
宽度的空隙,将上眼皮平移过程中预留宽度的像素经过缩放,调整为h-f
i
宽度大小,填补平移过程中产生的空隙。
[0248]
下眼皮采用的眼皮运动曲线函数f
down
(x)及像素坐标映射函数g(i)如下述式(3)所示:
[0249][0250]
与上眼皮调整类似地,根据下眼皮视线调整程度,对下眼皮像素进行平移、缩放,完成调整。
[0251]
步骤s10,眼白补偿。
[0252]
在获取眼球部分掩膜和阈值化得到虹膜轮廓的基础上获取眼白部分的掩膜,并对眼白区域像素进行水平拉伸以覆盖虹膜颜色。
[0253]
这样做是由于调整虹膜时涉及到对虹膜位置及暴露面积的调整,需要采取一定方法将原始虹膜部分进行遮盖并保留原始眼白纹理。眼白部分掩膜如图13左图所示,眼白补偿示例如图13右图所示。
[0254]
步骤s11,虹膜合成。
[0255]
在正常睁眼情况下,由于眼皮的遮挡,只有一部分虹膜是可见的。在视线矫正过程中,需要对原始图像中眼皮遮挡的部分进行合成,以保证在虹膜暴露区域有变化时图像的
真实性。具体做法是:
[0256]
将阈值化得到的虹膜区域绕虹膜中心旋转,并不断进行插值叠加,直到合成较为完整的虹膜图像,如图14的左图所示。
[0257]
将合成虹膜放置到“视线调整程度计算”中得到的虹膜位置处,如图14的右图所示。
[0258]
步骤s12,最终,输出矫正后的效果图,如图15右图所示。相比于原图,即图15中的左图,对人脸图像中的人眼视线进行了实时矫正,使得原图中视线向上方的图像,矫正为正对前方的图像,将此矫正后图像输出至对方的电脑上进行视频通话,则在视频通话过程中,能够使得双方交流更自然。
[0259]
此人脸图像处理方法,通过全面精细的眼部特征提取、基于眼皮运动曲线的眼皮调整、真实感的虹膜合成及眼球调整,以及对眨眼及未眨眼图像的分别处理,实现真实、自然的视线矫正效果。相比现有技术,该方法的优点有:
[0260]
不需要深度相机等特殊硬件的支持;
[0261]
运行速度快,在os(win 10 64位)、cpu(core i7-6700)、ram(8gb)的测试环境下,单独处理一帧图像用时13ms;
[0262]
不依赖头部旋转,单独调整视线,应用范围较广,亦可与头部旋转技术结合使用;
[0263]
无需预先存储用户照片,无需获取海量训练数据。
[0264]
下面,结合具体实施例对应用本技术的人脸图像处理方法的一种视频通话方法进行详细说明。
[0265]
利用本技术的人脸图像处理方法进行视频通话时,可以在视频通话开启时或视频通话中,通过启动视线矫正功能来执行人脸图像处理,并将处理后的图像输出到视频通话对象的终端设备上。其中,启动视线矫正功能,可以通过预设在视频通话软件中的开关选项来启动,也可以通过视频通话应用中的视线矫正选择界面中的选项来启动。
[0266]
根据本技术的一个具体实施例,视频通话方法包括:
[0267]
1)启动视频通话应用。例如,人员打开手机进行视频通话应用,从而进行视频通话。
[0268]
2)检测视频通话中的人员的视线是否处于正视。如果判断为正视,则直接进入视频通话界面。
[0269]
如果判断为不是正视,则所述终端设备出现视线矫正确认选项。例如,手机处理器通过屏幕跳出具有是否选项的弹窗。
[0270]
3)用户选择是否进行视线矫正。例如,人员通过手触摸手机屏幕跳出来的具有是否选项的弹窗。
[0271]
当用户选择视线矫正功能,则启动视线矫正功能,也就是说手机的处理器调用本技术的人脸图像处理方法的程序,进行视线矫正。
[0272]
当用户未选择视线矫正功能,则不启动视线矫正功能。
[0273]
由此,能够满足用户根据每次视频通话对于使用视线矫正功能的意愿去选择,增加了用户的自主性。
[0274]
下面,结合图16-图17说明根据本技术一个实施例提供的人脸图像处理方法的触发过程。
[0275]
如图16所示,人脸图像处理方法的触发流程包括:
[0276]
步骤s20,原始人脸图像输入。例如,通过电脑启动视频通话功能,从而触发摄像头拍摄人脸图像。
[0277]
步骤s21,视线估计。也就是说,处理器对于原始人脸图像中的人眼视线进行检测。
[0278]
步骤s22,判定是否正视。也就是说,基于检测结果,处理器进一步判断是否处于正视状态。
[0279]
如果判断为正视,则执行步骤s23,即输出原始人脸图像;如果判断为非正视状态,则执行步骤s24。
[0280]
步骤s24,当检测到为非正视状态时,电脑屏幕跳出视线矫正开启选项供用户选择。
[0281]
步骤s25,用户对是否开启视线矫正进行选择。当用户选择否,则执行步骤s23,即输出原始人脸图像,如果用户选择是,则进入步骤s26,即执行下一步进行视线矫正。
[0282]
步骤s26,电脑执行视线矫正流程,也就是本技术提供的人脸图像处理流程。
[0283]
步骤s27,输出视线矫正后图像。
[0284]
需要说明的是,对于手动触发视线矫正的情况,除了上述方法之外,还可以在启动视频通话功能之初,通过预设在视频通话应用的设置中的视线矫正选项打开或关闭视线矫正功能。
[0285]
另外,图17示出了另一种触发过程,也就是说在判断为非正视的情况下,自发启动视线矫正过程并最终输出视线矫正后图像。其包括:
[0286]
步骤s30,输入原始人脸图像;
[0287]
步骤s31,视线估计;
[0288]
步骤s32,判断是否正视。
[0289]
当判断为正视时,执行步骤s33,输出原始人脸图像。
[0290]
当判断为非正视时,执行步骤s34,即自动启动视线矫正流程,也就时本技术提供的人脸图像处理流程。并在处理结束后,执行步骤s35,输出视线矫正后图像。
[0291]
此外,本技术还提供过一种计算机程序产品,在运行该计算机程序时,能够实现上述实施例的人脸图像处理方法。
[0292]
进一步,本技术还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,在运行该计算机程序时,能够实现上述实施例的人脸图像处理方法。
[0293]
下面,参考图18对本技术的一个实施例的设备1200进行说明。图18所示为根据本技术的一个实施例的设备1200的框图。设备1200可以包括耦合到控制器中枢1203的一个或多个处理器1201。对于至少一个实施例,控制器中枢1203经由诸如前端总线(front side bus,fsb)之类的多分支总线、诸如快速通道互连(quick path interconnect,qpi)之类的点对点接口、或者类似的连接1206与处理器1201进行通信。处理器1201执行控制一般类型的数据处理操作的指令。在一实施例中,控制器中枢1203包括,但不局限于,图形存储器控制器中枢(graphics memory controller hub,gmch)(未示出)和输入/输出中枢(input output hub,ioh)(其可以在分开的芯片上)(未示出),其中gmch包括存储器和图形控制器并与ioh耦合。
[0294]
设备1200还可包括耦合到控制器中枢1203的协处理器1202和存储器1204。或者,
存储器和gmch中的一个或两者可以被集成在处理器内(如本技术中所描述的),存储器1204和协处理器1202直接耦合到处理器1201以及控制器中枢1203,控制器中枢1203与ioh处于单个芯片中。存储器1204可以是例如动态随机存取存储器(dynamic random access memory,dram)、相变存储器(phase change memory,pcm)或这两者的组合。在一个实施例中,协处理器1202是专用处理器,诸如例如高吞吐量mic处理器(many integerated core,mic)、网络或通信处理器、压缩引擎、图形处理器、通用图形处理器(general purpose computing on gpu,gpgpu)、或嵌入式处理器等等。协处理器1202的任选性质用虚线表示在图18中。
[0295]
存储器1204作为计算机可读存储介质,可以包括用于存储数据和/或指令的一个或多个有形的、非暂时性计算机可读介质。例如,存储器1204可以包括闪存等任何合适的非易失性存储器和/或任何合适的非易失性存储设备,例如一个或多个硬盘驱动器(hard-disk drive,hdd(s)),一个或多个光盘(compact disc,cd)驱动器,和/或一个或多个数字通用光盘(digital versatile disc,dvd)驱动器。
[0296]
在一个实施例中,设备1200可以进一步包括网络接口(network interface controller,nic)1206。网络接口1206可以包括收发器,用于为设备1200提供无线电接口,进而与任何其他合适的设备(如前端模块,天线等)进行通信。在各种实施例中,网络接口1206可以与设备1200的其他组件集成。网络接口1206可以实现上述实施例中的通信单元的功能。
[0297]
设备1200可以进一步包括输入/输出(input/output,i/o)设备1205。i/o 1205可以包括:用户界面,该设计使得用户能够与设备1200进行交互;外围组件接口的设计使得外围组件也能够与设备1200交互;和/或传感器设计用于确定与设备1200相关的环境条件和/或位置信息。
[0298]
值得注意的是,图18仅是示例性的。即虽然图18中示出了设备1200包括处理器1201、控制器中枢1203、存储器1204等多个器件,但是,在实际的应用中,使用本技术各方法的设备,可以仅包括设备1200各器件中的一部分器件,例如,可以仅包含处理器1201和nic1206。图18中可选器件的性质用虚线示出。
[0299]
根据本技术的一些实施例,作为计算机可读存储介质的存储器1204上存储有指令,该指令在计算机上执行时使系统1200执行根据上述实施例中的图像纹理增强方法,具体可参照上述实施例的方法,在此不再赘述。
[0300]
图19所示为根据本技术的一实施例的soc(system on chip,片上系统)1300的框图。在图19中,相似的部件具有同样的附图标记。另外,虚线框是更先进的soc的可选特征。在图19中,soc1300包括:互连单元1350,其被耦合至应用处理器1310;系统代理单元1380;总线控制器单元1390;集成存储器控制器单元1340;一组或一个或多个协处理器1320,其可包括集成图形逻辑、图像处理器、音频处理器和视频处理器;静态随机存取存储器(static random access memory,sram)单元1330;直接存储器存取(dma)单元1360。在一个实施例中,协处理器1320包括专用处理器,诸如例如网络或通信处理器、压缩引擎、gpgpu、高吞吐量mic处理器、或嵌入式处理器等。
[0301]
静态随机存取存储器(sram)单元1330中可以包括用于存储数据和/或指令的一个或多个计算机可读介质。计算机可读存储介质中可以存储有指令,具体而言,存储有该指令
的暂时和永久副本。该指令可以包括:由处理器中的至少一个单元执行时使soc1300执行根据上述实施例中的计算方法,具体可参照上述实施例的方法,在此不再赘述。
[0302]
本技术公开的机制的各实施例可以被实现在硬件、软件、固件或这些实现方法的组合中。本技术的实施例可实现为在可编程系统上执行的计算机程序或程序代码,该可编程系统包括至少一个处理器、存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。
[0303]
可将程序代码应用于输入指令,以执行本技术描述的各功能并生成输出信息。可以按已知方式将输出信息应用于一个或多个输出设备。为了本技术的目的,处理系统包括具有诸如例如数字信号处理器(digital signal processor,dsp)、微控制器、专用集成电路(application specific integrated circuit,asic)或微处理器之类的处理器的任何系统。
[0304]
程序代码可以用高级程序化语言或面向对象的编程语言来实现,以便与处理系统通信。在需要时,也可用汇编语言或机器语言来实现程序代码。事实上,本技术中描述的机制不限于任何特定编程语言的范围。在任一情形下,该语言可以是编译语言或解释语言。
[0305]
在一些情况下,所公开的实施例可以以硬件、固件、软件或其任何组合来实现。所公开的实施例还可以被实现为由一个或多个暂时或非暂时性机器可读(例如,计算机可读)存储介质承载或存储在其上的指令,其可以由一个或多个处理器读取和执行。例如,指令可以通过网络或通过其他计算机可读介质分发。因此,机器可读介质可以包括用于以机器(例如,计算机)可读的形式存储或传输信息的任何机制,包括但不限于,软盘、光盘、光碟、光盘只读存储器(compact disc read only memory,cd-roms)、磁光盘、只读存储器(read only memory,rom)、随机存取存储器(ram)、可擦除可编程只读存储器(erasable programmable read only memory,eprom)、电可擦除可编程只读存储器(electrically erasable programmable read only memory,eeprom)、磁卡或光卡、闪存、或用于利用因特网以电、光、声或其他形式的传播信号来传输信息(例如,载波、红外信号数字信号等)的有形的机器可读存储器。因此,机器可读介质包括适合于以机器(例如,计算机)可读的形式存储或传输电子指令或信息的任何类型的机器可读介质。
[0306]
在附图中,可以以特定布置和/或顺序示出一些结构或方法特征。然而,应该理解,可能不需要这样的特定布置和/或排序。而是,在一些实施例中,这些特征可以以不同于说明书附图中所示的方式和/或顺序来布置。另外,在特定图中包括结构或方法特征并不意味着暗示在所有实施例中都需要这样的特征,并且在一些实施例中,可以不包括这些特征或者可以与其他特征组合。
[0307]
需要说明的是,本技术各设备实施例中提到的各单元/模块都是逻辑单元/模块,在物理上,一个逻辑单元/模块可以是一个物理单元/模块,也可以是一个物理单元/模块的一部分,还可以以多个物理单元/模块的组合实现,这些逻辑单元/模块本身的物理实现方式并不是最重要的,这些逻辑单元/模块所实现的功能的组合才是解决本技术所提出的技术问题的关键。此外,为了突出本技术的创新部分,本技术上述各设备实施例并没有将与解决本技术所提出的技术问题关系不太密切的单元/模块引入,这并不表明上述设备实施例并不存在其它的单元/模块。
[0308]
需要说明的是,在本专利的示例和说明书中,诸如第一和第二等之类的关系术语
仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0309]
虽然通过参照本技术的某些优选实施例,已经对本技术进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本技术的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献