You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Spring Boot+JS的杠铃轨迹识别功能HTML前端展示方案咨询

可行方案与实践指引

方案一:Spring Boot + Python 后端服务协同(推荐)

保留现有Python的视频处理逻辑,用Spring Boot负责前端交互,二者通过API/websocket协同,完全能实现画面展示:

  • 区域指定实现:在Spring Boot渲染的HTML页面中,用JavaScript实现选框功能(比如基于canvas或现成库如Cropper.js),获取选框的坐标(x, y, 宽, 高)后,通过HTTP请求传给Python服务。
  • 视频处理流程:
    1. 用户在Spring Boot页面上传视频,Spring Boot可将视频文件转发至Python服务,或存储到共享目录(如本地磁盘、对象存储)后把文件路径传给Python。
    2. Python服务接收视频路径、选框坐标,调用原有cv2/dlib/numpy逻辑处理视频,生成带杠铃轨迹的视频文件或逐帧数据。
    3. 画面展示方式:
      • 非实时场景:Python处理完成后,返回带轨迹的视频文件URL给Spring Boot,前端用<video>标签直接播放。
      • 实时预览场景:Python将处理后的帧转为base64格式,通过WebSocket推送给Spring Boot前端,前端用canvas实时渲染每一帧。
  • 通信优化:Spring Boot与Python服务(用Flask/FastAPI都可以)之间用REST API传递参数和文件,复杂场景可引入消息队列(如RabbitMQ)解耦任务。

方案二:iframe嵌入Flask独立页面(快速落地)

你设想的iframe嵌入方式完全可行,且能最小化修改现有代码:

  • 基于现有Python逻辑,用Flask搭建一个独立的功能页面,包含视频上传、区域选择(前端JS实现)、轨迹视频展示的完整流程,把原来OpenCV窗口的输出改为生成视频文件或在页面用canvas渲染。
  • 在Spring Boot的页面中,用<iframe>标签嵌入Flask页面的URL,用户即可在Spring Boot网站内直接使用该功能。
  • 注意事项:
    • 配置Flask的CORS规则,允许Spring Boot域名的跨域访问。
    • 若需共享用户身份信息,可通过URL参数或Cookie传递(需确保Cookie跨域配置正确)。

方案三:WebAssembly 前端移植(谨慎尝试)

如果不想维护后端Python服务,可尝试将依赖库移植到前端,但存在一定限制:

  • OpenCV有官方的OpenCV.js,可直接在浏览器中调用核心视觉处理能力;但dlib的WebAssembly移植难度极高,numpy也仅有功能有限的JS替代库(如numpy.js)或依赖Pyodide(在浏览器中运行Python代码)。
  • 该方案需要大幅修改现有Python代码,且复杂的dlib模型在浏览器中运行可能存在性能瓶颈,仅适合简单的轨迹分析场景。

实践建议

  1. 优先选择方案一或方案二,能最大化复用现有Python代码,保证处理性能。
  2. 前端区域选择推荐用Cropper.js,可快速实现视频帧/图片的可视化选框,轻松获取坐标参数。
  3. 部署时可将Spring Boot和Python服务用Docker容器打包,统一管理运行环境。

内容的提问来源于stack exchange,提问作者dglee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 21:26:21