温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片!
温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片!
温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片!
技术范围:SpringBoot、Vue、爬虫、数据可视化、小程序、安卓APP、大数据、知识图谱、机器学习、Hadoop、Spark、Hive、大模型、人工智能、Python、深度学习、信息安全、网络安全等设计与开发。
主要内容:免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码、文档辅导、LW文档降重、长期答辩答疑辅导、腾讯会议一对一专业讲解辅导答辩、模拟答辩演练、和理解代码逻辑思路。
🍅本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片🍅
🍅本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片🍅
🍅本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片🍅
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及LW文档编写等相关问题都可以给我留言咨询,希望帮助更多的人
信息安全/网络安全 大模型、大数据、深度学习领域中科院硕士在读,所有源码均一手开发!
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人

介绍资料
肺影智析(PneumoVision)——基于 YOLO 与多模态模型的医学肺炎辅助分析系统
项目概述
肺影智析是一套面向胸部 X 光影像教学、科研与辅助分析场景的桌面应用。系统以 Ultralytics YOLO 完成本地目标检测,通过 Electron 提供桌面 GUI,并由 Flask 后端统一管理数据集、模型、训练、评估、图片检测、视频检测、实时影像流、预警、用户和审计记录。在用户主动发起复核时,系统还可以调用 OpenAI-compatible 视觉多模态模型,对 YOLO 检测框及原始影像给出结构化说明。
系统严格限定处理胸部 X 光影像,包括单张图片以及由胸部 X 光帧组成的视频、摄像头或 RTSP 影像流。YOLO 业务类别固定为数据集中的单类 lung_opacity,界面统一使用“检出疑似异常阴影”和“未检出疑似异常阴影”两种结论。系统不支持 CT 诊断,不生成临床严重程度,也不将“未检出”表述为“正常”。所有检测和 AI 复核结果仅供教学、科研及辅助参考,不能替代医生诊断、完整影像检查或临床处置。
系统采用 Electron 客户端与 Python Flask 后端分离运行,开发和演示时使用两个终端分别启动,不制作 EXE 或安装包。YOLO 推理、视频处理、实时跟踪、训练与评估主要在本机完成;外部多模态模型仅在用户主动发起 AI 复核时调用,其故障不会影响本地 YOLO 检测链路。

核心创新点
胸部 X 光单类目标定位:围绕 lung_opacity 单类数据集完成训练、检测、中文标注和评估,输出可追溯的候选框、置信度和坐标,而不是直接给出临床诊断。
多来源统一检测:同一套推理服务支持图片、视频、本机摄像头、本地循环视频和 RTSP/RTSPS 点位,覆盖离线分析和实时值守。
多模型并存与自主选择:系统允许同时发布多个合格业务模型;图片和视频任务均可从所有已发布模型中选择本次使用的模型,检测记录保留模型名称与版本。
完整模型生命周期:管理员既可上传已经训练好的 .pt 权重,也可选择已激活数据集、基础权重、CPU/GPU 和训练参数创建任务;训练详情持续展示 Epoch、Batch、日志、已用时间、预计剩余时间、指标和产物,并支持停止、检查点续训、发布、取消发布与删除。
真实模型评估与过程图:评估任务在独立进程中运行,按真实批次反馈进度,完成后展示 Precision、Recall、mAP50、mAP50-95、PR 曲线、混淆矩阵以及验证样本标签与预测图。
视觉多模态结构化复核:用户可对图片、视频关键帧或预警证据主动发起复核。系统保存摘要、支持证据、复核倾向、建议和局限,并确保 AI 结论不会覆盖原始 YOLO 记录。
多路低延迟实时画面:实时检测页最多选择 9 路来源,自动适配单画面、双画面、四宫格或九宫格;网络点位优先通过 MediaMTX WHEP/WebRTC 播放,并提供动态预览帧作为备用显示。
跟踪、去重和二元预警闭环:视频与实时流结合 ByteTrack 进行轨迹关联。只有有效检测框超过阈值时才创建预警,并保存来源、模型、证据帧、AI 状态、处置状态和操作历史,形成“检测—复核—预警—处置—审计”的闭环。
可管理的本地流媒体服务:集成 MediaMTX、FFmpeg 和 FFprobe,可将本地视频按原始时间轴循环发布为本机 RTSP,也可转发真实 RTSP/RTSPS 来源;点位支持测试、启停、预览、编辑和软删除。
任务进程与故障恢复:训练、视频分析和模型评估使用独立非 daemon 工作进程,状态同步到 runtime。异常退出和后端重启会被标记为中断,训练存在有效 last.pt 时可从检查点继续。
桌面端安全隔离:Electron 渲染进程关闭 Node.js 集成并启用上下文隔离;Preload 仅暴露文件选择、目录打开和桌面通知等白名单 IPC。后端只监听本机回环地址,并对受管路径执行越界保护。
真实账号与通知体系:系统提供密码登录、真实短信验证码登录、短信密码找回、JWT 会话、Argon2 密码哈希、管理员/普通用户 RBAC、手机号脱敏、Fernet 配置加密、通知和审计日志。
应用场景
-
医学影像教学:展示胸部 X 光目标检测、检测框解释、AI 复核和处置流程,辅助课程演示与案例讨论。
-
算法研究与科学研究:完成 YOLO 数据集校验、训练、模型版本管理、指标评估和不同权重对比。
-
辅助阅片流程验证:在不替代医生判断的前提下,为胸部 X 光影像提供疑似异常区域提示和结构化记录。
-
影像序列与流媒体实验:通过视频、本机采集设备和 RTSP 点位验证抽帧检测、多路播放、轨迹去重与事件预警。
-
本地化隐私场景:图片、视频、模型、数据库和日志默认保存在本机受管目录,适合需要控制数据流向的演示和研究环境。
技术架构
整体架构设计
系统由 Electron 桌面客户端、Flask 本地业务服务、YOLO 视觉算法、独立任务进程、外部多模态 AI、MediaMTX 流媒体服务和 SQLite/runtime 数据层组成。
┌────────────────────────────────────────────────────────────────┐
│ Electron 44 桌面客户端 │
│ 主进程:窗口、生命周期、摄像头权限、文件对话框、桌面通知 │
│ Preload:selectFile / selectDirectory / openPath 等白名单 IPC │
│ Vue:页面、路由、Pinia、REST、WebSocket、WHEP/WebRTC 播放 │
└───────────────────────────────┬────────────────────────────────┘
│ REST / WebSocket
┌───────────────────────────────▼────────────────────────────────┐
│ Flask 3.1(127.0.0.1:5020,API 前缀 /api/v1) │
│ 认证与 RBAC │ 统一响应 │ 业务接口 │ 审计 │ 健康检查 │ 通知 │
├──────────────────┬──────────────────┬──────────────────────────┤
│ YOLO + OpenCV │ 独立工作进程 │ LangChain / OpenAI兼容 │
│ Pillow + ByteTrack│ 训练/视频/评估 │ 按类型、优先级顺序回退 │
└──────────┬───────┴─────────┬────────┴─────────────┬────────────┘
│ │ │
┌──────────▼──────────┐ ┌────▼────────────────┐ ┌──▼─────────────┐
│ MediaMTX + FFmpeg │ │ SQLite WAL │ │ runtime 文件层 │
│ RTSP 8554 │ │ 业务实体与任务索引 │ │ 权重/产物/日志 │
│ WHEP/WebRTC 8889 │ │ Alembic 版本迁移 │ │ 缓存/状态文件 │
└─────────────────────┘ └─────────────────────┘ └────────────────┘
客户端通过 REST API 完成登录、资料维护、数据查询、文件上传和任务操作,通过一次性票据建立 WebSocket,接收任务进度、实时检测、完成、失败和预警事件。网络影像点位由 MediaMTX 统一输出本机 RTSP,客户端通过 WHEP/WebRTC 播放连续画面;播放器协商失败时,后端按时间位置生成动态 JPEG 预览。Electron 本机摄像头由渲染进程获取画面,并按照用户设置的间隔上传抽样帧。默认抽帧间隔为 1 秒,可在 0.2 至 60 秒范围内调整。
训练、视频检测和模型评估通过 Windows spawn 模式启动独立进程,避免阻塞 Flask 请求。任务状态、日志和阶段产物同时保存在数据库和对应的 runtime 任务目录,客户端通过轮询与 WebSocket 合并更新。
技术栈详解
前端技术栈
-
桌面容器:Electron 44,负责窗口、单实例、软件渲染兼容、摄像头权限、原生文件选择、目录打开和桌面通知。
-
核心框架:Vue 3.5 + TypeScript 5.9,使用 Composition API 和单文件组件组织页面。
-
UI 与图标:Element Plus 2.14.5、Lucide Vue Next 0.542,配合医疗蓝、深海蓝、青绿色和冷灰色主题。
-
状态与路由:Pinia 4.0、Vue Router 5.3,维护用户登录态、角色菜单、任务状态和路由守卫。
-
HTTP 与实时通信:Axios 1.20 统一处理 /api/v1 请求、JWT 刷新、错误消息和鉴权文件;原生 WebSocket 接收实时事件,原生 WebRTC 完成 WHEP 播放。
-
工程与测试:electron-vite 5、Vite 7.3、vue-tsc、ESLint、Vitest 和 Vue Test Utils,覆盖组件、路由、交互、原型一致性和 Electron Preload 冒烟验证。
-
安全边界:contextIsolation、sandbox 和 webSecurity 保持开启,nodeIntegration 关闭;内容安全策略只允许必要的本机 API、WebSocket、WebRTC 和 Blob 资源。
后端技术栈
-
Web 框架:Flask 3.1、Flask-SQLAlchemy、Flask-Migrate、Alembic、Flask-CORS 和 simple-websocket。
-
数据库:SQLite 3 + WAL,保存用户、短信验证码、数据集、模型、训练任务、图片检测、视频任务、关键帧、实时会话、预警、评估、AI 配置、报告、通知、系统设置和审计日志。
-
认证与安全:Flask-JWT-Extended、Argon2、Fernet、UUID、UTC+8 RFC 3339 时间、RBAC、敏感字段脱敏和受管路径校验。
-
目标检测:Ultralytics YOLO 8.4 系列接口,业务权重必须通过 lung_opacity 单类校验;支持 CPU 和 CUDA GPU 训练、评估与推理。
-
图像和视频:OpenCV、NumPy、Pillow、FFmpeg、FFprobe,用于 CLAHE 增强、媒体探测、抽帧、中文标注、关键帧、缩略图和 H.264 输出。
-
实时跟踪:ByteTrack 用于视频与实时流轨迹关联,结合会话内事件去重减少同一目标的重复预警。
-
多模态 AI:LangChain、langchain-openai 和 OpenAI-compatible API;按视觉/文本类型隔离配置,并依据顺序、超时和重试参数执行回退。
-
流媒体服务:MediaMTX v1.11.3,RTSP 监听 127.0.0.1:8554,WHEP/WebRTC HTTP 服务监听 127.0.0.1:8889;FFmpeg 为本地循环视频强制生成高频 H.264 关键帧。
-
报告与运维:python-docx 生成图片检测 Word 报告,系统接口检测计算资源,日志采用轮转文件并附带请求 ID。
-
真实短信:参考 短信/SendSms.java 的阿里云市场表单 POST 契约,Host、Path、AppCode、模板 ID、超时、验证码有效期、重发间隔和每日上限均由后端 .env 提供;不包含模拟短信模式。
项目目录结构
项目代码与运行目录结构
项目严格分离源码、内置数据集和运行产物。正式代码位于 项目代码/backend 与 项目代码/client;根目录 dataset/data.yaml 作为内置数据集原地注册,不复制;数据库、导入数据集、权重、训练、评估、上传、检测产物、日志和缓存统一写入 runtime。
项目根目录/
├── dataset/ # 内置 lung_opacity 单类 YOLO 数据集
│ ├── data.yaml
│ ├── train/ # 12,678 张图片及对应标签
│ ├── valid/ # 1,185 张图片及对应标签
│ └── test/ # 577 张图片及对应标签
├── prototype/ # 已审批的桌面端结构与视觉原型
├── 短信/ # 阿里云市场短信接口参考代码
├── 系统文档.md
├── 系统开发步骤.md
├── 系统介绍文档.md
├── 项目代码/
│ ├── backend/
│ │ ├── app/
│ │ │ ├── api/ # REST 与 WebSocket 路由
│ │ │ ├── core/ # 响应、鉴权、路径、时间与安全
│ │ │ ├── entities/ # SQLAlchemy 实体
│ │ │ ├── services/ # 推理、AI、短信、流媒体与任务服务
│ │ │ └── workers/ # 训练、视频检测和评估进程入口
│ │ ├── migrations/ # Alembic 数据库迁移
│ │ ├── tests/ # Pytest 单元与接口测试
│ │ ├── .env / .env.example # 本机配置 / 安全占位模板
│ │ ├── requirements.txt
│ │ └── run.py # Flask 启动入口
│ └── client/
│ ├── electron/
│ │ ├── main.ts # Electron 主进程
│ │ └── preload.ts # 白名单 IPC 桥接
│ ├── src/
│ │ ├── api/ # Axios 与 WebSocket 封装
│ │ ├── assets/ # 客户端补充样式
│ │ ├── components/ # 检测详情、播放器与公共组件
│ │ ├── composables/ # AI 复核等组合逻辑
│ │ ├── layouts/ # 桌面应用框架
│ │ ├── router/ # 页面路由和角色守卫
│ │ ├── stores/ # Pinia 状态
│ │ ├── types/、utils/ # 类型与工具
│ │ └── views/ # 启动、认证及 14 个业务页面
│ ├── tests/ # Vitest 与桌面冒烟测试
│ └── package.json
└── runtime/
├── database/ # SQLite 数据库及 WAL 文件
├── datasets/ # ZIP 导入并安全解压的数据集
├── models/
│ ├── base-weights/ # YOLO 基础权重
│ └── registry/ # 上传/训练生成的业务模型
├── training/ # 训练状态、日志、指标和检查点
├── evaluations/ # 评估状态、日志、指标和过程图
├── uploads/ # 用户上传的原始图片与视频
├── outputs/
│ ├── detections/ # 图片检测标注结果
│ ├── videos/ # 视频任务与 H.264 标注视频
│ ├── evidence/ # 实时/预警证据帧
│ └── reports/ # Word 报告
├── logs/ # 后端、点位和 MediaMTX 日志
├── temp/ # 可清理临时文件
├── cache/ # 缩略图、Electron 与算法缓存
└── streaming-media-server/ # MediaMTX 程序及配置
内置数据集共 14,440 张胸部 X 光图片,训练、验证、测试图片均存在一一对应的标签文件。系统注册或导入数据集时会校验 nc=1、类别名 lung_opacity、目录边界、图片/标签配对、标签坐标和数据划分;只有已通过校验且处于激活状态的数据集才能创建或恢复训练任务。
核心功能模块
启动页、认证与工作台:应用始终由启动页进入身份验证页,支持账号密码或已绑定手机号验证码登录,并提供注册和短信密码找回。验证码按钮展示发送中状态、错误原因、有效期和重发倒计时。登录后的工作台汇总图片任务、视频任务、已发布模型、待处置预警、七日趋势和最近事件。
用户管理与个人中心:管理员可按关键词、角色和状态筛选用户,新增或编辑用户名、真实姓名、联系电话、邮箱、所属单位、角色和状态,并执行重置密码、启禁用及删除。系统保护当前管理员和最后一个有效管理员。个人中心允许本人维护用户名、联系电话、邮箱、所属单位及密码,并展示任务统计;用户列表对手机号脱敏,完整资料只在鉴权后的本人或管理员详情中返回。
数据集管理:页面展示总量、训练/验证/测试分布、校验项、路径和状态。支持导入 ZIP 数据集、重新校验、独立激活或取消激活、查看详情和删除;内置数据集只注册根目录路径,不复制也不允许删除。
模型管理与训练记录:模型页同时提供基础权重、历史训练任务、业务模型和版本记录。用户可上传经过训练的 .pt 文件,或选择数据集、基础权重、CPU/GPU、Epoch、Batch、图片尺寸和 Workers 创建训练任务。系统检测本机 GPU 型号以及 PyTorch CUDA 可用性;GPU 未就绪时保留设备信息但禁止错误选择。
训练详情与恢复:训练弹窗持续显示百分比、Epoch/Batch、Precision、Recall、mAP50、Box Loss、已训练时间、剩余时间、后端控制台日志和产物清单。任务可停止、删除;中断任务在存在 last.pt 时可以续训。训练完成后生成业务模型,经管理员发布后才可用于检测。
图片检测与图片记录:用户上传 JPG、JPEG、PNG 或 WebP 胸片,选择任一已发布模型并设置置信度、IoU 和 CLAHE。结果区按原始比例展示影像和中文检测框,列出目标数量、最高置信度、推理耗时、原始类别、坐标和解释性说明。历史页面展示缩略图,可查看完整 YOLO/AI 详情、批量删除并导出 Word 报告。
AI 复核交互:AI 复核由用户主动触发,前端以 0—100 的估算进度和“准备影像、读取检测框、请求视觉模型、整理结构化结果”等阶段文案反馈等待状态,不展示模型内部思维链。成功后保存复核模型、摘要、支持证据、倾向、建议和局限;失败时保留本地 YOLO 结果并说明回退原因。
视频检测与视频任务:上传视频后选择已发布模型、阈值和 0.2—60 秒抽帧间隔,创建独立异步任务。页面展示显著进度、当前阶段、处理帧数和用时;完成后播放 H.264 中文标注视频,展示关键帧时间轴、检测详情及关键帧 AI 复核。任务记录包含视频缩略图、摘要、详情、停止和删除操作。
实时影像检测:支持本机所有已连接摄像头和已运行影像流点位。用户可以选择设备或最多 9 个点位,输入默认 1 秒的抽帧间隔并开始会话。网络画面优先通过 WebRTC 连续播放,后台独立读取 RTSP 并执行 YOLO/ByteTrack;本机摄像头按间隔上传帧。会话事件保留本次会话的全部疑似阴影预警,并可跳转预警中心处置。
影像流点位与 MediaMTX:系统设置页展示 MediaMTX 版本、地址、进程和点位运行统计。管理员可创建本地循环视频或 RTSP/RTSPS 点位,使用 Electron 文件选择器取得本机绝对路径,并执行测试、开启、停止、预览、详情、编辑和删除。删除采用软删除并清理关联流标识,原始视频不会被删除;仍被活动会话引用时才阻止删除。
预警中心与通知中心:图片、视频关键帧和实时流只在检测到超过阈值的 lung_opacity 框时创建二元预警。页面支持来源、AI 状态、处置状态和时间筛选,显示证据缩略图,并提供单条/批量删除和批量处置。详情弹窗展示中文标注证据帧、坐标与置信度、模型参数、AI 复核和审计历史;未复核时可直接发起 AI 复核。侧栏数字只统计预警,不与普通系统通知混用。
模型评估:管理员选择业务模型、数据集、数据划分、CPU/GPU、图片尺寸、Batch、置信度和 IoU 创建任务。评估区和历史列表同步展示真实进度;点击历史任务即可切换上方参数、指标和图表,“查看”弹窗提供完整参数、日志、PR/F1/P/R 曲线、混淆矩阵以及验证样本过程图。不存在的产物显示空态,不生成模拟图。
多模态 AI 模型管理:系统设置页支持新增、编辑、测试、启停、排序和删除 OpenAI-compatible 模型。每条配置保存未测试、可用或不可用状态;上下箭头位于模型名称前。视觉任务只使用视觉模型,同类型模型按优先级回退。API Key 以 Fernet 加密保存,列表只返回脱敏值,修改连接信息后测试状态自动重置。
系统设置、安全与可观测性:设置页集中展示前后端、数据库、GPU、磁盘和运行目录状态,管理默认置信度、IoU、CLAHE 和抽帧间隔。REST API 统一使用 code、message、data、request_id、timestamp 响应,实体 ID 使用 UUID,时间采用带 +08:00 的 RFC 3339 格式。系统同时实施 JWT、RBAC、SQLite WAL、日志轮转、请求审计、软删除、文件所有权检查和路径越界保护。
运行截图
推荐项目
上万套Java、Python、大数据、机器学习、深度学习等高级选题(源码+lw+部署文档+讲解等)
项目案例





优势
1-项目均为博主学习开发自研,适合新手入门和学习使用
2-所有源码均一手开发,不是模版!不容易跟班里人重复!

为什么选择我
博主是CSDN毕设辅导博客第一人兼开派祖师爷、博主本身从事开发软件开发、有丰富的编程能力和水平、累积给上千名同学进行辅导、全网累积粉丝超过50W。是CSDN特邀作者、博客专家、新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流和合作。
🍅✌感兴趣的可以先收藏起来,点赞关注不迷路,想学习更多项目可以查看主页,大家在毕设选题,项目代码以及论文编写等相关问题都可以给我留言咨询,希望可以帮助同学们顺利毕业!🍅✌
源码获取方式
🍅由于篇幅限制,获取完整文章或源码、代做项目的,本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片。🍅
点赞、收藏、关注,不迷路














































