文章正文行业动态
技术回顾
Camera2图像接入首先要确认缓冲区怎样排列、何时可用以及何时释放。YUV_420_888不能仅凭宽高就按连续NV21读取;每个平面的跨度、裁剪范围、方向和异步处理责任都应进入SDK输入约定。
两种stride分别说明什么
rowStride表示相邻两行起点之间的字节跨度,pixelStride表示同一行相邻像素样本之间的字节跨度。它们与图像宽度不是同一个概念。按照目标设备实际返回的平面信息读取,能避免把行尾填充或不同平面布局误当作有效像素。
Android的ImageFormat资料和Image.Plane接口是格式与跨度定义的依据。本文按这些接口回顾接入方法,适用设备仍需通过相应输入用例核对。
进入SDK前核对哪些输入
表格可横向滑动查看完整列。
| 核对项 | 应记录的信息 | 对应检查 |
|---|---|---|
| 格式与平面 | 格式、宽高、各平面的rowStride与pixelStride | 错行、错色、越界及裁剪范围 |
| 方向与镜像 | 传感器方向、显示方向、前置镜像规则 | 横竖屏、左右关系与坐标变换 |
| 生命周期 | 谁持有Image、是否复制、异步处理何时结束 | 释放后读取、漏释放与队列阻塞 |
| 负载与队列 | 采集/提交频率、积压和丢帧策略 | 持续输入下的延迟与资源占用 |
| 输出坐标 | 模型输入、裁剪区域与预览区域 | 检测框与已知位置的对应关系 |
给异步处理明确缓冲区责任
Image及其平面的可用期需要与异步任务一致。若回调结束就释放Image,后续任务应使用约定方式获得仍然有效的数据;若延后释放,则需说明任务结束、取消和异常时由谁释放。不能只验证一帧成功而省略持续采集和错误路径。
下面的字段可作为一次接入问题的记录模板,不预填设备测试数值。
表格可横向滑动查看完整列。
| 记录字段 | 内容 | 用途 |
|---|---|---|
| 环境身份 | 设备、Android版本、相机与SDK修订 | 区分设备和代码差异 |
| 输入元信息 | 格式、宽高、裁剪区域、平面跨度 | 复查转换假设 |
| 所有权与时间点 | 回调、提交、处理结束、释放责任 | 判断失效读取与积压 |
| 验证样本 | 可公开图案、方向及预期坐标 | 对照转换与坐标结果 |
| 异常路径 | 取消、超时、设备断开及恢复步骤 | 检查资源能否按约定回收 |
案例范围与接入资料
RK3588离线人脸检测与视觉SDK案例涉及Android、Camera2及离线CPU链路。人脸检测与身份识别是不同任务,NPU加速和其他设备兼容需要各自证据。评估RK3588 Android系统适配时,可提交目标设备、系统、样本、现有接口与上述接入记录,再确定设备矩阵及测试范围。
在线咨询
电话咨询
微信咨询
回到顶部