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
主站蜘蛛池模板: 91小视频在线观看| 无遮挡国产高潮视频免费观看 | 亚洲最大在线观看| 久久人搡人人玩人妻精品| 熟妇丰满人妻| 超薄丝袜足j国产在线视频| 欧美亚洲国产日韩电影在线| 国产黑丝视频在线观看| 亚洲无码视频一区二区三区| 无码福利视频| 天天操天天噜| 一本大道无码日韩精品影视| 又大又硬又爽免费视频| 激情無極限的亚洲一区免费| 天天摸天天操免费播放小视频| a毛片在线播放| 久久精品国产亚洲AV忘忧草18| 九九九九热精品视频| 精品视频一区二区观看| 亚洲精品视频免费看| 天堂在线亚洲| 青青青国产免费线在| 色综合久久88色综合天天提莫| 成年网址网站在线观看| 人妻精品全国免费视频| 毛片网站观看| 久久免费观看视频| 久久精品中文字幕免费| 国产在线一二三区| 91在线播放国产| 92精品国产自产在线观看| 亚洲IV视频免费在线光看| 午夜福利视频一区| 五月天综合网亚洲综合天堂网| 国产欧美日韩在线一区| 亚洲美女久久| 91精品国产自产91精品资源| 国产乱人乱偷精品视频a人人澡| 成人午夜网址| 国产久草视频| 激情综合网激情综合| 99在线观看精品视频| 亚洲欧洲自拍拍偷午夜色| 无码中文字幕精品推荐| 看你懂的巨臀中文字幕一区二区| 91极品美女高潮叫床在线观看| 成人精品区| 日本午夜三级| 免费Aⅴ片在线观看蜜芽Tⅴ | 国产呦视频免费视频在线观看 | 亚洲欧美成人影院| 国产91丝袜在线播放动漫| 中文字幕永久在线看| 色天堂无毒不卡| 在线观看免费黄色网址| 国产白浆视频| 国产99热| 久久青青草原亚洲av无码| 亚洲AV永久无码精品古装片| 91在线一9|永久视频在线| 一级高清毛片免费a级高清毛片| 高清色本在线www| 精品色综合| 有专无码视频| 久久婷婷国产综合尤物精品| 99尹人香蕉国产免费天天拍| 国产激爽大片高清在线观看| 亚洲第一极品精品无码| 99热最新网址| 午夜不卡福利| 国产资源站| 色综合日本| 40岁成熟女人牲交片免费| 成人a免费α片在线视频网站| 欧美区一区二区三| www.91中文字幕| 日本色综合网| 国产精品污视频| 伊人国产无码高清视频| 日韩一区二区在线电影| 国产福利观看| 女人18毛片水真多国产|