既要进行视频编码又要识别视频,图形格式衔接不上

旭日3开发板,系统2.0.0

我们的需求时既要从摄像头获取码流进行编码存储,同时又要调用模型推理对视频帧进行识别。

mipi获取视频帧的接口函数是int HB_VIN_GetChnFrame(uint32_t pipeId, uint32_t chnId, void *pstVideoFrame, int32_t millSec);

输出视频数据是void * pstVideoFrame

而模型推理用的 int32_t hbDNNInfer(hbDNNTaskHandle_t *taskHandle, hbDNNTensor **output, const hbDNNTensor *input, hbDNNHandle_t dnnHandle, hbDNNInferCtrlParam *inferCtrlParam)

输入数据是const hbDNNTensor *input,

如何从获取的视频帧pstVideoFrame转到模型推理需要的input?

看到开发板的/app/cdev_demo/下有视频采集和bpu推理的模型,但是用的是两套不同的api,衔接不上。而Ai_Toolchain_Package-release-v1.20.1-OE-v2.6.2b下推理模型,是文件获取图片的再进行推理的方式。

我们需要的是:一方面用硬件方式获取到视频,用硬编码方式编码成h264,另一方面,用硬件方式获取到的码流帧,转换成模型推理需要的格式,进行图像识别。硬件方式获取到的码流帧,转换成模型推理需要的格式,这个没有看到相应的文档或者范例。

我们用的语言是c++

你好,获取的nv12图像可以直接推理,压缩到264使用接口即可

你好,可否详细一些?

如何获取到nv12图像?

我现在获取MIPI摄像头数据,用的接口是 int HB_VIN_GetChnFrame(uint32_t pipeId, uint32_t chnId, void *pstVideoFrame, int32_t millSec);

这里的pstVideoFrame是就是NV12的图像吗?还是需要如何转换?

另外,NV12图形转换成tensor,是用范例里01_api_tutorial/tensor下

// YUV_NV12 NCHW

HB_CHECK_SUCCESS(test_prepare_free_fn(

HB_DNN_IMG_TYPE_NV12, HB_DNN_LAYOUT_NCHW, randint_fn),

“test_prepare_free_fn failed”);

这个?