999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

云存儲網盤安卓客戶端圖片識別模塊的設計與實現

2019-08-07 06:01:16盛兆勇
網絡安全技術與應用 2019年8期
關鍵詞:分類用戶模型

◆盛兆勇

(濟寧職業技術學院電子信息工程系 山東 272000)

云存儲網盤是一種基于 OpenStack Swift對象存儲技術的在線存儲服務,能夠方便為用戶提供文件管理功能。OpenStack Swift是一個設計運行在通用硬件平臺上的分布式對象存儲服務,具有彈性可伸縮、高可用等特點,它能夠在通用硬件上構筑云存儲服務,對很多應用都能很好地支持,包括文件的上傳、下載、移動、拷貝、刪除、恢復等服務,能夠提供PB級的數據存儲[1]。

云存儲網盤Android客戶端是一款可以兼容市面上大部分安卓手機的App軟件,已經集成了用戶管理、快捷操作、分類視圖等功能模塊,網盤的常用操作包括用戶登錄、用戶注冊、修改用戶信息、獲取文件列表、分類、上傳文件、新建、拍照上傳、錄像上傳、錄音上傳、移動、復制、下載、刪除、還原、打開和查找文件或文件夾等[2]。本文是在已有功能的基礎上,將谷歌的開源的深度學習框架TensorFlow添加到Android手機客戶端中,使得用戶在上傳的圖片的時候可以自動識別出圖片中的物體,進而對上傳的圖片根據識別的結果進行自動命名,提高了易用性,增加了用戶友好度。增加了新模塊以后的Andorid手機客戶端系統框架如圖1所示。

圖1 云存儲網盤Android手機客戶端系統架構

1 TensorFlow的技術優勢

TensorFlow 是目前應用最廣泛的深度學習框架[3],相對于其他的相對于其他主流的深度學習框架,如Caffe、Chainer、CNTK等,TensorFlow具有如下三點優勢:

(1)可用性

TensorFlow用 Python 編寫,可讀性高,兼容性好,這使得大多數精通 Python 數據科學家很容易上手[4]。

(2)兼容性

TensorFlow可以在不同的計算機平臺上自由的運行代碼,從超級計算機到樹莓派等嵌入式系統,還支持多CPU,多GPU或者兩者混合運行[5]。

(3)持續性

TensorFlow 是由谷歌開發、維護的,因此可以保障支持、開發的持續性,同時還在 TensorFlow 周圍形成了一個巨大、活躍的社區。并且谷歌為了讓開發者能夠更快的接受TensorFlow,已經發布了很多訓練好的模型,開發者可以在自己的項目中自由、免費的使用。

2 將TensorFlow添加到項目中

本文是通過 TensorFlow已有模型構建Android 應用,這個已有的模型就是谷歌的 TensorFlow examples project 中叫作 TF Classify的demo,它能夠對圖片進行分類識別,并且將推斷的結果按照可信度進行排序[6]。

智能終端如果想使用TensorFlow,有兩種方式,第一種通過網絡連接到遠程服務器,但這樣會過分的依賴網絡環境,而且可能會很慢,另外一種方式就是可以把已經訓練好的的模型遷移到智能終端上面[7]。基于上面的考慮,我們決定采取第二種方式實現在Android手機中使用TensorFlow。

由于TensorFlow版本增加了對Android、iOS和Raspberry Pi硬件平臺的支持,允許它在這些設備上執行圖像分類等操作,使得這個工作變得更加容易。為了將 TensorFlow添加到 Android Studio項目中,我們只需要實現下面的步驟即可。

(1)因為在安卓系統中執行TensorFlow Inference操作,需要調用 libandroid_tensorflow_inference_java.jar中的 JNI接口[8],所以需要將這個jar包集成到項目中去,跟在項目中集成其他第三庫一樣,只需要在build.gradle中添加如下的依賴:

compile files('libs/libandroid_tensorflow_inference_java.jar')

(2)另外,還需要一個libtensorflow_inference.so文件,可以通過下載TensorFlow源代碼后,采用bazel編譯出來,也可以從網上進行下載編譯好的so文件。同時為了解決ARM模擬器啟動過程慢的問題,Android項目依賴的 TensorFlow Lite的libtensorflow_inference.so文件增補了支持x86環境的so文件,增加后可以使用x86模擬器調用TensorFlow Lite APIs。將文件按照下圖放置到項目的相應目錄下即可。

(3)將訓練好的數據模型,拷貝到指定的目錄下面,如圖2所示,其中后綴名為.pb的文件是已經訓練好的模型,而后綴名為.txt的文件是訓練數據包含的所有標簽。這個模型可對一千多種物品進行識別分類,基本可以滿足我們的實驗要求。

圖2 項目結構圖

3 功能實現

3.1 添加圖像分類器的相關類到項目中

這部分涉及的類有Classifier.java 和 TensorFlowImageClassi fier.java兩個,其中Classifier.java是一個接口類,定義了圖像分類用到的方法,TensorFlowImageClassifier.java類繼承至 Classifi er.java這個接口類,實現了接口類中定義的抽象方法。

這里我們重點關注 TensorFlowImageClassifier.java類的兩個方法,一個是 TensorFlowImageClassifier 類中的靜態方法 create方法:

/**

* Initializes a native TensorFlow session for classifying im ages.

* @param assetManager The asset manager to be used to load assets.

* @param modelFilename The filepath of the model Grap hDef protocol buffer.

* @param labelFilename The filepath of label file for clas-ses.

* @param inputSize The input size. A square image of i nputSize x inputSize is assumed.

* @param imageMean The assumed mean of the image va lues.

* @param imageStd The assumed std of the image values.

* @param inputName The label of the image input node.

* @param outputName The label of the output node.

* @throws IOException

*/

public static Classifier create(AssetManager assetManager,St ring modelFilename,String labelFilename,int inputSize,int image Mean,float imageStd,String inputName,String outputName)

該方法需要調用者傳進來8個與模型相關的參數,并且有可能拋出一個IOException的異常,如果正確執行就會返回一個Cl assifier實例。

另外一個recognizeImage方法,能夠通過 Classifier對象來識別我們傳入的 bitmap圖像數據,并且將一個按照可信度從高到低排序的結果集返回給調用者。

/**

*圖片識別分類

*/

public List<Recognition> recognizeImage(final Bitmap bitm ap)

3.2 在MainFragment中添加相應的實現

由于App客戶端原有的功能都是在MainFragment實現的,所以本文新增加的模塊也需要在MainFragment添加相應的代碼。

這一部分功能的實現,分為兩個步驟。第一個步驟的主要功能是:加載加載模型文件和標簽文件,獲得一個Classifier對象;將當前的圖片按一定比例創建一張新的圖,然后調用 recognizeI mage方法對這張新圖進行識別;讓用戶對識別出來的名字進行選擇確認。其核心實現如下:

private static final String MODEL_FILE=file:///android_asse t/tensorflow.pb;

private static final String LABEL_FILE=file:///android_asset/ label_strings.txt;

classifier = TensorFlowImageClassifier.create(context.getAsse ts(),MODEL_FILE,LABEL_FILE,INPUT_SIZE,IMAGE_MEAN,I MAGE_STD,INPUT_NAME,OUTPUT_NAME);

final File file=new File(imagePath);

Bitmap bm=BitmapFactory.decodeFile(imagePath);

bm = Bitmap.createScaledBitmap(bm,INPUT_SIZE,INPUT_S IZE,false);

//顯示識別的結果

List<Classifier.Recognition> results=classifier.recognizeImage(bm);

第二個步驟就是實現上傳,由于文件上傳是一個非常耗時的任務,有可能會造成后面任務的阻塞,如果阻塞的時間太長,安卓系統就會拋出異常錯誤,所以我們需要利用AsyncTask類來進行異步處理。其核心代碼如下:

String filePath= null;

if (intent!=null){

Uri uri=intent.getData();

}

String containerName=getAppState().getSelectedContainer().g etName().toString();

String[]parts=filePath.split("/");

String directory=null;

if (getAppState().getSelectedDirectory()!=null){

directory=getAppState().getSelectedDirectory().getName().toSt ring();

}

String path=directory;

InputStream inputStream=new FileInputStream(filePath);getService().upload(containerName,inputStream,intent.getType(),path);

FileUtils.getSingleton(context).copyFile(filePath ,"/openstack/");

Return new TaskResult<String>(filePath);

3.3 識別結果

識別結果如圖3所示,從截圖中可以看到結果是按照可信度從高到低進行排序的,點擊確定即可將該圖片按照識別出來的結果進行命名,并且上傳到Swift云存儲服務器。

圖3 圖片識別結果

4 結束語

隨著網絡帶寬的提高,網民習慣于將一些暫時用不到的資源存放到網盤中。企事業單位以及一些公司也出于高效性、可靠性和安全性的考慮,開始基于 OpenStack Swfit構建自己的云存儲方案。本文驗證了將 TensorFlow框架添加到安卓手機客戶端中的可行性,使得用戶在使用云存儲網盤 App的時候更加方便快捷,增加了用戶粘合度。

猜你喜歡
分類用戶模型
一半模型
分類算一算
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
分類討論求坐標
數據分析中的分類討論
教你一招:數的分類
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
3D打印中的模型分割與打包
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
主站蜘蛛池模板: 日韩美毛片| 久久久精品无码一二三区| 无遮挡一级毛片呦女视频| 中文字幕亚洲精品2页| 亚洲人成亚洲精品| 国产视频入口| a级免费视频| 国产真实乱人视频| 久久黄色小视频| 国产成人亚洲毛片| 一区二区三区在线不卡免费| 毛片网站在线播放| 97成人在线视频| 99热最新在线| 毛片卡一卡二| 亚洲欧美在线综合图区| 中文无码伦av中文字幕| 九色91在线视频| 国产欧美日韩在线一区| 中字无码精油按摩中出视频| 99精品福利视频| 漂亮人妻被中出中文字幕久久| 久久永久视频| 亚洲美女操| 亚洲成人精品在线| 亚洲AV人人澡人人双人| 色综合日本| 国产成人av大片在线播放| 国产97视频在线观看| 蜜桃视频一区| 91在线国内在线播放老师| 欧美性色综合网| 亚洲综合专区| 久久精品国产亚洲AV忘忧草18| 九九九九热精品视频| 一区二区自拍| 少妇露出福利视频| 亚洲侵犯无码网址在线观看| 91久久夜色精品国产网站| 欧美日韩国产精品综合| 国产麻豆91网在线看| 91精品福利自产拍在线观看| 综合色区亚洲熟妇在线| 亚洲精品不卡午夜精品| 国产尤物在线播放| 久久一本精品久久久ー99| 国产一区二区三区在线无码| 中文字幕自拍偷拍| 精品人妻系列无码专区久久| 亚洲色图狠狠干| 亚洲一区毛片| 欧美性猛交xxxx乱大交极品| 亚洲日韩久久综合中文字幕| 国产成人乱无码视频| 日韩二区三区| 欧美性精品不卡在线观看| 国产麻豆va精品视频| 一级一级特黄女人精品毛片| 欧洲av毛片| 国产中文一区二区苍井空| 综合亚洲色图| 日韩欧美国产另类| 波多野结衣一区二区三区四区| 亚洲男人天堂网址| 欧美精品伊人久久| 日本欧美中文字幕精品亚洲| 国产91无毒不卡在线观看| 性激烈欧美三级在线播放| 亚洲伊人久久精品影院| 精品国产成人a在线观看| 一本一道波多野结衣一区二区| 蝴蝶伊人久久中文娱乐网| 欧美第一页在线| 99热线精品大全在线观看| 久久夜色精品| 欧美精品亚洲二区| 尤物午夜福利视频| 亚洲午夜国产片在线观看| 国产美女精品一区二区| 免费aa毛片| 91青青视频| 欧美黄色a|