【2021研电赛】基于机器视觉的智能水果质量监测系统

本作品介绍参与极术社区的有奖征集|分享研电赛作品扩大影响力,更有重磅电子产品免费领取!

团队介绍

参赛单位:华东理工大学
参赛队伍:Invictus Team II
指导老师:黄如 副教授
参赛队员:陈子健、管文范、冯默然
获奖情况:技术赛全国二等奖

1.作品简介

随着疫情来势汹汹席卷全球,新时代下人们对健康要求水平也有所提高。水果在日常饮食中扮演着愈加重要的角色,健康的饮食习惯越来越被人们在意。为此合理划分水果新鲜程度等级,对水果的新鲜程度做出预测,无论是在工业领域或是家用场景下,都具有一定的商业价值。

目前在水果识别领域,应用最广的是利用机器人分拣技术来进行水果分拣。然而这种机器人技术适用于大型流水线工厂,并不适合于家用水果识别监测。在水果分类识别过程中,若由人工进行水果质量监测,既费时又费力,可能夹杂主观意识,并不能保证准确度。本作品针对以上问题,根据水果识别以及新鲜度监测的功能需求,对该智能家用水果质量监测系统的总体方案进行了设计。

系统主要由视觉采集模块,温湿度传感模块,酒精传感器模块、控制器模块,通讯模块和PC终端上位机、Android app软件组成。在考虑实际应用环境,目标群体后完成了系统的硬件选型,主要包括摄像头系统,控制处理模块。同时设计并搭建了水果监测储藏一体化装置,并针对水果质量监测系统提出了可行的系统软件设计方案。

为实现水果的识别和实时质量监测,在参考根据国家标准制定的《新鲜果品质量分级指南》后,经过长达两个月的不同温湿度实验环境下,进行了不同水果腐烂速度对比实验,选取腐烂现象较为明显的苹果、香蕉、橙子三种水果作为项目展示案例数据集。将数据集输入经过改进的目标检测算法YOLO-V3,启发式的在原网络的基础上结合远近邻域算法捕捉水果表面的缺陷特征送入时序神经网络层用以预测水果新鲜度评分,适当的在全连接层中加入Dropout策略以增加模型的泛化能力,并使用LeakyReLU作为激活函数以缓解由于模型层数增加所带来的梯度爆炸和梯度消失现象。以分数图表形式展示水果新鲜度相较于图像形式更为直观,更能让人接受。结合经C++开发的上位机软件,实现了实时监测水果新鲜程度并显示其未来新鲜度下降曲线,给出食用建议,满足人们对于水果质量的高标准要求。同时装置配备有通风功能,在储藏水果的同时,防止其加速腐败。此外,系统一旦启动,即可实现全天候自动监测,无需人为干预。

2.算法设计

由于水果质量变化在空间和时间上存在不确定性,但属于长时变化。对短时实时性要求较低。因此本设计选用基于颜色描述特征的缺陷检测算法结合神经网络学习输出,以达到预测的目的。该算法引入邻域信息,水果表面的缺陷分布具有离散型,但从某一具体缺陷上看,其涵盖的所有图像块呈现连续近邻的特点。利用邻域信息捕捉中心图像块和其邻域图像块颜色特征的相似性。最后获取置信度矩阵,构成神经网络学习的加权系数。从整体上看,本作品只需将图像序列送入设计好的网络结构就可直接得到预测结果,识别过程简单并且准确率高,预测有效性强。在此背景下,本课题引入基于时序卷积神经网络与远近邻域构建算法作为提取与预测水果新鲜度特征的神经网络,首先采用自适应去除背景的技术来减少预测时背景对预测结果的影响。其次,向网络输入要预测的图像和经由远近邻域算法构建的置信度矩阵作为训练权重的一部分。进一步将输出输入LSTM长短时记忆网络,最后统一经过Softmax激活函数输出预测值。在实际的应用场景中,光照变化的复杂性和背景的复杂性也是影响预测的重要因素,同时本设计更加注重算法执行的实时性,本课题所提出的网络模型经过训练后在精度与速度方面有更高的优越性。
在这里插入图片描述

3.作品设计框图

在这里插入图片描述

作品展示

作品全貌

在这里插入图片描述

自行开发的PC上位机展示

在这里插入图片描述

4.作品总结与展望

在这里插入图片描述

作品视频分享

https://www.bilibili.com/video/BV17341127J4/?aid=420555103&cid=408596752&page=1

更多研电赛作品请查看2021年研电赛获奖作品合集

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/200045.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

移动CRM可以在哪些场景下使用

最近杭州亚运会盛大举办,外国友人在打卡各地美食景点的同时也体会到了移动支付的乐趣。在智能手机全面普及的今天,移动CRM系统的应用也越来越广泛,移动CRM系统的应用场景有哪些?我们分享两个例子。 场景A: 李明是刚刚…

卡码网语言基础课 | 16. 出现频率最高的字母

目录 一、 哈希表 二、 编写解题 2.1 统计出现次数 2.2 解答 通过本次练习,将学习到C中哈希表的基础知识 题目: 给定一个只包含小写字母的字符串,统计字符串中每个字母出现的频率,并找出出现频率最高的字母,如果…

王者荣耀游戏制作

1.创建所需要的包 2.创建怪物类 bear package beast;import wangzherogyao.GameFrame;public class Bear extends Beast {public Bear(int x, int y, GameFrame gameFrame) {super(x, y, gameFrame);setImg("img/bear.jpg");width 85;height 112;setDis(65);}} b…

【目标跟踪】光流跟踪(python、c++代码)

文章目录 前言一、代码流程与思路二、python 代码2.1 代码详解2.2 完整代码 三、c 代码四、结果展示 前言 光流利用图像序列中像素在时间域上的变化以及相邻帧之间的相关性来找到上一帧跟当前帧之间存在的对应关系,从而计算出相邻帧之间物体的运动信息的一种方法。…

初探HarmonyOS路由跳转

最近的鸿蒙新闻也是很大声势,鸿蒙的纯血版一出,各大互联网大厂都坐不住了,纷纷加入其中。这意味鸿蒙将来会取代大部分Android用户,这也是程序员的一篇大好前程。如今的Android开发行业已经夕阳西下了。 网上有关HarmonyOS的资料几…

雷达公式实现(matlab)

雷达公式实现 代码来源:《雷达系统分析与设计(MATLAB版)(第三版)》 function [snr] radar_eq(pt,freq,g,sigma,b,nf,loss,range) % This program implements Eq.(1.63) %% Inputs:% pt——峰值功率,W% freq——雷达中心频率,Hz% g——天线…

Linux 启动过程

linux启动步骤&#xff1a; <1>加电 <2>加载bios设置 <3>加载grup <4>加载内核系统到内存中 <5>加载配置文件 <6>加载内核模块 <7>完成相应的初始化工作和启动相应的服务 <8>启动系统进程 <9>出现登录界面 &l…

【傻瓜级JS-DLL-WINCC-PLC交互】6.​向PLC里面装载数据变量

思路 JS-DLL-WINCC-PLC之间进行交互&#xff0c;思路&#xff0c;先用Visual Studio创建一个C#的DLL控件&#xff0c;然后这个控件里面嵌入浏览器组件&#xff0c;实现JS与DLL通信&#xff0c;然后DLL放入到WINCC里面的图形编辑器中&#xff0c;实现DLL与WINCC的通信。然后PLC与…

低代码(Low Code)多项目开发平台核心能力解析

随着信息化的发展&#xff0c;企业基于互联网的业务不断得到扩展&#xff0c;作为业务协调的基础&#xff0c;企业信息系统的复杂程度也在不断提高。系统复杂了&#xff0c;就容易出问题&#xff0c;这就对系统的性能、可用性、可靠性和安全性都提出了新的要求&#xff0c;因此…

流程控制翻转学习

&#x1f4d1;前言 本文主要是【Python】——Python流程控制翻转学习的文章&#xff0c;如果有什么需要改进的地方还请大佬指出⛺️ &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是听风与他&#x1f947; ☁️博客首页&#xff1a;CSDN主页听风与他 &#x1f304;每…

【Python基础】协程(迭代器、生成器、协程、gevent介绍)

&#x1f308;欢迎来到Python专栏 &#x1f64b;&#x1f3fe;‍♀️作者介绍&#xff1a;前PLA队员 目前是一名普通本科大三的软件工程专业学生 &#x1f30f;IP坐标&#xff1a;湖北武汉 &#x1f349; 目前技术栈&#xff1a;C/C、Linux系统编程、计算机网络、数据结构、Mys…

完美滤波器

完美滤波器 如下图所示&#xff0c;第 j j j级为输入图像&#xff0c;其中第 j − 1 j-1 j−1级为第 j j j级的尺寸减半的存在&#xff0c;直至为 1 1 1\times 1 11 的大小&#xff0c;这样的模式被称为图像金字塔 设原图像像素点个数为 N 2 N^2 N2&#xff0c;则图像金字塔的…

华清远见嵌入式学习——C++——作业一

作业要求&#xff1a; 代码&#xff1a; #include <iostream>using namespace std;int main() {string str;cout << "请输入一个字符串&#xff1a;" << endl;getline(cin,str);int dx0,xx0,sz0,kg0,qt0;int len str.size() 1;for(int i0;i<l…

互联网程序设计HTML+CSS+JS

一、HTML基础 HTML超文本标记语言。 超文本&#xff1a;链接&#xff1b; 标记&#xff1a;标签&#xff0c;带尖括号的文本。 1、标签结构 标签要成对出现&#xff0c;中间包裹内容&#xff1b; <>里面放英文字母&#xff08;标签名&#xff09;&#xff1b; 结束…

铝合金轮毂金属部件全自动三维精密测量工业光学3d智能检测仪器-CASAIM-IS(2ND)

一、背景介绍 汽车轮毂是汽车零部件的重要组成部分。对于汽车而言&#xff0c;轮毂等同于腿对人的重要性。车辆将在行驶过程中产生横向和纵向载荷&#xff0c;车轮也将承受车辆和货物的所有载荷。随着汽车的速度越来越快&#xff0c;对车轮的动态稳定性和可靠性的要求也越来越…

phtoshop获取签字,并且设置背景透明的办法

目的&#xff1a;获取背景透明的“座山雕”签名 1.打开图片&#xff08;任意格式图片文件&#xff09;&#xff0c;&#xff0c;保存记得是*.png格式(这种格式可以保存背景透明的格式) 2.魔术棒点“白色”的空白地方&#xff08;快速选择除“座山雕”外的地方&#xff0c;目的…

C语言基础程序设计题

1.个人所得税计算 应纳税款的计算公式如下&#xff1a;收入<&#xff1d;1000元部分税率为0&#xff05;&#xff0c;2000元>&#xff1d;收入>1000元的部分税率为5&#xff05;&#xff0c;3000元>&#xff1d;收入>2000元的部分税率为10&#xff05;&#xf…

MySQL触发器-使用示例

一、什么是触发器 触发器是与表有关的数据库对象&#xff0c;在满足定义条件时触发&#xff0c;并执行触发器中定义的SQL语句 举个例子&#xff1a;有两个表&#xff0c;员工表和部门表。当一个员工入职时&#xff1a; 员工表需要insert一行员工详细信息&#xff08;id,empl…

supermap-iserver激活教程(linux)

本篇只介绍linux临时许可激活教程&#xff0c;windows的原理一摸一样不做赘述。 1.下载许可中心&#xff08;web版&#xff09; SuperMap技术资源中心|为您提供全面的在线技术服务 2.解压 supermap-bslicense-server-3.0.24-linux-x64.tar.gz tar -zxvf supermap-bslicense…

WebGL技术框架及功能

WebGL&#xff08;Web Graphics Library&#xff09;是一种用于在Web浏览器中渲染交互式3D和2D图形的JavaScript API。它允许在不需要插件的情况下&#xff0c;在支持WebGL的浏览器中直接运行高性能的图形渲染。WebGL没有一个固定的技术框架&#xff0c;而是基于JavaScript API…