Skip to content

bylsxy/Visual-recognition-gate-system

Repository files navigation

智能闸口演示系统 (Smart Gate Demo)

基于 YOLO26 + NiceGUI 的智能闸口多目标识别演示系统。


🚀 快速开始

1. 安装依赖

pip install -r requirements.txt

⚠️ 首次安装时,ultralytics 库会自动下载 YOLO26 预训练权重 (~6MB)。

2. 运行系统

python main.py

3. 访问界面

打开浏览器,访问:http://localhost:8080


📁 项目结构

门闸系统/
├── main.py                # 入口 & NiceGUI 界面 (UI Layer)
├── AI_GUIDE.md            # AI 助手开发手册 (Dev Manual)
├── requirements.txt       # 依赖列表
├── demo.mp4               # (可选) 演示视频
├── src/
│   ├── model_infer.py     # YOLO26 推理 & 业务逻辑 (Model Layer)
│   └── data_logger.py     # 数据日志记录 & 终端推送 (Data Layer)
└── README.md              # 本文档

📅 最新状态 (v5.0 - 2026/02/15)

  • 架构重构: 引入 asyncio.to_thread 线程池与 session_id 会话管理,彻底解决界面卡顿与多开冲突问题。
  • 日志修复: 增加 DataLogger 首帧强制写入逻辑,修复启动时终端无日志显示的 Bug。
  • UI 优化: 压缩 "区域统计 (SECTOR COUNTS)" 组件布局,确保全屏显示完整。
  • 替代逻辑: 完善了针对桌面小物件的测试替代逻辑(详见下表)。
  • 趋势追踪: "检测趋势" 图表现在能同时追踪 5 类核心目标的历史数据。

🏷️ 类别映射与逻辑 (Object Logic)

为了方便在办公桌前测试,系统采用以下映射逻辑:

COCO ID 原始类别 映射逻辑目标 闸口权限 UI 显示
0 Person 行人 通行 行人
64 Mouse 轮椅 通行 轮椅 (鼠标)
67 Phone 婴儿车 通行 婴儿车 (手机)
1 Bicycle 自行车 禁行 自行车
3 Motorcycle 摩托车 禁行 摩托车

注意: 原有的 Bottle, Cup, Suitcase, Umbrella 映射已被废弃。


⚙️ 核心业务逻辑

  1. 优先级判定:以画面**最上方(Y坐标最小)**的目标为准(模拟最靠近闸口的目标)。
  2. 逻辑冲突: 骑车的人以车为准,判定禁行。
  3. 延迟关门: 目标离开画面后保留 10 帧开门状态,避免夹人。
  4. 日志记录:详细检测数据会自动推送到 IDE 控制台,精简摘要显示在网页端终端。

⚠️ 开发注意事项 (Dev Notes)

若需继续开发,请务必阅读 AI_GUIDE.md,了解以下关键机制:

  • 异步线程池隔离
  • UI 生命周期陷阱
  • 自动刷新机制

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages