买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
摘要:本发明涉及一种基于movidius计算芯片和Yoloface的人脸检测方法,包括步骤如下:1将数据集划分为训练集和测试集,在训练集中标注用于人脸检测模型训练的数据集;2将TinyYolov2解析成Yoloface;3进行人脸检测模型的训练;4将训练得到的人脸检测模型转化成movidius计算芯片支持的模型格式;5使用测试集验证人脸检测模型,进行人脸检测。本发明解决了movidius计算芯片上SSD算法进行人脸检测存在的速度慢以及误检率高的问题,提高了人脸检测的速度和精度,进而提升了人脸识别的泛化能力和鲁棒性。
主权项:1.一种基于movidius计算芯片和Yoloface的人脸检测方法,其特征在于,包括步骤如下:1将数据集划分为训练集和测试集,在训练集中标注用于人脸检测模型训练的数据集;2将TinyYolov2解析成Yoloface;3进行人脸检测模型的训练;4将训练得到的人脸检测模型转化成movidius计算芯片支持的模型格式;5使用测试集验证人脸检测模型,进行人脸检测;所述步骤2中,包括:修改TinyYolov2的网络结构,将cfg文件中classes值设置为1,anchors值设置为[0.738768,0.874946,2.42204,2.65704,4.30971,7.04493,10.246,4.59428,12.6868,11.8741],0.738768、2.42204、4.30971、10.246、12.6868是指初始宽,0.874946、2.65704、7.04493、4.59428、11.8741是指初始高,classes是指类别数量,anchors是指用于描述人脸框box的信息,同时,在movidius计算芯片上检测人脸的过程中,由TinyYolov2解析成Yoloface后的anchor_boxes和anchors值完全相同,anchor_boxes是检测人脸时参数。
全文数据:一种基于movidius计算芯片和Yoloface的人脸检测方法技术领域本发明属于人脸识别技术领域,具体涉及一种基于movidius计算芯片和Yoloface的人脸检测方法。背景技术人脸的识别分为两大步骤:人脸检测和人脸对齐。人脸检测是人脸识别领域中一个关键环节,指的是对于任意一幅给定的图像,使用算法对其进行搜索来确定其中是否存在人脸,如果存在则返回人脸的位置信息和大小。目前movidius计算芯片上人脸检测使用的是SSD算法,但SSD算法易将背景检测为人脸,误检率较高。YOLO算法由于具有速度快、误检率低、泛化能力强的优点,已经在物体检测领域得到了广泛的应用,且movidius计算芯片也支持YOLO算法的移植,但并无将YOLO算法移植到movidius计算芯片进行人脸检测的案例。movidius计算芯片只能用于推理不能用于训练,这是由其性能决定的,因此,在movidius计算芯片进行推理之前需要将自己训练的模型转换成其支持的graph格式,即movidius计算芯片仅支持graph格式的模型。发明内容针对现有技术的不足,本发明提供了一种基于movidius计算芯片和Yoloface的人脸检测方法。本发明的技术任务是针对以上不足之处,提供一种速度快、误检率低、泛化能力强的基于movidius计算芯片和Yoloface的人脸检测方法。术语解释:1、TinyYolov2:YOLO是基于深度学习方法的端到端实时目标检测系统,YOLOv2在YOLO的基础上进行了一系列的改进,在快速的同时达到stateoftheart。TinyYolov2是在YOLOv2的基础上通过采用压缩网络的方式以达到目标检测更快、小、准的效果。2、Yoloface:YOLO相关的算法属于目标检测,而Yoloface是在YOLO的基础上训练出仅检测人脸模型的方法。3、Darknet:Darknet是一个较为轻型的完全基于C与CUDA的开源深度学习框架,其主要特点是容易安装,没有任何依赖项,具有很好的移植性,且支持CPU与GPU两种计算方式。4、darkflow:darkflow实现了将darknet移植到tensorflow上,可以用tensorflow加载darknet训练好的模型,并使用tensorflow重新训练,输出tensorflowgraph模型,用于移动设备。5、mvNCCompile模型转化工具:mvNCCompile是一个命令行工具,可将Caffe或TensorFlow模型的网络和权重文件编译为MovidiusGraph文件格式。6、mAp:mAp即均值平均精度,是目标检测模型中性能评估的重要参数之一。7、LabelImg工具:LabelImg是一个可视化的图像标定工具,FasterRCNN、YOLO、SSD等目标检测网络所需要的数据集均需要借助此工具标定图像中的目标。本发明的技术方案为:一种基于movidius计算芯片和Yoloface的人脸检测方法,包括步骤如下:1将数据集划分为训练集和测试集,在训练集中标注用于人脸检测模型训练的数据集;2将TinyYolov2解析成Yoloface;3进行人脸检测模型的训练;4将训练得到的人脸检测模型转化成movidius计算芯片支持的模型格式;5使用测试集验证人脸检测模型,进行人脸检测。根据本发明优选的,所述步骤1中,包括步骤如下:A、准备处于不同场景及不同尺寸的大量人脸图像,作为人脸数据集;B、将人脸数据集划分为训练集和测试集;C、下载并安装LabelImg图片标注工具,将类别文件中的值改为face,标注类型为YOLO,使用LabelImg工具对训练集中的人脸图像进行标注,即收集人脸在图像中的位置信息x,y,width,height,x,y为人脸中心点的坐标,该坐标所在的坐标系为:人脸左侧侧面的切线所在的直线为X轴,人脸顶端的切线所在的直线为Y轴,width表示人脸在图像上的宽度,height表示人脸在图像上高度。根据本发明优选的,所述步骤B中,将人脸数据集中的90%作为训练集,10%作为测试集。根据本发明优选的,所述步骤c中,对训练集中的人脸图像进行标注时,仅标注人脸图像中尺寸大于20*20像素长和宽以上且侧脸角度小于90度的人脸。根据本发明优选的,所述步骤2中,包括:修改TinyYolov2的网络结构,将cfg文件中classes值设置为1,anchors值设置为[0.738768,0.874946,2.42204,2.65704,4.30971,7.04493,10.246,4.59428,12.6868,11.8741]0.738768、2.42204、4.30971、10.246、12.6868是指初始宽,0.874946、2.65704、7.04493、4.59428、11.8741是指初始高,预测框的初始宽高,第一个是width,第二个是height,总数量是num*2,其中num指的是每个网格grid预测的边界框的数量,classes是指类别数量,训练时会用到cfg文件,这个网络结构文件里面的Region层有一个anchors参数,anchors是指用于描述人脸框box的信息,同时,在movidius计算芯片上检测人脸的过程中,由TinyYolov2解析成Yoloface后的anchor_boxes和anchors值完全相同,anchor_boxes是检测人脸时参数。根据本发明优选的,所述步骤3中,使用darknet进行人脸检测模型的训练,包括:安装darknet,使用步骤1中标注好的训练集和步骤2中修改好的TinyYolov2的网络结构进行训练,得到训练好的人脸检测模型,即weights文件。根据本发明优选的,所述步骤4中,使用darkflow及mvNCCompile模型转化工具将训练得到的人脸检测模型转化成movidius计算芯片支持的模型格式,包括:D、安装darkflow,将步骤3中训练好的人脸检测模型即weights文件转化成meta文件,将步骤2中修改好的TinyYolov2的网络结构中cfg文件转化成pb文件;E、使用mvNCCompile模型转化工具将meta文件和pb文件转化成movidius计算芯片支持的graph格式,即将Yoloface人脸检测移植到movidius计算芯片上。5使用测试集验证,进行人脸检测。根据本发明优选的,所述步骤5中,使用测试集验证人脸检测模型,进行人脸检测;包括步骤如下:F、使用LabelImg图片标注工具对测试集中的人脸图像进行标注,收集人脸在图像中的位置信息x,y,width,height,x,y为人脸中心点的坐标,该坐标所在的坐标系为:人脸左侧侧面的切线所在的直线为X轴,人脸顶端的切线所在的直线为Y轴,width表示人脸在图像上的宽度,height表示人脸在图像上高度;G、使用movidius计算芯片加载训练出的人脸检测模型,该人脸检测模型返回大量的预测信息,预测信息包括loU交并比,loU是人脸检测模型所预测的检测框和真实groundtruth的检测框的交集和并集之间的比例;设定阈值T,T的取值范围为0-1,如果loUT,则认为是真实的检测truedetection,否则,则认为是错误的检测falsedetection;H、计算出人脸正确检测次数A;对于每个人脸图像,已知groundtruth的数据即知道每个图像的真实目标信息,因此,也知道了该图像中给定类别的实际目标B的数量,人脸模型的精度PrecesioncAB的计算公式如式Ⅰ所示,B是指人脸图像中给定类别的实际目标的数量:式Ⅰ中,即给定一张人脸图像的类别C的Precesionc为人脸图像正确预测TruePositives的数量NTruePositivesc除以在人脸图像在这一类的总的目标数量NTotalObjectsc;对于整个测试集,则用该类的平均精度来评估人脸检测模型,如式II所示:式II中,即一个c类的平均精度AveragePrecesionc为在测试集上所有的人脸图像对于类C的精度值的和∑Precisionc除以类C这个目标的所有人脸图像的数量NTotalObjectsc;对于测试集和人脸检测模型,使用AveragePrecesionc进行衡量。进一步优选的,T=0.45。本发明的有益效果为:目前movidius计算芯片上人脸检测使用的是SSD算法,但SSD易将背景检测为物体,误检率较高。YOLO算法由于具有速度快、误检率低、泛化能力强的优点,已经在物体检测领域得到了广泛的应用,且movidius计算芯片也支持YOLO算法的移植,但并无将YOLO算法移植到movidius计算芯片进行人脸检测的案例。本发明在TinyYolov2物体检测的基础上解析Yoloface,对标注后的训练集数据进行训练产出模型,并将训练得到的模型转化成movidius计算芯片支持的graph格式,实现了movidius计算芯片上Yolo算法检测人脸,本发明解决了movidius计算芯片上SSD算法进行人脸检测存在的速度慢以及误检率高的问题,提高了人脸检测的速度和精度,进而提升了人脸识别的泛化能力和鲁棒性。附图说明图1是本发明一种基于movidius计算芯片和Yoloface的人脸检测方法的流程示意图。图2是本发明一个人脸图像所在坐标系的示意图。具体实施方式下面结合说明书附图和具体实施例对本发明作进一步说明,但不限于此。实施例1一种基于movidius计算芯片和Yoloface的人脸检测方法,如图1所示,包括步骤如下:1将数据集划分为训练集和测试集,在训练集中标注用于人脸检测模型训练的数据集;包括步骤如下:A、准备处于不同场景及不同尺寸的大量人脸图像,作为人脸数据集;B、将人脸数据集中的90%作为训练集,10%作为测试集。C、下载并安装Labellmg图片标注工具,将类别文件中的值改为face,标注类型为YOLO,使用LabelImg工具对训练集中的人脸图像进行标注,仅标注人脸图像中尺寸大于20*20像素长和宽以上且侧脸角度小于90度的人脸。即收集人脸在图像中的位置信息x,y,width,height,x,y为人脸中心点的坐标,该坐标所在的坐标系为:人脸左侧侧面的切线所在的直线为X轴,人脸顶端的切线所在的直线为Y轴,坐标系如图2所示,width表示人脸在图像上的宽度,height表示人脸在图像上高度。2将TinyYolov2解析成Yoloface;包括:修改TinyYolov2的网络结构,将cfg文件中classes值设置为1,anchors值设置为[0.738768,0.874946,2.42204,2.65704,4.30971,7.04493,10.246,4.59428,12.6868,11.8741]0.738768、2.42204、4.30971、10.246、12.6868是指初始宽,0.874946、2.65704、7.04493、4.59428、11.8741是指初始高,预测框的初始宽高,第一个是width,第二个是height,总数量是num*2,其中num指的是每个网格grid预测的边界框的数量,classes是指类别数量,训练时会用到cfg文件,这个网络结构文件里面的Region层有一个anchors参数,anchors是指用于描述人脸框box的信息,同时,在movidius计算芯片上检测人脸的过程中,由TinyYolov2解析成Yoloface后的anchor_boxes和anchors值完全相同,anchor_boxes是检测人脸时参数。3进行人脸检测模型的训练;是指:使用darknet进行人脸检测模型的训练,包括:安装darknet,使用步骤1中标注好的训练集和步骤2中修改好的TinyYolov2的网络结构进行训练,得到训练好的人脸检测模型,即weights文件。4使用darkflow及mvNCCompile模型转化工具将训练得到的人脸检测模型转化成movidius计算芯片支持的模型格式,包括:D、安装darkflow,将步骤3中训练好的人脸检测模型即weights文件转化成meta文件,将步骤2中修改好的TinyYolov2的网络结构中cfg文件转化成pb文件;E、使用mvNCCompile模型转化工具将meta文件和pb文件转化成movidius计算芯片支持的graph格式,即将Yoloface人脸检测移植到movidius计算芯片上。5使用测试集验证人脸检测模型,进行人脸检测;包括步骤如下:F、使用LabelImg图片标注工具对测试集中的人脸图像进行标注,收集人脸在图像中的位置信息x,y,width,height,x,y为人脸中心点的坐标,该坐标所在的坐标系为:人脸左侧侧面的切线所在的直线为X轴,人脸顶端的切线所在的直线为Y轴,坐标系如图2所示,width表示人脸在图像上的宽度,height表示人脸在图像上高度;G、使用movidius计算芯片加载训练出的人脸检测模型,该人脸检测模型返回大量的预测信息,预测信息包括loU交并比,loU是人脸检测模型所预测的检测框和真实groundtruth的检测框的交集和并集之间的比例;设定阈值T=0.45,如果IoU>T,则认为是真实的检测truedetection,否则,则认为是错误的检测falsedetection;H、计算出人脸正确检测次数A;对于每个人脸图像,已知groundtruth的数据即知道每个图像的真实目标信息,因此,也知道了该图像中给定类别的实际目标B的数量,人脸模型的精度PrecesioncAB的计算公式如式I所示,B是指人脸图像中给定类别的实际目标的数量:式I中,即给定一张人脸图像的类别C的Precesionc为人脸图像正确预测TruePositives的数量NTruePositivesc除以在人脸图像在这一类的总的目标数量NTotalObjectsc;对于整个测试集,则用该类的平均精度来评估人脸检测模型,如式II所示:式II中,即一个C类的平均精度AveragePrecesionc为在测试集上所有的人脸图像对于类C的精度值的和∑Precisionc除以类C这个目标的所有人脸图像的数量NTotalObjectsc;对于测试集和人脸检测模型,使用AveragePrecesionc进行衡量。在对同一张人脸图像进行检测时,本发明和现有技术的方法SSD321、FastR-CNN、SSD513相比的效果数据如表1所示;表1时间ms正确率AP本发明人脸检测方法2595.6SSD3217284.3FastR-CNN18089.0SSD51312580.0由表1可知,本发明解决了movidius计算芯片上SSD算法进行人脸检测存在的速度慢以及误检率高的问题,提高了人脸检测的速度和精度,进而提升了人脸识别的泛化能力和鲁棒性。
权利要求:1.一种基于movidius计算芯片和Yoloface的人脸检测方法,其特征在于,包括步骤如下:1将数据集划分为训练集和测试集,在训练集中标注用于人脸检测模型训练的数据集;2将TinyYolov2解析成Yoloface;3进行人脸检测模型的训练;4将训练得到的人脸检测模型转化成movidius计算芯片支持的模型格式;5使用测试集验证人脸检测模型,进行人脸检测。2.根据权利要求1所述的一种基于movidius计算芯片和Yoloface的人脸检测方法,其特征在于,所述步骤1中,包括步骤如下:A、准备处于不同场景及不同尺寸的大量人脸图像,作为人脸数据集;B、将人脸数据集划分为训练集和测试集;C、下载并安装LabelImg图片标注工具,将类别文件中的值改为face,标注类型为YOLO,对训练集中的人脸图像进行标注,即收集人脸在图像中的位置信息x,y,width,height,x,y为人脸中心点的坐标,该坐标所在的坐标系为:人脸左侧侧面的切线所在的直线为X轴,人脸顶端的切线所在的直线为Y轴,width表示人脸在图像上的宽度,height表示人脸在图像上高度。3.根据权利要求2所述的一种基于movidius计算芯片和Yoloface的人脸检测方法,其特征在于,所述步骤B中,将人脸数据集中的90%作为训练集,10%作为测试集。4.根据权利要求2所述的一种基于movidius计算芯片和Yoloface的人脸检测方法,其特征在于,所述步骤c中,对训练集中的人脸图像进行标注时,仅标注人脸图像中尺寸大于20*20像素以上且侧脸角度小于90度的人脸。5.根据权利要求1所述的一种基于movidius计算芯片和Yoloface的人脸检测方法,其特征在于,所述步骤2中,包括:修改TinyYolov2的网络结构,将cfg文件中classes值设置为1,anchors值设置为[0.738768,0.874946,2.42204,2.65704,4.30971,7.04493,10.246,4.59428,12.6868,11.8741]0.738768、2.42204、4.30971、10.246、12.6868是指初始宽,0.874946、2.65704、7.04493、4.59428、11.8741是指初始高,classes是指类别数量,anchors是指用于描述人脸框box的信息,同时,在movidius计算芯片上检测人脸的过程中,由TinyYolov2解析成Yoloface后的anchor_boxes和anchors值完全相同,anchor_boxes是检测人脸时参数。6.根据权利要求1所述的一种基于movidius计算芯片和Yoloface的人脸检测方法,其特征在于,所述步骤3中,使用darknet进行人脸检测模型的训练,包括:安装darknet,使用步骤1中标注好的训练集和步骤2中修改好的TinyYolov2的网络结构进行训练,得到训练好的人脸检测模型,即weights文件。7.根据权利要求1所述的一种基于movidius计算芯片和Yoloface的人脸检测方法,其特征在于,所述步骤4中,使用darkflow及mvNCCompile模型转化工具将训练得到的人脸检测模型转化成movidius计算芯片支持的模型格式,包括:D、安装darkflow,将步骤3中训练好的人脸检测模型即weights文件转化成meta文件,将步骤2中修改好的TinyYolov2的网络结构中cfg文件转化成pb文件;E、使用mvNCCompile模型转化工具将meta文件和pb文件转化成movidius计算芯片支持的graph格式,即将Yoloface人脸检测移植到movidius计算芯片上;5使用测试集验证,进行人脸检测。8.根据权利要求1-7任一所述的一种基于movidius计算芯片和Yoloface的人脸检测方法,其特征在于,所述步骤5中,使用测试集验证人脸检测模型,进行人脸检测;包括步骤如下:F、使用LabelImg图片标注工具对测试集中的人脸图像进行标注,收集人脸在图像中的位置信息x,y,width,height,x,y为人脸中心点的坐标,该坐标所在的坐标系为:人脸左侧侧面的切线所在的直线为X轴,人脸顶端的切线所在的直线为Y轴,width表示人脸在图像上的宽度,height表示人脸在图像上高度;G、使用movidius计算芯片加载训练出的人脸检测模型,该人脸检测模型返回大量的预测信息,预测信息包括loU,loU是人脸检测模型所预测的检测框和真实的检测框的交集和并集之间的比例;设定阈值T,T的取值范围为0-1,如果loUT,则认为是真实的检测,否则,则认为是错误的检测;H、人脸模型的精度Precesionc的计算公式如式Ⅰ所示:式Ⅰ中,即给定一张人脸图像的类别C的Precesionc为人脸图像正确预测TruePositives的数量NTruePositivesc除以在人脸图像在这一类的总的目标数量NTotalObjectsc;对于整个测试集,则用该类的平均精度来评估人脸检测模型,如式Ⅱ所示:式Ⅱ中,即一个C类的平均精度AveragePrecesionc为在测试集上所有的人脸图像对于类C的精度值的和∑Precesionc除以类C这个目标的所有人脸图像的数量NTotalObjectsc;对于测试集和人脸检测模型,使用AveragePrecesionc进行衡量。9.根据权利要求8所述的一种基于movidius计算芯片和Yoloface的人脸检测方法,其特征在于,T=0.45。
百度查询: 山东领能电子科技有限公司 一种基于movidius计算芯片和Yolo face的人脸检测方法
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。