智能居家垃圾通识别设计与实现

本文介绍了一个基于深度学习的垃圾分类桶图像识别系统。该系统通过建立包含有害、可回收、厨余和其他四类垃圾桶的图像库,并利用卷积神经网络进行训练,实现了对不同类型的垃圾桶进行准确分类。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、垃圾桶类型

(1)有害垃圾桶

(2)可回收垃圾桶

(3)厨余垃圾桶

(4)其他垃圾桶

分别代表:有害垃圾、可回收物、厨余垃圾、其他垃圾。

分类垃圾桶的颜色分别代表如下:

(1)红色垃圾桶

红色代表有害垃圾。有zhi害物质包括废电池、荧光灯管、油漆、过期药dao品、化妆品等等不可回收,且带有一定污染危害的物质。

(2)绿色垃圾桶

绿色代表厨余垃圾。厨余垃圾可以作为植物养分的肥料使用,土壤掩埋后可被大自然微生物和植物分解吸收,起到废物再利用的作用。

(3)蓝色垃圾桶

蓝色代表可回收再利用垃圾,包括塑料、纸类、金属等有利用价值的物质,这些物质将被纳入废品回收系统,作资源再生处置使用。

(4)灰色垃圾桶

除了有害物质与可回收物质以外的垃圾,砖瓦、陶瓷、渣土等难以回收的废弃物,这类物质一般会被焚烧、掩埋等处理。

分类垃圾桶,不管是从他的真正意义上的使用价值还是实用价值,或者是他的质量和价格都是突出,人们s先分类垃圾桶,对于生活中每个家庭里的分类垃圾桶都是默默无闻无私奉献,在家里z需要的时候它就会出现在我们的面前,对于分类垃圾桶我们已经很自觉的已经把它默认为生活中的必需品更是家庭中的一分子。

二、系统设计

 

1. 建立图像识别库

从网上查找“有害垃圾”、“可回收物”、“厨余垃圾”和“其他垃圾”4种垃圾桶图像,形成垃圾桶图像库。

2. 图像数据归一化

对于深度学习卷积神经网络需要输入的图像大小是一致的,因此对所以类别的图像进行归一化处理,是每张图像大小一致。

主要目的是由两个一个是训练时需要所以图像大小一致,还由一个时模型训练的时候数据太大会导致训练时间太长。

原图

归一化图像

 

3. 建立深度学习卷积神经网络

采用matlab深度学习工具箱,对4类垃圾桶图像进行训练,建立分类模型。网络设置如下:

layers = [
    imageInputLayer(inputSize)  % 输入图像
    convolution2dLayer(5,20)    % 卷积层
    batchNormalizationLayer     % 批量归一化
    reluLayer                    % Relu激活函数
    fullyConnectedLayer(numClasses)  % 全连接层
    softmaxLayer    % softmax 层
classificationLayer];   % 输出类别

训练设置:

options = trainingOptions('sgdm', ...   % 优化函数 sgdm
    'MaxEpochs',20, ...                   % 最大迭代次数
    'ValidationData',imdsValidation, ...   % 显示验证集误差
    'ValidationFrequency',30, ...       % 验证频率,几个batchsize后验证一次
    'Verbose',false, ...    % 实时训练进程,默认为true
    'Plots','training-progress');  % 画出实时训练进程

 

4. 对未知图像进行识别

从网上查找“有害垃圾”、“可回收物”、“厨余垃圾”和“其他垃圾”4种垃圾桶图像,对模型进行识别。

首先对网上下载的图像进行归一化处理,然后再进行识别。具体代码如下所示。

%% 预测
% 判断是否已经建立模型
if isfield(handles,'net') == 0  % 如果变量 handles.net没有定义
    errordlg('请先建立模型!')  % 弹出错误对话框
    return
end

% 导入图像
[filename, pathname, ~] = uigetfile(...
    {'*.jpg','图像文件(*.jpg)';'*.png','图像文件(*.png)';...
    '*.bmp','图像文件(*.bmp)';'*.tif','图像文件(*.tif)'},...
    'MultiSelect','off'); 

% 判断是否选择图片
if isequal(filename,0)||isequal(pathname,0)
    return;  % 如果没有选择图像文件结束程序
end

%% 读取图像
fig_name = strcat(pathname, filename);
I = imread(char(fig_name));
newI = imresize(I,[50,50]);

axis(handles.axes1)
imshow(I)

%% 预测
net = handles.net;
testImage = newI;
testLabel = classify(net, testImage);

if testLabel == "1"
    y_label = '厨余垃圾桶';
elseif testLabel == "2"
    y_label = '可回收垃圾桶';
elseif testLabel == "3"
    y_label = '其他垃圾桶';
elseif testLabel == "4"
    y_label = '有害垃圾桶';
end
set(handles.edit8,'string',y_label)

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NIR_cloud

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值