本文共 1560 字,大约阅读时间需要 5 分钟。
私 void classifyFrame() {// 获取BitmapBitmap bitmap = textureView.getBitmap(classifier.getImageSizeX(), classifier.getImageSizeY());// 感兴趣的文本String textToShow = classifier.classifyFrame(bitmap);}
// 输入数据的保存空间ByteBuffer=imgData=ByteBuffer.allocateDirect(DIM_BATCH_SIZE//1* getImageSizeX()* getImageSizeY()* DIM_PIXEL_SIZE//3* getNumBytesPerChannel());
// 将Bitmap转换为ByteBufferprivate void convertBitmapToByteBuffer(Bitmap bitmap) {imgData.rewind();bitmap.getPixels(intValues, 0, bitmap.getWidth(), 0, 0, bitmap.getWidth(), bitmap.getHeight());
long startTime = SystemClock.uptimeMillis();pixel=0;for (int i=0; i
}
protected void addPixelValue(int pixelValue) {imgData.put((byte)((pixelValue >> 16) & 0xFF));imgData.put((byte)((pixelValue >> 8) & 0xFF));imgData.put((byte)(pixelValue & 0xFF));}
// TensorFlow Lite引擎protected Interpreter tflite;// 输入结果存储空间private ByteBuffer imgData;
// 模型加载与预处理tflite= new Interpreter(loadModelFile(activity));imgData=ByteBuffer.allocateDirect(DIM_BATCH_SIZE//1* getImageSizeX()* getImageSizeY()* DIM_PIXEL_SIZE//3* getNumBytesPerChannel());
// 模型运行public void run(Object input) {Object[] inputs = {input};Map<Integer, Object> outputs = new HashMap<>();outputs.put(0, output);runForMultipleInputsOutputs(inputs, outputs);}
public void runForMultipleInputsOutputs(Object[] inputs, Map<Integer, Object> outputs) {Tensor[] tensors = wrapper.run(inputs);for (Integer idx : outputs.keySet()) {tensors[idx].copyTo(outputs.get(idx));}}
// 定义模型输入维度private static native int[] getInputDims(long interpreterHandle, int inputIdx, int numBytes);
转载地址:http://icuzk.baihongyu.com/