常见问题解答
这种框架支持图像的格式包括哪几种?
• 摄像头预览的图像包括: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 开发者专区是 Qualcomm 联合CSDN 共同打造的面向中国开发者的技术专区。致力于通过提供全球最新资讯和最多元的技术资源及支持,为开发者们打造全面一流的开发环境。本专区将以嵌入式、物联网、游戏开发、Qualcomm® 骁龙™处理器的软件优化等技术为核心,打造全面的开发者技术服务社区,为下一代高性能体验和设计带来更多的想法和灵感。
加入 Qualcomm 开发者专区高通 AI Hub
全新高通 AI Hub 包含预优化AI模型库,支持在搭载骁龙和高通平台的终端上进行无缝部署。
该模型库为开发者提供超过75个主流的AI和生成式AI模型,比如Whisper、ControlNet、Stable Diffusion和Baichuan-7B,可在不同执行环境(runtime)中打包,能够在不同形态终端中实现卓越的终端侧AI性能、降低内存占用并提升能效。所有模型均经过优化,以充分利用高通AI引擎内所有核心(NPU、CPU和GPU)的硬件加速能力,从而使推理速度提升4倍。
Qualcomm 活动 更多
SDK 下载
本版块下载 SDK,只需简单注册,就可轻松下载。