首页> 中国专利> 目标区域评估和特征点评估的系统和方法

目标区域评估和特征点评估的系统和方法

摘要

提供了用于目标区域评估和特征点评估的系统和方法。该方法可以包括获取包括目标区域的图像并提取与目标区域相关联的至少两个特征点。对于至少两个特征点中的每一个,该方法还可以包括确定包括特征点的子区域。该方法还可以包括在至少两个特征点上执行第一分组操作,以根据第一规则生成至少两个第一组子区域,并基于至少两个第一组子区域,使用至少两个训练后的模型分别用于处理至少两个第一组子区域,确定与目标区域相关联的置信度。至少两个训练后的模型中的每一个可以与一组模型参数相关联。至少两组模型参数可能是不同的。

著录项

  • 公开/公告号CN113302619A

    专利类型发明专利

  • 公开/公告日2021-08-24

    原文格式PDF

  • 申请/专利权人 浙江大华技术股份有限公司;

    申请/专利号CN201880100467.X

  • 发明设计人 俞旭锋;

    申请日2018-12-27

  • 分类号G06K9/00(20060101);

  • 代理机构51253 成都七星天知识产权代理有限公司;

  • 代理人倪娜

  • 地址 310053 浙江省杭州市滨江区滨安路1187号

  • 入库时间 2023-06-19 12:19:35

说明书

技术领域

本申请总体上涉及面部识别,尤其涉及用于评估与图像中的目标区域有关的准确度和/或与目标区域相关联的特征点的提取有关的准确度的方法和系统。

背景技术

面部检测是一种用于识别数字图像中人脸的几何结构的计算机视觉技术。面部检测在各种领域中发挥着重要作用,例如视频监控、电子支付、解锁智能手机等。面部检测也是面部识别的重要过程。面部检测结果的准确性可能会显著影响面部识别结果的准确性。具体地,面部检测通常是指用于确定图像中是否存在面部和确定与图像中面部相关联的位置和/或其他参数的过程。例如,可以在面部检测过程中确定包括面部的目标区域。在一些情况下,目标区域的确定可能由于诸如姿势变化、遮挡、夸张表情、光照变化等或其任意组合的因素而不准确。因此,期望提供更有效的系统和方法,用于评估与包括面部的目标区域相关联的准确度。

发明内容

根据本申请的一个方面,提供了一种系统。所述系统可以包括包含一组指令的至少一个存储介质和与所述存储介质通信的至少一个处理器,其中当执行所述指令时,可以指示所述至少一个处理器以使所述系统获取包括目标区域的图像,并提取与所述目标区域相关联的至少两个特征点。对于所述至少两个特征点中的每一个,可以针对所述至少一个处理器使所述系统确定包括所述特征点的子区域。所述至少一个处理器还可以使所述系统对所述至少两个特征点执行第一分组操作,以根据第一规则生成至少两个第一组子区域,并基于所述至少两个第一组子区域,使用至少两个训练后的模型分别处理所述至少两个第一组子区域,从而确定与所述目标区域相关联的置信度。所述至少两个训练后的模型中的每一个与一组模型参数相关联,并且至少两组模型参数是不同的。

在一些实施例中,为了基于所述至少两个第一组子区域,分别使用用于处理所述至少两个第一组子区域的至少两个训练后的模型来确定与所述目标区域相关联的置信度,所述至少一个处理器用于使所述系统对于所述至少两个第一组子区域中的每个组,确定准确度参数,所述准确度参数指示所述第一组子区域中的特征点的提取是否准确。所述至少一个处理器还可以用于使所述系统基于所述至少两个第一组子区域的所述准确度参数确定置信度。

在一些实施例中,所述置信度用于评估与所述目标区域相关的第一准确度或与所述目标区域相关联的特征点的提取相关的第二准确度中的至少一个。

在一些实施例中,为了评估与所述目标区域相关的第一准确度,所述至少一个处理器被指示为使所述系统将所述置信度与第一阈值进行比较。所述至少一个处理器还可以被指示为使所述系统响应于确定所述置信度大于所述第一阈值,确定所述目标区域包括目标对象。

在一些实施例中,为了评估与所述目标区域相关联的特征点的提取相关的第二准确度,还涉及所述至少一个处理器,被指示为使所述系统将所述置信度与第二阈值进行比较。所述至少一个处理器还可以被指示为使所述系统响应于确定所述置信度大于所述第二阈值,确定所述特征点的提取是准确的。

在一些实施例中,对所述至少两个特征点执行第一分组操作,以根据第一规则生成至少两个第一组子区域,所述至少一个处理器被指示为使所述系统预处理所述至少两个子区域以生成至少两个预处理后的子区域,以及基于所述至少两个预处理后的子区域,根据所述第一规则生成所述至少两个子区域。

在一些实施例中,为了预处理所述至少两个子区域以生成所述至少两个预处理后的子区域,所述至少一个处理器被指示为使所述系统对所述至少两个子区域执行去噪操作。

在一些实施例中,为了对所述至少两个子区域执行去噪操作,所述至少一个处理器被指示为使所述系统对所述至少两个特征点执行第二分组操作,以根据第二规则生成至少两个第二组子区域。所述至少一个处理器还可以被指示为使所述系统对于所述至少两个第二组子区域中的每组,对所述第二组子区域执行去噪操作,生成第三组去噪子区域,重新分配所述至少两个第三组去噪子区域,生成所述至少两个预处理后的子区域。

在一些实施例中,所述去噪操作包括卷积操作或滤波操作中的至少一个。

在一些实施例中,所述第二规则可以与所述第一规则不同。

在一些实施例中,所述至少两个训练后的模型集成在训练后的目标模型中,并且所述训练后的目标模型被配置为同时处理所述至少两个第一组子区域的至少一部分。

在一些实施例中,所述训练后的目标模型是通过对目标模型执行训练过程得到的。所述训练过程可以包括获取所述目标模型并获得至少两个训练样本。所述至少两个训练样本中的每一个包括至少两个训练数据集,其中,所述至少两个训练数据集中的每一个包括与参考目标区域相关联的一组参考子区域和包括参考准确度参数的标签,所述标签指示所述一组参考子区域中的参考特征点是否准确。所述训练过程还可以包括使用所述至少两个训练样本训练所述目标模型。

在一些实施例中,所述至少两个训练后的模型中的至少一个是基于卷积神经网络(CNN)、支持向量机(SVM)模型、线性回归模型、逻辑回归模型、随机森林模型、梯度提升模型或决策树中的至少一个构建的。

一种在计算设备上实现的方法,包括至少一个处理器和至少一个存储介质。所述方法可以包括获取包括目标区域的图像并提取与所述目标区域相关联的至少两个特征点。所述方法可以进一步包括,对于所述至少两个特征点中的每一个,确定包括所述特征点的子区域。所述方法还可以包括对所述至少两个特征点执行第一分组操作,以根据第一规则生成至少两个第一组子区域,以及基于所述至少两个第一组子区域,使用至少两个训练后的模型分别处理所述至少两个第一组子区域,从而确定与所述目标区域相关联的置信度。所述至少两个训练后的模型中的每一个与一组模型参数相关联。至少两组模型参数是不同的。

根据本申请的又一方面,提供了一种系统。所述系统可以包括获取模块,用于获取包括目标区域的图像。所述系统还可以包括特征点提取模块,用于提取与所述目标区域相关联的至少两个特征点。所述系统还可以包括子区域确定模块,用于对于所述至少两个特征点中的每一个,确定包括所述特征点的子区域。所述系统还可以包括分组模块,用于对所述至少两个特征点执行第一分组操作,以根据第一规则生成至少两个第一组子区域。所述系统还可以包括置信度确定模块,用于基于所述至少两个第一组子区域,使用至少两个训练后的模型分别处理所述至少两个第一组子区域,从而确定与所述目标区域相关联的置信度。所述至少两个训练后的模型中的每一个与一组模型参数相关联,并且所述至少两组模型参数是不同的。

根据本申请的另一方面,提供了一种非暂时性计算机可读介质。所述非暂时性计算机可读介质可以包括可执行指令。所述指令在由至少一个处理器执行时,指示所述至少一个处理器执行用于图像处理的方法。所述方法可以包括获取包括目标区域的图像并提取与目标区域相关联的至少两个特征点。所述方法可以进一步包括,对于所述至少两个特征点中的每一个,确定包括所述特征点的子区域,并对所述至少两个特征点执行第一分组操作,以根据第一规则生成至少两个第一组子区域。所述方法还可以包括基于所述至少两个第一组子区域,使用至少两个训练后的模型分别处理所述至少两个第一组子区域,从而确定与所述目标区域相关联的置信度。所述至少两个训练后的模型中的每一个与一组模型参数相关联,并且至少两组模型参数是不同的。

本申请的一部分附加特性可以在以下描述中进行说明。通过对以下描述和相应附图的研究或者对实施例的生产或操作的了解,本申请的一部分附加特性对于本领域技术人员是明显的。本申请的特征可以通过以下讨论的详细示例中阐述的方法、工具和组合的各个方面的实践或使用来实现和获得。

附图说明

根据用于说明目的的实施例进一步描述本申请。参考附图详细描述这些实施例。这些实施例是非限制性实施例,其中相同的附图标记表示在附图的若干视图中的类似结构,并且其中:

图1是根据本申请的一些实施例所示的用于面部识别的图像处理系统的示意图;

图2是根据本申请的一些实施例所示的计算设备的硬件和/或软件组件的示意图;

图3是根据本申请的一些实施例所示的终端设备的示意图;

图4是根据本申请一些实施例所示的处理引擎的框图;

图5是根据本申请的一些实施例所示的用于图像处理的过程的流程图;

图6是根据本申请的一些实施例所示的确定特征点和包括特征点的子区域的示意图;

图7是根据本申请的一些实施例所示的与目标区域相关联的特征点的示意图;

图8是根据本申请的一些实施例所示的用于确定与目标区域相关联的置信度的过程的流程图;

图9是根据本申请的一些实施例所示的用于确定置信度的训练后的目标模型的示意图;

图10是根据本申请的一些实施例所示的用于生成至少两个预处理后的子区域的过程的流程图;以及

图11是根据本申请的一些实施例所示的训练用于确定置信度的模型的过程的流程图。

具体实施方式

为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。然而,本领域技术人员应该明白,可以在没有这些细节的情况下实施本申请。在其它情况下,为了避免不必要地使本申请的各方面变得晦涩难懂,已经在较高的层次上描述了众所周知的方法、过程、系统、组件和/或电路。对于本领域的普通技术人员来讲,显然可以对所披露的实施例做出各种改变,并且在不偏离本申请的原则和范围的情况下,本申请中所定义的普遍原则可以适用于其他实施例和应用场景。因此,本申请不限于所示的实施例,而是符合与申请专利范围一致的最广泛范围。

可以理解的是,本文使用的术语“系统”、“引擎”、“单元”、“模块”和/或“区块”是用于按升序区分不同级别的不同构件、元件、部件、部分或组件的方法。然而,如果它们可以达到相同目的,则这些术语可以被其他表达替代。

通常,这里使用的词语“模块”、“单元”或“块”是指现在硬件或固件中的逻辑,或者是软件指令的集合。这里描述的模块、单元或块可以实现为软件和/或硬件,并且可以存储在任何类型的非暂时性计算机可读介质或其他存储设备中。在一些实施例中,可以编译软件模块/单元/块并将其链接到可执行程序中。应当理解,软件模块可以从其他模块/单元/块或从它们自身调用,和/或可以响应检测到的事件或中断来调用。被配置用于在计算设备(例如,图2中所示的处理器220)上执行的软件模块/单元/块可以提供在计算机可读介质上,例如光盘、数字视频盘、闪存驱动器、磁盘,或任何其他有形媒体,或作为数字下载(并且可以最初以压缩或可安装格式存储,在执行之前需要安装、解压缩或解密)。这里的软件代码可以被部分的或全部的储存在执行操作的计算设备的存储设备中,并应用在计算设备的操作之中。软件指令可以嵌入固件中,例如EPROM。还应当理解,硬件模块(或单元或块)可以包括在连接的逻辑组件中,例如门和触发器,和/或可以包括在可编程单元中,例如可编程门阵列或处理器。这里描述的模块(或单元或块)或计算设备功能可以实现为软件模块(或单位或块),但是可以用硬件或固件表示。通常,这里描述的模块(或块)指的是不论他们的物理组织或存储,可以与其他模块(或单位或块)组合或者分成子模块(或子单元或子块)的逻辑模块(或单位或块)。

可以理解的是,除非上下文另有明确说明,当单元、引擎、模块或块被称为在另一单元、引擎、模块或块“上”、“连接”或“耦合至”另一单元、引擎、模块或块时,其可以直接在其它单元、引擎、模块或块上,与其连接或耦合或与之通信,或者可能存在中间单元、引擎、模块或块。在本申请中,术语“和/或”可包括任何一个或以上相关所列条目或其组合。

这里使用的术语仅用于描述特定实施例和实施例,而不是限制性的目的。如本申请使用的单数形式“一”、“一个”及“该”同样可以包括复数形式,除非上下文明确提示例外情形。还应理解,术语“包括”“包含”和/或“含有”“囊括”“包罗”和/或“”蕴含“在本申请中使用时,指定陈述特征、整数、步骤、操作、元素和/或组件的存在、但不排除存在或添加一个或多个其他特征、整数、步骤、操作、元素、组件和/或其组。

另外,应该理解,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述目的,不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。

本申请的一方面涉及用于面部识别的系统和/或方法。可以获取包括一个或以上对象(例如,人)的图像。可以提取与图像中的目标区域(例如,面部)相关联的至少两个特征点。对于多个特征点中的每一个,可以确定包括特征点的子区域。例如,特征点可以位于子区域的中心。可以对至少两个特征点执行第一分组操作,以根据第一规则生成至少两个第一组子区域。例如,可以基于至少两个特征点的标识号的顺序,将至少两个特征点划分为至少两个第一组特征点。可以基于至少两个第一组特征点以及至少两个特征点中的每一个和对应子区域之间的映射关系,来确定至少两个第一组子区域。可以使用至少两个训练后的模型,基于至少两个第一组子区域确定与目标区域相关联的置信度。在一些实施例中,至少两个训练后的模型可以集成在训练后的目标模型中。训练后的目标模型被配置为同时处理至少两个第一组子区域的至少一部分。因此,可以提高确定置信度的效率。置信度可用于评估与目标区域相关的第一准确度和/或与目标区域相关联的特征点的提取相关的第二准确度。例如,响应于确定置信度大于第一阈值,目标区域可以被确定为包括目标对象(例如,面部)。作为另一示例,响应于确定置信度大于第二阈值,可以确定目标区域中的特征点的提取是准确的。在一些实施例中,第二阈值可以高于第一阈值。

图1是根据本申请的一些实施例所示的图像处理系统100的示意图。如图所示,图像处理系统100可以包括服务器110、存储设备120、获取设备130、用户终端140和网络150。

服务器110可以处理与图像处理系统100有关的信息和/或数据,以执行本申请中描述的一个或以上功能。服务器110可以是单个服务器或服务器组。所述服务器组可以是集中式的,也可以是分布式的(例如,服务器110可以是分布式的系统)。在一些实施例中,服务器110可以是本地的,也可以是远程的。例如,服务器110可以通过网络150访问存储在获取设备130和/或存储设备120中的信息和/或数据。作为另一示例,服务器110可以直接连接到获取设备130,和/或存储设备120以访问存储的信息和/或数据。在一些实施例中,服务器110可以在云平台上实施。仅作为示例,该云平台可以包括私有云、公共云、混合云、社区云、分布云、内部云、多层云等或其任意组合。在一些实施例中,服务器110可以在具有本申请的图2中所示的一个或以上组件的计算设备200上实现。

在一些实施例中,服务器110可以包括一个或以上处理引擎112(例如,单核处理引擎或多核处理器)。例如,处理引擎112可以获取包括一个或以上对象(例如,人)的图像。作为另一示例,处理引擎112可以确定图像中包括面部的目标区域,并提取与目标区域相关联的至少两个特征点。对于至少两个特征点中的每一个,处理引擎112可以确定包括该特征点的子区域。作为又一示例,处理引擎112可以在至少两个特征点上执行第一分组操作,以根据第一规则生成至少两个第一组子区域。作为又一示例,处理引擎112可以基于至少两个第一组子区域确定与目标区域相关联的置信度。置信度可用于评估与确定目标区域的相关的准确度(也被称为第一准确度)和/或与提取目标区域相关联的至少两个特征点相关的准确度(也被称为第二准确度)。仅仅是示例,处理引擎112可以包括中央处理单元(CPU)、专用的集成电路(ASIC)、专用的指令集处理器(ASIP)、图形处理单元(GPU)、物理处理单元(PPU)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、可编程逻辑设备(PLD)、控制器、微控制器单元、精简指令集计算机(RISC)、微处理器等或其任意组合。在一些实施例中,处理引擎112可以被配置为调整目标图像中的每个目标像素点的像素点值以锐化目标图像。

存储设备120可以存储数据和/或指令。可以从例如服务器110、获取设备130和/或图像处理系统100的任何其他组件获得数据和/或指令。

在一些实施例中,存储设备120可以存储服务器110可以执行或用来执行本申请的一些实施例中描述的方法的数据和/或指令。例如,存储设备120可以存储待处理的图像。作为另一示例,存储设备120可以存储训练后的目标模型,该目标模型用于确定与图像中的目标区域相关联的置信度。在一些实施例中,存储设备120可以包括大容量存储器、可移动存储器、易失性读写存储器、只读存储器(ROM)等或其任意组合。例如,大容量存储器可以包括磁盘、光盘、固态驱动器等。可移动存储器可以包括但不限于闪存驱动器、软盘、光盘、内存卡、压缩盘、磁带等。易失性读写存储器可以包括但不限于随机存取存储器(RAM)。RAM可以包括但不限于动态随机存取内存(DRAM)、双倍数据速率同步动态随机存取内存(DDRSDRAM)、静态随机存取内存(SRAM)、晶闸管随机存取内存(T-RAM)和零电容随机存取内存(Z-RAM)等。ROM可以包括但不限于掩模ROM(MROM)、可编程ROM(PROM)、可擦除的可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、光盘ROM(CD-ROM)和数字多功能磁盘ROM等在一些实施例中,存储设备120可以在云平台上实现。仅作为示例,该云平台可以包括私有云、公共云、混合云、社区云、分布云、内部云、多层云等或其任意组合。

在一些实施例中,存储设备120可以连接到网络150,以与图像处理系统100的一个或以上组件通信(例如,服务器110、获取设备130)。图像处理系统100的一个或以上组件可以通过网络150访问存储在存储设备120中的数据或指令。在一些实施例中,存储设备120可以直接连接到图像处理系统100的一个或以上组件(例如,服务器110、获取设备130)。在一些实施例中,存储设备120可以是图像处理系统100的另一组件(例如服务器110、获取设备130或用户终端140)的一部分。

在一些实施例中,图像处理系统100的一个或以上组件(例如,服务器110、获取设备130)可以具有访问存储设备120的许可。例如,服务器110或用户终端140可以获取存储在存储设备120中的待处理的图像。

获取设备130可以是和/或包括能够获取图像的任何合适的设备。在一些实施例中,获取设备130可以包括移动电话130-1、计算机130-2、监控相机130-3等。计算机130-2可以包括但不限于笔记本电脑、平板电脑、桌上型电脑等或其任意组合。例如,安装在移动电话130-1或计算机130-2上的相机可以获取一个或以上图像。监控相机130-3可以包括但不限于枪式相机、圆顶相机、集成式相机、单目相机、双目相机、多视图相机等或其任意组合。由获取设备130获取的图像可以是单个图像或视频的帧。在一些实施例中,获取设备130可以包括至少两个组件,每个组件可以获取图像。例如,获取设备130可以包括至少两个可以同时拍摄图像或视频的子相机。

用户终端140可以与用户相关联。例如,终端设备140可以包括移动电话140-1、膝上型计算机140-2、平板电脑140-3等。在一些实施例中,用户终端140可以是和/或包括可以以人类可读的形式(例如文本、图像、音频、视频、图形、动画等或其任意组合)显示或输出信息的任何合适的设备。在一些实施例中,用户可以通过用户终端140查看信息和/或输入数据和/或指令。例如,用户可以提供用户终端140输入/修改参数,例如与目标区域相关联的置信度相关联的第一阈值。作为另一示例,用户可以在用户终端140的显示设备上查看置信度。用户终端140的显示设备可以包括阴极射线管(CRT)显示器、液晶显示器(LCD)、发光二极管(LED)显示器、等离子显示面板(PDP)、3D显示器等。在一些实施例中,用户终端140可以通过网络150,例如无线网络或有线网络(例如,同轴电缆网络)连接到图像处理系统100的一个或以上组件(例如,服务器110、存储设备120、获取设备130)。

网络150可以包括任何合适的网络,其可以促进图像处理系统100的信息和/或数据交换。在一些实施例中,图像处理系统100中的一个或以上组件(例如,服务器110、存储设备120和获取设备130)可以通过网络150将信息和/或数据发送到图像处理系统100中的另一组件。例如,服务器110可以通过网络150从获取设备130获得/获取图像。在一些实施例中,网络150可以为任意形式的有线或无线网络,或其任意组合。仅仅是示例,网络150可以包括电缆网络(例如,同轴电缆网络)、有线网络、光纤网络、电信网络、内联网、互联网、局域网(LAN)、广域网(WAN)、无线局域网(WLAN)、大都市区域网络(MAN)、广域网(WAN)、公共电话交换网络(PSTN)、蓝牙网络、ZigBee网络、近场通信(NFC)网络等或其任意组合。

应当注意的是,以上描述仅出于说明的目的而提供,并不旨在限制本申请的范围。对于本领域的普通技术人员来说,可以根据本申请的描述,做出各种各样的变化和修改。例如,处理引擎112可以集成到用户终端140中。然而,这些变化和修改不脱离本申请的范围。

图2是根据本申请的一些实施例所示的计算设备的硬件和/或软件组件的示意图。在一些实施例中,服务器110可以在图2所示的计算设备200上实现。例如,处理引擎112可以在计算设备200上实现并且被配置为执行本申请中公开的处理引擎112的功能。

计算设备200可用于实现如本文所述的图像处理系统100的任何组件。例如,处理引擎112可以通过其硬件、软件程序、固件或其组合在计算设备200上实现。尽管为了方便起见仅示出了一种这样的计算机,但是,与如本文所述的图像处理有关的计算机功能可以以分布式方式在多个类似平台上以分布处理负荷。

例如,计算设备200可以包括与网络相连接的通信端口250,以实现数据通信。计算设备200还可包括一个或以上处理器(例如,逻辑电路)形式的处理器(例如,处理器220),用于执行程序指令。例如,处理器220可以包括其中的接口电路和处理电路。接口电路可以被配置为从总线210接收电信号,其中,电信号编码由处理电路处理的结构化数据和/或指令。处理电路可以进行逻辑计算,然后将结论、结果和/或指令编码成电信号。然后,接口电路可以经由总线210从处理电路发出电信号。

例如,计算设备还可以包括不同形式的程序存储和数据存储,包括例如磁盘270和只读存储器(ROM)230,或随机存取存储器(RAM)240,用于各种由计算设备处理和/或传输的数据文件。例如,计算设备还可以包括存储在ROM230、RAM240和/或其由处理器220执行的其他类型的非暂时存储介质中的程序指令。本申请的方法和/或流程可以以程序指令的方式实现。计算设备200还可以包括输入/输出组件260,支持计算机和其他组件之间的输入/输出。计算设备200还可以通过网络通信来接收编程和数据。

仅出于说明目的,图2中仅描述了一个处理器,还可以考虑多个处理器220。可以预期到多个处理器220;因此,如本申请中所述的一个处理器220执行的操作和/或方法步骤也可以由多个处理器共同或单独地执行。例如,如果在本申请中计算设备200的处理器220同时执行步骤A和步骤B,则应当理解,步骤A和步骤B也可以由计算设备200中的两个不同的处理器220共同或分别执行。(例如,第一个处理器执行步骤A,第二个处理器执行步骤B,或者第一和第二处理器共同执行步骤A和B)。

图3是根据本申请的一些实施例所示的终端设备的示意图。在一些实施例中,用户终端140可以在图3所示的终端设备300上实现。终端设备300可以是移动设备,例如乘客或司机的移动电话、司机驾驶的车辆上的内置设备。如图3所示,终端设备300可以包括通信平台310、显示器320、图形处理单元(GPU)330、中央处理单元(CPU)340、输入/输出350、内存360和存储器390。在一些实施例中,任何其他合适的组件,包括但不限于系统总线或控制器(未示出),也可以包括在终端设备300中。

在一些实施例中,操作系统370(例如,iOS

图4是根据本申请的一些实施例所示的处理引擎的框图。在一些实施例中,处理引擎112可以在服务器110和/或用户终端140上实现。处理引擎112可以与存储介质(例如,图像处理系统100的存储设备120和/或终端设备300的存储器390)通信,并且可以执行存储在存储介质中的指令。在一些实施例中,处理引擎112可以包括获取模块410、目标区域确定模块420、特征点提取模块430、子区域确定模块440、分组模块450和置信度确定模块460。

获取模块410可以获取与图像处理系统100相关联的数据。在一些实施例中,获取模块410可以获取图像。图像可以由相机获取,例如数码相机、视频相机、监控相机、网络相机、安装在智能手机上的相机等。图像可以包括一个或以上对象,例如人、动物、树、建筑物等。在一些实施例中,获取模块410可以获取训练后的目标模型。训练后的目标模型可用于基于至少两个第一组子区域确定与目标区域相关联的置信度。

目标区域确定模块420可以确定图像中的目标区域。目标区域可以包括或被视为包括目标对象,例如面部。在一些实施例中,图像可以包括一个或以上人的一个或以上面部。处理引擎112可以为一个或以上面部中的每一个确定目标区域。具体地,处理引擎112可以根据面部检测技术确定图像中的目标区域的位置和大小。例如,面部检测技术可以包括整体匹配技术、基于特征的(结构)技术、混合技术等。整体匹配技术可以包括但不限于特征面算法、主要成分分析(PCA)、线性判别分析(LDA)、独立分量分析等。基于特征的技术可以包括但不限于基于特征模板的技术、考虑特征的几何约束的结构匹配技术、基于边、线和曲线的通用技术等。在一些实施例中,基于特征的技术可以包括基于模型的技术,例如支持向量机(SVM)模型、神经网络模型、Adaboost模型等或其任意组合。混合技术可以组合整体匹配技术和基于特征的技术。在一些实施例中,混合技术可用于确定3D图像中的目标区域。

特征点提取模块430可以提取与目标区域相关联的至少两个特征点。在一些实施例中,至少两个特征点可以对应于目标区域中的目标对象的一个或以上特征部分(也被称为关键部分)。特征部分可以是用户指定的部分或机器(例如,处理引擎112)可以容易地识别的部分。为了简洁起见,特征部分也可以被称为“关键部分”。为了说明目的,取面部作为目标对象的示例,目标区域中面部的关键部分可以包括但不限于眼睛、鼻子、嘴巴等。在一些实施例中,特征点提取模块430可以使用特征点确定技术来提取多个特征点,例如模板匹配技术、基于神经网络模型的技术、基于主动轮廓模型(ACM)的技术、基于主动形状模型(ASM)的技术、基于主动外观模型(AAM)的技术等,或它们的任意组合。

子区域确定模块440可以确定至少两个子区域。至少两个子区域中的每一个可以包括特征点。仅作为示例,对于与目标区域相关联的总共68个特征点,处理引擎112可以确定68个子区域。在一些实施例中,至少两个特征点中的每一个的子区域可以具有相同的尺寸,例如16*16像素、32*32像素、64*64像素等。在一些实施例中,至少两个特征点中的每一个可以位于子区域中的相同位置,例如,在子区域的中心。处理引擎112可以确定至少两个特征点中的每一个和对应子区域之间的映射关系。

分组模块450可以将特征点划分为至少两个组以生成至少两组子区域。在一些实施例中,分组模块450可以根据第一规则对至少两个特征点进行第一分组操作以生成至少两个第一组子区域。在一些实施例中,第一规则可以包括将至少两个特征点划分到至少两个第一组中。例如,分组模块450可以基于特征点的标识号的顺序(例如,连续顺序)、特征点的位置等来划分至少两个特征点。至少两个第一组中每个组的特征点的数量可以是相同或不同的。第一规则还可以包括基于至少两个第一组特征点和至少两个特征点中的每一个和对应子区域之间映射关系,生成至少两个第一组子区域。在一些实施例中,为了执行去噪操作,分组模块450可以根据第二规则对至少两个特征点执行第二分组操作以生成至少两个第二组子区域。在一些实施例中,第二规则可以与第一规则相同。在一些实施例中,第二规则可以与第一规则不同。例如,第二预定规则可以包括将与目标区域相关联的至少两个特征点划分为至少两个第二组,其中至少两个第二组中的每一组中的每个特征点可以从与目标区域相关联的至少两个特征点中随机选择。第二规则还可以包括基于至少两个第二组特征点以及至少两个特征点中的每一个和对应子区域之间的映射关系,生成至少两个第二组子区域。在一些实施例中,可以在第二组子区域上执行去噪操作。在一些实施例中,分组模块450可以进一步处理至少两个第三组去噪子区域以生成至少两个预处理后的子区域。例如,分组模块450可以混合或连接所有去噪子区域以形成合并组。分组模块450可以根据第一规则,对特征点执行第一分组操作以基于组合的去噪子区域组生成至少两个第一组子区域。在一些实施例中,分组模块450可以根据第一规则重新分配至少两个第三组去噪的子区域以生成至少两个第一组子区域。

置信度确定模块460可以基于至少两个第一组子区域确定与目标区域相关联的置信度。置信度,也称为置信度评分,可用于评估与目标区域相关的第一准确度和/或与目标区域相关联的特征点的提取相关的第二准确度。例如,置信度确定模块460可以将置信度与第一阈值(例如,预定值)进行比较。第一阈值可以是例如0.35、0.40、0.45、0.50、0.55等。响应于确定置信度大于第一阈值,置信度确定模块460可以确定目标区域可能确实包括目标对象(例如,面部)和/或与目标区域相关联的至少两个特征点中的至少一些的提取是准确的。在一些实施例中,置信度确定模块460还可以将置信度与第二阈值进行比较。第二阈值可用于评估至少两个特征点的提取是否准确。仅作为示例,第二阈值可以高于与目标区域的确定结果相关联的第一阈值。例如,第二阈值可以是0.70、0.75、0.80等。响应于确定置信度大于第二阈值,置信度确定模块460可以确定目标区域确实包括目标对象,并且至少两个特征点的提取是准确的。响应于确定置信度大于第一阈值但小于或等于第二阈值,置信度确定模块460可以确定目标区域确实包括目标对象,并且至少两个特征点的提取是不准确的。置信度确定模块460可以重新执行操作506以提取与目标区域相关联的特征点。响应于确定置信度小于或等于第一阈值,置信度确定模块460可以确定目标区域的确定结果是不准确的。因此,目标区域可能不包括目标对象(例如,面部)但可能包括被误认为目标对象的对象,和/或与目标区域相关联的特征点可能被错误地提取。

图4中的模块可以通过有线连接或无线连接相互连接或通信。有线连接可以包括金属电缆、光缆、混合电缆等或其组合。无线连接可以包括局域网(LAN)、广域网(WAN)、蓝牙、ZigBee、近场通信(NFC)等或其组合。在一些实施例中,两个或以上模块可以组合成单个模块,并且可以将任何一个模块分成两个或以上单元。

图5是根据本申请的一些实施例所示的用于图像处理过程的流程图。在一些实施例中,过程500可以由图像处理系统100执行。例如,过程500可以被实现为存储在存储设备(例如,计算设备200的ROM230或RAM240)中的一组指令(例如,应用程序)。图4中的处理引擎112和/或模块可以执行指令集,并且在执行指令时,处理引擎112和/或模块可以被配置为执行过程500。下面呈现的所示过程500的操作旨在是说明性的。在一些实施例中,过程500的完成还可以用未描述的一个或以上附加操作,和/或在没有所讨论的一个或以上操作的情况下完成。另外,图5中所示和以下描述的过程500的操作的顺序不旨在限制。

在502中,处理引擎112(例如,获取模块410)可以获取图像。如这里所使用的,图像可以是视频的静态图像或视频的图像帧。图像可以由相机获取,例如数码相机、视频相机、监控相机、网络相机、安装在智能手机上的相机等。图像可以包括一个或以上对象,例如人、动物、树、建筑物等。在一些实施例中,图像可以是二维(2D)图像、三维(3D)图像等。在一些实施例中,图像可以是灰度图像或彩色图像。例如,彩色图像可以包括红绿蓝(RGB)图像、YCbCr(Y,Cb和Cr分别代表亮度分量、蓝色色度分量和红色色度分量)图像、色相饱和度值(HSV)图像等。在一些实施例中,假设由处理引擎112获得的图像是彩色图像,则处理引擎112可以在执行操作504之前将彩色图像转换为灰度图像。在一些实施例中,处理引擎112可以将图像的大小调整为预定尺寸。如这里所使用的,图像的大小可以由图像中的像素数限定。例如,图像的预定尺寸可以是64*64像素、128*128像素、256*256像素等。128*128像素的大小可以表示在图像中沿水平方向有128个像素,在图像中沿垂直方向有128个像素。

在504中,处理引擎112(例如,目标区域确定模块420)可以确定图像中的目标区域。目标区域可以包括或被视为包括目标对象,例如面部。在一些实施例中,图像可以包括一个或以上人的一个或以上面部。处理引擎112可以为一个或以上面部中的每一个确定目标区域。具体地,处理引擎112可以根据面部检测技术确定图像中的目标区域的位置和大小。例如,面部检测技术可以包括整体匹配技术、基于特征的(结构)技术、混合技术等。整体匹配技术可以包括但不限于特征面算法、主要成分分析(PCA)、线性判别分析(LDA)、独立的分量分析等。基于特征的技术可以包括但不限于基于特征模板的技术、考虑特征的几何约束的结构匹配技术、基于边、线和曲线的通用技术等。在一些实施例中,基于特征的技术可以包括基于模型的技术,例如支持向量机(SVM)模型、神经网络模型、Adaboost模型等或其任意组合。混合技术可以组合整体匹配技术和基于特征的技术。在一些实施例中,混合技术可用于确定3D图像中的目标区域。

在506中,处理引擎112(例如,特征点提取模块430)可以提取与目标区域相关联的至少两个特征点。在一些实施例中,至少两个特征点可以对应于目标区域中的目标对象的一个或以上特征部分。特征部分可以是用户指定的部分或机器(例如,处理引擎112)可以容易地识别的部分。对于简洁起见,特征部分也可以被称为“关键部分”。为了说明的目的,以面部作为目标对象的示例,目标区域中面部的关键部分可以包括但不限于眼睛、鼻子、嘴巴等。特征点也可以被称为“面部地标”。至少两个特征点的总数可以是5、14、68、106等。在一些实施例中,可以由用户设置或根据图像处理系统100的默认设置来设置至少两个特征点的总数。在一些实施例中,每个特征点可以由位置标签(例如,坐标)、识别号等标记。在一些实施例中,处理引擎112可以使用特征点确定技术来提取至少两个特征点,所述特征点确定技术例如为模板匹配技术、基于神经网络模型的技术、基于主动轮廓模型(ACM)的技术、基于主动形状模型(ASM)的技术、基于主动外观模型(AAM)的技术等,或它们的任意组合。

在508中,对于至少两个特征点中的每一个,处理引擎112(例如,子区域确定模块440)可以确定包括特征点的子区域。仅作为示例,对于与目标区域相关联的总数为68个的特征点,处理引擎112可以确定68个子区域。在一些实施例中,至少两个特征点中的每一个的子区域可以具有相同的尺寸,例如16*16像素、32*32像素、64*64像素等。在一些实施例中,至少两个特征点中的每一个可以位于例如子区域中的相同位置,例如,在子区域的中心。处理引擎112可以确定至少两个特征点中的每一个和对应子区域之间的映射关系。在一些实施例中,可以对至少两个子区域中的每一个执行归一化操作以改变子区域中的像素点的像素强度值的范围。归一化操作可以减少光照变化等因素对像素点强度值的影响。归一化操作可以包括线性归一化操作或非线性归一化操作。仅仅是示例,处理引擎112可以确定子区域中所有像素点的像素强度值的平均值,并确定子区域中的每个像素的调整值,例如,通过从每个像素点的像素强度值中减去平均值。关于至少两个特征点和至少两个子区域的更多细节可以在本申请中的其他地方找到,例如,在图6和其描述中。

在510中,处理引擎112(例如,分组模块450)可以在至少两个特征点上执行第一分组操作,以根据第一规则生成至少两个第一组子区域。在一些实施例中,第一规则可以包括将至少两个特征点划分为至少两个第一组。例如,处理引擎112可以基于特征点的标识号的顺序(例如,连续顺序)、特征点的位置等来划分至少两个特征点。至少两个第一组的每个组中的特征点的数量可以是相同或不同的。例如,当目标区域中的特征点的总数为68时,处理引擎112可以基于识别的顺序(例如,升序或降序)将68个特征点划分为17个第一组。17个第一组特征点中的每一个可以包括4个特征点。作为另一示例,处理引擎112可以基于面部的各个部分,例如,左眉、右眉、左眼、左眼、鼻子、鼻子、上唇、下唇、面部的轮廓等,将68个特征点划分为至少两个第一组。第一规则还可以包括基于至少两个第一组特征点和至少两个特征点中的每一个与对应子区域之间的映射关系,生成至少两个第一组子区域。在一些实施例中,处理引擎112可以预处理至少两个子区域以生成至少两个预处理后的子区域,并基于至少两个预处理后的子区域生成至少两个第一组子区域。例如,至少两个子区域的预处理可以包括去噪操作。去噪操作可以包括但不限于过滤操作、卷积操作等或其任意组合。

在一些实施例中,处理引擎112可以通过统一去噪算法对至少两个子区域执行去噪操作,例如,通过将至少两个子区域输入到相同的滤波器中,或者在至少两个子区域上执行相同的卷积操作(例如,使用相同的卷积网络)。在一些实施例中,为了执行去噪操作,处理引擎112可以对至少两个特征点执行第二分组操作,以根据第二规则生成至少两个第二组子区域。对于至少两个第二组子区域的每个组,处理引擎112可以执行去噪操作以产生第三组去噪子区域。在一些实施例中,不同的第二组子区域的去噪操作可以是不同的。例如,处理引擎112可以使用不同类型的滤波器(例如,中值滤波器、高斯滤波器、最小均方误差滤波器)或者对不同的第二组子区域去噪。可选地或附加地,处理引擎112可以使用不同类型的卷积网络来对不同的第二组子区域去噪。作为另一示例,处理引擎112可以使用相同类型的滤波器来对不同的第二组子区域去噪。在不同的第二组中使用的相同类型的滤波器可以配置有不同的参数值,从而使得具有相同或不同噪声强度的第二组中的去噪强度不同。或者,处理引擎112可以使用相同类型的卷积网络来对不同的第二组子区域进行去噪。在不同的第二组中使用的同一类型的卷积网络可能会配置不同的参数值,从而使得具有相同或不同噪声强度的第二组中的去噪强度不同。

在一些实施例中,处理引擎112还可以进一步处理至少两个第三组去噪子区域以生成至少两个预处理后的子区域。例如,处理引擎112可以混合或连接所有去噪的子区域以形成合并组。处理引擎112还可根据第一规则对特征点进行第一分组操作,以基于组合的去噪子区域组生成至少两个第一子区域组。在一些实施例中,处理引擎112可以根据第一规则重新分配至少两个第三组去噪子区域以生成至少两个第一组子区域。在一些实施例中,第一规则和第二规则可以是不同的或相同的。关于去噪操作的更多细节可以在本申请中的其他地方找到,例如,在图10和其描述中。

在512中,处理引擎112(例如,置信度确定模块460)可以基于至少两个第一组子区域确定与目标区域相关联的置信度。置信度,也称为置信度评分,可用于评估与目标区域相关的第一准确度或与目标区域相关联的特征点的提取相关的第二准确度。例如,处理引擎112可以将置信度于第一阈值(例如,预定值)进行比较。第一阈值可以是例如0.35、0.40、0.45、0.50、0.55等。响应于确定置信度大于第一阈值,处理引擎112可以确定目标区域的确定结果是准确的。目标区域的确定结果是准确的,可以表示目标区域确实包括目标对象(例如,面部)。附加地或替代地,目标区域的确定结果是准确的,可以表示与目标区域相关联的至少两个特征点的提取可以是准确的。

在一些实施例中,响应于确定置信度大于第一阈值,处理引擎112可以确定目标区域确实包括目标对象。附加地或替代地,处理引擎112还可以将置信度与第二阈值进行比较。第二阈值可用于评估至少两个特征点的提取是否准确。仅作为示例,第二阈值可以高于与目标区域的确定结果相关联的第一阈值。例如,第二阈值可以是0.70、0.75、0.80等。响应于确定置信度大于第二阈值,处理引擎112还可以确定至少两个特征点的提取是准确的。基于目标区域和/或目标区域中的准确的特征点,处理引擎112还可以执行表情识别操作、面部跟踪操作、面部动画操作、3D面部建模操作等或其组合。响应于确定置信度大于第一阈值但小于或等于第二阈值,处理引擎112可以确定至少两个特征点的提取是不准确的。处理引擎112可以重新执行操作506以提取与目标区域相关联的特征点。响应于确定置信度小于或等于第一阈值,处理引擎112可以确定目标区域的确定结果是不准确的。这样,目标区域可能不包括目标对象(例如,面部),而是可能包括被误认为目标对象的对象,和/或与目标区域相关联的特征点可能被错误地提取了。

在一些实施例中,对于至少两个第一组子区域中的每个组,处理引擎112可以确定指示第一组子区域中的特征点是否准确的准确度参数。处理引擎112还可以基于与至少两个子区域的每个组相关联的准确度参数来确定置信度。在一些实施例中,处理引擎112可以使用至少两个训练后的模型来确定与目标区域相关联的置信度。可以基于卷积神经网络(CNN)、支持向量机(SVM)模型、线性回归模型、逻辑回归模型、随机森林模型、梯度提升模型或决策树等或其任意组合来构建至少两个训练后的模型中的至少一个。在一些实施例中,至少两个训练后的模型可以集成到训练后的目标模型中。训练后的目标模型可以被配置为同时处理至少两个第一组子区域的至少一部分。在一些实施例中,训练后的目标模型可以包括至少两个训练后的模型。至少两个训练后的目标模型中的每一个可以被配置为确定与第一组子区域相关联的准确度参数。在这种情况下,确定与至少两个子区域相关联的准确度参数需要的时间可能比确定与至少两个子区域中的每个子区域相关联的准确度参数更少。因此,可以提高确定置信度的效率。附加地或替代地,假设目标区域确实包括目标对象,但由于目标对象的一个或以上部分的遮挡而错误地提取了一部分特征点(例如,30%、40%),只要确定的置信度的值大于第一阈值,处理引擎112就可以准确地确定目标区域包括目标对象。这可以提高确定目标区域是否包括目标对象的准确性。关于置信度的确定的细节可以在本申请中的其他地方找到,例如,在图8及其描述中。

应当注意的是,以上描述仅出于说明的目的而提供,并不旨在限制本申请的范围。对于本领域普通技术人员,可以在本申请的教导下进行多种变化和修改。然而,这些变化和修改不脱离本申请的范围。

图6是根据本申请的一些实施例所示的特征点和子区域的确定的示意图。处理引擎112可以获取图像610。图像610可以是尺寸为128*128像素的灰度图像。如图6所示,过程引擎112可以根据面部检测技术确定包括面部的目标区域620。目标区域可以是矩形区域。处理引擎112还可以确定与目标区域相关联的至少两个特征点630。至少两个特征点630可以对应于目标区域中面部的各个部分,例如眉毛、眼睛、鼻子、嘴巴、面部的轮廓等。处理引擎112还可以确定具有相同尺寸的16*16像素的至少两个子区域640,例如子区域640-1、640-2、640-3、640-4等。每个子区域640可以包括位于子区域的中心的特征点630。例如,子区域640-1可以包括对应于右眼角的特征点。

应当注意的是,以上描述仅出于说明的目的而提供,并不旨在限制本申请的范围。对于具有本领域普通技术人员的人,可以在本申请的教导下进行多种变化和修改。然而,这些变化和修改不脱离本申请的范围。在一些实施例中,图像610的尺寸可以与128*128不同。例如,图像610的尺寸可以是256*256、64*64等,其不受本申请的限制。

图7是根据本申请的一些实施例所示的与目标区域相关联的特征点的示意图。仅作为示例,与目标区域相关联的特征点的总数可以是68。如图7所示,每个特征点由标识号标记。特征点可以对应于目标区域中面部的各个部分。例如,特征点1-17可以对应于面部的轮廓;特征点18-22可以对应于右眉;特征点23-27可以对应于左眉;特征点28-36可以对应于鼻子;特征点37-42可以对应于右眼;特征点43-48可以对应于左眼;特征点49-68可以对应于嘴。在一些实施例中,处理引擎112可以根据第一规则确定17个第一组特征点。第一组特征点的每个组可以包括基于特征点的标识号的顺序确定的4个特征点。例如,特征点1-4可以包括在第一组中,特征点5-8可以包括在另一个第一组中。在一些实施例中,处理引擎112可以基于对应于特征点的面部的各个部分来确定至少两个第一组特征点。例如,特征点37-42可以包括在对应于右眼的第一组中。

应当注意的是,以上描述仅出于说明的目的而提供,并不旨在限制本申请的范围。对于具有本领域普通技术人员的人,可以在本申请的教导下进行多种变化和修改。然而,这些变化和修改不脱离本申请的范围。在一些实施例中,与目标区域相关联的特征点的总数可以与图6所示的特征点的总数不同。例如,与目标区域相关联的特征点的总数可以是5、14、106等。

图8是根据本申请的一些实施例所示的用于确定与目标区域相关联的置信度的过程的流程图。在一些实施例中,过程800可以由图像处理系统100执行。例如,过程800可以被实现为存储在存储器(例如,计算设备200的ROM230或RAM240)中的一组指令(例如,应用程序)。图4中的处理引擎112和/或模块可以执行指令,并且在执行指令时,处理引擎112和/或模块可以被配置为执行过程800。下面呈现的所示过程800的操作旨在是说明性的。在一些实施例中,过程800可以通过未描述的一个或以上附加操作来完成,和/或没有讨论的一个或以上操作。另外,图8所示和下文描述的过程800的操作的顺序并不旨在限制。在一些实施例中,可以根据过程800执行操作512。如图8所示,过程800可以包括以下操作。

在802中,对于至少两个第一组子区域中的每个组,处理引擎112(例如,置信度确定模块460)可以确定准确度参数,所述准确度参数指示对第一组子区域中的特征点的提取是否准确。例如,准确度参数可以是从0或1中选择的值,其中0可以指示第一组子区域中的特征点的提取是不准确的,并且1可以指示第一组子区域的特征点的提取是准确的。作为另一示例,准确度参数可以指示第一组子区域中的特征点是准确的概率。概率可以为0-1,例如0.1、0.2、0.5、0.7、0.8等。在一些实施例中,处理引擎112可以基于训练后的目标模型确定与第一组子区域相关联的准确度参数。训练后的目标模型可以包括至少两个训练后的模型。至少两个训练后的模型中的每一个可用于确定与第一组子区域相关联的准确度参数。例如,可以分别同时将第一组子区域分别输入到至少两个训练后的模型中。至少两个训练后的模型可以分别输出与第一组子区域相关联的准确度参数。在一些实施例中,可以使用训练后的目标模型来执行第一分组操作。例如,可以将至少两个子区域(或至少两个预处理后的子区域,前提是执行了预处理操作)输入到训练后的目标模型中。训练的后目标模型可以在至少两个特征点上执行第一分组操作,并根据第一规则生成至少两个第一组子区域。在一些实施例中,可以将至少两个子区域直接输入到训练后的目标模型中。关于训练后的目标模型的训练过程的细节可以在本申请中的其他地方找到,例如,在图11和其描述中。

在一些实施例中,可以基于卷积神经网络(CNN)、支持向量机(SVM)模型、线性回归模型、逻辑回归模型、随机森林模型、梯度提升模型、决策树等或他们的任意组合,构建至少一个训练后的模型。例如,训练后的模型可以包括多个层,例如输入层,一个或以上隐藏层和输出层。一个或以上隐藏层可以包括一个或以上卷积层、一个或以上批量归一化(BN)层、一个或以上激活层、一个或以上池化层、全连接层、Softmax层等或其任意组合。例如,一个或以上激活层可以配置有一个或以上激活功能,例如线性整流单元(Relu)函数、Sigmoid函数、Tanh函数、Maxout函数等。在一些实施例中,训练后的模型可以与一组模型参数相关联。该组模型参数可以包括例如卷积内核的大小、层数、每个层中的节点的数量、两个连接节点之间的连接权重、与节点有关的偏差矢量等。在一些实施例中,与至少两个训练后的模型相关联的至少两组模型参数的至少一部分可以是不同的。

在804中,处理引擎112(例如,置信度确定模块460)可以基于至少两个第一组的准确度参数来确定置信度。在一些实施例中,置信度可以由训练后的目标模型确定,例如由训练后的目标模型中的级联层确定。在一些实施例中,当准确度参数是从0或1中选择的值时,可以基于为1的准确度参数总数(表示为N1)和准确度参数的总数(表示为N2)来确定置信度。例如,置信度可以被确定为N1/N2。在一些实施例中,当准确度参数是第一组子区域中的特征点准确的概率时,可以基于至少两个准确度参数的平均值来确定置信度。

应当注意的是,以上描述仅出于说明的目的而提供,并不旨在限制本申请的范围。对于具有本领域普通技术人员的人,可以在本申请的教导下进行多种变化和修改。然而,这些变化和修改不脱离本申请的范围。

图9是根据本申请的一些实施例所示的用于确定置信度的训练后的目标模型的示意图。仅作为示例,特征点的总数和与特征点对应的子区域的总数可以是68。可以将至少两个子区域(或至少两个预处理后的子区域,前提是执行了预处理操作)输入到训练后的目标模型中。至少两个子区域(或至少两个预处理后的子区域)的输入大小可以是16*16*68*1。训练后的目标模型可以执行第一分组操作以生成17个第一组子区域。17个第一组子区域中的每一个可以具有16*16*4*1的大小,并且可以被输入到训练后的模型910中。具体地,训练后的模型910可以包括一个或以上(例如,四个)卷积层。第一卷积层、第二卷积层和第三卷积层的卷积核的尺寸可以是3*3。第一、第二和第三卷积层中的每一个都可以是BN层、一个配置有Relu函数的激活层,和/或最大池化(MP)层(2*2)。训练后的模型910的第一卷积层的输出尺寸可以是8*8*4*8。第二卷积层的输出尺寸可以是4*4*4*16。第三卷积层的输出尺寸可以是2*2*4*32。第四卷积层的卷积核的尺寸可以是2*2。第四卷积内核之后可以跟着Softmax层。具体地,Softmax层可以输出用于输入到训练后的模型910中的第一组子区域的准确度参数。Softmax层的输出尺寸可以是1*1*1*2。如图9所示,训练后的目标模型可以进一步包括连接层。连接层可以连接每个训练后的模型910的Softmax层的输出。连接层的输出尺寸可以是1*1*1*34。处理引擎112还可以进一步基于从至少两个训练后的模型910输出的至少两个准确度参数来确定置信度,如本申请的其他位置所述,例如,结合图8的操作804所述。

应当注意的是,以上描述仅出于说明的目的而提供,并不旨在限制本申请的范围。对于具有本领域普通技术人员的人,可以在本申请的教导下进行多种变化和修改。然而,这些变化和修改不脱离本申请的范围。例如,训练后的目标模型还可包括用于对至少两个第二子区域进行去噪的一个或以上卷积层,并且一个或以上卷积层可以位于训练后的模型910的第一卷积层之前。作为另一示例,第一、第二和/或第三卷积核的尺寸可以是5*5而不是3*3。作为又一个示例,训练后的目标模型的一个或以上层和/或训练后的模型的输入和/或输出的大小可以与图9所示的尺寸不同。

图10是根据本申请的一些实施例所示的用于生成至少两个预处理后的子区域的过程的流程图。在一些实施例中,过程1000可以由图像处理系统100执行。例如,过程1000可以被实现为存储在存储器(例如,计算设备200的ROM230或RAM240)中的一组指令(例如,应用程序)。图4中的处理引擎112和/或模块可以执行该组指令,并且在执行指令时,处理引擎112和/或模块可以被配置为执行过程1000。下面呈现的所示过程1000的操作旨在是说明性的。在一些实施例中,过程1000可以通过未描述的一个或以上附加操作来完成,和/或在没有所讨论的一个或以上操作的情况下完成。此外,图10中所示和下文描述的过程1000的操作的顺序不旨在限制。在一些实施例中,过程1000可以在操作508之前执行或包括在操作508中,使得包括特征点的每个子区域可以是预处理后的子区域。

在1002中,处理引擎112(例如,分组模块450)可以对至少两个特征点执行第二分组操作,以根据第二规则生成至少两个第二组子区域。在一些实施例中,第二规则可以与操作510中描述的第一规则不同。例如,第二预定规则可以包括将与目标区域相关联的至少两个特征点划分为至少两个第二组,其中,至少两个第二组中的每一个中的特征点可以从与目标区域相关联的至少两个特征点中随机选择。第二规则还可以包括基于至少两个第二组特征点以及至少两个特征点中的每一个与相应子区域之间的映射关系,生成至少两个第二组子区域。

在1004中,对于至少两个第二组子区域的每个组,处理引擎112(例如,分组模块450)可以执行去噪操作以生成第三组去噪子区域。在一些实施例中,去噪操作可包括一个或以上过滤操作和/或一个或以上卷积操作。例如,处理引擎112可以使用过滤器,例如中值过滤器、均值过滤器、最小过滤器、最大过滤器、范围过滤器、排序滤波器、alpha修整均值滤波器、最小均方误差滤波器、高斯滤波器等。作为另一示例,处理引擎112可以使用一个或以上卷积网络(例如,本申请其他地方描述的训练后的目标模型中训练后的模型的一个或以上卷积层)对每个第二组子区域执行一个或以上卷积操作。

在1006中,处理引擎112(例如,分组模块450)可以混合至少两个第三组去噪子区域以生成至少两个预处理后的子区域。如本文所用,混合(或连接)至少两个第三组去噪子区域可以指重新安排第三组去噪子区域,使得所有去噪子区域可以存在于相同的合并组中。合并组的去噪子区域可以被称为至少两个预处理后的子区域。在一些实施例中,可以根据第一规则将至少两个预处理后的子区域划分为至少两个第一组子区域,例如,如图5中的操作510中所述。

应当注意的是,以上描述仅出于说明的目的而提供,并不旨在限制本申请的范围。对于具有本领域普通技术人员的人,可以在本申请的教导下进行多种变化和修改。然而,这些变化和修改不脱离本申请的范围。例如,在确定至少两个第一组子区域中的每一个的准确度参数之前,可以直接对至少两个第一组子区域执行在操作1004中提到的去噪操作。

图11是根据本申请的一些实施例所示的用于训练用于确定置信度的目标模型的过程的流程图。在一些实施例中,过程1100可以由图像处理系统100执行。例如,过程1100可以被实现为存储在存储设备(例如,计算设备200的ROM230或RAM240)中的一组指令(例如,应用程序)。图11中的处理引擎112和/或模块可以执行该组指令,并且在执行指令时,处理引擎112和/或模块可以被配置为执行过程1100。下面呈现的所示过程1100的操作旨在是说明性的。在一些实施例中,过程1100可以用未描述的一个或以上附加操作来完成,和/或在没有所讨论的一个或以上操作的情况下完成。另外,如图11所示的过程和以下描述的过程1100的操作顺序并非旨在限制。

在1102中,处理引擎112可以获取目标模型。在一些实施例中,目标模型可以包括结合图8的操作802描述的结构。例如,目标模型可以包括集成在目标模型中的至少两个模型。可以基于卷积神经网络(CNN)、支持向量机(SVM)模型、线性回归模型、逻辑回归模型、随机森林模型、梯度提升模型或决策树等或其任意组合来构建至少两个模型中的每一个。处理引擎112可以从存储设备(例如,存储设备120)获取目标模型或至少两个模型中的每一个。

在1104中,处理引擎112可以获取多个训练样本,这些训练样本中的每一个包括至少两个训练数据集。处理引擎112可以从存储设备(例如,存储设备120)获取至少两个训练样本。操作1102和1104可以以任何顺序同时或顺序地执行。在一些实施例中,至少两个训练样本中的每一个可以与包括参考目标对象(例如,参考面部或其部分)的参考目标区域相关联。可以从参考目标区域中提取对应于参考目标对象的关键部分的至少两个特征点,例如左眼、鼻子、嘴巴等。可以根据操作510中描述的第一规则生成至少两个参考子区域。具体地,至少两个训练数据集中的每一个可以包括与参考目标区域相关联的一组参考子区域和包括参考准确度参数的标签。每个参考子区域组中的每一组可以包括与参考目标区域相关联的参考特征点。参考特征点可以位于例如参考子区域中的每个参考子区域的相同位置,例如,在每个参考子区域的中心。仅作为示例,第一训练数据集可以包括与一组参考特征点对应的一组参考子区域。参考特征点组可以根据参考特征点的标识号确定,例如与参考面部的一部分轮廓对应的四个特征点。作为另一示例,第二训练数据集可以包括与另一组参考特征点对应的另一组参考子区域,例如参考面部的右眼相对应的四个特征点。在一些实施例中,参考准确度参数可以指示参考子区域组中的参考特征点是否准确。在一些实施例中,参考准确度参数可以是从0或1中选择的值,其中0可以指示参考子区域组中的参考特征点是不准确的,并且1可以指示组中的参考特征点数参考子区域是准确的。在一些实施例中,参考准确度参数可以是参考子区域组中的参考特征点是准确的概率。在一些实施例中,可以通过用户终端(例如,用户终端140)来确定和/或检查标签。

在一些实施例中,可以根据第一规则基于至少两个参考子区域生成训练样本中的至少两组参考子区域。在一些实施例中,可以基于至少两个预处理后的参考子区域生成至少两组参考子区域。例如,可以在至少两个参考子区域上执行预处理操作(例如,去噪操作)以生成至少两个预处理后的参考子区域。去噪操作可以包括一个或以上过滤操作和/或一个或以上卷积操作。在一些实施例中,可以根据第二规则基于至少两个参考子区域生成至少两组参考子区域。可以在至少两个参考子区域上同时执行去噪操作,以生成至少两组去噪后的参考子区域。可以将至少两组去噪后的参考子区域混合以生成至少两个预处理后的参考子区域。

在1106中,处理引擎112(例如,置信水平确定模块460)可以使用至少两个训练样本来训练目标模型。在一些实施例中,多个训练样本中的至少两个训练数据集可分别用于训练目标模型中的至少两个模型。可以使用训练算法训练至少两个模型中的每一个。训练算法可以包括,例如,梯度下降算法、牛顿算法、准牛顿算法、Levenberg-Marquardt算法、共轭梯度算法等或其组合。在一些实施例中,可以通过基于成本函数执行至少两个迭代来训练至少两个模型中的每一个。在至少两个迭代之前,可以初始化模型的模型参数。例如,可以将所连接的权重和/或模型的偏差矢量初始化为范围内的随机值,例如,从-1到1的范围。作为另一示例,模型的所有连接权重都可以在-1至1的范围内具有相同的值,例如0。然后,可以执行至少两个迭代以更新模型的参数,直到满足条件。条件可以指示模型是否经过充分的训练。例如,如果与模型相关联的成本函数的值最小化了或小于第三阈值(例如,预设值),则可以满足条件。作为另一示例,如果成本函数的值收敛了,则可以满足条件。如果在两个或更多个连续迭代中的成本函数的值的变化小于第三阈值(例如,预先设定值),则可以认为发生收敛。作为示例,当在训练过程中执行指定数量的迭代时,可以满足条件。

对于至少两个迭代中的每一个,可以将训练样本中的训练数据集输入到模型中。具体地,可以由模型的一个或多个层处理与参考目标区域相关联的一组参考子区域以及包括参考准确度参数的标签,以生成估计的准确度参数。可以基于模型的成本函数将估计的准确度参数与参考准确度参数进行比较。模型的成本函数可以被配置为评估模型的测试值(例如,估计的准确度参数)与所需值(例如,参考准确度参数)之间的差异。如果成本函数的值超过当前迭代中的第三阈值,则可以调整和更新模型的模型参数以使成本函数的值(即,估计的准确度参数和参考准确度参数之间的差值)小于第三阈值。可以执行至少两个迭代以更新模型的模型参数,直到满足条件。在一些实施例中,可以同时训练至少两个模型。在一些实施例中,可以基于至少两个模型的更新后的模型参数来确定训练的目标模型。训练的目标模型可以被发送到存储设备(例如,存储设备120)以用于存储。在一些实施例中,训练后的目标模型可用于确定与包括面部的目标区域相关联的置信度,例如,如结合图5的操作512所述。

应当注意的是,以上描述仅出于说明的目的而提供,并不旨在限制本申请的范围。对于具有本领域普通技术人员的人,可以在本申请的教导下进行多种变化和修改。然而,这些变化和修改不脱离本申请的范围。

上文已对基本概念做了描述,显然,对于阅读此申请后的本领域的普通技术人员来说,上述发明披露仅作为示例,并不构成对本申请的限制。虽然此处并未明确说明,但本领域的普通技术人员可能会对本申请进行各种修改、改进和修正。本申请建议这些改变、改进和修改,并且这些改变、改进和修改在本申请实施例的原则和范围内。

同时,本申请使用了特定词语来描述本申请的实施例。例如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本申请至少一个实施例相关的某一特征、结构或特性。因此,应当强调并注意的是,本说明书中在不同位置两次或以上提及的“一实施例”或“一个实施例”或“一替代性实施例”并不一定是指同一实施例。此外,本申请的一个或以上实施例中的某些特征、结构或特点可以进行适当的组合。

此外,本领域的普通技术人员可以理解,本申请的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的过程、机器、产品或物质的组合,或对其任何新的和有用的改进。因此,本申请的各方面可以完全实现硬件、完全软件(包括固件、驻留软件、微码等)或组合软件和硬件实现,这些软件和硬件实现在这里可以所有通常被称为“单元”、“模块”、“系统”。此外,本申请的各方面可以采用具有在其上体现的计算机可读程序代码的一个或以上计算机可读介质中体现的计算机程序产品的形式。

计算机可读信号介质可以包含一个内含有计算机程序代码的传播数据信号,例如,在基带上或作为载波的一部分。此类传播信号可以有多种形式,包括电磁形式、光形式等或任何合适的组合。计算机可读信号介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通信、传播或传输供使用的程序。位于计算机可读信号介质上的程序代码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、RF等,或任何上述介质的组合。

用于对本申请的各方面进行操作的计算机程序代码可以以一种或以上编程语言的任何组合编写,包括面向对象的编程语言,例如Java、Scala、Smalltalk、Eiffel、JADE、Emerald、C++、C#、VB.NET、Python等,传统的过程编程语言,如“C”编程语言、VisualBasic、Fortran、Perl、COBOL、PHP、ABAP,动态编程语言,如Python、Ruby和Groovy,或其他编程语言。该程序代码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或服务器上运行。在后一种情况下,远程计算机可以通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接到用户计算机,或者可以与外部计算机建立连接(例如,通过使用网络服务提供商的网络)或在云计算环境中或作为服务提供,例如,软件服务(SaaS)。

此外,所列举的处理元件或序列的顺序,或者数字、字母或其他名称的使用,并非旨在将所要求保护的过程和方法限制为任何顺序,除非在权利要求中指定。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本申请实施例实质和范围的修正和等价组合。例如,尽管上述各种组件的实现可以体现在硬件设备中,但也可以实现为纯软件解决方案,例如,在现有服务器或移动设备上的安装。

同理,应当注意的是,为了简化本申请披露的表述,从而帮助对一个或以上发明实施例的理解,前文对本申请的实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。然而,本申请的该方法不应被解释为反映所声称的待扫描对象物质需要比每个权利要求中明确记载的更多特征的意图。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号