首页 > 解决方案 > Tensorflow Lite 模型有时无法检测到对象并崩溃

问题描述

系统信息**操作系统平台和分发**:Linux Ubuntu 18.04 和 Windows 10 TensorFlow 安装自(源代码或二进制):二进制 TensorFlow 版本(使用下面的命令):1.9.0 CPU Bazel 版本(如果从源代码编译):0.11。 1

您好,我按照以下步骤训练了我的 tensorflow 模型 ssd_mobilenet_v1_coco(使用本教程完成了 tf 记录和 env 准备工作)

所有这些都是在 Windows 10 上完成的,模型工作正常,即使在 Tensorflow Android 应用程序上,然后导出为 TF lite 格式 ii 将 .pb 文件发送到 Ubuntu dist 并使用 FLOAT命令

当我尝试在 tensorflow lite android 应用程序上运行模型时,我的问题出现了,我按照此处的说明添加自定义模型,但我的模型没有检测到任何东西。当我尝试按下音量调低按钮以“调试”应用程序崩溃的推理时。这是我的相关 android 堆栈:

03-09 19:22:19.311 u0_a4 30807 30807 E AndroidRuntime: FATAL EXCEPTION: main 03-09 19:22:19.311 u0_a4 30807 30807 E AndroidRuntime: Process: org.tensorflow.lite.demo, PID: 30807 03-09 19:22:19.311 u0_a4 30807 30807 E AndroidRuntime: java.lang.NullPointerException: Attempt to invoke interface method 'void org.tensorflow.demo.Classifier.enableStatLogging(boolean)' on a null object reference 03-09 19:22:19.311 u0_a4 30807 30807 E AndroidRuntime: at org.tensorflow.demo.DetectorActivity.onSetDebug(DetectorActivity.java:294) 03-09 19:22:19.311 u0_a4 30807 30807 E AndroidRuntime: at org.tensorflow.demo.CameraActivity.onKeyDown(CameraActivity.java:420) 03-09 19:22:19.311 u0_a4 30807 30807 E AndroidRuntime: at android.view.KeyEvent.dispatch(KeyEvent.java:2712) 03-09 19:22:19.311 u0_a4 30807 30807 E AndroidRuntime: at android.app.Activity.dispatchKeyEvent(Activity.java:3291) 03-09 19:22:19.311 u0_a4 30807 30807 E AndroidRuntime: at com.android.internal.policy.DecorView.dispatchKeyEvent(DecorView.java:383) 03-09 19:22:19.311 u0_a4 30807 30807 E AndroidRuntime: at android.view.ViewRootImpl$ViewPostImeInputStage.processKeyEvent(ViewRootImpl.java:4767) 03-09 19:22:19.311 u0_a4 30807 30807 E AndroidRuntime: at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4639) 03-09 19:22:19.311 u0_a4 30807 30807 E AndroidRuntime: at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4181) 03-09 19:22:19.311 u0_a4 30807 30807 E AndroidRuntime: at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4234) 03-09 19:22:19.311 u0_a4 30807 30807 E AndroidRuntime: at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4200) 03-09 19:22:19.311 u0_a4 30807 30807 E AndroidRuntime: at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4327) 03-09 19:22:19.311 u0_a4 30807 30807 E AndroidRuntime: at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4208) 03-09 19:22:19.311 u0_a4 30807 30807 E AndroidRuntime: at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4384) 03-09 19:22:19.311 u0_a4 30807 30807 E AndroidRuntime: at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4181) 03-09 19:22:19.311 u0_a4 30807 30807 E AndroidRuntime: at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4234) 03-09 19:22:19.311 u0_a4 30807 30807 E AndroidRuntime: at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4200) 03-09 19:22:19.311 u0_a4 30807 30807 E AndroidRuntime: at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4208) 03-09 19:22:19.311 u0_a4 30807 30807 E AndroidRuntime: at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4181) 03-09 19:22:19.311 u0_a4 30807 30807 E AndroidRuntime: at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4234) 03-09 19:22:19.311 u0_a4 30807 30807 E AndroidRuntime: at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4200) 03-09 19:22:19.311 u0_a4 30807 30807 E AndroidRuntime: at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4360) 03-09 19:22:19.311 u0_a4 30807 30807 E AndroidRuntime: at android.view.ViewRootImpl$ImeInputStage.onFinishedInputEvent(ViewRootImpl.java:4521) 03-09 19:22:19.311 u0_a4 30807 30807 E AndroidRuntime: at android.view.inputmethod.InputMethodManager$PendingEvent.run(InputMethodManager.java:2435) 03-09 19:22:19.311 u0_a4 30807 30807 E AndroidRuntime: at android.view.inputmethod.InputMethodManager.invokeFinishedInputEventCallback(InputMethodManager.java:1998) 03-09 19:22:19.311 u0_a4 30807 30807 E AndroidRuntime: at android.view.inputmethod.InputMethodManager.finishedInputEvent(InputMethodManager.java:1989) 03-09 19:22:19.311 u0_a4 30807 30807 E AndroidRuntime: at android.view.inputmethod.InputMethodManager$ImeInputEventSender.onInputEventFinished(InputMethodManager.java:2412) 03-09 19:22:19.311 u0_a4 30807 30807 E AndroidRuntime: at android.view.InputEventSender.dispatchInputEventFinished(InputEventSender.java:141) 03-09 19:22:19.311 u0_a4 30807 30807 E AndroidRuntime: at android.os.MessageQueue.nativePollOnce(Native Method) 03-09 19:22:19.311 u0_a4 30807 30807 E AndroidRuntime: at android.os.MessageQueue.next(MessageQueue.java:325) 03-09 19:22:19.311 u0_a4 30807 30807 E AndroidRuntime: at android.os.Looper.loop(Looper.java:142) 03-09 19:22:19.311 u0_a4 30807 30807 E AndroidRuntime: 在 android.app.ActivityThread.main(ActivityThread.java:6626) 03-09 19:22:19.311 u0_a4 30807 30807 E AndroidRuntime: 在 java.lang.reflect.Method.invoke(Native Method) 03- 09 19:22:19.311 u0_a4 30807 30807 E AndroidRuntime: 在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) 03-09 19:22:19.311 u0_a4 30807 30807 E AndroidRuntime: 在 com. android.internal.os.ZygoteInit.main(ZygoteInit.java:811)`

标签: androidpythontensorflowtensorflow-lite

解决方案


推荐阅读