基于python的人脸识别系统,用python做人脸识别的程序怎么做
本发明涉及人工智能技术领域,尤其涉及一种猪脸自动识别方法。
背景:
目前,在养猪场批量养猪的过程中,养殖户需要掌握每头猪的饮食、健康状况、生长状况、心情等信息,因此识别每头猪的身份信息为养殖户掌握养殖场的基本情况提供了便利。目前,大型养猪场对猪的身份管理没有准确有效的识别方法,导致猪的管理过程中出现混乱和错误。因此,缺乏猪脸识别技术,不利于规模化精准养猪的推广。
技术要素:
本发明的目的是针对上述问题提供一种猪的人脸识别方法。通过人工智能技术识别猪的面部,确认猪的身份,建立猪图像识别数据库,解决了现有技术缺乏猪面部识别技术的问题。
为了达到上述目的,本发明采用的技术方案是:
一种猪的人脸识别方法,包括以下步骤:S1,并排设置多个猪圈,猪圈上分别设有猪圈入口,每个猪圈内分别设置一个面向猪圈入口的摄像头;S2,摄像机同时拍摄进入猪圈入口的猪,多个摄像机同步采集猪的视频源数据;S3,通过FTP将视频源数据上传到服务器,在服务器将视频源数据处理成猪脸图片;S4,筛选并标注猪脸图片,保留有效的猪脸图片和标注有猪脸图片的坐标信息,将筛选出的猪脸图片和对应的坐标信息一起作为图片数据源;
S5、根据图片数据源训练识别猪脸的模型,包括以下步骤:
S51,将图片数据源转换成符合张量流系统的格式;
S52,将图片源数据按比例分成训练集和测试集;
S53,通过Tensorflow系统的训练脚本训练训练集识别猪脸模型;
S54,通过测试集验证模型;
S55,通过Tensorflow系统导出的脚本生成训练好的猪人脸识别模型;
S6、根据训练好的猪脸识别模型对猪脸图片进行自动处理,包括以下步骤:
S61。将训练好的猪脸识别模型输入到步骤S3得到的猪脸图片中,通过Tensorflow系统判断输入的猪脸图片是否包含有效的猪脸图片,并返回判断结果;
S62。根据返回的判断结果,决定是否将猪脸图片保存为有效的猪脸图片。
通过摄像头采集猪的视频源数据,通过程序将视频源数据转换成图片源数据。然后用Tensorflow系统训练猪脸识别的模型,利用该模型实现猪脸的自动识别,可识别图像数量大,识别准确率高。
在上述方案中,为了进一步优化,步骤S3中对视频源数据进行猪脸图片的处理是通过以下步骤实现的:根据视频源数据,建立每头猪的主目录及其包含的子目录,读取视频源数据的帧,转换为猪脸图片,并将猪脸图片存储在子目录中。
此外,步骤S4、S61和S62中的有效猪脸图片包括清晰的正面图片和侧面图片。
此外,在步骤S53中,训练集与测试集的比率是41。
此外,在步骤S1中,每个猪圈设置有左右对称的摄像机。
由于采用了上述技术方案,本发明具有如下有益效果:
1.用多台摄像机同时拍摄一只猪,同步采集数据,获得大量的猪视频源数据,将视频源数据处理成猪脸图片并用程序标注每张猪脸图片的坐标信息,然后通过Tensorflow系统训练一个猪脸识别模型,通过这个模型自动识别猪脸,可以实现全自动的猪脸识别,建立猪脸识别方法,识别猪脸的身份信息,方便养殖户掌握每只猪的信息;该模型能够识别的猪数量多,识别准确率高。经过20万步训练,测试集的验证准确率达到99%以上。
2.并排设置猪圈,猪圈入口在同一水平线上。当猪进入猪圈时,多个摄像机同时拍摄猪的视频,从而获得大量关于猪的视频。该程序自动处理大量的猪视频,生成大量的猪人脸图片,准确率达到95%以上,为猪人脸识别模型的训练提供了坚实的数据基础,减少了数据误差,提高了识别准确率。
3.通过猪脸图片和标注的坐标信息,细化识别区域,提高识别准确率。
4.有效的猪脸图片包括正面图片和侧面图片,可以用于多方向的猪脸识别,减少识别错误。
5.对视频源数据进行处理后,建立每头猪的信息的主目录和子目录。主目录有利于与其他猪区分,子目录有利于识别单头猪的特征信息。主目录和子目录共同确定猪的识别信息。
6.技术人员的大量实验表明,当训练集与测试集的比例为4:1时,保证了训练模型的数据充分性,也保证了验证数据的可靠性。得到的猪人脸识别模型识别准确率高。
7.每个猪圈设置两个对称的摄像头,可以全方位拍摄猪脸视频,避免拍摄死角。
附图说明
图一。猪圈结构示意图。
图二。识别猪脸模型的训练流程图。
图3,程序自动化流程图。
在附图中,1。猪圈;2.猪圈入口;3.饮用水水位;4.料槽;5.照相机
详细实施模式
将参考以下附图进一步解释本发明的具体实现。
如图1、图2和图3所示,本实施例提供了一种猪脸识别方法,包括以下步骤:S1,并排设置多个带有猪圈入口2的猪圈1,每个猪圈入口2位于同一水平线上,每个猪圈1内设置有饮水水位3和喂食槽4,朝向猪圈入口2的摄像头5分别设置在饮水水位3和喂食槽4处;S2,摄像机5同时拍摄进入猪圈入口2的猪,多个摄像机5同步采集猪,获得视频源数据;在本实施例中,每个猪场安装六个猪圈,同步采集视频源数据,每个猪圈1设置左右对称的摄像头,视频源数据的格式为MP4视频;S3,通过FTP工具将视频源数据上传到服务器,服务器端的程序对视频源数据进行处理生成猪脸图片;将采集到的当天视频源数据通过FTP工具上传到服务器。经过一段时间的采集,服务器已经积累了25000多条视频源数据,猪的数量超过12500头。通过调用Opencv标准库读取视频帧,视频帧率为每秒25帧。一个小时的视频源数据有90000个视频图像。每头猪的视频源数据将生成9万张猪脸图片,猪脸图片总数将达到2.25亿张。这些猪脸图片是Opencv标准库保存的,包括有效的和无效的猪脸图片。
S4,筛选并标注猪脸图片,保留有效的猪脸图片和标注后的猪脸图片的坐标信息,将筛选出的猪脸图片和对应的坐标信息一起作为图片数据源;
S5、根据图片数据源训练识别猪脸的模型,包括以下步骤:
S51,将图片数据源转换成表格
S54,用测试集验证猪脸识别模型;
S55,通过Tensorflow系统导出的脚本生成训练好的猪人脸识别模型;
S6、根据训练好的猪脸识别模型对猪脸图片进行自动处理,包括以下步骤:
S61。将训练好的猪脸识别模型输入到步骤S3得到的猪脸图片中,通过Tensorflow系统判断输入的猪脸图片是否包含有效的猪脸图片,并返回判断结果;
S62。根据返回的判断结果,决定是否将猪脸图片保存为有效的猪脸图片。
在步骤S3中,将视频源数据处理成猪脸图片是通过以下步骤实现的:使用python语言根据视频源数据建立每只猪的主目录和子目录,调用Opencv标准库方法读取视频源数据的帧,将帧转换成猪脸图片,并将猪脸图片存储在子目录中。
S4,步骤S61和S62中的有效猪脸图片包括清晰的正面图片和侧面图片。
在步骤S62保存有效的猪脸图片,调用卷积神经网络结构识别模型计算猪脸图片,识别猪ID。
输入:步骤S62中的有效猪脸图片;
卷积神经网络结构模型计算:通过卷积神经网络结构模型计算猪是新猪还是现有猪,如果是新猪,生成全球唯一的猪ID,如果是现有猪,识别猪ID;
输出:通过卷积神经网络结构模型计算的新创建的猪标识或识别的现有猪标识。
卷积神经网络结构模型通过以下步骤训练得到:
ST1:首先,构建自动提取猪面部特征的卷积神经网络,并设置卷积神经网络的训练参数;然后,采集正面和侧面都有人脸的猪脸图片集作为训练样本,利用建立的训练样本训练卷积神经网络,直到达到设定的训练参数,然后停止训练,即生成猪脸特征码生成器;
ST2:将已知猪的正面和侧面图片作为数据源输入到猪脸部特征码发生器,经过信号处理后,猪脸部特征码发生器的输出端输出与猪对应的特征码和猪ID;
ST3:重复上述步骤ST2,分别获得每只已知猪的特征编码及其对应的猪标识,每只已知猪的特征编码和猪标识构成猪特征编码库;
ST4,用猪特征码库作为二次训练样本训练卷积神经网络,直到达到设定的训练参数时停止训练,即生成猪脸分类器;
ST5:将待识别猪的猪脸图片的特征编码输入到猪脸分类器中,通过猪脸分类器的输出端输出该猪是否为新猪。因为新猪的正面和侧面照片没有输入到猪脸特征代码生成器中,所以在猪特征代码数据库和猪脸分类器中没有记录。
神经网络结构可以包括N个卷积层、M个汇集层和K个全链路层。卷积层和汇集层交替排列,汇集层采用基于最大值的汇集方式,其中N、M、K均为1的整数。n、m和k的值可以是相同的值、彼此不同的值或者成对的相同值。优选地,n、m、k的值均为3,即通过三个全连接层对提取的猪特征码的特征响应图进行数值预测,得到相似度得分,输出匹配结果;然后,使用匹配结果与真实结果之间的误差来训练卷积神经网络结构模型的训练参数。
在该实施例中,Tensorflow系统是现有的人工智能系统。
以上描述是对本发明的优选和可行的实施例的详细描述,但是这些实施例并不旨在限制本发明的专利申请的范围。在本发明提出的技术精神下做出的所有等同变化或修改都应属于本发明所覆盖的专利范围。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。