本发明涉及一种基于深度学习的实时人脸检测方法及系统。
背景技术:
深度学习是目前机器学习发展的最高度,卷积神经网络作为深度学习中的一种方法,在物体识别、图像处理等领域有着较高的效果。对于人脸特征提取,卷积神经网络有着可以自动学习图像特征的优势,减少人工干预,提取出高质量的特征,从而为提高人脸检测的准确率打下了坚实的基础。
由于深度学习的方法可能消耗大量的GPU资源,计算量过大可能达不到实际应用场景中实时的效果,为了解决大数据实时处理问题,分布式实时处理框架Storm应运而生,Storm有许多应用领域,包括实时分析、在线机器学习、信息流处理、连续性的计算、分布式RPC和ETL等。
随着社会的发展,信息化程度的不断提高,人们对身份鉴别的准确性、安全性和实用性提出了更高的要求,人脸检测是人脸识别和重构问题中最基本的任务,同样也是人脸识别问题中的一个关键环节,其结果直接关乎到人脸识别最终的效果。若能对其进行精准的检测定位,不仅能提高视频监控工作人员的工作效率,对视频的检索、维护公共安全秩序具有重要意义。
有鉴于此,急需解决视频监中人脸检测准确率较低和速率较低的问题。
技术实现要素:
本发明所要解决的技术问题是如何将卷积神经网络应用于人脸检测技术中,并达到实时人脸检测的效果的问题,本发明提供了一种基于深度学习的实时人脸检测方法及系统。
为了解决上述技术问题,本发明所采用的技术方案是:
一种基于深度学习的实时人脸检测方法,包括以下步骤:
步骤S10:构建人脸数据库,并设计用于人脸检测的卷积神经网络;
步骤S20:利用人脸数据库对卷积神经网络进行训练,得到最优卷积神经网络,利用最优的卷积神经对人脸数据库的人脸数据进行特征提取,取得人脸特征;
步骤S30:构建Storm的拓扑结构,所述Storm的拓扑结构包括若干个数据源输入组件spout;每个数据源输入组件spout分别与若干个数据处理组件bolt连接;
在以数据源输入组件spout为父节点的数据处理组件bolt上分别布置训练好的最优卷积神经网络,且所有数据处理组件bolt具有相同的子节点;所述相同的字节点用于将检测到的人脸区域坐标在检测图像上进行标注和返回检测结果;
步骤S40:数据源输入组件spout将采集的待检测的人脸图像实时视频流分发给各个数据处理组件bolt,每个数据处理组件bolt通过预先布置的最优卷积神经网络进行人脸部位识别、通过分类器对识别的结果进行人脸/非人脸分类、将人脸部位通过最优卷积神经网络进行边界框回归并得出人脸部位在原图中的坐标,返回人脸坐标结果。
所述步骤S40:采用一种基于GPU的资源调度算法:在Storm集群上,通过检测集群中GPU的资源使用情况实时调度任务资源。用基于GPU的资源调度算法实时监控各个数据处理组件bolt的GPU使用状况,将GPU消耗大的进程分配到有强GPU的数据处理组件bolt上。
所述人脸数据库包括多种角度的人脸信息,每种角度的人脸信息包括多张图片。
所述步骤S20包括以下步骤:
将人脸数据库中的信息作为卷积神经网络的输入数据源,使用设定的卷积神经网络默认参数进行卷积神经网络训练;所述默认参数包括初始权值、训练速率和迭代次数;
根据训练中间结果,对默认参数进行不断调整,直到得到最优卷积神经网络网络参数,进而得到最优卷积神经网络;
所述步骤S10中,用于人脸检测的卷积神经网络自上而下包括三个网络结构:
第一个网络结构,包括三层卷积层:
第一卷积层:Input Size 12×12×3,卷积核:3×3、
第二卷积层:Input Size 5×5×10,卷积核:3×3和
第三卷积层:Input Size 3×3×16,卷积核:3×3,
第一个网络结构用于人脸/非人脸区域判断并获得人脸区域的候选窗口、对人脸区域进行边界框回归并得到回归向量;
第二个网络结构,包括三个卷积层和第一全连接层,自上而下依次是:
第四卷积层:Input Size 24×24×3,卷积核:3×3、
第五卷积层:Input Size 11×11×28,卷积核:3×3、
第六卷积层:Input Size 4×4×48,卷积核:2×2、
第一全连接层:Out Size 128,
第二个网络结构用于对第一个网络构获取的边界框再次进行判断人脸和非人脸区域,抑制非人脸区域并进行边界框再回归;
第三个网络结构,包括四个卷积层和第二全连接层,自上而下依次是:
第七卷积层:Input Size 48×48×3,卷积核:3×3、
第八卷积层:Input Size 23×23×32,卷积核:3×3、
第九卷积层:Input Size 10×10×64,卷积核:3×3、
第十卷积层:Input Size 4×4×64,卷积核:2×2、
第二全连接层:Out Size 256;
第三个网络结构用于对从第二个网络结构的获取的边界框进行进一步的边界框人脸/非人脸区域判别,抑制非人脸区域并进行边界框再回归,得出边界框的回归向量坐标即为人脸区域的坐标。
所述步骤40中,
数据源输入组件spout将采集来自流媒体服务器的实时视频流解码为多个帧图像,再将每一帧图像分发给不同数据处理组件bolt;
每个数据处理组件bolt将视频流解码成帧图像,使用训练好的最优卷积神经网络对每一帧图像进行人脸检测,获取人脸区域坐标。
一种基于深度学习的实时人脸检测系统,包括:
人脸数据库和卷积神经网络建立模块:构建人脸数据库,并设计用于人脸检测的卷积神经网络;
训练模块:利用人脸数据库对卷积神经网络进行训练,得到最优卷积神经网络,利用最优的卷积神经对人脸数据库的人脸数据进行特征提取,取得人脸特征;
Storm的拓扑结构构建模块:构建Storm的拓扑结构,所述Storm的拓扑结构包括若干个数据源输入组件spout;每个数据源输入组件spout分别与若干个数据处理组件bolt连接;
在以数据源输入组件spout为父节点的数据处理组件bolt上分别布置训练好的最优卷积神经网络,且所有数据处理组件bolt具有相同的子节点;所述相同的字节点用于将检测到的人脸区域坐标在检测图像上进行标注和返回检测结果;
人脸检测模块:数据源输入组件spout将采集的待检测的人脸图像实时视频流分发给各个数据处理组件bolt,每个数据处理组件bolt通过预先布置的最优卷积神经网络进行人脸部位识别、通过分类器对识别的结果进行人脸/非人脸分类、将人脸部位通过最优卷积神经网络进行边界框回归并得出人脸部位在原图中的坐标,返回人脸坐标结果。
本发明将基于卷积神经网络的人脸检测技术、和Storm实时处理平台相结合,实现基于卷积神经网络的实时人脸检测,具有以下有益效果:
(1)通过卷积神经网络进行特征提取、边界框回归,坐标定位,有效地提高了检测的准确率和检测效率;
(2)利用Storm并行化人脸检测,达到实时检测的目的,有效的提高了检测的效率。
附图说明
图1为本发明提供的一种基于卷积神经网络的实时人脸检测方法的流程图;
图2(a)、图2(b)和图2(c)为本发明中卷积神经网络的网络结构;
图3为本发明中分布式实时处理框架Storm的拓扑结构图。
具体实施方式
下面结合附图与实施例对本发明作进一步说明。
本发明充分利用卷积神经网络学习图像特征的优势以及目前实时云计算技术的特点,将卷积神经网络与实时云计算技术结合,把卷积神经网络应用于人脸特征的检测,减少人工干预,提取出高质量的图像特征,提高人脸检测的准确率;并利用实时云计算中进行大数据实时处理的分布式实时处理框架Storm,解决卷积神经网络消耗大量的GPU资源,在计算量过大时可能达不到实际应用场景中实时效果的问题,提高人脸检测的效率,这在视频监控中人脸自动检测技术方面是一种区别于传统人脸检测系统的新的尝试。
下面结合说明书附图和具体实施例对本发明做出详细的说明。
如图1所示,本发明提供的一种基于卷积神经网络的实时人脸检测方法,包括以下步骤:
步骤S10、利用存储来自流媒体服务器的视频流历史数据构建人脸数据库,并设计用于人脸检测的卷积神经网络,在本发明中,人脸数据库包含多种角度的人脸信息,每种角度的人脸信息有多张图片。
步骤S20、利用人脸数据库中的人脸信息作为卷积神经网络的输入,通过卷积神经网络的卷积神经网络离线训练模块进行卷积神经网络的训练,得到最优的卷积神经网络。
在本发明中,步骤S20具体包括以下步骤:
步骤S21、将人脸数据库中的人脸的信息输入卷积神经网络,使用卷积神经网络默认参数进行卷积神经网络训练;
步骤S22、根据训练中间结果,对默认参数初始权值、训练速率、迭代次数进行不断调整,直到得到最优的卷积神经网络网络参数,此时卷积神经网络会以最高的效率得到最好的检测效果;
步骤S30、构建分布式实时处理框架Storm的拓扑结构,并将训练好的卷积神经网络分别布置在Storm的数据处理组件bolt上,且该数据处理组件bolt以数据源输入组件spout为父节点,这样每个数据处理组件bolt构成用于提取待检测图的卷积神经网络人脸检测模块;布置卷积神经网络的所有数据处理组件bolt具有相同的子节点,在该子节点上将检测到的人脸区域坐标在检测图像上进行标注并返回最终检测结果,如图3所示。
步骤S40、数据源输入组件spout将采集于流媒体服务器的实时视频流分发给其下属各个数据处理组件bolt,每个数据处理组件bolt上的卷积神经网络检测视频流中的人脸特征,由于卷积神经网络会消耗大量的GPU资源,由于在Storm中设计了基于GPU的资源调度算法,能够通过实时监控Storm各个数据处理组件bolt的GPU使用状况,将GPU消耗过大的进程分配到有较强GPU的数据处理组件bolt上,解决卷积神经网络会消耗大量的GPU资源的问题,从而避免由于计算量过大达不到实际应用场景中实时效果的问题,实现人脸检测的实时效果。
在本发明中,数据源输入组件spout将采集来自流媒体服务器的实时视频流解码为多个帧图像,再将每一帧图像分发给不同数据处理组件bolt;
每个数据处理组件bolt使用其上训练好的卷积神经网络对每一帧图像进行人脸检测。
在本发明中,利用历史数据构建人脸数据库,使用设计好的的卷积神经网络由三个网络结构组成:
如图2(a)所示,第一个网络结构,包括三层卷积层:第一卷积层:Input Size 12×12×3,卷积核:3×3、第二卷积层:Input Size 5×5×10,卷积核:3×3和第三卷积层:Input Size 3×3×16,卷积核:3×3,第一个网络结构用于人脸/非人脸区域判断并获得人脸区域的候选窗口、对人脸区域进行边界框回归并得到回归向量;
如图2(b)所示,第二个网络结构,包括三个卷积层和第一全连接层,自上而下依次是第四卷积层:Input Size 24×24×3,卷积核:3×3、第五卷积层:Input Size 11×11×28,卷积核:3×3、第六卷积层:Input Size 4×4×48,卷积核:2×2、全连接层:Out Size128,第二个网络结构对第一个网络构获取的边界框再次进行判断人脸和非人脸区域,抑制非人脸区域并进行边界框再回归;
如图2(c)所示,第三个网络结构,自上而下依次包括四个卷积层和第二全连接层,第七卷积层:Input Size 48×48×3,卷积核:3×3、第八卷积层:Input Size 23×23×32,卷积核:3×3、第九卷积层:Input Size 10×10×64,卷积核:3×3、第十卷积层:Input Size4×4×64,卷积核:2×2、全连接层:Out Size 256;第三个网络结构对从第二个网络结构的获取的边界框进行更加精细的边界框人脸/非人脸区域判别,抑制非人脸区域并进行边界框再回归,得出边界框的回归向量坐标即为人脸区域的坐标。
对此卷积神经网络结构进行训练。
本发明的基于卷积神经网络的实时人脸检测方法,将基于卷积神经网络的特征检测技术与Storm实时处理平台相结合,提高人脸检测的准确率和效率;在充分利用计算资源的前提下,找到最优的网络,对人脸进行检测。
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。