前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >图片分类在有害昆虫识别方向中的应用

图片分类在有害昆虫识别方向中的应用

作者头像
代码医生工作室
发布2020-09-04 11:22:14
8120
发布2020-09-04 11:22:14
举报
文章被收录于专栏:相约机器人相约机器人

本文介绍了图片分类在有害昆虫识别方向中的应用,来源于代码医生工作室对外输出的分析报告。

文中的内容主要体现了AI任务在图片分类领域的工作过程,以及分析方式。该报告所使用的相关技术及源码都已经在以下书籍中公开。(文章所对应的技术点,见第5部分)

昆虫种类可以按照不同的粒度(按科、属、类)进行划分。例如,天牛科中包含了刺虎天牛属,刺虎天牛属中又包含了赤红刺虎天牛、福贡刺虎天牛等类别。本文的报告实现使用AI技术对昆虫的属分类进行识别。具体如下。

1 样本预处理

在训练之前,需要对样本进行预处理,具体过程如下:

1.1 删去格式不匹配文件

只支持jpg和png格式的图片。其它图片不支持。经过数据清洗,将不支持的文件统一检出,见wrongfile文件包。检出的示例图片如下:

最终得到有效图片4045张

1.2 去重处理

对于数据集中的重复图片也需要去掉。被移除的图片统一放在same文件包中。

最终得到有效图片3183张。这些图片按照科、属、类的分布如下:

1 按科分布

{'小蠹科': 1938, '实蝇科': 717, '天牛科': 519}

2 按属分布

{'小蠹科_属12': 1117, '实蝇科_属1': 717, '小蠹科_属24': 260, '小蠹科_属13': 195, '小蠹科_属2': 91, '天牛科_属134': 80, '天牛科_属123': 74, '天牛科_属30': 73, '天牛科_属129': 69, '小蠹科_属22': 68, '天牛科_属142': 58, '小蠹科_属16': 54, '小蠹科_属17': 54, '小蠹科_属9': 51, '小蠹科_属20': 48, '天牛科_属84': 41, '天牛科_属3': 33, '天牛科_属39': 32, '天牛科_属136': 30, '天牛科_属35': 29}

3 按种分布

('小蠹科_属12_64', 345),

('实蝇科_属1_3', 290),

('小蠹科_属12_67', 226),

('小蠹科_属12_66', 170),

('实蝇科_属1_4', 166),

('小蠹科_属12_144', 150),

('实蝇科_属1_13', 116),

('小蠹科_属12_52', 116),

('小蠹科_属24_173', 93),

('小蠹科_属2_4', 91),

……

('小蠹科_属20_93', 48),

('天牛科_属84_14', 41),

('实蝇科_属1_8', 39),

('天牛科_属3_6', 33),

('天牛科_属39_41', 32),

('实蝇科_属1_12', 32),

('天牛科_属136_36', 30),

('天牛科_属35_20', 29)

1.3 拆分数据集

将剩下的数据集分为测试集和训练集。所占比例分别为10%,和90%。Demo阶段,选取了以属分类为依据进行训练。具体分布如下

1 测试集

共329条

({'小蠹科_属12': 113, '实蝇科_属1': 74, '小蠹科_属24': 28, '小蠹科_属13': 21, '小蠹科_属2': 9, '天牛科_属123': 8, '天牛科_属134': 8,……'小蠹科_属9': 5, '天牛科_属3': 4, '天牛科_属39': 4, '天牛科_属84': 4, '天牛科_属136': 3, '天牛科_属35': 3})

2 训练集

共2845条

({'小蠹科_属12': 1004, '实蝇科_属1': 643, '小蠹科_属24': 232, '小蠹科_属13': 174, '小蠹科_属2': 82, '天牛科_属134': 72, …… '小蠹科_属16': 48, '小蠹科_属17': 48, '小蠹科_属9': 46, '小蠹科_属20': 43, '天牛科_属84': 37, '天牛科_属3': 29, '天牛科_属39': 28, '天牛科_属136': 27, '天牛科_属35': 26})

2 训练结果

将训练集输入模型进行训练。令模型根据训练样本来调整权重,达到识别分类的效果。

经过训练之后,模型达到的准确率95%。如图所示:

该结果是模型在训练数据集上的准确率

3 测试结果

该模型在测试集上的准确率是89%(共: 329个样本,识别正确: 296个)。照比训练集有所下降。因为模型未见过测试集的数据,所以准确率下降属于正常情况。

再扩充训练集样本之后,这个精度还会上升。

3.1 模型的测试结果

将测试数据集种的数据按照依次输入模型,每批次24张图片。具体的测试结果如下:

accuracy 0.875

原始标签 [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 3 3 3 4 4 4 4 4 4]

预测结果 [0 0 0 0 0 0 0 0 1 1 6 1 1 1 1 5 2 2 2 2 7 2 2 3 7 3 4 4 4 4 4 4]

i 2

accuracy 0.875

原始标签 [ 5 5 5 5 6 6 6 6 6 6 6 6 7 7 7 8 8 8 8 9 9 9 9 10

10 10 10 10 10 10 10 10]

预测结果 [ 5 5 5 5 6 6 6 6 6 6 6 6 2 6 7 16 8 8 8 9 9 5 9 10

10 10 10 10 10 10 10 10]

i 3

accuracy 1.0

原始标签 [10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10

10 10 10 10 10 10 10 10]

预测结果 [10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10

10 10 10 10 10 10 10 10]

i 4

accuracy 1.0

原始标签 [10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10

10 10 10 10 10 10 10 10]

预测结果 [10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10

10 10 10 10 10 10 10 10]

i 5

accuracy 1.0

原始标签 [10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11

11 11 11 11 11 11 11 11]

预测结果 [10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11

11 11 11 11 11 11 11 11]

i 6

accuracy 0.96875

原始标签 [11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11

11 11 11 11 11 11 11 11]

预测结果 [13 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11

11 11 11 11 11 11 11 11]

i 7

accuracy 0.96875

原始标签 [11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11

11 11 11 11 11 11 11 11]

预测结果 [11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11

11 11 11 14 11 11 11 11]

i 8

accuracy 0.71875

原始标签 [11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 12 12 12 12 12 12

12 12 12 12 12 12 12 12]

预测结果 [11 11 11 11 11 11 19 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 12

12 11 12 12 13 12 12 11]

i 9

accuracy 0.75

原始标签 [12 12 12 12 12 12 12 13 13 13 13 13 13 14 14 14 14 14 14 15 15 15 15 15

15 15 15 15 16 16 16 16]

预测结果 [12 12 11 12 11 15 12 11 19 13 13 13 13 14 14 14 14 14 14 15 17 15 15 15

15 19 15 15 14 16 16 16]

i 10

accuracy 0.875

原始标签 [16 17 17 17 17 17 17 17 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18

18 18 18 18 18 18 18 18]

预测结果 [16 17 11 17 17 17 17 17 18 18 13 15 18 18 13 18 18 18 18 18 18 18 18 18

18 18 18 18 18 18 18 18]

i 11

accuracy 0.7777778

原始标签 [18 18 18 18 19 19 19 19 19]

预测结果 [18 18 18 18 19 18 19 19 14]

i 12

over

共: 329个样本,识别正确: 296个

Val accuracy: 0.899696

输出结果中的原始标签,代表该样本的分类索引,预测结果模型对该样本所预测出来的结果。最后一行是模型测试的准确率达到89%

3.2标签代表的分类

每个标签索引多代表的分类如下:

self.num_classes 20 [

'天牛科_属123',

'天牛科_属129',

'天牛科_属134',

'天牛科_属136',

'天牛科_属142',

'天牛科_属3',

'天牛科_属30',

'天牛科_属35',

'天牛科_属39',

'天牛科_属84',

'实蝇科_属1',

'小蠹科_属12',

'小蠹科_属13',

'小蠹科_属16',

'小蠹科_属17',

'小蠹科_属2',

'小蠹科_属20',

'小蠹科_属22',

'小蠹科_属24',

'小蠹科_属9']

3.3识别错误的清单

见文件: ipython.html

该文件可以直接用浏览器打开:

4 模型可视化

从大体来看模型对科的分类达到了100%。随便以实蝇科为例,其可视化结果如下:

该结果表明模型主要是根据翅膀来判断实蝇的。从中可以看出,实蝇相关的样本或种类(只有属1)不多,模型不需要太费劲。

4.1 同样的科,有多个判别特征

而对于没有翅膀的实蝇,模型还会根据腿和头的形状进行区分。例如下面的实蝇可视化

4.2 模型识别错误的原因

以出错结果第一条的图片举例,其可视化图如下:

可以看到。模型判断意域是将整体形状(带长须),尤其是后背的形状和花纹作为依据,错误的把天牛属123认为成天牛属142.

那么天牛属123和天牛属142分别是什么样的呢?

1 天牛属123

天牛属123的模型可视化如下

2 天牛属142

天牛属142的模型可视化如下

天牛属142与天牛属123,二者看起来真的好像!如果真正做得时候,这个问题有可能会触发模型识别能力的上限,即,模型有可能会无法对这两类天牛进行区分。

当然,也不是绝对不可能区分的。目前只是一个初步的猜想。这类问题建议用级联模型来解决,期间还需要请专家来给出专业领域中的区分规则。

3 二者大小也没有可比性

看下面这图。左侧是属142,右侧是属123. 二者都比前面的图个大。相当于它们的身材都1—30cm之间。所以这种问题靠比例尺也解决不了。

4.3 样本的要求

(1)从上面的可视化结果能看出来,模型对图片中的水印无影响。

(2)在实际情况中。同样种类的图片会纯在多种差异较大的形态,如下图

这些是来自天牛同一个种的样本。会发现里面大致有3种形态。建议把他们分开。不要放在一起,放在一起会使模型对同一物种学习到多种不同的识别规则,而且彼此之间还得不到互补,会使样本均衡的处理失效,会对模型最终的整体效果带来影响。

5 相关技术来源

本报告所使用的技术及代码均已经在书中公开。具体对应如下:

样本处理部分:来自《深度学习之TensorFlow工程化项目实战》一书

模型训练部分:来自《深度学习之TensorFlow工程化项目实战》一书

样本均衡及数据增强部分:来自《机器视觉之TensorFlow2:入门、原理与应用实战》一书

模型可视化分析部分:来自《机器视觉之TensorFlow2:入门、原理与应用实战》一书

模型调优部分:来自《机器视觉之TensorFlow2:入门、原理与应用实战》一书

另外,在《机器视觉之TensorFlow2:入门、原理与应用实战》一书中还介绍了更多有关鉴黄师模型的技术内幕,以及适用与新型冠状病毒医疗影响检测的模型技术。欢迎参考。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-09-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 相约机器人 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 样本预处理
    • 1.1 删去格式不匹配文件
      • 1.2 去重处理
        • 1 按科分布
        • 2 按属分布
        • 3 按种分布
      • 1.3 拆分数据集
        • 1 测试集
        • 2 训练集
    • 2 训练结果
    • 3 测试结果
      • 3.1 模型的测试结果
        • 3.2标签代表的分类
          • 3.3识别错误的清单
          • 4 模型可视化
            • 4.1 同样的科,有多个判别特征
              • 4.2 模型识别错误的原因
                • 1 天牛属123
                • 2 天牛属142
                • 3 二者大小也没有可比性
              • 4.3 样本的要求
              • 5 相关技术来源
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档