Мы создали приложение для Android на основе демонстрационного приложения для Android для обнаружения объектов Tensorflow. Он работает при использовании сети Mobilenet, но дает сбой, если мы пытаемся использовать сеть на основе Inception v2.
Возможно ли, чтобы обнаружение объектов Tensorflow Inception v2 работало на Android?
https://github.com/tensorflow/models/tree/master/research/object_detection
Мы используем тот же код, что и демонстрация детектора Tensorflow. https://github.com/tensorflow/tensorflow/blob/master/tensorflow/examples/android/src/org/tensorflow/demo/TensorFlowObjectDetectionAPIModel.java
Модели из зоопарка здесь, https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/detection_model_zoo.md
Использование API обнаружения объектов TF. Если мы используем сетевой файл pb, обученный с помощью ssd_mobilenet_v2_coco, демонстрационное приложение работает. Если мы используем сетевой pb-файл, обученный с помощью fast_rcnn_inception_v2_coco, он вылетает (см. Ниже)
Может ли приложение Android работать с моделью Inception v2? (точность мобильной сети очень плохая, но Inception намного лучше)
11-14 12:11:47.817 7122-7199/org.tensorflow.demo E/AndroidRuntime: FATAL EXCEPTION: inference
Process: org.tensorflow.demo, PID: 7122
java.nio.BufferOverflowException
at java.nio.FloatBuffer.put(FloatBuffer.java:444)
at org.tensorflow.Tensor.writeTo(Tensor.java:488)
at org.tensorflow.contrib.android.TensorFlowInferenceInterface.fetch(TensorFlowInferenceInterface.java:488)
at org.tensorflow.contrib.android.TensorFlowInferenceInterface.fetch(TensorFlowInferenceInterface.java:442)
at org.tensorflow.demo.TensorFlowObjectDetectionAPIModel.recognizeImage(TensorFlowObjectDetectionAPIModel.java:170)
at org.tensorflow.demo.DetectorActivity$3.run(DetectorActivity.java:288)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.os.HandlerThread.run(HandlerThread.java:61)