news 2026/1/25 10:17:46

基于Tensorflow的自训练CNN算法与mobileNet迁移学习:图片及视频垃圾分类系统

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
基于Tensorflow的自训练CNN算法与mobileNet迁移学习:图片及视频垃圾分类系统

基于Tensorflow的垃圾分类系统 自训练CNN算法模型与mobileNet迁移学习,可用于图片或视频垃圾分类。 模型经过训练,具有识别能力,可以对视频画面中的物品进行分类,包括4个分类大类,训练集有八万多张图像,训练集验证准确率为91—95%,验证集准确率85—90%,具有较高的准确率。 该模型可以应用于智能垃圾桶、智能回收站等场景中,提高垃圾分类效率。

最近在捣鼓一个基于TensorFlow的垃圾分类系统,感觉挺有意思的,分享一下我的思路和代码。这个系统主要是通过自训练的CNN算法模型和mobileNet迁移学习来实现的,能够对图片或视频中的垃圾进行分类。模型训练了八万多张图像,训练集的准确率在91%到95%之间,验证集的准确率也有85%到90%,效果还不错。

模型架构

首先,我们来看一下模型的架构。我选择了一个自训练的CNN模型,同时也尝试了mobileNet的迁移学习。mobileNet是一个轻量级的模型,适合在移动设备上运行,这对于我们想要部署到智能垃圾桶或回收站的场景来说非常合适。

import tensorflow as tf from tensorflow.keras import layers, models def build_cnn_model(): model = models.Sequential([ layers.Conv2D(32, (3, 3), activation='relu', input_shape=(224, 224, 3)), layers.MaxPooling2D((2, 2)), layers.Conv2D(64, (3, 3), activation='relu'), layers.MaxPooling2D((2, 2)), layers.Conv2D(128, (3, 3), activation='relu'), layers.MaxPooling2D((2, 2)), layers.Flatten(), layers.Dense(128, activation='relu'), layers.Dense(4, activation='softmax') # 4个分类大类 ]) return model # mobileNet迁移学习 def build_mobilenet_model(): base_model = tf.keras.applications.MobileNetV2(input_shape=(224, 224, 3), include_top=False, weights='imagenet') base_model.trainable = False model = models.Sequential([ base_model, layers.GlobalAveragePooling2D(), layers.Dense(128, activation='relu'), layers.Dense(4, activation='softmax') # 4个分类大类 ]) return model

数据准备

接下来是数据准备部分。我们使用了八万多张图像进行训练,这些图像涵盖了四个主要的垃圾分类类别。为了增强模型的泛化能力,我还对数据进行了增强处理,比如随机旋转、缩放、翻转等。

from tensorflow.keras.preprocessing.image import ImageDataGenerator train_datagen = ImageDataGenerator( rescale=1./255, rotation_range=20, width_shift_range=0.2, height_shift_range=0.2, shear_range=0.2, zoom_range=0.2, horizontal_flip=True, fill_mode='nearest' ) train_generator = train_datagen.flow_from_directory( 'path_to_train_data', target_size=(224, 224), batch_size=32, class_mode='categorical' )

模型训练

模型训练部分,我使用了Adam优化器和交叉熵损失函数。为了监控训练过程,我还添加了准确率和损失值的回调函数。

model = build_mobilenet_model() model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy']) history = model.fit( train_generator, epochs=10, validation_data=validation_generator )

模型评估

训练完成后,我对模型进行了评估。训练集的准确率在91%到95%之间,验证集的准确率在85%到90%之间,效果还是相当不错的。

loss, accuracy = model.evaluate(test_generator) print(f'Test accuracy: {accuracy:.2f}')

应用场景

这个模型可以应用在智能垃圾桶、智能回收站等场景中。通过摄像头实时捕捉画面,模型可以快速识别垃圾类别,并自动分类。这不仅提高了垃圾分类的效率,还能减少人工分类的错误率。

总结

总的来说,这个基于TensorFlow的垃圾分类系统还是挺实用的。通过自训练的CNN模型和mobileNet迁移学习,我们能够达到较高的分类准确率。未来还可以考虑进一步优化模型,比如增加更多的训练数据,或者尝试其他更高效的模型架构。

好了,今天就先聊到这里,如果你对这个项目感兴趣,欢迎在评论区交流讨论!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/17 20:55:50

22、《sk_buff在协议层间的移动机制解析》

《sk_buff在协议层间的移动机制解析》 在网络通信中,数据包在协议层间的移动是一个复杂而关键的过程。了解 sk_buff (socket buffer)在各协议层间的移动机制,对于理解网络通信的底层原理至关重要。本文将详细介绍数据包在TCP/IP协议栈中上下移动的过程,包括发送和接收流…

作者头像 李华
网站建设 2025/12/27 12:25:11

编程竞赛系统准备五阶段:从基础到实战的完整攻略

编程竞赛系统准备五阶段:从基础到实战的完整攻略学习路径的三个核心层次青少年编程学习与能力认证可划分为三个关键阶段。首先是兴趣启蒙与基础认知阶段,重点在于通过图形化编程等工具培养信息素养和计算思维,避免初学阶段因抽象语法而产生的…

作者头像 李华
网站建设 2026/1/23 23:22:09

元学习驱动的快速领域适应推理策略生成方法

元学习驱动的快速领域适应推理策略生成方法 关键词:元学习、快速领域适应、推理策略生成、机器学习、领域迁移 摘要:本文聚焦于元学习驱动的快速领域适应推理策略生成方法。首先介绍了该方法提出的背景和目的,包括其在解决不同领域数据分布差异问题上的重要性。接着详细阐述…

作者头像 李华
网站建设 2026/1/22 19:07:39

【教程】通过Docker安装群晖NAS系统

转载请注明出处:小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你,欢迎[点赞、收藏、关注]哦~ 背景介绍 刷完机(【教程】网心云OES Plus刷机armbian)发现NAS功能不好搞,后来发现可以通过Docker来安装群晖NAS系统。 安装步骤 1. 验证是…

作者头像 李华
网站建设 2026/1/11 15:25:08

Deepoc具身智能模型:引领人形机器人与机器狗二次开发新革命

导读:随着工业巡检、场景服务等领域对智能机器人需求的激增,人形机器人与机器狗的二次开发成为产业落地的核心突破口。传统巡检机器人深陷“预设任务依赖”的局限,难以适配复杂多变的实际场景。Deepoc具身智能模型凭借“感知-理解-决策-行动”…

作者头像 李华
网站建设 2025/12/26 4:13:02

Deepoc深算纪元:以具身智能重塑设备升级,引领人机协同新未来

导读:Deepoc深算纪元,以科技之力引领智能变革。当传统设备深陷“功能固化、升级成本高”的困境,我们的具身智能模型正赋予机器以“灵魂”,让智能体能够在真实环境中感知、思考与行动,重塑人机交互。无需高额换购&#…

作者头像 李华