基于自主巡航无人机和支持向量机算法的小麦叶部病害检测系统(一)
2017年4月我申请到了一个大学生创新项目——基于SVM和计算机视觉技术的小麦叶部病害检测系统。该项目利用摄像头捕捉叶部图像,通过病斑分割,提取特征向量,然后送到SVC分类器中训练得到结果。后期借助FPGA设计大赛的机会用FPGA设计了无人机来搭载摄像头。
第一篇先来介绍计算机视觉部分,主要是病斑分割以及分类结果云端显示。
一. 图像处理
图像预处理:畸变矫正
由于摄像头拍摄的图像存在“鱼眼效应”,如图2.1,此时图像发生畸变。为便于后期图像的分割处理,我们先对图像采集部分做出畸变矫正。鱼眼图像的矫正,是标定图像的中心和半径,用标定得到的参数进行矫正,推出矫正模型。具体算法原理不作详细描述,效果见图1.图2
图1 摄像头的鱼眼效应
图2 图像畸变矫正
图像增强处理:中值滤波
在图像处理中用到中值滤波法对图像进行去噪,它在保留原有图像结构的前提下能对边缘信息起到保护作用。简单来说就是当输入一组信号 A 时中值滤波对他进行信号处理时,将所需要的信号提取出来形成信号 B,这就是所谓的去噪,这种方法被广泛使用于图像增强当中。图像增强技术通过有目的地强调图像整体或局部特性,抑制图像中不感兴趣的部分来改善图像质量、丰富图像信息量,以满足图像分析的需要。在中值滤波器所在区间内运算最大值和最小值之间的均值称之为对图像进行中值滤波。中值滤波在消除椒盐噪声这方面十分有效,同时也在光学测量条纹图像的相位分析处理方法中有巨大作用。中值滤波的基本工作原理就是将数字图像或数字序列中一点的值用这点旁边的一个区域中各个点的值的中值取缔,能使得周围的像素值接近真实的值,如果要想消除孤立的噪声点,就需要周围的像素值能接近真实的值,那么就需将数字图像或数字序列中一点的值用这点旁边的一个区域中各个点的值的中值取缔。
基于k-means的图像分割
图像分割是根据感兴趣区域的轮廓和颜色特征将图像分成感兴趣区域和背景区域部分。图像分割是图像分析的基础,图像分割决定的图像分析结果的准确性。图像分割包括:阈值分割法、区域分割法、区域生长法、Otsu 分割法、 分割法、边缘分割法等。随着科技进步研究人员也研究出了许多很新颖的分割方法,本文主要采用 方法,在LAB 颜色空间进行分割。
算法,也被称为k-平均或k-均值,是一种得到最广泛使用的聚类算法。它是将各个聚类子集内的所有数据样本的均值作为该聚类的代表点,算法的主要思想是通过迭代过程把数据集划分为不同的类别,使得评价聚类性能的准则函数达到最优,从而使生成的每个聚类内紧凑,类间独立。这一算法对于连续型具有较好的聚类效果。
算法描述:
1)为中心向量 初始化k个种子
2)分组: A.将样本分配给距离其最近的中心向量
B.由这些样本构造不相交 的聚类
3)确定中心:用各个聚类的中心向量作为新的中心。
4)重复分组和确定中心的步骤,直至算法收敛。
5) 算法:输入:簇的数目k和包含 个对象的数据库。
输出: 个簇,使平方误差准则最小。
算法步骤:
1)为每个聚类确定一个初始聚类中心,这样就有K个初始聚类中心。
2)将样本集中的样本按照最小距离原则分配到最邻近聚类。
3)使用每个聚类中的样本均值作为新的聚类中心。
4)重复步骤2.3直到聚类中心不再变化,得到K个类。
图3为 算法的一个例子,k=3。
图3 算法聚类的例子
k均值分割法方法初始分类中心需要通过经验获取,k 值选取过大会造成分割过细,k值选取过小会使分割的目标区域不完整。在选取了 后发现 k 为 2 时分割效果最好能完整分割病害,我们选取的k值为2,所分割出的图像分别表示目标区域和背景区域,使用此方法分割图像情况如图4和图5所示。
图4:条锈病
图5:叶锈病
特征提取(具体公式这里打出不便,可以参照前面的论文)
特征值提取就是对对象属性的特点进行获取,将得到的特征作为一个参数值输入机器中,机器对其他对象识别时可以根据这些特征进行判定,这些参数值称之为特征向量。特征向量决定图像识别的结果,误差较大的特征向量将导致无法识别图像或识别错误。对象图像的特征主要有颜色特征、纹理特征和形状特征等,我们对形状特征和纹理特征进行提取:
(1)形状特征提取
提取形状特征方法大致分为基于病斑区域本身、基于病斑区域的边界和基于病斑区域骨架3种。我们的项目采用基于病斑本身的方法。为了识别病斑形状,首先利用区域标记的思想对分割后的病斑逐一标记,再提取目标参数:目标区域中像素的总个数-病斑区域面积(A);像素意义下与目标区域具有相同标准二阶中心矩的椭圆的长轴长度(H)和短轴长度(W);目标区域边界像素元素所连成的闭合曲线的周长(P)。根据4个特征可以计算出5个形状参数。
矩形度;圆形度;形状复杂性;内接圆半径;伸长度;
(2)纹理特征提取
1)定义:
纹理在定义上并不明确,具体可以表示为物体表面凹凸不平的沟纹,自身所带有的平滑的图案也是纹理的一种。人类视觉除了能第一眼看到对象的颜色以外还能看到对象的纹理,纹理表达了对象表面的结构分布和所在环境的特点,虽然纹理并不需要依靠颜色和灰度,但因为纹理的变化能够带动颜色与灰度的变化,因此纹理的特性他又与颜色灰度息息相关。纹理是按照一定规律、有意识的排序,从整体上看是具有统一性,且纹理是相对固定的,各个区域尺度大致相同,不会因为位置变化而改变。正是因为这些特性使得纹理能够帮助图像进行识别操作达到直观、便捷、实用性强的作用。研究人员把纹理应用到机器学习、模式识别觉和图像检索等研究中,均起到了很好的效果。纹理特征值提取的方法简单来说就是对空间结构、统计量、几何尺寸的灰度值映射,其方法分为统计方法和结构方法两个大类。具体包括 LBP 纹理特征、灰度差分统计、灰度共生矩阵、灰度-梯度共生矩阵法等,本文以灰度共生矩阵方法进行操作。
2)灰度共生矩阵:
灰度共生矩阵是一种在纹理特征下灰度共生矩阵的表示方法。纹理的形成源于因为灰度分布在空间位置上反重复发生,所以可以推断出在图像中两个相隔的像素存在着灰度关系,这就是所谓的灰度空间相关特性。这些特性能够应用于在方向、变化幅度、相邻间隔等方面。灰度共生矩阵的对角元素取的值取决于构成像素块的灰度值的相似程度,当图像像素灰度值在某一个区域发生变化时,这将导致远离对角线的元素会有比较大的值。灰度共生矩阵生成的纹理特征值有能量、对比度、熵、均匀性、均值、方差、非相似度、相关性。这些特征值组合一起很形象全面的说明了了影像的灰度分布、信息量及纹理粗细度。我们根据灰度共生矩阵,得到以下四个纹理特征参数:
对比度
二阶矩ASM:
熵
相关性
基于遗传算法的SVC模型惩罚系数c和Gauss kernel 参数g的寻优计算
遗传算法GA最初由Holland于70年代提出,是一种基于自然选择和基因遗传学原理的优化搜索方法。它将“优胜劣汰,适者生存”的生物进化原理引入待优化参数形成的编码串群体中,按照一定的适应度函数及一系列遗传操作对个体进行筛选,从而将适应度高的个体保留下来,组成新的群体,新群体中个体适应度不断提高,直至满足一定的极限条件。此时,群体中适应度最高的个体即为待优化参数的最优解。GA 具有自适应性、全局优化性和隐含并行性等特点,体现出很强的解决问题的能力,能够在复杂空间进行全局优化搜索,并且具有较强的鲁棒性。GA 在应用过程中,主要包括编码机制、适应度函数的确定、遗传算子(选择、交叉和变异)的选择、初始种群的选择、进化次数等方面。由于 GA 解的进化特性,在解的搜索中不需要了解问题的内在性质,GA 可以处理任意形式的目标函数和约束,无论是线性的还是非线性的、连续的还是离散的。
图6 GA_SVM的算法流程
图7 GA适应度曲线
将检测结果上传至云端服务器,如下:
基于自主巡航无人机和支持向量机算法的小麦叶部病害检测系统(一)相关推荐
- 基于深度学习和支持向量机的4种苜蓿叶部病害图像识别
基于深度学习和支持向量机的4种苜蓿叶部病害图像识别 1.研究思路 对 采 集 获 得 的899张苜蓿叶部病害图像,利 用 人工裁剪方法从每张原始图像中获得1张子图像,然后利用结合 K 中值聚类算法和线 ...
- [智慧农业]Python基于改进YOLOv5的猕猴桃叶病害检测系统(完整源码&数据集&视频教程)
1.背景 现如今由于农作物病虫害的多样性和复杂性,在特定的条件下其很容易在大范围内发生,导致农产品产量急剧下降.因此,预防和监测农作物病虫害已成为农业生产活动中的重要环节.当前,耕地面积逐渐减少,世界 ...
- 基于改进YOLOv5的猕猴桃叶病害检测系统(完整源码&数据集&视频教程)
1.背景 现如今由于农作物病虫害的多样性和复杂性,在特定的条件下其很容易在大范围内发生,导致农产品产量急剧下降.因此,预防和监测农作物病虫害已成为农业生产活动中的重要环节.当前,耕地面积逐渐减少,世界 ...
- 计算机视觉农作物检测,基于计算机视觉的农作物病害检测系统的研究
摘要: 农作物病害是制约农业发展的主要因素之一,准确,高效地识别病害对于保证农作物的正常生长具有重要的意义.计算机视觉技术对加速农业现代化建设,提高生产效率影响深远. 本文以农作物病害类别的检测与识别 ...
- 基于深度学习的番茄叶部病害识别模型
基于深度学习的番茄叶部病害识别模型 1.研究思路 为实现番茄叶病特征的自动 提取,并提高识别准确率,提出一种基于深度学习的番茄叶病识别模型.该模型基于卷积神经网络对番茄叶部病害特征进行自动提取,获得高 ...
- 基于深度学习的农作物叶片病害检测系统(UI界面+YOLOv5+训练数据集)
摘要:农作物叶片病害检测系统用于智能检测常见农作物叶片病害情况,自动化标注.记录和保存病害位置和类型,辅助作物病害防治以增加产值.本文详细介绍基于YOLOv5深度学习模型的农作物叶片病害检测系统,在介 ...
- Python基于改进YOLOv5的烟叶病害检测系统(附带源码)
Python基于改进YOLOv5的烟叶病害检测系统(附带源码) 1.背景 2.前言 3.烟叶数据集的采集 4.烟叶数据集的标注 5.烟叶检测训练&识别效果 6.病害数据集的采集 7.病害数据集 ...
- 基于实时计算(Flink)与高斯模型构建实时异常检测系统
案例与解决方案汇总页: 阿里云实时计算产品案例&解决方案汇总 1. 概述 异常检测(anomaly detection)指的是对不符合预期模式或数据集(英语:dataset)中其他项目的项目. ...
- 基于Python(Django)+MySQL 实现(Web)SQL智能检测系统的设计与实现【100010694】
摘 要 为了满足不同的用户群体的需求,中国移动的套餐业务更新频繁,每个月都会推出很多个性化的套餐服务,当前,中国移动创建套餐的方式是手动编辑上百行 SQL 语句之后插入到数据库中,一旦 SQL 语句中 ...
最新文章
- python 2x list 里面的中文打印效果为unicode 编码 的处理方法
- 算法开发人员的安身之本:如何将机器学习与各行各业进行深度结合
- 苹果:高通的“非法行为”损害了整个行业
- gethostbyname函数
- python读取字典元素笔记_python学习笔记:字典的使用示例详解
- 华为服务器虚拟化断电,服务器断电日志查看
- Jenkins与代码上线解决方案
- 大型网站技术架构:核心原理与案例分析——大型网站架构演化
- quartz定时任务xml配置
- js调用Python函数
- Android系统启动过程-uBoot+Kernel+Android
- 网络电话是如何实现打到普通话机上的?
- 2021赣网杯web和misc部分wp
- pascal方格稿纸
- RNG战队联名设计 iGame Z390 RNG限量版上线
- Nvidia jetson nano,控制风扇开启和关闭。
- odoo 邮件自动发送相关知识
- 使用ffmpeg从视频中提取音频文件
- Jstack查询线程堆栈
- Adobe PhotoShop安装程序无法初始化的解决办法