当前位置: 首页 > news >正文

基于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迁移学习,我们能够达到较高的分类准确率。未来还可以考虑进一步优化模型,比如增加更多的训练数据,或者尝试其他更高效的模型架构。

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

http://www.cnnetsun.cn/news/5584.html

相关文章:

  • Docker与LangGraph多Agent部署全攻略(专家级部署方案首次公开)
  • iOS设备激活锁绕过完整指南:AppleRa1n离线解锁方案
  • Vue3 Excel Editor 终极指南:如何快速实现专业级数据表格编辑功能
  • 4大实战技巧深度解析:量化因子归因全流程指南
  • Vibe Coding 的终极意义:从“面向 Jira 编程”到“面向创造力编程”的飞跃!
  • AI提示系统实时反馈机制性能优化:提示工程架构师的6个实战技巧
  • 奥创中心卸载工具下载使用保姆级教程(附下载地址)
  • Wan2.2-T2V-A14B模型在线Demo体验地址及使用说明
  • 自动驾驶学习宝藏:Autoware Universe 中英对照技术文档
  • 资深办公人亲测:批量修改文件名+保留原名,用对工具效率翻倍
  • 行业科普:什么是物流可信数据空间
  • 从进程到协程【深度解析】——必懂的并发编程
  • 麒麟操作系统用户和组管理
  • 淀粉下游应用,从餐桌到工业,无处不在!
  • eventpp终极集成指南:5种快速配置C++事件处理库的方法
  • 项目风险管理 论文框架
  • 30+专业幻灯片模板集:轻松打造精美演示文稿
  • 传统中文手写数据集全面解析与应用指南
  • Host侧算子实现总览-解码Ascend C算子的“CPU端蓝图“
  • 科普多种mfc100u.dll丢失的解决方法!全面了解mfc100u.dll文件
  • Wan2.2-T2V-A14B在新闻摘要视频自动生成中的实验成果
  • 31、互联网用户安全防护全解析
  • 技术日报|Kaiju游戏引擎逆袭夺冠,Claude记忆插件日增779星登榜第三
  • 《2025提示工程从入门到进阶指南》正式发布 | 中科算网算泥社区
  • 换了 4 家 AI 模型,代码只动了 1 行——这个架构设计让老板随便折腾
  • 【毕业设计】基于SpringBoot的网上订餐系统设计与实现(基于java网上订餐系统的设计与实现(源码+文档+远程调试,全bao定制等)
  • Python大佬正在用的,但你不知道的几个编程技巧
  • 5步掌握pywebview与React桌面应用开发:终极跨平台解决方案
  • 如何快速获取BDD100K数据集:计算机视觉训练完整指南
  • 【C语言】分支语句(简略版)