Snapdragon Neural Processing Engine (SNPE) и Tiny Yolo в приложении для Android

Для моего последнего университетского экзамена я пытаюсь использовать SNPE с Tiny YOLO для обнаружения объектов в реальном времени в приложении для Android. Я успешно преобразовал модель в формат DLC, но я не могу понять, как подготовить входные тензоры и как обработать выходные тензоры. Может ли один и тот же помочь мне? Благодарю.

0 ответов

Шаги по построению нейронной сети 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. Обработка вывода нейронной сети

Перейдите по ссылке ниже и найдите разделы, упомянутые в шагах 2,3 и 4, для подготовки входных тензоров и обработки выходных тензоров https://developer.qualcomm.com/docs/snpe/android_tutorial.html

Другие вопросы по тегам