我试图通过向 CameraX 的 ImageAnalysis 提供 480x360 图像来提高人脸检测率。然而,以下代码生成 640x480 图像,从而将检测速度降低至 10 fps。如果我提供 480x360,我可以将速率提高到 20。
-
如何获得较小的目标分辨率和默认值
-
是否可以将我获得的用于图像分析的图像显示为预览。与预览用例相反。这样一来,人脸检测总体上不会与预览有很大的滞后。
图像分析 图像分析 =
建设者
.setTargetResolution(新尺寸(360, 480))
.setTargetRotation(旋转)
.setBackPressureStrategy(ImageAnalysis.STRATEGY_KEEP_ONLY_LATEST)
。建造();
如何获得较小的目标分辨率和默认值
默认按照docs https://developer.android.com/reference/androidx/camera/core/ImageAnalysis.Builder#setTargetResolution(android.util.Size)应该是 640x480。
至于如何获得更小的目标分辨率,我可以想象三种可能性。
- 您在某处错误地引用了 imageAnalysis 对象,并且它忽略了您的构建器,并默认为默认分辨率 640x480。
- 您的相机不支持 Size(360,480) 分辨率,支持的最接近的分辨率是 640x480。
- 您以错误的顺序引用“尺寸”,即“尺寸”(360, 480) 可能会导致选择的分辨率与“尺寸”(480, 360) 不同。 (您在问题中以两个顺序引用它们)。
根据docs https://developer.android.com/reference/androidx/camera/core/ImageAnalysis.Builder#setTargetResolution(android.util.Size)
目标分辨率尝试建立图像分辨率的最小界限。实际图像分辨率将是尺寸上最接近的可用分辨率不小于目标分辨率,由相机实现确定。但是,如果不存在等于或大于目标分辨率的分辨率,则将选择小于目标分辨率的最接近的可用分辨率。
所以,我会尝试一些较小的尺寸,例如Size(200, 200) 并查看支持哪些较小的分辨率并从那里放大。
有没有办法将我获得的图像分析图像显示为预览。与预览用例相反。这样一来,人脸检测总体上不会与预览有很大的滞后。
我不确定为什么您认为这会更快,因为这似乎会序列化操作而不是同步执行它们。
如果您需要这方面的进一步帮助,请提供有关创建 ImageAnalysis 实例的所有代码。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)