• Android开发学习之路-机器学习库(图像识别)、百度翻译


    对于机器学习也不是了解的很深入,今天无意中在GitHub看到一个star的比较多的库,就用着试一试,效果也还行。比是可能比不上TensorFlow的,但是在Android上用起来比较简单,毕竟TensorFlow还要又JNI的知识。

    这个库:onyx

    效果:

    用法非常简单,就是根据图片分析得到图片有可能的分类,这个学习的库是已经被训练过的,所以我们只需要直接让它识别就好了。得到的结果是根据可能概率由高到低排列。因为得到的结果都是英语,这里也用百度翻译来翻译了,所以结果中可能某些词会比较奇怪。

    ① onyx使用

    依赖:

    compile 'com.hanuor.onyx:onyx:1.1.4'

    直接编译会不通过,因为这个库用的是Java8写的,而Android Studio默认新建的工程是1.7的,所以还要进行配置,在app下的build.gradle文件中,添加如下代码:

    android {
        ...
    
        compileOptions {
            sourceCompatibility JavaVersion.VERSION_1_8
            targetCompatibility JavaVersion.VERSION_1_8
        }
    
        defaultConfig {
            ...
            jackOptions {
                enabled true
            }
        }
      ...
    }

    使用就比较简单了:

    1 Onyx.with(MainActivity.this).fromURL(URL).getTagsfromApi(new OnTaskCompletion() {
    2                     @Override
    3                     public void onComplete(ArrayList<String> response) {
    4                        // do your stuff
    5                     }
    6                 });

    这里如果分析成功会回调onComplete方法,得到上面我们显示的标签的英文。

    这里其实还有另一个方法:getTagsandProbability(),这个方法则是会同时获取到每个标签对应的概率。

    ② 百度翻译

    接入文档

    使用百度翻译其实不难,但是一定要吐槽一下百度翻译的问题,如果一个单词边上有一个其他符号,百度翻译会直接忽略这个单词。

    接入基本看文档就明白了,但是有几个地方要注意:

    • MD5加密的时候,要得到一个十六进制串
    • 构造参数前要进行URLEncode

    代码也存一下,免得以后碰到又忘了。

    Demo源码

  • 相关阅读:
    二维数组中的查找--python实现
    redis 学习笔记二
    redis 学习笔记(一)
    mysql sql知识总结
    工作或日常生活工具网站
    Git冲突:commit your changes or stash them before you can merge. 解决办法
    pandas 学习二
    python supervisor 守护进程 防止进程掉线
    pandas 学习
    django 定时器
  • 原文地址:https://www.cnblogs.com/Fndroid/p/5890486.html
Copyright © 2020-2023  润新知