位图仅包含整数值(0-255)。我需要将每个像素值除以255。该位图转换为TensorImage,并在将其传递给预测输出的解释器时调用getBuffer()。 在中间某个位置,我必须将每个RGB像素除以255。恐怕还有一个缺点,即getBuffer()函数返回一个字节缓冲区。 我找不到关于TensorFlow Lite函数的很多文档。因此,我不确定tflite.run()是否只能接受字节缓冲区。 我正在使用Java编码,并且是Android AppD的新手。 请帮忙,因为这种归一化对于预测正确的值非常重要。
这是将位图调整大小后转换为TensorImage的代码。在这里,我需要将每个像素值除以255,但是我陷入了困境。
private TensorImage resizePic(Bitmap bp) {
ImageProcessor imageProcessor =
new ImageProcessor.Builder()
.add(new ResizeOp(60, 60, ResizeOp.ResizeMethod.BILINEAR))
.build();
TensorImage tImage = new TensorImage(DataType.FLOAT32);
tImage.load(bp);
tImage = imageProcessor.process(tImage);
return tImage;
}
这是运行模型的代码行
tflite.run(tImage.getBuffer(), probabilityBuffer.getBuffer());
probabilityBuffer 保存输出结果。