一种检测像素点到边缘距离的方法及系统的制作方法

文档序号:10613677阅读:322来源:国知局
一种检测像素点到边缘距离的方法及系统的制作方法
【专利摘要】本公开涉及一种检测像素点到边缘距离的方法及系统,所述方法步骤包括:对渐变区域中任一像素点,找到距离该像素点最近的人脸轮廓特征点,获取所述最近的人脸轮廓特征点所在的人脸轮廓边;计算该像素点到所述最近的人脸轮廓特征点所在人脸轮廓边的距离。本公开对渐变区域中任一像素点,不需计算该像素点到所有人脸轮廓边的距离,因而具有计算量小,运算简单,计算速度快,能够快速提高渐变区域像素点替换速度的特点。
【专利说明】
一种检测像素点到边缘距离的方法及系统
技术领域
[0001] 本公开涉及图像处理,具体地讲,涉及一种检测像素点到边缘距离的方法及系统。
【背景技术】
[0002] 图像或视频处理中存在人脸变形或替换的需求,在进行人脸变形或替换时,获取 的人脸轮廓特征点越多,则变形或替换后的图像融合效果越自然。
[0003] 在人脸变形或替换的过程中,当人脸轮廓特征点越多时,计算量将非常庞大,且会 容易造成人脸实时变形或替换延迟、卡顿等现象。因此,如何寻找一种快速的解决方案以减 少计算量,提高实时处理的流畅性,则成为现实需要。

【发明内容】

[0004] 针对上述问题,本公开提供了一种检测像素点到边缘距离的方法及系统。
[0005] -种检测像素点到边缘距离的方法,所述方法包括下述步骤:
[0006] S100、对渐变区域中任一像素点,对找到的距离该像素点最近的人脸轮廓特征点, 获取该人脸轮廓特征点所在的人脸轮廓边;
[0007] 其中,渐变区域是在进行人脸替换或局部变形时,需要设置透明度的区域;
[0008] S200、计算该像素点到获取的人脸轮廓边的距离;其中:所述人脸轮廓边为连接相 邻两个人脸轮廓特征点之间的线段。
[0009] 优选的,在步骤S100之前,还包括步骤:
[0010] S000、确定渐变区域。
[0011 ] 进一步地,步骤S000进一步包括下述步骤:
[0012] S001、计算人脸面部任一像素点到所有人脸轮廓特征点的距离,进而获得该像素 点到所有人脸轮廓特征点的最短距离;
[0013] S002、若步骤S001中计算得到的最短距离大于设定的渐变区域判断阈值,则该像 素点不属于构成渐变区域的像素点集合;否则,该像素点属于构成渐变区域的像素点集合。
[0014] 优选的,所述渐变区域判断阈值根据所述人脸轮廓边的长度之和设定。
[0015] 此外,在另一个实施例中,本公开揭示了一种检测像素点到边缘的系统,所述系 统:
[0016] 人脸轮廓边获取模块和距离计算模块;其中:
[0017] 所述人脸轮廓边获取模块,用于:对渐变区域中任一像素点,对找到的距离该像素 点最近的人脸轮廓特征点,获取该人脸轮廓特征点所在的人脸轮廓边,并将该像素点和该 人脸轮廓边输出给距离计算模块;其中:所述渐变区域是根据像素点至人脸轮廓边的距离 设置像素点的相应透明度的区域;
[0018] 所述距离计算模块,用于:接收所述人脸轮廓边获取模块输出的像素点和人脸轮 廓边,计算该像素点到该人脸轮廓边的距离;其中:所述人脸轮廓边为连接相邻两个人脸轮 廓特征点之间的线段。
[0019] 优选的,所述系统还包括:
[0020] 渐变区域确定模块,用于:将确定的渐变区域输出给人脸轮廓边获取模块。
[0021 ]进一步地,所述人脸轮廓边获取模块进一步包括下述单元:
[0022]计算单元,用于:计算人脸面部任一像素点到人脸轮廓特征点的距离,进而获得该 像素点到所有人脸轮廓特征点的最短距离;将该像素点及所述最短距离输出给判断单元; [0023]判断单元,用于:接收计算单元输出的像素点及最短距离,并将所述最短距离与渐 变区域判断阈值进行比较;若所述最短距离大于所述渐变区域判断阈值,则接收的像素点 不属于构成渐变区域的像素点集合;否则,该接收的像素点属于构成渐变区域的像素点集 合。
[0024] 优选的,所述渐变区域判断阈值根据所述人脸轮廓边的长度之和设定。
[0025] 本公开不需要逐个计算渐变区域内像素点到相邻脸型边缘轮廓点构成的轮廓边 的距离来获得最短距离,而是通过先找到距离最短的那个脸型边缘轮廓点,再计算到其所 在轮廓边的距离,进而找到距离该像素点的最近的轮廓边,因而具有计算量小,运算简单, 计算速度快,能够快速提高渐变区域像素点替换速度的特点。
【附图说明】
[0026]图1-1为有向线段外一点到该线段距离的第一种情况示意图;
[0027]图1-2为有向线段外一点到该线段距离的第二种情况示意图;
[0028]图1-3为有向线段外一点到该线段距离的第三种情况示意图;
[0029] 图2-1为依次连接相邻人脸轮廓特征点后构成不闭合曲线示意图;
[0030] 图2-2为依次连接人脸轮廓特征点后构成闭合曲线示意图;
[0031 ]图3为本公开一个实施例中提供的一种检测像素点到边缘的方法流程图;
[0032]图4-1为本公开一个实施例中采用最短距离处理渐变区域的脸型替换图;
[0033]图4-2为本公开一个实施例中未采用最短距离处理渐变区域的脸型替换图。
【具体实施方式】
[0034]在一个实施例中,一种检测像素点到边缘距离的方法,所述方法包括下述步骤: [0035] 一种检测像素点到边缘距离的方法,所述方法包括下述步骤:
[0036] S100、对渐变区域中任一像素点,对找到的距离该像素点最近的人脸轮廓特征点, 获取该人脸轮廓特征点所在的人脸轮廓边;其中,渐变区域是在进行人脸替换或局部变形 时,需要设置透明度的区域;
[0037] S200、计算该像素点到获取的人脸轮廓边的距离;其中:所述人脸轮廓边为连接相 邻两个人脸轮廓特征点之间的线段。
[0038]对于该实施例而言,当要替换或局部变形的人脸区域的人脸轮廓边是一条不闭合 的曲线时,人脸轮廓特征点所在的人脸轮廓边可能有一条,也可能有两条。当要替换或局部 变形的人脸区域的人脸轮廓边是一条闭合曲线时,人脸轮廓特征点所在的人脸轮廓边有两 条。对找到的距离渐变区域中的一个像素点最近的人脸轮廓特征点后,再找到该人脸轮廓 特征点所在的人脸轮廓边,对于有两条人脸轮廓边的情形,计算该像素点到的任意一条人 脸轮廓边的距离都可以解决本发明实施例公开的问题。优选根据渐变区域内每个像素点到 所述人脸轮廓边的距离中的最短距离设定背景图与前景图的权重,可以保证更好的边缘融 合、过渡效果。
[0039] 通常寻找渐变区域内所有像素点到所述人脸轮廓边的最短距离的方法为:依次找 到渐变区域内某个像素点到由各个相邻人脸轮廓边的距离,通过比较后确定该像素点到所 有人脸轮廓边的距离中的最短距离。前述做法中先要求出线段外点P在线段上的投影点P', 则有向线段5罗在::?方向上的投影可以表示如下:
[0040]
[0041 ]式中: _^ ^ JE?
[0042] 若用滅B丨表示向量长度,则η表示:Ig方向上的单位向量,其意义是给所求向量 确定方向;
[0043] 是的两个向量的内积,若0为向量ΑΡ与ΑΒ之间的夹角,则其计算式为:
[0044]
[0045] 那4
卩为上图中线段ΑΡ'的长度值,不带 有方向性。此数值与上述表征方向的7=7整体构成有大小、有方向的新向量 j ΛΒ \ 在:?方向±的投影向量,ρ为投影点。
[0046] 根据得到0
由向量的方向性可知:
[0047] 如果情况是上图1-1所示,那么0<r<l;
[0048] 如果是如图1 -2所示的情况,那么r彡1;
[0049] 如果是如图1 -3所示的情况,那么得到r < 0。
[0050] 故根据r值的不同,点到有向线段的距离d可以计算为:
[0051]
[0052] 由上述计算过程可以看出,如果人脸区域的每个像素点都要计算,那么在像素点 很多的情况下,其计算量将变得非常大,很容易造成延迟、卡顿等现象。
[0053] 但在上述实施例中,所述方法则不需要逐个计算渐变区域内像素点到所有人脸轮 廓边的距离来获得最短距离,而是先找到距离该像素点最近的那个人脸轮廓特征点,再计 算到该人脸轮廓特征点所在的人脸轮廓边的距离,进而找到距离该像素点的最近的人脸轮 廓边。
[0054] 由于求两点之间的距离的计算量远小于求点到边的距离的计算量,因而具有计算 量小,能够快速提高渐变区域像素点替换速率和速度的特点。
[0055] 本公开方法可以应用于整个脸部替换,也可以是局部脸部替换,甚至不局限于人 脸。在一个实施例中,如图2-1所示,应用本方法进行局部脸部变形或替换,Ρ^Ρ^Ρ^Ρ^.Ρν 为均匀分布在人脸边缘轮廓上的人脸轮廓特征点,Ν为颧骨以下部分人脸轮廓特征点数目, 图像渐变区域中的任一像素点Ρ,为了设置渐变区域背景图与前景图的权重,需要计算像素 点Ρ到所有人脸轮廓边的距离中的最短距离。通常做法是:
[0056]①先算出Ρ点在人脸轮廓边PiP2上的投影点Ρ',再计算出Ρ Ρ'两点的距离a;
[0057] ②分别计算P点到其他人脸轮廓边的距离,依次为b、c、d、e···;
[0058] ③比较a、b、c、d、e···的大小,得出P点到所有人脸轮廓边的最短距离。
[0059] 采用本公开的方法,只需先找出距离像素点P最短的人脸轮廓特征点,再计算像素 点P到该人脸轮廓特征点所在人脸轮廓边的距离,就可以获得最短距离,或者获得最短距离 与次最短距离。针对图2-1,该图示意了要替换或局部变形的人脸区域的人脸轮廓边是一条 不闭合的曲线的情形。若距离像素点P最近的人脸轮廓特征点为PiSP N,只需计算像素点P到 PiP2或ΡηΡν的距离,就可以获得最短距离;若距离像素点P最近的人脸轮廓特征点为Pi,l< i<N,则只需计算像素点?到?1-#1或者PTw的距离,此时可以获得两个距离,通过比较可以 确定最短距离与次最短距离。在应用时,若两个距离中的任意一个都能满足图像渐变需要, 则可以在,任选一边用于计算。针对图2-2,该图示意了要替换或局部变形的 人脸区域的人脸轮廓边是一条闭合曲线的情形,那么距离像素点P最近的那个人脸轮廓特 征点所在的边为两条。
[0060] 在一个实施例中,对一个具体的人脸进行替换时,采用本公开的方法首先依次找 到渐变区域中像素点到人脸轮廓特征点的最短距离,再找到最近的人脸轮廓特征点所在的 人脸轮廓边,进而找到该像素点到人脸轮廓边的最短距离或次最短距离,用该最短距离或 次最短距离设置渐变区域中背景图与前景图的比例权重,获得了图4-1中的脸型替换效果 图。图4-2为未采用最短距离来处理脸型替换的人脸局部替换效果图。通过图4-1和图4-2可 以看出,图4-1比图4-2的人脸局部替换更加平滑自然。
[0061 ]优选的,在步骤S100之前,还包括步骤:
[0062] S000、确定渐变区域。
[0063] 进一步地,步骤S000进一步包括下述步骤:
[0064] S001、计算人脸面部任一像素点到所有人脸轮廓特征点的距离,进而获得该像素 点到所有人脸轮廓特征点的最短距离;
[0065] S002、若步骤S001中计算得到的最短距离大于设定的渐变区域判断阈值,则该像 素点不属于构成渐变区域的像素点集合;否则,该像素点属于构成渐变区域的像素点集合。
[0066] 优选的,所述渐变区域判断阈值根据所述人脸轮廓边的长度之和设定。如设所有 人脸轮廓边的长度之和为L,则渐变区域判断阈值为S,S的值可以为Μ倍的L,M的大小可根据 实际需求进行调整。其中:M小于1,M值越大,渐变区域就越大,需要处理的像素点就越多,图 像变换过渡就更有度、更平缓。
[0067] 在一个实施例中,提供了本公开方法的一种实现流程如图3所示:
[0068] S1、设定渐变区域判断阈值;
[0069] S2、获取人脸面部一个未被处理过的像素点;所述未被处理过的像素点是未被判 断过是否为渐变区域内的像素点;
[0070] S3、计算该像素点到所有人脸轮廓特征点的距离,进而获得距离该像素点最近的 人脸轮廓特征点及它们之间的最短距离;
[0071] S4、若S3中计算获得的最短距离大于设定的渐变区域判断阈值,则执行S5;否则, 执行S7;
[0072] S5、获取距离该像素点最近的人脸轮廓特征点所在的人脸轮廓边;
[0073] S6、计算该像素点到获取的人脸轮廓边的距离;当获取的人脸轮廓边为两条时,任 选一条用于计算;
[0074] S7、是否遍历完人脸面部的所有像素点;若遍历完,则退出流程;否则,执行S2。
[0075] 基于所述方法,在一个实施例中提供了一种检测像素点到边缘距离的系统,所述 系统:
[0076]人脸轮廓边获取模块和距离计算模块;其中:
[0077] 所述人脸轮廓边获取模块,用于:对渐变区域中任一像素点,对找到的距离该像素 点最近的人脸轮廓特征点,获取该人脸轮廓特征点所在的人脸轮廓边,并将该像素点和该 人脸轮廓边输出给距离计算模块;其中:所述渐变区域是根据像素点至人脸轮廓边的距离 设置像素点的相应透明度的区域;
[0078] 所述距离计算模块,用于:接收所述人脸轮廓边获取模块像素点和人脸轮廓边,计 算该像素点到该人脸轮廓边的距离;其中:所述人脸轮廓边为连接相邻两个人脸轮廓特征 点之间的线段。
[0079]优选的,所述系统:
[0080] 渐变区域确定模块,用于:将确定的渐变区域输出给人脸轮廓边获取模块。
[0081] 进一步地,所述人脸轮廓边获取模块进一步包括下述单元::
[0082] 所述人脸轮廓边获取模块进一步包括下述单元:
[0083] 计算单元,用于:计算人脸面部任一像素点到人脸轮廓特征点的距离,进而获得该 像素点到所有人脸轮廓特征点的最短距离;将该像素点及所述最短距离输出给判断单元; [0084]判断单元,用于:接收计算单元输出的像素点及最短距离,并将所述最短距离与渐 变区域判断阈值进行比较;若所述最短距离大于所述渐变区域判断阈值,则接收的像素点 不属于构成渐变区域的像素点集合;否则,该接收的像素点属于构成渐变区域的像素点集 合。
[0085] 优选的,所述渐变区域判断阈值根据所述人脸轮廓边的长度之和设定。
[0086] 以上对本公开进行了详细介绍,本文中应用了具体个例对本公开的原理及实施方 式进行了阐述,以上实施例的说明只是用于帮助理解本公开的方法及其核心思想;同时,对 于本领域技术人员,依据本公开的思想,在【具体实施方式】及应用范围上均会有改变之处,综 上所述,本说明书内容不应理解为对本公开的限制。
【主权项】
1. 一种检测像素点到边缘距离的方法,其特征在于,所述方法包括下述步骤: S100、对渐变区域中任一像素点,找到距离该像素点最近的人脸轮廓特征点,获取该人 脸轮廓特征点所在的人脸轮廓边;其中,渐变区域是在进行人脸替换或局部变形时,需要设 置透明度的区域; S200、计算该像素点到获取的人脸轮廓边的距离;其中:所述人脸轮廓边为连接相邻两 个人脸轮廓特征点之间的线段。2. 根据权利要求1所述的方法,其特征在于,优选的,在步骤S100之前,还包括步骤: 5000、 确定渐变区域。3. 根据权利要求2所述的方法,其特征在于,步骤S000进一步包括下述步骤: 5001、 计算人脸面部任一像素点到所有人脸轮廓特征点的距离,进而获得该像素点到 所有人脸轮廓特征点的最短距离; 5002、 若步骤S001中获得到的最短距离大于设定的渐变区域判断阈值,则该像素点不 属于构成渐变区域的像素点集合;否则,该像素点属于构成渐变区域的像素点集合。4. 根据权利要求3所述的方法,其特征在于,所述渐变区域判断阈值根据所述人脸轮廓 边的长度之和设定。5. -种检测像素点到边缘距离的系统,其特征在于,所述系统包括: 人脸轮廓边获取模块和距离计算模块;其中: 所述人脸轮廓边获取模块,用于:对渐变区域中任一像素点,对找到的距离该像素点最 近的人脸轮廓特征点,获取该人脸轮廓特征点所在的人脸轮廓边,并将该像素点和所述人 脸轮廓边输出给距离计算模块;其中:所述渐变区域是根据像素点至人脸轮廓边的距离设 置像素点的相应透明度的区域; 所述距离计算模块,用于:接收所述人脸轮廓边获取模块输出的所述像素点和人脸轮 廓边,计算该像素点到该人脸轮廓边的距离;其中:所述人脸轮廓边为连接相邻两个人脸轮 廓特征点之间的线段。6. 根据权利要求5所述的系统,其特征在于,所述系统还包括: 渐变区域确定模块,用于:将确定的渐变区域输出给人脸轮廓边获取模块。7. 根据权利要求5所述的系统,其特征在于,所述人脸轮廓边获取模块进一步包括下述 单元: 计算单元,用于:计算人脸面部任一像素点到人脸轮廓特征点的距离,进而获得该像素 点到所有人脸轮廓特征点的最短距离;将该像素点及所述最短距离输出给判断单元; 判断单元,用于:接收计算单元输出的像素点及最短距离,并将所述最短距离与渐变区 域判断阈值进行比较;若所述最短距离大于所述渐变区域判断阈值,则接收的像素点不属 于构成渐变区域的像素点集合;否则,该接收的像素点属于构成渐变区域的像素点集合。8. 根据权利要求7所述的系统,其特征在于,所述渐变区域判断阈值根据所述人脸轮廓 边的长度之和设定。
【文档编号】G06T7/00GK105976369SQ201610285223
【公开日】2016年9月28日
【申请日】2016年5月3日
【发明人】郭玉京, 马堃
【申请人】深圳市商汤科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1