手机拍屏幕行为模型二次训练方案

范围:为"手机对着电脑屏幕拍照"行为预警系统,调研怎么训:YOLO 检测模型二次训练的完整做法(数据/超参/冻结策略/部署)、ROI 分类器备选线、Qwen2.5-VL LoRA 微调复核模型、视频动作模型微调的适用条件,以及公开数据集盘点与评估验收标准。

1. 总体结论

三条训练线,按"必训 → 对比 → 可选"排序:

  1. YOLO 4 类自训 = 必训,也是整个项目最便宜的部分 (2080 Ti 上数小时级)。预训练 COCO 模型能检出 person/cell phone 但回答不了"手持 vs 放置"和"对着屏幕",自训增量价值集中在 hand-phone(手举手机整体)和 monitor(俯视角度显示器)两个新类 + 小目标手机召回提升。
  2. ROI 分类器 = 同一套标注数据的第二条路,PoC 双路对比。业界先例(CCTV 手机使用检测,两阶段 MAP 92.6%)证明 YOLO 定位 + 人 ROI 四分类是可行替代;两条路标注格式一次产出,谁准用谁。
  3. VLM 微调 = 先 prompt 基线、不达标再 LoRA。Qwen2.5-VL-7B 零微调 + 封闭式 prompt 大概率已够"复核器"角色(它本来就擅长开放式视频理解);LoRA 微调(Unsloth 4bit + TRL SFT,7B 单张 2080 Ti 可训)只在上一步准确率 <90% 时上,否则多花 1~2 天工程换 1~3 个点不划算,还有小数据过拟合风险。
  4. 视频动作模型微调(SlowFast/VideoMAE)= 本场景不推荐 。实测 90 个视频(每类 20 条)微调 I3D/SlowFast 测试精度只有 70~77%,而算力比路线 1/2 贵 1~2 个数量级;VideoMAE 小数据特性(3~4k 视频可微调)是它唯一值得留的入口------仅当已积累 ≥500 条行为视频时才考虑。

数据是成败关键,不是模型:公开数据集(FPI-Det 22,879 张脸-手机同步标注、Kaggle Phone Usage 23,930 张、Objects Phone V3 35k 张街景监控)可以当"预训练底座"先训一版通用模型,再用自己的场景数据(实拍+摆拍,≥3k 张)做场景适配微调------两阶段数据策略比纯自拍省一半标注量且泛化更好。

2. 训练目标拆解

2.1 YOLO 4 类定义(沿用 10-08 调研)

类 框法 来源 训练策略
person 完整人体 COCO 预训练已够用 不训或轻量微调提远距召回
monitor 显示器(含支架,俯视/斜视、黑屏亮屏都要标) 自训 形态单一,500~1000 张即可
cell phone 手机本体 公开数据底座 + 自训补充 提远距小目标召回
hand-phone 手+手机整体(降低对手机本体的依赖,遮挡时仍可检) 自训 核心类,需多姿势样本 1000~2000 张

hand-phone 标注规范(决定误报率的细节):

  • 框住"握持手机的手 + 手机"整体,不是只框手机;
  • 横屏/竖屏/带壳/裸机都框,手遮挡手机时照样框;
  • 负样本必须显式处理 :手机放桌上 → 只标 cell phone 不标 hand-phone;打电话 → 标 hand-phone(它确实手持)但位置不在显示器附近,由规则层过滤;看手机(低头平视手机)→ 标 hand-phone,靠"手臂朝向屏幕 vs 朝向自己"的角度规则 + VLM 区分。标注规范里把这三类易混情况写成文字条款,标注员照做,否则误报无解。

2.2 ROI 分类器的 4 类标签(与 2.1 同一批图产出)

no_phone / phone_on_table / holding_phone_viewing / holding_phone_toward_screen

  • 输入 = YOLO 检出的 person ROI(扩边 20% 防截断);
  • 第 4 类的判别构图特征:手机举高、手臂伸展、手机位于人前方而非脸部侧面------分类器学这种构图比检测器硬学空间关系直接;
  • 第 3 与第 4 类的边界("举着看"和"举着拍"单帧构图接近)是这条线的已知弱点,靠时序(第 4 类持续出现 + 手机中心稳定对屏幕)在规则层二次过滤。

3. 数据工程(核心章节)

3.1 公开数据集盘点(可当预训练底座)

数据集 规模 内容 对本项目用途 来源
FPI-Det (arXiv 2509.09111, 2025) 22,879 张,29,279 脸 + 10,255 手机同步标注 办公/教育/交通/公共场所,含极端尺度变化(手机小到 20×20px)与手-手机互遮挡;已含 YOLO/DETR 基线:YOLOv8-x 手机 AP@50 = 92.4%,人脸仅 56.5% 手机检测预训练底座;其"手机易检、人脸难检"结论提醒:我们的难点在小目标+遮挡,不在"认出手机" github.com/KvCgRv/FPI-Det
Kaggle Phone Usage Dataset 23,930 张(YOLO 格式,即拿即训) 两类:in_hand(手持使用)/on_ear(贴耳通话) hand-phone 类的直接冷启动数据;YOLO 格式免转换 Kaggle: anshsuthar/phone-usage-dataset
Objects Phone V3 (Ultralytics 数据集平台) 35,045 张 城市街景监控视频帧,手机 bbox 补"监控视角"域(俯视/远距),缓解自拍数据全是平视的域偏移 platform.ultralytics.com 数据集页
Roboflow Cellphone 项目集 数百~数千张不等 各种手机使用场景 多样性补充 Roboflow Universe 搜 "cellphone"
SYN-PPDB (CVPR 2021W) 53,760 帧(Unity 3D 合成) 手机使用行人行为(无接触/注视/通话),合成→真实迁移把精度从 84.3% 提到 96.7% 证明合成数据可用作冷启动;本场景若要合成,用"人+手机贴图"合成只建议补长尾(如逆光、极端俯角),不代替实拍 arXiv 2102.02119 系

注意 :公开集里几乎没有"手机对显示器拍照"这个特定构图(它本来就是个细分行为),所以公开数据只解决"检得出手机/手持","对着屏幕"的判定最终还是要场景自拍数据 + 规则/VLM 。预期管理:公开底座 + 场景微调后,hand-phone AP@50 合理预期 85~93%(FPI-Det 基线 92.4% 是监控通用视角,我们俯拍更远小目标会打折)。

3.2 自拍数据方案(场景适配层)

摆拍矩阵(2~3 天、需员工配合,覆盖决定泛化的四个轴):

轴 取值
行为 拍屏 200 次 / 看手机 200 次 / 通话 100 次 / 手机放桌 200 次 / 路过 200 次
距离 1m / 3m / 5m(对应手机在 1080p 帧里约 80px / 40px / 20px,覆盖最坏情况)
角度 每个工位 2 个典型角度(正视/侧 30°+)
光照 白天 / 傍晚 / 夜间补光(夜视红外下另采 100~200 张补数据,红外成像手机外观差异大)
  • 来源:现有墙装摄像枪直接录 2~3 天(含无摆拍的自然流量,这是最贴分布的部分)+ 定点摆拍补齐长尾;
  • 抽帧策略:摆拍视频按 2fps 抽帧 + 人工筛(每段保留 5~15 张有效帧),目标 ≥3,000 张有效帧 ,其中 hand-phone 类 ≥1,000 张;
  • 负样本刻意多采:"放桌手机""低头看手机"各占 1/3 以上------误报率由负样本质量决定;
  • 标注:CVAT(多人协作+质检流)或 LabelImg(单人快);3~6k 张 4 类约 2~4 人天;
  • 隐私:员工摆拍需书面知情同意;非摆拍自然录像里的路人人脸在训练集中打码或裁剪剔除(训练不需要人脸,且避免数据合规问题)------FPI-Det 的工业数据集也是人脸打码的,这是业界惯例。

3.3 两阶段数据策略(推荐)

复制代码
阶段 1(底座):公开集(FPI-Det/Kaggle/Objects Phone V3 手机类,~20k 张)
   → 训出"通用手机检测器",1 天(2080 Ti, YOLO11s, 50 epoch)
阶段 2(适配):阶段 1 权重 + 自拍场景数据(3~6k 张)
   → 场景微调 2~3 天 → 最终模型

比直接全量混训好:公开数据的监控视角先教会"小目标手机长什么样",场景数据只需教"我们的工位长什么样",小场景集过拟合风险更低。

4. YOLO 二次训练怎么做(具体配方)

4.1 模型与训练框架

  • Ultralytics YOLO11s(n 档更快但小目标精度损失,s 档在 2080 Ti 上训练和部署都宽裕;AGPL 风险见 10-08 调研 §3.4,内部部署可接受,法务有顾虑切 PaddleDetection RT-DETR);
  • 起始权重:阶段 1 用 yolo11s.pt(COCO 预训练);阶段 2 用阶段 1 的 best.pt。

4.2 关键超参(小数据配方,均有出处)

超参 值 依据
lr0 0.001(默认 0.01 是 COCO 量级,小数据会冲掉预训练特征) Ultralytics finetuning 指南 + 实践共识
patience 10~20(默认 100 是为长训练设计的,小数据集早停省时间) 同上
freeze 两阶段冻结(见 4.3) Ultralytics 指南 + arXiv 2509.05490
mosaic 0.5 (默认 1.0 过强,<2k 图时 mixup 直接 0.0) 小数据实践:重增广引入的标注噪声会拖慢收敛
imgsz 1280(默认 640;5m 外手机 <50px,640 下只剩几个像素) 小目标必须提分辨率;代价是训练慢 4 倍、显存 ×2,s 档 2080 Ti 扛得住
epochs 阶段 1: 50;阶段 2: 100(配早停) 经验值
optimizer auto(<10k iteration 自动 AdamW 低 lr),训练不稳时手动 AdamW, lr0=0.001 Ultralytics 指南

4.3 冻结策略(有系统实验支撑)

arXiv 2509.05490(YOLOv8/v10 分层冻结系统实验,4 个监控数据集)结论:没有普适最优,但两条经验稳定成立------

  • 小数据 + 域相似(办公监控 vs COCO 属相似域):冻结 backbone(前 10 层) 防过拟合,mAP 与全量微调持平甚至更好;
  • 冻结还能省至 28% 显存;
  • 极端小数据集只训 head(freeze 到 neck)作下限方案。

实操 = Ultralytics 官方推荐的两阶段微调:

python 复制代码
from ultralytics import YOLO

# 阶段 1:冻 backbone,只训 neck+head(让新 4 类先学会)
model = YOLO("yolo11s.pt")
model.train(data="custom.yaml", epochs=20, freeze=10,
            imgsz=1280, lr0=0.001, name="stage1")

# 阶段 2:全解冻,低 lr 精调(backbone 适配监控俯视角)
model = YOLO("runs/detect/stage1/weights/best.pt")
model.train(data="custom.yaml", epochs=30, lr0=0.001, patience=15,
            imgsz=1280, name="stage2")

freeze 深度当超参试:freeze ∈ {0, 4, 10} 各跑一遍比 val mAP,10-15 epoch 内出分晓(2080 Ti 上单跑数小时)。

4.4 训练成本与部署

项 估算(2080 Ti 单卡)
阶段 1(20k 张, s 档, 1280, 50ep) 1 天量级
阶段 2(3~6k 张, 1280, 100ep 早停) 数小时~1 天
超参对比 3 组 freeze 1~2 天
导出部署 model.export(format="engine") → TensorRT FP16;注意 TensorRT engine 与 GPU 架构绑定(2080 Ti 上构建的 engine 不能给 L20 用,跨卡要重建);2080 Ti sm_75 无 FP8,FP16 即可
推理 YOLO11s-1280 TensorRT FP16 单卡 50100 fps(640 下 200~500 fps 的经验值按 4 倍像素折算),单路 10fps 采样占用 <10%,8~16 路并发仍可

5. ROI 分类器线(同数据对比项)

  • 数据:与 §2.1 同一批标注,person ROI 裁剪(扩边 20%)→ 4 类分类集;
  • 模型:MobileNetV3-Large 或 EfficientNet-B0 微调(MobileNet 级 <10ms/ROI,2080 Ti 上 1 小时内训完,甚至 CPU 可跑);
  • 负类增强:no_phone/phone_on_table 各占 ≥30%;
  • PoC 对比设计 :A 路(YOLO 4 类 + 规则)vs B 路(YOLO person + ROI 四分类 + 规则),同一测试集(含负例全帧回放)比三项:触发召回 / 每 8h 误触发次数 / 单帧 GPU 时间。B 路额外成本:多一次推理 + 多一条训练流水线;已知弱点:俯拍 ROI 截断、双人交互表达不了。谁准用谁,预计差距 <5%,A 路部署更简可作平票裁决。

6. VLM 复核模型:先 prompt,后 LoRA

6.1 第一步:零微调 prompt 基线(必做)

Qwen2.5-VL-7B 原生支持多帧视频输入(动态 FPS + 绝对时间编码 MRoPE,官方视频基准 Video-MME 7B 达 65.1),"6 帧 + 封闭式问题"这种结构化判定是它舒适区。先按 10-08 调研 §4.2 的 prompt 方案跑 100 个真实触发 clip,得到基线准确率。预期:封闭二分类 + 强 prompt 下 85~95%,很可能直接达标(≥90%),后面全都不需要。

6.2 第二步(条件触发):LoRA 微调

触发条件:prompt 基线 <90%,且错误集中分析显示是"表述理解偏差"(如混淆看手机/拍摄的定义边界)而非"看不清"(后者该回去补数据或提分辨率,微调无用)。

  • 工具链 :Unsloth(4bit 量化加载 + LoRA,单张 2080 Ti 24GB 可训 7B)+ TRL SFTTrainer;社区有现成 notebook(4bit + LoRA 在 T4 上训 7B 的完整流程,2080 Ti 显存更大更宽裕);
  • 数据格式 :chat 模板,每样本 = 4~8 帧图(Qwen 多帧输入)+ 封闭式问题 → 目标答案 {"shooting": true/false, "confidence": 0-1, "reason": "一句话"};数据量 500~2000 个 clip 级样本(正负各半,正样本来自摆拍录像抽帧,负样本用"看手机/通话/放桌"clip);
  • 冻结策略 :Qwen2.5-VL 官方后训练(SFT+DPO)冻结 ViT 只训 LLM 侧------我们照做,LoRA 只挂 LLM 注意力/MLP 层(r=16~32),ViT 动则小数据极易过拟合且视觉通用能力崩坏;
  • 成本:1~2 天(数据整理 1 天 + 训练 2~4h + 评测);
  • 风险:微调后通用能力下降 → 微调模型只当"专用复核器",不兼做其他 VLM 任务;保留基线模型做 A/B 对照;
  • 再下一档(通常不需要):DPO 偏好对齐(正/负 clip 对)------只有 LoRA 后错误仍集中在"置信度校准"时才上。

7. 视频动作模型微调:适用条件评估

  • 工具:MMAction2(SlowFast/I3D/X3D/VideoMAE 全有现成 config,改 data path 就能微调);
  • 小数据实测(MDPI 2025,90 视频/每类 20 条):I3D 测试 76.7%、SlowFast 70%------小数据下不占优;
  • VideoMAE 是唯一亮点 :自监督预训练后只需 3~4k 视频即可下游微调(K400 87.4%),如果项目跑起来后录像库自然积累了 ≥500~1000 条"拍屏/看手机/通话"视频(每条 5~10s,抽 16 帧),再评估它做离线全量行为分类入库(审计报表用,不进实时链路);
  • 本期结论:不训。实时链路用 §4+§6 已覆盖,视频模型只在"录像库足够大 + 有离线分析需求"时启动。

8. 评估与验收

层 指标 通过标准(沿用 10-08 PoC 计划,补充分层)
YOLO 检测 各类 AP@50 hand-phone ≥85%(预期 85~93);分距离段报告:1m / 3m / 5m 各报一次(5m 段预期显著下降,决定是否需要 SAHI 切片兜底)
检测+规则触发 召回 / 误触发 召回 ≥90%;每 8h 误触发 ≤3 次(全帧回放测试集,含负例)
VLM 复核 clip 级准确率 ≥90%(区分 拍摄/看手机/通话);P95 延迟 ≤60s
端到端 3 天真实挂机 真拍屏被抓率 ≥80%;误报可解释可申诉;告警延迟 P95 ≤90s

防过拟合检查 :测试集必须是独立工位/独立时间段(不与训练集同场景同视角同一天),否则指标虚高。

9. 风险与缓解

风险 概率 影响 缓解
自拍数据量不足(员工不配合摆拍) 中 精度上限锁死 公开底座先行(§3.3);合成数据补长尾(SYN-PPDB 验证过迁移可行);降低验收标准分层交付(先 3m 内可用)
5m+ 远距手机漏检 高 漏报 imgsz 1280;SAHI 切片二次检测(只对含 person 帧);重点工位加近景枪(架构层缓解,非训练层)
VLM 微调后通用能力退化 中 复核器变"傻" 冻结 ViT;保留基线 A/B;微调模型专用化
两阶段训练阶段 1 底座质量差拖累阶段 2 低 返工 阶段 1 先单独验证手机 AP@50 ≥80% 再进阶段 2
Ultralytics AGPL 低 法务 内部部署不触发分发;备选 RT-DETR/YOLOX(Apache-2.0),训练配方平移
相关推荐
木头科技1 小时前
【AI 工程化第十六篇】Spring AI 多模态 RAG 实战:图片、扫描件、表格与图文证据链
java·人工智能·spring
龙石数据1 小时前
龙石 AI 智能体开发平台入选2026全球数据管理峰会数据治理创新实践案例
大数据·人工智能
ZDGJ60991 小时前
个人参与国际期货交易有哪些优势
人工智能
阿尔法工场研究院1 小时前
物理AI的GPT时刻快到了?
人工智能·机器人
wshzd1 小时前
LLM之Agent(120)|DeepSeek-Harness(二十七)Workflow 引擎与 Ralph 循环
前端·数据库·人工智能
兰亭妙微UI设计公司1 小时前
兰亭妙微ui设计公司分享:用AI原型提前发现复杂交互问题
人工智能
AAwangzong1 小时前
企业级AI智能体厂商对比:模型服务、Agent平台与流程自动化如何选择?
人工智能·经验分享·rpa·智能体
Gu_WenYun1 小时前
市场波动应对策略:灵活与坚定的平衡
人工智能·金融·区块链
Allen_LVyingbo1 小时前
三甲医院AI的1163实施路径(上)
人工智能·自然语言处理·自动化·健康医疗·数据库架构