色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

探討如何將機器學習應用到物聯網中

設計idea ? 來源:互聯網 ? 作者:佚名 ? 2018-05-23 09:24 ? 次閱讀

本項目探討如何將機器學習(Machine learning)應用到物聯網IoT,Internet of Things)中。我們將使用 Android Things 作為我們的物聯網平臺,并且采用 Google TensorFlow 作為我們的機器學習引擎。如今,機器學習與物聯網都是技術話題中的大熱門。

下面是維基百科上對機器學習的一個簡單定義

機器學習是計算機科學中的一個領域,它使計算機系統能夠利用數據進行 “學習”(即逐步提高特定任務的性能),而不需要進行顯式編程(Explicitly programmed)。

換句話說,在進行訓練步驟以后,系統就可以預測結果(即使這不是專門為這些結果進行編程的)。另一方面,我們都了解物聯網以及連接設備的概念。最有前途的話題之一便是如何將機器學習應用于物聯網之中,以構建能夠 “學習” 的專家系統。此外,該系統會運用這些知識來控制和管理實物。

下面列舉一些應用到機器學習,以及物聯網能產生重要價值的領域:

  • 預測維護(Predictive maintenance)中的工業物聯網(IIoT,Industrial IoT)。

  • 在消費者物聯網(Consumer IoT)中,機器學習可以使設備變得更加智能化,從而適應我們的習慣。

在本教程中,我們將探索如何使用 Android Things 和 TensorFlow 將機器學習應用到物聯網中。這一 Android Things 物聯網項目背后的基本思想就是,探索如何構建一個能夠識別一些基本形狀(比如箭頭)并被控制的機器人小車(Robot car)。我們已經介紹過如何使用 Android Things 構建機器人小車,我建議您在開始此項目之前先閱讀那篇教程。

本次機器學習和物聯網項目主要涵蓋以下主題:

  • 如何使用 Docker 配置 TensorFlow 環境

  • 如何訓練 TensorFlow 系統

  • 如何集成 TensorFlow 與 Android Things

  • 如何使用 TensorFlow 輸出結果來控制機器人小車

本項目衍生自 Android Things TensorFlow 圖像分類器

我們開始吧!

如何在 Tensorflow 中創建一個圖像分類器

在開始之前,我們有必要先安裝并配置好 TensorFlow 環境。我并非機器學習專家,所以我需要找一些速成的東西并準備好使用,以便我們可以構建 TensorFlow 圖像分類器。因此,我們可以使用 Docker 來運行一個搭載了 TensorFlow 的映像。照著以下步驟進行:

1. 克隆 TensorFlow 倉庫:

gitclonehttps://github.com/tensorflow/tensorflow.git
cd/tensorflow
gitcheckoutv1.5.0

2. 創建一個目錄(/tf-data),該目錄將保存我們在項目中需要用到的所有文件。

3. 運行 Docker:

dockerrun-it\--volume/tf-data:/tf-data\--volume/tensorflow:/tensorflow\
--workdir/tensorflowtensorflow/tensorflow:1.5.0bash

使用這些命令,我們就可以運行一個交互式 TensorFlow 環境并增加(Mount)一些我們將在項目中使用到的目錄。

如何訓練 TensorFlow

在 Android Things 系統能夠識別圖像之前,我們有必要先訓練 TensorFlow 引擎,以構建其模型。以此為由,收集一些圖片是有必要的。如前所述,我們希望使用箭頭來控制 Android Things 機器人小車 —— 所以我們必須收集至少四種類型的箭頭:

  • 向上箭頭

  • 向下箭頭

  • 左箭頭

  • 右箭頭

為訓練該系統,我們有必要對這四種不同的圖像類別創建一個“知識庫”。在 /tf-data 中一個名為 images 的目錄下創建四個目錄,命名如下:

  • up-arrow

  • down-arrow

  • left-arrow

  • right-arrow

現在是時候去搜集圖像資源了。我使用的是 Google 圖片搜索,您也可以使用其他方法進行搜集。為了簡化圖片下載過程,您應該安裝 Chrome 插件,它能夠一鍵下載所有圖片。可別忘了,您下載的圖像越多,其訓練過程(Training process)越好(即使創建模型的時間可能會有所增加)。

打開瀏覽器,開始查找以下四類圖像:

每個類別我分別下載了 80 張圖。我并不關心圖片的擴展。

一旦所有類別都有其圖像,請按照以下步驟操作(在 Docker 界面中):

python/tensorflow/examples/image_retraining/retrain.py\
--bottleneck_dir=tf_files/bottlenecks\
--how_many_training_steps=4000\
--output_graph=/tf-data/retrained_graph.pb\
--output_labels=/tf-data/retrained_labels.txt\
--image_dir=/tf-data/images

這操作可能需要花費一些時間,所以要耐心等待。最后,在你的文件夾 /tf-data 中應有兩個文件:

  1. retrained_graph.pb

  2. retrained_labels.txt

第一個文件包含我們的模型,這是 TensorFlow 訓練過程的結果。而第二個文件則包含了與我們的四個圖像類別相關的標簽

如何測試 Tensorflow 模型

如果你想測試模型,以檢查一切是否正常,你可以使用以下命令:

pythonscripts.label_image\
--graph=/tf-data/retrained-graph.pb\
--image=/tf-data/images/[category]/[image_name.jpg]

優化模型

在能夠使用這個 TensorFlow 模型到 Android Things 項目中之前,我們有必要優化它:

python/tensorflow/python/tools/optimize_for_inference.py\--input=/tf-data/retrained_graph.pb\--output=/tf-data/opt_graph.pb\--input_names="Mul"\--output_names="final_result"

這就是我們的模型。我們將使用此模型將機器學習應用于物聯網(即集成 Android Things 與 TensorFlow)。其目標是為 Android Things 應用提供智能識別箭頭圖像,并作出相應反應,從而控制機器人小車的方向。

如果您想了解更多關于 TensorFlow 的細節,以及如何生成模型,請查看官方文檔和這個教程

如何使用 Android Things 和 TensorFlow 將機器學習應用到物聯網中

一旦 TensorFlow 數據模型準備就緒,我們就可以進入下一步:如何集成 Android Things 與 TensorFlow。為達成這一目的,我們可以將此任務分為兩步:

  1. 硬件部分,我們將電機和其他外圍設備(Peripheral)連接到 Android Things 板上

  2. 實現應用程序

Android Things 原理圖

在深入探討如何連接外圍設備之前,我們先看看下面這個 Android Things 項目中使用的組件列表:

  1. Android Things 板(樹莓派 3,Raspberry Pi 3)

  2. 樹莓派相機

  3. 一個 LED

  4. LN298N 雙H橋(用以控制電機)

  5. 帶兩個輪子的機器人小車底盤

我不在此介紹如何使用 Android Things 控制電機,因為我們已經在之前的文章中介紹過這一點。

以下是原理圖:

1620

上圖中,相機組件并未表現出來。其最終的結果如下:

基于 TensorFlow 實現 Android Things App

最后一步便是實現 Android Things 應用程序。為此,我們可以重用 GitHub 上名為 TensorFlow 圖像分類器示例的示例項目。在開始之前,先克隆 GitHub 倉庫,以便您可以修改源代碼。

該 Android Things 應用與原來的應用有所不同,在于:

  1. 它不使用按鈕來啟動相機捕捉圖像

  2. 它使用不同的模型

  3. 它使用一個閃爍的 LED 進行通知,攝像機在 LED 停止閃爍后拍攝照片

  4. 它在 TensorFlow 檢測到圖像(箭頭)時控制電機。此外,在從步驟 3 開始循環之前,先打開電機 5 秒

要處理閃爍的 LED,請使用以下代碼:

privateHandlerblinkingHandler=newHandler();privateRunnableblinkingLED=newRunnable(){
@Overridepublicvoidrun(){
try{
//Ifthemotorisrunningtheappdoesnotstartthecam
if(mc.getStatus())
return;
Log.d(TAG,"Blinking..");
mReadyLED.setValue(!mReadyLED.getValue());
if(currentValue<=?NUM_OF_TIMES)?{
???????currentValue++;
???????blinkingHandler.postDelayed(blinkingLED,?
???????????????????????BLINKING_INTERVAL_MS);
?????}
?????else?{
??????mReadyLED.setValue(false);
??????currentValue?=?0;
??????mBackgroundHandler.post(mBackgroundClickHandler);
?????}
???}?catch?(IOException?e)?{
?????e.printStackTrace();
???}
??}};

當 LED 停止閃爍時,應用程序將捕獲圖像。

現在有必要關注如何根據檢測到的圖像來控制電機。修改方法如下:

@OverridepublicvoidonImageAvailable(ImageReaderreader){
finalBitmapbitmap;
try(Imageimage=reader.acquireNextImage()){
bitmap=mImagePreprocessor.preprocessImage(image);
}
finalListresults=
mTensorFlowClassifier.doRecognize(bitmap);
Log.d(TAG,
"GotthefollowingresultsfromTensorflow:"+results);
//Checktheresult
if(results==null||results.size()==0){
Log.d(TAG,"Nocommand..");
blinkingHandler.post(blinkingLED);
return;
}
Classifier.Recognitionrec=results.get(0);
Floatconfidence=rec.getConfidence();
Log.d(TAG,"Confidence"+confidence.floatValue());
if(confidence.floatValue()

在這種方法中,當 TensorFlow 返回匹配捕獲圖像的可能標簽后,應用程序會將結果與可能的方向進行比較,從而控制電機。

最后,是時候使用在剛開始時創建的模型了。拷貝 assets 文件夾下的 opt_graph.pb 與 reatrained_labels.txt 文件,并替換現有文件。

打開 Helper.java 并修改以下幾行:

publicstaticfinalintIMAGE_SIZE=299;privatestaticfinalintIMAGE_MEAN=128;privatestaticfinalfloatIMAGE_STD=128;privatestaticfinalStringLABELS_FILE="retrained_labels.txt";publicstaticfinalStringMODEL_FILE="file:///android_asset/opt_graph.pb";publicstaticfinalStringINPUT_NAME="Mul";publicstaticfinalStringOUTPUT_OPERATION="output";publicstaticfinalStringOUTPUT_NAME="final_result";

運行應用程序,試試向相機展示箭頭,并檢查結果。機器人小車必須按照所示的箭頭進行移動。

小結

在本教程的最后,我們介紹了如何運用 Android Things 與 TensorFlow 將機器學習應用到物聯網中。我們可以使用圖像控制機器人小車,并根據顯示的圖像移動機器人小車。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 機器學習
    +關注

    關注

    66

    文章

    8406

    瀏覽量

    132567
  • IOT
    IOT
    +關注

    關注

    187

    文章

    4202

    瀏覽量

    196699
  • tensorflow
    +關注

    關注

    13

    文章

    329

    瀏覽量

    60528
  • Android Things
    +關注

    關注

    0

    文章

    10

    瀏覽量

    4190
收藏 人收藏

    評論

    相關推薦

    zeta在機器學習的應用 zeta的優缺點分析

    探討ZETA在機器學習的應用以及ZETA的優缺點時,需要明確的是,ZETA一詞在不同領域可能有不同的含義和應用。以下是根據不同領域的ZETA進行的分析: 一、ZETA在
    的頭像 發表于 12-20 09:11 ?184次閱讀

    聯網學習路線來啦!

    聯網學習路線來啦! 聯網方向作為目前一個熱門的技術發展方向,有大量的人才需求,小白的學習入門
    發表于 11-11 16:03

    socket在聯網的應用案例

    至關重要的角色。 1. 引言 聯網(IoT)技術的發展,使得各種設備能夠相互連接并交換數據,從而實現智能化管理和控制。在這個過程,Socket作為網絡通信的基本接口,為設備之間的數據傳輸提供了可能。本文
    的頭像 發表于 11-04 09:17 ?358次閱讀

    什么是聯網技術?

    什么是聯網技術? 聯網技術(Internet of Things, IoT)是一種通過信息傳感設備,按約定的協議,任何物體與網絡相連
    發表于 08-19 14:08

    如何將TRIZ的“最終理想解”應用到機器人電機控制設計

    的是產品或技術系統的理想化狀態,即低成本、高功能、高可靠性、無污染等特性的完美結合。 在機器人電機控制設計,工程師們常常面臨諸多挑戰,如如何在提高控制精度的同時降低能耗和噪音,如何在有限的資源下實現最優的系統
    的頭像 發表于 08-13 10:19 ?461次閱讀

    如何將人工智能應用到效能評估工具中去解決

    智慧華盛恒輝人工智能應用到效能評估工具,可以通過以下幾個步驟來實現,以提升評估的準確性、效率和實用性: 智慧華盛恒輝一、明確評估目標與指標 確定效能評估的目標:首先,需要明確效能評估的具體目標
    的頭像 發表于 07-24 10:34 ?318次閱讀

    聯網在智慧校園的應用有哪些?一起來看!

    隨著聯網技術的快速發展,其在智慧校園的應用正逐漸改變傳統的教育方式和校園管理模式。本文深入探討
    的頭像 發表于 07-23 09:06 ?2048次閱讀
    <b class='flag-5'>物</b><b class='flag-5'>聯網</b>在智慧校園<b class='flag-5'>中</b>的應用有哪些?一起來看!

    天拓四方:聯網數據采集網關的幾大特點探討

    技術的深入應用提供了堅實的基礎。本文詳細探討聯網數據采集網關的幾大特點。 一、多樣化的通信接口與協議支持
    的頭像 發表于 07-17 17:11 ?355次閱讀

    機器學習的數據分割方法

    機器學習,數據分割是一項至關重要的任務,它直接影響到模型的訓練效果、泛化能力以及最終的性能評估。本文將從多個方面詳細探討機器
    的頭像 發表于 07-10 16:10 ?1696次閱讀

    如何理解機器學習的訓練集、驗證集和測試集

    理解機器學習的訓練集、驗證集和測試集,是掌握機器學習核心概念和流程的重要一步。這三者不僅構成了模型學習
    的頭像 發表于 07-10 15:45 ?3806次閱讀

    機器學習在數據分析的應用

    隨著大數據時代的到來,數據量的爆炸性增長對數據分析提出了更高的要求。機器學習作為一種強大的工具,通過訓練模型從數據中學習規律,為企業和組織提供了更高效、更準確的數據分析能力。本文深入
    的頭像 發表于 07-02 11:22 ?612次閱讀

    [天拓四方]4G MQTT網關在聯網應用的優勢探討

    ,因其高效、可靠、簡單的特性,在聯網領域得到了廣泛的應用。而4G MQTT網關,作為連接物聯網設備和MQTT服務器的橋梁,其在聯網應用
    的頭像 發表于 05-28 17:22 ?478次閱讀

    如何將人工智能應用到戰略評估系統中去做

    智慧華盛恒輝人工智能應用到戰略評估系統,可以極大地提升戰略評估的效率和準確性,以下是具體的應用方式: 是要實現戰場態勢的主動感知及精確判斷。無論是戰前預先規劃還是作戰行動的臨機規
    的頭像 發表于 04-24 14:01 ?318次閱讀

    淺談基于無線聯網的建筑能耗監測系統探討

    探討一種基于聯網的智能建筑能耗監測系統架構參考模型,以期實現樓字電力能源需求側和供求側的智能聯動運行。 關鍵詞:智能建筑;能耗監測;
    的頭像 發表于 02-20 15:29 ?348次閱讀
    淺談基于無線<b class='flag-5'>物</b><b class='flag-5'>聯網</b>的建筑能耗監測系統<b class='flag-5'>探討</b>

    如何將增量旋轉編碼器與Arduino連接

    在本教程,您將學習如何將增量旋轉編碼器與Arduino連接,以讀取旋鈕的運動。這對于在機器人和其他應用程序創建用戶界面或讀取機械位置非常
    的頭像 發表于 02-11 10:00 ?1424次閱讀
    <b class='flag-5'>如何將</b>增量旋轉編碼器與Arduino連接
    主站蜘蛛池模板: 色欲人妻无码AV精品一区二区| 樱花草在线观看影院| 男人扒开添女人下部口述| 绞尽奶汁by菊花开| 国产午夜精品一区理论片飘花| 国产99久久九九免费精品无码 | 精品一区二区免费视频蜜桃网| 国产精品av免费观看| 高清AV熟女一区| 边摸边吃奶边做带声音| gayxxxxgay呻吟受日本| 91国在线产| 3D动漫网站HOXXXxes| 777久久人妻少妇嫩草AV| 中文字幕乱码亚洲无线三区| 中国农村真实bbwbbwbbw| 曰批视频免费40分钟不要钱| 在线广播收听| 佐山爱巨大肥臀在线| 97碰成视频免费| japonensis护士| 成年人视频在线免费观看| 东京热百度影音| 国产成人啪精视频精东传媒网站| 国产99视频精品一区| 国产成人在线播放视频| 国产午夜精品一区理论片飘花 | 99久久综合精品免费| 99视频这里只有精品国产| xxnx动漫| 国产成久久免费精品AV片天堂 | 国产午夜伦鲁鲁| 果冻传媒APP免费网站在线观看| 国产一区二区免费在线观看| 狠狠色在在线视频观看| 看美女大腿中间的部分| 欧美日韩高清一区二区三区| 四虎影视库永久免费| 亚洲av欧美在我| 伊人久在线| www精品一区二区三区四区|