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

基于TensorFlow的移動終端圖像識別方法

2018-03-07 06:15:44熊亞蒙
無線互聯(lián)科技 2018年21期

熊亞蒙

摘 要:文章研究了基于TensorFlow的移動終端圖像識別方法。TensorFlow是一種機器學習工具。TensorFlow功能廣泛,但是主要用于構建深度神經(jīng)網(wǎng)絡模型。移動應用程序能夠理解識別可能非常有用,通過遷移學習幫助識別圖像內容可以幫助應用程序應用適當?shù)剡^濾,或者標記照片以使其易于找到,因此,可以使用圖像傳感器來檢測各種有趣的情況。

關鍵詞:圖像識別;TensorFlow;遷移學習

圖像識別,是指利用計算機對圖像進行處理、分析和理解,以識別各種不同模式的目標和對象的技術。一般工業(yè)使用中,采用工業(yè)相機拍攝圖片,然后再利用軟件根據(jù)圖片灰階差作進一步識別處理,圖像識別軟件國外代表的有康耐視等,國內代表的有圖智能等。另外,在地理學中指將遙感圖像進行分類的技術[1]。

1 圖像識別一般方法

圖像識別可能是以圖像的主要特征為基礎的。每個圖像都有它的特征,如字母A有個尖,P有個圈、而Y的中心有個銳角等。對圖像識別時眼動的研究表明,視線總是集中在圖像的主要特征上,也就是集中在圖像輪廓曲度最大或輪廓方向突然改變的地方,這些地方的信息量最大。由此可見,在圖像識別過程中,知覺機制必須排除輸入的多余信息,抽出關鍵的信息。同時,在大腦里必定有一個負責整合信息的機制,它能把分階段獲得的信息整理成一個完整的知覺映象[2]。

在人類圖像識別系統(tǒng)中,對復雜圖像的識別往往要通過不同層次的信息加工才能實現(xiàn)。對于熟悉的圖形,由于掌握了它的主要特征,就會把它當作一個單元來識別,而不再注意它的細節(jié)了。這種由孤立的單元材料組成的整體單位叫作組塊,每一個組塊是同時被感知的。在文字材料的識別中,人們不僅可以把一個漢字的筆劃或偏旁等單元組成一個組塊,而且能把經(jīng)常在一起出現(xiàn)的字或詞組成組塊單位來加以識別。

在計算機視覺識別系統(tǒng)中,圖像內容通常用圖像特征進行描述。事實上,基于計算機視覺的圖像檢索也可以分為類似文本搜索引擎的3個步驟:提取特征、建索引build以及查詢[3]。

2 TensorFlow 平臺

TensorFlow?是一個使用數(shù)據(jù)流圖進行數(shù)值計算的開放源代碼軟件庫。圖中的節(jié)點代表數(shù)學運算,而圖中的邊則代表在這些節(jié)點之間傳遞的多維數(shù)組(張量)。借助這種靈活的架構,可以通過一個 API 將計算工作部署到桌面設備、服務器或移動設備中的一個或多個 CPU或GPU。

TensorFlow物體檢測API是一個構建在TensorFlow上的框架,用于識別圖像中特定的對象。例如,你可以用很多貓的照片訓練它,一旦訓練完畢,你可以輸入一張貓的圖像,它就會輸出一個方框列表,認為圖像中有一只貓。通過TensorFlow支持5個預訓練模型的遷移學習(transfer learning),完成遷移學習,提升識別速度。

TensorFlow Lite是TensorFlow針對移動和嵌入式設備的輕量級解決方案。它支持低延遲和小二進制大小的設備上機器學習推理。TensorFlow Lite還支持Android神經(jīng)網(wǎng)絡API的硬件加速。TensorFlow Lite使用許多技術來實現(xiàn)低延遲,如優(yōu)化移動應用程序內核,預融合激活以及允許更小和更快(定點數(shù)學)模型的量化內核。

3 TensorFlow Lite使用

在移動應用中使用TensorFlow Lite模型需要多方面的考慮:您必須選擇預先訓練好的模型或自定義模型,將模型轉換為TensorFLow Lite格式,最后將模型集成到您的應用中(見圖1)。

圖1 TensorFlow圖像識別的步驟

根據(jù)用例,可以選擇流行的開源模型之一(如InceptionV3或MobileNets),并使用自定義數(shù)據(jù)集重新訓練這些模型,甚至可以構建自己的自定義模型。

3.1 使用預先訓練的模型

對圖像進行預處理,改變大小、貼標簽、將它們分成訓練和測試兩部分,并修改成Pascal VOC格式;將圖片轉化成TFRecords文件以符合物體檢測API;利用MobileNet在谷歌Cloud ML Engine上訓練模型;導出訓練好的模型并將其部署到ML Engine上進行服務。

MobileNets是TensorFlow的一系列移動優(yōu)先計算機視覺模型,旨在有效提高準確性,同時考慮到設備或嵌入式應用的受限資源。MobileNets是參數(shù)化的小型低延遲低功耗模型,可滿足各種用途的資源限制。它們可以用于分類、檢測、嵌入和分割—類似于其他流行的大規(guī)模模型,例如Inception。Google為MobileNets提供了16個預先訓練的ImageNet分類檢查點,可用于各種規(guī)模的移動項目。

Inception-v3是一個圖像識別模型,可以很高的精度識別1 000個類別的普通物體,例如“Zebra”“Dalmatian”和“Dishwasher”。該模型使用卷積神經(jīng)網(wǎng)絡從輸入圖像中提取一般特征,并根據(jù)那些具有完全連接和softmax層的特征對其進行分類。

針對自定義數(shù)據(jù)集重新訓練Inception-V3或MobileNet,這些預先訓練的模型在包含1 000個預定義類的ImageNet數(shù)據(jù)集上進行了培訓。如果這些類不足以滿足您的用例,則需要重新訓練該模型。這種技術被稱為轉移學習,并從一個已經(jīng)對某個問題進行過訓練的模型開始,然后對模型進行重新訓練以解決類似的問題。從頭開始深入學習可能需要數(shù)天,但轉移學習相當快。為了做到這一點,需要生成一個標有相關類的自定義數(shù)據(jù)集。

訓練一個自定義模型:開發(fā)人員可以選擇使用Tensorflow來培訓自定義模型。如果已經(jīng)編寫了模型,第一步是將其導出到tf.GraphDef文件中。這是必需的,因為有些格式不會將模型結構存儲在代碼之外,我們必須與框架的其他部分進行通信。請參閱導出推理圖以創(chuàng)建自定義模型的.pb文件。

3.2 轉換模型格式

通過生成(或下載)的模型是標準的Tensorflow模型,是一個.pb或.pbtxt tf.GraphDef文件。使用轉移學習(重新培訓)或自定義模型生成的模型必須進行轉換,但是,我們必須先凍結圖形以將模型轉換為Tensorflow Lite格式。這個過程使用以下幾種模型格式。

tf.GraphDef(.pb)—代表TensorFlow訓練或計算圖的protobuf。它包含運算符、張量和變量定義。

CheckPoint(.ckpt)—來自TensorFlow圖形的序列化變量。由于這不包含圖形結構,因此它本身不能被解釋。

FrozenGraphDef—它的一個子類GraphDef不包含變量。A GraphDef可以轉換為一個FrozenGraphDef通過采取檢查點和一個GraphDef,以及使用從檢查點檢索到的值的每個變量轉換成一個常數(shù)。

SavedModel-A GraphDef和CheckPoint的簽名將標簽輸入和輸出參數(shù)標記為模型。A GraphDef和CheckPoint可以從a中提取SavedModel。

TensorFlow Lite模型(.tflite)—包含TensorFlow Lite操作符和張量的TensorFlow Lite解釋器的序列化FlatBuffer,類似于a FrozenGraphDef。

凍結圖:要在GraphDefTensorFlow Lite中使用.pb文件,必須具有包含經(jīng)過訓練的權重參數(shù)的檢查點。.pb文件只包含圖形的結構。將檢查點值與圖結構合并的過程稱為凍結圖。

應該有一個檢查點文件夾或將它們下載到預先訓練的模型(例如 MobileNets)。

凍結GraphDef現(xiàn)在已準備好轉換為FlatBuffer適用于Android或iOS設備的格式(.tflite)。對于Android,Tensorflow Optimizing Converter工具支持浮點模型和量化模型。將凍結轉換為GraphDef.tflite格式。

找到這些值最簡單的方法是使用Tensorboard探索圖形。在freeze_graph步驟中重新使用用于指定輸出節(jié)點進行推理的參數(shù)。

也可以使用Tensorflow Optimizing Converter和Python或命令行中的protobufs。這允許您將轉換步驟集成到模型設計工作流程中,確保模型可以輕松轉換為移動推理圖。

在回購包含轉換后的可視化TensorFlow Lite的工具。構建visualize.py工具。這會生成一個交互式HTML頁面列表子圖,操作和圖表可視化。

3.3 在移動應用程序中使用TensorFlow Lite模型進行推理

在完成前面的步驟之后,會生成一個.tflite模型文件。

由于Android應用程序是用Java編寫的,核心TensorFlow庫是用C++編寫的,因此提供了一個JNI庫作為接口。這只是用于推理 - 它提供了加載圖形,設置輸入以及運行模型來計算輸出的功能。

使用Android Studio試用項目代碼中的更改并編譯演示應用程序:

確保Android SDK版本大于26并且NDK版本大于14(在Android Studio設置中)。

將該tensorflow/contrib/lite/java/demo目錄導入為新的Android Studio項目。

安裝它請求的所有Gradle擴展。

要獲得模型,下載量化的Mobilenet TensorFlow Lite模型,并解壓縮并復制mobilenet_quant_v1_224.tflite到assets目錄中TensorFlow指定目錄。

或者,下載浮點Inception-v3模型 并解壓并復制inceptionv3_non_slim_2015.tflite到資產(chǎn)目錄。

4 結語

文中我們對TensorFlow Lite在移動平臺的通用方法和步驟進行了歸納總結,通過TensorFlow預訓練模型、轉化格式、推演三步驟詳細地描述其操作和原理,對自己的圖像識別實踐中的問題也進行了總結。當然,TensorFlow應用范圍很多,不局限于圖像分類,還包括語音識別、序列生成等,這有待于我們去研究使用。

主站蜘蛛池模板: 尤物午夜福利视频| 男女猛烈无遮挡午夜视频| 国产尤物在线播放| 色有码无码视频| 亚洲69视频| 青青久久91| 欧美日韩国产系列在线观看| P尤物久久99国产综合精品| 日韩精品少妇无码受不了| 久久精品国产999大香线焦| 九九这里只有精品视频| 91在线一9|永久视频在线| 亚洲香蕉伊综合在人在线| 在线观看欧美国产| 熟妇人妻无乱码中文字幕真矢织江| 免费在线不卡视频| 久久伊人操| 一级成人a做片免费| 欧美中出一区二区| 国产小视频在线高清播放| 亚洲综合在线网| 亚洲第一国产综合| 亚洲三级影院| 亚洲精品免费网站| 日本AⅤ精品一区二区三区日| 亚洲男人的天堂视频| 秋霞一区二区三区| 97色伦色在线综合视频| 波多野结衣一级毛片| 亚洲精品老司机| 伊人久久婷婷五月综合97色| 欧美亚洲欧美| 园内精品自拍视频在线播放| 午夜精品区| 黄色污网站在线观看| 国产玖玖玖精品视频| 日韩亚洲高清一区二区| 无码精品福利一区二区三区| 亚洲日本中文字幕乱码中文| 成人午夜视频免费看欧美| 久久精品日日躁夜夜躁欧美| 亚洲国产综合精品一区| 国产一区二区三区在线精品专区| 日韩久久精品无码aV| 国产免费网址| 狠狠色狠狠综合久久| 久久久成年黄色视频| 动漫精品啪啪一区二区三区| 日本不卡在线播放| 欧美一级视频免费| 99视频在线免费| 97人人模人人爽人人喊小说| 幺女国产一级毛片| 搞黄网站免费观看| 成人一级免费视频| 色网在线视频| 91亚洲影院| www.亚洲一区| 97视频精品全国免费观看| 日本AⅤ精品一区二区三区日| 先锋资源久久| 免费国产一级 片内射老| 国产专区综合另类日韩一区 | 久久久久久久97| 亚洲黄网视频| 国产永久在线视频| 国产精品视频999| 国产成人福利在线| 国产三级国产精品国产普男人| 青青热久免费精品视频6| 亚洲国产成人自拍| 亚洲色图欧美在线| 手机在线看片不卡中文字幕| 国产精品污污在线观看网站| 91九色国产在线| 美女扒开下面流白浆在线试听| 欧美精品成人| 亚洲制服丝袜第一页| 中文天堂在线视频| 亚洲综合香蕉| 亚洲自拍另类| 好吊妞欧美视频免费|