【问题标题】:Face Detection not Working on Certain Devices人脸检测在某些设备上不起作用
【发布时间】:2020-11-30 14:22:37
【问题描述】:

我在 GitHub 中使用这个项目:https://github.com/gankit0701/Face-Mask-Detection-In-android-App

这个使用 TensorFlow Lite for mobile (Android)。它检测一个人是否戴口罩。它会在面的顶部绘制一个框(红色/绿色)。

我奇怪的问题是,如果我直接在设备上安装演示 APK,面罩检测工作正常。但是当我在 Android Studio 中打开项目并从那里运行项目时,检测不起作用,没有绘制框,推理时间始终为零。但是当我使用演示 APK 安装它时,一切正常:https://github.com/gankit0701/Face-Mask-Detection-In-android-App/tree/master/apk

还有一点需要注意的是,我有两台设备,一台是华为手机,该应用程序通过 apk 或通过 Android Studio 在此设备上运行。另一个不能通过 Android Studio 工作的设备是 RockChip Android 设备。

【问题讨论】:

    标签: android tensorflow tensorflow-lite


    【解决方案1】:

    不推荐使用内部的 TFLite 调用。因此,“新构建”失败的原因是不推荐使用的调用。 我已经更改了一些以在 android 8.0 上启动应用程序(在较新版本上失败),但您应该检查所有代码: TFLiteObjectDetectionAPIModel.java@129:

    d.tfLite = new Interpreter(loadModelFile(assetManager, modelFilename), new Interpreter.Options().setNumThreads(NUM_THREADS)); 
    

    TFLiteObjectDetectionAPIModel.java@281:

      @Override
      public void setUseNNAPI(boolean isChecked) {
        if (tfLite != null && isChecked) {
          // NnApiDelegate nnApiDelegate = new NnApiDelegate(loadModelFile(assetManager, modelFilename));
          // tfliteOptions.addDelegate(nnApiDelegate);
          // tflite = new Interpreter(tfliteModel, tfliteOptions);
        }
      }
    }
    

    如果你想使用NNAPI,应用程序应该被重写。举个例子看this

    【讨论】:

    • 我尝试用不推荐使用的调用注释行,但检测仍然无法在设备上运行。顺便说一句,Android版本是7.1.2
    • 您在瑞芯微设备上调试过应用程序吗?推理电话发生了什么?任何错误/警告?您是否在可疑设备上尝试过带有native benchmark 的单独模型?
    • 没有错误信息。通常,在应用程序运行良好的设备上,它会在日志中显示:MultiBoxTracker: Processing 1 results from 84... 但在 Rockchip 设备上它始终是 - Processing 0 results from 84..
    猜你喜欢
    • 2014-09-20
    • 2013-04-13
    • 2021-06-19
    • 2013-12-04
    • 1970-01-01
    • 2015-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多