在将目标检测系统应用于视障辅助场景时,问题不再只是模型精度或推理速度。
对于依赖语音获取环境信息的用户而言,系统输出的稳定性、方向判断的一致性、播报频率的可控性,都直接决定其可用性。因此,在这一阶段,我关注的重点不再是单点性能优化,而是系统结构是否足以支撑持续运行。
今天的工作目标可以概括为:
将 YOLO11n 的检测链路,从“技术验证”推进到“具备产品结构基础”的工程状态。
所谓“产品结构基础”,指的是以下能力已经形成稳定闭环:
- 实时视频采集
- 端侧 YOLO11n 目标检测
- Top-N(当前 Top8)输出
- 方位判断(左 / 中 / 右)
- 英文短语语音播报(带冷却机制)
- 时序滤波以抑制误检与抖动
- LiDAR 深度流接入与同步(含无深度设备降级)
这些能力并非功能堆叠,而是构成辅助系统运行稳定性的必要条件。
本次工程推进,围绕“空间一致性、信息节流、输出稳定化、深度同步”四个方向展开,目标是为后续距离融合与优先级调度打下结构基础。
一、从“能跑”到“能用”:检测链路的稳定化
实时检测已经可以运行,但“能跑”和“能用”之间,差距其实很大。
视频采集、Vision 推理、置信度过滤、检测框渲染——
这些步骤早已打通。
核心逻辑位于:
CameraManager.swift
但如果直接用单帧检测结果触发播报,体验几乎不可接受:
- 框抖动明显
- 方向频繁切换
- 误检会被瞬间读出
这对于视障辅助来说,是不可接受的。
二、坐标问题:空间一致性是前提
今天首先解决的是一个非常关键的问题——坐标链路不一致。
当时出现的现象很直观:
左右移动手机,框却上下移动。
原因在于:
- Vision 输出是归一化坐标
- 预览层存在旋转与镜像
- 推理方向和显示方向未统一
解决方案是将整个链路统一到“源图像归一化空间”,
显示层只负责一次转换。
这一步的意义在于:
空间理解系统必须有统一的几何基准。
否则,后续加入深度信息时,将无法保证方向与距离的一致性。
三、排序逻辑:从置信度到“场景优先级”
视障辅助系统的排序逻辑,不能简单依赖模型置信度。
当前综合评分公式为:
score = 0.50 * danger
+ 0.25 * boxSize
+ 0.25 * confidence
其中:
- danger:类别危险等级映射
- boxSize:归一化面积 + sqrt 拉伸
- confidence:模型置信度
实现位于:
ObjectGrader.swift
这样做的原因很直接:
在真实场景中,“更危险”或“更近”的物体,
比“模型更自信”的物体更重要。
系统最终只输出 Top8,
避免信息过载。
四、同类归并:减少认知负担
如果同一画面中出现多个 cup,
逐个播报显然没有意义。
当前策略是:
- 同帧同类目标归并
- 输出数量 + 类别
- 方向取优先级最高的目标方向
例如:
3 cups, left
对于辅助系统而言,
减少冗余信息本身就是优化。
五、时序滤波:从瞬时判断到持续确认
单帧检测结果并不稳定。
当前采用 Track + IoU + EMA 的时序滤波机制,
参数基线来自规划文档 :
- IoU 阈值:0.35
- bbox EMA:0.45
- conf EMA:0.35
- 稳定帧:3
- miss 删除:4
稳定输出条件为:
- hits ≥ 3
- misses == 0
- confEma ≥ 0.35
加入时序滤波后:
- 短暂误检基本不进入输出
- 框稳定性明显提升
- 方位边界不再频繁抖动
对于视障辅助系统而言,
稳定性优先于灵敏度。
六、语音系统:信息节流而非简单输出
语音播报采用英文短语形式:
2 cups, left; 1 laptop, front
播报规则包括:
- 稳定帧确认 3 帧
- 全局冷却 3.5 秒
- 相同短语抑制 7 秒
- 不排队播报
没有冷却机制时,系统几乎无法使用。
在辅助场景下,语音是唯一的信息通道。
如果频繁打断或重复,将直接降低可用性。
因此,语音系统本质上是一个“信息调度系统”。
七、深度流接入:从平面识别到空间理解
今天最重要的工程进展,是完成 Demo1 阶段 A1 的深度流接入与同步。
按照规划 :
- 新增 AVCaptureDepthDataOutput
- 使用 AVCaptureDataOutputSynchronizer 同步视频帧与深度帧
- 自动检测深度能力
- 无深度设备自动回退
当前已实现:
- 深度流成功同步
- 支持机型可获取深度帧
- 无 LiDAR 设备自动降级为 video-only
下一步将实现:
- 框中心点深度(单位:米)
- 框内分位数深度(P50 / P30)
- 深度异常值剔除
这一步的意义在于:
系统开始从“二维目标检测”
转向“具备空间距离感知能力”的辅助工具。
八、当前状态与限制
当前 Demo 已可:
- 稳定输出 Top8
- 同类归并
- 英文短语播报
- 深度流同步
在常见室内场景下可以连续运行。
但仍存在限制:
- 距离尚未正式并入排序逻辑
- 性能监控面板未加入
- 深度异常场景尚未系统优化
结语:一次结构性的推进
今天主要完成了一次结构性的工程推进:
- 统一空间坐标
- 稳定检测输出
- 控制信息密度
- 接入真实深度数据
下一阶段,将把真实距离正式并入排序与播报逻辑,
完成 Demo1 的空间增强闭环。
本项目仍处于 Demo1 阶段,后续将继续记录距离融合与排序增强的工程推进过程。
That's all 💕. Byebye ~