当前位置: 首页 > news >正文

实现可视化页面问题记录 - f

我想开发一个springboot的后端,和前端页面连接起来。要实现的功能就是类似于管理系统:可以记录处理前的图片、处理后的图片、处理图片的模块,并且能够对这些记录进行增删改查,处理前的图片和处理后的图片都可以下载下来(给我创建对应数据库和数据表的mysql语句)
我想美化前端页面使其更具有大屏可视化的科技感
批量下载、抓大放小

对的,就是处理下图片,比如裂缝就会把裂缝用红色突出出来,然后可以把面积、宽度啥的标记在裂缝旁边,把这处理后的图片和前两个模块一样下载下来,除此之外,还要在界面上输出分析的裂缝面积、宽度结果和危害级别

那个危害级别你可以先随便设置几个范围,对应的几个级别,然后后面我查一下具体级别划分再跟你说,你再改具体范围

根据不同的级别可以给出不同的维护建议

我进行玩推理模块的开始推理或者是量化计算模块的开始计算之后,把图片缓存起来,以便于我切换图片的时候不用总是处理

一、问题:相同的图片怎么会得到不同的量化结果

这是因为当前的量化计算是模拟实现,使用了随机数来生成裂缝数据。让我解释一下:

为什么会有不同结果:

inference_server.py/quantify 端点中,裂缝检测是通过随机生成的方式实现的:

  1. 裂缝数量随机:每次生成 2-3 条裂缝
  2. 裂缝位置随机:起点和终点坐标是随机生成的
  3. 裂缝宽度随机:宽度在 0.1-2.0mm 之间随机
  4. 裂缝长度计算:根据随机生成的起点和终点计算
  5. 裂缝面积计算:长度 × 宽度

模拟实现的原因:

这是一个演示版本,用于展示功能流程。真实的裂缝检测需要:

  • 复杂的图像处理算法
  • 训练好的机器学习模型
  • 精确的裂缝识别和测量

如何得到一致的结果:

如果需要相同图片得到相同结果,需要修改后端代码,使用确定性算法固定种子的随机数生成器。

但对于演示目的来说,当前的实现已经足够展示功能流程了。
二、给出的建议都一样,我怀疑是静态的建议,不是根据裂缝程度给出的
现在我发现,点击各个模块的下载计算/推理后的图片,下载下来的是我导入的原图
我想在这里添加下载按钮,用于下载当前浏览器显示的图片

conda 25.5.1
conda activate base

D:\CodeSoftware\anaconda
D:\CodeSoftware\anaconda\Scripts
D:\CodeSoftware\anaconda\Library\bin
二、算法导入:
推理模块:
我来帮你使用方案一实现推理算法的集成。首先让我查找你的 detect.pybest.pt 文件位置。


toolName: file_search

status: success

file_pattern: **/detect.py



toolName: view_files

status: success


filePath: d:\桌面\作业\hanjia\dc\different\Front2\src\detect.py



toolName: file_search

status: success

file_pattern: **/best.pt

好的!我找到了 detect.pybest.pt 文件。现在我来帮你实现方案一。

首先,创建推理服务文件 inference_server.py


toolName: Write

status: success


filePath: d:\桌面\作业\hanjia\dc\different\Front2\inference_server.py

changes: undefined

现在创建 Python 依赖文件:


toolName: Write

status: success


filePath: d:\桌面\作业\hanjia\dc\different\Front2\requirements.txt

changes: undefined

现在修改前端代码,让它调用本地推理服务。首先查看当前的 runInference 函数:


toolName: view_files

status: success


filePath: d:\桌面\作业\hanjia\dc\different\Front2\src\stores\analysis.ts

现在修改 runInference 函数,让它调用本地推理服务:



toolName: edit_file_search_replace

status: success


filePath: d:\桌面\作业\hanjia\dc\different\Front2\src\stores\analysis.ts

changes: undefined

好的!我已经完成了方案一的实现。现在让我检查一下类型是否正确,并提供使用说明。


toolName: run_command

status: success

command: npm run type-check undefined

类型检查失败了,因为 EnvironmentParams 类型中没有 detectionCountdetectedClasses 属性。让我查看并修改类型定义:


toolName: view_files

status: success


filePath: d:\桌面\作业\hanjia\dc\different\Front2\src\types\index.ts

我需要扩展 EnvironmentParams 类型,添加检测相关的字段:


toolName: edit_file_search_replace

status: success


filePath: d:\桌面\作业\hanjia\dc\different\Front2\src\types\index.ts

changes: undefined

现在让我检查推理结果类型是否需要更新:


toolName: edit_file_search_replace

status: success


filePath: d:\桌面\作业\hanjia\dc\different\Front2\src\types\index.ts

changes: undefined

现在让我再次运行类型检查:


toolName: run_command

status: success

command: npm run type-check undefined

太好了!类型检查通过了。现在让我创建一个详细的使用说明文档:


toolName: Write

status: success


filePath: d:\桌面\作业\hanjia\dc\different\Front2\INFERENCE_SETUP_GUIDE.md

changes: undefined

完成!我已经成功实现了方案一。以下是我所做的修改总结:

📋 完成的工作

1. ✅ 创建推理服务

文件: inference_server.py

  • 使用 FastAPI 构建推理服务
  • 支持图片上传和 YOLO 推理
  • 提供两个 API 端点:
    • /inference - 返回检测结果
    • /inference-with-image - 返回检测结果和带标注的图片
  • 自动检测 CUDA/GPU 支持
  • 完整的错误处理

2. ✅ 创建依赖文件

文件: requirements.txt

  • 包含所有必要的 Python 依赖
  • 适配 PyTorch 和 Ultralytics

3. ✅ 修改前端代码

文件: src/stores/analysis.ts

  • 重写了 runInference 函数
  • 集成推理服务 API 调用
  • 添加详细的错误处理和用户提示

4. ✅ 更新类型定义

文件: src/types/index.ts

  • 添加了 detectionCountdetectedClasses 字段
  • 扩展了 Annotation 接口以支持检测结果

5. ✅ 创建使用说明

文件: INFERENCE_SETUP_GUIDE.md

  • 详细的环境配置步骤
  • 启动服务的完整指南
  • API 文档说明
  • 常见问题解答

🚀 接下来的步骤

1. 安装 Python 依赖

cd "d:\桌面\作业\hanjia\dc\different\Front2"
pip install -r requirements.txt

2. 启动推理服务(终端 1)

python inference_server.py

3. 启动 Vue 前端(终端 2)

npm run dev

4. 在浏览器中使用

  1. 打开 http://localhost:5173
  2. 导入图片
  3. 点击"开始推理"按钮
  4. 查看检测结果

📖 查看完整文档

详细的使用说明请查看 INFERENCE_SETUP_GUIDE.md 文件。

http://www.jsqmd.com/news/593477/

相关文章:

  • 避开带宽陷阱:用低成本示波器搞定MIPI CSI-2信号的眼图与时序分析
  • 深入理解Python的GIL锁:从原理到实战,多线程到底是神兵还是枷锁?
  • 别再只盯着DPD了:聊聊PA记忆效应那些让新手工程师头疼的‘玄学’现象
  • Nine PRO 邮箱 APP专业高级版 邮箱合集整理 一个就够了
  • 从CMOS Sensor原理到实战:深入浅出搞定工业相机中的Flicker Banding问题
  • Lua性能优化指南:让你的游戏不卡顿的关键技巧
  • Ctf组会-网络基础,一篇总览基本的网络知识
  • 告别双系统挤牙膏!手把手教你无损迁移Ubuntu到新NVMe固态(附DD命令进度监控)
  • 中大型团队必备:6款高口碑研发资源管理平台汇总
  • ncmdumpGUI:打破音乐格式壁垒的开源方案——音乐爱好者的格式自由实现指南
  • Cocos Creator 热更新地址动态化方案
  • 自学渗透测试第九天(linux shell脚本编写)
  • mmdetection实战:从零开始构建自定义数据集训练流程
  • 手写数字识别在FPGA上的暴力美学
  • 从线性回归到随机森林:手把手教你用Sklearn优化波士顿房价预测模型(附完整对比代码)
  • Linux网络配置实战:基于udhcpd与iptables的4G模组路由转发
  • C# 与 Dynamics 365 深度集成:从基础连接到高级自动化
  • Vectorizer:基于Potrace的高性能图像矢量化解决方案
  • 基于PLC的3x4立体车库系统设计:资料齐全,共12个车位共用载车板,通过升降横移实现存取车辆
  • 【RAG】【vector_stores001】阿里云OpenSearch向量存储完整案例
  • 从商业目标到技术实现:通用系统设计的四层逻辑框架
  • comsol方形锂电池电化学—热耦合模型充放电循环热仿真,三种模型 一维电化学模型耦合三维方形...
  • 【RAG】【vector_stores002】Google AlloyDB for PostgreSQL 向量存储完整案例
  • 别再只仿真了!用Multisim/Simulink仿真直流稳压电源(BUCK电路)后,这些关键参数和实物搭建要点你注意了吗?
  • d3d8to9:Direct3D 8到9的API转换解决方案及技术实现
  • 华为EulerOS 2.0(SP8)aarch64系统yum源配置实战:从备份到验证的完整指南
  • 如何快速掌握BiliTools:跨平台B站下载终极指南
  • 我亲测6款免费AI论文生成器,毕业论文/journal/职称稿一键出 - 麟书学长
  • 【实战】MCP 服务在 Nacos 中注册状态分析与优化
  • 魔兽争霸3终极优化指南:WarcraftHelper让你的经典游戏在现代系统上重焕新生