bytedeco/javacv

Passing OpenCV Mat as Tensorflow input

Open

#2,220 opened on 2024年4月23日

GitHub で見る
 (2 comments) (0 reactions) (0 assignees)Java (1,583 forks)batch import
help wantedquestion

Repository metrics

Stars
 (6,985 stars)
PR merge metrics
 (30d に merged PR はありません)

説明

Firstly, thanks for a great project, it's fun to work with!

I have an org.bytedeco.opencv.opencv_core.Mat object that I have prepared into the correct shape, format & scaling to pass to a tensorflow lite model. I'm having trouble populating the model input tensor correctly.

Mat image = ...; // 300 x 300 x 3 channels, depth=32
FloatPointer input = interpreter.typed_input_tensor_float(0);

I've got it working by iterating over the rows and cols of the image and copying the image pixels one by one into a float[] and calling input.put() on the float array. However, that seems inefficient, and I was hoping that I could do something like input.put(image), but that isn't working, or at least the model outputs aren't correct.

Could you give me any pointers (!) on how to efficiently copy/pass the Mat as a tensorflow input?

Thanks in advance.

コントリビューターガイド