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

背景技术:

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

技术实现要素:

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

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

一种猪脸的识别方法,包括以下步骤: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系统为现有人工智能系统。

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

python猪脸识别_一种猪脸的识别方法与流程相关推荐

  1. svm 用来人脸识别_基于SVM的人脸识别

    基于 SVM 的人脸识别 摘要 :主成分分析( PCA )是人脸识别中特征提取的主要方法,支持向量机 ( SVM )具有适合处理小样本.非线性和高维数问题,利用核函数且泛化能力强 等多方面的优点.文章 ...

  2. opencv ocr文字识别_用OpenCV和OCR识别图片中的表格数据

    ♚ 作者: jclian,喜欢算法,热爱分享,希望能结交更多志同道合的朋友,一起在学习Python的道路上走得更远!   在很多时候,我们的数据来源形式是多种多样的,有时候数据(或表格)也会呈现在图片 ...

  3. python椭圆形骨料_一种基于python再生混凝土三维随机球形骨料模型的构建方法与流程...

    本发明涉及建筑技术领域,尤其涉一种基于python再生混凝土三维随机球形骨料模型的构建方法. 背景技术: 再生混凝土是指利用再生粗骨料部分或者全部代替天然骨料配置而成的混凝土,再生混凝土技术的开发和利 ...

  4. python两张图片融合_两张脸融合在一起长啥样?Opencv-Python 来告诉你!

    1,Image Morphing 介绍 图像融合简单来说,通过把图像设置为不同的透明度,把两张图像融合为一张图像(一般要求图像需要等尺寸),公式如下: 可以根据这个公式尝试实现一下融合技术,利用 Op ...

  5. python判断文本内容_文本检测、文本识别(cnn+ctc、crnn+ctc)

    代码目录 |---- config.py # 工程参数配置 |---- ocr_lib # 模型.数据生成 | |---- crnn.py # 选用不同模型 | |---- vgg16.py | |- ...

  6. python仪表指针识别_一种指针式仪表的识别方法

    一种指针式仪表的识别方法 杨世杰,张 平 [摘 要] 当前指针式仪表识别技术日益成熟,其中指针形状和位置的识别大多 采用 Hough 变换算法,传统的 Hough 变换算法运算时间长.储存空间大,使 ...

  7. python提取人物特征_基于图像人物面部表情识别的特征提取优化方法与流程

    本发明涉及一种基于图像人物面部表情识别的特征提取优化方法,主要利用基于统计特征提取的二维主成分分析法和改进的粒子群算法优化图像矩阵的解,属于图像处理.模式识别和计算机视觉交叉技术应用领域. 背景技术: ...

  8. python手写字母识别_手写字母数字识别_Python_SDK调用(一)

    解压SDK压缩包 ##所提供的测试代码中的信息如下所示: option = {} option["side"] = "front" try: response= ...

  9. 基于kl变换的人脸识别_简述几种人脸识别的主要方法

    人脸识别的方法很多,以下介绍一些主要的人脸识别方法.(1)几何特征的人脸识别方法几何特征可以是眼.鼻.嘴等的形状和它们之间的几何关系(如相互之间的距离).这些算法识别速度快,需要的内存小,但识别率较低 ...

最新文章

  1. 阿里云高级总监谈超大规模超高性能分布式快存储系统
  2. 写在那个毕业五年的日子
  3. 【SSH网上商城项目实战20】在线支付平台的介绍
  4. 计算机系统基础:文件的存取和存储空间管理知识笔记
  5. zookeeper配置文件详解
  6. 搭建本地 HTTPS 环境
  7. 44 The shopping psychology 购物心理
  8. ijkplayer android端jni层调试
  9. 【矩阵论 图论】期末考试复习思维导图
  10. visual studio code Python终端运行_深入比较kaldi和python_speech_features提取的fbank特征之间的区别...
  11. 南锣鼓巷大变样,最新逛吃全攻略收好!
  12. 如何将电脑(网线)网络共享给iPhone苹果手机(不需要数据线)
  13. find函数的使用方法Matlab,matlab中find函数的使用说明——emily语法介绍
  14. google计费接入,Billing结算库支付
  15. Android性能优化的5种方案
  16. 2021-03-13 大数据课程笔记 day52
  17. 【obs】转载:OBS直播严重延迟和卡顿怎么办?
  18. 水利水电安全员考试问答练习题库(4)
  19. 关于JAVA外包的解释及优劣势
  20. “Why Should I Trust You?”:Explaining the Predictions of Any Classifier 论文笔记

热门文章

  1. Scala 入门-包对象(package object)
  2. 2021世界区块链大会·杭州
  3. python做网站和php_做网站用php还是python
  4. 亚马逊店铺运营的五个方法
  5. Flutter 启动图体验优化,无闪烁
  6. cmd命令之windows端口查询
  7. java制作电话本,java模拟而一个电话本操作
  8. android过滤文件删除,Android Studio Git 过滤(忽略)和移除不必要上传的文件
  9. 开源项目分享-健身房管理系统
  10. wps二维码根据一列自动生成_wps个人简历模板 免费的简历制作手机软件