android - 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 3080
7 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)`
解决方案
推荐阅读
- python - Python,正则表达式,替换包含单词的文本
- angular5 - 如何通过点击地图获取经纬度?
- java - 使用流 api 获取字符串
- c# - exe不能工作,直到我更改名称,为什么?
- swift - 如何从窗口控制器中引用视图?
- jquery - Skrollr JS 在 Windows 10 中的 Mozilla 浏览器 50.00 版本中出现 div 重叠的滚动问题
- javascript - 如何在 javascript 中保存 cookie,然后使用 php 在另一个页面中访问它
- python - 使用 curl 将轮子上传到私有 PyPi
- c - 检查 CPU 型号以执行特定的 C 代码
- css - 如何使 wordpress 宽敞主题全宽?