基于InceptionV2/InceptionV3/Xception不同参数量级模型开发构建中草药图像识别分析系统,实验量化对比不同模型性能

最近正好项目中在做一些识别相关的内容,我也陆陆续续写了一些实验性质的博文用于对自己使用过的模型进行真实数据的评测对比分析,感兴趣的话可以自行移步阅读即可:

《移动端轻量级模型开发谁更胜一筹,efficientnet、mobilenetv2、mobilenetv3、ghostnet、mnasnet、shufflenetv2驾驶危险行为识别模型对比开发测试》

《图像识别模型哪家强?19款经典CNN模型实践出真知【以眼疾识别数据为基准,对比MobileNet系列/EfficientNet系列/VGG系列/ResNet系列/i、xception系列】》

《基于轻量级卷积神经网络模型实践Fruits360果蔬识别——自主构建CNN模型、轻量化改造设计lenet、alexnet、vgg16、vgg19和mobilenet共六种CNN模型实验对比分析》

《基于轻量级模型GHoshNet开发构建眼球眼疾识别分析系统,构建全方位多层次参数对比分析实验》

本文紧接前面三篇测评分析博文:

《基于EfficientNet(B0-B7)全系列不同参数量级模型开发构建中草药图像识别分析系统,实验量化对比不同模型性能》

《基于MobileNet(v1-v3)全系列不同参数量级模型开发构建中草药图像识别分析系统,实验量化对比不同模型性能》 

《基于VGG(vgg13/vgg16)/ResNet(resnet34/resnet50)不同参数量级模型开发构建中草药图像识别分析系统,实验量化对比不同模型性能》

前面两篇测评分析的博文主要是使用EfficientNet全系列网络模型和MobileNet全系列模型来开发构建的对比实验,相较之下都偏向于轻量级的网络模型,第三篇博文则选择的是在“重量级”领域里面比较经典的VGG和ResNet模型,本文选择的Inception和Xception系列的模型则是介于轻量级网络模型和重量级网络模型之间的体量,实验同样是以基准数据集【中草药图像数据集】为例,开发构建不同参数量级的模型,之后在同样的测试数据集上进行评测对比分析。

数据集中共包含23种类别数据,清单如下:

aiye
baibiandou
baibu
baidoukou
baihe
cangzhu
cansha
dangshen
ezhu
foshou
gancao
gouqi
honghua
hongteng
huaihua
jiangcan
jingjie
jinyinhua
mudanpi
niubangzi
zhuling
zhuru
zhuye
zicao

简单看下部分数据实例:

Inception模型是一种深度卷积神经网络,其核心思想是通过增加网络深度与宽度并减少参数的方法解决问题,并提高模型精度。以下是Inception模型的构建原理:

Inception v1:Inception v1模型的核心结构是将多个并行卷积层(包括1x1、3x3和5x5)和池化层堆叠在一起。这种设计可以增加网络的宽度和深度,同时减少参数的数量。此外,Inception v1在3x3、5x5的卷积核与最大池化层后分别添加了1x1的卷积核,降低维度,这有助于减少特征图的厚度,并增加非线性变化。
Inception v2:Inception v2模型在保持Inception v1的基本结构的同时,通过使用两个连续的3x3卷积层代替5x5的卷积层,减少了计算量。此外,Inception v2还引入了Batch Normalization层,这有助于提高模型的泛化能力。
Inception v3:Inception v3模型进一步改进了Inception v2的设计。在网络的内部,Inception v3使用了Inception模块,该模块可以在不同尺度上进行卷积操作,从而增强了网络对不同尺度特征的感知能力。此外,Inception v3还将卷积核进行分解,将NxN分解为1xN与Nx1,进一步降低参数数量与计算量。
Inception模型通过引入并行卷积层、使用较小的卷积核、引入Batch Normalization层以及分解卷积核等方法,提高了模型的精度和效率。不同的Inception变体(如Inception v1、Inception v2和Inception v3)具有不同的改进和特点,适用于不同的应用场景。

由于时间原因本文仅选取了Inception v2和Inception v3两款更新的模型进行对比分析实验,感兴趣的话可以自行对Inception v1进行评测分析。

Xception模型是基于Inception模型的改进,通过引入深度分离卷积(depthwise separable convolution)操作来提高计算效率和准确性。以下是Xception模型的构建原理:

输入层:接收输入数据。
初始卷积层:使用标准的卷积操作来提取初始特征。
Xception模块:Xception模型的核心部分,由若干个Xception模块组成。每个Xception模块包含多个深度分离卷积操作。每个深度分离卷积操作由两个部分组成:深度卷积和逐点卷积。深度卷积只关注输入数据的通道维度,而逐点卷积则负责将通道维度的特征映射转换为空间维度的特征映射。这种分解操作能够减少计算量和参数数量,同时提高模型的准确性。
全局平均池化层:对特征图进行平均池化,将其转换为固定大小的特征向量。
全连接层:将特征向量映射到类别概率。
输出层:输出最终的预测结果。
Xception模型通过引入深度分离卷积操作,减少了计算量和参数数量,提高了模型的准确性和效率。这种设计使得Xception模型在许多计算机视觉任务中表现出优异的性能,特别是在大规模数据集上。

训练集占比75%,测试集占比25%,所有模型按照相同的数据集配比进行实验对比分析,计算准确率、精确率、召回率和F1值四种指标。结果详情如下所示:

{"InceptionV2": {"accuracy": 0.9440745672436751,"precision": 0.9435216621921879,"recall": 0.9468699233421537,"f1": 0.9439142835792981},"InceptionV3": {"accuracy": 0.8841544607190413,"precision": 0.8825698119466523,"recall": 0.8870460205081474,"f1": 0.8823524188634222},"Xception": {"accuracy": 0.9214380825565912,"precision": 0.9187727980921828,"recall": 0.9226904977653273,"f1": 0.919376200605818}
}

简单介绍下上述使用的四种指标:

准确率(Accuracy):即分类器正确分类的样本数占总样本数的比例,通常用于评估分类模型的整体预测能力。计算公式为:准确率 = (TP + TN) / (TP + TN + FP + FN),其中 TP 表示真正例(分类器将正例正确分类的样本数)、TN 表示真负例(分类器将负例正确分类的样本数)、FP 表示假正例(分类器将负例错误分类为正例的样本数)、FN 表示假负例(分类器将正例错误分类为负例的样本数)。

精确率(Precision):即分类器预测为正例中实际为正例的样本数占预测为正例的样本数的比例。精确率评估分类器在预测为正例时的准确程度,可以避免过多地预测假正例。计算公式为:精确率 = TP / (TP + FP)。

召回率(Recall):即分类器正确预测为正例的样本数占实际为正例的样本数的比例。召回率评估分类器在实际为正例时的识别能力,可以避免漏掉过多的真正例。计算公式为:召回率 = TP / (TP + FN)。

F1 值(F1-score):综合考虑精确率和召回率,是精确率和召回率的调和平均数。F1 值在评估分类器综合表现时很有用,因为它同时关注了分类器的预测准确性和识别能力。计算公式为:F1 值 = 2 * (精确率 * 召回率) / (精确率 + 召回率)。 F1 值的取值范围在 0 到 1 之间,值越大表示分类器的综合表现越好。

为了能够直观清晰地对比不同模型的评测结果,这里对其进行可视化分析,如下所示:

从实验对比分析结果来看:Inceptionv2取得了最优的效果,Xception模型的效果次之,而Inceptionv3的效果最差,不过相较于前面其他系列的模型,这三款模型的效果都是表现很不错的了。

这个分析评测结果仅供参考,大家在实际项目开发中可以参考这组实验,不过也可以基于自己的数据集开发全系列的模型来综合对比选取最优的模型作为生产环境的模型。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/651992.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ubuntu 22 安装 node,npm,vue

1:安装 nodejs sudo apt update curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - sudo apt update && sudo apt install -y nodejs node -v 2:安装npm sudo npm install n -g npm -v 3:安装vite npm install vite -g 4:运行vue 把项目拷贝到…

大语言应用技术原理

大模型应用技术原理 RAG 向量数据库 对比 选型标准 开源vs.闭源vs. 源码可见客户端/SDK语言托管方式 self-hosted/on-premise redis,pgvector,milvusmanaged/cloud-native zilliz,pineconeembeded+cloud-native chroma,lanceDBself-hosted+cloud-native vald,drant,weaviate,vs…

OpenAI正式推出GPT商店 ChatGPT团队订阅服务一并推出

2024年1月11日消息,据外媒报道,如上周在给开发者的邮件中所宣布的一样,因ChatGPT而名声大噪的人工智能公司OpenAI,在本周正式推出了GPT商店,供用户分享和发现个性化的ChatGPT,同时他们也推出了面向各种不同…

git 基础操作

由于最近svn停止使用,github或gitlab等费用较高,所以最近尝试在本地用 git 现在本地进行代码管理。现总结一下 git 常用的操作命令和本地repository的创建步骤。 git init //初始化git status //查看文件夹状态git add . //添加文…

用C语言实现贪吃蛇游戏!!!

前言 大家好呀,我是Humble,不知不觉在CSND分享自己学过的C语言知识已经有三个多月了,从开始的C语言常见语法概念说到C语言的数据结构今天用C语言实现贪吃蛇已经有30余篇博客的内容,也希望这些内容可以帮助到各位正在阅读的小伙伴…

在 Redis 中使用 Lua 脚本执行复杂操作和事务

在 Redis 中使用 Lua 脚本执行复杂操作和事务 Redis 作为一个高性能的键值存储数据库,它的强大功能远不止于简单的数据存储和检索。Redis 自 2.6 版本起引入了对 Lua 脚本的支持,这意味着你可以在 Redis 服务器上直接运行 Lua 脚本。这一功能为执行复杂…

前端JavaScript篇之JavaScript 中如何进行隐式类型转换、加号(+)操作符什么时候用于字符串的拼接?为什么会有BigInt的提案?

目录 JavaScript 中如何进行隐式类型转换加法操作符&#xff08;&#xff09;比较操作符&#xff08;、>、<&#xff09;对象的隐式转换ToPrimitive 方法ToPrimitive 方法的作用ToPrimitive 方法的规则总结 加号&#xff08;&#xff09;操作符什么时候用于字符串的拼接&…

雨云VPS搭建PalWorld服务器,幻兽帕鲁开服联机教程(Windows),0基础保姆级教程

雨云VPS用Windows系统搭建幻兽帕鲁私服&#xff0c;PalWorld开服联机教程&#xff0c;零基础保姆级教程&#xff0c;本教程使用一键脚本来搭建幻兽帕鲁服务端&#xff0c;并讲了如何配置游戏参数&#xff0c;如何更新服务端等。 最近这游戏挺火&#xff0c;很多人想跟朋友联机…

实体关系抽取与属性补全的技术浅析

目录 前言1. 实体关系抽取2 实体关系抽取的方法2.1 基于模板的方法2.2 基于监督学习的关系抽取2.3 基于深度学习的关系抽取2.4 基于预训练语言模型的关系抽取 3 属性补全3.1 属性补全任务简介3.1 抽取式属性补全3.2 生成式属性补全 4 未来发展趋势结语 前言 在信息爆炸时代&am…

Python学习之路-Django基础:工程搭建

Python学习之路-Django基础:工程搭建 环境安装 创建虚拟环境 mkvirtualenv django_1.11.10 -p python3安装Django 使用Django 1.11.10版本 pip install django1.11.10创建工程 在使用Flask框架时&#xff0c;项目工程目录的组织与创建是需要我们自己手动创建完成的。在dj…

用甘特图有效管理多个项目进度

当公司或组织同时承担多个项目时,合理规划各项目的时间节点与资源分配对确保高效完成至关重要。采用甘特图可以直观地展示多个项目的时间进程、关键里程碑以及资源分配情况,便于从宏观层面全面把控各项目的动态。 在线甘特图软件 zz-plan.com 提供了非常强大的时间轴规划功能,支…

栈的基础知识

一、栈的定义与特点 栈&#xff1a;只能在表的一端&#xff08;栈顶&#xff09;进行插入和删除运算的线性表 逻辑结构 与线性表相同&#xff0c;仍为一对一关系 存储结构 用顺序栈和链栈存储均可&#xff0c;但顺序栈更常见 访问结点时依照后进先出&a…

漏洞复现-万户OA text2Html 任意文件读取(附漏洞检测脚本)

免责声明 文章中涉及的漏洞均已修复&#xff0c;敏感信息均已做打码处理&#xff0c;文章仅做经验分享用途&#xff0c;切勿当真&#xff0c;未授权的攻击属于非法行为&#xff01;文章中敏感信息均已做多层打马处理。传播、利用本文章所提供的信息而造成的任何直接或者间接的…

vue父子组件传值问题

在Vue中&#xff0c;父子组件之间的数据传递可以通过props和事件来实现。 使用props传递数据&#xff1a;父组件可以通过props将数据传递给子组件&#xff0c;子组件可以在模板中直接使用这些数据。父组件可以通过v-bind指令将数据绑定到子组件的props上。例如&#xff1a; v…

初识Cargo-Rust的包管理器

Cargo 是Rust的 包管理器。Cargo 会下载您Rust 的包依赖项&#xff0c;编译包&#xff0c;生成可分发的包&#xff0c;并将它们上传到crates.io - Rust 社区的包注册表。 安装的方法 安装 Rust 和 Cargo 获得 Cargo 的最简单方法是使用rustup脚本&#xff0c;获取当前稳定版本…

Cesium介绍及3DTiles数据加载时添加光照效果对比

一、Cesium简介 Cesium原意是化学元素铯&#xff0c;铯是制造原子钟的关键元素&#xff0c;通过命名强调了Cesium产品专注于基于时空数据的实时可视化应用。熟悉GIS开发领域的读者都知道&#xff0c;Cesium是一个用于创建3D地理空间应用程序的开源JavaScript库&#xff0c;它允…

《SPSS统计学基础与实证研究应用精解》视频讲解:数据缺失值处理

《SPSS统计学基础与实证研究应用精解》4.12 视频讲解 视频为《SPSS统计学基础与实证研究应用精解》张甜 杨维忠著 清华大学出版社 一书的随书赠送视频讲解4.12节内容。本书已正式出版上市&#xff0c;当当、京东、淘宝等平台热销中&#xff0c;搜索书名即可。本书旨在手把手教会…

GraphicsMagick 的 OpenCL 开发记录(二十五)

文章目录 如何修复R6025 pure virtual function call问题 <2022-04-19 周二> 如何修复R6025 pure virtual function call问题 运气好&#xff0c;修复了这个问题。即&#xff0c;在ExitInstance()函数中调用一下MagickLib::DestroyMagick();即可。 过程中也经历了尝试…

用友U8接口-部署和简要说明(1)

概括 本专栏文章目的说明对目前用友U8ERP接口介绍对底层接口二次封装的介绍 说明 过去发布过介绍U8接口文章简介&#xff0c;参考以下链接。 U8接口开发方式 本专栏文章与下面的HTTP接口相辅相成&#xff0c;主要是写给正在使用&#xff0c;或未来使用本套接口的开发人员&am…

JDK8新特性(二)

接着上一章&#xff0c;我们继续学习jdk8新特性 目录 一、Optional 1.使用 1.1创建对象 1.2安全消费值 1.3获取值 1.4安全获取值 1.5过滤 1.6判断 1.7数据转换 二、函数式接口 1.常见函数式接口 2.常用的默认方法 三、方法引用 1. 推荐用法 2.基本格式 3.语法详解…