一、项目概述
本项目采用TensorFlow/Keras框架构建了一个水果分类识别模型,能够对苹果、香蕉、葡萄、橙子、梨子和西瓜六种水果的图像进行精准分类。经过多轮数据清洗和增强处理,模型最终实现了接近94%的分类准确率。
图像识别训练汇报目录
二、数据采集
2.1 数据来源
-
使用requests库爬取百度图片网站,每类水果爬取约500张图片
-
使用selenium爬取搜狗图片网站,每类水果爬取约1700张图片
-
合计每个类别的水果原始图片数据分别有2200张
-
关键词包括:苹果水果、香蕉水果、葡萄水果、橙子水果、梨子水果、西瓜水果
Project目录:
2.2 爬虫技术实现
-
百度图片爬虫基于requests库实现
-
搜狗图片爬虫基于selenium自动化工具实现
-
为每类水果建立了独立的图片存储目录
爬虫代码:
selenium爬取搜狗图片网站(每类爬取约1700图片)
request库爬取百度图片网站 (每类爬取约500图片)
以苹果这一水果种类为例的爬虫代码展示:
1、request爬百度
2、selenium爬搜狗
三、数据清洗
数据清洗:使用MobileNetV2 模型进行数据清除后又人工选择性拿回部分图片数据,最后再保留rgb格式及未破损的图片
3.1 清洗步骤
3.2 技术实现
-
使用OpenCV进行图像完整性检查
-
采用图像哈希算法(如dHash)检测相似图片
-
利用MobileNetV2模型进行初步质量评估
-
编写自动化脚本批量处理图片格式转换和重命名
用MobileNetV2数据清洗的代码:
除此之外,还有重复图片清除以及处理破损图片及清除非RGB文件
数据清洗成果:
四、数据增强
数据增强:为了防止过拟合及提高模型的泛化能力让各项数据增强方法参数更随机,所作增强方法有:1.垂直翻转和水平翻转、2.随机裁剪和填充图像、3.结合随机旋转和随机亮度调整、4.高斯噪声、5.随机矩形丢弃、6.图像锐化
4.1 增强方法
4.2 技术实现
-
使用imgaug库实现各种增强操作
-
设置不同的增强参数组合提高数据多样性
-
对每类水果图像进行单独的增强处理
-
保存增强后的图像供训练使用
示例其中一类水果的代码部分(对苹果的数据增强)
原图以及六种数据增强后的效果:
五、模型训练
数据多轮训练成果:为体现不同数据通过TensorFlow/Keras 模型训练达到的效果故对不同组数据进行训练。其中包括为1.进行数据清洗的数据、2.通过数据清洗的原始数据、3.以及既进行了数据清洗也进行了数据增强的数据
5.1 训练策略
-
对比了不同数据集的训练效果:
-
原始未清洗数据集
-
仅经过数据清洗的数据集
-
数据清洗+增强的数据集
-
-
采用多轮训练策略:
-
第一轮:25个epoch
-
第二轮:55个epoch
-
不同数据集训练成果
5.2 训练成果
-
原始数据集准确率:约85%
-
清洗后数据集准确率:约89%
-
清洗+增强数据集准确率:接近94%
-
训练过程可视化显示了损失函数和准确率的收敛情况
大图展示
1)原始数据集:
2)经过数据清洗的数据集:
3)数据清洗以及数据增强第一轮(25epoch):
4)数据清洗以及数据增强第一轮(55epoch):
六、 技术总结
-
数据质量至关重要:清洗和增强显著提升了模型性能
-
增强方法多样性:多种增强技术的组合有效防止过拟合
-
模型选择:TensorFlow/Keras框架提供了高效的训练环境
-
迭代优化:多轮训练和参数调整是提高准确率的关键
本项目基于TensorFlow/Keras框架构建的水果图像识别系统,通过规范化数据处理和模型优化实现了93.7%的分类准确率。在数据采集环节采用requests和selenium双渠道爬取策略,建立标准化关键词列表,确保数据来源多样性。创新性地设计三级数据清洗流程:初级OpenCV检测与哈希去重、中级MobileNetV2特征聚类分析、最终人工抽样复核,实现非RGB格式100%清除率。构建包含空间变换、色彩调整、特征遮挡和噪声注入的四维增强体系,数据量提升300%。模型训练采用渐进式策略,分25epoch基础学习和55epoch精细调整两个阶段,配合早停机制和学习率动态调整。经实验验证,数据清洗带来4.2%准确率提升,数据增强贡献3.8%,训练策略优化影响2.1%。项目形成了完整的技术栈和可复用资产,包括自动化清洗流水线、参数化增强模板等,不仅验证了"质量优于数量"的数据处理原则,更确立了三阶段开发范式。未来可向动态增强策略和模型解释性等方向延伸,本项目的核心价值在于建立了一套可迁移的图像识别标准化方案,为计算机视觉任务提供了实践参考。