Мы создали приложение для 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
Использование TF Object Detection API.
Если мы используем сетевой pb-файл, обученный использованию ssd_mobilenet_v2_coco, демо-приложение работает.
Если мы используем сетевой pb-файл, обученный с использованием fast_rcnn_inception_v2_coco, он вылетает (см. Ниже)
Возможно ли приложение для Android работать с моделью Inception v2?
(Точность мобильной сети очень плохая, но начало намного лучше)
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)