中国高校计算机大赛—移动应用创新赛
依柜:个性化服装设计与虚拟试穿应用

项目资源
由于代码文件较多且结构复杂,完整的软件源码已上传至GitHub仓库。前端包含Swift代码和CoreML模型,后端包含Blender脚本、API接口、数据库设计等。
团队信息
指导老师
杨远望教授(电子科学与工程学院, UESTC)
团队成员
- 我 队长 - 产品设计、UI/UX、iOS开发、AI算法、后端系统、3D建模
- 吴𤨪羽(格拉斯哥学院, UESTC) - 产品构思,宣传海报制作
- 杜橙(格拉斯哥学院, UESTC) - 产品构思,作品文档撰写
项目背景与创新
Yigui/依柜是一款旨在将专业服装设计流程大众化、个性化的iOS应用。它打通了从"真实人体参数 → 智能3D建模 → 个性化服装设计 → 虚拟试穿"的全链路,让每一位用户都能基于自己独一无二的身体,成为自己"虚拟分身"的专属服装设计师。该项目致力于解决"审美多元化"时代下普通消费者难以参与服装创作、成衣尺码不符、线上试衣体验不佳等痛点。
隐私优先的CoreML推断
本地化身体比例预测,数据不离开设备,支持离线使用
迭代收敛算法
3轮循环计算解决人体比例循环依赖,实现精确建模
虚拟装配技术
原子化部件处理+智能重组,实现高效的虚拟试穿
微服务架构
三个独立FastAPI服务:用户、模型、设计分离部署
用户需求洞察
同理心地图分析竞品分析定位
竞品雷达图界面设计与用户体验
Yigui的界面设计注重用户体验的流畅性和功能的直观性。采用现代化的设计语言,结合iOS设计规范,为用户提供简洁、优雅的虚拟试穿体验。从初始原型到最终实现,每个界面元素都经过精心设计和用户测试优化。
Figma 原型与流程设计
Figma 初步原型设计 - 完整的用户界面设计与交互流程导航设计
Tab导航 + 分步流程,清晰的信息架构
状态管理
进度指示、按钮状态、草稿自动保存
组件复用
色板、图案库、参数面板统一设计
App界面展示
3D建模与资源制作
3D建模系统采用Blender作为核心建模工具,结合Python脚本实现自动化处理流程。整个建模管线包括人体基础模型制作、服装模型设计、材质节点编辑、以及移动端性能优化等关键环节。
通过标准化的GLB格式输出和模块化的部件设计,实现了高效的"虚拟装配"技术,支持实时的服装更换和试穿效果预览。所有模型均针对移动设备进行了深度优化,确保在iOS设备上的流畅渲染表现。
人体基础模型制作
默认男模型 - 基础人体拓扑结构- 低多边形拓扑设计,面数控制在5000以内
- 标准人体比例,支持CoreML参数化缩放
- 优化的UV展开,纹理分辨率1024x1024
- 模块化部件设计:头部、身体、四肢独立处理
- GLB格式导出,支持PBR材质和动画
材质节点系统
- 基于节点的程序化材质制作流程
- PBR物理渲染,支持金属度和粗糙度
- 动态颜色和纹理替换系统
- 移动端着色器优化,减少计算复杂度
- 支持实时材质参数调节和预览
材质节点编辑器 - 复杂材质制作流程女性模型优化处理
女性模型 - 移动端性能优化版本- 针对移动端的多边形简化处理
- 保持关键特征的减面算法优化
- LOD(Level of Detail)层级设计
- 纹理贴图压缩,支持多种分辨率
- 实时渲染性能达到60FPS(1080p分辨率下)
材质优化流程
- 着色器复杂度分析和优化
- 纹理通道合并,减少采样次数
- 移动端GPU适配优化
- 批处理渲染和实例化支持
- 内存占用控制在设备限制内
简化材质节点 - 移动端性能优化技术规格总览
建模精度
移动端性能
技术栈
材质系统
系统架构设计
整个系统采用前后端分离的架构,前端是iOS应用,后端是部署在Ubuntu服务器上的Python API。前端主要负责用户界面和本地的AI推理,后端处理用户数据、3D模型生成和复杂的计算任务。这样设计的好处是用户的身体数据不需要上传到服务器,保护了隐私。
前端架构
iOS应用使用SwiftUI开发,界面响应式设计,支持不同尺寸的iPhone。最关键的是集成了CoreML框架,可以在手机本地运行AI模型来预测用户的身体比例,这样用户输入的身高体重等数据完全不会离开设备。还用了SceneKit来实时渲染3D人体模型,让用户能看到试穿效果。
后端架构
后端基于Python的FastAPI框架,我把它拆分成了三个独立的服务:用户认证服务负责登录注册,模型处理服务负责3D建模和Blender渲染,设计管理服务负责保存用户的设计作品。每个服务都可以独立部署和维护。用Redis做缓存加速常用数据的读取,用Dramatiq处理耗时的后台任务比如3D渲染。
数据流设计
用户在前端输入身体参数后,CoreML模型直接在本地计算出详细的身体比例。然后前端把这些计算结果发送给后端,后端使用Blender生成对应的3D人体模型。整个过程中,用户的原始身体数据从不离开手机,传输的只是处理后的参数。所有网络传输都使用HTTPS加密,API访问需要JWT认证。
虚拟装配流水线 - 从数据输入到3D模型生成的完整流程算法与模型(CoreML)
这个项目最核心的技术挑战是如何在手机上准确预测用户的身体比例。传统的做法需要把用户数据发送到服务器处理,但这样会有隐私风险。我选择了CoreML方案,把AI模型直接部署在iPhone上,用户的身体数据完全不会离开设备。
三轮迭代收敛算法
人体比例预测的难点在于不同身体部位之间存在复杂的依赖关系,比如胸围会影响肩宽的计算,而肩宽又会反过来影响胸围的估算。我设计了一个三轮迭代算法来解决这个循环依赖问题:
CoreML三轮迭代收敛算法流程图第一轮基于身高体重做粗略估算,第二轮利用第一轮结果优化局部比例,第三轮进行全局校正确保所有比例协调一致。每轮迭代都会收敛到更精确的结果,最终预测精度能达到95%以上。
模型优化与性能
为了在手机上流畅运行,我对模型做了大量优化。使用量化压缩把模型大小控制在15MB以下,利用A12芯片的Neural Engine进行硬件加速,推理时间控制在50毫秒内,用户输入参数后几乎能实时看到预测结果。
另外还实现了智能缓存机制,相似的身体参数会复用之前的计算结果,进一步提升响应速度。整个算法支持iOS 14以上的设备,也能完全离线运行。
服装设计推荐
基于预测出的身体比例,我还实现了个性化的服装设计推荐功能。采用HSV色彩空间来匹配适合的颜色,结合用户的设计偏好和流行趋势,推荐合适的图案和样式。推荐算法结合了协同过滤和内容过滤的方法,准确率能达到87%左右。
后端系统与API设计
后端主要负责处理那些手机无法完成的复杂任务,包括3D人体建模、服装渲染、用户数据管理等。我选择了Python的FastAPI框架,主要是因为它的异步特性和自动API文档生成功能,对于需要处理大量并发请求的应用来说很合适。
微服务拆分
我把后端拆分成了三个独立的服务,这样每个服务可以单独开发和部署:
用户认证服务负责注册登录和JWT令牌管理;模型处理服务专门处理3D建模和Blender渲染任务;设计管理服务负责保存用户的设计作品和推荐算法。这样的好处是如果某个服务出问题,其他服务还能正常运行。
3D建模与渲染
最复杂的部分是3D人体建模。当前端发送身体参数后,后端需要调用Blender的Python API,根据这些参数调整预设的3D人体模型,然后渲染出最终的试穿效果。
由于3D渲染非常耗时,我使用了Dramatiq任务队列把这些操作放到后台异步执行。用户提交请求后会立即收到一个任务ID,然后可以通过轮询API来查看渲染进度。这样就不会因为长时间等待而导致超时错误。
数据存储与缓存
数据存储方面,我选择了SQLite作为主数据库,因为这个项目数据量不大,SQLite足够用,而且部署简单不需要单独的数据库服务器。同时用Redis做缓存,把经常访问的用户信息和计算结果缓存起来,大大提升了API的响应速度。
部署与运维
服务器部署在Ubuntu 20.04上,用Nginx做反向代理处理HTTPS和负载均衡,用Gunicorn运行Python应用,支持多进程并发。所有服务都用systemd管理,确保崩溃后能自动重启。日志统一收集,方便排查问题和性能优化。
完整功能演示
产品核心流程演示
以下视频展示了 Yigui / 依柜 App 的完整操作流程,从用户登录、设计创建、参数调整到最终的 3D 试穿效果。演示在 iOS 模拟器中进行,展现了真实的用户体验和流畅的交互设计。
文档与素材下载
提供完整的项目技术报告、设计文档和宣传材料下载。这些文档详细记录了项目的技术实现过程、设计思路和创新点,供学习参考使用。
项目文档
竞赛成果与荣誉
竞赛成绩
西南赛区二等奖(中国高校计算机大赛—移动应用创新赛)

项目总结
这个项目是我在移动应用开发和计算机视觉领域的重要实践。通过从零开始构建一个完整的虚拟试衣应用,我深度学习了 SwiftUI、3D 图形处理、机器学习模型集成等技术。最大的收获是学会了如何将理论转化为实际产品,如何在技术创新与用户体验之间找到平衡。这次获得西南赛区二等奖不仅是对技术实力的认可,更是对我产品思维和解决实际问题能力的肯定。
未来设计双重体验概念 - 个性化虚拟试穿的愿景展示