Android 应用程序上的 Snapdragon 神经处理引擎 (SNPE) 和 Tiny Yolo

Snapdragon Neural Processing Engine (SNPE) and Tiny Yolo on Android App

为了我的大学期末考试,我正在尝试将 SNPE 与 Tiny YOLO 结合使用,以便在 Android 应用程序中进行实时对象检测。我成功地将模型转换为 DLC 格式,但我无法理解如何准备输入张量以及如何处理输出张量。 sameone可以帮我吗?谢谢

构建 SNPE 神经网络并获得输出 FloatTensor 的步骤:

  1. 在 Android/app 目录中创建一个资产文件夹,并将模型文件 (.dlc) 保存在资产文件夹中。

    // assetFileName is the file name of .dlc
    InputStream assetInputStream = application.getAssets().open(assetFileName); // Create and build the neural network
    NeuralNetwork network = new SNPE.NeuralNetworkBuilder(application)
            .setDebugEnabled(false)
    //outputLayerNames can be got while converted model to DLC format
            .setOutputLayers(outputLayerNames)
            .setModel(assetInputStream, assetInputStream.available())
            .setPerformanceProfile(NeuralNetwork.PerformanceProfile.DEFAULT)
            .setRuntimeOrder(selectedRuntime) // Runtime.DSP, Runtime.GPU_FLOAT16, Runtime.GPU, Runtime.CPU
            .setCpuFallbackEnabled(needsCpuFallback)
            .build();
    // Close input
    assetInputStream.close();
    
  2. 创建输入张量

  3. 通过网络传播输入张量
  4. 处理神经网络输出

请按照下面的 link 找到步骤 2、3 和 4 中提到的用于准备输入张量和处理输出张量的部分 https://developer.qualcomm.com/docs/snpe/android_tutorial.html