基于pytorch模型的web应用开发和部署
目录

将虚拟试衣模型部署成web应用,涉及到了全栈开发和项目部署等方面的知识。
1. 前端
- 前端使用 create-react-app 和 ant design 构建。create-react-app 用于快速搭建出基于 React 的 Web 应用程序;ant design是一个非常流行的React UI组件库,具有响应式布局、自定义主题和可配置的样式等特性,使得开发者可以快速构建美观的Web界面。
- 表单中图片上传的逻辑值得注意:使用上传图片组件后立刻上传至服务器,返回图片远程URL的响应并记录,之后提交表单时请求包含URL而不需要上传图片。
- 图片的本地展示:
URL.createObjectURL(info.file.originFileObj)
- 使用 vercel 实现自动化部署和静态资源获取服务
- 注意依赖的配置:需要添加@ant-design/icons依赖,否则在构建时会报错。
2. 后端
- 我使用了Flask来启动Web服务,处理上传和预测请求。在部署后端应用程序时,我们使用了腾讯云服务器,需要注意一些注意事项。例如,在配置https时,需要选择合适的证书,否则浏览器会警告访问不安全。此外,如果需要域名访问,则需要进行备案,否则无法正常访问。
- vercel资源为https,因此需要给服务器配置https,且私签证书不可用。
- 如需域名访问需要备案(不管是不是80/443端口)。
- 不用域名可直接http://ip:port访问,但需要走https,通过 zerossl 给裸ip地址签发权威证书。
- 跨域问题通过
flask_cors库解决。
- 对于模型的处理,我编写了一个Predictor类来保存模型已经进行前中后处理。在启动服务时,先将模型加载到GPU中。
- PyTorch 作为深度学习框架,用于构建虚拟试衣的模型,对于用户上传的照片,模型需要先经过一些预处理步骤,例如去除背景、检测人体等,然后才能进行虚拟试衣操作。开发者需要将衣服分割的mask和用户上传的照片一起送入虚拟试衣的模型中进行预测。在这个过程中,需要注意以下几个问题:
- 路径准备:在处理用户上传的照片和预测结果时,开发者需要准备好相应的资源路径,例如分割掩码的保存路径、模型预测结果的保存路径等。这些路径需要提前定义并准备好,以便在处理过程中使用。
- 图像的归一化和反归一化:在将照片送入模型进行预测之前,需要对其进行归一化处理,以便模型能够正常工作。同样,在得到模型的输出之后,需要将其反归一化,以便得到真实的预测结果。开发者需要确保归一化和反归一化的处理逻辑正确,以避免对预测结果的影响。