0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

利用气体传感器实现水果食品质量检测系统的设计

科技观察员 来源:Alex Miller 作者:Alex Miller 2022-03-31 10:10 次阅读

背景

随着时间的流逝,食物浪费问题对环境的影响越来越严重。联合国环境规划署 (UNEP) 最近的食物浪费指数报告显示,平均而言,消费者每年浪费近 10 亿吨食物(或购买的所有食物的 17%)。

人们生产的食物多于消耗的食物这一事实会产生重大的负面影响。例如,估计全球温室气体排放的 8-10% 来自未使用的食物。相反,减少食物浪费将有助于减少温室气体排放和全球污染,并增加遭受饥饿的国家的粮食供应。

这种情况表明,在不久的将来,我们需要关注的不是扩大食品生产,而是及时控制质量,以便新鲜产品可以销售和消费。为了解决当前的情况,人类将需要更智能的用户友好型技术,以帮助他们实时监控产品质量。

在这篇文章中,我将解释一种检查食品质量的简单方法,该方法可以在普通商店甚至您自己的冰箱中实施。

介绍
最近,我做了一个简单的实验,我想和大家分享一下,因为我坚信这样的实际解决方案可以对解决全球性问题产生很大的影响。

我的想法是使用 Tiny Machine Learning 方法根据气体传感器的数据预测食物是新鲜的还是变质的。我使用 7 个气体传感器进行了实验。

在我的教程中,您将会学习如何自动创建一个超小型机器学习模型,将其嵌入传感器的微控制器中,并使用它检查食品质量。

所以让我们开始吧!

程序:
第 1 步:使用 Neuton 创建 TinyML 模型
在 Neuton 平台上创建一个新的解决方案“食品质量”,并上传包含食品质量信号的训练数据集,标记为两个类别(新鲜和变质)。我的数据集包含 784 行。

然后,选择目标(标签)和目标指标(准确度),同时启用微型机器学习模式。此外,为没有浮点数据类型的计算选择 8 位深度,然后单击“开始部署”。

模型将在几分钟内准备就绪,接下来需要下载模型。

第 2 步:创建微控制器的固件
下载示例:https ://github.com/Neuton-tinyML/arduino-example

项目介绍
该项目包含:

  • 通过 USB-UART 串​​口接收数据集的代码,
  • 预测实现,
  • 结果指示,
  • 用于测量预测时间的代码。

主草图文件“ arduino-tiny-ml-neuton.ino ”具有处理数据包的功能。

主要过程在 user_app.c 文件中进行:

static NeuralNet neuralNet = { 0 };

extern const unsigned char model_bin[];

extern const unsigned int model_bin_len;

uint8_t app_init()

{

return (ERR_NO_ERROR != CalculatorInit(&neuralNet, NULL));

}

inline Err CalculatorOnInit(NeuralNet* neuralNet)

{

memUsage += sizeof(*neuralNet);

app_reset();

timer_init();

return CalculatorLoadFromMemory(neuralNet, model_bin, model_bin_len, 0);

}

在这里,创建一个对象 NeuralNet 并调用一个函数来加载位于文件model.c中的模型

CalculatorLoadFromMemory(neuralNet, model_bin, model_bin_len, 0);

该模型现在已准备好进行预测。为此,您需要通过将大小为 neuralNet.inputsDim 的浮点数组传输给 CalculatorRunInference 函数来调用它。

最后一个值是 BIAS,应该是 1。

inline float* app_run_inference(float* sample, uint32_t size_in, uint32_t *size_out)

{

if (!sample || !size_out)

return NULL;

if (size_in / sizeof(float) != app_inputs_size())

return NULL;

*size_out = sizeof(float) * neuralNet.outputsDim;

if (app.reverseByteOrder)

Reverse4BytesValuesBuffer(sample, app_inputs_size());

return CalculatorRunInference(&neuralNet, sample);

}

执行预测时,会调用三个回调函数:预测之前的 CalculatorOnInferenceStart 和预测之后的 CalculatorOnInferenceEnd,以及带有预测结果的 CalculatorOnInferenceResult。

在示例中,我使用这些函数来测量预测时间。

具有类概率的数组与预测结果一起传递给函数,大小为neuralNet.outputsDim。在这里,找到概率最高的类,如果概率 > 0.5,则打开 LED(绿色为 0 类,红色为 1 类)。

inline void CalculatorOnInferenceResult(NeuralNet* neuralNet, float* result)

{

if (neuralNet->taskType == TASK_BINARY_CLASSIFICATION && neuralNet->outputsDim >= 2)

{

float* value = result[0] >= result[1] ? &result[0] : &result[1];

if (*value > 0.5)

{

if (value == &result[0])

{

led_green(1);

led_red(0);

}

else

{

led_green(0);

led_red(1);

}

}

else

{

led_green(0);

led_red(0);

}

}

}

第 3 步:将下载的模型复制到草图中
将模型文件model.c从模型存档复制到 MCU 固件。

第 4 步:编译草图并将其上传到开发板
现在一切都准备好,可以进行草图编译了。我用程序将数据从计算机发送到 MCU 并显示预测结果(它模拟传感器数据并将数据发送到 MCU)。

根据您的操作系统,使用bin文件夹中的相应文件。

您需要为实用程序指定两个参数:USB 端口和数据集文件。

该实用程序读取 CSV 文件并将样本逐行发送到微控制器。然后,它将结果作为 CSV 文件输出到标准输出流。发送所有样本后,实用程序会请求一份包含预测时间和消耗的内存量的报告。

第 5 步:检查嵌入式模型的功能
创建两个 CSV 文件,每个文件包含一行,其中的数据对应于两个类别:新鲜和变质。

然后,将它们中的每一个发送到微控制器并查看预测结果

在第一种情况下,食物保持新鲜,因为预测类别为零,这意味着结果是“新鲜食物”。该预测是在 3844 微秒内完成的,闪存使用量为 199kB,RAM 使用量为 136B。此外,您可以看到绿色 LED 亮起,这表示结果良好。

在另一种情况下,我们会看到模型预测食物变质了,因为预测的类别是一类,表示“食物变质”。预测也非常快,在 3848 微秒内,使用相同的 199 kB 闪存和 136 kB RAM。在这种情况下,您可以看到红色 LED,表示食物已变质。

结论:
这个实验证明,只需 5 个简单的步骤,您就可以创建一个工作智能设备,尽管它的体积很小,但对监控食品质量有很大帮助。我绝对确信这些技术可以帮助我们使我们居住的世界变得更清洁、更健康。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微控制器
    +关注

    关注

    48

    文章

    6806

    浏览量

    147601
  • 气体传感器
    +关注

    关注

    14

    文章

    512

    浏览量

    37335
  • 智能设备
    +关注

    关注

    4

    文章

    969

    浏览量

    45855
收藏 人收藏

    评论

    相关推荐

    食品物性检测

    ;nbsp;   该项目是基于工业食品生产检测而开发的,他由MCU做核心控制,利用步进电机控制压力传感器的移动,来实现
    发表于 11-08 16:22

    Honeywell霍尼韦尔气体质量流量传感器

    AWM3200V气体质量流量传感器, 信号调理: 放大; 流量/压力范围:±5.0 mbar [2.0 in H2O]; 接口类型:直形AWM5101VC气体质量流量传感器, 信号调理
    发表于 09-16 16:57

    【Thunderboard Sense试用申请】基于MEMS气体传感器的鲜食冰箱系统

    项目名称:基于MEMS气体传感器的鲜食冰箱系统试用计划:采用该开发板,结合MEMS气体传感器,对冰箱中的
    发表于 05-25 18:14

    气体传感器在生活中的普及与应用

    工业检测有机 溶剂和磷烷等剧毒气体;电力工业检测电力变压油变质过程中产生的氢气等。  空气环境检测当然也离不开
    发表于 11-10 14:13

    气体传感器的特性及分类

    传感器智能化  随着人们生活水平的不断提高和对环保的日益重视,对各种有毒、有害气体的探测,对大气污染、工业废气的监测以及对食品和居住环境质量检测
    发表于 10-31 14:53

    常见的气体传感器分类与原理

    主要用于针对某种特定气体进行检测,测量该气体传感器附近是否存在,或在传感器附近空气中的含量。因此,在安全
    发表于 11-09 15:51

    气体传感器原理应用以及型号参数和特性详解

    、有害气体的探测,对大气污染、工业废气的监测以及对食品和居住环境质量检测都对气体传感器提出了更
    发表于 11-09 16:25

    气体传感器有哪些种类?

    随着人们生活水平的提高和对环保的日益重视,对各种有毒、有害气体的探测,对大气污染、工业废气的监控以及对食品和人居环境质量检测都提出了更高的要求,作为感官或信号输入部分之一的
    发表于 08-21 06:08

    气体检测仪常用的传感器

    介绍各个传感器的工作原理及优缺点。  一、气体检测仪之红外原理  原理:非分光红外原理NDIR传感器利用比尔-朗伯红外吸收定律,即不同气体
    发表于 12-02 15:09

    食品质量安全卫生知识培训

    食品质量安全卫生知识培训是通过一些图片的PPT展示来让大家熟知安全卫生的环节。
    发表于 02-19 17:44 29次下载

    食品质量安全与卫生管理之探讨

    食品质量安全与卫生管理之探讨在日常生活中饮食跟每个人都息息相关的,每个人的饮食习惯、吃的东西不完全一样,且不时传出食物中毒事件。因此食品质量
    发表于 01-30 15:57 20次下载

    统计质量管理在食品品质控制中的应用

    统计质量管理在食品品质控制中的应用The application of statistical management in food quality control 食品质量
    发表于 01-30 16:18 12次下载

    农药检测仪器保障食品质量安全

    农药检测仪器【恒美 HM-NC20】是用来检测蔬菜、水果、茶叶、粮食等食品中可能存在的农药含量,借以判断被检测样品中农药含量是否超标。目前农
    发表于 08-31 16:05 222次阅读

    如何利用食品安全检测仪来维护食品安全

    食品检测食品安全非常重要。只有对我们所吃的食品进行定期检测,确保食品安全,才能有效避免“问题事件”的发生,保证
    发表于 09-29 15:16 468次阅读

    利用高光谱成像评估水果和蔬菜的成熟度和老化

    监测和控制食品质量对于追求利润和负责任的食品生产至关重要。特别是对于水果和蔬菜来说,它们比其他食品更加敏感,必须新鲜出售和加工才能更加有价值和更加健康。高光谱成像为自动
    的头像 发表于 08-21 16:24 931次阅读
    <b class='flag-5'>利用</b>高光谱成像评估<b class='flag-5'>水果</b>和蔬菜的成熟度和老化