# 钢包工位视频监测系统 基于 Python + PySide6 + OpenCV 的跨平台钢包工位监测系统,支持 RTSP 视频预览、RFID/Modbus 自动工位切换、AI 识别标注(MQTT)。 ## 功能特性 - 双路 RTSP 实时视频预览(左/右摄像头) - RFID Socket 或 Modbus TCP 自动触发工位切换 - 自动/手动模式切换 - AI 模块 MQTT 接入,支持目标检测标注 - 空闲超时自动清空工位 - 多工位配置管理 - 跨平台支持(Windows / Linux) ## 安装与运行 ### 方式一:源码运行(开发环境) 1. 安装 Python 3.8+ 2. 安装依赖:`pip install -r requirements.txt` 3. 根据现场修改 `config.dev.ini` 4. 运行:`python main.py --dev` ### 方式二:二进制一键部署(生产环境,推荐) 部署包为 PyInstaller 编译的二进制版本,**不含 Python 源码**,无需安装 Python 环境,**支持离线部署**。 #### 一键部署 ```bash bash deploy/deploy.sh <目标IP> <用户名> <密码> # 示例 bash deploy/deploy.sh 192.168.1.211 root 123456 ``` 脚本自动完成:构建 → 传输 → 离线安装依赖 → 注册 systemd 服务 → 开机自启 #### 手动部署 ```bash # 1. 构建部署包 bash deploy/pack.sh deploy/ # 2. 传输到目标设备 scp -r deploy/hookvision_rk3578 root@:/tmp/ # 3. 在目标设备上安装 cd /tmp/hookvision_rk3578 && sudo bash install.sh ``` ## 部署目录结构 目标设备安装后的目录: ``` /opt/hookvision/ # 安装目录 ├── hookvision/ # 二进制可执行文件 │ ├── HookVision # 主程序(ELF 可执行) │ ├── _internal/ # PyInstaller 打包的依赖库 │ ├── config.ini # 配置文件 │ ├── config.prod.ini # 生产环境配置 │ └── config.dev.ini # 开发环境配置 ├── start.sh # 启动脚本 └── install.sh # 安装脚本 ``` ## 配置文件 | 文件 | 用途 | |------|------| | `/opt/hookvision/config.prod.ini` | 生产环境配置(部署后修改此文件) | | `/opt/hookvision/config.dev.ini` | 开发环境配置 | 修改配置后重启服务生效: ```bash sudo systemctl restart hookvision ``` ### 配置项说明 | 配置节 | 说明 | |--------|------| | `[RFID]` | RFID 读卡器 TCP 连接参数 | | `[Modbus]` | Modbus TCP 连接及轮询参数 | | `[AI]` | MQTT 服务器地址及订阅主题 | | `[AI:N]` | AI 模块 N 的 broker 地址和端口 | | `[Bucket:N]` | 工位 N 的左右摄像头 RTSP 地址、MQTT 主题、AI 模块编号 | ## 服务管理 部署后通过 systemd 管理服务: ```bash systemctl start hookvision # 启动 systemctl stop hookvision # 停止 systemctl restart hookvision # 重启 systemctl status hookvision # 查看状态 journalctl -u hookvision -f # 查看实时日志 ``` 开机自启已默认启用。 部署时还会自动设置**屏幕永不熄屏**(禁用屏幕保护和 DPMS 休眠),确保设备常亮显示。 ## 项目文件说明 | 文件/目录 | 说明 | |-----------|------| | `main.py` | 程序入口 | | `hookvision/` | 核心业务代码 | | `assets/` | 图标、语音等资源 | | `config.dev.ini` | 开发环境配置 | | `config.prod.ini` | 生产环境配置 | | `HookVision-linux.spec` | PyInstaller Linux 打包配置 | | `deploy/pack.sh` | 部署包构建脚本 | | `deploy/deploy.sh` | 一键部署脚本 | | `deploy/hookvision_rk3578/debs/` | 离线 .deb 系统依赖包 | ## 注意事项 - RTSP 地址需包含用户名密码(如 `rtsp://user:pass@ip:port/...`) - 确保摄像头或 NVR 的 RTSP 服务已开启 - 一键部署需要目标设备 SSH 可达,且安装了 `sshpass`(脚本会自动安装) ## 许可证 内部使用