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源碼


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM