TFLite 的 Android Camera X ImageAnalyzer 图像格式

jip*_*son 4 android tensorflow-lite android-camerax

我正在尝试使用 CameraX api 使用 tflite 模型分析相机预览帧。

本文档描述了使用 ImageAnalyzer 处理传入帧。目前帧是作为 YUV 传入的,我不确定如何将 YUV 图像数据传递给需要形状输入 (BATCHxWIDTHxHEIGHTx3) 的 tflite 模型。在旧的 API 中,您可以指定预览输出格式并将其更改为 rgb,但是此页面特别说明“CameraX 以 YUV_420_888 格式生成图像”。

首先,我希望有人找到了一种将 RGB 传递给分析器而不是 YUV 的方法,其次,如果没有,有人可以建议一种将 YUV 图像传递给 TFLite 解释器的方法吗?传入的图像对象是 ImageProxy 类型,它有 3 个平面,Y、U 和 V。

Hus*_*eem 5

AFAIK,ImageAnalysis用例仅提供 YUV_420_888 格式的图像(您可以在此处查看定义)。

CameraX 官方文档提供了一种将 YUV 图像转换为 RGB 位图的方法,它在本节的底部。

有关显示如何将 Media.Image 对象从 YUV_420_888 格式转换为 RGB 位图对象的示例代码,请参阅YuvToRgbConverter.kt