-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsummary_report_final.txt
More file actions
40 lines (24 loc) · 6.54 KB
/
Copy pathsummary_report_final.txt
File metadata and controls
40 lines (24 loc) · 6.54 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
四川传媒学院实验(训)总结报告
姓名 学号
专业.年级.班级 2024级计算机科学与技术本科01班
课程名称 人工智能应用实践 成绩
报告内容:【1.主要内容 2.完成情况 3.心得体会】
1. 主要内容
本学期《人工智能应用实践》课程围绕“乐高积木图像识别项目”展开,整体工作按照“项目规划与数据准备—模型设计与训练—应用开发与优化”三条主线逐步推进。我在项目实施过程中,综合使用了 Trae IDE、Codex、Git、Python、PyTorch、Streamlit、Plotly 等工具,完成了从需求分析、数据处理、模型训练到 Web 应用部署的完整实践流程。
在项目规划与数据准备阶段,重点完成了项目需求分析、目录结构设计、依赖环境配置、Git 仓库初始化、数据质量检查、统一命名、尺寸预处理和训练集/验证集/测试集划分等工作。通过这一阶段的实践,我建立了较为完整的 AI 辅助开发工作流,并理解了规范数据集对于后续模型训练和部署的重要意义。
在模型设计与训练阶段,完成了自定义 LegoDataset、DataLoader、卷积神经网络模型、前向传播验证、参数统计、批量可视化以及多组超参数对比实验。结合 batch size、learning rate、epoch、dropout、优化器、模型宽度与深度等实验结果,最终确定了以 4 组“卷积—池化”循环为核心的 baseline CNN 方案,并完成最佳模型保存、测试集评估以及训练过程分析。
在应用开发阶段,围绕 Streamlit 多页面应用搭建了图片识别系统,完成了模型加载、图片预处理、前向推理、Softmax 概率输出、结果解析、Plotly 概率分布图展示、示例体验页、关于页、识别历史、摄像头拍照识别以及界面样式优化等功能。同时,为提升实拍图片的稳定性,又进一步加入了抗阴影双路推理策略,对系统的鲁棒性进行了增强和验证。
2. 完成情况
(1)完成了项目整体规划、需求分析和标准化目录结构设计,建立了基于 Git 的版本管理流程,并完成依赖安装、环境配置与基础项目初始化。
(2)完成了数据集整理与预处理工作,构建了当前 7 类 Brick 数据集。根据现有统计结果,共整理图像 213 张,并完成训练集、验证集、测试集的分层划分,为模型训练提供了规范输入。
(3)完成了第二阶段模型设计与训练主线,实现了自定义数据集加载、CNN 网络搭建、可视化验证、超参数对比实验、Early Stopping、模型保存和测试集最终评估。最终保留的主力模型为 4 层卷积池化循环的 baseline CNN,在原始测试集复核中达到 87.5% 的识别准确率。
(4)完成了第三阶段 Streamlit Web 应用开发,已实现多页面导航、图片上传识别、摄像头拍照识别、Top-K 概率展示、Plotly 可视化、示例页面展示、关于页面、识别历史记录、边界情况处理以及界面样式优化等功能,具备较完整的端到端演示能力。
(5)完成了针对实拍阴影干扰问题的进一步优化。通过测试不同预处理和推理策略,最终采用“原图推理 + 抗阴影预处理推理 50/50 融合”的方法提升系统稳健性。按当前代码路径复核,应用侧测试结果达到 93.75%(30/32),相比单路推理有明显改善。
(6)完成了 GPU 训练环境切换、应用调试、前后端联调、错误修复和多轮回归测试。对于 Plate 类别扩展与 Brick+Plate 联合模型替换,已完成方案分析、流程预留与可行性验证,但后续仍可继续补充更稳定的数据采集和联合训练实验。
总体来看,本项目已经完成了课程要求中的主要实验内容,覆盖了“数据准备—模型训练—应用实现—功能优化”的完整链路,并形成了可运行、可测试、可展示的课程成果。
3. 心得体会
通过本次课程实践,我对人工智能项目的完整开发流程有了更加系统和具体的认识。以前对深度学习的理解更多停留在“训练模型”层面,而这次真正从数据准备、需求分析、代码组织、训练调参、结果验证一直做到应用部署,体会到一个项目能否落地,远不只是模型本身是否能够运行,还取决于数据质量、工程结构、调试能力以及界面交互是否完善。
在模型训练方面,我最大的收获是认识到“合适”比“复杂”更重要。实验过程中尝试过更深结构、旋转增强、二值化、阴影预处理等多种方案,但最终效果最稳定的仍然是结构清晰、参数适中的 4 层卷积池化循环 baseline 模型。这让我理解到,在样本规模较小的课程项目中,盲目增加模型复杂度不一定能提升性能,反而可能带来过拟合或分布偏移。真正有效的改进往往来自对问题本身的分析,例如识别误差到底来源于阴影、背景、视角还是类别相似度,而不是机械地堆叠更复杂的网络。
在应用开发方面,我进一步体会到“训练完成并不等于项目完成”。将模型接入 Streamlit 之后,还需要考虑上传流程、摄像头拍照、边界情况处理、概率可视化、界面样式、识别历史以及不同输入场景下的稳定性问题。尤其是在处理实拍图片时,我深刻感受到部署阶段往往暴露出训练阶段没有充分注意的问题,例如光照阴影、目标位置偏移、长条形零件的视角变形等。这些问题最终促使我尝试从推理链路角度做优化,而不是一味重训模型。
另外,AI 辅助工具在本次项目中发挥了很大作用。无论是需求梳理、代码补全、页面开发,还是错误排查、实验方案设计,AI 都有效提升了开发效率。但实践也让我认识到,AI 更像“高效助手”,而不是可以完全替代思考的“自动完成器”。很多建议需要结合实际实验结果反复验证,尤其是在模型调参与工程实现中,只有坚持查看日志、复核数据、对比实验,才能真正做出可靠结论。
总体而言,这次实验让我不仅掌握了相关工具和技术,更重要的是建立了面向真实项目的问题分析意识和工程实现思维。后续如果继续完善本项目,我希望进一步补充更规范的 Plate 数据集,完成 Brick+Plate 联合模型训练与替换,并在现有 Streamlit 应用基础上继续提升摄像头识别、移动端交互和多场景鲁棒性。