路见不平 ! 基于tensorlfow快速迭代的户型图分类功能
前言
在工作之余,发现合作的同事需要手动筛选户型图,存在一些老旧或无家具的户型图。这启发我们通过机器学习的模型预测来辅助校验,进而优化筛选流程。当前本期目标为6万个,后续也会有数据需要筛选,已经筛选出一部分数据 可以进行模型训练,但时间紧任务重,需要快速迭代出模型,提高筛选效率。
1. 总目标
实现高效的户型图识别系统,具体包括:
• 构建分类模型,提高户型图筛选效率;
• 提供人机交互界面,以便人工校验,并支持数据导出功能。
2. 模型构建部分
2.1 问题理解与目标确定
任务描述:对户型图进行自动分类,以解决以下问题:
• 无家具户型图
• 老旧户型图
• 存在孤立单字的户型图(例如,“客”、“厨”等单字独立出现的情况)
数据规模:初始数据包含6万张户型图。
2.2 数据收集与整理
数据来源:从已分类的数据中批量读取无家具和老旧户型图的图像,这些类别特征明显,易于建模。
数据整理步骤:
1. 数据清理:确保图像文件完好,格式统一;
2. 去重处理:清除重复图像,保证训练数据的唯一性;
3. 标签定义:根据分类需求添加标签,例如无家具、老旧、空间单字等。
预期结果:得到干净、无重复、已带标签的图像数据集。
2.3 数据预处理
图像预处理步骤:
1. 调整图像尺寸为统一大小(例如224x224像素);
2. 考虑灰度化或色彩标准化,以减少特征维度或统一色彩信息;
3. 通过随机旋转、缩放、翻转等操作增强数据多样性,提高模型的泛化能力。
预期结果:获得适用于模型训练的标准化图像数据集。
2.4 模型选择与设计
模型选择:
• 使用预训练的卷积神经网络(CNN),比如本次使用的MobileNetV2,借助迁移学习进行模型优化。冻结特征提取层,重点训练分类层,以提高效率。
模型架构:
• 输入层:接收预处理后的图像;
• 卷积与池化层:进行特征提取与降维;
• 全连接与输出层:完成分类决策。
预期结果:形成适用于户型图分类的高效模型架构。
2.5 模型训练与评估
训练步骤:
1. 将数据集按比例划分为训练集、验证集和测试集(70%/15%/15%);
2. 设定批量大小、学习率和优化器等超参数;
3. 使用验证集监控训练过程,防止过拟合;
4. 进行超参数调优,以优化模型性能。
评估指标:准确率、精确率、召回率、F1分数等,通过测试集评估模型的泛化能力。
预期结果:获得表现良好的分类模型,其测试准确率达99.12%。
2.6 模型优化与调优
错误分析:针对错误分类样本分析原因,调整模型以改善其在特定类别上的表现,例如增加该类别数据量或进行数据增强。
改进措施:考虑更复杂的模型架构,或采用集成学习方法提升分类精度和稳定性。
测试成功率达 99.12%
得到了用户反馈
再得到新校验的户型图数据后 能够更加准确
2.7 模型部署
• 部署方式:
本次在本地批量运行模型 后续将部署到服务器上,或者部署在端侧。
• 预期结果: 模型成功部署并能高效处理户型图的分类任务。
2.8 模型维护与更新
• 持续学习: 随着新的数据不断加入,模型需要定期重新训练或微调,以适应数据分布的变化。
• 性能监控: 监控模型在实际使用中的表现,确保分类效果保持稳定。
总结
10月末产生此次训练此次模型的想法 经过不断打磨训练出个还不错的模型。这整个流程从数据收集、预处理、模型选择与训练,到最终部署和维护,构成了一个完整的户型图分类系统的开发流程。通过此流程,你可以有效解决户型图中的无家具、老户型问题,并在6万张图像数据上建立高效的分类模型。
3.户型图标识界面
背景
在原始的标识模型界面并不能迭代且不能适配此次智能推断的情况下,临时周一11月4号决定开发前端标识程序,并于11月6号能够流畅使用。
覆盖现有实现的功能
-
读取文件并展示列表数据
-
标识图片及支持多选
-
导出标识结果
拓展优化功能
-
由exe windows程序改为web网页(由flutter开发), 能够及时迭代部署、跨端使用、不需要特定设备,后续也可以及时支持端侧。
-
分页分列表预加载 (提高加载速度)
-
能够展示预测问题分类并表示 (用红框标识)
-
有预测问题分类的图片时,免标识。如图 自动带入住宅无家具 用户点击提交即可。 (通过此类交互去肯定的方式点击 新增 由此可以减少用户复杂度,而不是将 预测问题分类列 复制到 问题类型列去让用户去否定,增加用户复杂度)
用户反馈
总结
重新开发了现有的图片分类程序,并成功引入了可以不断迭代的户型图分类模型介入其中,当然还有自动化等优化空间。