《基于小型训练集的深度学习迁移的食用毒蘑菇机器视觉识别系统》论文笔记

链接:Machine Vision Recognition System of Edible and Poisonous Mushrooms Using a Small Training Set-Based Deep Transfer Learning | IEEE Conference Publication | IEEE Xplore

本研究提出了一种对蘑菇是否可食用的分类方法。随着蘑菇慢慢流行,对这些蘑菇进行分类将是至关重要的,因为在蘑菇中发现的一些有毒蘑菇可以杀死一个人或给他们一个胃痛和其他影响的坏病例。使用YOLOv3模型创建一个可以对这些蘑菇进行分类的模型。所选模型的 mAP 分数为 96.68%,可以检测用于测试模型的大多数输入。该模型还能够实现90%的准确度,因为它能够在测试时正确检测20张照片中的18张。这个模型可以用来确保在房屋或公园里不会有任何有毒的蘑菇,孩子可以捡起来吞咽,而不会被任何成年人注意到。

到2050年,世界人口将超过91亿人,高于目前的91亿人,占34%。正因为如此,世界人口将不得不生产70%以上的食物,对富含蛋白质的食物(如肉类,鸡蛋和牛奶)的需求将激增。另一方面,农业经营是污染和废物产生的主要来源(特别是在农田和牧场)[1]。与此同时,由于无数的环境和社会经济因素,以及未经调整的农业生态系统和土地管理不善,在过去几年中,相当一部分农田被遗弃。这导致土壤退化、频繁洪水、过度开发和生产力损失。这种情况造成大量农田损失,造成严重的环境和社会影响,以及农业部门经济效率的下降,突出表明需要采取创新措施来恢复边缘和废弃地区。在这一点上,农业食品生产链应专注于其他现成的补充资源,以拯救群众免受饥荒,为农民的经济福祉做出贡献,增加边缘土地,同时保护环境[2]。

联合国在2015年提出的目标之一是通过提高当地农民的农业产量和收入,以及支持有助于保护生态系统的可持续和有弹性的农业技术,消除所有人的饥饿和贫困[3]。农业固体可回收垃圾可以通过蘑菇种植转化为健康产品;事实上,与蘑菇种植相关的最重要的好处是它可以将农业和其他有机废物转化为健康商品。除了是一种环保方法外,这种废物生物转化过程还是生产富含蛋白质的食物的重要组成部分,如果实施得当,可以促进全球粮食安全,并在发展中国家提供适销对路的产品[4]。它们现在也被公认为是很好的素食替代品,因为它们是低钠,低脂肪,富含必需矿物质和抗氧化剂。例如,利用最少的材料和低技术含量的方法,蘑菇种植可以在一小块土地上相对容易地完成,这些土地可以由单户或小人口管理,为许多人提供丰富的工作机会,并有助于提高边缘地区的利用率[5]。蘑菇食品业务的发展也可以通过重新启动国内商品来帮助具有特定蘑菇专业的国家摆脱进口[6]。

蘑菇也是一个很好的营养选择,但有毒的蘑菇可能会让你生病,甚至杀死你。大多数有毒蘑菇会产生恶心,呕吐,胃部不适和腹泻[7]。蘑菇中毒对游客来说是一个不常见但可能致命的问题;每年,有数千例蘑菇中毒病例被记录在案。根据疾病控制司流行病学局在2013年至2017年期间进行的一项调查,平均每年分别有1,200人和4人因食用有毒蘑菇而患病和死亡[8]。

地球上有数百种蘑菇,其中大约一半是致命的。因为有毒蘑菇太多了,其中一些可能会杀死一个人,所以建议一个人不要拿起蘑菇,除非他们非常确定它不是有毒的[9]。传统上,人们会利用蘑菇的一些特征来确定它们是否可食用。对于对蘑菇知之甚少或了解有限的人来说,这将是困难的,因为有些特征很难辨别,而一些致命的蘑菇与食用蘑菇有一些相似之处。在当今时代,研究人员正在利用不同的算法来更容易地对食用蘑菇进行分类。Hakem Alameady的研究[10]谈到了利用多层感知对姬松茸和Lepiota家族中的有毒蘑菇进行分类的研究。该研究采用了这种算法来识别蘑菇的图像,无论它是否可食用。

在这项研究中,yolov3被命令检测可食用和有毒的蘑菇。该研究将使用80%的数据集来形成模型,其余20%作为测试数据。数据集在食用蘑菇和有毒蘑菇之间平均分布。该研究的整个结构将在以下部门进一步讨论。

A. 数据集集合和预处理

本研究中使用的数据集来自名为Kaggle的网站。上面的4张照片是食用蘑菇,而后面的4张照片是有毒蘑菇。该数据是两名学生的汇编数据集,作为其研究项目的一部分。该数据最初有4组关于4种不同种类真菌的数据。在这项研究中,4套中只有2套被使用。使用的数据是可食用的蘑菇孢子果和有毒的蘑菇孢子果。从不同的图像中选择了300张图像并用于本研究。在300张图像中,50%的图像是可食用的变体,而另外50%的图像是为有毒的图像保留的。然后分离出每个蘑菇的20%的图像,并将其用作验证数据集。剩下的80%是将用于创建用于蘑菇分类的模型的数据集。

B. 数据集注释

蘑菇的所有300张图像都使用称为labelImg的图像注释工具进行注释。矩形边界框用于注释蘑菇。蘑菇的盖子为每个不同的蘑菇注释。对图像进行注释后,将创建一个新的 XML 文件,该文件将包含蘑菇的注释部分的坐标,并以 pascalvoc 格式写入。如图3所示,上图显示了毒蘑菇的样本,除了注释后生成的XML文件外,下图是食用蘑菇的样本,旁边是其注释后产生的XML。

C. 深度学习算法

本研究中使用的深度学习算法是yolov3算法。如果您正在视频,实时源或图像中查找某个对象,YOLOv3(您只看一次,版本3)是适合您的实时对象识别技术。为了检测一个项目,YOLO采用深度卷积神经网络,这些神经网络已经从其他深度卷积神经网络中学习了特征。Joseph Redmon和Ali Farhadi [11]参与了YOLO的前三个版本。

YOLO采用独特的方法来解决对象检测问题。它仅通过网络发送整个图像一次。虽然YOLOv3的速度要快得多,并且精度也差不多,但SSD是另一种通过深度学习网络发送图像一次的对象检测方法。在 M40、TitanX 或 1080 Ti GPU 上,YOLOv3 产生的结果比实时更快 [12]。

首先,YOLOv3算法将照片分成网格。特定数量的边界框(也称为锚框)在当前分类中得分较高的事物周围的位置由每个网格单元预测。每个边界框都有一个置信度分数,该分数显示它认为预测应该有多准确,并且每个边界框只包含一个项目。边界框是通过对原始数据集[11]中地面实况框的尺寸进行分组来构建的,以发现最常见的形状和大小。

研究人员选择YOLOv3作为深度学习算法,因为它被认为是平均平均精度(mAP)方面最快,最准确的算法,如图4所示。它的运行速度明显快于具有相同方法的其他检测算法[16] – [24]。

D. 模型评估

对于这项研究,使用从300张图像中提取的训练数据集生成了17个模型。为了验证要使用的模型是否准确,使用不同模型的 mAP(平均精度精度)分数来比较不同模型的结果。mAP分数是量化不同模型准确性的一种方式,可以按准确性对每个模型进行排名。

AP(平均精度)测量通常用于评估物体检测器(如 Faster R-CNN、SSD 等)的准确性。对于范围为 0 到 1 的召回值,计算平均精度值。AP 是使用以下公式推导的。循环整体精度/召回,然后将当前精度相乘的循环决定了当前召回和下一次召回之间的差异。为简单起见,AP 是每个阈值处的精度之和乘以召回率增加的权重 [13]。

这是 mAP,它是所有不同类型的 AP (1) 的平均值。平均精度或 mAP 分数的计算方法是:获取所有类和/或总体 IoU 阈值的平均 AP,并将其除以总 IoU 阈值 [14]。

E. 模型推理和测试

在本研究中,创建了一个图形用户界面来获取输入并为用户提供输出。GUI通过使用python进行编码,并使用anaconda IDE,PyQt5和ImageAi检测库。GUI 还显示可以检测到的文件。GUI 接受的文件是图像、实时流文件和预先录制的视频。GUI 使用在创建模型时生成的 JSON 文件和具有最佳 mAP 结果的模型来检测用户将输入的文件中的蘑菇。

在测试研究时,研究人员从互联网上发现了不同的蘑菇照片,因为在研究人员的地方很难找到蘑菇。下载蘑菇的随机照片和视频,并确保不同的下载文件与用于形成模型的数据集中的任何照片都不相同。对于实时流,监视器上显示两个不同蘑菇的照片,并且网络摄像头将鼠标悬停在所述图像上。

第三节.结果和讨论

本节中讨论了模型的训练、验证和测试。还显示和讨论了模型训练的结果。然后对模型进行测试,测试结果也显示在此处。

A. 培训和验证结果

图5显示了所制作的每个纪元的损失。蓝线图显示训练损失,而绿线显示验证损失。总共制作了24个纪元,这些纪元的经过时间为四个小时。每次训练的平均时间为623.5秒,每步1秒。图 5 还显示,随着训练的进行,每个模型都会逐渐减少。

如图 5 所示,第一次训练的训练损失为 36.4558%,验证损失为 18.9796%。在下一次训练中,随着训练损失下降到13.0346%,验证损失下降到5.0735%,因此突然下降。训练损失的趋势仍在继续,因为它继续缓慢而肯定地下沉。仍然有几次训练损失经验,但它只增加几个小数位,几乎不明显。

验证损失不能说同样的话,因为验证损失有一点岩石,因为它在某些点上下降,但在其他点上也上升。如图 5 所示,验证损失的初始移动是下降,然后以显着的方式上升,但突然再次下降。它重复此模式并以上升结束,因为它的结束值为7.9974%。

图6显示了每个纪元的不同yolo损失和验证yolo损失。图形的蓝色表示不同的yolo层,而紫色表示验证yolo层。Yolo层的每个层都以相对较高的值开始,但随着训练的进行,这些值会稳步下降,直到第24个纪元的训练结束。对于验证yolo层的进展,可以注意到同样的事情。验证 yolo 层从高值开始,但随着训练的进行,值会变差,并以其来源的较低值结束。

B. 模型评估

图7显示了不同模型的结果以及这些模型的准确性相互比较。为了量化每个模型的准确性,每个模型都使用mAP。每个模型的mAP以百分比显示,并相互比较,以获得有毒和食用蘑菇检测的最佳模型。

从图7可以看出,第一个模型的mAP值远低于其他模型。模型的 mAP 会随着模型获得更多的训练而不断上升,从接下来的几个模型中可以看出。当它达到第10个模型时达到峰值,然后它减少一点。然后它永远不会超过第10个模型,但它几次接近峰值mAP。实现的最低mAP是从第一个模型开始的,其mAP值刚刚达到10.43%。达到的最高模型是第 10 个模型,其中模型能够达到 96.68% 的值,仅比第 24 个模型(值为 96.22%)高几个小数。因此,选择的模型是第10个模型,并且该模型被合并到GUI制作中。

10千模型将与 JSON 文件一起合并到用于检测的 GUI 的制作中。在此 GUI 中,可以看到可以接受的输入是静止图像、预先录制的视频和实时源。GUI将充当界面,用户将从用户那里获得输入,并使用模型来检测图像是否是有毒蘑菇或食用蘑菇。

C. 模型的推理和测试

使用图8所示的GUI,GUI可以接收三种输入。GUI在接收到三个输入中的任何一个后,将给出照片的输出(如果图像是输入),或者如果输入是预先录制的视频和实时源,则提供视频的输出,以及一个CSV文件,该文件将向他们显示图像或视频中的输出。对于图像和视频输出,图像和视频将具有一个边界框,用于显示检测到的图像。

使用创建的模型测试了20张图像,模型能够正确猜测其中的18张图像。使用精度公式,可以在模型的成功中看到90%的精度。

在实时源视频中,网络摄像头用于录制 10 秒的视频。然后,该文件将被视为与视频一样,它将被逐帧检测到,并在模型认为有毒或可食用的蘑菇上显示一个边界框。然后,结果将显示在CSV文件中,该文件将显示每个帧的输入。图 9 显示了一个示例,其中在桌面上显示了一个蘑菇,系统检测到这一点,并在其上放置一个边界框,以检测桌面上显示哪种蘑菇。

第四节.结论

随着蘑菇消费越来越受欢迎,人们现在被蘑菇狩猎的想法所吸引。这带来了危险,因为这个世界上大约有一千种和更多的蘑菇,其中一半以上的蘑菇对我们人类有毒。告诉哪种蘑菇是有毒的,哪种蘑菇可以像大多数这些蘑菇一样坚硬,几乎具有相似的特征,并且人们一致认为,除非一个人100%确定蘑菇是可食用的,否则人们不应该触摸或捡起蘑菇。作为回应,研究人员使用蘑菇的汇编数据集来生成一个图像检测模型,该模型可以检测蘑菇是否可食用。YOLOv3算法用于为本研究制作模型。总共进行了10次训练,以达到0.9668的峰值mAP。

《基于小型训练集的深度学习迁移的食用毒蘑菇机器视觉识别系统》论文笔记相关推荐

  1. 论文笔记之Understanding and Diagnosing Visual Tracking Systems

    Understanding and Diagnosing Visual Tracking Systems 论文链接:http://dwz.cn/6qPeIb 本文的主要思想是为了剖析出一个跟踪算法中到 ...

  2. 《Understanding and Diagnosing Visual Tracking Systems》论文笔记

    本人为目标追踪初入小白,在博客下第一次记录一下自己的论文笔记,如有差错,恳请批评指正!! 论文相关信息:<Understanding and Diagnosing Visual Tracking ...

  3. 论文笔记Understanding and Diagnosing Visual Tracking Systems

    最近在看目标跟踪方面的论文,看到王乃岩博士发的一篇分析跟踪系统的文章,将目标跟踪系统拆分为多个独立的部分进行分析,比较各个部分的效果.本文主要对该论文的重点的一个大致翻译,刚入门,水平有限,如有理解错 ...

  4. 目标跟踪笔记Understanding and Diagnosing Visual Tracking Systems

    Understanding and Diagnosing Visual Tracking Systems 原文链接:https://blog.csdn.net/u010515206/article/d ...

  5. 追踪系统分模块解析(Understanding and Diagnosing Visual Tracking Systems)

    追踪系统分模块解析(Understanding and Diagnosing Visual Tracking Systems) PROJECT http://winsty.net/tracker_di ...

  6. ICCV 2015 《Understanding and Diagnosing Visual Tracking Systems》论文笔记

    目录 写在前面 文章大意 一些benchmark 实验 实验设置 基本模型 数据集 实验1 Featrue Extractor 实验2 Observation Model 实验3 Motion Mod ...

  7. Understanding and Diagnosing Visual Tracking Systems

    文章把一个跟踪器分为几个模块,分别为motion model, feature extractor, observation model, model updater, and ensemble po ...

  8. CVPR 2017 SANet:《SANet: Structure-Aware Network for Visual Tracking》论文笔记

    理解出错之处望不吝指正. 本文模型叫做SANet.作者在论文中提到,CNN模型主要适用于类间判别,对于相似物体的判别能力不强.作者提出使用RNN对目标物体的self-structure进行建模,用于提 ...

  9. ICCV 2017 UCT:《UCT: Learning Unified Convolutional Networks forReal-time Visual Tracking》论文笔记

    理解出错之处望不吝指正. 本文模型叫做UCT.就像论文题目一样,作者提出了一个基于卷积神经网络的end2end的tracking模型.模型的整体结构如下图所示(图中实线代表online trackin ...

  10. CVPR 2018 STRCF:《Learning Spatial-Temporal Regularized Correlation Filters for Visual Tracking》论文笔记

    理解出错之处望不吝指正. 本文提出的模型叫做STRCF. 在DCF中存在边界效应,SRDCF在DCF的基础上中通过加入spatial惩罚项解决了边界效应,但是SRDCF在tracking的过程中要使用 ...

最新文章

  1. 06 回归算法 - 损失函数、过拟合欠拟合
  2. jQuery版AJAX简易封装
  3. Java NIO系列教程(一) Java NIO 概述
  4. CSS的Grid网格布局
  5. 分享一些user-agent(移动端和PC端都有)
  6. 程序员数学基础【七、等比数列 棋盘麦粒】
  7. 【转】理解字节序 大端字节序和小端字节序
  8. 警示!国基金评审过程“打招呼”被通报批评,撤销已资助项目!
  9. 语义分割最新指南2019版
  10. Flutter 列表踩坑
  11. 如何在Linux系统上刷抖音
  12. Firemonkey ListView 点击事件
  13. 100台电脑无盘服务器配置,100台网吧无盘系统配三星840PRO方案解读
  14. The Things Network LoRaWAN Stack V3 学习笔记 2.6 新增一个 CN470 子频段
  15. 网站搭建教程(怎么建网站详细步骤)
  16. 802.11a/b/g/n/ac速率表--防迷路,通过博客收藏
  17. javascript基础常识问答(八)
  18. CTFshow-萌新
  19. python之arp欺骗
  20. 枚举,随机数模型,函数功能分解---扔骰子随机数游戏

热门文章

  1. 四 微信公众号 基础参数说明
  2. 学习日记——8 20
  3. 红米NOTE5 ROOT教程
  4. OpenCV基础入门【C++及python语言】
  5. mac电脑软件卸载不掉 如何用CleanMyMac X彻底删除?
  6. vue2练习五个小例子笔记
  7. CSS让行内元素撑满整个视口
  8. 微信中直接下载APK
  9. 【Linux】CentOS7设置笔记本合盖不休眠
  10. 切面(@Aspect)和事务(@Transactional)莫名失效:`is not eligible for getting processed by all BeanPostProcesso