1. 程式人生 > >Tensorflow Lite之Android實踐

Tensorflow Lite之Android實踐

一、背景介紹

11月15日,谷歌終於釋出了TensorFlow Lite的開發者預覽版本,這是一款 TensorFlow 用於移動裝置和嵌入式裝置的輕量級解決方案,允許裝置端的機器學習模型的低延遲推斷。

TensorFlow Lite具有的特點如下:

(1)輕量級:允許小 binary size 和快速初始化/啟動的裝置端機器學習模型進行推斷。

(2)跨平臺:執行時的設計使其可以在不同的平臺上執行,如目前支援的android和 iOS。

(3)快速:專為移動裝置進行優化,包括大幅提升模型載入時間,支援硬體加速。

github連結如下:https://github.com/tensorflow/tensorflow/tree/master/tensorflow/contrib/lite

二、環境準備

接下來我們來一起看看官方提供的Android整合TensorFlow Lite的示例。當然首先你的mac已經安裝了AndroidStudio 3。

請點選此處輸入圖片描述

(1)確保Android SDK 的版本號高於26,NDK的版本號高於14 ,如果沒有安裝,在開啟Studio的時候按照如下步驟安裝相應版本。

請點選此處輸入圖片描述

選擇右下角的Configure。

(2)然後選擇SDK Manager,下載相應的sdk。

請點選此處輸入圖片描述

三、編譯、執行

在https://github.com/tensorflow/tensorflow/tree/master/tensorflow/contrib/lite下載程式碼後,在AndroidStudio中匯入官方提供的demo,位於tensorflow/tensorflow-master/tensorflow/contrib/lite/java目錄下。

(1)如果發現如下問題,是由於沒有安裝相應的sdk。

請點選此處輸入圖片描述

在SDK Manager中切換到SDK Tools下,安裝相應的sdk。

請點選此處輸入圖片描述

請點選此處輸入圖片描述

(2)下載TensorFlow Lite 模型和標籤資料。

官方提供的下載地址

​https://storage.googleapis.com/download.tensorflow.org/models/tflite/mobilenet_v1_224_android_quant_2017_11_08.zip

由於很多人無法訪問,原因你懂得,小編廢了九牛二虎之力好不容易下載到,目前上傳到我的百度雲,有需要的可以關注公眾號後回覆“Tensorflow”,即可下載。

(3) 下載完成解壓mobilenet_v1_224_android_quant_2017_11_08.zip檔案得到一個mobilenet_v1_224.tflite和labes.txt檔案,如下圖,把這兩個檔案複製到assets資料夾下。

請點選此處輸入圖片描述

請點選此處輸入圖片描述

(4)build demo工程,電腦連線上真機,然後run,在手機上會安裝app,自動開啟相機,此時對準一個物體,會自動識別並給出識別的準確率。

請點選此處輸入圖片描述

請點選此處輸入圖片描述

使用開源模型mobilenets,或者自定義資料集或自定義模型模型預測物體的屬性,非常神奇,不同角度預測的準確率也有偏差,如上兩張圖。

四、總結

目前TensorFlow Lite還是預覽版,相信不久Google會發布正式版,給我們帶來更大的驚喜。demo中識別的具體細節和配置,參考官方文件,很詳細。

相關推薦

Tensorflow LiteAndroid實踐

一、背景介紹 11月15日,谷歌終於釋出了TensorFlow Lite的開發者預覽版本,這是一款 TensorFlow 用於移動裝置和嵌入式裝置的輕量級解決方案,允許裝置端的機器學習模型的低延遲推斷。 TensorFlow Lite具有的特點如下: (1)輕量級:

2016移動開發校賽Android實踐

android 學校組織的《移動互聯網應用軟件開發》技能競賽,所有參賽命題均基於 Android 4.2 版本實現,比賽推薦使用的開發環境為:ADT, JDK 1.6, Android SDK 4.1   經過了四天的培訓我們小組選擇在計算器應用 計算器能夠實現: 1. 數學四則運算 2. 實現開方元算

TensorFlow Lite for Android 初探(附demo)

一. TensorFlow Lite TensorFlow Lite 是用於移動裝置和嵌入式裝置的輕量級解決方案。TensorFlow Lite 支援 Android、iOS 甚至樹莓派等多種平臺。 我們知道大多數的 AI 是在雲端運算的,但

使用TensorFlow LiteAndroid手機上實現影象分類

*本篇文章已授權微信公眾號 guolin_blog (郭霖)獨家釋出 前言 TensorFlow Lite是一款專門針對移動裝置的深度學習框架,移動裝置深度學習框架是部署在手機或者樹莓派等小型移動裝置上的深度學習框架,可以使用訓練好的模型在手機等裝置上完成推理

Android外掛化原理和實踐 (七) 專案實踐

我們在前面一系列文章中已經介紹完了外掛化原理以及三個根本問題的解決方案,本文主要就是作為前面幾篇文章的一個總結,通過專案實踐將前面的知識點串起來使完成一個入門級簡單的外掛化工程以及在實際外掛化開發中遇到的一些總結。 實踐 我們先通過Android Studio建立一個工程,工程中包括了兩

網易HubbleDataAndroid無埋點實踐[轉]

轉自 https://neyoufan.github.io/2017/07/11/android/%E7%BD%91%E6%98%93HubbleData%E4%B9%8BAndroid%E6%97%A0%E5%9F%8B%E7%82%B9%E5%AE%9E%E8%B7%B5/ 網易H

Android Studio “import org.tensorflow.lite.Interpreter” cannot resolve symbol "tensorflow"

我要用到的是tensorflow-lite,但是編譯器找不到。 解決方法1: 開啟File->Project Structure->app->Dependencies,點選右上角加號,如圖: 點選第一個,得到如下圖所示。在這裡檢索tensor

Android apk大小優化自我實踐

前言:第一篇部落格,純屬筆記,以便日後使用。如有不足,請諒解! 一、概述 最近剛做完光大銀行的一款社群生活服務類APP,但是在打包簽名時發現apk太大了,將近18M,如下圖所示: 於是,我便花了一

Android實踐ScrollView中滑動衝突處理

1. 前言        在Android開發中,如果是一些簡單的佈局,都很容易搞定,但是一旦涉及到複雜的頁面,特別是為了相容小屏手機而使用了ScrollView以後,就會出現很多點選事件的衝突,最經典的就是ScrollView中嵌套了ListView

基於Android搭建tensorflow lite,實現官網的Demo以及執行自定義tensorflow模型(二)

基於上一篇在android studio 中已經佈置好的環境進行開發。這篇文章是基於手寫識別的例子,在tensorflow中搭建一個簡單的BP神經網路,在實現手寫數字的識別,然後把這個網路生成檔案,在android的tensorflow lite中執行。一 在tensorfl

Tensorflow Lite 0.1 for Android

直接使用JCenter庫方式: 移動裝置上使用谷歌開源的深度學習框架 Tensorflow Lite,最新原始碼位置: https://github.com/tensorflow/tensorflow/tree/master/tensorflow/contr

Tensorflow lite android原始碼 中編譯整合

之前一直是在使用的是tensorflow mobile,來作為模型的執行環境。但是,tensoflow mobile的libtensorflow_inference.so有19MB,load到記憶體裡以後,會佔用較多的記憶體。。。測試看下來,大概佔用20M,加上模型佔用記憶體

TensorFlow入門MNIST最佳實踐-深度學習

模型保存 tro 網絡 選擇 手寫 找到 default 輸入 自定義 在上一篇《TensorFlow入門之MNIST樣例代碼分析》中,我們講解了如果來用一個三層全連接網絡實現手寫數字識別。但是在實際運用中我們需要更有效率,更加靈活的代碼。在TensorFlow實戰這本書中

中學Vim實踐課程

href 參考 地址 tro str class 文章 ron ont 今天轉發婁老師的一篇VIM編輯器的文章,很贊哦!(值得收藏)文後的參考資料記得看一看,也很棒! 原文地址:http://www.cnblog

Yii2 UrlManager 實踐 (一)

com logs web cor php domain true highlight turn 1. enablePrettyUrl yii2默認不支持類似 http://<domain>/site/error 的url格式,需要在config.php中啟

TensorFlow conv2d原理及實踐

滿足 一個 htm batch padding data xxx pad overflow tf.nn.conv2d(input, filter, strides, padding, use_cudnn_on_gpu=None, data_format=None, name

【Cocos2d-x 3.0】遊戲開發android交叉編譯

plain edit 100% b2c 令行 sdk 自己的路 smi bin 作者:Senlern 轉載請註明,原文鏈接:http://blog.csdn.net/zhang429350061/article/details/37959489 在上

c#Redis實踐list,hashtable

hashtable 轉載 itl red ref png clas logs sun 寫在前面 最近公司搞了一個活動,用到了redis的隊列,就研究了下redis的相關內容。也順手做了個demo。 C#之使用Redis 可以通過Nuget安裝Reidis的相關程序集。安裝

udacity android 實踐筆記: lesson 4 part b

tag hid cor use shift complete loader line 樣本 udacity android 實踐筆記: lesson 4 part b 作者:幹貨店打雜的 /titer1 /Archimedes 出處:https:

Android Wearandroid穿戴式設備應用開發平臺

san 選擇框 hour sam family hat 2.6 potential rep Android Wear於2014年03月19日公布,並有Moto 360和LG watch兩款產品。眼下源代碼還沒有開放。可是開發人員能夠下載它的Ima