日期:2024.4.1-4.7
本周进展
1. 协助完成前后端框架的搭建
本项目前端采用Vue,后端采用springBoot,数据持久层采用Mybatis,数据库使用MySQL,前后端通信采用Axios,在组长搭建完框架主体后,对细节进行调整,对遇到的问题进行解决。
初版界面展示如下:
2. 调研模型SAM和SEEM
本项目拟实现人机交互式图像分割功能,调研了相关模型SAM、SEEM及其众多衍生版本。具体资源整理如下:
SAM | SEEM |
/ | |
阅读论文及相关博客,对两个模型有了初步了解,由于之前有深度学习模型的开发经验及科研经历,对此类模型上手较为容易。
在本地尝试跑通其提供的demo代码,对其后续部署的难易程度做了初步的尝试。
3. FastSAM模型部署
综合考虑部署难易程度、算力要求、计算速度等因素,我们初步选用轻量化的SAM模型FastSAM进行部署,后续可考虑更换为其他更合适的模型。
为提高响应速度,避免数据处理带来过多的冗余时间以造成不良的用户体验,我们采用预先处理的策略,即上传图片后直接调用SAM对图片进行处理,得到若干张不同的mask并进行存储,后续当用户点击图片某一位置时,在所有mask中选择最合适的一张展示在前端。此仅为初期采取的策略,后续有更好的方法可替换之。
样例展示如下:
存在问题
- 前后端框架尚不完善,存在或大或小的问题,后续将陆续解决。
- FastSAM不一定是最优的选择,后续还需调研其他模型。
- 先预处理并存储,在用户交互时直接从mask池中择优展示,并非是最优策略,后续可考虑优化。
- 目前模型部署在本地,无法提供充足算力,后续可尝试部署到服务器上。(难点不在部署,而在如何与本地通信)
- 目前java后端与python模型的通信采用通过java语句直接调用python命令以执行python脚本,后续可考虑采用其他技术进行优化。
下周计划
- 调研其他模型;
- 本周仅实现了点击分割的功能,下周将补充框分割功能,后续还将继续完善文本描述分割、视频分割等;
- 将模型在服务器端部署,并寻找合适的本地-服务器通信方式(或者说是java-python通信方式)。