● 图像识别项目服务端+客户端设计方案
前言
项目需求
调用学习完成的图像识别模型,通过摄像头实时监测识别结果,客户端显示识别结果并做提醒预警。
部署操作系统
软件需要运行在Ubuntu Desktop 16.04,要么选择跨平台应用,要么选择html纯静态页面作为客户端。
为什么不使用 Java / QT / C++ 等原生应用作为客户端?
1、上述语言目前我都完全不掌握😢 2、项目不是公司的主要方向,学习技术成本过高,用完后很可能会丢弃,没有学习的必要。
综上,在目前掌握的技术栈里,选择相应的技术是最快速、稳妥的方案。
架构需求
软件可能运行在内网Ubuntu系统,如果不能在现场,可能需要指导客户进行操作,应尽可能简单,最好双击一下鼠标,运行个shell就可以处理或者重启。如果远程处理,架构简单,可以尽快定位问题。
方案1. Python + Redis + Mono
优点
- 架构简单
- 技术难度低
缺点
- 安装配置环境较多
- 应用程序需要适配不同分辨率尺寸(设备上有一个小屏,还需要外接显示器),如果要求操作界面美观不好优化
方案2. Python + Redis + .net(MAUI/Blazor)
优点
- 架构简单
缺点
- 安装配置环境较多
- 有一定技术门槛
- 应用程序需要适配不同分辨率尺寸
方案3. Python + MQTT + Electron/Flutter
优点
- 架构简单
缺点
- 安装配置环境较多,太过重量
- 应用程序需要适配不同分辨率尺寸
方案4. Python + Html(WebSocket)
优点
- 部署简单,运维方便
缺点
- 通讯处理麻烦,需要考虑多客户端问题、断开重连问题(心跳机制)
方案5. Python + Web API(Python Flask+SQLite) + Html
优点
- 部署简单,运维方便,只需要额外安装nginx
- 技术难度低
缺点
- 暂时没有发现明显缺点,暂定方案