智慧篮球训练发布管理平台
YOLOv5n · RKNN Toolkit2 1.3 · RK3568

训练 · 发布 · 管理,全链路闭环 💾 磁盘加载中…

上传视频 → 分类(学习/验证)→ 标注 → 训练 → 验证 → 发布 APK → 设备自动更新上线

1

📹 上传视频(视频库)

设备端点「开始」→ 3/2/1 倒计时 → 通知篮球机开局,录像从「开始!」起记录 60 秒对局(不含倒计时过渡),局结束后自动 HTTPS 分片直传服务器,进入「视频库」。

设备启动时会自动注册到「设备授权管理」;没用的视频可直接删除(物理删除)。

2

🗂️ 给视频分类

在「视频库」为每个视频选择用途:加入 TRAIN 训练集(用来学习)或 加入 VAL 验证集(用来验证)。

分类后视频移入对应集合页。

3

✏️ 标注视频(TRAIN / VAL)

在「TRAIN 训练集」或「VAL 验证集」点「去标注」:平台自动抽帧(每段视频按时长均匀抽取),你为每一帧画框框出篮球,画面里没有球的帧点「无球」,全部确认后标注完成。

快捷键:a/d 翻页,Delete 删框,拖拽画框/移动/缩放。

4

🚀 开始训练(训练任务)

在「训练任务」页勾选已标注完成的 TRAIN 视频,设置 epochs 等参数,点「开始训练」。系统自动聚合所有已标注的 TRAIN + VAL 视频训练,并导出 ONNX、转换为 RKNN。

同一时间只运行一个任务,其余排队。

5

🔍 版本验证

训练成功后,在「版本验证」页用模型对 VAL 验证集跑推理,与人工标注的真实值对比,得出漏检率 / 误检率 / 精度,并逐帧查看检测效果。

这是判断模型是否可用的客观依据。

6

📦 发布部署(模型版本 / APK 版本)

训练验证通过后,在「模型版本管理」页下载模型 zip(best.pt / .rknn / 指标 / manifest)留档;或直接在「APK 版本发布」页选择已验证模型、填 versionCode/versionName,服务器自动从代码仓库拉取最新代码编译 APK 并发布。

设备每 10 秒检测一次新版本,发现后弹窗确认 → 下载 → 自动安装 → 重启生效。每个发布记录会保存所选模型的训练视频快照,可追溯。

🖥️ 设备授权与运营

设备是否允许使用、能否收到更新,都由「设备授权管理」页统一控制:

📱设备自动注册 — 默认已授权

设备每次启动都会把设备 ID 上报服务器:第一次见 → 自动新增并默认已授权;以后每次启动/上传都会刷新「最后上线时间」,管理页可随时查看每台设备的上线情况。

列表按最后上线时间倒序,管理员可一键撤销/恢复授权
⛔撤销授权 — 立即生效

被撤销的设备:启动时弹出「设备未授权」提示,点确定后直接退出程序;运行中也会被服务端拒绝——不能上传视频、不能下载 APK 更新(所有设备接口统一拦截)。

恢复授权后下次启动即可正常使用
🗑️ 视频库中的「已参与发布」标记:视频卡片上的「已参与发布」表示该视频曾用于已发布 APK 所选模型的训练。 这些素材是历史模型的数据基础,后续训练同类模型可能还要用到,删除前请确认是否还需要; 删除后不影响任何已安装 APK 的运行。

📚 为什么要分「TRAIN 训练集」和「VAL 验证集」?

这是机器学习的标准做法——让模型「学习」的材料和「考试」的材料必须分开:

📖TRAIN 训练集 — 用来「学习」

让模型看这些视频学会「球长什么样」。覆盖不同角度、距离、光线、持球/出手/飞行状态,量要最多(建议 70%),标注必须仔细——数据质量决定模型上限。

模型在训练时反复学习这些视频的每一帧
🔍VAL 验证集 — 用来「考试」

模型训练时从来不看这些视频。训练过程中每轮用它检查模型有没有变好;训练完成后用它对比「真实标注 vs 模型预测」,算出漏检/误检/精度。

量适中(建议 20-30%),同样需要标注(作为真实值)
⚠️ 为什么不能全用 TRAIN? 如果模型训练和考试用的是同一批视频,模型会「背答案」—— 看起来分数很高,换新场景立刻露馅。训练集和验证集必须来自不同的视频。

📹 视频库

所有已上传视频(按上传时间倒序)。先播放确认视频是否合格,再选择用途或删除。

📖 TRAIN 训练集

用来让模型「学习」的视频。逐个标注,标注完成 ✓ 后才可参与训练。

🔍 VAL 验证集

用来「考试」的视频:训练中检查 + 训练后验证对比。同样需要标注(作为真实值)。

🚀 训练任务

勾选「已标注」的 TRAIN 视频发起训练(已标注的 VAL 视频自动参与验证)。

选择 TRAIN 视频(显示全部已标注视频)

勾选视频后将按已确认 TRAIN 图片自动推荐;也可以自行修改。

训练历史 (仅训练任务,标注任务在 TRAIN/VAL 页管理)

🔍 检测预览

选择未进入训练集/验证集的视频和模型版本,逐帧全量推理。播放时检测框实时叠加在画面上,肉眼即可检查漏检/误检/框稳定性。

📦 1. 选择模型版本与分析方式

🎬 2. 选择视频(未进入训练集/验证集)

全量逐帧分析约每秒 2-3 帧,长视频耗时较久;结果会缓存,重复播放无需重算。

📦 模型版本管理

训练成功的模型版本,可下载 zip(best.pt / .rknn / 指标 / manifest)部署到设备。

📱 APK 版本发布

选择训练成功的模型版本,服务器自动从代码仓库拉取最新代码编译 APK 并发布,设备自动检测更新。

🔗 代码仓库:https://gitee.com/songbo12345678/basketball (构建时自动 git pull 最新代码)
1📦
选择模型训练成功的模型版本
➜
2🔢
填写版本号versionCode / versionName
➜
3🚀
生成并发布服务器自动编译打包

📦 1. 选择训练成功的模型版本

🔢 2. 版本信息

⚠️ versionCode 必须大于已发布的最大值(设备以此判断更新);构建约需几分钟

📋 发布历史

🖥️ 设备授权管理

设备启动联网后自动注册(默认已授权)。撤销授权后,该设备将无法使用,并停止上传视频与接收 APK 更新。

🧭 人脸识别日志

按一次完整人脸识别过程汇总展示阶段耗时、识别结论与必要的原始诊断。

🔎 查询诊断过程

标注
a/d 翻页 · 拖拽画框 · 框内移动 · 四角缩放 · Delete 删框 · s 保存