python猪脸识别_一种猪脸的识别方法与流程

python猪脸识别_一种猪脸的识别方法与流程本发明涉及人工智能技术领域,特别涉及到一种用于猪脸的自动识别方法。背景技术:当前养猪场进行批量养猪的过程中,养殖者需要掌握每头猪只的饮食情况、健康状态、生长状况以及情绪等信息,因此识别每头猪只的身份信息为养殖者掌握养殖场基本状况提供便利,目前大型养猪场对于猪只的身份管理没有一个准确有效的识别方法,使得在管理猪只的过程中出现混乱和错误的情况,因此,猪脸识别技术的缺乏不利于规模化的精准养猪的推广。技术…

大家好,又见面了,我是你们的朋友全栈君。

本发明涉及人工智能技术领域,特别涉及到一种用于猪脸的自动识别方法。

背景技术:

当前养猪场进行批量养猪的过程中,养殖者需要掌握每头猪只的饮食情况、健康状态、生长状况以及情绪等信息,因此识别每头猪只的身份信息为养殖者掌握养殖场基本状况提供便利,目前大型养猪场对于猪只的身份管理没有一个准确有效的识别方法,使得在管理猪只的过程中出现混乱和错误的情况,因此,猪脸识别技术的缺乏不利于规模化的精准养猪的推广。

技术实现要素:

本发明的发明目的是,针对上述问题,提供一种猪脸的识别方法,通过人工智能的技术对猪脸进行识别,确认猪只的身份,建立猪只的图片识别库,解决了现有技术缺乏猪脸识别技术的问题。

为达到上述目的,本发明所采用的技术方案是:

一种猪脸的识别方法,包括以下步骤:S1.将分别设有猪栏入口的多个猪栏并排设置,在每个所述猪栏的内部分别设有朝向所述猪栏入口的摄像头;S2.所述摄像头同时对进入所述猪栏入口的猪只进行拍摄,多个所述摄像头同步采集所述猪只的视频源数据;S3.所述视频源数据通过FTP上传至服务器端,在所述服务器端将所述视频源数据处理成猪脸图片;S4.将所述猪脸图片进行筛选和标注,保留有效的猪脸图片和标注所述猪脸图片的坐标信息,筛选后的猪脸图片和对应的坐标信息共同作为图片数据源;

S5.根据所述图片数据源训练识别猪脸的模型,包括以下步骤:

S51.将所述图片数据源转换成符合Tensorflow系统的格式;

S52.将所述图片源数据按照比例分成训练集和测试集;

S53.将所述训练集通过Tensorflow系统的训练脚本训练能够识别猪脸的模型;

S54.通过所述测试集对所述模型进行验证;

S55.通过Tensorflow系统导出脚本生成训练好的识别猪脸的模型;

S6.根据所述训练好的识别猪脸的模型,自动处理所述猪脸图片,包括以下步骤:

S61.对步骤S3获得的猪脸图片输入所述训练好的识别猪脸的模型,通过Tensorflow系统判断输入的猪脸图片是否包含有效的猪脸图片并返回判断结果;

S62.根据返回的判断结果决定是否将所述猪脸图片保存为有效的猪脸图片。

通过使用摄像头采集猪只的视频源数据,利用程序将该视频源数据转化成图片源数据,再通过Tensorflow系统训练识别猪脸的模型,通过该模型实现猪脸的自动识别,可识别的数量大,识别准确率高。

上述方案中,为优化,进一步地,步骤S3的将所述视频源数据处理成猪脸图片通过以下步骤实现:根据所述视频源数据建立每头猪只的主目录和包含在所述主目录下的子目录,并读取所述视频源数据的帧,将所述帧转化为猪脸图片,将所述猪脸图片存储于所述子目录中。

进一步地,步骤S4,S61和S62中的有效的猪脸图片包括清晰的正脸图片和侧脸图片。

进一步地,所述步骤S53中的训练集和测试集的比例为4:1。

进一步地,步骤S1中,每个所述猪栏设置左右对称的摄像头。

由于采用上述技术方案,本发明具有以下有益效果:

1、将多个摄像头同时拍摄一头猪只,同步采集数据,获取大量的猪只视频源数据,使用程序处理视频源数据成猪脸图片以及标注每个猪脸图片的坐标信息,再通过Tensorflow系统训练识别猪脸的模型,通过该模型自动识别猪脸,可实现全自动实现猪脸的识别,建立了猪脸的识别方法,可以识别猪脸的身份信息,为养殖者掌握每头猪只信息提供便利;通过该模型可识别的猪只的数量规模大,识别准确率高,通过验证,经过20万step训练之后,对于测试集的验证准确率达到99%以上。

2、将猪栏并排设置,猪栏入口处于同一水平线上,当猪只进入猪栏,多个摄像头同时拍摄该猪只的视频,从而获取大量关于该猪只的视频,程序自动化处理大量猪只视频生成大量猪脸图片的准确率达到95%以上,为识别猪脸的模型的训练提供坚实的数据基础,降低数据误差,提高识别准确率。

3、通过猪脸图片和标注的坐标信息,细化识别区域,提高识别的准确率。

4、有效的猪脸图片包括正脸图片和侧脸图片,可以进行多方位的猪脸识别,降低识别误差。

5、将视频源数据经过处理后建立每头猪只信息的主目录和子目录,主目录有利于区别于其他猪只,子目录有利于识别单个猪只的特征信息,主目录和子目录共同确定了猪只的身份识别信息。

6、通过技术人员的大量实验验证,训练集和测试集的比例为4:1时,既保证了训练模型时的数据的充足性,又确保验证数据的可靠性,得到的识别猪脸的模型的识别准确率高。

7、在每个猪栏里设置两个左右对称的摄像头,可以全方位地拍摄猪脸视频,避免拍摄死角。

附图说明

图1,猪栏的结构示意图。

图2,识别猪脸模型训练流程图。

图3,程序自动化流程图。

附图中,1.猪栏;2.猪栏入口;3.饮水位;4.料槽;5.摄像头

具体实施方式

以下结合附图对发明的具体实施进一步说明。

如图1、图2和图3所示,本实施例提供一种猪脸的识别方法,包括以下步骤:S1.将分别设有猪栏入口2的多个猪栏1并排设置,每个所述猪栏入口2位于同一水平线上,每个猪栏1内部设有饮水位3和料槽4,在饮水位3和料槽4处分别设有朝向猪栏入口2的摄像头5;S2.摄像头5同时对进入猪栏入口2的猪只进行拍摄,多个摄像头5同步采集猪只获得视频源数据;在本实施例中,每个养猪场安装6个猪栏同步采集视频源数据,每个猪栏1设置左右对称的摄像头,视频源数据的格式为MP4视频;S3.通过FTP工具将视频源数据上传至服务器端,在服务器端用程序将视频源数据处理生成猪脸图片;当天采集完毕的视频源数据通过FTP工具上传至服务器端,通过一段时间的采集,服务器端积累了数量超过25000个的视频源数据,猪只数量超过12500头,通过调用Opencv标准库的方法读取视频帧,视频帧率为25帧每秒,一个小时的视频源数据有90000帧的视频图像,每头猪只的视频源数据会生成90000张猪脸图片,总共猪脸图片的数量达到2.25亿张,用Opencv标准库的方法保存这些猪脸图片,这些猪脸图片包括有效的猪脸图片和无效的猪脸图片;

S4.将猪脸图片进行筛选和标注,保留有效的猪脸图片和标注猪脸图片的坐标信息,筛选后的猪脸图片和对应的坐标信息共同作为图片数据源;

S5.根据该图片数据源训练识别猪脸的模型,包括以下步骤:

S51.将图片数据源转换成符合Tensorflow系统的格式;

S52.将图片源数据按照比例分成训练集和测试集;训练集和测试集的比例为4:1;

S53.将训练集通过Tensorflow系统的训练脚本训练能够识别猪脸的模型;

S54.通过测试集对该识别猪脸的模型进行验证;

S55.通过Tensorflow系统导出脚本生成训练好的识别猪脸的模型;

S6.根据训练好的识别猪脸的模型,自动处理猪脸图片,包括以下步骤:

S61.对步骤S3获得的猪脸图片输入训练好的识别猪脸的模型,通过Tensorflow系统判断输入的猪脸图片是否包含有效的猪脸图片并返回判断结果;

S62.根据返回的判断结果决定是否将猪脸图片保存为有效的猪脸图片。

其中,步骤S3的将视频源数据处理成猪脸图片通过以下步骤实现:采用python语言根据视频源数据实现建立每头猪只的主目录和包含在主目录下的子目录,并调用Opencv标准库的方法读取该视频源数据的帧,将帧转化为猪脸图片,将猪脸图片存储于子目录中。

步骤S4,步骤S61和步骤S62中的有效的猪脸图片包括清晰的正脸图片和侧脸图片。

将步骤S62保存为有效的猪脸图片调用卷积神经网络结构识别模型计算获得的猪脸图片,识别出猪只身份ID。

输入:步骤S62中有效的猪脸图片;

卷积神经网络结构模型计算:通过卷积神经网络结构模型计算出该猪只是否为新增猪只还是已有猪只,如果是新增猪只就生成全球唯一猪只身份ID,如果是已有猪只就识别出猪只身份ID;

输出:通过卷积神经网络结构模型计算出的新创建的猪只身份ID或者识别出的已有猪只身份ID。

上述卷积神经网络结构模型通过以下步骤训练获得:

ST1:首先构建用于自动提取猪只脸部特征的卷积神经网络,并设定卷积神经网络的训练参数;然后采集带有正脸和侧脸的猪脸图片集作为一次训练样本,利用建立的一次训练样本对卷积神经网络进行训练,直至达到设定的训练参数后停止训练,即生成猪只脸部特征码生成器;

ST2:将某一已知猪只的正脸和侧脸图片集作为数据源输入猪只脸部特征码生成器中,经信号处理后猪只脸部特征码生成器的输出端输出该猪只对应的特征码和猪只ID;

ST3:重复上述步骤ST2,则分别得到各已知猪只的特征码和其对应的猪只ID,各个已知猪只的特征码和猪只ID即构成猪只特征码库;

ST4:利用猪只特征码库作为二次训练样本对卷积神经网络进行训练,直至达到设定的训练参数后停止训练,即生成猪脸分类器;

ST5:将待识别猪只的猪脸图片的特征码输入猪脸分类器中,通过猪脸分类器的输出端输出该猪只是否为新猪。由于新猪的正脸和侧脸图片集未被录入进猪只脸部特征码生成器中,所以在猪只特征码库和猪脸分类器中均未有记录。

卷积神经网络结构可包括n个卷积层、m个池化层和k个全链接层,卷积层与池化层交叉依次设置,且池化层采用基于最大值的池化方法,其中n、m、k均为≥1的整数。n、m和k的值可以是同一个相同数值,也可以是相互不同或者是两两相同的数值。优选的,n、m、k的值均为3,即通过三个全连接层来对提取出猪只特征码的特征响应图进行数值预测,得到相似度分数,并输出匹配结果;然后利用匹配结果与真实结果之间的误差,来训练卷积神经网络结构模型的训练参数。

本实施例中,Tensorflow系统为现有人工智能系统。

上述说明是针对本发明较佳可行实施例的详细说明,但实施例并非用以限定本发明的专利申请范围,凡本发明所提示的技术精神下所完成的同等变化或修饰变更,均应属于本发明所涵盖专利范围。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/151876.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 怎么删除pycharm的项目_怎样删除pycharm创建的项目

    怎么删除pycharm的项目_怎样删除pycharm创建的项目前言os模块和shutil模块是Python处理文件/目录的主要方式。os模块提供了一种使用操作系统相关功能的便捷方式,shutil模块是一种高级的文件/目录操作工具。文件的处理os模块提供了一些便捷功能来使用操作系统资源,比如读取资源目录下的文件、在命令行查看某路径下文件的所有内容等。获取系统类型对代码进行兼容性开发以适应不同操作系统时通过操作系统类型进行判断就可以轻松解决。importosimportsysprint(os.name)#返回nt代表Windows,posix代表L

    2022年8月25日
    3
  • strstr(str1,str2)函数使用时注意事项

    strstr(str1,str2)函数使用时注意事项可能有的人还没听过strstr函数,个人认为这个一个很实用的函数,strstr(str1,str2)函数是字符串处理函数之一,位于头文件“string.h”中。对于处理字符串的一些问题有很大的帮助。定义:strstr(str1,str2)函数用于判断字符串str2是否是str1的子串。如果是,则该函数返回str2在str1中首次出现的地址;否则,返回NULL。定义说的有点羞涩难懂。举个例子就…

    2022年6月25日
    33
  • leetcode–差分数组

    leetcode–差分数组0.差分数组的概念:常用于某个区间值都需加/减去a的问题。1.1094拼车classSolution:defcarPooling(self,trips:List[List[int]],capacity:int)->bool:max_val=0foriinrange(len(trips)):max_val=max(max_val,trips[i][2])diff=[0

    2022年6月8日
    27
  • gmap绘制路径_cad画可见点

    gmap绘制路径_cad画可见点将在地图上用鼠标左键点击的点绘制出来(两点之间用直线连接),并且能够随地图一起实现等比例缩放和拖拽。GMap主要涉及到几个坐标的转换:经纬度与GPoint的转换:GPoint是gMapControl控件坐标,坐标原点(0,0)位于控件的左上角,这个转换用函数FromLatLngToLocal()完成。GPoint与经纬度的转换:将控件坐标转换成经纬度,用函数FromLocalToL

    2025年7月30日
    0
  • 基于JAVA+Servlet+JSP+MYSQL的图书销售管理系统

    基于JAVA+Servlet+JSP+MYSQL的图书销售管理系统项目功能:此网上书店系统具有以下基本功能:1.用户注册功能:进入网上书店的用户可以进行商品浏览,但不能进行购买,此时用户的身份为游客。如需购买图书,就要用到用户注册功能。需要输入用户名和密码进行注册。如果已注册的用户忘记密码,可以点击“找回密码”按钮。已注册用户也可以点击“注销”按钮进行用户信息注销。2.商品管理功能:商品管理功能即用户可以对网上书店的书籍进行搜索、查看、选购。在管理员方面,此功能还包括系统内图书的上新、下架管理。3.书店购物车功能:用户可以将心仪的图书加入到书店购物车中。在书店购物

    2022年5月18日
    45
  • UART 和 USART 有区别

    UART 和 USART 有区别UART:universalasynchronousreceiverandtransmitter通用异步收发器          [BusSignal]  TX ,RX USART:universalsynchronousasynchronousreceiverandtransmitter通用同步异步收发器          [BusSignal]  T

    2022年5月19日
    41

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号