● 图像识别项目服务端+客户端设计方案

前言

项目需求

调用学习完成的图像识别模型,通过摄像头实时监测识别结果,客户端显示识别结果并做提醒预警。

部署操作系统

软件需要运行在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
  • 技术难度低

缺点

  • 暂时没有发现明显缺点,暂定方案