2017-12-07 17:46:45 bless2015 阅读数 699

论文:基于Android平台的植物叶片识别系统

关键词:植物叶片识别; Android平台; 卷积神经网络; 云平台; GrabCut

在2016年下半年的学术背景中,相对详细的介绍了叶片识别的方法和相关综述。对当前一些硕士论文里提到的一些方式表示怀疑,本论文可以较为全面的实现。由于时间和资源有限,未能大规模应用CNN进行实验实为遗憾。日后还可以在算法层面进行优化。
水平有限,基于我现在的理解。计算机视觉专业性很强,所谓专业性为领域内的专业性。做人脸的网络扩展到识别物体就会产生问题,做无人驾驶的网络扩展到识别动物会产生问题。使用的网络深度,结构,参数都会对不同的识别带来影响。做不到“万能网络”。
所以我对未来的判断:AI在不同领域需要大量人才的根本原因在于此。可能会和现在的程序开发人员一样多。因为技术落地在各个细分行业中。
最近还对平台化的AI进行了一定思考,欢迎不同意见留言讨论。我认为平台化的AI现在还不够,虽然有好的技术,好的模型,除了行业细分带来的问题意外。笔者还认为平台话AI如同公有云一样,会给公司带来一定的不安全感。绕不开的一项为:数据安全。识别必然会上传数据。所以建立类似私有云的私有AI模型,私有AI提供商的价值在未来会凸显。AI+数据安全必然是未来,除了准确率外,另一个关键指标。

2015-07-30 15:27:52 shumu_xzw 阅读数 4997

基于MATLAB的阔叶树叶片智能识别

根据叶片的形状(椭圆长轴短轴比)可以初步判断树种,为智能识别打下基础。本文方法是基于MATLAB的图像处理工具和数值计算功能。

(1)叶片照片的预处理,利用PS去掉背景。


(2)图像处理,彩色图像转灰度图像



MATLAB程序:

clear all
InputImage=imread('E:\leaf_2012.jpg'); %读入要处理的图像
figure(1)
GrayImage=rgb2gray(InputImage);% 将图像转换为灰度图像
imshow(GrayImage) % 显示使用matlab自带sobel水平算子得到的图片
GrayImage=double(GrayImage); % 把图像变为双精度图像类型
[m n]=size(GrayImage); %图像的大小(长和宽)
g=zeros(m,n); %定义一个大小为S的空矩阵
for i=2:m-1
   for j=2:n-1
if GrayImage(i-1,j-1)>225
        g(i,j)=0;
       else
       g(i,j)=255;
       end
end
end
 
 
%边缘像素的操作
g(1,:)=0;
g(:,1)=0;
g(m,:)=0;
g(:,n)=0;
figure(2)
SFImage=uint8(g);% 显示滤波后的图像
imshow(SFImage)
figure(3)
imshow(InputImage)

(3)灰度图转二值图,然后边缘锐化,椭圆方程拟合




MATLAB程序:

TwoImage=im2bw(GrayImage);% 将灰度图像转换为二值图像
B=edge(TwoImage);%读取椭圆边界,TwoImage是二值图像
C=bwboundaries(B);
D=C{1,1};%获得椭圆边界坐标
row=length(D);%椭圆边界点的个数,超定方程组的方程个数
% 设出圆锥曲线方程
F=@(p,x)p(1)*x(:,1).^2+p(2)*x(:,1).*x(:,2)+p(3)*x(:,2).^2+p(4)*x(:,1)+p(5)*x(:,2)+p(6);%椭圆一般方程
% 离散数据点
Up=xlsread('E:\\Up.xls');%excel文件路径
UpX=D(:,1);
UpY=D(:,2);

% p0系数初值
p0=[1 1 1 1 1 1];
warning off
% 拟合系数,最小二乘方法
[p,deta]=nlinfit(Up,zeros(size(Up,1),1),F,p0);
plot(UpX,UpY,'r.');
hold on;

UpMinx=min(UpX);
UpMaxx=max(UpX);
UpMiny=min(UpY);
UpMaxy=max(UpY);

% 作图
ezplot(@(x,y)F(p,[x,y]),[-1+UpMinx,1+UpMaxx,-1+UpMiny,1+UpMaxy]);
title('曲线拟合');
legend('样本点','拟合曲线');



(4)根据长轴短轴比判断叶子种类

长轴、短轴计算

MATLAB程序:

p=p./p(6);

  xc=(p(2)*p(5)-2*p(3)*p(4))/(4*p(1)*p(4)-p(2)^2);%求椭圆中心坐标

  yc=(p(2)*p(4)-2*p(1)*p(5))/(4*p(1)*p(4)-p(2)^2);%求椭圆中心坐标

  angle=(1/2)*atan(p(2)/(p(1)-p(3)))%求椭圆倾斜角度

  a=sqrt(2*(p(1)*xc^2+p(3)*yc^2+p(2)*xc*yc-1)/(p(1)+p(3)+((p(1)-p(3))^2+p(2)^2)^(1/2)))%求椭圆长轴

  b=sqrt(2*(p(1)*xc^2+p(3)*yc^2+p(2)*xc*yc-1)/(p(1)+p(3)-((p(1)-p(3))^2+p(2)^2)^(1/2)))%求椭圆短轴

  u=(a-b)/a%计算椭圆扁率

                                
2019-04-11 11:01:34 hxf19961219 阅读数 638

a.介绍
这是我最近读的一篇论文,论文来自2017年第21届国际计算机科学与工程大会(ICSEC),文中针对4种玉米叶片类型识别问题自己搭建了一个网络结构,个人觉得不错,在此分享,结构比较容易用代码实现,在此就不贴代码了。

a.数据集分布
在这里插入图片描述
b.网络架构
在这里插入图片描述
c.实验
实验分为3部分。在第一部分中,我们使用5倍交叉验证从头开始训练我们提出的网络。在每个折叠中,我们使用三个数据子集,数据增加,用于训练,一个子集用于验证。然后在剩余的数据子集上测试在验证数据上表现最佳的模型。该过程重复5次,以便每个子集用作测试数据一次。下图分别显示了5倍的模型的平均损失和平均准确度的学习曲线与训练过程期间的时期数量。
在这里插入图片描述
在实验的第二部分,我们训练了三个的网络,即ResNet50,InceptionV3和MobileNet,并将结果与我们提出的网络进行了比较。所有这三个网络都已在ImageNet数据集上预先训练加快培训进程。在训练过程开始时,每个网络中的所有参数,除了最后一个完全连接的层,其中进行了初始化,都保持固定。一旦完成了最后一个完全连接的层,我们就开始对网络进行微调以提高其准确性。在MobileNet架构上,所有层都是可训练的。另一方面,我们只允许ResNet50和Inception V3中所有层中的大约一半可以训练,因为这些网络具有非常高的容量,并且通过整个网络的微调将导致过度拟合。我们还使用了5倍交叉验证来训练和测试这些网络。下图显示在训练过程中这四种模型的验证损失和验证准确性的比较。图中绘制的数字是每个时期的5倍平均值。
在这里插入图片描述在这里插入图片描述
我们实验的第三部分是测试模型推广到其他测试集。我们需要执行此步骤的原因是因为在Plant Village数据集中存在来自不同方向的同一叶子的多个图像,因此输入图像之间存在隐藏的相关性。由于我们没有关于来自同一叶子的图像的这条信息,我们所能做的就是随机分割数据集。这可以使一片叶子的一些图像进入训练集,并且同一叶子的其他图像进入测试集。因此,我们在实验的第一部分和第二部分得到的结果可能高于真正看不见的测试数据的结果。因此,我们还从互联网上收集了每个班级的25张图像。然后,我们对这100张额外的图像测试了所有模型。我们相信这部分的结果将更准确地反映模型在现实场景中的表现,何时模型用于对从现场智能手机中拍摄的图像进行分类。
比较模型的性能:
在这里插入图片描述

在这里插入图片描述
为了测试我们模型的泛化能力,我们将每个体系结构的5个模型(每个体系结构一个)应用于从Internet检索到的100个附加图像。对5个模型的softmax概率进行平均,选择概率最高的类作为集合的预测。结果如上表所示,我们可以看到,我们提出的PlantVillage数据集模型的准确性仅略差于其他三个网络。但是,鉴于我们的模型包含的参数比MobileNet少4倍,我们模型的推理时间应该比其他网络快。我们还从混淆矩阵中看到,所有模型在来自附加图像数据集的北方叶枯病图像上表现最差。我们已经预料到这种情况会发生,因为在PlantVillage数据集中,北方叶枯病的所有图像都是在受控环境中拍摄的。也就是说,照明条件,背景颜色,每个图像中的叶子数等没有变化。因此,当模型针对来自互联网的图像进行测试时,从受控环境图像中学习的模型特征可能不是很有用,因为在这种情况下训练数据和测试数据的分布非常不同。我们相信这个问题可以通过获得在各种条件下拍摄的更多图像来解决,如在灰叶斑点图像和健康图像的情况下可以看到的,因为这两个类包含在室外场中拍摄的多个图像。
d.结论
我们提出了一种新颖的卷积神经网络架构,它将参数数量大致减少了4倍。然后,我们从PlantVillage数据集中对玉米叶片图像进行训练,将它们分为以下四类之一:普通锈病,北方叶枯病,灰斑病或健康。我们发现即使我们网络中的参数数量远远少于其他知名网络的参数数量,我们的网络性能在PlantVillage数据集上也略差一些。在这项工作中测试的所有模型的普遍性是好的(58%或更好),考虑到随机猜测将导致大约25%的准确性。我们认为如果从许多不同的条件下拍摄更多的训练图像,理想情况下,从现实的设置中,可以进一步改进模型。

2019-12-31 10:52:19 GZHONG 阅读数 27

本文为软件功能展示,如需使用或基于此开展二次开发,可联系博主共享。

注:由于图片大小限制,本文图片在上传时图片中部分文字显示不清楚,已做局部放大处理。

目录

一、系统简介... 3

二、系统主要功能... 3

2.1系统可实现的叶片识别... 3

2.2、系统可解析叶片信息... 3

三、系统使用... 3

3.1系统使用前准备工作... 3

3.2系统使用说明... 4

四、运行环境... 8

五、软件准确度检验... 8

5.1.试验材料... 8

5.2.试验仪器... 8

5.3.数据分析处理方法... 8

5.4.结果与分析... 8

 一、系统简介

      软件基于计算机视觉解析技术,实现黄瓜离体叶片和原位叶片两种形式的快速测量并电子化,能够便捷、准确测定叶片信息,最终在测量精确度与现有科研手段同等的基础上,降低农业试验的复杂性与成本,并进一步提升工作效率。

二、系统主要功能

2.1系统可实现的叶片识别

1、通过打开已有照片进行叶片分析

2、通过外接可照相设备实时进行叶片分析 

2.2、系统可解析叶片信息

1、叶面积:可实现自动解析与手动调整两类;2、叶片周长:可实现自动解析与手动调整两类;3、叶片长宽:可实现自动解析与手动调整两类;4.绿色叶片面积和枯叶面积自动解析

三、系统使用

3.1系统使用前准备工作

1、如何进行叶片拍照及拍照规范

(1)需参考板一块进行畸变校准,参照挡板的设置,根据叶片大小,需要不小于叶片的方形参考版一块。(如图)

(2)叶面积的采集,需注意3点

    1)叶片需置于坐标纸参照挡板范围内并压平;

    2)需尽量保证数码摄像头与参照挡板平行(小于45°,本软件可自动校准),以保证叶面积不变形或少变形,减少测量误差。

2、相片导入计算机 通过数据线将所得相片导入计算机。

3.2系统使用说明

1、打开系统主界面如图1所示,主要包括作物叶片识别的两种形式,关于我们和帮助。

 

图1  系统主界面

2、点击上图“打开图片处理方式”出现如图2所示界面 左侧为操作功能区,分五步,用户可根据实际情况及需求进行选择。

图2  “打开图片处理方式”

图像放大显示,按钮信息

3、叶片信息提取操作

(1)如图所示,进行第一步操作,选择所分析叶片是单个叶片还是多个叶片。(单叶片计算本说明将不做介绍)

(2)如图所示,第二步操作,选择“打开叶片图片”按钮,找到需要分析的叶片图片,如下图所示  。

图3 第二步-打开需要分析叶片

(3) 打开图片:如图所示,进行第三步操作,叶片畸变校准,进行参考面积畸变校准(可选择不校准、选取参考面积、四边形校准、圆形校准,以及手动选择四个位置进行校准),本说明校准面积设置为 169cm2(用户可根据实际参考面积设置),畸变校准完成后效果图如图4所示。

图4 截取后效果图

(4)叶面积提取:如图所示,进行第四步操作,选择“叶面积预处理”按钮,在右侧“作物叶面积结果展示区”出现叶片结果(图5所示),获得绿色叶片部分。

图5 第四步-叶面积预处理

(5)叶片周长-长宽-绿叶-枯叶计算如图2所示,第四步操作,选择“面积-周长-长宽计算”按钮,在右侧“面积-周长-长宽结果展示区”出现叶片结果(图6所示)。

 

图6 第四步-叶面积周长长宽计算

测量结果放大显示

(7)结果保存:如图2所示,进行第五步操作,可看到目前打开的图片的名称,对应编号默认“1-1”,用户可根据试验需求自己填写,之后点击“保存”按钮即可完成所所解析叶片保存(图7所示) ,保存结果为txt文本和被处理图片(图8所示),保存路径为软件安装路径。

 

图7 第五步-叶片解析结果保存设置

 

图8  第五步-叶片解析保存结果

四、运行环境

         Windows 7及以上;NET Framework 3.5及以上。

、软件准确度检验

    本软件图像识别方法已通过与坐标纸法、复印比重法对比,进行了稳定性的分析。结果表明:本软件图像识别方法与坐标纸法测定的结果无显著差异(配对检验P(p>|t|)=0.872>0.05),复印比重法测定的结果较坐标纸法显著偏高。本软件图像识别方法较坐标纸法更为便捷、准确,可作为一种新的叶面积测定法推广使用。

5.1.试验材料

黄瓜花果期叶片,共选取30片。

5.2.试验仪器

    称重天平型号为TXB6200L,生产厂家SHIMADZU,精度为万分之一;拍照相机型号为佳能G12;打印机为HP 2600jet,打印硒鼓为原装硒鼓;打印纸张为得力莱茵河多功能复印纸(No.7401)。

5.3.数据分析处理方法

    以Excel 2007完成数据整理,以SPSS 19.0完成统计分析。

5.4.结果与分析

1、 本软件图像识别方法与坐标纸法测定结果比较

    本软件图像识别方法与标准的坐标纸法对30片叶片的测定均值分别为36.18 cm2、36.23 cm2(见表1),两者测定结果的相关系数较高,达到0.972,线性相关系数可通过显著性检验(见图9)。

表1  3种方法测定同一样本的基本统计

统计指标

坐标纸法

本软件图像识别方法

复印比重法

均值/cm2

36.18

36.23

38.20

标准差

5.88

6.02

6.39

标准误

1.09

1.12

1.19

变异系数/%

16.25

16.62

16.73

 

图9  数字照片解析法及坐标纸法测定叶片面积

本软件图像识别方法与坐标纸法测定结果进行配对检验,结果表明:本软件图像识别方法与坐标纸法测定结果无显著差异,P(p>|t|)=0.872>0.05(见表2),因此本软件图像识别方法可作为叶片测定一种新方法。

表2  本软件图像识别方法、复印比重法分别与坐标纸法测定结果进行配对检验

与坐标纸法比较的方法

t统计

Df

P>|t|

本软件图像识别方法

-0.162

29

0.872

复印比重法

-8.075

29

0.000

 

 

2019-06-09 15:08:51 weixin_37740327 阅读数 942

基于卷积神经网络的植物叶片病害识别\缺素检测的APP

1、检测模型是基于LeNet -5 卷积神经网络训练得来,所用数据集是缺素的黄瓜图片。APP开发使用AS。
2、更新功能、弧形控件、作物类型界面、版本信息界面、柱形图 是在@SwitchLife作者的成果上稍有改造完成。(简书:https://www.jianshu.com/u/b5b414cbad2f)
3、tensorflow模型迁移到APP端使用了官方给出的实例代码。
4、APP下载网址:https://www.pgyer.com/wangxiong
5、APP在Android 9以上的系统运行正常,其它系统下运行有问题可能是权限问题。

此APP有三大功能模块:
1、检测作物叶片是否缺素
a\包含四种选取缺素叶片图像的方式(单张、多张拍摄/相册选取)
b\单张拍摄和单张相册选取功能 具有检测输入图像是不是叶子,多张拍摄和选取没有此功能
c\多张拍摄/相册选取可以在代码中修改检测图像数量。
2、检测记录的保存
a\由于使用的是Android系统自带的数据库,运行会卡顿(后期如有需要可将记录保存到服务器端以解决此问题)
b\点击图像删除,实为隐藏
3、更新APP
a\最新版本APP和json文件放在了github网站上,json文件存储最新版本信息;下载速度慢(如有需要,可放在服务器上)
b\可以通过修改代码,点击确认下载按钮后将直接跳转到 蒲公英下载网址进而提高下载速度
4、模型识别精度不高(89%-92.5%),主要原因仍旧是样本容量少。
5、检测是不是某种植物的叶子可以调用百度AI接口,识别精确度是相当高
6、想到再说

Alt

Alt
Alt
Alt
Alt
欢迎咨询!!!
**

Github:https://github.com/wangbuer1/Myapp

觉得可以点个赞呐!!!

**

博文 来自: laiqun_ai

叶片

阅读数 501

没有更多推荐了,返回首页