InstaLab™-世界上第一个模具识别AI/软件

直到最近,霉菌检测和霉菌形成的主要方法还是可行的实验室检测。beplay全站APP下载这意味着经过认证的真菌学家在显微镜下检查培养的标本。十多年来,Mold Busters一直官网入口使用这种方法测试从客户物业收集的空气和表面样品。

然而,随着人工智能(AI)和机器学习的巨大飞跃,现在有可能跳过实验室直接找到答案,从而大幅减少等待时间,消除人为错误。

至少这是我们的目标InstaLab™模式识别软件…

模具识别AI:是什么?

简单地说,我们的霉菌识别机器学习系统的工作原理与任何图像识别软件一样:它扫描图像(在本例中,是霉菌孢子的图像),并根据颜色、细胞结构和菌丝等各种标准浏览其霉菌图像数据库以寻找匹配。一旦找到匹配项,它就能够确定霉菌的确切种类你所面对的。

如果这听起来像科幻小说,你应该知道类似的系统已经在医学中使用。例如,放射科医生正在使用人工智能检测异常细胞生长和癌症,就像我们计划使用机器学习检测有毒霉菌孢子一样。

构建开源模具数据集/库

考虑到霉菌种类繁多,试图建立一个包含所有霉菌的数据集是一个巨大的挑战。这就是为什么我们从一个简单的图像识别工具开始,只识别和分类在家中发现的最常见的有毒霉菌种类,例如葡萄穗霉属(黑色的模具),链格孢属,曲霉菌枝孢菌. 一旦这样做了,我们可以在更大范围内应用相同的概念,以包括所有种类的霉菌。

如果我们汇集所有人的资源并向公众开放数据集,这一目标可以更快实现。大体上InstaLab™这是一项任何人都可以参与的开源事业。

我们将用于构建模型AI的技术

我们计划在这个项目中使用的工具的简要描述。

  • 水蟒: Python和R编程语言的免费开源发行版,用于数据科学和机器学习应用;旨在简化包管理和部署
  • 世爵:Python语言科学编程的开源跨平台IDE;安装了水蟒
  • 张量流:用于跨一系列任务进行数据流编程的开源软件库
  • 凯拉斯:一个用Python编写的开源神经网络库
  • 美国有线电视新闻网 (卷积神经网络):一类深度前馈人工神经网络,最常用于分析视觉图像。这是一个很好的解释它是如何工作的。

详细行动计划

以下是我们为实现目标而计划采取的步骤:

  1. 收集数据集
  2. 导入库并分割数据集
  3. 建设CNN
  4. 建立完全连接
  5. 增加的数据
  6. 培训网络
  7. 测试

1.收集模具数据集

为了训练我们的机器区分不同种类的霉菌,我们需要大量的数据。机器分析这些数据,并学习识别不同模具样本的共同特性、单元结构中的模式以及特征之间的其他关系。

instalab数据集

这一步也将有助于测试我们的分类器。

数据集instalab 02

2.导入库和分割数据集

为了获得这些库的好处,我们首先需要导入它们。

数据集instalab 03

然后,我们需要将数据分为两部分:training_set测试集.在我们的例子中,数据集已经被分成两部分。

3.建设CNN

建设CNN是我们网络最重要的一步。它由三部分组成:

  1. 卷积
  2. 投票
  3. 压扁

卷积的主要目的是从输入图像中提取特征。卷积利用输入数据的小平方来学习图像特征,从而保持像素之间的空间关系。

因为每一幅图像都可以被认为是一个像素值矩阵。考虑一个5 x 5的图像,其像素值仅为0和1(注意对于灰度图像,像素值范围为0到255,下面的绿色矩阵是像素值仅为0和1的特殊情况):

instalab cnn 01

另外,考虑另一个3×3矩阵,如下所示:

instalab cnn 02

然后计算出5 × 5图像与3 × 3矩阵的卷积,如下图所示:

instalab cnn 03

得到的矩阵也称为特征图。在每个卷积操作之后都会使用一个叫做ReLU的附加操作。下一步是汇集。

合并(也称为子采样或下采样)降低了每个特征映射的维数,但保留了最重要的信息。在最大池的情况下,我们定义一个空间邻域(例如,一个2×2窗口),并从该窗口内校正的特征映射中获取最大元素。我们可以取窗口中所有元素的平均值(平均池)或总和,而不是取最大的元素。在实践中,最大池已被证明工作得更好。

instalab cnn 04

在汇集之后,就出现了扁平化。在这里,矩阵被转换成一个线性数组,以便输入到我们的神经网络的节点。

让我们来看看代码。

instalab cnn 05

现在我们的CNN网络是这样的:

instalab cnn 06

4.建立完全连接

这一步是指将卷积网络连接到神经网络,然后编译我们的网络。

instalab cnn 07

这里我们做了一个两层的神经网络,作为最后一层的激活函数,我们需要找到物体被黑霉的概率。

现在,最终的网络看起来像这样:

instalab cnn 08年

5.增加的数据

在训练数据的同时,我们需要大量的数据进行训练。假设网络的映像数量有限。现在该怎么办?

我们不需要寻找可以添加到数据集中的新图像。为什么?因为,神经网络一开始并不聪明。例如,一个训练不好的神经网络会认为下面显示的这三幅图像是不同的、独特的图像。

instalab 09年

同样的图像,但是被翻译了。

因此,为了获得更多的数据,我们只需要对现有的数据集做一些小的改变,例如,翻转、平移或旋转。我们的神经网络会认为这些是不同的图像。
数据增强是我们减少模型过拟合的一种方法,我们只使用我们的训练数据中的信息来增加训练数据的数量。数据增强并不是一个新的领域,事实上,各种数据增强技术已经被应用到具体的问题上。

下面是代码:

instalab 10

现在我们有大量的数据。训练时间到了。

6. 培训网络

所以,我们完成了所有的构建步骤,是时候训练我们的模型了。

instalab 11

随着纪元的增加,精度也会增加。

7. 测试

现在让我们测试一张随机图像。

instalab 12

instalab 13

instalab 14

而且,是的!我们的网络正确预测了黑霉的形象!虽然它不是100%准确,但它在大多数情况下都能给出正确的预测。为了获得更高的准确度,我们可以添加更多的卷积层和池层、节点数和年代。

你如何做出贡献?

如果您有兴趣分享您在机器学习系统部署方面的专业知识,或者如果您希望向我们的模具库提供数据,请联系我们,讨论如何开始。


模具识别人工智能将如何使人们受益?

一旦测试完毕,功能齐全,InstaLab™将能够比人类更快地识别产毒霉菌物种,更不用说具有更高的准确性和更低的成本。无需邮寄或亲自将样品送往微生物实验室。只需上传可疑材料的图像并运行模具识别软件即可。

非常适合室内环境专业人员、模具检查员和修复技术人员、承包商、大学研究实验室甚至测试实验室。