程序聚合 软件案例 斯诺克智能计分系统(ScoreMaster)

斯诺克智能计分系统(ScoreMaster)

2026-08-11 14:58:27
行业:生活服务
载体:嵌入式软件
技术:C++

业务和功能介绍

面向台球俱乐部和斯诺克爱好者的一套智能计分系统。系统部署在 RK3588 边缘计算设备(OrangePi 5B)上,搭配固定俯拍摄像头,对球台进行实时视频分析,自动完成台球识别、进球判定与计分,无需人工干预。

核心业务:
1. 实时球体检测:识别球台上红、黄、绿、棕、蓝、粉、黑、白 8 种台球以及球员、球袋共 11 类目标,置信度 0.9+;
2. 自动计分:基于检测结果与球袋几何关系判定进球,自动累加红球与彩球分值;
3. 轨迹预测与追踪:多目标跟踪、击球轨迹预测,辅助判犯规(未碰红球、白球落袋等);
4. 视频能力:支持本地视频回放与摄像头实时流两种输入,内置 H.264 硬编码输出,可留档复盘。

界面基于 Qt6 QML,包含实时视频画布、比分面板、球类清单、帧率/延迟调试栏等组件,支持暂停、单步、编码开关等交互。

系统在 1080p 输入下稳定运行 110fps,int8 量化后在端侧保持高帧率与低功耗,适合 24 小时不间断的球房场景。

项目实现

硬件平台:Rockchip RK3588(OrangePi 5B),8 核 A76/A55,内置 6 TOPS NPU,搭载 vendor 内核提供 mpp_service/RGA/NPU 驱动。

视频链路(零拷贝):摄像头/视频源 → MPP 硬解码 → dma-buf 直接传给 RGA → 缩放至模型输入 640x640 → RKNN NPU 推理。全链路通过 dma-buf fd 传递,无需 CPU 拷贝,最大化吞吐。

AI 模型:基于 YOLOv8n 对自采数据微调(11 类,imgsz=640),mAP50≈0.95。针对 NPU 部署做了 int8 量化,并通过"输出张量拆分"(坐标与分类分分成两个张量)解决了 int8 量化下分类分塌陷的问题,量化后 110fps 且精度不损。

推理加速:3 核 NPU 并行,帧按核轮转分配,异步流水线;解码线程与推理线程双线程生产者-消费者模型,配合帧率/延迟统计调优。

软件架构:C++20 + Qt6/QML,分层为 core(视频源/管线/推理/编码)、logic(追踪/计分/轨迹)、ui(QML 界面)三层;V4L2 采集支持 MIPI/USB 摄像头,内置配置切换。

后处理:置信度阈值 + NMS 去重 → 卡尔曼滤波目标追踪 → 计分引擎按斯诺克规则判定得分与犯规。

示例图片视频


warren
5天前活跃
方向: 嵌入式-嵌入式应用开发、后端-Java、
交付率:100.00%
相似推荐
单机键值存储引擎-kvs-system
项目地址:https://github.com/thedevplus/kvs-system 1、立项背景和目标 基于PingCap的Practical Networked Applications in Rust,使用 Rust 从零实现一个高性能日志结构键值存储系统。目标是深入掌握存储引擎设计(Bitcask 模式)、并发线程池架构、自定义网络协议与性能调优等系统编程核心能力,并通过 Criterion 基准测试与 Sled 等生产级引擎横向对比,验证自研方案的吞吐表现。 2、软件功能、核心功能模块 - Bitcask 存储引擎 (src/kvs.rs):追加写日志 + 内存 HashMap 索引,1 MiB 段轮转,O(1) 点读取经 read_at 定位,后台压缩线程按陈旧条目阈值触发,原子替换索引,WAL。 - 可插拔线程池 (src/thread_pool.rs):统一 spawn API,三种后端——Naive(一任务一线程)、SharedQueue(定长 worker + crossbeam 通道,含 catch_unwind 容错)、Rayon(工作窃取,第三方对比库)。 - 自定义 TCP 线协议 (src/protocol.rs):2 字符 opcode + 双 tab 分隔的行帧格式,手写 Serde 序列化/反序列化,Set/Get 共用 value 帧,错误码内联消息。 - 客户端连接池 (src/client.rs):预建立多条长连接,AtomicUsize 轮询分配请求,读写半分离避免锁竞争,双包 Sd 实现优雅关闭。 - CLI 与库双模式 :支持命令行(kvs-client/kvs-server)和 Rust 库两种调用方式。 3、业务流程、功能路径描述 - 写入路径 :客户端构造 ClientArgs → 协议层序列化为 st 帧 → 连接池原子轮询选连接写入 → 服务端线程池 spawn 处理 → 追加写日志段 + 更新内存索引 → 返回成功响应。 - 读取路径 :客户端发送 gt 帧 → 服务端查询 HashMap 获取 KvPointer{log,pos,sz} → read_at 精确定位读取 → 命中返回值 / 未命中返回 Gn。 - 压缩路径 :后台线程监测陈旧条目达 1000 → 重写活跃记录到新段 → 写锁下原子替换索引 → 两级反压(yield_now + sleep)防止写饥饿。 - 关闭路径 :客户端发 Sd 到池连接置 exit_status 标志 → 再经新 TcpStream::connect 发 Sd 唤醒阻塞的 accept 循环 → 服务端优雅退出。
www.shijiebolishi.com-独立站
本项目为外贸跨境独立站,目标是帮助出海企业搭建自有线上销售渠道,面向海外客户实现品牌展示与商品线上成交。核心模块包含产品展示、购物车、订单结算、海外支付接入、后台订单商品管理、移动端适配、基础 SEO 设置。业务流程:海外访客浏览站点商品,加入购物车提交订单并完成支付,商家通过后台管理商品、处理订单,完成完整外贸线上交易流程。
ch9329驱动开发
项目是ch9329芯片的上位控制程序,能够实现键盘和鼠标的操作,实现脚本自动化控制, 主要依赖串口通行来控制被控程序,程序集成了键盘点击,按压,释放, 鼠标绝对移动,相对移动,点击,拖拽。提供了外部标准的api,方便用户调用,项目为个人开源项目,以后会持续迭代,升级功能,包含获取串口信息,获取当前芯片配置,修改芯片配置,自动连接串口,适配linux
音视频聊天系统-音视频聊天系统
模拟微信开发可以实现单聊、群聊,以及音频和视频通话,聊天可发送基本表情包和消息以及图片发送等;客户端有桌面端和网页端两种访问方式,用户可以搜索不同用户,邀请、添加好友,与好友音频或者视频通信,可以设置个人信息,包括头像上传等;用户可使用桌面端、手机或者电脑访问网页登录账号;
基于串口通讯实时控制-门冲击试验
本软件是一套面向摆锤冲击试验台的桌面端三维可视化与控制台程序,基于 .NET 10 (Windows) + WPF 开发。软件通过串口与下位机(试验台控制器)通信,实时解析四轴位置反馈,并在三维场景中逼真还原摆锤、摆杆、悬挂机构与撞击门的姿态;同时提供手动对位、释放冲击、挂钩提升等全流程控制,以及通信日志与状态指示,便于操作人员离线调试与在线监控。 三维可视化(左侧主视区) 实时渲染试验台机构:悬挂架、摆杆、悬挂绳、三角吊环、锥-柱-锥三段式铁锤、撞击门。 铁锤姿态随设备反馈/演示状态机联动: 演示单摆阶段:铁锤绕支点做复摆运动,摆杆冻结不动。 释放冲击后"保持态":铁锤锁定 0° 竖直,即使各向移动也不被提起,直至摆杆降到 0° 方可挂钩。 鼠标轨道相机控制(Trackball),可自由旋转/缩放观察撞击瞬间与锤心位置。
帮助文档   Copyright @ 2021-2024 程聚宝 | 浙ICP备2021014372号
人工客服