Android相机帧接入视觉SDK时,应先确认输入数据怎样排列,再确认旋转、裁剪、缩放和镜像分别在哪里发生。预览看起来正常,不能直接证明模型读到了正确像素,也不能证明检测框已映射到正确显示位置。

格式名称不能代替平面布局

对多平面图像,记录每个平面的行步长、像素步长及有效范围,不把数据直接当成紧密连续排列。Android图像平面文档分别定义相邻行和像素样本的字节间距。转换或复制逻辑需要按实际格式与SDK接口核对,不能只根据预览图判断。

异步任务要明确数据有效期

Image文档说明,关闭图像后再访问此前取得的平面缓冲区,其行为未定义。若异步任务在图像关闭后仍需数据,应在关闭前复制所需内容到应用管理的缓冲区,并按任务完成条件管理复用。复制本身不能代替格式和边界检查。

分开记录图像与显示坐标

处理环节 需要说明 验证时保存
原始输入 图像尺寸、格式及裁剪区域 原始帧与实际有效区域
模型输入 旋转、缩放或裁剪的处理顺序 提交给SDK的图像与参数
结果坐标 原点、单位及对应图像 结果数值及图像版本
预览叠加 显示尺寸、留边或裁剪及镜像 显示区域和位置对照图

显示正确不等于链路全部通过

相机方向、设备方向和预览尺寸的关系可参考Android预览说明。实际SDK是否已处理旋转或镜像,仍以其接口约定和测试为准,避免重复变换。用同一帧核对模型输入、结果及叠加;没有取得原始输入证据时,输入链路保留待验证状态。本文仅解释处理方法,未开展新的设备测试。

相关服务:Android、移动端与嵌入式视觉SDK、项目咨询。