模块说明
人脸检测框与预览画面对齐,需要先把检测输出还原到约定的原图坐标,再按实际链路处理裁剪、旋转、镜像和预览缩放,并计入显示偏移。本文算例依次执行裁剪、顺时针旋转、水平镜像和放大;这个顺序不是所有设备的通用规定。
人脸框偏移或方向相反,不一定是检测模型出错。本页说明坐标模块的输入、数学算例和验证方法,不代表新增SDK版本已发布。
模块接口应保留哪些字段
表格可横向滑动查看完整列。
| 对象 | 必要字段 | 用途 |
|---|---|---|
| 检测输入 | 原图宽高、检测输入宽高、预处理缩放或留边 | 把模型输出还原到约定原图坐标 |
| 裁剪与方向 | 原图裁剪矩形、旋转角度、旋转方向及镜像时点 | 明确变换范围和执行次序 |
| 预览区域 | 可见区域、缩放模式、显示偏移及实际方向 | 区分填满裁剪、完整显示和留边 |
| 输出与追溯 | 框与关键点坐标、时间戳、帧编号及变换配置版本 | 保持结果与当前帧、配置相对应 |
原始人脸框、五点关键点和预览叠加结果应分别可查看。若模型输入有留边或缩放,先撤销相应预处理,再执行约定的预览变换;不要只对框中心做变换而忽略四角。
一个可手算的方向变换示例
以下为数学算例,不是设备实测。使用左上角原点、x向右、y向下的连续边界坐标。640×480原图裁剪起点为(80,40),裁剪尺寸320×240;原图点(120,70)减去裁剪起点后为(40,30)。先顺时针旋转90度,得到(240−30,40)=(210,40),旋转后尺寸240×320;再水平镜像,得到(240−210,40)=(30,40);最后等比放大2倍,无额外偏移,显示点为(60,80),显示区域480×640。
A · 原图
640×480 · (120,70)
B · 裁剪后
320×240 · (40,30)
C · 顺时针旋转90度
240×320 · (210,40)
D · 水平镜像后
240×320 · (30,40)
E · 放大2倍后
480×640 · (60,80)
图中红点表示同一个数学点,各图按各自图像尺寸等比绘制,不能用图框在屏幕上的长度比较像素尺寸。这是连续边界坐标示意,不是实机检测效果图。
这里坐标定义为连续边界,旋转使用高度减y。若代码处理离散像素索引,则会涉及高度减1再减y,不能直接混用这两种约定。Android变换接口可参考Matrix官方文档,具体矩阵拼接顺序仍需与输入输出约定核对。
模块几何自检和设备验证怎样分开
先使用角点、中心、非对称点和跨裁剪边界的矩形,核对顺序、边界及逆变换。矩形应变换四角后重新取包围框。数学算例通过后,还需在目标设备检查传感器方向、前后摄镜像、预览缩放和页面旋转;几何自检不能证明实时链路或长期稳定性。
RK3588离线视觉SDK案例提供人脸框、关键点和方向输出,公开基线为YuNet CPU检测,不含身份识别或NPU性能结论。可通过RK3588 Android适配服务提供带方向标记的样图、设备信息及预览布局,先确认坐标接口与目标设备联调范围。
在线咨询
电话咨询
微信咨询
回到顶部