【问题标题】:(Camera2 API) Can I run 2 ImageReader instances of different configs at the same time?(Camera2 API)我可以同时运行 2 个不同配置的 ImageReader 实例吗?
【发布时间】:2021-02-25 15:10:19
【问题描述】:

我正在修改 (Java) 用于对象检测的 TF Lite 示例应用程序。它有一个实时视频源,显示常见对象周围的框。它接收 640*480 的 ImageReader 帧。

我想使用这些边界来裁剪项目,但我想从高质量图像中裁剪它们。我认为 5T 可以达到 4K。

那么,是否可以运行 2 个 ImageReader 实例、一个低质量视频源(由 TF Lite 使用)和一个用于捕获全质量静止图像?我也无法将第二个固定到任何 Surface 以供用户预览,图片必须在后台捕获。

在这篇中型文章 (https://link.medium.com/2oaIYoY58db) 中写道:“由于硬件限制,在任何给定时间,相机传感器中只能有一个配置处于活动状态;这称为活动配置。”

我是这里的 android 新手,所以无法理解这一点。

感谢您的宝贵时间!

PS:据我所知,CameraX 还无法做到这一点。

【问题讨论】:

    标签: android android-camera2 android-camerax image-reader


    【解决方案1】:

    正如引用的文章所解释的,您可以使用较低分辨率的预览流并定期捕捉较高分辨率的静止图像。根据硬件的不同,这种“切换”可能需要一些时间,或者非常快。

    在您的情况下,我会以最大分辨率运行预览捕获会话,并在必要时缩小(调整大小)帧以馈入 TFLite。

    【讨论】:

    • 谢谢!后续问题:我需要 Tf Lite 上的实时视频源,所以(运行全分辨率预览)+(为 TF Lite 缩小每一帧)的性能不会低于定期拍摄全分辨率照片,比如每 10 次秒?
    • 是的,每 10 秒拍摄一次高分辨率照片更便宜,但 a) 很少以 30 FPS 运行推理。因此,您的 TFLite 提要通常会被稀释,并且 b) 无法将 VGA 图像准确映射到此类全分辨率图像上。如果您的场景是动态的,这种不确定性可能会导致效果不佳。
    • 明白。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-17
    • 1970-01-01
    • 2010-09-16
    相关资源
    最近更新 更多