任何人请帮助。谢谢。
是关于android studio的初学者。
目的:使用android quickstart项目制作一些分类应用。
尝试:将android quickstart项目中的默认模型和标签替换为我的模型和标签。
env:win10,android studio 3.5.2,SDK平台== Android9.0
基础项目:https://github.com/tensorflow/examples/tree/master/lite/examples/image_classification/android
状态:
- 通过defaut quickstart项目在我的android中完成了“ make project”和“ run”操作。(没问题。应用程序正常运行。很好)
- 将我的模型和标签添加到 \ examples \ lite \ examples \ image_classification \ android \ app \ src \ main \ assets
- 更改如下脚本
- org / tensorflow / lite / examples / classification / tflite / ClassifierQuantizedmobileNet.java 来自
return "mobilenet_v1_1.0_224_quant.tflite";
收件人
//return "mobilenet_v1_1.0_224_quant.tflite";
return "mymodel.tflite";
来自
return "labels.txt";
收件人
return "mylabel.txt";
- 完成了项目
- 调试应用。安装成功,但应用程序停止显示以下错误代码
E/tensorflow: Classifieractivity: No classifier on preview!
D/AndroidRuntime: Shutting down VM
E/AndroidRuntime: FATAL EXCEPTION: main
Process: org.tensorflow.lite.examples.classification,PID: 31772
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.graphics.Bitmap.setPixels(int[],int,int)' on a null object reference
at org.tensorflow.lite.examples.classification.Classifieractivity.processImage(Classifieractivity.java:81)
at org.tensorflow.lite.examples.classification.Cameraactivity.onPreviewFrame(Cameraactivity.java:259)
at android.hardware.Camera$EventHandler.handleMessage(Camera.java:1278)
at android.os.Handler.dispatchMessage(Handler.java:112)
at android.os.Looper.loop(Looper.java:216)
at android.app.activityThread.main(activityThread.java:7625)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:524)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:987)
I/Process: Sending signal. PID: 31772 SIG: 9
Disconnected from the target VM,address: 'localhost:8600',transport: 'socket'
问题已解决。
此错误的原因是模型输出和标签的形状不匹配。
我更改了模型的输出形状,并且效果很好。
谢谢