常见问题解答


这种框架支持图像的格式包括哪几种?

• 摄像头预览的图像包括:YUV和NV21,其它格式的图像需要先转换成YUV或NV21格式。
• 静态图像包括:位图存储。

应该如何理解函数FacialProcessing.setFrame(...)中的参数"frameWidth"和"frameHeight"?

• 摄像头预览的图像:通过函数"Camera.getParamters.previewSize"可以获得准确的宽度和高度尺寸信息;
• 静态图像:bitmap格式图像的尺寸。

为什么最终的脸部坐标相对于屏幕预览图像存在一定的旋转角度?

• 这是因为不同设备上摄像头存在安装误差。
• 为了解决这个问题,使用函数"setFrame(byte [] frameData, int frameWidth, int frameHeight, Boolean isMirrored, PREVIEW_ROTATION_ANGLE rotationAngle)"。通过枚举类 "PREVIEW_ROTATION_ANGL"赋予期望的旋转角度值就可以使得该坐标和预览视图对齐。
• 安卓应用程序接口 "Camera.orientation",能提供相对摄像头原始位置的旋转角度,用这个值来确定PREVIEW_ROTATION_ANGLE。(设备以纵向放置时,通过安卓应用程序接口camera. orientation就可以返回偏移角度。360度减去偏移角度值就是脸部坐标对齐屏幕所需要旋转的角度。)

为什么函数FacialProcessing.getInstance()会返回空值?

• 可能的原因包括:
• 该设备不支持脸部处理,可以通过调用方法"

FacialProcessing.isFeatureSupported"来验证,如果方法返回"false",说明设备不支持脸部处理。

• 脸部处理已经在运行,以可以通过:
• 退出当前正在运行的脸部处理实例,或者:
• 调用函数"FacialProcessing.release( )"来释放原来创建的脸部处理实例,然后再次调用"FacialProcessing.getInstance( )"

视频模式和静态模式有什么相对优势?

• 视频模式下的效率更高,因为可以在上一帧数据的基础上使用特定的预测算法,它更适合做扫描摄像头预览。
• 静态模式的精度更高,因为它能时时扫描整个图像,它更适合于静态图像。

哪些情况下需要使用方法"setFrame"中的"isMirrored"参数?

• 使用前置摄像头预览图像时,设置参数"isMirrored"值为"TRUE"

最终的脸部坐标没有对齐屏幕预览视图,该如何解决?

• 你需要通过绘制的视图长宽尺寸来标准化脸部坐标
示例代码:
if rotation angle is 0 or 180 degrees, then
   newX = oldX * surfaceWidth / cameraPreviewWidth
    newY = oldY * surfaceHeight / cameraPreviewHeight
if rotation angle is 90 or 270 degrees, then
   newX = oldX * surfaceWidth / cameraPreviewHeight
    newY = oldY * surfaceHeight / cameraPreviewWidth

Qualcomm 解决方案

 

高通 AI Hub

全新高通 AI Hub 包含预优化AI模型库,支持在搭载骁龙和高通平台的终端上进行无缝部署。
该模型库为开发者提供超过75个主流的AI和生成式AI模型,比如Whisper、ControlNet、Stable Diffusion和Baichuan-7B,可在不同执行环境(runtime)中打包,能够在不同形态终端中实现卓越的终端侧AI性能、降低内存占用并提升能效。所有模型均经过优化,以充分利用高通AI引擎内所有核心(NPU、CPU和GPU)的硬件加速能力,从而使推理速度提升4倍。

了解更多

SDK 下载

本版块下载 SDK,只需简单注册,就可轻松下载。