无法在Android应用中使用自定义对象检测模型(TFLITE)

时间:2020-02-22 11:00:32

标签: android tensorflow object-detection

我训练了一个对象检测模型,以使用Google AutoML检测四种植物,并将自定义的.tflite和.txt文件替换为从https://github.com/tensorflow/examples/tree/master/lite/examples/object_detection/android下载的模型。 在将应用程序安装到Android手机中之后,它一直崩溃,并显示消息该版本已过时。 这是我替换 DetectorActivity.java 中的.tflite和.txt文件的代码:

// Configuration values for the prepackaged SSD model.
private static final int TF_OD_API_INPUT_SIZE = 512;
private static final boolean TF_OD_API_IS_QUANTIZED = true;
private static final String TF_OD_API_MODEL_FILE = "plant_detect.tflite";
private static final String TF_OD_API_LABELS_FILE = "file:///android_asset/plant_list.txt";
private static final DetectorMode MODE = DetectorMode.TF_OD_API;
// Minimum detection confidence to track a detection.
private static final float MINIMUM_CONFIDENCE_TF_OD_API = 0.5f;
private static final boolean MAINTAIN_ASPECT = false;
private static final Size DESIRED_PREVIEW_SIZE = new Size(640, 480);
private static final boolean SAVE_PREVIEW_BITMAP = false;
private static final float TEXT_SIZE_DIP = 10;
OverlayView trackingOverlay;
private Integer sensorOrientation;

这是logcat中的错误:

2020-03-06 16:20:35.711 6762-6769/? E/mples.detectio: Unable to peek into adb socket due to error. Closing socket.: Connection reset by peer
2020-03-06 16:20:36.387 6762-6762/? E/libc: Access denied finding property "vendor.camera.aux.packagelist"
2020-03-06 16:20:36.387 6762-6762/? E/libc: Access denied finding property "vendor.camera.aux.packagelist"
2020-03-06 16:20:36.387 6762-6762/? E/libc: Access denied finding property "vendor.camera.aux.packagelist"
2020-03-06 16:20:36.387 6762-6775/? E/libc: Access denied finding property "vendor.camera.aux.packagelist"
2020-03-06 16:20:36.577 6762-6762/? E/libc: Access denied finding property "vendor.camera.aux.packagelist"
2020-03-06 16:20:36.578 6762-6762/? E/libc: Access denied finding property "vendor.camera.aux.packagelist"
2020-03-06 16:20:36.580 6762-6762/? E/libc: Access denied finding property "vendor.camera.aux.packagelist"
2020-03-06 16:20:36.582 6762-6762/? E/libc: Access denied finding property "vendor.camera.hal1.packagelist"
2020-03-06 16:20:36.589 6762-6775/? E/libc: Access denied finding property "vendor.camera.aux.packagelist"
2020-03-06 16:20:36.590 6762-6775/? E/libc: Access denied finding property "vendor.camera.aux.packagelist"
2020-03-06 16:20:36.666 6762-6762/? E/Camera-JNI: setPreviewCallbackFlags is to be ignored, because CallbackBuffers is empty
2020-03-06 16:20:36.871 6762-6836/? E/Camera-JNI: Out of buffers, clearing callback!
2020-03-06 16:20:37.131 6762-6923/org.tensorflow.lite.examples.detection E/Camera-JNI: Out of buffers, clearing callback!
2020-03-06 16:20:37.190 6762-6836/org.tensorflow.lite.examples.detection E/Camera-JNI: Out of buffers, clearing callback!
2020-03-06 16:20:37.252 6762-6836/org.tensorflow.lite.examples.detection E/Camera-JNI: Out of buffers, clearing callback!
2020-03-06 16:20:37.314 6762-6923/org.tensorflow.lite.examples.detection E/Camera-JNI: Out of buffers, clearing callback!
2020-03-06 16:20:37.371 6762-6923/org.tensorflow.lite.examples.detection E/Camera-JNI: Out of buffers, clearing callback!
2020-03-06 16:20:37.429 6762-6923/org.tensorflow.lite.examples.detection E/Camera-JNI: Out of buffers, clearing callback!
2020-03-06 16:20:37.484 6762-6826/org.tensorflow.lite.examples.detection E/AndroidRuntime: FATAL EXCEPTION: inference
Process: org.tensorflow.lite.examples.detection, PID: 6762
java.lang.IllegalArgumentException: Cannot copy between a TensorFlowLite tensor with shape [1, 20, 4] and a Java object with shape [1, 10, 4].
    at org.tensorflow.lite.Tensor.throwIfShapeIsIncompatible(Tensor.java:412)
    at org.tensorflow.lite.Tensor.throwIfDataIsIncompatible(Tensor.java:369)
    at org.tensorflow.lite.Tensor.copyTo(Tensor.java:247)
    at org.tensorflow.lite.NativeInterpreterWrapper.run(NativeInterpreterWrapper.java:166)
    at org.tensorflow.lite.Interpreter.runForMultipleInputsOutputs(Interpreter.java:314)
    at org.tensorflow.lite.examples.detection.tflite.TFLiteObjectDetectionAPIModel.recognizeImage(TFLiteObjectDetectionAPIModel.java:193)
    at org.tensorflow.lite.examples.detection.DetectorActivity$2.run(DetectorActivity.java:181)
    at android.os.Handler.handleCallback(Handler.java:873)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:224)
    at android.os.HandlerThread.run(HandlerThread.java:65)
2020-03-06 16:20:37.491 6762-6923/? E/Camera-JNI: Out of buffers, clearing callback!

0 个答案:

没有答案