将tensorflow lite与Qt一起使用

立体配对

环境 :

  • 操作系统:Win10 64bit
  • Qt:5.12.3
  • NDK:r18b
  • JDK:jdk1.8.0_201

我想在Qt5中使用tensorflow-lite,但是当我尝试导入Java类时有很多问题。但是如何下载tensorflow-lite-gpu,tensorflow-lite-cpu和tensorflow-lite-support?

android studio使build.gradle中的3行有效,我也尝试将3行添加到build.gradle中。

dependencies {
    // Build off of nightly TensorFlow Lite
    implementation 'org.tensorflow:tensorflow-lite:0.0.0-nightly'
    implementation 'org.tensorflow:tensorflow-lite-gpu:0.0.0-nightly'
    implementation 'org.tensorflow:tensorflow-lite-support:0.0.0-nightly'    
}

错误讯息

pastebin,因为它很长

我可以通过android studio构建此示例而没有任何问题,如何在Qt中使用tensorflow的Java API?

立体配对

答案很简单,只需要向build.gradle添加几行(来自QtCreator,项目(alt + x)->其他文件-> build.gradle)

  1. 将以下行放入build.gradle的“ android”块中

     compileOptions {
       sourceCompatibility = '1.8'
       targetCompatibility = '1.8'
     }
    
     aaptOptions {
       noCompress "tflite"
     }
    
  2. 将build.gradle的依赖项块(不是buildscript中的依赖项)更改为

    dependencies {
       implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar'])
    
       // Build off of nightly TensorFlow Lite
       implementation 'org.tensorflow:tensorflow-lite:0.0.0-nightly'
       implementation 'org.tensorflow:tensorflow-lite-gpu:0.0.0-nightly'
       implementation 'org.tensorflow:tensorflow-lite-support:0.0.0-nightly' 
    }
    

这应该可以完成工作,完整的build.gradle看起来像

buildscript {
    repositories {
        google()
        jcenter()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:3.2.0'
    }
}

repositories {
    google()
    jcenter()
}

apply plugin: 'com.android.application'

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar'])

    // Build off of nightly TensorFlow Lite
    implementation 'org.tensorflow:tensorflow-lite:0.0.0-nightly'
    implementation 'org.tensorflow:tensorflow-lite-gpu:0.0.0-nightly'
    implementation 'org.tensorflow:tensorflow-lite-support:0.0.0-nightly'
    // Use local TensorFlow library
    // implementation 'org.tensorflow:tensorflow-lite-local:0.0.0'
}

android {
    /*******************************************************
     * The following variables:
     * - androidBuildToolsVersion,
     * - androidCompileSdkVersion
     * - qt5AndroidDir - holds the path to qt android files
     *                   needed to build any Qt application
     *                   on Android.
     *
     * are defined in gradle.properties file. This file is
     * updated by QtCreator and androiddeployqt tools.
     * Changing them manually might break the compilation!
     *******************************************************/

    compileSdkVersion androidCompileSdkVersion.toInteger()

    buildToolsVersion androidBuildToolsVersion

    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = [qt5AndroidDir + '/src', 'src', 'java']
            aidl.srcDirs = [qt5AndroidDir + '/src', 'src', 'aidl']
            res.srcDirs = [qt5AndroidDir + '/res', 'res']
            resources.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            assets.srcDirs = ['assets']
            jniLibs.srcDirs = ['libs']
       }
    }

    compileOptions {
        sourceCompatibility = '1.8'
        targetCompatibility = '1.8'
    }

    aaptOptions {
        noCompress "tflite"
    }

    lintOptions {
        abortOnError false
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章