无法在tensorflow lite对象检测android应用程序中使用自定义模型

无法在tensorflow lite对象检测android应用程序中使用自定义模型,android,tensorflow,tensorflow-lite,Android,Tensorflow,Tensorflow Lite,我使用Google AutoMl训练模型,然后生成tensorflow lite模型来检测塑料瓶等。我想在tensorflow lite对象检测android示例中使用,但失败了 这就是我提到的github: 我用自己的项目替换了tflite文件和txt文件,安卓studio上的安装运行良好,但应用程序崩溃,无法运行 public class DetectorActivity extends CameraActivity implements OnImageAvailableListener {

我使用Google AutoMl训练模型,然后生成tensorflow lite模型来检测塑料瓶等。我想在tensorflow lite对象检测android示例中使用,但失败了

这就是我提到的github:

我用自己的项目替换了tflite文件和txt文件,安卓studio上的安装运行良好,但应用程序崩溃,无法运行

public class DetectorActivity extends CameraActivity implements OnImageAvailableListener {
  private static final Logger LOGGER = new Logger();

  // Configuration values for the prepackaged SSD model.
  private static final int TF_OD_API_INPUT_SIZE = 300;
  private static final boolean TF_OD_API_IS_QUANTIZED = true;
  private static final String TF_OD_API_MODEL_FILE = "swai.tflite";
  private static final String TF_OD_API_LABELS_FILE = "file:///android_asset/swai.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;

这是我在虚拟设备中部署时发现的eror

09-17 13:32:09.283 1599-1856/? D/gralloc_ranchu: gralloc_alloc: Creating ashmem region of size 462848
09-17 13:32:09.325 9980-10000/org.tensorflow.lite.examples.detection E/AndroidRuntime: FATAL EXCEPTION: inference
    Process: org.tensorflow.lite.examples.detection, PID: 9980
    java.lang.IllegalArgumentException: Cannot convert between a TensorFlowLite buffer with 786432 bytes and a ByteBuffer with 270000 bytes.
        at org.tensorflow.lite.Tensor.throwIfShapeIsIncompatible(Tensor.java:272)
        at org.tensorflow.lite.Tensor.throwIfDataIsIncompatible(Tensor.java:249)
        at org.tensorflow.lite.Tensor.setTo(Tensor.java:110)
        at org.tensorflow.lite.NativeInterpreterWrapper.run(NativeInterpreterWrapper.java:151)
        at org.tensorflow.lite.Interpreter.runForMultipleInputsOutputs(Interpreter.java:275)
        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:193)
        at android.os.HandlerThread.run(HandlerThread.java:65)



我想没有设置来实现这个模型工作,有什么建议吗?谢谢

案例结束,通过将TF_OD_API_输入_大小从300更改为512解决。786432表示512x512x3,但我的输入仅为270000(300x3003)

嗨,阿里,你能在问题中添加错误日志吗?这将使我们更容易找出可能的错误。@BennyHawk感谢您的回复,我已经添加了错误日志。您用AutoML训练的模型的输入形状是什么?