我想制作一个使用移动相机捕获图像并将该图像传递给tensorflow lite进行分类的应用程序。
答案 0 :(得分:1)
您可以使用TensorImage
(来自org.tensorflow.lite.support.image)。它具有TensorBuffer
,Bitmap
,int []
或float []
的构造函数。
因此,假设您有一个名为myImage
的图像,并且在myContext
上下文中运行,则可以使用以下代码在myModel.tflite
模型上运行tflite解释器:
// create tflite options (currently empty) and load the tf model
Interpreter.Options tfliteOptions = (new Interpreter.Options());
tfliteModel = FileUtil.loadMappedFile(myContext, "myModel.tflite");
// create tflite interpreter
tfliteInterpreter = new Interpreter(tfliteModel, tfliteOptions);
// get model parameters (index tensor is 0 for a single image)
DataType myImageDataType = tfliteInterpreter.getInputTensor(0).dataType();
myTensorImage = new TensorImage(myImageDataType);
// load bitmap
myTensorImage.load(myImage);
// run inference
tfliteInterpreter.run(myTensorImage.getBuffer(), output);
如果图像输入以字节为单位,则可以使用TensorBuffer
的{{1}},其余部分相同。
请注意,我没有指定解释器ByteBuffer
。
您还可以使用output
作为输出,可以轻松地为您提供TensorBuffer
,ByteBuffer
或int []
数组。
希望这会有所帮助:)
答案 1 :(得分:0)
如果您是经验丰富的人,则可以遵循@somethingorange提到的方法。
如果您是初学者,并且想要在Mobile上开发图像分类应用程序,请遵循以下方法。例如,您尝试开发一个模型来对给定图像是Cat
还是Dogs
进行分类。
Cats
和Dogs
的图像)model.tflite
)label.txt
model.tflite
和label.txt
移动到Android Studio中的资产文件夹。最好的是,上述所有步骤都是TFLite小组在this tutorial中提到的,这是一个很好的起点。
希望这些步骤对初学者有所帮助。