CN108460356B - 一种基于监控系统的人脸图像自动处理系统 - Google Patents
一种基于监控系统的人脸图像自动处理系统 Download PDFInfo
- Publication number
- CN108460356B CN108460356B CN201810204869.6A CN201810204869A CN108460356B CN 108460356 B CN108460356 B CN 108460356B CN 201810204869 A CN201810204869 A CN 201810204869A CN 108460356 B CN108460356 B CN 108460356B
- Authority
- CN
- China
- Prior art keywords
- image
- face
- layer
- output
- module
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/246—Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
- G06T7/248—Analysis of motion using feature-based methods, e.g. the tracking of corners or segments involving reference images or patches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/98—Detection or correction of errors, e.g. by rescanning the pattern or by human intervention; Evaluation of the quality of the acquired patterns
- G06V10/993—Evaluation of the quality of the acquired pattern
-
- 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
-
- 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/168—Feature extraction; Face representation
-
- 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/172—Classification, e.g. identification
-
- 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/10—Image acquisition modality
- G06T2207/10016—Video; Image sequence
-
- 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)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Multimedia (AREA)
- Oral & Maxillofacial Surgery (AREA)
- Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Human Computer Interaction (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Health & Medical Sciences (AREA)
- Bioinformatics & Computational Biology (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Quality & Reliability (AREA)
- Image Processing (AREA)
Abstract
本发明公开了一种基于监控系统的人脸图像自动处理系统,涉及用于对监控图像中的人脸图像进行自动识别和处理的方法,本发明针对于人工处理监控图像费时费力、人脸识别方法容易误判的问题,通过将待识别的人脸图像进行评估,根据评估结果使用两个模块分别对易识别和不易识别的人脸图像进行处理,对于易识别的人脸图像得到分类结果,对于不易识别的人脸图像得到易于人类识别的人脸图像,从而使每一个模块能够单独处理一类图像,减少了每个模块的复杂程度,提高了模块的处理效果;本方发明通过将计算机处理方式和人力处理方式进行合理的分工,充分发挥二者的最大优势,从而在大量的降低人力成本的前提下,避免了人脸识别算法的错误识别而产生的损失。
Description
技术领域
本发明涉及计算机视觉监控技术领域,图像处理和图像重建领域,具体涉及用于对监控图像中的人脸图像进行自动识别和处理的方法。
背景技术
在安防和监控领域中,对视频图像中人脸的识别一直是一项耗时费力的工作,传统办法使用人进行监控费时费力;近年来提出了各种不同的人脸图像识别算法,这些算法对于复杂的自然环境下所拍摄的人脸图像的识别效果并不好,通常均存在一定程度的错误识别的问题。而对于某些犯罪个体只存在着一两张不易识别的人脸图像的情况下,对不易识别的人脸图像进行识别,极易产生错误的识别结果,而当公安机关依照错误的识别结果进行抓捕时,不仅浪费警力更会造成了不必要的麻烦。
本发明所提出的方法就是解决这一难题。本发明将待识别的人脸图像分成易识别和不易识别两类人脸,对于易识别的人脸图像,运用人脸识别算法进行识别,对于不易识别的人脸图像,运用智能图像处理方法进行图像处理,本发明的识别和图像处理方法使用了识别率更高的深度神经网络,提高了算法的准确程度。本发明通过将计算机处理方式和人力处理方式进行合理的分工,充分发挥二者的最大优势,从而在大量的降低人力成本的前提下,避免了人脸识别算法的错误识别而产生的损失。
发明内容
本发明所要解决的技术问题是为了克服安防监控领域中单纯的人力识别和算法识别的不足,提出了一种基于监控系统的人脸图像自动处理系统。通过将图像进行合理的分配,利用人脸识别算法和图像重建算法有针对性的进行处理。
本发明解决其技术问题所采用的技术方案是:
一种基于监控系统的人脸图像自动处理系统,包括人脸图像筛选模块,图像预处理模块,人脸图像评估模块,人脸图像识别模块,不理想人脸图像处理模块,识别结果处理模块,人机交互模块。所述的人脸图像筛选模块对监控图像的每一个个体进行跟踪并提取一个时间段内的人脸图像集合,并对该集合中的人脸图像找出最易识别的一张图像,将该图像传递给图像预处理模块,并将对应的经过裁剪的视频片段传递给识别结果处理模块;所述的图像预处理模块将接收到的人脸图像进行去噪、然后进行光照补偿,并将处理过的人脸图像传递给人脸图像评估模块;所述的人脸图像评估模块将接收到的人脸图像进行分类,将人脸图像分成不易识别、易识别两类图像,若待评估的图像已经评估超过两次,则直接评估为不易识别,将易识别的人脸图像传递给人脸图像识别模块,对于不易识别的人脸图像,若为第一次评估则传递给不理想人脸图像处理模块,若为第二次评估则传递给识别结果处理模块;所述的人脸图像识别模块将接收到的人脸图像进行识别,若成功识别,则将识别结果传递给识别结果处理模块,若不成功识别,则将该图像传递给不理想人脸图像处理模块;所述的不理想人脸图像处理模块利用图像的智能生成算法将图像中存在的低像素问题、遮挡问题、角度问题进行消除,从而得到一副能够被识别的人脸图像,然后将该图像传递给人脸图像评估模块;所述的识别结果处理模块,能够根据人脸图像评估模块和人脸图像识别模块传递来的信息进行处理;也能够根据人机交互模块所传递来的操作进行处理。本模块负责对系统的信息进行整理,然后将整合结果传递给人机交互模块;所述的人机交互模块根据传递来的信息进行处理,并将监控结果显示在图像中,本模块可以接收操作人员的输入,从而对整个监控系统的阈值和参数进行调整。
所述的人脸图像筛选模块,在初始化的过程中,接收自然条件下的人脸和非人脸的灰度图像集合,这些样本图片的维度统一为n×n维,然后对每一张样本图片P,构建图片P所对应的积分图PP,然后使用所有积分图对级联分类器进行参数初始化,最后将训练所得的级联分类器保存起来用于检测过程。在检测过程中,对于每个时间间隔t内的视频片段的每一帧图像,其中,t的值由人机交互模块输入,首先对第一帧图像进行人脸检测,然后对检测到的每一个人脸对应的人脸检测框进行标号,然后我们根据第一帧的每一个人脸检测框的坐标区间,使用基于ORB特征的跟踪算法进行多目标跟踪,由于基于ORB特征的跟踪算法系统开销小,可以实时跟踪多目标,所以在对第二帧跟踪时,得到第二帧的人脸检测框,考虑到时间间隔很短,人脸图像的大小变化比较小,所以人脸检测框的大小不做调整,然后处理第三帧,直到视频处理结束,此时每一个人脸检测框对应的视频每一帧的内容构成的图像集合,即当前标号的人脸图像的视频片段。
所述的构建图片P所对应的积分图PP,其过程为:
对于图像P,我们从该矩阵的第1行第1列开始构造积分图,初始时设s(1,1)=P(1,1),RR(1,1)=P(1,1),构造过程为一个二层循环:
从而构造出P分量所对应的积分图PP;
所述的使用所有积分图对级联分类器进行参数初始化,其过程为:
第一步,定义弱分类器的函数h(x,f,p,θ)为:
其中f为特征函数,θ为阈值,p取值为1或-1,x代表根据积分图PP所构建的子窗口,对于每一个子窗口x,f(x)为该子窗口x对应于特征函数f的特征值。
我们将子窗口x的四个边界分别定义为左上点A,右上点B,左下点C,右下点D,A与B的中心点为ab,A与B的三分之一靠近A点为aab,三分之一靠近B点为abb,其余类推,区域内的中心点用O来表示。则x(A)表示子窗口在左上点A的积分图所对应的值,其余同理。
则特征函数f的特征值f(x)的具体计算公式定义为:
fa(x)=[x(bd)+x(A)-x(B)-x(ac)]-[x(ac)+x(D)-x(bd)-x(C)],并且定义s=1,t=2;
fb(x)=[x(A)+x(cd)-x(BC)-x(ab)]-[x(ab)+x(D)-x(B)-x(cd)],并且定义s=2,t=1;
fc(x)=[x(A)+x(bbd)-x(aac)-x(B)]-2×[x(bdd)+x(aac)-x(acc)-x(bbd)]+[x(D)+x(acc)-x(bdd)-x(C)],并且定义s=1,t=3;
fd(x)=[x(A)+x(ccd)-x(aab)-x(C)]-2×[x(cdd)+x(aab)-x(abb)-x(ccd)]+[x(D)+x(abb)-x(B)-x(cdd)],并且定义s=3,t=1;
fe(x)=[x(A)+x(O)-x(ab)-x(ac)]+[x(D)+x(O)-x(bd)-x(cd)]-[x(ab)+x(bd)-x(B)-x(O)]-[x(ac)+x(cd)-x(O)-x(C)],并且定义s=2,t=2;
第二步:构建积分图PP所对应的子窗口x。该子窗口x的选择过程如下:
定义自然数s和t,这两个数为子窗口的倍数,这两个数值的选定由特征函数给定,于是,x所对应的子窗口区域为:[(i,j),(i,j+t×(b-1)),(i+s×(a-1),j),(i+s×(a-1),j+t×(b-1))],其中:i,j,a,b分别为从1开始递增的整数,并且能够保证i+s×(a-1)≤n,j+t×(b-1)≤n成立的所有取值。
第三步:对于定义的5个特征函数,计算所有训练样本的所有RGB分量对应于当前子窗口x的特征值fa(x),fb(x),fc(x),fd(x),fe(x),我们将在当前RGB分量下当前子窗口x的每一个特征值称为一个特征,如果当前窗口下有wf个子窗口,那么一共有T=3×wf×5个特征,每一个特征表示为ht。设海面上正常物体的图片和异常物体的图片各有K张,则对分类器的训练过程如下:
1).对于每一张图片Xi,yi为该图片的分类,若yi=1表示该图片为异常物体的图片,若yi=-1表示该图片为正常物体的图片;
2).对于t=1,2,…,T,(T为特征个数)
①.所有样本在特征ht下的特征值fr,其中(r=1,2,…,2K),2K为正常物体和异常物体图片的总数;
②.将所得的所有特征值按照从大到小的顺序进行排序;
③.计算全部异常物体子图的权重之和:T+=sum(fr(x)),x∈异常物体的子图;
④.计算全部正常物体子图的权重之和:T-=sum(fr(x)),x∈正常物体的子图;
⑤.对于排序好的每个元素,从第一个开始处理,设当前处理的元素为i:
⑦.若最小的误差ei>1%,则意味着误差过大,舍弃;否则,将当前ht(x,f,p,θ)作为选好的弱分类器;
3).将所有选好的分类器ht按照t值从小到大排列起来,构成集合H,于是得到了我们要训练的级联分类器。
所述的对第一帧图像进行人脸检测,其方法为:首先判断接收到的监控图像是否为彩色图像,若为彩色图像,则将该图像转为灰度图像;设灰度图像为X′,然后将灰度图像按照窗口大小为n×n来提取其子图集合,对于所得的所有子图片,构建其积分图,最后用训练所得的级联分类器进行分类筛选,得到所有人脸的子图片,将这些子图片分别使用训练所得的级联分类器进行分类,用于判断当前子图是否为人脸,然后将被检测为人脸的子图在原始图像的坐标信息作为该人脸检测过程的检测结果。
所述的将该图像转为灰度图像,其转换方法为:对于原始彩色图片上的每一个像素点X所对应的R,G,B分量,用i和j表示横纵坐标,则该像素点对应的灰度图像X′的灰度值为X′(i,j)=0.3×B′(i,j)+0.59×G′(i,j)+0.11×R′(i,j),其中X′(i,j)为整数,若所得结果为小数的话,仅取其整数部分,从而得到原始X的灰度图像X′。
所述将灰度图像按照窗口大小为n×n来提取其子图集合,其方法为:
首先,对于原始的M行N列的图像,定义块大小为n×n,则将提取像素区域定义为:[(i,j),(i,j+n-1),(i+n-1,j),(i+n-1,j+n-1)]所围成的正方形区域,其中i=[1,…,M-n+1],j=[1,…,N-n+1],从而得到缩放图的第1层,该层共有(M-n+1)×(N-n+1)张子图,每张子图大小为n×n维,对于每一张图片,记录其图像的提取区域为左上点A=(i,j)右下点D=(i+n-1,j+n-1);
对于原始图片X,其上的每一个像素点为X(i,j),对于缩放后的图片X1/2(a,b),缩放过程为:
X1/2(a,b)=X(i,j),其中,i=2×a,j=2×b;
对于所得的缩放后的图像继续使用上述方法进行提取子图,从而得到缩放图的第2层,该层共有张子图,每张子图的大小为n×n维,对于每一张子图片,记录其在原始图像上提取区域的坐标(左上点A和右下点D);对于第i层,将原始图像缩放成行列的图像,并继续使用上述方法进行提取子图,该层共有 张子图,每张子图的大小为n×n维,对于每一张子图片,记录其在当前图像上提取区域的坐标(左上点A和右下点D);…;直到时,意味着缩小的遥感图像最短边小于n,此时已经无法提取出子图,于是提取过程结束。
所述的将这些子图片分别使用训练所得的级联分类器进行分类,其过程如下:设级联分类器H共有T′个分类器hi(i=1,2,…,T′),
对于所用于筛选的每一张n×n维子图
对于i=1,2,…,T′
计算在当前子图下的hi,若hi=0,当前子图是正常物体,该子图的分类筛选过程结束;
若当前子图在所有分类器下的分类结果hi都为1,则说明当前子图为人脸。
所述对检测到的每一个人脸对应的人脸检测框进行标号,该标号的命名方式如下:bak表示当前图像对应的视频备份编号,time表示当前人脸属于第几个时间段,开机的第一段视频编号为1,然后依次增加;frame表示在当前时间段内属于第几帧,视频的第一帧编号为1,然后依次增加,num表示当前人脸图像属于第几个人脸,人脸图像以人脸检测框的左上角左边为排序依据,对于两个人脸检测框的左上角坐标a:(x1,y1)和b:(x2,y2),若x1<x2,则a在b的前边,若x1>x2,则b在a的前边,若x1=x2,则比较y1和y2,值小的在前边,若相同,则随机排序。待所有的人脸图像根据左上角坐标排序后,排在第一位的编号为1,然后依次增加。因此,对于第r个备份的第s个视频编号的第t帧的第u个人脸,编号为bak.r_time.s_frame.t_num.u。
所述的基于ORB特征的跟踪算法进行多目标跟踪,其方法为:设当前已经得到了上一帧的所有人脸检测框的位置构成的集合,算法需要根据上一帧的人脸检测框内的人脸图像ORB特征来判断当前帧所对应的人脸图像的位置,设上一帧为i-1,则当前帧为i,那么对于人脸检测框集合中的第j个人脸图像,在上一帧用frame.i-1_num.j,当前帧用frame.i_num.j表示。对于上一帧的每一个人脸检测框,设当前框编号为j,第1步,提取人脸检测框j在上一帧的对应位置的人脸图像的ORB特征,其ORB特征为若干组长度相同的字符串,每一组字符串的元素为[0,1],为了节省空间,我们可以让计算机的一个字节的每一位与位串的一位相对应。第2步,设该人脸检测框j在上一帧的位置为(x,y),(x+a,y),(x,y+b),(x+a,y+b),其中a和b表示目标人脸P的长与宽。而设目标人脸P所在的原始帧的下一帧为PP,则在图片PP以目标人脸P在原始帧的位置为(x,y),(x+a,y),(x,y+b),(x+a,y+b)为中心,找出其周围的所有待检测框,并计算每一个待检测框内图像的ORB特征。第3步,计算所有待检测框的ORB特征与原始帧的ORB特征的距离,统计匹配成功的特征点的个数,选择匹配成功最多的待检测框作为为目标人脸在当前帧的位置。
所述的ORB特征,从一个图像中提取ORB特征的方法已经较为成熟,在OpenCV计算机视觉库里边已有实现。对一个图片提取其ORB特征,输入值为当前图片,输出为若干组长度相同的字符串,每一组代表一个ORB特征。
所述的找出其周围的所有待检测框,对于待提取的图片PP,原始图片位置为(x,y),(x+a,y),(x,y+b),(x+a,y+b)四个点所围成的矩形。我们以(x+i,y+j),(x+a+i,y+j),(x+i,y+b+j),(x+a+i,y+b+j)所围成的矩形,表示原始图片位置向右(若i>0)或者向左(若i<0)移动|i|个像素,并且向下(若j>0)或者向上(若j<0)移动|j|个像素。其方法是:计算其对应位移为k像素的候选框,由于每个候选框差别仅仅在于(i,j)的取值不同,所以,对于位移为k的候选框,其(i,j)分别为:第一组:(i-k,jj),其中,jj=[j-k+1,j+k-1];第二组:(i+k,jj),其中,jj=[j-k+1,j+k-1];第三组:(ii,j-k),其中,ii=[i-k+1,i+k-1]。第四组:(ii,j+k),其中,ii=[i-k+1,i+k-1];第五组:(i-k,j-k),(i-k,j+k),(i+k,j-k),(i+k,j+k)。k的取值通常为[1,2,3,……i与j的最大值],由于上述方法会产生较多的候选框,通常情况下k可以不连续,k、i和j的值可以根据人机交互模块的输入取值,由于人移动较慢,所以通常k、i和k的取值都很小。
所述的计算所有待检测框的ORB特征与原始帧的ORB特征的距离,其方法为:考虑到对于每一个ORB特征V,V(i)表示V(i)的第i位,V(i)的取值为0或1,那么对于每一个待检测框的ORB特征与原始帧的ORB特征之间的距离的计算方法如下:对比两组ORB特征的每一位,计算所有对应位不相同的个数,所述的对应位不相同是指V1(i)≠V2(i),其中V1(i)表示第一个ORB特征的第i位,V2(i)表示第二个ORB特征的第i位。
所述的统计匹配成功的特征点的个数,其方法是:
对于ORB特征集合ORB1的每一个ORB特征V1
计算V1与ORB2的每一个特征的距离。
若最小距离小于阈值(通常为50)并且:最小距离<0.8×第二小距离
意味着匹配成功,将匹配成功的数量加1.
所述的图像预处理模块,其方法是:在初始化阶段该模块不工作;在检测过程中,接收到灰度的人脸图像视频片段,对该视频片段的每一帧图像,进行如下处理,设待处理的图像为X,第1步对输入的图像进行去噪,第2步对去噪后的图像进行光照补偿。待该视频片段的每一帧均预处理好了之后,将该视频片段传递给人脸图像评估模块。
所述的对输入的图像进行去噪,其方法是:针对于待处理的人脸图像X,首先设置一个3×3维的窗口,考虑该图像X的每个像素点X(i,j),以该点为中心点的3×3维矩阵所对应的像素值分别为[X(i-1,j-1),X(i-1,j),X(i-1,j+1),X(i,j-1),X(i,j),X(i,j+1),X(i+1,j+1),X(i+1,j),X(j+1,j+1)]进行从大到小排列,取其排在中间的值为新的像素X′(i,j)所对应滤波后值,注意对于X的边界点,会出现其3×3维的窗口所对应的某些像素点不存在的情况,那么只需计算落在窗口内存在的像素点的中间值即可,若窗口内为偶数个点,将排在中间两个像素值的平均值作为该像素点去噪后的值X′(i,j),从而,新的图像矩阵X′即为滤波后所得的图片矩阵。
所述的对去噪后的图像进行光照补偿,针对于去噪后的人脸图像X′其步骤为:第1步,考虑到灰度图像的值只有0-255,所以定义一个长度为256的数组为P,其初始值的所有元素都为0,对于当前图片的每一个点X′(a,b),若其灰度为i,则P(i)=P(i)+1。当X′的所有点计算完成后,便得到当前图像在所有灰度值上的分布P,然后对于数组P的每一个点P(i),使得P(i)=P(i)/(row×col),其中,row为灰度图像X′的行元素的个数,col为灰度图像X′的列元素的个数。此时P保存的是当前每一个灰度的概率分布。第2步,计算累计归一化直方图C,C为与数组P相同维度的数组,并且C的每一个元素的初始值为0,对于数组C的每一个元素i,计算数组P中所有标号小于等于i的元素之和,即第3步,找出图片的最大像素max和最小像素min,其计算方法为,max为数组P按照从标号为255开始到0的顺序中第一个i,使得P(i)≠0,则当前标号记为max=i,min为数组P按照从标号为0开始到255的顺序中第一个j使得P(j)≠0,则当前标号记为min=j。对于原始灰度图像X′的每一个元素,更新其值为X′(i,j)=C(X′(i,j)×(max-min))+min。更新之后的图像X′即为光照补偿后的图像。
所述的人脸图像评估模块,在初始化阶段,接收从常见的人脸图像照片、常见的非人脸图像照片、人脸识别模块识别错误的照片,然后利用这些图像信息初始化人脸图像评价算法;在检测过程中,若待评估的图像已经评估超过两次,则直接评估为不易识别,然后发送给识别结果处理模块;若模块接收到来自图像预处理模块的视频片段,则从这段视频片段中选择最易识别的一张人脸照片,然后对该照片的质量进行评价;若接收到来自不理想人脸图像处理模块,则直接对该照片的质量进行评价。对于待评价的照片,将该照片分为不易识别,易识别两类,若识别结果是易识别,则将图像传递给人脸图像识别模块,若识别结果是不易识别并且该图像是由图像预处理模块的视频片段中提取出来的,则将该图像传递给不理想人脸图像处理模块,若识别结果是不易识别并且该图像是由不理想人脸图像处理模块传递过来的,则不再对该图像进行评估,直接将该图像传递给识别结果处理模块。
所述接收从常见的人脸图像照片、常见的非人脸图像照片、人脸识别模块识别错误的照片,然后利用这些图像信息初始化人脸图像评价算法,其初始化方法如下:第1步,将所有照片构成的图像集合X=[x1,x2,…,xm],其中xi为对输入图像的向量化表示,xi为列向量,m为当前人脸数据集的人脸图像个数。对于一张维度为n×n维的人脸图像P。第2步,在得到X之后,计算x1,x2,…,xm的平均值μ,然后对X的每一列计算减去均值μ,从而得到X′,X′为均值化的X。然后计算X′T×X′,其中X′T表示矩阵X′的转置。第3步,计算矩阵X′T×X′的特征值和特征向量。我们将值为0的特征值对应的特征向量删掉,剩下的所有特征向量的集合构成矩阵为W,矩阵W的每一列是一个特征向量;第4步,计算X″=WT×X′,WT为矩阵W的转置;第5步,由于X″的每一列对应原始图像集合X=[x1,x2,…,xm],而x1,x2,…,xm分别对应着非人脸图像照片、人脸识别模块识别错误的照片这三种中的一种,此处设x1,…,xi属于人脸图像照片,xi+1,…,xj属于非人脸图像照片,xj+1,…,xn属于人脸识别模块识别错误的照片,计算x1,…,xi的平均值μ1,并对x1,…,xi的每一列计算减去均值μ1得到X1,计算xi+1,…,xj的平均值μ1,并对xi+1,…,xj的每一列计算减去均值μ2得到X2,计算xj+1,…,xn的平均值μ3,然后对xj+1,…,xn的每一列计算减去均值μ3得到X3,然后计算Sw=X1×X1T+X2×X2T+X3×X3T、计算Sb=i×μ1×μ1 T+(j-i)×μ1×μ1 T+(n-j)×μ3×μ3 T;第6步,计算矩阵Sb×SwT的特征值和特征向量,其中SwT表示矩阵Sw的逆,然后设其特征值为eig(i)其特征向量为vec(i),(1≤i≤n)。我们将特征值按照对应的特征值从大到小排列,然后选择合适的j,使得j为满足的最小值(1≤j≤n),我们选择[eig(1),eig(2),…,eig(j)]所对应的特征向量的集合[vec(1),vec(2),…,vec(j)],设该矩阵为W′。最后,我们得到了转换矩阵W″=W′×W,以及三类的聚类中心μ1、μ2和μ3,保存转换矩阵和聚类中心。
所述的对输入图像的向量化表示,其方法为,对于输入图像P其上的每一个像素P(i,j),按照下列方式进行排列:[P(1,1),P(2,1),…,P(n,1),P(1,2),P(2,2),…,P(n,2),P(1,n),P(2,n),…P(n,n)],然后计算xi(j)=xi(j)/Σ,Σ为xi的所有元素之和,从而得到了其向量化表示。
所述的从这段视频片段中选择最易识别的一张人脸照片,其方法为:将视频变换成图像集合X=[x1,x2,…,xm],其中xi为对视频片段的每一帧图像的向量化表示,向量化表示方式与对输入图像的向量化表示方法相同,xi为列向量,m为当前视频图像的帧数。第1步,计算Y=W″T×X,然后计算Y的每一列与μ1的欧氏距离,选择欧氏距离最小的列,设该列为第k列,则视频中第k帧即为当前最易识别的人脸图像,其中W″和μ1为初始化过程中保存的转换矩阵和聚类中心。
所述的对该照片的质量进行评价,其方法为:设该照片的向量化表示为x,向量化表示方式与对输入图像的向量化表示方法相同,x为列向量,计算y=W″T×x,然后计算y与μ1、μ2和μ3的欧氏距离,计算μ1与μ2,μ2与μ3,μ3与μ1之间的欧氏距离最小值为d,人机交互模块设定的阈值为δ,那么若y与μ1小于d+δ,则判定当前人脸图像为易识别,否则判定当前人脸图像为不易识别,其中W″、μ1、μ2和μ3为初始化过程中保存的转换矩阵和聚类中心。
所述的人脸图像识别模块,将接收到待识别的人脸图像进行识别,该模块可以连接到已有的大型人脸识别系统,将接收到的待识别的人脸图像发送给已有的人脸识别系统,然后等待人脸识别系统的识别结果;也可以是在本地实现的一个小型神经网络人脸识别系统,在初始化过程中对该小型神经网络人脸识别系统进行初始化;在检测过程中,利用该小型的神经网络人脸识别系统对待识别的人脸图像进行识别,对于得到的识别结果,若成功识别,则将识别结果传递给识别结果处理模块,若不成功识别,则将该图像传递给不理想人脸图像处理模块,另外本模块可以根据人机交互模块的输入,添加或者删除一个人然后进行重新初始化。
所述的小型神经网络人脸识别系统,是一个基于深度神经网络的分类系统,其网络结构为:L1为输入层,输入的结构为64×64×1,输出至L2和L5;L2为卷积层,卷积核大小为3×3,卷积步长为1,输出大小为64×64×32,输出至L3;L3为卷积层,卷积核大小为3×3,卷积步长为1,其输出大小为64×64×32,该层输出至L4;L4为卷积层,卷积核大小为1×1,卷积步长为1,其输出大小为64×64×16,该层输出至L5;L5为最大池化层,该层的输入分别为L1的64×64×1维数据和L4的64×64×16维数据,将这两组数据按照第三维整合,得到64×64×17维的输入,该层的池化窗口大小为2×2,其输出为32×32×17,该层输出至L6和L9;L6为卷积层,卷积核大小为3×3,卷积步长为1,其输出大小为32×32×17,该层输出至L7;L7为卷积层,卷积核大小为3×3,卷积步长为1,其输出大小为32×32×17,该层输出至L8;L8为卷积层,卷积核大小为1×1,卷积步长为1,其输出大小为32×32×17,该层输出至L9;L9为最大池化层,该层的输入分别为L5的32×32×17维数据和L8的32×32×17维数据,将这两组数据按照第三维整合,得到32×32×34维的输入,该层的池化窗口大小为2×2,其输出为16×16×34,该层输出至L10和L13;L10为卷积层,卷积核大小为3×3,卷积步长为1,其输出大小为16×16×34,该层输出至L11;L11为卷积层,卷积核大小为3×3,卷积步长为1,其输出大小为16×16×34,该层输出至L12;L12为卷积层,卷积核大小为1×1,卷积步长为1,其输出大小为16×16×17,该层输出至L13;L13为最大池化层,该层的输入分别为L9的16×16×17维数据和L12的16×16×17维数据,将这两组数据按照第三维整合,得到16×16×34维的输入,该层的池化窗口大小为2×2,其输出为8×8×34,该层输出至L14和L17;L14为卷积层,卷积核大小为3×3,卷积步长为1,其输出大小为8×8×34,该层输出至L15;L15为卷积层,卷积核大小为3×3,卷积步长为1,其输出大小为8×8×34,该层输出至L16;L16为卷积层,卷积核大小为1×1,卷积步长为1,其输出大小为8×8×17,该层输出至L17;L17为最大池化层,该层的输入分别为L13的8×8×17维数据和L16的8×8×17维数据,将这两组数据按照第三维整合,得到8×8×34维的输入,该层的池化窗口大小为2×2,其输出为4×4×34,该层输出至L18;L18为卷积层,卷积核大小为1×1,卷积步长为1,其输出大小为4×4×17,该层输出至L19;L19为降维层(Flatten层),该层把4×4×17的输入展开成一维的输出,其输出是长度为272的一维向量,该层输出至L20;L20为全连接层,该层的输入为长度为272的一维向量,输出为长度为n的一维向量,其中n是该小型神经网络人脸识别系统所需识别的最大人脸数量,然后对该输入进行随机断开(Dropout),随机断开的概率为50%,该层的输出经过Softmax函数处理后即为识别结果。其中Li表示第i层,上述每一层的输入均被正则化(Batch Norm),所有层使用LeakyReLU激活函数,斜率为0.2。该网络的每一层的具体实现方式,tensorflow等深度学习框架均已给出实现方式,本发明中未提到的参数均为所采用的深度学习框架所给出的默认值。
所述的对该小型神经网络人脸识别系统进行初始化,其方法是:初始化时,若需要对n个人进行分类,则需要每一个人的一定数量的照片,构成一个初始化图像集合,然后使用所述的小型神经网络人脸识别系统的网络结构,误差函数为多分类的对数损失函数(categorical_crossentropy),使用随机最速下降法进行优化,当损失函数在迭代10次内不再减小时优化终止,保存此时的网络参数作为该深度网络模型。
所述的本模块可以根据人机交互模块的输入,添加或者删除一个人然后进行重新初始化,其方法是:对于删除一个人,若该人在识别结果中对应的第i位置,则在小型神经网络人脸识别系统的L20的输出对应的i位置标记即可;对于添加一个人,若此时神经网络有被标记的节点j,则将该人表示为识别结果中对应的第j位置,然后将该人脸的一定数量的照片替换初始化图像集合中的第j位置的人脸,然后对现有网络的参数进行优化,更新时网络的初始参数即为更新前的参数,优化方法与所述的对该小型神经网络人脸识别系统进行初始化方法相同,由于此时网络的参数仅需要微调,所以算法的优化过程耗时较少。
所述的利用该小型的神经网络人脸识别系统对待识别的人脸图像进行识别,其方法为:设待识别输入图像为X,首先对图像X进行缩放,使X变为64×64的二维矩阵,然后将该二维矩阵作为该小型的神经网络人脸识别系统的输入,利用神经网络的每一层的参数进行运算,从而得到对应的输出,输出结果为一组向量,选取这一组向量中对应值最大的那一位,设该位是第k位,如果该值大于等于一个阈值,则表示该图像被识别为第k个人,否则说明未识别出正确结果,不成功识别,所述的阈值由人机交互模块设定。
所述的不理想人脸图像处理模块,其方法为:利用图像的智能生成算法将图像中存在的低像素问题、遮挡问题、角度问题进行消除,从而得到一副能够被识别的人脸图像,然后将该图像传递给人脸图像评估模块;该图像的智能生成算法共有3个生成网络和3个判别网络,均为深度神经神经网络结构,其中3个生成网络分别处理低像素问题、遮挡问题、角度问题,从而生成一张较为理想的人脸图像,3个判别网络为各自对应的生成网络的生成图像的质量进行判断,并指导判别网络的优化方向。该模块的3个生成网络的结构相同,均为自编码的神经网络结构,3个生成网络的区别在于每个生成网络的参数不同,3个生成网络的训练过程均使用了生成对抗网络的结构进行训练,因此每一个神经网络对应一个判别网络,该模型的3个判别网络的结构相同,3个判别网络的区别在于每个神经网络的参数不同。在初始化过程中,对本模块的3个生成网络和3个判别网络进行初始化,从而得到由三个生成网络串联的生成网络;在检测过程中,对于待处理的不理想人脸图像,首先利用处理低像素问题的生成网络处理图像中可能存在的低像素问题,然后利用处理遮挡问题的生成网络处理图像中可能存在的遮挡问题,然后利用处理角度问题的生成网络处理图像中可能存在的角度问题,该过程可以将待处理的图像使用由三个生成网络串联的生成网络进行处理,最后将处理后的结果传递给人脸图像评估模块。
所述的该模块的3个生成网络的结构相同,其具体的网络结构为:该网络结构共15层,L1为输入层,输入的结构为64×64×1,该层输出至L2;L2为卷积层,卷积核大小为3×3,卷积步长为2,其输出大小为64×64×32,该层输出至L3和L15;L3为卷积层,卷积核大小为3×3,卷积步长为2,其输出大小为32×32×64,该层输出至L4和L14;L4为卷积层,卷积核大小为3×3,卷积步长为2,其输出大小为16×16×128,该层输出至L5和L13;L5为卷积层,卷积核大小为3×3,卷积步长为2,其输出大小为8×8×256,该层输出至L6和L12;L6为卷积层,卷积核大小为3×3,卷积步长为2,其输出大小为4×4×512,该层输出至L7和L11;L7为卷积层,卷积核大小为3×3,卷积步长为2,其输出大小为2×2×1024,该层输出至L8和L10;L8为卷积层,卷积核大小为3×3,卷积步长为2,其输出大小为1×1×2048,该层输出至L9;L9为反卷积层,反卷积核大小为3×3,反卷积步长为2,其输出大小为2×2×1024,该层输出至L10;L10为反卷积层,反卷积核大小为3×3,反卷积步长为2,输入分别为L7和L9数据,将这两组数据按照第三维整合,得到2×2×2048维的输入,输出为4×4×512,该层输出至L11;L11为反卷积层,反卷积核大小为3×3,反卷积步长为2,输入分别为L6和L10数据,将这两组数据按照第三维整合,得到4×4×1024维的输入,输出为8×8×256,该层输出至L12;L12为反卷积层,反卷积核大小为3×3,反卷积步长为2,输入分别为L5和L11数据,将这两组数据按照第三维整合,得到8×8×512维的输入,输出为16×16×128,该层输出至L13;L13为反卷积层,反卷积核大小为3×3,反卷积步长为2,输入分别为L4和L12数据,将这两组数据按照第三维整合,得到16×16×256维的输入,输出为32×32×64,该层输出至L14;L14为反卷积层,反卷积核大小为3×3,反卷积步长为2,输入分别为L3和L13数据,将这两组数据按照第三维整合,得到32×32×128维的输入,输出为64×64×32,该层输出至L15;L15为反卷积层,反卷积核大小为3×3,反卷积步长为2,输入分别为L2和L14数据,将这两组数据按照第三维整合,得到64×64×64维的输入,输出为64×64×1,该层输出即为神经网络的输出结果。其中Li表示第i层,上述每一层的输入均被正则化(Batch Norm),L15的激活函数使用tanh,其他层的激活函数使用tanh,该网络的每一层的具体实现方式,tensorflow等深度学习框架均已给出实现方式,本发明中未提到的参数均为所采用的深度学习框架所给出的默认值。
所述的该模型的3个判别网络的结构相同,其具体的网络结构为:该模型的输入为64×64的图像,输出为两个节点,该模型的共有21层,其中L1层到L19层与所述的小型神经网络人脸识别系统相同,L20为全连接层,该层的输入为长度为272的一维向量,输出为长度为50的一维向量,然后对该输入进行随机断开(Dropout),随机断开的概率为50%,该层输出至L21层;L21为全连接层,该层的输入为长度为50的一维向量,输出为长度为2的一维向量,该层的输出经过Softmax函数处理后即为识别结果。其中Li表示第i层,上述每一层的输入均被正则化(Batch Norm),所有层使用LeakyReLU激活函数,斜率为0.2,该网络的每一层的具体实现方式,tensorflow等深度学习框架均已给出实现方式,本发明中未提到的参数均为所采用的深度学习框架所给出的默认值。
所述的对本模块的3个生成网络和3个判别网络进行初始化,每一个生成网络和一个判别网路一一对应,分别解决一个问题,其方法为:第一步,为三对对抗网络准备训练数据集;第二步,对于每一对对抗网络使用为其准备的训练数据进行训练;第三步,将三对对抗网络的生成网络进行串联,然后训练,从而得到初始化后的网络参数,将串联起来的网络结构保存。
所述的为三对对抗网络准备训练数据集,其方法为:第一对解决低像素问题,所以准备像素为64×64的人脸图像集合PY,然后将这些图像使用不同比例进行缩放,最小缩放到8×8像素,然后将缩放后的人脸图像在放大到64×64,得到变换后的图像集合PX,PY的每一张图像与PX的每一张图像一一对应,同属于一个人;第二对解决遮挡问题,所以准备两个图像集合SY和SX,每张图像的像素均为64×64,SY为无遮挡的人脸图像,SX为有遮挡的人脸图像,由于深度网络需要的训练图像较多,所以可以通过在无遮挡的人脸图像添加墨镜、口罩、帽子和围巾等遮挡物来增大训练样本,SY的每一张图像与SX的每一张图像一一对应,同属于一个人;第三对解决角度问题,所以准备两个图像集合AY和AX,每张图像的像素均为64×64,AY为正面人脸图像集合,AX为不同角度的人脸图像,SY的每一张图像与SX的每一张图像一一对应,同属于一个人。
所述的对于每一对对抗网络使用为其准备的训练数据进行训练,其方法为:三对对抗网络的算法结构均相同,对于每一对网络,设Y为不存在低像素问题、遮挡问题或角度问题的图像集合,X为存在低像素问题、遮挡问题或角度问题的图像集合;Xi和Yi分别表示集合中的第i个图像,这两张图像属于一个人,对于生成网络G,G(Xi)表示该图像经过生成网络处理后的结果,对于判别网络D,D(Y)表示对真实图像的判别结果,D(G(Xi))表示对经过生成网络处理后的图像的判别结果,使用adam优化器;第一步对于生成网络的初始参数值为随机初始化,对于判别网络的初始参数值,可以使用所述的小型神经网络人脸识别系统所计算得到的训练好的神经网络的L1层到L19层的参数作为网络的初始参数,L20和L21的参数使用随机初始化;第二步开始迭代,算法迭代10000次后终止。每次迭代时,从Xi和Yi中随机抽取一定数量的图像,第1步,保持生成网络的参数不变,使用误差函数log(1-D(G(Xi)))+D(Yi)更新判别网络5次;第2步,保持判别网络的参数不变,使用误差函数 更新判别网络1次;本学习过程的其他细节信息与论文《Unsupervised Representation Learning with Deep ConvolutionalGenerative Adversarial Networks》相同。
所述的将三对对抗网络的生成网络进行串联,然后训练,其方法为:首先将三个生成网络进行串联,GP表示解决低像素问题的生成网络;GS表示解决遮挡问题的生成网络,GA表示解决角度问题的生成网络,将GP的输出作为GS的输入,GS的输入作为GA的输出,从而GA(GS(GP(x)))表示图像x首先经过GP处理,处理得到的图像再经过GS处理,处理得到的图像再经过GA处理,从而得到生成的图像;然后将三组对抗网络的数据进行合并从而得到两组数据集X和Y,保留Y图像中的不存在低像素问题、遮挡问题、角度问题的人脸图像,并保留数据集X中对应的图像,构成了新的数据集X′和Y′,然后使用新的数据集进行训练。训练的生成网络为所得到的串联网络,训练所需要的判别网络为解决角度问题的判别网络,训练的迭代次数为1000,训练其他细节信息与所述的对于每一对对抗网络使用为其准备的训练数据进行训练的训练过程一致。
所述的将待处理的图像使用由三个生成网络串联的生成网络进行处理,其方法为:设待识别输入图像为X,首先对图像X进行缩放,使X变为64×64的二维矩阵,然后将该二维矩阵作为该串联的生成网络的输入,利用保存的神经网络的每一层的参数进行运算,从而得到对应的输出,输出的信息即为处理后的图像。
所述的识别结果处理模块,其方法为:在初始化过程中,建立一个空的集合S和N;在检测过程中,该模块共完成三个功能:第一个功能,根据人脸图像评估模块传递来的图像和视频信息进行处理;第二个功能,根据人脸图像识别模块传递来的识别结果和视频片段进行处理;第三个功能,根据人机交互模块所传递来的操作进行处理。然后将传递来的信息以及集合S和N传递给人机交互模块。
所述的根据人脸图像识别模块传递来的识别结果和视频片段进行处理,其方法是:由于当前信息是由人脸图像识别模块传递来的消息,说明该人脸图像已经被识别,设识别结果为个体A,判断该识别个体是否在识别结果处理模块的集合S中存在,如果不存在,则建立一个新的集合A,将该识别结果添加进集合S,并且当前视频所对应的人脸检测框对应每一帧的位置信息添加进集合S;若存在,则直接将该识别结果添加进集合S,并且将当前视频所对应的人脸检测框对应每一帧的位置信息添加进集合S;
所述的人脸图像评估模块传递来的图像和视频信息进行处理,其方法是:由于当前信息是由人脸图像评估模块传来的,说明当前人脸图像未被识别,则建立一个新的集合,以当前视频所对应的人脸检测框的编号作为集合名称,并将当前视频所对应的人脸检测框对应每一帧的位置信息添加入该新建的集合,然后将该集合的名称和传递来的图像添加入识别结果处理模块的集合N。
所述的根据人机交互模块所传递来的操作进行处理,传递来的操作包括:1.当前人脸检测框内的人脸被错误识别;2.手工输入当前人脸检测框内的人脸识别结果。其处理方法如下:1.当传递来的操作是当前人脸检测框内的人脸被错误识别,则首先在识别结果处理模块的集合S中找到被错误识别的人脸集合,然后从该人脸集合内的人脸检测框的信息中删掉被错误识别的视频片段的人脸检测框的信息,根据该人脸检测框的编号作为新建的集合名称,并将当前视频片段的人脸检测框的信息添加入该新建的集合,然后将该集合的名称和典型人脸图像添加入识别结果处理模块的集合N中,此处的典型人脸图像是在不理想人脸图像处理模块中生成的人脸图像,若该视频片段不存在不理想人脸图像处理模块中生成的人脸图像,则选用人脸图像评估模块所选择的人脸图像作为典型人脸图像;2.当传递来的操作是手工输入当前人脸检测框内的人脸识别结果,则首先从识别结果处理模块的集合N中找到以当前人脸检测框的标号命名的集合,删掉该集合,并将该集合的信息加入到集合S中所对应的识别人脸的集合内。然后将集合N中的图像及当前人脸分类信息加入到所述的小型神经网络人脸识别系统的初始化图像集合中,在系统空闲或者根据人机交互模块的命令重新执行所述的对该小型神经网络人脸识别系统进行初始化。
所述的人机交互模块,其方法为:1.根据识别结果处理模块所传递来的识别信息进行处理,将识别结果显示在每一帧的每一个人脸检测框内,对于成功识别的人脸检测框,在检测框区域内显示该人的姓名,对于未识别的人脸图像,显示不理想人脸图像处理模块生成的易于识别的人脸图像。2.若操作人员认为该识别结果错误,则可以点击操作,然后将被点击的图像区域和信息传递给人机交互模块,表示当前人脸检测框内的人脸被错误识别;若监控人员认为未识别的人脸图像属于某人时,则可以点击操作,将被点击的图像区域和信息传递给人机交互模块,表示手工输入当前人脸检测框内的人脸识别结果。3.若监控人员认为某个已识别为A的人脸图像属于另一个人B,则先发送当前人脸检测框内的人脸被错误识别为A的信息,然后发送手工输入当前人脸检测框内的人脸识别为B的信息。4.该模块可以根据操作人员的操作来更改其他模块的参数和阈值,这些阈值包括所述的小型神经网络人脸识别系统中的阈值λ和所述的人脸图像筛选模块中的参数t、k、i和j,这些参数在初始化的时候由厂家给出,在检测过程中,当向识别结果处理模块发送一次当前人脸检测框内的人脸被错误识别的信息时,阈值λ的数值变为1.001×λ,当向识别结果处理模块发送一次手工输入当前人脸检测框内的人脸识别结果的信息时,阈值λ的数值变为0.999×λ;当操作人员认为系统运行卡顿时,减小k、i和j的数值,增大t的数值;当操作人员认为系统运行有更多的负载能力时,可以增大k、i和j的数值,减小t的数值,变化的数值由操作人员输入,对参数改变后系统可以立刻使用新的参数和阈值,便于操作人员判断数值是否合适,操作人员可以选择合适的时间对所述的小型神经网络人脸识别系统进行重新初始化。
本发明的有益效果是,能够将待分类的人脸图像进行评估,使用两个模块分别对易识别和不易识别的人脸图像进行处理,从而使每一个模块能够单独处理一类图像,减少了每个模块的复杂程度,提高了模块的处理效果;本方法通过将计算机处理方式和人力处理方式进行合理的分工,充分发挥二者的最大优势,从而在大量的降低人力成本的前提下,避免了人脸识别算法的错误识别而产生的损失。
附图说明
图1是本发明的功能流程图
图2是本发明整体的功能模块及其相互关系框图
图3是本发明所述的特征函数fa(x)上各点的位置关系图
图4是本发明所述的特征函数fb(x)上各点的位置关系图
图5是本发明所述的特征函数fc(x)上各点的位置关系图
图6是本发明所述的特征函数fd(x)上各点的位置关系图
图7是本发明所述的特征函数fe(x)上各点的位置关系图
具体实施方式
下面结合附图对本发明作进一步的说明。
所述的一种基于监控系统的人脸图像自动处理系统,其功能流程图如图1所示,其模块之间的相互关系如图1所示。
下面提供两个具体实施例对本发明所述的一种基于监控系统的人脸图像自动处理系统的具体过程进行说明:
实施例1:
本实施例实现了一种基于监控系统的人脸图像自动处理系统的参数初始化的过程。
1.人脸图像筛选模块在初始化的过程中,接收自然条件下的人脸和非人脸的灰度图像集合,这些样本图片的维度统一为n×n维,然后对每一张样本图片P,构建图片P所对应的积分图PP,然后使用所有积分图对级联分类器进行参数初始化,最后将训练所得的级联分类器保存起来用于检测过程。
所述的构建图片P所对应的积分图PP,其过程为:
对于图像P,我们从该矩阵的第1行第1列开始构造积分图,初始时设s(1,1)=P(1,1),RR(1,1)=P(1,1),构造过程为一个二层循环:
从而构造出P分量所对应的积分图PP;
所述的使用所有积分图对级联分类器进行参数初始化,其过程为:
第一步,定义弱分类器的函数h(x,f,p,θ)为:
其中f为特征函数,θ为阈值,p取值为1或-1,x代表根据积分图PP所构建的子窗口,对于每一个子窗口x,f(x)为该子窗口x对应于特征函数f的特征值。
我们将子窗口x的四个边界分别定义为左上点A,右上点B,左下点C,右下点D,A与B的中心点为ab,A与B的三分之一靠近A点为aab,三分之一靠近B点为abb,其余类推,区域内的中心点用O来表示。则x(A)表示子窗口在左上点A的积分图所对应的值,其余同理。
则特征函数f的特征值f(x)的具体计算公式定义为:
fa(x)=[x(bd)+x(A)-x(B)-x(ac)]-[x(ac)+x(D)-x(bd)-x(C)],并且定义s=1,t=2;
fb(x)=[x(A)+x(cd)-x(BC)-x(ad)]-[x(ad)+x(D)-x(B)-x(cd)],并且定义s=2,t=1;
fc(x)=[x(A)+x(bbd)-x(aac)-x(B)]-2×[x(bdd)+x(aac)-x(acc)-x(bdd)]+[x(D)+x(acc)-x(bdd)-x(C)],并且定义s=1,t=3;
fd(x)=[x(A)+x(ccd)-x(aab)-x(C)]-2×[x(cdd)+x(aab)-x(abb)-x(ccd)]+[x(D)+x(abb)-x(B)-x(cdd)],并且定义s=3,t=1;
fe(x)=[x(A)+x(O)-x(ab)-x(ac)]+[x(D)+x(O)-x(bd)-x(cd)]-[x(ab)+x(bd)-x(B)-x(O)]-[x(ac)+x(cd)-x(O)-x(C)],并且定义s=2,t=2;
第二步:构建积分图PP所对应的子窗口x。该子窗口x的选择过程如下:
定义自然数s和t,这两个数为子窗口的倍数,这两个数值的选定由特征函数给定,于是,x所对应的子窗口区域为:[(i,j),(i,j+t×(b-1)),(i+s×(a-1),j),(i+s×(a-1),j+t×(b-1))],其中:i,j,a,b分别为从1开始递增的整数,并且能够保证i+s×(a-1)≤n,j+t×(b-1)≤n成立的所有取值。
第三步:对于定义的5个特征函数,计算所有训练样本的所有RGB分量对应于当前子窗口x的特征值fa(x),fb(x),fc(x),fd(x),fe(x),我们将在当前RGB分量下当前子窗口x的每一个特征值称为一个特征,如果当前窗口下有wf个子窗口,那么一共有T=3×wf×5个特征,每一个特征表示为ht。设海面上正常物体的图片和异常物体的图片各有K张,则对分类器的训练过程如下:
1).对于每一张图片Xi,yi为该图片的分类,若yi=1表示该图片为异常物体的图片,若yi=-1表示该图片为正常物体的图片;
2).对于t=1,2,…,T,(T为特征个数)
①.所有样本在特征ht下的特征值fr,其中(r=1,2,…,2K),2K为正常物体和异常物体图片的总数;
②.将所得的所有特征值按照从大到小的顺序进行排序;
③.计算全部异常物体子图的权重之和:T+=sum(fr(x)),x∈异常物体的子图;
④.计算全部正常物体子图的权重之和:T-=sum(fr(x)),x∈正常物体的子图;
⑤.对于排序好的每个元素,从第一个开始处理,设当前处理的元素为i:
⑦.若最小的误差ei>1%,则意味着误差过大,舍弃;否则,将当前ht(x,f,p,θ)作为选好的弱分类器;
3).将所有选好的分类器ht按照t值从小到大排列起来,构成集合H,于是得到了我们要训练的级联分类器。
人脸图像筛选模块的初始化过程结束。
2.图像预处理模块,在初始化阶段该模块不工作。
3.人脸图像评估模块在初始化阶段中,接收从常见的人脸图像照片、常见的非人脸图像照片、人脸识别模块识别错误的照片,然后利用这些图像信息初始化人脸图像评价算法。
所述接收从常见的人脸图像照片、常见的非人脸图像照片、人脸识别模块识别错误的照片,然后利用这些图像信息初始化人脸图像评价算法,其初始化方法如下:第1步,将所有照片构成的图像集合X=[x1,x2,…,xm],其中xi为对输入图像的向量化表示,xi为列向量,m为当前人脸数据集的人脸图像个数。对于一张维度为n×n维的人脸图像P。第2步,在得到X之后,计算x1,x2,…,xm的平均值μ,然后对X的每一列计算减去均值μ,从而得到X′,X′为均值化的X。然后计算X′T×X′,其中X′T表示矩阵X′的转置。第3步,计算矩阵X′T×X′的特征值和特征向量。我们将值为0的特征值对应的特征向量删掉,剩下的所有特征向量的集合构成矩阵为W,矩阵W的每一列是一个特征向量;第4步,计算X″=WT×X′,WT为矩阵W的转置;第5步,由于X″的每一列对应原始图像集合X=[x1,x2,…,xm],而x1,x2,…,xm分别对应着非人脸图像照片、人脸识别模块识别错误的照片这三种中的一种,此处设x1,…,xi属于人脸图像照片,xi+1,…,xj属于非人脸图像照片,xj+1,…,xn属于人脸识别模块识别错误的照片,计算x1,…,xi的平均值μ1,并对x1,…,xi的每一列计算减去均值μ1得到X1,计算xi+1,…,xj的平均值μ1,并对xi+1,…,xj的每一列计算减去均值μ2得到X2,计算xj+1,…,xn的平均值μ3,然后对xj+1,…,xn的每一列计算减去均值μ3得到X3,然后计算Sw=X1×X1T+X2×X2T+X3×X3T、计算Sb=i×μ1×μ1 T+(j-i)×μ1×μ1 T+(n-j)×μ3×μ3 T;第6步,计算矩阵Sb×SwT的特征值和特征向量,其中SwT表示矩阵Sw的逆,然后设其特征值为eig(i)其特征向量为vec(i),(1≤i≤n)。我们将特征值按照对应的特征值从大到小排列,然后选择合适的j,使得j为满足的最小值(1≤j≤n),我们选择[eig(1),eig(2),…,eig(j)]所对应的特征向量的集合[vec(1),vec(2),…,vec(j)],设该矩阵为W′。最后,我们得到了转换矩阵W″=W′×W,以及三类的聚类中心μ1、μ2和μ3,保存转换矩阵和聚类中心。
人脸图像评估模块的初始化过程结束。
所述的对输入图像的向量化表示,其方法为,对于输入图像P其上的每一个像素P(i,j),按照下列方式进行排列:[P(1,1),P(2,1),…,P(n,1),P(1,2),P(2,2),…,P(n,2),P(1,n),P(2,n),…P(n,n)],然后计算xi(j)=xi(j)/∑,∑为xi的所有元素之和,从而得到了其向量化表示。
4.人脸图像识别模块,在本实施例中是一个在本地实现的小型神经网络人脸识别系统,在初始化过程中对该小型神经网络人脸识别系统进行初始化。
所述的小型神经网络人脸识别系统,是一个基于深度神经网络的分类系统,其网络结构为:L1为输入层,输入的结构为64×64×1,输出至L2和L5;L2为卷积层,卷积核大小为3×3,卷积步长为1,输出大小为64×64×32,输出至L3;L3为卷积层,卷积核大小为3×3,卷积步长为1,其输出大小为64×64×32,该层输出至L4;L4为卷积层,卷积核大小为1×1,卷积步长为1,其输出大小为64×64×16,该层输出至L5;L5为最大池化层,该层的输入分别为L1的64×64×1维数据和L4的64×64×16维数据,将这两组数据按照第三维整合,得到64×64×17维的输入,该层的池化窗口大小为2×2,其输出为32×32×17,该层输出至L6和L9;L6为卷积层,卷积核大小为3×3,卷积步长为1,其输出大小为32×32×17,该层输出至L7;L7为卷积层,卷积核大小为3×3,卷积步长为1,其输出大小为32×32×17,该层输出至L8;L8为卷积层,卷积核大小为1×1,卷积步长为1,其输出大小为32×32×17,该层输出至L9;L9为最大池化层,该层的输入分别为L5的32×32×17维数据和L8的32×32×17维数据,将这两组数据按照第三维整合,得到32×32×34维的输入,该层的池化窗口大小为2×2,其输出为16×16×34,该层输出至L10和L13;L10为卷积层,卷积核大小为3×3,卷积步长为1,其输出大小为16×16×34,该层输出至L11;L11为卷积层,卷积核大小为3×3,卷积步长为1,其输出大小为16×16×34,该层输出至L12;L12为卷积层,卷积核大小为1×1,卷积步长为1,其输出大小为16×16×17,该层输出至L13;L13为最大池化层,该层的输入分别为L9的16×16×17维数据和L12的16×16×17维数据,将这两组数据按照第三维整合,得到16×16×34维的输入,该层的池化窗口大小为2×2,其输出为8×8×34,该层输出至L14和L17;L14为卷积层,卷积核大小为3×3,卷积步长为1,其输出大小为8×8×34,该层输出至L15;L15为卷积层,卷积核大小为3×3,卷积步长为1,其输出大小为8×8×34,该层输出至L16;L16为卷积层,卷积核大小为1×1,卷积步长为1,其输出大小为8×8×17,该层输出至L17;L17为最大池化层,该层的输入分别为L13的8×8×17维数据和L16的8×8×17维数据,将这两组数据按照第三维整合,得到8×8×34维的输入,该层的池化窗口大小为2×2,其输出为4×4×34,该层输出至L18;L18为卷积层,卷积核大小为1×1,卷积步长为1,其输出大小为4×4×17,该层输出至L19;L19为降维层(Flatten层),该层把4×4×17的输入展开成一维的输出,其输出是长度为272的一维向量,该层输出至L20;L20为全连接层,该层的输入为长度为272的一维向量,输出为长度为n的一维向量,其中n是该小型神经网络人脸识别系统所需识别的最大人脸数量,然后对该输入进行随机断开(Dropout),随机断开的概率为50%,该层的输出经过Softmax函数处理后即为识别结果。其中Li表示第i层,上述每一层的输入均被正则化(Batch Norm),所有层使用LeakyReLU激活函数,斜率为0.2。该网络的每一层的具体实现方式,tensorflow等深度学习框架均已给出实现方式,本发明中未提到的参数均为所采用的深度学习框架所给出的默认值。
所述的对该小型神经网络人脸识别系统进行初始化,其方法是:初始化时,若需要对n个人进行分类,则需要每一个人的一定数量的照片,构成一个初始化图像集合,然后使用所述的小型神经网络人脸识别系统的网络结构,误差函数为多分类的对数损失函数(categorical_crossentropy),使用随机最速下降法进行优化,当损失函数在迭代10次内不再减小时优化终止,保存此时的网络参数作为该深度网络模型。
人脸图像识别模块的初始化过程结束。
5.不理想人脸图像处理模块,在初始化过程中,对本模块的3个生成网络和3个判别网络进行初始化,从而得到由三个生成网络串联的生成网络。
所述的3个生成网络,其结构相同,具体的网络结构为:该网络结构共15层,L1为输入层,输入的结构为64×64×1,该层输出至L2;L2为卷积层,卷积核大小为3×3,卷积步长为2,其输出大小为64×64×32,该层输出至L3和L15;L3为卷积层,卷积核大小为3×3,卷积步长为2,其输出大小为32×32×64,该层输出至L4和L14;L4为卷积层,卷积核大小为3×3,卷积步长为2,其输出大小为16×16×128,该层输出至L5和L13;L5为卷积层,卷积核大小为3×3,卷积步长为2,其输出大小为8×8×256,该层输出至L6和L12;L6为卷积层,卷积核大小为3×3,卷积步长为2,其输出大小为4×4×512,该层输出至L7和L11;L7为卷积层,卷积核大小为3×3,卷积步长为2,其输出大小为2×2×1024,该层输出至L8和L10;L8为卷积层,卷积核大小为3×3,卷积步长为2,其输出大小为1×1×2048,该层输出至L9;L9为反卷积层,反卷积核大小为3×3,反卷积步长为2,其输出大小为2×2×1024,该层输出至L10;L10为反卷积层,反卷积核大小为3×3,反卷积步长为2,输入分别为L7和L9数据,将这两组数据按照第三维整合,得到2×2×2048维的输入,输出为4×4×512,该层输出至L11;L11为反卷积层,反卷积核大小为3×3,反卷积步长为2,输入分别为L6和L10数据,将这两组数据按照第三维整合,得到4×4×1024维的输入,输出为8×8×256,该层输出至L12;L12为反卷积层,反卷积核大小为3×3,反卷积步长为2,输入分别为L5和L11数据,将这两组数据按照第三维整合,得到8×8×512维的输入,输出为16×16×128,该层输出至L13;L13为反卷积层,反卷积核大小为3×3,反卷积步长为2,输入分别为L4和L12数据,将这两组数据按照第三维整合,得到16×16×256维的输入,输出为32×32×64,该层输出至L14;L14为反卷积层,反卷积核大小为3×3,反卷积步长为2,输入分别为L3和L13数据,将这两组数据按照第三维整合,得到32×32×128维的输入,输出为64×64×32,该层输出至L15;L15为反卷积层,反卷积核大小为3×3,反卷积步长为2,输入分别为L2和L14数据,将这两组数据按照第三维整合,得到64×64×64维的输入,输出为64×64×1,该层输出即为神经网络的输出结果。其中Li表示第i层,上述每一层的输入均被正则化(Batch Norm),L15的激活函数使用tanh,其他层的激活函数使用tanh,该网络的每一层的具体实现方式,tensorflow等深度学习框架均已给出实现方式,本发明中未提到的参数均为所采用的深度学习框架所给出的默认值。
所述的3个判别网络,其结构相同,具体的网络结构为:该模型的输入为64×64的图像,输出为两个节点,该模型的共有21层,其中L1层到L19层与所述的小型神经网络人脸识别系统相同,L20为全连接层,该层的输入为长度为272的一维向量,输出为长度为50的一维向量,然后对该输入进行随机断开(Dropout),随机断开的概率为50%,该层输出至L21层;L21为全连接层,该层的输入为长度为50的一维向量,输出为长度为2的一维向量,该层的输出经过Softmax函数处理后即为识别结果。其中Li表示第i层,上述每一层的输入均被正则化(Batch Norm),所有层使用LeakyReLU激活函数,斜率为0.2,该网络的每一层的具体实现方式,tensorflow等深度学习框架均已给出实现方式,本发明中未提到的参数均为所采用的深度学习框架所给出的默认值。
所述的对本模块的3个生成网络和3个判别网络进行初始化,每一个生成网络和一个判别网路一一对应,分别解决一个问题,其方法为:第一步,为三对对抗网络准备训练数据集;第二步,对于每一对对抗网络使用为其准备的训练数据进行训练;第三步,将三对对抗网络的生成网络进行串联,然后训练,从而得到初始化后的网络参数,将串联起来的网络结构保存。
所述的为三对对抗网络准备训练数据集,其方法为:第一对解决低像素问题,所以准备像素为64×64的人脸图像集合PY,然后将这些图像使用不同比例进行缩放,最小缩放到8×8像素,然后将缩放后的人脸图像在放大到64×64,得到变换后的图像集合PX,PY的每一张图像与PX的每一张图像一一对应,同属于一个人;第二对解决遮挡问题,所以准备两个图像集合SY和SX,每张图像的像素均为64×64,SY为无遮挡的人脸图像,SX为有遮挡的人脸图像,由于深度网络需要的训练图像较多,所以可以通过在无遮挡的人脸图像添加墨镜、口罩、帽子和围巾等遮挡物来增大训练样本,SY的每一张图像与SX的每一张图像一一对应,同属于一个人;第三对解决角度问题,所以准备两个图像集合AY和AX,每张图像的像素均为64×64,AY为正面人脸图像集合,AX为不同角度的人脸图像,SY的每一张图像与SX的每一张图像一一对应,同属于一个人。
所述的对于每一对对抗网络使用为其准备的训练数据进行训练,其方法为:三对对抗网络的算法结构均相同,对于每一对网络,设Y为不存在低像素问题、遮挡问题或角度问题的图像集合,X为存在低像素问题、遮挡问题或角度问题的图像集合;Xi和Yi分别表示集合中的第i个图像,这两张图像属于一个人,对于生成网络G,G(Xi)表示该图像经过生成网络处理后的结果,对于判别网络D,D(Y)表示对真实图像的判别结果,D(G(Xi))表示对经过生成网络处理后的图像的判别结果,使用adam优化器;第一步对于生成网络的初始参数值为随机初始化,对于判别网络的初始参数值,可以使用所述的小型神经网络人脸识别系统所计算得到的训练好的神经网络的L1层到L19层的参数作为网络的初始参数,L20和L21的参数使用随机初始化;第二步开始迭代,算法迭代10000次后终止。每次迭代时,从Xi和Yi中随机抽取一定数量的图像,第1步,保持生成网络的参数不变,使用误差函数log(1-D(G(Xi)))+D(Yi)更新判别网络5次;第2步,保持判别网络的参数不变,使用误差函数 更新判别网络1次;本学习过程的其他细节信息与论文《Unsupervised Representation Learning with Deep ConvolutionalGenerative Adversarial Networks》相同。
所述的将三对对抗网络的生成网络进行串联,然后训练,其方法为:首先将三个生成网络进行串联,GP表示解决低像素问题的生成网络;GS表示解决遮挡问题的生成网络,GA表示解决角度问题的生成网络,将GP的输出作为GS的输入,GS的输入作为GA的输出,从而GA(GS(GP(x)))表示图像x首先经过GP处理,处理得到的图像再经过GS处理,处理得到的图像再经过GA处理,从而得到生成的图像;然后将三组对抗网络的数据进行合并从而得到两组数据集X和Y,保留Y图像中的不存在低像素问题、遮挡问题、角度问题的人脸图像,并保留数据集X中对应的图像,构成了新的数据集X′和Y′,然后使用新的数据集进行训练。训练的生成网络为所得到的串联网络,训练所需要的判别网络为解决角度问题的判别网络,训练的迭代次数为1000,训练其他细节信息与所述的对于每一对对抗网络使用为其准备的训练数据进行训练的训练过程一致。
不理想人脸图像处理模块的初始化过程结束。
6.识别结果处理模块,在初始化过程中,建立一个空的集合S和N。
7.人机交互模块,在初始化过程中,由厂家设定阈值和参数,对于所述的小型神经网络人脸识别系统中的阈值λ,本实施例中设为λ=0.5;所述的人脸图像筛选模块中的参数t、k、i和j,本实施例中设为t=1秒,k=1,i=5和j=5。
实施例2:
本实施例实现了一种基于监控系统的人脸图像自动处理系统的检测过程。
1.人脸图像筛选模块在检测过程中,对于每个时间间隔t内的视频片段的每一帧图像,其中,t的值由人机交互模块输入,首先对第一帧图像进行人脸检测,然后对检测到的每一个人脸对应的人脸检测框进行标号,然后我们根据第一帧的每一个人脸检测框的坐标区间,使用基于ORB特征的跟踪算法进行多目标跟踪,由于基于ORB特征的跟踪算法系统开销小,可以实时跟踪多目标,所以在对第二帧跟踪时,得到第二帧的人脸检测框,考虑到时间间隔很短,人脸图像的大小变化比较小,所以人脸检测框的大小不做调整,然后处理第三帧,直到视频处理结束,此时每一个人脸检测框对应的视频每一帧的内容构成的图像集合,即当前标号的人脸图像的视频片段。
所述的对第一帧图像进行人脸检测,其方法为:首先判断接收到的监控图像是否为彩色图像,若为彩色图像,则将该图像转为灰度图像,设灰度图像为X′,然后将灰度图像按照窗口大小为n×n来提取其子图集合,对于所得的所有子图片,构建其积分图,最后用训练所得的级联分类器进行分类筛选,得到所有人脸的子图片,将这些子图片分别使用训练所得的级联分类器进行分类,用于判断当前子图是否为人脸,然后将被检测为人脸的子图在原始图像的坐标信息作为该人脸检测过程的检测结果。
所述的将该图像转为灰度图像,其转换方法为:对于原始彩色图片上的每一个像素点X所对应的R,G,B分量,用i和j表示横纵坐标,则该像素点对应的灰度图像X′的灰度值为X′(i,j)=0.3×B′(i,j)+0.59×G′(i,j)+0.11×R′(i,j),其中X′(i,j)为整数,若所得结果为小数的话,仅取其整数部分,从而得到原始X的灰度图像X′。
所述将灰度图像按照窗口大小为n×n来提取其子图集合,其方法为:
首先,对于原始的M行N列的图像,定义块大小为n×n,则将提取像素区域定义为:[(i,j),(i,j+n-1),(i+n-1,j),(i+n-1,j+n-1)]所围成的正方形区域,其中i=[1,…,M-n+1],j=[1,…,N-n+1],从而得到缩放图的第1层,该层共有(M-n+1)×(N-n+1)张子图,每张子图大小为n×n维,对于每一张图片,记录其图像的提取区域为左上点A=(i,j)右下点D=(i+n-1,j+n-1);
对于原始图片X,其上的每一个像素点为X(i,j),对于缩放后的图片X1/2(a,b),缩放过程为:
X1/2(a,b)=X(i,j),其中,i=2×a,j=2×b;
对于所得的缩放后的图像继续使用上述方法进行提取子图,从而得到缩放图的第2层,该层共有张子图,每张子图的大小为n×n维,对于每一张子图片,记录其在原始图像上提取区域的坐标(左上点A和右下点D);对于第i层,将原始图像缩放成行列的图像,并继续使用上述方法进行提取子图,该层共有 张子图,每张子图的大小为n×n维,对于每一张子图片,记录其在当前图像上提取区域的坐标(左上点A和右下点D);…;直到时,意味着缩小的遥感图像最短边小于n,此时已经无法提取出子图,于是提取过程结束。
所述的将这些子图片分别使用训练所得的级联分类器进行分类,其过程如下:设级联分类器H共有T′个分类器hi(i=1,2,…,T′),
对于所用于筛选的每一张n×n维子图
对于i=1,2,…,T′
计算在当前子图下的hi,若hi=0,当前子图是正常物体,该子图的分类筛选过程结束;
若当前子图在所有分类器下的分类结果hi都为1,则说明当前子图为人脸。
所述对检测到的每一个人脸对应的人脸检测框进行标号,该标号的命名方式如下:bak表示当前图像对应的视频备份编号,time表示当前人脸属于第几个时间段,开机的第一段视频编号为1,然后依次增加;frame表示在当前时间段内属于第几帧,视频的第一帧编号为1,然后依次增加,num表示当前人脸图像属于第几个人脸,人脸图像以人脸检测框的左上角左边为排序依据,对于两个人脸检测框的左上角坐标a:(x1,y1)和b:(x2,y2),若x1<x2,则a在b的前边,若x1>x2,则b在a的前边,若x1=x2,则比较y1和y2,值小的在前边,若相同,则随机排序。待所有的人脸图像根据左上角坐标排序后,排在第一位的编号为1,然后依次增加。因此,对于第r个备份的第s个视频编号的第t帧的第u个人脸,编号为bak.r_time.s_frame.t_num.u。
所述的基于ORB特征的跟踪算法进行多目标跟踪,其方法为:设当前已经得到了上一帧的所有人脸检测框的位置构成的集合,算法需要根据上一帧的人脸检测框内的人脸图像ORB特征来判断当前帧所对应的人脸图像的位置,设上一帧为i-1,则当前帧为i,那么对于人脸检测框集合中的第j个人脸图像,在上一帧用frame.i-1_num.j,当前帧用frame.i_num.j表示。对于上一帧的每一个人脸检测框,设当前框编号为j,第1步,提取人脸检测框j在上一帧的对应位置的人脸图像的ORB特征,其ORB特征为若干组长度相同的字符串,每一组字符串的元素为[0,1],为了节省空间,我们可以让计算机的一个字节的每一位与位串的一位相对应。第2步,设该人脸检测框j在上一帧的位置为(x,y),(x+a,y),(x,y+b),(x+a,y+b),其中a和b表示目标人脸P的长与宽。而设目标人脸P所在的原始帧的下一帧为PP,则在图片PP以目标人脸P在原始帧的位置为(x,y),(x+a,y),(x,y+b),(x+a,y+b)为中心,找出其周围的所有待检测框,并计算每一个待检测框内图像的ORB特征。第3步,计算所有待检测框的ORB特征与原始帧的ORB特征的距离,统计匹配成功的特征点的个数,选择匹配成功最多的待检测框作为为目标人脸在当前帧的位置。
所述的ORB特征,从一个图像中提取ORB特征的方法已经较为成熟,在OpenCV计算机视觉库里边已有实现。对一个图片提取其ORB特征,输入值为当前图片,输出为若干组长度相同的字符串,每一组代表一个ORB特征。
所述的找出其周围的所有待检测框,对于待提取的图片PP,原始图片位置为(x,y),(x+a,y),(x,y+b),(x+a,y+b)四个点所围成的矩形。我们以(x+i,y+j),(x+a+i,y+j),(x+i,y+b+j),(x+a+i,y+b+j)所围成的矩形,表示原始图片位置向右(若i>0)或者向左(若i<0)移动|i|个像素,并且向下(若j>0)或者向上(若j<0)移动|j|个像素。其方法是:计算其对应位移为k像素的候选框,由于每个候选框差别仅仅在于(i,j)的取值不同,所以,对于位移为k的候选框,其(i,j)分别为:第一组:(i-k,jj),其中,jj=[j-k+1,j+k-1];第二组:(i+k,jj),其中,jj=[j-k+1,j+k-1];第三组:(ii,j-k),其中,ii=[i-k+1,i+k-1]。第四组:(ii,j+k),其中,ii=[i-k+1,i+k-1];第五组:(i-k,j-k),(i-k,j+k),(i+k,j-k),(i+k,j+k)。k的取值通常为[1,2,3,……i与j的最大值],由于上述方法会产生较多的候选框,通常情况下k可以不连续,k、i和j的值可以根据人机交互模块的输入取值,由于人移动较慢,所以通常k、i和j的取值都很小。
所述的计算所有待检测框的ORB特征与原始帧的ORB特征的距离,其方法为:考虑到对于每一个ORB特征V,V(i)表示V(i)的第i位,V(i)的取值为0或1,那么对于每一个待检测框的ORB特征与原始帧的ORB特征之间的距离的计算方法如下:对比两组ORB特征的每一位,计算所有对应位不相同的个数,所述的对应位不相同是指V1(i)≠V2(i),其中V1(i)表示第一个ORB特征的第i位,V2(i)表示第二个ORB特征的第i位。
所述的统计匹配成功的特征点的个数,其方法是:
对于ORB特征集合ORB1的每一个ORB特征V1
计算V1与ORB2的每一个特征的距离。
若最小距离小于阈值(通常为50)并且:最小距离<0.8×第二小距离
意味着匹配成功,将匹配成功的数量加1.
2.图像预处理模块在检测过程中,接收到灰度的人脸图像视频片段,对该视频片段的每一帧图像,进行如下处理,设待处理的图像为X,第1步对输入的图像进行去噪,第2步对去噪后的图像进行光照补偿。待该视频片段的每一帧均预处理好了之后,将该视频片段传递给人脸图像评估模块。
所述的对输入的图像进行去噪,其方法是:针对于待处理的人脸图像X,首先设置一个3×3维的窗口,考虑该图像X的每个像素点X(i,j),以该点为中心点的3×3维矩阵所对应的像素值分别为[X(i-1,j-1),X(i-1,j),X(i-1,j+1),X(i,j-1),X(i,j),X(i,j+1),X(i+1,j+1),X(i+1,j),X(j+1,j+1)]进行从大到小排列,取其排在中间的值为新的像素X′(i,j)所对应滤波后值,注意对于X的边界点,会出现其3×3维的窗口所对应的某些像素点不存在的情况,那么只需计算落在窗口内存在的像素点的中间值即可,若窗口内为偶数个点,将排在中间两个像素值的平均值作为该像素点去噪后的值X′(i,j),从而,新的图像矩阵X′即为滤波后所得的图片矩阵。
所述的对去噪后的图像进行光照补偿,针对于去噪后的人脸图像X′其步骤为:第1步,考虑到灰度图像的值只有0-255,所以定义一个长度为256的数组为P,其初始值的所有元素都为0,对于当前图片的每一个点X′(a,b),若其灰度为i,则P(i)=P(i)+1。当X′的所有点计算完成后,便得到当前图像在所有灰度值上的分布P,然后对于数组P的每一个点P(i),使得P(i)=P(i)/(row×col),其中,row为灰度图像X′的行元素的个数,col为灰度图像X′的列元素的个数。此时P保存的是当前每一个灰度的概率分布。第2步,计算累计归一化直方图C,C为与数组P相同维度的数组,并且C的每一个元素的初始值为0,对于数组C的每一个元素i,计算数组P中所有标号小于等于i的元素之和,即第3步,找出图片的最大像素max和最小像素min,其计算方法为,max为数组P按照从标号为255开始到0的顺序中第一个i,使得P(i)≠0,则当前标号记为max=i,min为数组P按照从标号为0开始到255的顺序中第一个j使得P(j)≠0,则当前标号记为min=j。对于原始灰度图像X′的每一个元素,更新其值为X′(i,j)=C(X′(i,j)×(max-min))+min。更新之后的图像X′即为光照补偿后的图像。
3.人脸图像评估模块在检测过程中,若待评估的图像已经评估超过两次,则直接评估为不易识别,然后发送给识别结果处理模块;若模块接收到来自图像预处理模块的视频片段,则从这段视频片段中选择最易识别的一张人脸照片,然后对该照片的质量进行评价;若接收到来自不理想人脸图像处理模块,则直接对该照片的质量进行评价。对于待评价的照片,将该照片分为不易识别,易识别两类,若识别结果是易识别,则将图像传递给人脸图像识别模块,若识别结果是不易识别并且该图像是由图像预处理模块的视频片段中提取出来的,则将该图像传递给不理想人脸图像处理模块,若识别结果是不易识别并且该图像是由不理想人脸图像处理模块传递过来的,则不再对该图像进行评估,直接将该图像传递给识别结果处理模块。
所述的从这段视频片段中选择最易识别的一张人脸照片,其方法为:将视频变换成图像集合X=[x1,x2,…,xm],其中xi为对视频片段的每一帧图像的向量化表示,向量化表示方式与对输入图像的向量化表示方法相同,xi为列向量,m为当前视频图像的帧数。第1步,计算Y=W″T×X,然后计算Y的每一列与μ1的欧氏距离,选择欧氏距离最小的列,设该列为第k列,则视频中第k帧即为当前最易识别的人脸图像,其中W″和μ1为初始化过程中保存的转换矩阵和聚类中心。
所述的对该照片的质量进行评价,其方法为:设该照片的向量化表示为x,向量化表示方式与对输入图像的向量化表示方法相同,x为列向量,计算y=W″T×x,然后计算y与μ1、μ2和μ3的欧氏距离,计算μ1与μ2,μ2与μ3,μ3与μ1之间的欧氏距离最小值为d,人机交互模块设定的阈值为δ,那么若y与μ1小于d+δ,则判定当前人脸图像为易识别,否则判定当前人脸图像为不易识别,其中W″、μ1、μ2和μ3为初始化过程中保存的转换矩阵和聚类中心。
4.人脸图像识别模块在检测过程中,利用该小型的神经网络人脸识别系统对待识别的人脸图像进行识别,对于得到的识别结果,若成功识别,则将识别结果传递给识别结果处理模块,若不成功识别,则将该图像传递给不理想人脸图像处理模块。
所述的本模块可以根据人机交互模块的输入,添加或者删除一个人然后进行重新初始化,其方法是:对于删除一个人,若该人在识别结果中对应的第i位置,则在小型神经网络人脸识别系统的L20的输出对应的i位置标记即可;对于添加一个人,若此时神经网络有被标记的节点j,则将该人表示为识别结果中对应的第j位置,然后将该人脸的一定数量的照片替换初始化图像集合中的第j位置的人脸,然后对现有网络的参数进行优化,更新时网络的初始参数即为更新前的参数,优化方法与所述的对该小型神经网络人脸识别系统进行初始化方法相同,由于此时网络的参数仅需要微调,所以算法的优化过程耗时较少。
所述的利用该小型的神经网络人脸识别系统对待识别的人脸图像进行识别,其方法为:设待识别输入图像为X,首先对图像X进行缩放,使X变为64×64的二维矩阵,然后将该二维矩阵作为该小型的神经网络人脸识别系统的输入,利用神经网络的每一层的参数进行运算,从而得到对应的输出,输出结果为一组向量,选取这一组向量中对应值最大的那一位,设该位是第k位,如果该值大于等于一个阈值,则表示该图像被识别为第k个人,否则说明未识别出正确结果,不成功识别,所述的阈值由人机交互模块设定。
5.不理想人脸图像处理模块在检测过程中,对于待处理的不理想人脸图像,首先利用处理低像素问题的生成网络处理图像中可能存在的低像素问题,然后利用处理遮挡问题的生成网络处理图像中可能存在的遮挡问题,然后利用处理角度问题的生成网络处理图像中可能存在的角度问题,该过程可以将待处理的图像使用由三个生成网络串联的生成网络进行处理,最后将处理后的结果传递给人脸图像评估模块。
所述的将待处理的图像使用由三个生成网络串联的生成网络进行处理,其方法为:设待识别输入图像为X,首先对图像X进行缩放,使X变为64×64的二维矩阵,然后将该二维矩阵作为该串联的生成网络的输入,利用保存的神经网络的每一层的参数进行运算,从而得到对应的输出,输出的信息即为处理后的图像。
6.识别结果处理模块在检测过程中,该模块共完成三个功能:第一个功能,根据人脸图像评估模块传递来的图像和视频信息进行处理;第二个功能,根据人脸图像识别模块传递来的识别结果和视频片段进行处理;第三个功能,根据人机交互模块所传递来的操作进行处理。然后将传递来的信息以及集合S和N传递给人机交互模块。
所述的根据人脸图像识别模块传递来的识别结果和视频片段进行处理,其方法是:由于当前信息是由人脸图像识别模块传递来的消息,说明该人脸图像已经被识别,设识别结果为个体A,判断该识别个体是否在识别结果处理模块的集合S中存在,如果不存在,则建立一个新的集合A,将该识别结果添加进集合S,并且当前视频所对应的人脸检测框对应每一帧的位置信息添加进集合S;若存在,则直接将该识别结果添加进集合S,并且将当前视频所对应的人脸检测框对应每一帧的位置信息添加进集合S;
所述的人脸图像评估模块传递来的图像和视频信息进行处理,其方法是:由于当前信息是由人脸图像评估模块传来的,说明当前人脸图像未被识别,则建立一个新的集合,以当前视频所对应的人脸检测框的编号作为集合名称,并将当前视频所对应的人脸检测框对应每一帧的位置信息添加入该新建的集合,然后将该集合的名称和传递来的图像添加入识别结果处理模块的集合N。
所述的根据人机交互模块所传递来的操作进行处理,传递来的操作包括:1.当前人脸检测框内的人脸被错误识别;2.手工输入当前人脸检测框内的人脸识别结果。其处理方法如下:1.当传递来的操作是当前人脸检测框内的人脸被错误识别,则首先在识别结果处理模块的集合S中找到被错误识别的人脸集合,然后从该人脸集合内的人脸检测框的信息中删掉被错误识别的视频片段的人脸检测框的信息,根据该人脸检测框的编号作为新建的集合名称,并将当前视频片段的人脸检测框的信息添加入该新建的集合,然后将该集合的名称和典型人脸图像添加入识别结果处理模块的集合N中,此处的典型人脸图像是在不理想人脸图像处理模块中生成的人脸图像,若该视频片段不存在不理想人脸图像处理模块中生成的人脸图像,则选用人脸图像评估模块所选择的人脸图像作为典型人脸图像;2.当传递来的操作是手工输入当前人脸检测框内的人脸识别结果,则首先从识别结果处理模块的集合N中找到以当前人脸检测框的标号命名的集合,删掉该集合,并将该集合的信息加入到集合S中所对应的识别人脸的集合内。然后将集合N中的图像及当前人脸分类信息加入到所述的小型神经网络人脸识别系统的初始化图像集合中,在系统空闲或者根据人机交互模块的命令重新执行所述的对该小型神经网络人脸识别系统进行初始化。
7.人机交互模块,其方法为在检测过程中,1.根据识别结果处理模块所传递来的识别信息进行处理,将识别结果显示在每一帧的每一个人脸检测框内,对于成功识别的人脸检测框,在检测框区域内显示该人的姓名,对于未识别的人脸图像,显示不理想人脸图像处理模块生成的易于识别的人脸图像。2.若操作人员认为该识别结果错误,则可以点击操作,然后将被点击的图像区域和信息传递给人机交互模块,表示当前人脸检测框内的人脸被错误识别;若监控人员认为未识别的人脸图像属于某人时,则可以点击操作,将被点击的图像区域和信息传递给人机交互模块,表示手工输入当前人脸检测框内的人脸识别结果。3.若监控人员认为某个已识别为A的人脸图像属于另一个人B,则先发送当前人脸检测框内的人脸被错误识别为A的信息,然后发送手工输入当前人脸检测框内的人脸识别为B的信息。4.该模块可以根据操作人员的操作来更改其他模块的参数和阈值,当向识别结果处理模块发送一次当前人脸检测框内的人脸被错误识别的信息时,阈值λ的数值变为1.001×λ,当向识别结果处理模块发送一次手工输入当前人脸检测框内的人脸识别结果的信息时,阈值λ的数值变为0.999×λ;当操作人员认为系统运行卡顿时,减小k、i和k的数值,增大t的数值;当操作人员认为系统运行有更多的负载能力时,可以增大k、i和j的数值,减小t的数值,变化的数值由操作人员输入,对参数改变后系统可以立刻使用新的参数和阈值,便于操作人员判断数值是否合适,操作人员可以选择合适的时间对所述的小型神经网络人脸识别系统进行重新初始化。
Claims (8)
1.一种基于监控系统的人脸图像自动处理系统,其特征在于,由如下7个功能模块构成:人脸图像筛选模块,图像预处理模块,人脸图像评估模块,人脸图像识别模块,不理想人脸图像处理模块,识别结果处理模块,人机交互模块,这7个功能模块各自的实现方法如下:
人脸图像筛选模块对监控图像的每一个个体进行跟踪并提取一个时间段内的人脸图像集合,并对该集合中的人脸图像找出最易识别的一张图像,将该图像传递给图像预处理模块,并将对应的经过裁剪的视频片段传递给识别结果处理模块;
图像预处理模块将接收到的人脸图像进行去噪、然后进行光照补偿,并将处理过的人脸图像传递给人脸图像评估模块;
人脸图像评估模块将接收到的人脸图像进行分类,将人脸图像分成不易识别、易识别两类图像,若待评估的图像已经评估超过两次,则直接评估为不易识别,将易识别的人脸图像传递给人脸图像识别模块,对于不易识别的人脸图像,若为第一次评估则传递给不理想人脸图像处理模块,若为第二次评估则传递给识别结果处理模块;
人脸图像识别模块将接收到的人脸图像进行识别,若成功识别,则将识别结果传递给识别结果处理模块,若不成功识别,则将该图像传递给不理想人脸图像处理模块;
不理想人脸图像处理模块利用图像的智能生成算法将图像中存在的低像素问题、遮挡问题、角度问题进行消除,从而得到一副能够被识别的人脸图像,然后将该图像传递给人脸图像评估模块;
识别结果处理模块,能够根据人脸图像评估模块和人脸图像识别模块传递来的信息进行处理;也能够根据人机交互模块所传递来的操作进行处理,本模块负责对系统的信息进行整理,然后将整合结果传递给人机交互模块;
人机交互模块根据传递来的信息进行处理,并将监控结果显示在图像中,本模块可以接收操作人员的输入,从而对整个监控系统的阈值和参数进行调整。
2.根据权利要求1所述的一种基于监控系统的人脸图像自动处理系统,其特征在于所述的人脸图像筛选模块的具体实现方法为:
所述的人脸图像筛选模块,在初始化的过程中,接收自然条件下的人脸和非人脸的灰度图像集合,这些样本图片的维度统一为n×n维,然后对每一张样本图片P,构建图片P所对应的积分图PP,然后使用所有积分图对级联分类器进行参数初始化,最后将训练所得的级联分类器保存起来用于检测过程;在检测过程中,对于每个时间间隔t内的视频片段的每一帧图像,其中,t的值由人机交互模块输入,首先对第一帧图像进行人脸检测,然后对检测到的每一个人脸对应的人脸检测框进行标号,然后根据第一帧的每一个人脸检测框的坐标区间,使用基于ORB特征的跟踪算法进行多目标跟踪,由于基于ORB特征的跟踪算法系统开销小,可以实时跟踪多目标,所以在对第二帧跟踪时,得到第二帧的人脸检测框,考虑到时间间隔很短,人脸图像的大小变化比较小,所以人脸检测框的大小不做调整,然后处理第三帧,直到视频处理结束,此时每一个人脸检测框对应的视频每一帧的内容构成的图像集合,即当前标号的人脸图像的视频片段;
所述的构建图片P所对应的积分图PP,其过程为:
对于图像P,从图像P对应的矩阵的第1行第1列开始构造积分图,初始时设s(1,1)=P(1,1),RR(1,1)=P(1,1),构造过程为一个二层循环:
从而构造出P分量所对应的积分图PP;
所述的使用所有积分图对级联分类器进行参数初始化,其过程为:
第一步,定义弱分类器的函数h(x,f,p,θ)为:
其中f为特征函数,θ为阈值,p取值为1或-1,x代表根据积分图PP所构建的子窗口,对于每一个子窗口x,f(x)为该子窗口x对应于特征函数f的特征值;
将子窗口x的四个边界分别定义为左上点A,右上点B,左下点C,右下点D,A与B的中心点为ab,A与B的三分之一靠近A点为aab,三分之一靠近B点为abb,其余类推,区域内的中心点用O来表示,则x(A)表示子窗口在左上点A的积分图所对应的值,其余同理;
则特征函数f的特征值f(x)的具体计算公式定义为:
fa(x)=[x(bd)+x(A)-x(B)-x(ac)]-[x(ac)+x(D)-x(bd)-x(C)],并且定义s=1,t=2;
fb(x)=[x(A)+x(cd)-x(BC)-x(ab)]-[x(ab)+x(D)-x(B)-x(cd)],并且定义s=2,t=1;
fc(x)=[x(A)+x(bbd)-x(aac)-x(B)]-2×[x(bdd)+x(aac)-x(acc)-x(bbd)]+[x(D)+x(acc)-x(bdd)-x(C)],并且定义s=1,t=3;
fd(x)=[x(A)+x(ccd)-x(aab)-x(C)]-2×[x(cdd)+x(aab)-x(abb)-x(ccd)]+[x(D)+x(abb)-x(B)-x(cdd)],并且定义s=3,t=1;
fe(x)=[x(A)+x(O)-x(ab)-x(ac)]+[x(D)+x(O)-x(bd)-x(cd)]-[x(ab)+x(bd)-x(B)-x(O)]-[x(ac)+x(cd)-x(O)-x(C)],并且定义s=2,t=2;
第二步:构建积分图PP所对应的子窗口x;该子窗口x的选择过程如下:
定义自然数s和t,这两个数为子窗口的倍数,这两个数值的选定由特征函数给定,于是,x所对应的子窗口区域为:[(i,j),(i,j+t×(b-1)),(i+s×(a-1),j),(i+s×(a-1),j+t×(b-1))],其中:i,j,a,b分别为从1开始递增的整数,并且能够保证i+s×(a-1)≤n,j+t×(b-1)≤n成立的所有取值;
第三步:对于定义的5个特征函数,计算所有训练样本的所有RGB分量对应于当前子窗口x的特征值fa(x),fb(x),fc(x),fd(x),fe(x),将在当前RGB分量下当前子窗口x的每一个特征值称为一个特征,如果当前窗口下有wf个子窗口,那么一共有T=3×wf×5个特征,每一个特征表示为ht,设人脸的图片和非人脸的图片各有K张,则对分类器的训练过程如下:
1).对于每一张图片Xi,yi为该图片的分类,若yi=1表示该图片为非人脸的图片,若yi=-1表示该图片为人脸的图片;
2).对于t=1,2,…,T,T为特征个数:
①.所有样本在特征ht下的特征值fr,其中r=1,2,…,2K,2K为人脸和非人脸图片的总数;
②.将所得的所有特征值按照从大到小的顺序进行排序;
③.计算全部非人脸子图的权重之和:T+=sum(fr(x)),x∈非人脸的子图;
④.计算全部人脸子图的权重之和:T-=sum(fr(x)),x∈人脸的子图;
⑤.对于排序好的每个元素,从第一个开始处理,设当前处理的元素为i:
⑦.若最小的误差ei>1%,则意味着误差过大,舍弃;否则,将当前ht(x,f,p,θ)作为选好的弱分类器;
3).将所有选好的分类器ht按照t值从小到大排列起来,构成集合H,于是得到了要训练的级联分类器;
所述的对第一帧图像进行人脸检测,其方法为:首先判断接收到的监控图像是否为彩色图像,若为彩色图像,则将该图像转为灰度图像,设灰度图像为X′,然后将灰度图像按照窗口大小为n×n来提取其子图集合,对于所得的所有子图片,构建其积分图,最后用训练所得的级联分类器进行分类筛选,得到所有人脸的子图片,将这些子图片分别使用训练所得的级联分类器进行分类,用于判断当前子图是否为人脸,然后将被检测为人脸的子图在原始图像的坐标信息作为该人脸检测过程的检测结果;
所述的将该图像转为灰度图像,其转换方法为:对于原始彩色图片上的每一个像素点X所对应的R,G,B分量,用i和j表示横纵坐标,则该像素点对应的灰度图像X′的灰度值为X′(i,j)=0.3×B′(i,j)+0.59×G′(i,j)+0.11×R′(i,j),其中X′(i,j)为整数,若所得结果为小数的话,仅取其整数部分,从而得到原始X的灰度图像X′;
所述将灰度图像按照窗口大小为n×n来提取其子图集合,其方法为:
首先,对于原始的M行N列的图像,定义块大小为n×n,则将提取像素区域定义为:[(i,j),(i,j+n-1),(i+n-1,j),(i+n-1,j+n-1)]所围成的正方形区域,其中i=[1,…,M-n+1],j=[1,…,N-n+1],从而得到缩放图的第1层,该层共有(M-n+1)×(N-n+1)张子图,每张子图大小为n×n维,对于每一张图片,记录其图像的提取区域为左上点A=(i,j)右下点D=(i+n-1,j+n-1);
对于原始图片X,其上的每一个像素点为X(i,j),对于缩放后的图片X1/2(a,b),缩放过程为:
X1/2(a,b)=X(i,j),其中,i=2×a,j=2×b;
对于所得的缩放后的图像继续使用上述方法进行提取子图,从而得到缩放图的第2层,该层共有张子图,每张子图的大小为n×n维,对于每一张子图片,记录其在原始图像上提取区域的坐标,区域的坐标表示为左上点A和右下点D;对于第i层,将原始图像缩放成行列的图像,并继续使用上述方法进行提取子图,该层共有张子图,每张子图的大小为n×n维,对于每一张子图片,记录其在当前图像上提取区域的坐标;…;直到时,意味着缩放后的图像最短边小于n,此时已经无法提取出子图,于是提取过程结束;
所述的将这些子图片分别使用训练所得的级联分类器进行分类,其过程如下:设级联分类器H共有T′个分类器hi,其中,i=1,2,…,T′,
对于所用于筛选的每一张n×n维子图
对于i=1,2,…,T′
计算在当前子图下的hi,若hi=0,当前子图是人脸,该子图的分类筛选过程结束;
若当前子图在所有分类器下的分类结果hi都为1,则说明当前子图为人脸;
所述对检测到的每一个人脸对应的人脸检测框进行标号,该标号的命名方式如下:bak表示当前图像对应的视频备份编号,time表示当前人脸属于第几个时间段,开机的第一段视频编号为1,然后依次增加;frame表示在当前时间段内属于第几帧,视频的第一帧编号为1,然后依次增加,num表示当前人脸图像属于第几个人脸,人脸图像以人脸检测框的左上角左边为排序依据,对于两个人脸检测框的左上角坐标a:(x1,y1)和b:(x2,y2),若x1<x2,则a在b的前边,若x1>x2,则b在a的前边,若x1=x2,则比较y1和y2,值小的在前边,若相同,则随机排序;待所有的人脸图像根据左上角坐标排序后,排在第一位的编号为1,然后依次增加;因此,对于第r个备份的第s个视频编号的第t帧的第u个人脸,编号为bak.r_time.s_frame.t_num.u;
所述的基于ORB特征的跟踪算法进行多目标跟踪,其方法为:设当前已经得到了上一帧的所有人脸检测框的位置构成的集合,算法需要根据上一帧的人脸检测框内的人脸图像ORB特征来判断当前帧所对应的人脸图像的位置,设上一帧为i-1,则当前帧为i,那么对于人脸检测框集合中的第j个人脸图像,在上一帧用frame.i-1_num.j,当前帧用frame.i_num.j表示;对于上一帧的每一个人脸检测框,设当前框编号为j,第1步,提取人脸检测框j在上一帧的对应位置的人脸图像的ORB特征,其ORB特征为若干组长度相同的字符串,每一组字符串的元素为[0,1],为了节省空间,可以让计算机的一个字节的每一位与位串的一位相对应;第2步,设该人脸检测框j在上一帧的位置为(x,y),(x+a,y),(x,y+b),(x+a,y+b),其中a和b表示目标人脸P的长与宽;而设目标人脸P所在的原始帧的下一帧为PP,则在图片PP以目标人脸P在原始帧的位置为(x,y),(x+a,y),(x,y+b),(x+a,y+b)为中心,找出其周围的所有待检测框,并计算每一个待检测框内图像的ORB特征;第3步,计算所有待检测框的ORB特征与原始帧的ORB特征的距离,统计匹配成功的特征点的个数,选择匹配成功最多的待检测框作为为目标人脸在当前帧的位置;
所述的ORB特征,对一个图片提取其ORB特征,输入值为当前图片,输出为若干组长度相同的字符串,每一组代表一个ORB特征;
所述的找出其周围的所有待检测框,对于待提取的图片PP,原始图片位置为(x,y),(x+a,y),(x,y+b),(x+a,y+b)四个点所围成的矩形;以(x+i,y+j),(x+a+i,y+j),(x+i,y+b+j),(x+a+i,y+b+j)所围成的矩形,表示原始图片位置向右或者向左移动|i|个像素,并且向下或者向上移动|j|个像素,其中若i>0表示向右移动,若i<0表示向左移动,若j>0表示向下移动,若j<0表示向上移动;其方法是:计算其对应位移为k像素的候选框,由于每个候选框差别仅仅在于(i,j)的取值不同,所以,对于位移为k的候选框,其(i,j)分别为:第一组:(i-k,jj),其中,jj=[j-k+1,j+k-1];第二组:(i+k,jj),其中,jj=[j-k+1,j+k-1];第三组:(ii,j-k),其中,ii=[i-k+1,i+k-1];第四组:(ii,j+k),其中,ii=[i-k+1,i+k-1];第五组:(i-k,j-k),(i-k,j+k),(i+k,j-k),(i+k,j+k);k的取值通常为[1,2,3,……i与j的最大值],由于上述方法会产生较多的候选框,通常情况下k可以不连续,k、i和j的值可以根据人机交互模块的输入取值,由于人移动较慢,所以通常k、i和j的取值都很小;
所述的计算所有待检测框的ORB特征与原始帧的ORB特征的距离,其方法为:考虑到对于每一个ORB特征V,V(i)表示V(i)的第i位,V(i)的取值为0或1,那么对于每一个待检测框的ORB特征与原始帧的ORB特征之间的距离的计算方法如下:对比两组ORB特征的每一位,计算所有对应位不相同的个数,所述的对应位不相同是指V1(i)≠V2(i),其中V1(i)表示第一个ORB特征的第i位,V2(i)表示第二个ORB特征的第i位;
所述的统计匹配成功的特征点的个数,其方法是:
对于ORB特征集合ORB1的每一个ORB特征V1
计算V1与ORB2的每一个特征的距离;
若最小距离小于阈值,并且:最小距离<0.8×第二小距离
意味着匹配成功,将匹配成功的数量加1。
3.根据权利要求1所述的一种基于监控系统的人脸图像自动处理系统,其特征在于所述的图像预处理模块的具体实现方法为:
所述的图像预处理模块,其方法是:在初始化阶段该模块不工作;在检测过程中,接收到灰度的人脸图像视频片段,对该视频片段的每一帧图像,进行如下处理,设待处理的图像为X,第1步对输入的图像进行去噪,第2步对去噪后的图像进行光照补偿,待该视频片段的每一帧均预处理好了之后,将该视频片段传递给人脸图像评估模块;
所述的对输入的图像进行去噪,其方法是:针对于待处理的人脸图像X,首先设置一个3×3维的窗口,考虑该图像X的每个像素点X(i,j),以该点为中心点的3×3维矩阵所对应的像素值分别为[X(i-1,j-1),X(i-1,j),X(i-1,j+1),X(i,j-1),X(i,j),X(i,j+1),X(i+1,j+1),X(i+1,j),X(j+1,j+1)]进行从大到小排列,取其排在中间的值为像素点X(i,j)所对应去噪后的值X′(i,j),注意对于X的边界点,会出现其3×3维的窗口所对应的某些像素点不存在的情况,那么只需计算落在窗口内存在的像素点的中间值即可,若窗口内为偶数个点,将排在中间两个像素值的平均值作为该像素点去噪后的值X′(i,j),从而,新的图像矩阵X′即为滤波后所得的图片矩阵;
所述的对去噪后的图像进行光照补偿,针对于去噪后的人脸图像X′其步骤为:第1步,考虑到灰度图像的值只有0-255,所以定义一个长度为256的数组为P,其初始值的所有元素都为0,对于当前图片的每一个点X′(a,b),若其灰度为i,则P(i)=P(i)+1,当X′的所有点计算完成后,便得到当前图像在所有灰度值上的分布P,然后对于数组P的每一个点P(i),使得P(i)=P(i)/(row×col),其中,row为灰度图像X′的行元素的个数,col为灰度图像X′的列元素的个数,此时P保存的是当前每一个灰度的概率分布;第2步,计算累计归一化直方图C,C为与数组P相同维度的数组,并且C的每一个元素的初始值为0,对于数组C的每一个元素i,计算数组P中所有标号小于等于i的元素之和,即第3步,找出图片的最大像素max和最小像素min,其计算方法为,max为数组P按照从标号为255开始到0的顺序中第一个i,使得P(i)≠0,则当前标号记为max=i,min为数组P按照从标号为0开始到255的顺序中第一个j使得P(j)≠0,则当前标号记为min=j,对于原始灰度图像X′的每一个元素,更新其值为X′(i,j)=C(X′(i,j)×(max-min))+min,更新之后的图像X′即为光照补偿后的图像。
4.根据权利要求1所述的一种基于监控系统的人脸图像自动处理系统,其特征在于所述的人脸图像评估模块的具体实现方法为:
所述的人脸图像评估模块,在初始化阶段,接收从常见的人脸图像照片、常见的非人脸图像照片、人脸识别模块识别错误的照片,然后利用这些图像信息初始化人脸图像评价算法;在检测过程中,若待评估的图像已经评估超过两次,则直接评估为不易识别,然后发送给识别结果处理模块;若模块接收到来自图像预处理模块的视频片段,则从这段视频片段中选择最易识别的一张人脸照片,然后对该照片的质量进行评价;若接收到来自不理想人脸图像处理模块,则直接对该照片的质量进行评价;对于待评价的照片,将该照片分为不易识别,易识别两类,若识别结果是易识别,则将图像传递给人脸图像识别模块,若识别结果是不易识别并且该图像是由图像预处理模块的视频片段中提取出来的,则将该图像传递给不理想人脸图像处理模块,若识别结果是不易识别并且该图像是由不理想人脸图像处理模块传递过来的,则不再对该图像进行评估,直接将该图像传递给识别结果处理模块;
所述接收从常见的人脸图像照片、常见的非人脸图像照片、人脸识别模块识别错误的照片,然后利用这些图像信息初始化人脸图像评价算法,其初始化方法如下:第1步,将所有照片构成的图像集合X=[x1,x2,…,xm],其中xi为对输入图像的向量化表示,xi为列向量,m为当前人脸数据集的人脸图像个数,对于一张维度为n×n维的人脸图像P;第2步,在得到X之后,计算x1,x2,…,xm的平均值μ,然后对X的每一列计算减去均值μ,从而得到X′,X′为均值化的X,然后计算X′T×X′,其中X′T表示矩阵X′的转置;第3步,计算矩阵X′T×X′的特征值和特征向量,将值为0的特征值对应的特征向量删掉,剩下的所有特征向量的集合构成矩阵为W,矩阵W的每一列是一个特征向量;第4步,计算X″=WT×X′,WT为矩阵W的转置;第5步,由于X″的每一列对应原始图像集合X=[x1,x2,…,xm],而x1,x2,…,xm分别对应着非人脸图像照片、人脸识别模块识别错误的照片这三种中的一种,此处设x1,…,xi属于人脸图像照片,xi+1,…,xj属于非人脸图像照片,xj+1,…,xn属于人脸识别模块识别错误的照片,计算x1,…,xi的平均值μ1,并对x1,…,xi的每一列计算减去均值μ1得到X1,计算xi+1,…,xj的平均值μ1,并对xi+1,…,xj的每一列计算减去均值μ2得到X2,计算xj+1,…,xn的平均值μ3,然后对xj+1,…,xn的每一列计算减去均值μ3得到X3,然后计算Sw=X1×X1T+X2×X2T+X3×X3T、计算Sb=i×μ1×μ1 T+(j-i)×μ1×μ1 T+(n-j)×μ3×μ3 T;第6步,计算矩阵Sb×SwT的特征值和特征向量,其中SwT表示矩阵Sw的逆,然后设其特征值为eig(i)其特征向量为vec(i),其中1≤i≤n;将特征值按照对应的特征值从大到小排列,然后选择合适的j,使得j为满足 的最小值,其中1≤j≤n,选择[eig(1),eig(2),…,eig(j)]所对应的特征向量的集合[vec(1),vec(2),…,vec(j)],设该矩阵为W′;最后,得到了转换矩阵W″=W′×W,以及三类的聚类中心μ1、μ2和μ3,保存转换矩阵和聚类中心;
所述的对输入图像的向量化表示,其方法为,对于输入图像P其上的每一个像素P(i,j),按照下列方式进行排列:[P(1,1),P(2,1),…,P(n,1),P(1,2),P(2,2),…,P(n,2),P(1,n),P(2,n),…P(n,n)],然后计算xi(j)=xi(j)/∑,∑为xi的所有元素之和,从而得到了其向量化表示;
所述的从这段视频片段中选择最易识别的一张人脸照片,其方法为:将视频变换成图像集合X=[x1,x2,…,xm],其中xi为对视频片段的每一帧图像的向量化表示,向量化表示方式与对输入图像的向量化表示方法相同,xi为列向量,m为当前视频图像的帧数;第1步,计算Y=W″T×X,然后计算Y的每一列与μ1的欧氏距离,选择欧氏距离最小的列,设该列为第k列,则视频中第k帧即为当前最易识别的人脸图像,其中W″和μ1为初始化过程中保存的转换矩阵和聚类中心;
所述的对该照片的质量进行评价,其方法为:设该照片的向量化表示为x,向量化表示方式与对输入图像的向量化表示方法相同,x为列向量,计算y=W″T×x,然后计算y与μ1、μ2和μ3的欧氏距离,计算μ1与μ2,μ2与μ3,μ3与μ1之间的欧氏距离最小值为d,人机交互模块设定的阈值为δ,那么若y与μ1小于d+δ,则判定当前人脸图像为易识别,否则判定当前人脸图像为不易识别,其中W″、μ1、μ2和μ3为初始化过程中保存的转换矩阵和聚类中心。
5.根据权利要求1所述的一种基于监控系统的人脸图像自动处理系统,其特征在于所述的人脸图像识别模块的具体实现方法为:
所述的人脸图像识别模块,将接收到待识别的人脸图像进行识别,该模块可以连接到已有的大型人脸识别系统,将接收到的待识别的人脸图像发送给已有的人脸识别系统,然后等待人脸识别系统的识别结果;也可以是在本地实现的一个小型神经网络人脸识别系统,在初始化过程中对该小型神经网络人脸识别系统进行初始化;在检测过程中,利用该小型的神经网络人脸识别系统对待识别的人脸图像进行识别,对于得到的识别结果,若成功识别,则将识别结果传递给识别结果处理模块,若不成功识别,则将该图像传递给不理想人脸图像处理模块,另外本模块可以根据人机交互模块的输入,添加或者删除一个人然后进行重新初始化;
所述的小型神经网络人脸识别系统,是一个基于深度神经网络的分类系统,其网络结构为:L1为输入层,输入的结构为64×64×1,输出至L2和L5;L2为卷积层,卷积核大小为3×3,卷积步长为1,输出大小为64×64×32,输出至L3;L3为卷积层,卷积核大小为3×3,卷积步长为1,其输出大小为64×64×32,该层输出至L4;L4为卷积层,卷积核大小为1×1,卷积步长为1,其输出大小为64×64×16,该层输出至L5;L5为最大池化层,该层的输入分别为L1的64×64×1维数据和L4的64×64×16维数据,将这两组数据按照第三维整合,得到64×64×17维的输入,该层的池化窗口大小为2×2,其输出为32×32×17,该层输出至L6和L9;L6为卷积层,卷积核大小为3×3,卷积步长为1,其输出大小为32×32×17,该层输出至L7;L7为卷积层,卷积核大小为3×3,卷积步长为1,其输出大小为32×32×17,该层输出至L8;L8为卷积层,卷积核大小为1×1,卷积步长为1,其输出大小为32×32×17,该层输出至L9;L9为最大池化层,该层的输入分别为L5的32×32×17维数据和L8的32×32×17维数据,将这两组数据按照第三维整合,得到32×32×34维的输入,该层的池化窗口大小为2×2,其输出为16×16×34,该层输出至L10和L13;L10为卷积层,卷积核大小为3×3,卷积步长为1,其输出大小为16×16×34,该层输出至L11;L11为卷积层,卷积核大小为3×3,卷积步长为1,其输出大小为16×16×34,该层输出至L12;L12为卷积层,卷积核大小为1×1,卷积步长为1,其输出大小为16×16×17,该层输出至L13;L13为最大池化层,该层的输入分别为L9的16×16×17维数据和L12的16×16×17维数据,将这两组数据按照第三维整合,得到16×16×34维的输入,该层的池化窗口大小为2×2,其输出为8×8×34,该层输出至L14和L17;L14为卷积层,卷积核大小为3×3,卷积步长为1,其输出大小为8×8×34,该层输出至L15;L15为卷积层,卷积核大小为3×3,卷积步长为1,其输出大小为8×8×34,该层输出至L16;L16为卷积层,卷积核大小为1×1,卷积步长为1,其输出大小为8×8×17,该层输出至L17;L17为最大池化层,该层的输入分别为L13的8×8×17维数据和L16的8×8×17维数据,将这两组数据按照第三维整合,得到8×8×34维的输入,该层的池化窗口大小为2×2,其输出为4×4×34,该层输出至L18;L18为卷积层,卷积核大小为1×1,卷积步长为1,其输出大小为4×4×17,该层输出至L19;L19为降维层,该层把4×4×17的输入展开成一维的输出,其输出是长度为272的一维向量,该层输出至L20;L20为全连接层,该层的输入为长度为272的一维向量,输出为长度为n的一维向量,其中n是该小型神经网络人脸识别系统所需识别的最大人脸数量,然后对该输入使用Dropout函数进行随机断开,随机断开的概率为50%,该层的输出经过Softmax函数处理后即为识别结果,其中Li表示第i层,上述每一层的输入均使用BatchNorm函数进行正则化,所有层使用LeakyReLU激活函数,斜率为0.2,该网络的每一层的具体实现方式,未提到的参数均为所采用的深度学习框架所给出的默认值;
所述的对该小型神经网络人脸识别系统进行初始化,其方法是:初始化时,若需要对n个人进行分类,则需要每一个人的一定数量的照片,构成一个初始化图像集合,然后使用所述的小型神经网络人脸识别系统的网络结构,误差函数为多分类的对数损失函数,使用随机最速下降法进行优化,当损失函数在迭代10次内不再减小时优化终止,保存此时的网络参数作为深度网络模型;
所述的本模块可以根据人机交互模块的输入,添加或者删除一个人然后进行重新初始化,其方法是:对于删除一个人,若该人在识别结果中对应的第i位置,则在小型神经网络人脸识别系统的L20的输出对应的i位置标记即可;对于添加一个人,若此时神经网络有被标记的节点j,则将该人表示为识别结果中对应的第j位置,然后将该人脸的一定数量的照片替换初始化图像集合中的第j位置的人脸,然后对现有网络的参数进行优化,更新时网络的初始参数即为更新前的参数,优化方法与所述的对该小型神经网络人脸识别系统进行初始化方法相同,由于此时网络的参数仅需要微调,所以算法的优化过程耗时较少;
所述的利用该小型的神经网络人脸识别系统对待识别的人脸图像进行识别,其方法为:设待识别输入图像为X,首先对图像X进行缩放,使X变为64×64的二维矩阵,然后将该二维矩阵作为该小型的神经网络人脸识别系统的输入,利用神经网络的每一层的参数进行运算,从而得到对应的输出,输出结果为一组向量,选取这一组向量中对应值最大的那一位,设该位是第k位,如果该值大于等于一个阈值,则表示该图像被识别为第k个人,否则说明未识别出正确结果,不成功识别,所述的阈值由人机交互模块设定。
6.根据权利要求5所述的一种基于监控系统的人脸图像自动处理系统,其特征在于所述的不理想人脸图像处理模块的具体实现方法为:
所述的不理想人脸图像处理模块,其方法为:利用图像的智能生成算法将图像中存在的低像素问题、遮挡问题、角度问题进行消除,从而得到一副能够被识别的人脸图像,然后将该图像传递给人脸图像评估模块;该图像的智能生成算法共有3个生成网络和3个判别网络,均为深度神经网络结构,其中3个生成网络分别处理低像素问题、遮挡问题、角度问题,从而生成一张较为理想的人脸图像,3个判别网络为各自对应的生成网络的生成图像的质量进行判断,并指导判别网络的优化方向,该模块的3个生成网络的结构相同,均为自编码的神经网络结构,3个生成网络的区别在于每个生成网络的参数不同,3个生成网络的训练过程均使用了生成对抗网络的结构进行训练,因此每一个神经网络对应一个判别网络,3个判别网络的结构相同,3个判别网络的区别在于每个神经网络的参数不同;在初始化过程中,对本模块的3个生成网络和3个判别网络进行初始化,从而得到由三个生成网络串联的生成网络;在检测过程中,对于待处理的不理想人脸图像,首先利用处理低像素问题的生成网络处理图像中可能存在的低像素问题,然后利用处理遮挡问题的生成网络处理图像中可能存在的遮挡问题,然后利用处理角度问题的生成网络处理图像中可能存在的角度问题,该过程可以将待处理的图像使用由三个生成网络串联的生成网络进行处理,最后将处理后的结果传递给人脸图像评估模块;
所述的该模块的3个生成网络的结构相同,其具体的网络结构为:该网络结构共15层,L1为输入层,输入的结构为64×64×1,该层输出至L2;L2为卷积层,卷积核大小为3×3,卷积步长为2,其输出大小为64×64×32,该层输出至L3和L15;L3为卷积层,卷积核大小为3×3,卷积步长为2,其输出大小为32×32×64,该层输出至L4和L14;L4为卷积层,卷积核大小为3×3,卷积步长为2,其输出大小为16×16×128,该层输出至L5和L13;L5为卷积层,卷积核大小为3×3,卷积步长为2,其输出大小为8×8×256,该层输出至L6和L12;L6为卷积层,卷积核大小为3×3,卷积步长为2,其输出大小为4×4×512,该层输出至L7和L11;L7为卷积层,卷积核大小为3×3,卷积步长为2,其输出大小为2×2×1024,该层输出至L8和L10;L8为卷积层,卷积核大小为3×3,卷积步长为2,其输出大小为1×1×2048,该层输出至L9;L9为反卷积层,反卷积核大小为3×3,反卷积步长为2,其输出大小为2×2×1024,该层输出至L10;L10为反卷积层,反卷积核大小为3×3,反卷积步长为2,输入分别为L7和L9数据,将这两组数据按照第三维整合,得到2×2×2048维的输入,输出为4×4×512,该层输出至L11;L11为反卷积层,反卷积核大小为3×3,反卷积步长为2,输入分别为L6和L10数据,将这两组数据按照第三维整合,得到4×4×1024维的输入,输出为8×8×256,该层输出至L12;L12为反卷积层,反卷积核大小为3×3,反卷积步长为2,输入分别为L5和L11数据,将这两组数据按照第三维整合,得到8×8×512维的输入,输出为16×16×128,该层输出至L13;L13为反卷积层,反卷积核大小为3×3,反卷积步长为2,输入分别为L4和L12数据,将这两组数据按照第三维整合,得到16×16×256维的输入,输出为32×32×64,该层输出至L14;L14为反卷积层,反卷积核大小为3×3,反卷积步长为2,输入分别为L3和L13数据,将这两组数据按照第三维整合,得到32×32×128维的输入,输出为64×64×32,该层输出至L15;L15为反卷积层,反卷积核大小为3×3,反卷积步长为2,输入分别为L2和L14数据,将这两组数据按照第三维整合,得到64×64×64维的输入,输出为64×64×1,该层输出即为神经网络的输出结果,其中Li表示第i层,上述每一层的输入使用BatchNorm函数进行正则化,L15的激活函数使用tanh,其他层的激活函数使用tanh,该网络的每一层的具体实现方式,未提到的参数均为所采用的深度学习框架所给出的默认值;
所述的3个判别网络的结构相同,其具体的网络结构为:该判别网络的输入为64×64的图像,输出为两个节点,该判别网络的共有21层,其中L1层到L19层与所述的小型神经网络人脸识别系统相同,L20为全连接层,该层的输入为长度为272的一维向量,输出为长度为50的一维向量,然后对该输入使用Dropout函数进行随机断开,随机断开的概率为50%,该层输出至L21层;L21为全连接层,该层的输入为长度为50的一维向量,输出为长度为2 的一维向量,该层的输出经过Softmax函数处理后即为识别结果,其中Li表示第i层,上述每一层的输入均使用BatchNorm函数进行正则化,所有层使用LeakyReLU激活函数,斜率为0.2,该网络的每一层的具体实现方式,未提到的参数均为所采用的深度学习框架所给出的默认值;
所述的对本模块的3个生成网络和3个判别网络进行初始化,每一个生成网络和一个判别网路一一对应,分别解决一个问题,其方法为:第一步,为三对对抗网络准备训练数据集;第二步,对于每一对对抗网络使用为其准备的训练数据进行训练;第三步,将三对对抗网络的生成网络进行串联,然后训练,从而得到初始化后的网络参数,将串联起来的网络结构保存;
所述的为三对对抗网络准备训练数据集,其方法为:第一对解决低像素问题,所以准备像素为64×64的人脸图像集合PY,然后将这些图像使用不同比例进行缩放,最小缩放到8×8像素,然后将缩放后的人脸图像再放大到64×64,得到变换后的图像集合PX,PY的每一张图像与PX的每一张图像一一对应,同属于一个人;第二对解决遮挡问题,所以准备两个图像集合SY和SX,每张图像的像素均为64×64,SY为无遮挡的人脸图像,SX为有遮挡的人脸图像,由于深度网络需要的训练图像较多,所以可以通过在无遮挡的人脸图像添加墨镜、口罩、帽子和围巾等遮挡物来增大训练样本,SY的每一张图像与SX的每一张图像一一对应,同属于一个人;第三对解决角度问题,所以准备两个图像集合AY和AX,每张图像的像素均为64×64,AY为正面人脸图像集合,AX为不同角度的人脸图像,SY的每一张图像与SX的每一张图像一一对应,同属于一个人;
所述的对于每一对对抗网络使用为其准备的训练数据进行训练,其方法为:三对对抗网络的算法结构均相同,对于每一对网络,设Y为不存在低像素问题、遮挡问题或角度问题的图像集合,X为存在低像素问题、遮挡问题或角度问题的图像集合;Xi和Yi分别表示集合中的第i个图像,这两张图像属于一个人,对于生成网络G,G(Xi)表示该图像经过生成网络处理后的结果,对于判别网络D,D(Y)表示对真实图像的判别结果,D(G(Xi))表示对经过生成网络处理后的图像的判别结果,使用adam优化器;第一步对于生成网络的初始参数值为随机初始化,对于判别网络的初始参数值,可以使用所述的小型神经网络人脸识别系统所计算得到的训练好的神经网络的L1层到L19层的参数作为网络的初始参数,L20和L21的参数使用随机初始化;第二步开始迭代,算法迭代10000次后终止;每次迭代时,从Xi和Yi中随机抽取一定数量的图像,第1步,保持生成网络的参数不变,使用误差函数log(1-D(G(Xi)))+D(Yi)更新判别网络5次;第2步,保持判别网络的参数不变,使用误差函数 更新判别网络1次;
所述的将三对对抗网络的生成网络进行串联,然后训练,其方法为:首先将三个生成网络进行串联,GP表示解决低像素问题的生成网络;GS表示解决遮挡问题的生成网络,GA表示解决角度问题的生成网络,将GP的输出作为GS的输入,GS的输入作为GA的输出,从而GA(GS(GP(x)))表示图像x首先经过GP处理,处理得到的图像再经过GS处理,处理得到的图像再经过GA处理,从而得到生成的图像;然后将三组对抗网络的数据进行合并从而得到两组数据集X和Y,保留Y图像中的不存在低像素问题、遮挡问题、角度问题的人脸图像,并保留数据集X中对应的图像,构成了新的数据集X′和Y′,然后使用新的数据集进行训练;训练的生成网络为所得到的串联网络,训练所需要的判别网络为解决角度问题的判别网络,训练的迭代次数为1000,训练其他细节信息与所述的对于每一对对抗网络使用为其准备的训练数据进行训练的训练过程一致;
所述的将待处理的图像使用由三个生成网络串联的生成网络进行处理,其方法为:设待识别输入图像为X,首先对图像X进行缩放,使X变为64×64的二维矩阵,然后将该二维矩阵作为该串联的生成网络的输入,利用保存的神经网络的每一层的参数进行运算,从而得到对应的输出,输出的信息即为处理后的图像。
7.根据权利要求5所述的一种基于监控系统的人脸图像自动处理系统,其特征在于所述的识别结果处理模块的具体实现方法为:
所述的识别结果处理模块,其方法为:在初始化过程中,建立一个空的集合S和N;在检测过程中,该模块共完成三个功能:第一个功能,根据人脸图像评估模块传递来的图像和视频信息进行处理;第二个功能,根据人脸图像识别模块传递来的识别结果和视频片段进行处理;第三个功能,根据人机交互模块所传递来的操作进行处理;然后将传递来的信息以及集合S和N传递给人机交互模块;
所述的根据人脸图像识别模块传递来的识别结果和视频片段进行处理,其方法是:由于当前信息是由人脸图像识别模块传递来的消息,说明该人脸图像已经被识别,设识别结果为个体A,判断该识别个体是否在识别结果处理模块的集合S中存在,如果不存在,则将该个体A添加进集合S,并且当前视频所对应的人脸检测框对应每一帧的位置信息添加进集合S;若存在,则直接将该识别结果添加进集合S,并且将当前视频所对应的人脸检测框对应每一帧的位置信息添加进集合S;
所述的人脸图像评估模块传递来的图像和视频信息进行处理,其方法是:由于当前信息是由人脸图像评估模块传来的,说明当前人脸图像未被识别,则建立一个新的集合,以当前视频所对应的人脸检测框的编号作为集合名称,并将当前视频所对应的人脸检测框对应每一帧的位置信息添加入该新建的集合,然后将该集合的名称和传递来的图像添加入识别结果处理模块的集合N;
所述的根据人机交互模块所传递来的操作进行处理,传递来的操作包括:1.当前人脸检测框内的人脸被错误识别;2.手工输入当前人脸检测框内的人脸识别结果;其处理方法如下:1.当传递来的操作是当前人脸检测框内的人脸被错误识别,则首先在识别结果处理模块的集合S中找到被错误识别的人脸集合,然后从该人脸集合内的人脸检测框的信息中删掉被错误识别的视频片段的人脸检测框的信息,根据该人脸检测框的编号作为新建的集合名称,并将当前视频片段的人脸检测框的信息添加入该新建的集合,然后将该集合的名称和典型人脸图像添加入识别结果处理模块的集合N中,此处的典型人脸图像是在不理想人脸图像处理模块中生成的人脸图像,若该视频片段不存在不理想人脸图像处理模块中生成的人脸图像,则选用人脸图像评估模块所选择的人脸图像作为典型人脸图像;2.当传递来的操作是手工输入当前人脸检测框内的人脸识别结果,则首先从识别结果处理模块的集合N中找到以当前人脸检测框的标号命名的集合,删掉该集合,并将该集合的信息加入到集合S中所对应的识别人脸的集合内,然后将集合N中的图像及当前人脸分类信息加入到所述的小型神经网络人脸识别系统的初始化图像集合中,在系统空闲或者根据人机交互模块的命令重新执行所述的对该小型神经网络人脸识别系统进行初始化。
8.根据权利要求5所述的一种基于监控系统的人脸图像自动处理系统,其特征在于所述的人机交互模块的具体实现方法为:1.根据识别结果处理模块所传递来的识别信息进行处理,将识别结果显示在每一帧的每一个人脸检测框内,对于成功识别的人脸检测框,在检测框区域内显示该人的姓名,对于未识别的人脸图像,显示不理想人脸图像处理模块生成的易于识别的人脸图像;2.若操作人员认为该识别结果错误,则可以点击操作,然后将被点击的图像区域和信息传递给人机交互模块,表示当前人脸检测框内的人脸被错误识别;若监控人员认为未识别的人脸图像属于某人时,则可以点击操作,将被点击的图像区域和信息传递给人机交互模块,表示手工输入当前人脸检测框内的人脸识别结果;3.若监控人员认为某个已识别为A的人脸图像属于另一个人B,则先发送当前人脸检测框内的人脸被错误识别为A的信息,然后发送手工输入当前人脸检测框内的人脸识别为B的信息;4.该模块可以根据操作人员的操作来更改其他模块的参数和阈值,这些阈值包括所述的小型神经网络人脸识别系统中的阈值λ和所述的人脸图像筛选模块中的参数t、k、i和j,这些参数在初始化的时候由厂家给出,在检测过程中,当向识别结果处理模块发送一次当前人脸检测框内的人脸被错误识别的信息时,阈值λ的数值变为1.001×λ,当向识别结果处理模块发送一次手工输入当前人脸检测框内的人脸识别结果的信息时,阈值λ的数值变为0.999×λ;当操作人员认为系统运行卡顿时,减小k、i和j的数值,增大t的数值;当操作人员认为系统运行有更多的负载能力时,可以增大k、i和j的数值,减小t的数值,变化的数值由操作人员输入,对参数改变后系统可以立刻使用新的参数和阈值,便于操作人员判断数值是否合适,操作人员可以选择合适的时间对所述的小型神经网络人脸识别系统进行重新初始化。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810204869.6A CN108460356B (zh) | 2018-03-13 | 2018-03-13 | 一种基于监控系统的人脸图像自动处理系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810204869.6A CN108460356B (zh) | 2018-03-13 | 2018-03-13 | 一种基于监控系统的人脸图像自动处理系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108460356A CN108460356A (zh) | 2018-08-28 |
CN108460356B true CN108460356B (zh) | 2021-10-29 |
Family
ID=63219900
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810204869.6A Expired - Fee Related CN108460356B (zh) | 2018-03-13 | 2018-03-13 | 一种基于监控系统的人脸图像自动处理系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108460356B (zh) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109472262A (zh) * | 2018-09-25 | 2019-03-15 | 平安科技(深圳)有限公司 | 车牌识别方法、装置、计算机设备及存储介质 |
CN109446325B (zh) * | 2018-10-22 | 2021-09-14 | 北京云雀智享科技有限公司 | 一种高正确率的自然语言分类器系统 |
CN109584325B (zh) * | 2018-10-30 | 2020-01-07 | 河北科技大学 | 一种基于u型周期一致对抗网络的动漫图像的双向色彩化方法 |
CN111597980B (zh) * | 2018-12-17 | 2023-04-28 | 北京嘀嘀无限科技发展有限公司 | 一种目标对象聚类方法及装置 |
CN109685718B (zh) * | 2018-12-17 | 2020-11-10 | 中国科学院自动化研究所 | 图片方形化缩放方法、系统及装置 |
CN109894383B (zh) * | 2019-02-21 | 2021-04-23 | 南方科技大学 | 一种物品分拣方法、装置、存储介质及电子设备 |
CN109886360A (zh) * | 2019-03-25 | 2019-06-14 | 山东浪潮云信息技术有限公司 | 一种基于深度学习的证件照分类识别及免冠检测方法及系统 |
WO2020210954A1 (zh) * | 2019-04-15 | 2020-10-22 | 深圳市汇顶科技股份有限公司 | 用于校准图像的方法、装置和电子设备 |
CN110210304B (zh) * | 2019-04-29 | 2021-06-11 | 北京百度网讯科技有限公司 | 用于目标检测和跟踪的方法及系统 |
US20200372363A1 (en) * | 2019-05-23 | 2020-11-26 | Kneron (Taiwan) Co., Ltd. | Method of Training Artificial Neural Network Using Sparse Connectivity Learning |
CN111985281B (zh) * | 2019-05-24 | 2022-12-09 | 内蒙古工业大学 | 图像生成模型的生成方法、装置及图像生成方法、装置 |
US11348245B2 (en) * | 2019-06-21 | 2022-05-31 | Micron Technology, Inc. | Adapted scanning window in image frame of sensor for object detection |
CN110349102A (zh) * | 2019-06-27 | 2019-10-18 | 腾讯科技(深圳)有限公司 | 图像美化的处理方法、图像美化的处理装置以及电子设备 |
CN110266953B (zh) * | 2019-06-28 | 2021-05-07 | Oppo广东移动通信有限公司 | 图像处理方法、装置、服务器及存储介质 |
CN112825118B (zh) * | 2019-11-20 | 2024-05-03 | 北京眼神智能科技有限公司 | 旋转不变性人脸检测方法、装置、可读存储介质及设备 |
CN111405197B (zh) * | 2020-03-19 | 2022-11-08 | 京东科技信息技术有限公司 | 一种视频裁剪方法、图像处理方法及装置 |
CN111428628A (zh) * | 2020-03-23 | 2020-07-17 | 北京每日优鲜电子商务有限公司 | 人脸检测方法、装置、设备及存储介质 |
CN111652119B (zh) * | 2020-05-31 | 2023-11-03 | 南京原为智能科技有限公司 | 一种结合位置信息的人脸特征提取方法 |
CN111931703B (zh) * | 2020-09-14 | 2021-01-05 | 中国科学院自动化研究所 | 基于人-物体交互弱监督标签的物体检测方法 |
CN114359301B (zh) * | 2020-09-29 | 2024-05-28 | 合肥君正科技有限公司 | 一种自适应扩展系数的人脸裁剪优化方法 |
CN112215113A (zh) * | 2020-09-30 | 2021-01-12 | 张成林 | 人脸识别方法及装置 |
CN114344542A (zh) * | 2022-02-22 | 2022-04-15 | 珠海横琴润霖生物科技有限公司 | 一种空气预警消毒系统 |
CN117011964B (zh) * | 2023-08-02 | 2024-02-13 | 广州市图威信息技术服务有限公司 | 门禁系统及门禁监控方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1975761A (zh) * | 2006-12-15 | 2007-06-06 | 昆明利普机器视觉工程有限公司 | 人像自动识别的视频数据挖掘系统和方法 |
CN103258191A (zh) * | 2013-05-15 | 2013-08-21 | 苏州福丰科技有限公司 | 基于人脸识别的小区门禁系统 |
CN103632132A (zh) * | 2012-12-11 | 2014-03-12 | 广西工学院 | 一种基于肤色分割和模板匹配的人脸检测与识别方法 |
CN104992140A (zh) * | 2015-05-27 | 2015-10-21 | 上海海事大学 | 一种基于遥感图像的海面异常漂浮物检测方法 |
CN105447459A (zh) * | 2015-11-18 | 2016-03-30 | 上海海事大学 | 一种无人机自动检测目标和跟踪方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3575679B2 (ja) * | 2000-03-31 | 2004-10-13 | 日本電気株式会社 | 顔照合方法と該照合方法を格納した記録媒体と顔照合装置 |
JP4881278B2 (ja) * | 2007-10-31 | 2012-02-22 | 株式会社東芝 | 物体認識装置及びその方法 |
-
2018
- 2018-03-13 CN CN201810204869.6A patent/CN108460356B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1975761A (zh) * | 2006-12-15 | 2007-06-06 | 昆明利普机器视觉工程有限公司 | 人像自动识别的视频数据挖掘系统和方法 |
CN103632132A (zh) * | 2012-12-11 | 2014-03-12 | 广西工学院 | 一种基于肤色分割和模板匹配的人脸检测与识别方法 |
CN103258191A (zh) * | 2013-05-15 | 2013-08-21 | 苏州福丰科技有限公司 | 基于人脸识别的小区门禁系统 |
CN104992140A (zh) * | 2015-05-27 | 2015-10-21 | 上海海事大学 | 一种基于遥感图像的海面异常漂浮物检测方法 |
CN105447459A (zh) * | 2015-11-18 | 2016-03-30 | 上海海事大学 | 一种无人机自动检测目标和跟踪方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108460356A (zh) | 2018-08-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108460356B (zh) | 一种基于监控系统的人脸图像自动处理系统 | |
Wang et al. | Research on face recognition based on deep learning | |
Alani et al. | Hand gesture recognition using an adapted convolutional neural network with data augmentation | |
CN110110624B (zh) | 一种基于DenseNet网络与帧差法特征输入的人体行为识别方法 | |
CN110929593B (zh) | 一种基于细节辨别区别的实时显著性行人检测方法 | |
CN108520226B (zh) | 一种基于躯体分解和显著性检测的行人重识别方法 | |
CN111797653B (zh) | 基于高维图像的图像标注方法和装置 | |
CN111767882A (zh) | 一种基于改进yolo模型的多模态行人检测方法 | |
WO2018102918A1 (en) | System and method for cnn layer sharing | |
US10445602B2 (en) | Apparatus and method for recognizing traffic signs | |
CN111639564B (zh) | 一种基于多注意力异构网络的视频行人重识别方法 | |
CN108090406B (zh) | 人脸识别方法及系统 | |
CN110633632A (zh) | 一种基于循环指导的弱监督联合目标检测和语义分割方法 | |
CN111178208A (zh) | 基于深度学习的行人检测方法、装置及介质 | |
CN113361495A (zh) | 人脸图像相似度的计算方法、装置、设备及存储介质 | |
CN112464730B (zh) | 一种基于域无关前景特征学习的行人再识别方法 | |
CN107767416B (zh) | 一种低分辨率图像中行人朝向的识别方法 | |
CN111652273B (zh) | 一种基于深度学习的rgb-d图像分类方法 | |
CN113947814B (zh) | 一种基于时空信息增强和多尺度显著性特征提取的跨视角步态识别方法 | |
CN112070010B (zh) | 一种联合多损失动态训练策略增强局部特征学习的行人重识别方法 | |
CN112036379A (zh) | 基于注意力时间池化图卷积的骨架动作识别方法 | |
Xia et al. | Face occlusion detection using deep convolutional neural networks | |
CN112580480A (zh) | 一种高光谱遥感影像分类方法及装置 | |
CN112329784A (zh) | 一种基于时空感知及多峰响应的相关滤波跟踪方法 | |
CN112396036A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20211029 |
|
CF01 | Termination of patent right due to non-payment of annual fee |