尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

基于 Ultralytics YOLOv8(开源) 与 PyQt5 的行人检测、分割、二次识别与数据分析桌面应用

基于 Ultralytics YOLOv8(开源) 与 PyQt5 的行人检测、分割、二次识别与数据分析桌面应用 行人识别可视化大屏基于Ultralytics YOLOv8开源与PyQt5的行人检测、分割、二次识别与数据分析桌面应用。支持图片/视频上传、整图检测标注、行人分割与二次识别、准确率展示、ECharts 多风格图表组合、按日期归档存储、SQLite 持久化以及主题/字体外观配置。一、功能概览页面功能说明① 行人识别上传图片/视频整图检测分割每个人对分割图二次 YOLO 识别并展示准确率② 日志记录实时操作日志、SQLite 历史日志、打开当日日志文件与识别图片目录③ 图表分析基于 ECharts 的 19 种图表样式可多选/随机组合支持调参④ 参数配置输出目录、日志/图片子目录、模型路径、检测与预处理默认参数⑤ 外观设置主题深色/浅色/青绿、字体、字号、按钮边距即时生效⑥ 使用说明程序内嵌操作指南与注意事项核心能力行人检测仅检测person类别输出检测框、置信度准确率与人数行人分割按检测框裁剪若使用分割模型则按掩膜抠图二次识别对每张分割图再次运行 YOLO展示复核框与二次准确率对比首次中文准确率标注使用 Pillow 系统中文字体避免文字显示不全图像交互滚轮缩放、左键拖拽、右键/按钮旋转可返回整图视频识别按抽帧间隔处理并导出带框视频末帧分割并二次识别自动归档按日期保存整图、分割二次识别图、日志、参数快照写入 SQLiteECharts 可视化数量、准确率及关系/树图等多种风格支持左右双图组合二、技术栈类别技术说明目标检测Ultralytics YOLOv8开源 YOLO默认yolov8n.pt可选yolov8n-seg.pt做掩膜分割桌面界面PyQt5多标签页大屏、表单、图像查看器、主题样式Web 图表QtWebEngine ECharts 5 echarts-stat本地ui/assets加载离线可用图像处理OpenCV、NumPy、Pillow读写、预处理、绘制中文标题用 Pillow 渲染存储SQLite 本地文件识别记录、检测明细、操作日志按日目录归档配置JSONapp_config.json路径、检测参数、外观主题与字体依赖requirements.txtultralytics8.0.0 opencv-python4.8.0 PyQt55.15 matplotlib3.7 numpy1.23 Pillow9.0另需已安装PyQtWebEngine用于 ECharts 页面。Anaconda 环境通常可直接使用。三、项目结构python1/ ├── main.py # 程序入口 ├── config.py # 全局配置、按日目录 ├── app_config.json # 用户配置运行后生成/更新 ├── requirements.txt ├── README.md ├── yolov8n.pt # YOLO 检测权重 ├── core/ │ ├── detector.py # YOLO 加载、图片/视频检测、二次识别 │ ├── segment.py # 行人裁剪/掩膜分割、中文准确率标注 │ ├── preprocess.py # 亮度/对比度/去噪/CLAHE/旋转翻转 │ ├── storage.py # SQLite 与结果文件保存 │ ├── logger.py # 按日文件日志 UI 回调 │ └── image_io.py # 中文路径兼容的图像读写 ├── ui/ │ ├── main_window.py # 主窗口与识别页 │ ├── image_viewer.py # 缩放/平移/旋转查看器 │ ├── person_gallery.py # 分割二次识别画廊 │ ├── log_panel.py # 日志页 │ ├── chart_panel.py # ECharts 图表页QWebEngine │ ├── echarts_options.py # 19 种 ECharts option 构建 │ ├── param_panel.py # 参数配置页 │ ├── theme.py / theme_panel.py │ ├── help_panel.py │ └── assets/ # echarts.min.js、ecStat.min.js └── outputs/ # 默认输出根目录 ├── db/pedestrian.db └── YYYY-MM-DD/ ├── images/ ├── logs/ └── params/四、环境安装与启动环境建议Windows 10 / 11Python 3.10推荐 Anaconda安装依赖pip install -r requirements.txt # 若图表页空白请确认已安装 pip install PyQtWebEngine本机 Anaconda 示例E:\Anconda3\python.exe -m pip install -r requirements.txt首次运行若本地无权重Ultralytics 可能自动下载官方开源权重需网络。启动程序python main.py或E:\Anconda3\python.exe main.py五、推荐操作流程外观设置调大字号 ↓ 参数配置确认输出目录、模型路径 ↓ 行人识别上传 → 调整参数 → 开始识别 ↓ 查看主图标注 下方分割二次识别卡片 ↓ 图表分析多选/随机组合 ECharts 样式 ↓ 日志记录核对操作与归档路径六、各页面使用说明1. 行人识别页操作步骤点击上传图片/视频选择本地文件。按需调整右侧参数conf、IoU、输入尺寸、线宽、视频抽帧、亮度/对比度、预处理旋转等。点击开始识别。识别完成后上方主图带检测框的完整结果可缩放、拖拽、旋转。下方画廊每个人物分割图并显示二次识别准确率含首次对比。点击某张卡片可在主图放大点返回整图恢复完整结果。手动保存当前图将当前主图再存一份到当日目录。视频识别中可点取消视频识别。内部处理流程整图预处理 → YOLO 检测person按框或掩膜分割每个人对每张分割图再次 YOLO 识别过小图会先放大绘制二次检测框 中文准确率横幅 → 画廊展示并落盘图像操作操作方式缩放鼠标滚轮平移左键拖拽旋转 90°右键或工具栏左转/右转重置视图「重置视图」查看单人点击下方分割卡片恢复整图「返回整图」2. 日志记录页上方实时操作日志下方SQLite 历史日志表深色样式可刷新数据库日志、打开今日日志文件、打开今日识别图片目录3. 图表分析页ECharts左侧检测参数可保存 图表样式列表Ctrl 多选选中的前两个样式左右对照显示随机组合随机挑选两种样式组合数据来源历史识别次数、行人数、准确率等SQLite已支持的 ECharts 样式19 种渐变堆叠面积图带背景色的柱状图柱状图标签旋转嵌套环形图饼图纹理数据聚合聚合过程可视化线性回归统计插件 ecStat单轴散点图AQI-雷达图数据聚合盒须图热力图-大数据日历热力图笛卡尔坐标系 Graph关系图自动隐藏重叠标签依赖关系图多棵树径向树状图矩形树图与旭日图过渡工具栏切换动画4. 参数配置页输出根目录、日志/图片/参数子目录名SQLite 路径、YOLO 模型路径默认检测与预处理参数保存后写入app_config.json5. 外观设置页主题深色科技/浅色清晰/青绿护眼字体、正文字号默认约 18、标题字号、按钮内边距应用并保存后立即刷新全局样式适合大屏再调到 20–226. 使用说明页程序内嵌帮助文档可与本 README 对照阅读。七、关于「准确率」界面中的准确率来自 YOLO 输出的置信度confidence表示模型认为该目标是行人的把握程度0%100%。便于比较不同检测结果的可信程度不是人工标注意义上的绝对正确率。整图识别有「整图平均准确率」分割卡片展示「二次识别准确率」并对比「首次」。可通过调高conf过滤低置信度框调低则更容易检出更多目标也可能增加误检。八、数据存储说明按日期归档默认根目录outputs/outputs/YYYY-MM-DD/ ├── images/ # 整图 *_det_*.jpg、二次识别分割图 *_personN_re_*.jpg、视频、预览等 ├── logs/ # app_YYYY-MM-DD.log └── params/ # params_HHMMSS.json 参数快照SQLiteoutputs/db/pedestrian.db表内容detection_runs每次识别摘要人数、置信度、耗时、参数、结果路径等detections每个检测框明细operation_logs操作日志路径可在「参数配置」页修改。九、常见问题检测不到人或人数偏少降低conf、增大imgsz检查预处理旋转是否正确确认画面中有清晰行人。分割图上中文准确率显示不全 / 乱码当前版本已用 Pillow 微软雅黑绘制并自动加宽标题栏。请确认系统存在C:\Windows\Fonts\msyh.ttc等字体。图表页空白确认已安装PyQtWebEngine且ui/assets/echarts.min.js、ecStat.min.js存在。首次启动较慢首次加载 YOLO 权重与依赖初始化会稍慢之后会明显加快。中文路径图片程序通过 OpenCVimdecode/imencode兼容中文路径。字太小到「外观设置」增大正文字号或切换「浅色清晰」主题。想用掩膜抠图将yolov8n-seg.pt放到项目根目录或在参数配置中指定分割模型路径无分割模型时按检测框裁剪。十、许可证与致谢本项目界面与业务代码可按自身需求使用与修改。检测能力基于 Ultralytics 开源 YOLO请遵循其开源协议以官方仓库为准。界面PyQt5 / QtWebEngine图表Apache ECharts图像OpenCV、Pillow。十一、快速命令摘要# 安装依赖 pip install -r requirements.txt pip install PyQtWebEngine ​ # 启动程序 python main.py如有问题可查看当日日志outputs/YYYY-MM-DD/logs/app_YYYY-MM-DD.log或在程序「② 日志记录」页直接打开。https://github.com/zhangsansh/Ultralytics-YOLOv8-PyQt5.githttps://github.com/zhangsansh/Ultralytics-YOLOv8-PyQt5.git
返回列表