LeAFtool计算病斑面积


网页版地址:

https://shiny.web4xiang.top/LeAFtool/

分析流程

数据准备

将图片存储在三个文件夹内,压缩成.zip后上传就能进行分析:

  • learning:存放用于训练的图片(直接截图即可),包括三个子文件夹:
    • background:背景图片。如叶片是贴在A4纸上的,那么背景就截图A4纸。
    • limb:没有被病原菌侵染的健康叶片。
    • lesion:病斑截图。
  • results:用于存放后续的分析结果。
  • samples:用于存放等待分析的叶片。

上传文件

image-20220305151957738

  • 输入用户名是为了创建对应的文件夹存放数据;
  • 上传上一步准备好的压缩文件;
  • 点击提交是为了告诉程序文件上传完成,开始创建文件夹并把压缩文件解压缩。
  • 注意事项:程序默认生成的文件夹格式为输入的用户名-年-月-日,比如我在2022年3月8日进行分析,输入用户名为123,那么创建的文件夹就是123-2021-03-08,所有的文件都会存放在该文件夹下。

机器学习训练

image-20220305152626801

训练功能只需要选择方法和选择文件夹,默认的方法是LDA

image-20220305152908618

模型选练结果:通常只需要关注错误率即可。

image-20220305153109804

分析样品图片

image-20220305153323703

完成训练后就可以开始分析样品图片了。只需要选择样品图片文件夹和结果输出文件夹即可。参数的调试通常默认,细节参考项目首页或应用首页。

注意:使用多线程并行运行程序(下图)报错的话就不要勾选多线程。

image-20220305153638497

image-20220305154613673

分析结果如上图。鼠标单击每个叶片就可以看到被识别出来的病斑(下图)。

image-20220305154645005

手动标注功能

image-20220305154801861

在编辑模块,可以手动把标记错误的病斑去掉,也可以手动添加没有标记上的病斑

在这个输出结果中叶片面积或者是病斑面积的单位是像素,我们需要的单位通常是cm$^2$。在咨询Rémi后我在最后的下载程序中加入了单位转换功能,最后下载得到的Excel文件里面的单位是cm$^2$。

下载结果

image-20220305155440909

只需要输入样品图片的分辨率(dpi)即可,咨询后他们表示600dpi已经足够了的。在下载到的Excel结果表里面,单位是cm$^2$,如果是下载的原始结果的.zip压缩文件,那默认的单位还是像素,注意记得转换。

image-20220305161555182

注意:分析完成后及时下载数据,R shiny有session限制,时间长了会自动切断浏览器与服务器的连接,无法下载文件,需要重新分析。

公式推导

dpi表示的是每英寸的像素点,如600dpi就表示每英寸有600个像素点。1英寸=2.54cm,所以 就有$\frac{600}{2.54} = 236.2205$个像素点。转换成平方就是$1cm^2 = 236.2205^2像素$。那么就结果中的面积数值除以$236.2205^2$就可以转换成$cm^2$。通式如下:
$$
\frac{结果中面积数值}{(\frac{dpi}{2.54})^2}
$$


以下为旧版内容:

posterLeaftool-JOBIM2019

  • 项目地址:https://github.com/sravel/LeAFtool

  • 核心算法

    • 以有监督的分类为基础,颜色类型是RGB颜色类型;

    • 训练集:参考图片,三个子文件夹:

      • background:背景图片。也就是叶子贴在什么上面
      • limb:没有被病原菌侵染的叶片。
      • lesion:病斑截图。

      上述三个文件夹中的图片最好都用样品截图,这样训练的模型会更准确,计算得到的结果也就更加准确!

    • 不管用哪种机器学习方法,在分析训练模块中参数可以一致。

    • 支持三种方法:

      • LDA
      • QDA
      • SVM
    • 颜色模式可以选择RGB 或者是HSV

  • 结果

    • 训练结果展示
      • 首先是正确率表格:错误率越低,训练的结果越准确。
        image-20220226210706944
      • 然后是训练的结果图:
        image-20220226210922978

训练完成后就可以对样品进行计算了。

样品分析结果概览图:

image-20220226211146041

可以利用Edit功能删除识别错误的病斑。

image-20220226211254414


最终数字化的结果如下:

image leaf.number leaf.surface lesion.nb lesion.surface pourcent.lesions
Snipaste_2022-02-26_20-54-59 1 15012 9 3353 22.33546
Snipaste_2022-02-26_20-54-59 2 13124 4 2688 20.48156
Snipaste_2022-02-26_20-54-59 3 11005 7 1207 10.96774
Snipaste_2022-02-26_20-54-59 4 11453 3 1180 10.30298
Snipaste_2022-02-26_20-55-12 1 13714 3 2824 20.5921
Snipaste_2022-02-26_20-55-12 2 13255 3 1406 10.60732
Snipaste_2022-02-26_20-55-12 3 13995 3 357 2.550911
Snipaste_2022-02-26_20-55-12 4 12140 1 421 3.467875
Snipaste_2022-02-26_20-55-17 1 15334 4 1816 11.84296
Snipaste_2022-02-26_20-55-17 2 14583 6 2942 20.17418
Snipaste_2022-02-26_20-55-17 3 15337 5 474 3.090565
Snipaste_2022-02-26_20-55-17 4 13912 3 291 2.091719

结果的单位是像素。

根据图片的dpi,可以把最后的结果转换成cm$^2$.

dpi表示的是每英寸的像素点,如600dpi就表示每英寸有600个像素点。1英寸=2.54cm,所以1cm就有$\frac{600}{2.54} = 236.2205$个像素点。转换成平方就是$1cm^2 = 236.2205^2像素$。那么就结果中的面积数值除以$236.2205^2$就可以转换成$cm^2$。通式如下:
$$
\frac{结果中面积数值}{(\frac{dpi}{2.54})^2}
$$


💌lixiang117423@foxmail.com
💌lixiang117423@gmail.com


Author: 小蓝哥
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint policy. If reproduced, please indicate source 小蓝哥 !
  TOC