评估项目“:tflite”时出现问题

1 java android gradle flutter tflite

我尝试使用 tflite 包创建一个活动对象检测应用程序,但似乎在我安装了这两个包: tflitecamera并编写了检测代码后,它似乎无法运行。

软件包:Tflite: https: //pub.dev/packages/tflite 相机: https: //pub.dev/packages/camera

发生此错误:

A problem occurred evaluating project ':tflite'.

整个错误:

FAILURE: Build failed with an exception.

* Where:
Build file 'C:\Users\Hepha\Documents\flutter_windows_2.10.3-stable\flutter\.pub-cache\hosted\pub.dartlang.org\tflite-1.1.2\android\build.gradle' line: 24

* What went wrong:
A problem occurred evaluating project ':tflite'.
> No signature of method: build_a7q9josm4oau2t0m3mow48bac.android() is applicable for argument types: (build_a7q9josm4oau2t0m3mow48bac$_run_closure2) values: [build_a7q9josm4oau2t0m3mow48bac$_run_closure2@c7c7456]   

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 1m 43s
Running Gradle task 'assembleDebug'... 104,7s|Exception: Gradle task assembleDebug failed with exit code 1
Run Code Online (Sandbox Code Playgroud)

我的pubspec.yaml文件:

FAILURE: Build failed with an exception.

* Where:
Build file 'C:\Users\Hepha\Documents\flutter_windows_2.10.3-stable\flutter\.pub-cache\hosted\pub.dartlang.org\tflite-1.1.2\android\build.gradle' line: 24

* What went wrong:
A problem occurred evaluating project ':tflite'.
> No signature of method: build_a7q9josm4oau2t0m3mow48bac.android() is applicable for argument types: (build_a7q9josm4oau2t0m3mow48bac$_run_closure2) values: [build_a7q9josm4oau2t0m3mow48bac$_run_closure2@c7c7456]   

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 1m 43s
Running Gradle task 'assembleDebug'... 104,7s|Exception: Gradle task assembleDebug failed with exit code 1
Run Code Online (Sandbox Code Playgroud)

我的android/app/build.gradle文件:

dependencies:
  flutter:
    sdk: flutter

  cupertino_icons: ^1.0.2
  camera: ^0.9.4+1
  image_picker: ^0.8.4+11
  tflite: ^1.1.2

dev_dependencies:
  flutter_test:
    sdk: flutter

  flutter_lints: ^2.0.0

flutter:

  uses-material-design: true

  assets:
      - assets/
      - assets/labels.txt
      - assets/metadata_V2.tflite

Run Code Online (Sandbox Code Playgroud)

有人可以帮我吗?谢谢

Moh*_*ail 5

因此,首先,要消除此错误,您应该在 ~\tflite-1.1.2\android\build.gradle上更改此设置:

dependencies {
    compile 'org.tensorflow:tensorflow-lite:+'
    compile 'org.tensorflow:tensorflow-lite-gpu:+'
}
Run Code Online (Sandbox Code Playgroud)

对此:

dependencies {
    implementation 'org.tensorflow:tensorflow-lite:+'
    implementation 'org.tensorflow:tensorflow-lite-gpu:+'
}
Run Code Online (Sandbox Code Playgroud)

只需根据tflite 中的 github 问题将编译更改为实现即可解决您上面发布的问题。对我来说,它很有魅力,但是当我尝试用一​​些图像推断我的模型时,出现了这个错误 Caused by: java.lang.IllegalArgumentException: Cannot convert between a TensorFlowLite tensor with type UINT8 and a Java object of type [[F (which is compatible with the TensorFlowLite type FLOAT32). ,整个应用程序崩溃了。因此,如果您的模型基于图像,请检查此答案,它与导出模型时模型的量化有关。只需这样做:

config = QuantizationConfig.for_float16()
model.export(export_dir='.', tflite_filename='model_fp16.tflite', quantization_config=config)
Run Code Online (Sandbox Code Playgroud)

希望这对你有用!