摘要:动物识别系统用于识别和统计常见动物数量,通过深度学习技术检测日常几种动物图像识别,支持图片、视频和摄像头画面等形式。在介绍算法原理的同时,给出Python的实现代码、训练数据集以及PyQt的UI界面。动物识别系统主要用于常见动物的识别,检测几种动物的数目、位置、预测置信度等;检测模型可选择切换,识别结果记录在界面表格中;系统设计有注册登录功能,方便用户进行管理和使用。博文提供了完整的Python代码和使用教程,适合新入门的朋友参考,完整代码资源文件请转至文末的下载链接。
完整资源下载:https://mbd.pub/o/bread/ZJaXk55s
参考视频演示:https://www.bilibili.com/video/BV1yT411r7kG/
(资料图片)
离线依赖库下载链接:https://pan.baidu.com/s/1hW9z9ofV1FRSezTSj59JSg?pwd=oy4n (提取码:oy4n )
前言
人工智能的出现引发了动物监测与识别的巨大变革,如何应用智能技术,来开展野生动物资源的观测与评估工作成为研究重点。如今CNN作为一种学习效率极高且易于训练的深度学习模型,在动物识别中最为常用。在CNN的基础上,人们通过对卷积层、池化层、全连接层等结构的交替与优化,加强对图像的特征提取并通过调整网络层数加强学习能力,进一步训练提高识别性能。
这里博主也设计了基于深度学习的动物识别系统,下面给出了软件界面,同款的简约风,功能也可以满足图片、视频和摄像头的识别检测,希望大家可以喜欢,初始界面如下图:
检测动物时的界面截图(点击图片可放大)如下图,可识别画面中存在的多个动物,也可开启摄像头或视频检测:
详细的功能演示效果参见博主的B站视频或下一节的动图演示,觉得不错的朋友敬请点赞、关注加收藏!系统UI界面的设计工作量较大,界面美化更需仔细雕琢,大家有任何建议或意见和可在下方评论交流。
1. 效果演示
这里通过动图看一下识别动物的效果,系统主要实现的功能是对图片、视频和摄像头画面中的动物属性进行识别,识别的结果可视化显示在界面和图像中,另外提供多个动物的显示选择功能,演示效果如下。
(一)用户注册登录界面
这里设计了一个登录界面,可以注册账号和密码,然后进行登录。界面还是参考了当前流行的UI设计,左侧是一个logo,右侧输入账号、密码、验证码
(二)选择图片识别
系统允许选择图片文件进行识别,点击图片选择按钮图标选择图片后,显示所有动物识别的结果,可通过下拉选框查看单个动物的类别。本功能的界面展示如下图所示:
(三)视频识别效果展示
很多时候我们需要识别一段视频中的动物种类,这里设计了视频选择功能。点击视频按钮可选择待检测的视频,系统会自动解析视频逐帧识别动物,并将结果记录在右下角表格中,效果如下图所示:
2. 原理与数据集
(一)源码简介
基于人工特征的野生动物识别方法主要通过人工对野生动物图像中具有辨识度的特征信息进行提取,并通过特征比对的方式就可以对野生动物所属的类别进行识别判断。本文借助YOLOv5实现,下面介绍一下YOLOv5原理。
YOLOv5的调用、训练和预测都十分方便,并且它为不同的设备需求和不同的应用场景提供了大小和参数数量不同的网络。
(1)主干部分:使用了Focus网络结构,具体操作是在一张图片中每隔一个像素拿到一个值,这个时候获得了四个独立的特征层,然后将四个独立的特征层进行堆叠,此时宽高信息就集中到了通道信息,输入通道扩充了四倍。该结构在YoloV5第5版之前有所应用,最新版本中未使用。
(2)数据增强:Mosaic数据增强、Mosaic利用了四张图片进行拼接实现数据中增强,优点是可以丰富检测物体的背景,且在BN计算的时候可以计算四张图片的数据。
(3)多正样本匹配:在之前的Yolo系列里面,在训练时每一个真实框对应一个正样本,即在训练时,每一个真实框仅由一个先验框负责预测。YoloV5中为了加快模型的训练效率,增加了正样本的数量,在训练时,每一个真实框可以由多个先验框负责预测。
(二)数据集准备
这里我们使用的动物识别数据集,是从COCO和VOC数据集中抽取的包含鸟、猫、狗、马、羊等类别的图像数据,每张图片除包括类别标签外,还有一个标注的物体边框(Bounding Box)。组成的训练数据集包含1284张图片,验证集321张图片,测试集321张图片,共计1926张图片。
由于原数据集采用的是xml的标注文件格式,所以我们需要将xml格式修改为YOLOv5能够使用的标注格式,可通过以下代码进行转换:
打开具体的标注文件,你将会看到下面的内容,txt文件中每一行表示一个目标,以空格进行区分,分别表示目标的类别id,归一化处理之后的中心点x坐标、y坐标、目标框的w和h。
3. 基于YOLOv5的训练与识别
(一)训练过程
我们可以在终端输入如下命令进行训练,当然也可以直接点击train.py运行。
在深度学习中,我们通常通过损失函数下降的曲线来观察模型训练的情况。而YOLOv5训练时主要包含三个方面的损失:矩形框损失(box_loss)、置信度损失(obj_loss)和分类损失(cls_loss),在训练结束后,我们也可以在logs目录下找到生成对若干训练过程统计图。下图为博主训练动物类识别的模型训练曲线图。
一般我们会接触到两个指标,分别是召回率recall和精度precision,两个指标p和r都是简单地从一个角度来判断模型的好坏,均是介于0到1之间的数值,其中接近于1表示模型的性能越好,接近于0表示模型的性能越差,为了综合评价目标检测的性能,一般采用均值平均密度map来进一步评估模型的好坏。我们通过设定不同的置信度的阈值,可以得到在模型在不同的阈值下所计算出的p值和r值,一般情况下,p值和r值是负相关的,绘制出来可以得到如下图所示的曲线,其中曲线的面积我们称AP,目标检测模型中每种目标可计算出一个AP值,对所有的AP值求平均则可以得到模型的mAP值。
以PR-curve为例,可以看到我们的模型在验证集上的均值平均准确率为0.755。
(二)预测过程
执行predict.py得到的结果如下图所示,图中动物的种类和置信度值都标注出来了,预测速度较快。基于此模型我们可以将其设计成一个带有界面的系统,在界面上选择图片、视频或摄像头然后调用模型进行检测。
博主整个系统进行了详细测试,最终开发出一版流畅得到清新界面,就是博文演示部分的展示,完整的UI界面、测试图片视频、代码文件,以及Python离线依赖包(方便安装运行,也可自行配置环境),均已打包上传,感兴趣的朋友可以通过下载链接获取。
下载链接
若您想获得博文中涉及的实现完整全部程序文件(包括测试图片、视频,py, UI文件等,如下图),这里已打包上传至博主的面包多平台,见可参考博客与视频,已将所有涉及的文件同时打包到里面,点击即可运行,完整文件截图如下:
在文件夹下的资源显示如下,下面的链接中也给出了Python的离线依赖包,读者可在正确安装Anaconda和Pycharm软件后,复制离线依赖包至项目目录下进行安装,离线依赖的使用详细演示也可见本人B站视频:win11从头安装软件和配置环境运行深度学习项目、Win10中使用pycharm和anaconda进行python环境配置教程。
注意:该代码采用Pycharm+Python3.8开发,经过测试能成功运行,运行界面的主程序为runMain.py和LoginUI.py,测试图片脚本可运行testPicture.py,测试视频脚本可运行testVideo.py。为确保程序顺利运行,请按照requirements.txt配置Python依赖包的版本。Python版本:3.8,请勿使用其他版本,详见requirements.txt文件;
完整资源中包含数据集及训练代码,环境配置与界面中文字、图片、logo等的修改方法请见视频,项目完整文件下载请见参考博客文章里面,或参考视频的简介处给出:➷➷➷
完整资源下载:https://mbd.pub/o/bread/ZJaXk55s
参考视频演示:https://www.bilibili.com/video/BV1yT411r7kG/
离线依赖库下载链接:https://pan.baidu.com/s/1hW9z9ofV1FRSezTSj59JSg?pwd=oy4n (提取码:oy4n )
在Qt Designer中可以彻底修改界面的各个控件及设置,然后将ui文件转换为py文件即可调用和显示界面。如果只需要修改界面中的文字、图标和背景图的,可以直接在ConfigUI.config文件中修改,步骤如下:
(1)打开UI_rec/tools/ConfigUI.config文件,若乱码请选择GBK编码打开。 (2)如需修改界面文字,只要选中要改的字符替换成自己的就好。 (3)如需修改背景、图标等,只需修改图片的路径。例如,原文件中的背景图设置如下:
可修改为自己的名为background2.png图片(位置在UI_rec/icons/文件夹中),可将该项设置如下即可修改背景图:
结束语
由于博主能力有限,博文中提及的方法即使经过试验,也难免会有疏漏之处。希望您能热心指出其中的错误,以便下次修改时能以一个更完美更严谨的样子,呈现在大家面前。同时如果有更好的实现方法也请您不吝赐教。
关键词:
-
每日热闻!基于深度学习的动物识别系统(YOLOv5清新界面版,Python代码)
摘要:动物识别系统用于识别和统计常见动物数量,通过深度学习技术检测日常几种动物图像识别,支持图片、视频和摄像头画面等形式。在介绍算法
-
焦点播报:在婚姻里狼狈不堪的佟丽娅,凭什么能接替董卿,成为春晚主持人?
2012年快乐大本营上,佟丽娅一脸幸福地公开自己与陈思诚的恋情,还当众主动前去拥抱他。可此时的陈思诚却一脸茫然,他的反应看起来对于这样的
-
世界热讯:瑞银30亿瑞士法郎收购瑞信 能否避免全球银行业动荡?
瑞银30亿瑞士法郎收购瑞信能否避免全球银行业动荡?,瑞信,银行业,瑞士银行,瑞士法郎,瑞银集团,投资管理,财务会计,财务报表,财务状况,瑞士信贷集团
-
天天快资讯:93架驻场飞机、119条优选航线 国航3月26日起执行2023年夏秋季航班计划
四川经济网讯(记者李霁玥)3月20日,记者从国航西南分公司获悉,3月26日起,中国国航将执行2023年夏秋季航班计划,在成都地区,中国国航的国
-
即时看!歌剧《楚庄王》启动“二改二演” 修改打磨已历时十年
“三年不鸣,一鸣惊人;三年不飞,一飞冲天。”五年前曾在第三届中国歌剧节、国家大剧院歌剧节等重大演出活动中亮相并受到广泛好
-
今日热文:单边桥考试技巧_希望可以帮助到大家
欢迎观看本篇文章,小勉来为大家解答以上问题。单边桥考试技巧,希望可以帮助到大家很多人还不知道,现在让我们一起来看看吧!1
-
微头条丨周而不比和而不同这两句话出自_周而不比和而不同
1、意思:君子团结但是不搞帮派,小人搞帮派,但是不团结。2、子曰:君子周而不比,小人比而不周。3、出自:《论语为
-
全球聚焦:小学校园周边文具店“炸包” 隐藏着巨大的危险
在许多中小学校园周边,文具店是学生们经常光顾的乐园,不少价格低廉、新奇古怪的玩具层出不穷,然而,新奇有趣的玩法背后,却隐藏着巨大的危
-
环球即时:德卡尼奥:国米有机会在欧冠书写新的历史 米兰双雄都有欧战DNA
接受记者采访时,意大利名帅德卡尼奥谈到了国米在欧冠中的表现。德卡尼奥表示:“我觉得最近两个赛季,国米的阵容都足以赢意甲冠军。上赛季国
-
全球观点:恐吓的拼音的读法
一、关于恐吓的拼音的读法1、读法:[kǒnghè]二、关于恐吓的拼音的释义2、基础释义:以要挟的话或手段威胁人。3
-
看热讯:太阳报:因警方未对沃克进行处罚,妇女援助组织抨击了警方的决定
据《太阳报》消息,因警方没有就桃色事件对沃克进行处罚,妇女援助组织对警方进行了抨击。32岁的曼城后卫沃克在足总杯的比赛前接受了警方的询
-
天天最新:邮政挂号信是什么_挂号信是什么
1、挂号信在收寄和内部处理以至在投递时都要进行登记,以便万一投递不出去时,能够退给寄件人。2、挂号邮件就是邮局收寄邮件
-
【全球热闻】萨顶顶假唱话筒拿反是故意的吗_萨顶顶假唱话筒拿反
一、题文二、解答本文到此结束,希望对大家有所帮助。
-
【环球新视野】设备折旧费是什么意思_设备折旧费如何计算
1、一,按照《企业所得税法》的规定,固定资产的折旧年限为:(1)房屋、建筑物,为20年;(2)飞机、火车、轮船
-
当前热文:内蒙古天气短暂平静 下周寒潮将再次席卷全区
内蒙古天气短暂平静下周寒潮将再次席卷全区
-
世界新资讯:视频md5啥意思_视频md5是什么意思
1、视频md5意思就是视频通过md5的方式进行加密了。2、一般人不可以观看。本文就为大家分享到这里,希望小伙伴们会喜
-
今日关注:2023年3月18日河南省磷酸氢二钠价格最新行情预测
据中国报告大厅对2023年3月18日河南省磷酸氢二钠价格最新走势监测显示:2023年3月18日河南省磷酸氢二钠(含量98
-
今日讯!法拉第未来(FFIE.US)将于4月14日召开年度股东大会,并任命Li Han为董事
法拉第未来(FFIE US)周五表示,其2023年年度股东大会将于太平洋时间4月14日9:00在网上举行。法拉第未来还表示,MatthiasAydt辞去董事会成员职
-
每日焦点!iPhone16Flip渲染图:这才是库克带来的惊喜,感觉iPhone14买早了
安卓手机已经纷纷推出了自家的折叠屏手机,但是苹果却从未有过正式的计划推出。不过即便是这样,外媒还是曝光了不少有关苹果折叠屏手机的相关
-
环球即时看!签收单表格_签收单
1、先用EXCEL做一个签收单的表格大纲。2、写上标题“文件签收单”。3、写下副标题,如文件名、文件编号、签署人签名、接