基于svm的水果识别

 1、程序界面介绍

       该程序GUI界面包括待检测水果图片加载、检测结果输出、清空可视化框等。其中包括训练模型、加载图片、重置、识别检测按钮。

程序GUI界面

识别玉米识别西瓜

分类器识别水果基本原理: 

      由于每种水果的外形存在很大差异,比如西瓜与玉米,分别为圆形与杆状形状,因此使用HOG算子算子提取图片特征。HOG特征是一种图像局部特征,其基本思路是对图像局部的梯度幅值和方向进行投票统计,形成基于梯度特性的直方图,然后将局部特征拼接起来作为总特征。局部特征在这里指的是将图像划分为多个子块(Block),每个Block内的特征进行联合以形成最终的特征。

     在使用HOG算子识别图像特征后,训练基于SVM多分类模型,得到模型参数,最终实现水果分类。

2、程序的使用

2.1 程序打开

         在窗口命令行中输入“guide”,在弹出对话框中,选择"fruitrecog.fig",再单击绿色三角即可运行程序。

命令行窗口输入

打开对话框

运行示意图

2.2 训练样本介绍

     本程序基于支持向量机SVM进行水果识别,需要事先制作不同水果的样本数据。本次实验制作了15类水果,每一类水果包含10张训练样本,如下图所示。

15类水果文件夹示意图

玉米文件夹下示意图

西红柿文件夹下示意图

土豆文件夹下示意图

      在收集训练样本数据后,还需要制作一个包含训练样本图片的txt文本,其具体包含了每张样本数据存放的路径。因此,若下载到自己电脑上,需要在txt文本中修改图片路径

 

traindata.txt文本中图片路径采用相对路径方式

m文件与训练数据、traindata.txt在文件夹中位置关系示意图(在同一层文件夹)

 ******需要注意的是,下载到自己电脑上后,一定要将traindata.txt中内容,改成图片实际在你电脑上存放的绝对位置,或者不要动,保持上图截图中相对位置。********

2.3 训练模型

      在制作好训练数据后,便可以训练模型。点击“训练模型”按钮,打开traindata.txt文件,确定后开始训练模型,模型训练结束后,会弹出“模型训练完成!”的提示,如下图所示。
      打开训练样本文件    训练完成提示

 

选取训练数据

训练结束提示

2.4 识别水果

      选择“加载图片”按钮,加载需要识别的水果,如选择草莓图片,再点击“识别检测”按钮,识别出该水果。

水果识别示意图

4、说明(若训练自己数据)

       理论上样本制作的越多,训练的模型精度会更高。若自己想制作更多的训练样本数字训练模型,需要在traindata文件夹下,放入更多的待识别水果图片,进行训练。或者其他想要识别的水果,但是需要在以下方面进行修改

(1)traindata.txt中内容

      traindata.txt是存放每个训练样本图片的路径,因此,需要根据最终制作样本图片进行修改。具体来说,将你制作多的训练样本图片路径,全部添加进来即可。

图片路径添加示意图

(2)m文件修改

      在fruitrecog.fig文件中,选择“训练模型”按钮,右击,在弹出选项中选择“callback”。

     对train_label进行修改,主要修改每类水果样本数量、水果数量。其中用1-15表示每一个水果种类。若要识别的水果种类位20种,则数字位1-20。若每种水果训练样本数量为20,则每个数字出现20次,即有20个1,20个2,20个3......

最后输出显示需要修改:

修改predict_label 值与对应的水果名,这需要根据你自己实际情况进行修改。

    

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

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

相关文章

Hive-表设计优化

Hive-表设计优化 1.Hive查询基本原理 Hive的设计思想是通过元数据解析描述将HDFS上的文件映射成表。 基本的查询原理是当用户通过HQL语句对Hive中的表进行复杂数据处理和计算时,默认将其转换为分布式计算MapReduce程序对HDFS中的数据进行读取处理的过程。 当执行…

Nsight System无法使用collect GPU metrics

Nsight System无法使用“collect GPU metrics” 这里简单记录下Nsight System安装使用中发生的权限问题,主要针对的是collect GPU metrics无法使用的问题 原因分析: 根据英伟达官方文档的解释应该是GPU的权限问题,官方解决问题方法在此 解…

软件设计师笔记(二)-零碎要点

本文内容来自笔者学习zst 留下的笔记,都是零碎的要点,查缺补漏,若有错误请大家提出,希望大家都能通过,记得加上免费的关注!谢谢! 文章编辑于:2024-5-13 13:42:56 目录 1. 算法 [广…

【什么是范数】L1、L2范数介绍

一、 什么是范数 范数(Norm)是数学中用于衡量向量大小(或距离)的一种概念。在几何和代数中,范数可以提供一个向量长度或大小的量度。更正式地说,范数是一个函数,它将向量的集合映射到非负实数,满足以下性质…

社交媒体数据恢复:陌陌

确保你的手机已经进行了备份。备份可以提高数据恢复的成功率。 在电脑上下载并安装数据恢复软件。在使用软件进行恢复之前,请确保你的安卓手机已经在开发者选项中开启了USB调试模式。 使用USB数据线将手机连接至电脑。打开数据恢复软件,选择“陌陌聊天…

毕业论文写作神器:使用Latex写论文 安装texlive+texstudio 并添加IEEE模板

听说Latex写论文方便,更改格式方便,而且颜值高 LexLive2024安装 清华镜像网址:Index of /CTAN/systems/texlive/Images/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 下载完双击打开texlive2024.iso,然后点击 修改路径&#xf…

稻盛和夫《活法》读后感

最近几天又重读了一边稻盛和夫的《活法》,里面的观点让我感触颇多,现分享给诸君。 稻盛和夫毕业后,适逢经济萧条,没有好机会进入大公司深造,只能在一名教授的推荐下进入了一家做陶瓷绝缘体的公司,虽然公司…

Arduino-ILI9341驱动实现TFT屏输出中文四

Arduino-ILI9341驱动实现TFT屏输出中文四 1.概述 ILI9341驱动在TFT屏幕上不支持直接输出汉字,需要借助提取字模软件将汉字转为十六进制地址,然后通过改地址控制每行和每列点阵的亮和灭实现显示汉字功能。 2.ILI9341显示汉字 2.1.PCtoLCD2002取模软件…

面试宝典(2)——缓存篇(Redis)

面试宝典(2)——缓存篇(Redis) 1.Redis的主要用途有哪些? 缓存分布式锁:setnx,redisson消息队列,延迟队列 2.什么是缓存穿透? 查询一个不存在的数据,数据…

C++入门指南(中)

目录 ​编辑 一、C关键字(C98) 二、命名空间 2.1 域 2.2 命名空间域 2.1 命名空间定义 2.2 命名空间使用 三、C输入&输出 四、缺省参数 4.1 缺省参数概念 4.2 缺省参数分类 五、函数重载 5.1 函数重载概念 5.2 C支持函数重载的原理--名字修饰(name Mangling)…

告别黑板粉笔 高新技术进课堂 未来教室会成什么

现在,全国许多院校都经过引进信息化技能,完成智慧校园建造,推进教育均衡展开。一些校园的小学教室的信息化配备投入经费已达50万元/每间,初中是70万元,高中是90万元。这些新技能的投入运用有用的共享教育内容、精准地分…

基于select for update 实现数据库分布式锁

1、select for update 的基本语法 SELECT * FROM table_name WHERE condition FOR UPDATE;2、select for update 的定义及作用 2.1 、select for update的含义是在查询数据的同时对所选的数据行进行锁定,以保证数据的一致性和并发控制。在并发环境下,多…

ES6 笔记02

目录 01 对象的扩展 02 链判断运算符 03 属性名表达式 04 Symbol 类型 05 set集合的使用 06 Map集合的使用 07 Set集合和Map集合的遍历方式 08 iterator迭代器 01 对象的扩展 对象的属性和方法的简洁表示: es6允许在字面量对象里面直接写变量名 let 变量名变量值; let …

金融业开源软件应用 评估规范

金融业开源软件应用 评估规范 1 范围 本文件规定了金融机构在应用开源软件时的评估要求,对开源软件的引入、维护和退出提出了实现 要求、评估方法和判定准则。 本文件适用于金融机构对应用的开源软件进行评估。 2 规范性引用文件 下列文件中的内容通过文中的规范…

WS2811 单线 256 级灰度三通道恒流 LED 驱动器芯片 IC

产品概述 WS2811 是三通道LED驱动控制专用电路,芯片内部包含了智能数字接口数据锁存信号整形放大驱动电路,还包含有高精度的内部振荡器和15V高压可编程定电流输出驱动器。同时,为了降低电源纹波,3个通道有一定的延时导通功…

【数据结构课程学习】:队列学习

🎁个人主页:我们的五年 🔍系列专栏:数据结构课程学习 🌷追光的人,终会万丈光芒 🎉欢迎大家点赞👍评论📝收藏⭐文章 目录 🚗 1.队列的基本概念&#xff1a…

软考高级最容易被挂掉的论文,千万别乱写!

高级考生最没把握的科目应该就是论文了,有些考生考了几次都败在论文上了。那么导致论文不合格的写作误区有哪些?最后十多天,该如何准备呢? 常见写作误区 误区一:偏题 在论文写作时不能偏题,要紧扣子题干…

Visual Studio构建NodeJS原生代码在Electron中的报错问题

文章目录 对比NODE-GYP工具解决问题进一步研究win_delay_load_hook.cc代码MAC中是不需要这个东西的这个标题有点长,相对是一个比较具体的场景,但是这个问题在我自己的实际开发中,确实困扰了我一段时间。 因为在windows下做设备驱动,上位机的开发中。Visual Studio是一个比较…

要想通过等保测评,这7个问题你必须了解

1.什么是等级保护测评? 2.为什么要做等级保护测评? 3.等保1.0与2.0的区别在哪里? 4.等级保护测评参考标准有哪些? 5.等级保护测评的级别有哪些以及哪些系统需要? 6.等保测评的主要内容是什么? 7.等级…

如何利用代理IP高效采集全球热点,赋能短视频创作?

如何利用代理IP高效采集全球热点,赋能短视频创作? 一、摘要二、代理IP1. 什么是代理IP?2. 代理IP的分类3. 代理的重要性 三、如何选择可靠的代理IP服务商?四、IPIDEA代理IP简介1.IPIDEA简介2.IPIDEA的优势 五、获取代理IP1. 注册平…