基于Python的AI动物识别技术研究
-
开发语言:Python
-
数据库:MySQL
-
所用到的知识:Django框架
-
工具:pycharm、Navicat、Maven
系统功能实现
系统的登录模块设计
本次设计的AI动物识别系统为了保证用户的数据安全,设计了登录的模块,需要用户完成登录才可以在线使用该系统,此次设计的AI动物识别系统的登录页面如下所示:
系统的首页实现
在以管理员的角色完成登录之后,整个网站的首页页面展示如下图,在首页中会通过可视化的数据分析来对近七天的系统使用率进行一个折线图的展示,在功能菜单模块中,有图片的管理菜单、图片的识别菜单、图片的分析等功能,按照本次的设计可以满足对动物图片识别的需要。此次设计的首页如下所示
图片识别的功能实现
当进入到图片识别的功能中后,可以在主页面中查看到有已经上传的图片信息,当需要新增识别图片时,可以点击新增图片识别,再点击选择图片,打开电脑中存储的照片后点击确定,系统会自动对上传的图片中的动物进行识别,在短暂的识别后以英文或者中文反馈图片中的动物名称,如下图所示
图片管理功能的实现
在图片管理的功能中,可以看到所有系统中上传的图片信息,有上传的图片名称、识别用户的名称、识别的结果是什么动物等信息,以管理员的角色可以对上传的图片执行删除操作。如下图所示
图片分析功能的实现
在图片分析功能中,对当下系统中识别的动物图片的数量以柱状图进行展示,该模块主要是为了更好进行信息数据的统计,通过数据的统计来更好的统计计算机的图像识别量,也方便管理人员更好的掌握深度学习计算机的训练量,如下图所示
摘 要
随着硬件技术的不断完善,现在的图像获取技术、摄像技术都在不断的向更加方便快捷的方向发展,人们在日常生活中实现照片图像的获取非常的便捷,且获取的成本越来越低,数字化的相机等监控设备的应用也越来越广泛,在为科学研究、交通管理、物流监控等方面都着非常成熟的应用。而在面向自然生态领域中,通过利用图像监控技术来对自然界中的野生动物进行监控和记录,能够更好的了解到野生动物的生存现状,并且可以熟悉地区内动物的迁徙习惯,在对野生动物的保护方面、对于大自然的保障方面都能够起到非常好的作用。而现在在自然科学领域中,通过大量的相机使用可以采取海量的野生动物图像数据,通过对数据的整理可以总结出非常多的与野生动物生活习惯相关的数据,现在科学研究者所面临的问题是如何将图像数据快速的、低成本的转化为数据,从而为研究者提供可视化的数据分析。借助于神经网络的快速发展,现在通过计算机来对图像进行识别应用非常成熟,通过对计算机的训练,可以让计算机能够快速的进行图像的分类、识别、检测等功能实现。在动物的图像识别上,实际在当下的应用发展过程中仍然存在一些欠缺,特别是在图像监督标签、数据均衡处理等方式上存在一些研究上的缺陷,本次是通过利用OpenCV、yolov5技术, python语言等技术来进行一次AI动物识别技术的开发应用,通过本次的开发可以在专项用于动物识别方面建立一个专业化的应用平台,完成计算机对于动物的正确、快速的识别功能的实现。
关 键 词 ****:****深度学习;动物识别;AI;OpenCV
绪论
#### 研究背景
成像技术为全球科技的发展推进提供了强大的帮助。在科学研究中可以将拍摄的照片作为一项重要的研究工具应用于科学研究。而在自然科学的研究中,特别是在生态学以及动物学的研究领域,由于地球的面积广阔,气候条件制约等,通过图像方式来捕捉野生动物的数据成为了当下科学家们最为常用的一种方式,以图像捕捉来对复杂的自然系统进行研究,对于动物的迁徙以及濒危动物的保护等都可以起到很好的帮助作用。通过图像监控进行拍照捕捉,可以为科学家采集到海量的数据信息,为科学研究提供强大的数据源。在图像的拍摄上,摄影行业最早在十九世纪出现,经过多年的发展之后,现在通过拍摄获取的图像的分辨率越来越高,对焦也可以实现全自动化,而且在光线不好的情况下还出现了红外相机,方便夜间的图形捕捉,且现在的相机技术也在不断的从传统的实体相片向数字化的图像转型,在互联网技术的快速发展下,数字图像的传播速度也在不断的加快。但是在这种数字化图像爆炸式发展的当下,庞大的数据处理量也对数据分析带来了巨大的挑战,使得科学分析所需的数据需要等待图像的转换,并且在动物分析领域,摄像机不仅会拍摄动物,也会拍摄到其他的画面,在数据分析中如果依靠人工来进行数据的处理,则有很大的概率会将无效数据提供给后续研究,对于后续研究中的数据准确性会造成一定的误差,因此通过计算机自动的识别判断,从众多的照片中找到符合要求的内容是一项必须要进行研究和开发的内容。在动物研究上也是如此,需要通过AI动物识别来对动物进行确认,可以减少人工密集劳动,降低数据的错误率,提高工作效率。
-
研究现状
通过计算机来实现对动物的准确识别,是当下从事动物保护工作的从业者所必须要使用的一项关键技术,通过精准识别和有效管理可以方便管理者有效的实现对动物的保护和对生态平衡的维持。人们在对动物的保护工作的推动中,通过结合计算机技术、生态学原理等能够更好的扩大管理和保护的范围,实现更好的保护效果实现。野生动物的监督管理是掌握野生动物生存情况的最为主要的一种方式,通过对野生动物的图像拍摄能够更好的形成丰富的数据,为进一步提升野生动物保护提供必要的素材。现在对于野生动物的识别方式主要有两种,第一种是基于人工特征的识别方式,这种识别方式下主要是需要人工的来通过对动物的特征进行提取来实现对动物的辨识。这种通过特征对比的方式可以对动物特征进行分类,从而实现更好的识别效果达成。这种识别方式是基于传统的图像方式,通过BP神经网络等算法来实现图像的识别。第二种识别方式是基于深度学习来对野生动物进行识别,这种方式可以通过对计算机进行数据训练,让计算机可以模拟人类的思维来进行网络模型的建设,最终实现对图像的自主识别。这种基于深度学习的方式是当下应用最为成熟的一种方式,通过卷积神经网络技术来代替传统的图像处理方式,能够在识别的效果上更加准确,在动物的识别方面也有着非常好的识别效果。随着卷积神经的不断普及,现在以卷积神经来进行目标检测的应用案例不断推陈出新。李冠兵在其研究中,通过深度卷积神经网络技术对于特征目标进行了目标分类,通过长期反复的测试后证实卷积神经的特征表达能力比传统的人工特征方式有着更高的准确率,同比准确率提升约6%。
-
研究的意义
当下,对于动物的保护方面,全球的动物保护组织都在通过大量的图像数据获取来进行数据捕捉,能够更好的为动物研究、环境保护提供有力的数据支持。而在城市人口的不断增加,现在城市中的宠物数量、流浪动物数量都在不断的增长,通过对动物的图像认证也能够帮助走失的宠物快速的找到主人,也能够方便城市市容管理部门对城市中的流浪动物进行有效的管理。整体上,通过深度学习技术来完成对动物的识别是一种非常有效的识别方式,可以减轻人工的特征识别压力,更好的完成识别的准确性,在一些特征不明显的情况下通过这种识别的方式可以更好的完成快速的动物识别,为人们的工作提供必要的数据服务支持
深度学习的算法研究
动物图像数据集
在完成AI动物识别之初,首先需要通过图像数据集的开发来为算法提供数据样本。这种数据集最早创始于美国,mnist最为一个手写数据库,其中包含了超过6万个可训练样本。著名的ImageNet是现在覆盖种类最广、包含图像最多的数据集,成为了当下的一个标准型的数据库集。在动物图像的识别上,现在也有很多专业的动物图像数据集,包括了对于鱼类、犬类的专业数据集。这些数据集的获取是通过摄像机来捕捉、存储以及分析最终形成的,像fish4knowledge现在已经对23类不同的鱼类进行了信息捕捉。AWA对于50余种动物进行了图像的获取形成了图像公共资源。
卷积神经网络
深度学习中,卷积神经网络(CNN)是其最为核心的概念之一。通过卷积神经网络可以在计算机训练过程中实现分级抽象表示,这种模型可以在目标检测、图像识别等方面起到非常好的作用。卷积神经分为了多个不同的网络层,由卷积、激活、池化等不同的层级来共同实现卷积的运算。卷积层是整个卷积神经网络的核心内容,通过该层可以实现对图像中的特征提取,能够通过函数运算来实现矩阵相乘,卷积核越多则图像特征的提取越明显。在池化层可以以池化操作的方式来实现网络模型的缩小,可以通过该层来实现对特征的整合,并且对图片的尺寸进行缩小,最终达到降低模型参数、实现特征降维的作用。在全连接层中,该层是卷积神经网络中的最后一个层级,该层级可以作为分类器来将最终分析出的特征进行节点的连接,使得特征与特征之间形成紧密的联系,可以通过线性运算实现参数数量的提升。
基于深度学习的野生动物识别
将深度学习用于野生动物的识别中,目前比较流行的数据集有ImageNet、open images、MS-COCO等,这些数据集大多是在互联网上进行数据的收集,再由研究者进行手动的审查。这种方式会存在以下的一些问题:
- 在照片的拍摄过程中,被拍摄主体始终处于居中位置,并且画面明亮与实际在野生动物图像捕捉中利用相机陷阱拍摄差距较大;
- 当前的动物数量巨大,通过数据集来进行动物的识别主要是识别常见的动物,而一些不常见的动物则无法在线识别;
- 该技术的后端为人工审核,在数据的筛选上具有一定的倾向性,而对于自然界的动物而言这种图像分布的方式不够均衡,有些物种会比其他物种更加容易被拍摄和识别
YOLO系列算法
Yolo算法是一种能够提升目标检测中的检测效率的一种算法,这种算法最早出现与2016年。该算法最早是一种单阶段的目标算法,是将24个卷积层与2个全连接层相连接构成,这种算法能够通过将图像按照X*X的方式进行网格化处理通过网格来进行目标的预测,这种算法可以将特征的提取与目标分类等在同一个卷积网络中进行运行的实现,从而优化了图像特征提取算法,提高了检测率的同时也提升了检测的效率。而YOLO算法也经过不断的迭代更新,在目标定位准确率上、平均召回率的控制商实现了不断的优化,到现在的YOLO5算法已经有了明显的算力提升,并且实现了很好的检测效果
需要源代码或者二次开发的,请联系