Tag Archives: azure

[課程紀錄文] 2018.8.13-14-跟著CAVEDU學AI人工智慧:一堂結合機器學習中的影像辨識及邊緣運算的深度課程

記錄

宗諭

攝影

吉弘

講師

吉弘、豐智

上課地點台灣微軟大樓
課程時間

2018年8月13-14日

8月13至14日,一場AI人工智慧的深度學習課程,在台灣微軟大樓展開⋯⋯。

 

然而,早在課程開始前的一個月,CAVEDU教育團隊這邊的兩位講師:「阿吉老師」曾吉弘與徐豐智,以及與此次課程的相關人員,便已針對這門課程展開緊鑼密鼓地準備。從剛開始針對課程內容進行深入研究、討論;至中期的針對「Microsoft Azure DSVM資料科學虛擬機器」持續調整、設定,並且訓練模型;最後一週與課程各單位間的持續溝通、協調、聯繫,針對上課要使用的RK Car不斷調測,設計、印刷試跑RK Car需用的道路地墊⋯⋯等等。可以說,CAVEDU教育團隊真是為這次課程卯足全勁了!

 

課程的結果也是十分甜美。根據微軟方面人員的統計,參與課程21位學員的AI AGV車皆成功跑車,一個步驟都沒有漏掉。而微軟方面亦十分肯定CAVEDU教育團隊,在這次課程中展現出的專業能力

圖1 講師之一「阿吉老師」曾吉弘

 

圖2 另外一位講師徐豐智(中著紅衣者)

 

回到這門課程,究竟教授給學員的是什麼呢?

 

課程的設計是屬於實務導向,簡而言之,就是訓練無人車達成路牌辨識的目標,等學員訓練好模型後,再至CAVEDU教育團隊設計、製作的地墊上試跑。

圖3 學員讓RK Car在CAVEDU製作的道路地墊上試跑

 

我們運用什麼工具訓練模型呢?答案是微軟的Azure DSVM資料科學虛擬機器。Azure DSVM是一種雲端服務,透過常用於資料分析、機器學習服務及AI訓練的數個熱門工具,預先安裝、設定及測試的Azure虛擬機器映像。

圖4 資料蒐集並訓練模型

 

下圖是課程中使用的無人載具RK Car,車子由CAVEDU教育團隊自造,以Raspberry Pi單板電腦為核心。RK Car上藍色的是Intel Movidius神經運算棒,阿吉老師有向學員們展示Intel的AI模型,透過Movidius的加速,針對道路上各種車輛進行分類,以及街景影像的辨識,例如街道上的人、車牌、摩托車⋯⋯等等。透過Intel Movidius,能使硬體等級沒有非常高的Raspberry Pi單板電腦,以更快速度進行影像辨識。(若欲購買RK Car,請洽機器人王國商城。)

圖5 安裝上Intel Movidius神經運算棒的RK Car

 

下圖是學員們跑車的情況。每位學員的無人載具皆需學會辨識左轉、右轉、停止標示,才能成功完成道路地墊上的試跑。在阿吉老師、豐智及助教的悉心準備、指導下,所有學員皆跑車大成功!

圖6 所有學員順利完成跑車

 

對CAVEDU教育團隊而言,這次課程使我們在AI人工智慧領域又邁進一步。之前我們較著重在「邊緣運算」,也就是將應用程式、資料及服務的運算,由網路中心節點移至網路邏輯上的邊緣節點進行處理。

 

這次,我們實作了機器學習中的影像辨識,並整合剛剛提及的邊緣運算,成功達成一次AI實務的軟硬整合課程。套一句阿吉老師的課後感言:「我想,我們應是最先推出AI實務軟硬整合課程的團隊吧。」歡迎跟著我們一起成長、一起學習AI,微軟將繼續於9月份、10月開課,歡迎點此報名

 

最後,播放一段輪型機器人視角的跑車影片,給各位讀者欣賞。

 

相關文章

[LattePanda教學] lattepanda + Azure #2 上傳類比資料到Azure IoT hub

作者/攝影  曾吉弘
時間  3小時
成本  Lattepanda
難度  * * * * *
材料表
  • 個人電腦 (作業系統可用 Windows, Mac OSX 與 Linux,本範例使用 Windows 7)
  • Lattepanda Windows 單板電腦

請參閱 [LattePanda教學] lattepanda + Azure #1 環境建置] 本文將介紹如何上傳類比資料(電位計)到Azure IoT hub,並可在 Visual Studio 與 Power BI 中檢視資料。

環境建置

硬體

在此有兩種做法,使用 Lattepanda 感測器套件 中的 Analog Rotation Potentiometer sensor 接在 Lattepanda 上的 Gravity 4號接腳上,請參考下圖:

或採用一般的電位計,中央腳位接到 Lattepanda A0腳位,另外兩隻腳一端接 5V,一端接GND即可,完成如下圖:

Lattepanda Arduino

 

請上傳StandardFirmata Lattepanda Arduino 晶片中,別忘了 Board 要選 Arduino LeonardoCOM port 請根據 Windows裝置管理員為準,本程式中為 COM4

Lattepanda Windows端:

請用 git client 下載 azure iot sdk,請安裝 Windows git 工具之後在 powershell (cmd + r 之後搜尋 powershell )下執行以下指令把檔案下載到 lattepanda。在此我們預設的路徑皆為 C:\Users\Lattepanda:

git clone https://github.com/Azure/azure-iot-sdks.git

完成之後在其中的 /build 資料夾中找到 dev-setup.cmd,點擊兩下即可開始安裝程序。安裝完成之後可在同路徑下看到多了一個 node_modules 資料夾。

安裝Node.js所需套件

請在powershell 中執行以下指令,johnny-five serialport 這兩個是我們在 app.js 中會用到的套件:

npm install johnny-five serialport

 

建立Azure storage

Azure Storage

Azure Storage 是微軟所提供的雲端儲存方案,提供不同客戶在耐用性、取得性以及規模彈性上的各種需求,大到科學、金融用的數百TB以上資料,小到個人網站,都可在此完成。

請登入Azure portalNew -> Storage -> Storage account。並根據以下參數來建立 Storage account:

Name:自行取一個名稱,在此為 cavedu

Storage service ecryption: Disabled

Subscription: Free Trial (根據您帳號而定)

Resource group: Create new 或 USe existing 都可以,在此我建立一個新的: cavedu

location: 根據您所在地,在此我選 East Asia

建立完成後會看到以下畫面,請注意右下角的 URL 要記起來,後續與 Power BI 連接時會用到

Settings / Access Keys 下面的 key1 / key2也記起來,請任選一組輸入在後續要執行的程式中。

程式說明

Lattepanda Arduino

請確認 StandardFirmata 程式已經上傳 Lattepanda Arduino 晶片並執行,如果不確定的話可以再上傳一次或按下板子上的 Reset 鈕讓 Arduino 晶片重新執行程式。Arduino端程式一定要先執行,後續 app.js 去呼叫 Arduino COM port 時才可正常運作,否則就會顯示錯誤訊息。

Lattepanda Windows

請開啟power shell,切換到您解壓縮 azure-iot-sdk的資料夾下,(我們的路徑是 C:\Users\lattepanda),使用您喜歡的編輯程式建立一個名為 app.js 的檔案並貼入以下內容。您只要修改 accountNameaccountKeytableName這三筆資料即可,如下圖:

app.js

var azure = require('azure-storage');
var five = require('johnny-five');

var accountName = 'XXX'; // Enter your Azure storage account name
var accountKey = 'OOO'; // Enter your Azure storage account key
var tableName = 'MyLightSensorData'; // Name of your table to store the light sensor data

var arduinoPort = 'COM4';// Enter your Arduino Port

var tableService = azure.createTableService(accountName, accountKey);

if (CreateTable()) {
InitializeBoard();
}

// Create a table in Azure storage
function CreateTable() {
tableService.createTableIfNotExists(tableName, function (error, result, response) {
  if (error) {
    console.log(error);
    return false;
  }
});
return true;
}

// Initialize the Arduino board with Johnny-Five
function InitializeBoard() {
var board = new five.Board({ port: arduinoPort });

board.on('ready', function () {
  lightSensor = new five.Sensor({
    pin: "A0",
    freq: 30000 // 上傳間隔30秒
  });

  lightSensor.on('change', function () {
    InsertValue(this.value);
  });
});
}

function InsertValue(value) {
console.log('Value to insert: ' + value);

//建立一個實體,將光感測器值與日期存在資料表中
var entGen = azure.TableUtilities.entityGenerator;
var entity = {
  PartitionKey: entGen.String('Light'),
  RowKey: entGen.String(String(Date.now())),
  intValue: entGen.Int32(value),
  dateValue: entGen.DateTime(new Date().toISOString()),
};

//將實體插入Azure storage table
tableService.insertEntity(tableName, entity, function (error, result, response) {
  if (error) {
    console.log(error);
  }
});
}

 

執行與檢視資料

請在powershell 下切換到您的您解壓縮 azure-iot-sdk的資料夾下(我們的路徑是 C:\Users\lattepanda),執行以下指令來執行程式。 /XX 資料夾之後執行以下指令:

node app.js

即可看到以下畫面,由console中可看到程式已經陸續上傳多筆資料了。後續我們會在 VisualStudio 中檢視您所上傳的資料。

回到 Azure portal 的 storage acount,在左側選單中找到 Activity log選項,可以看到方才執行的動作。

在 Visual Studio中檢視資料

開啟VisualStudio時,請點選Connect to Azure並用您的Azure帳號登入。

在工具列的 View 中,點選 Server Explorer

登入您的 Azure 帳號之後,即可在 Storage 選項中找到您所建立的 Table 名稱(MyLightSensorData),點選即可看到資料喔!

在PowerBI中檢視資料( 選用)

Power BI 是微軟提供的商務分析工具套件,可用來分析資料及共用深入資訊。透過自行定義或預設的儀表板模組,使用者可以匯入、分析並取得資料中的重要資訊,協助決策。

登入Power BI 之後,您可以在此檢視 Azure storage 中的資料,就是上述我們所執行的程式結果。請點選下圖的 [取得 資料庫],並登入您的 Azure 帳號再輸入您的 server 路徑以及資料庫名稱,完成之後即可看到同一筆資料了

參考資料:

 

  1. 建議使用powershell,開啟方法:win+R快捷見,然後輸入powershell就可以開啟了
  2. 建議使用git,下載網址:https://git-scm.com/download/win

Git – Downloading Package

The entire Pro Git book written by Scott Chacon and Ben Straub is available to read online for free. Dead tree versions are available on Amazon.com.

git-scm.com

  1. 打開powershell,cd 到你想裝的地方,預設是直接在使用者的家目錄,然後輸入git clone https://github.com/Azure/azure-iot-sdks.git

Azure/azure-iot-sdks

azure-iot-sdks – SDKs for a variety of languages and platforms that help connect devices to Microsoft Azure IoT services

github.com

  1. 根據教學文它需要把其中node的submodule一併裝進來,所以輸入:git submodule update –init — node

這樣就搞定了

 

相關文章:

 

[LattePanda教學] lattepanda + Azure #1 環境建置

作者/攝影  曾吉弘
時間  3小時
成本  Lattepanda
難度  * * * * *
材料表
  • 個人電腦 (作業系統可用 Windows, Mac OSX 與 Linux,本範例使用 Windows 7)
  • Lattepanda Windows 單板電腦

本文說明如何在lattepanda上建置 Azure IoT 相關環境,包含:

  1. 下載相關檔案
  2. 安裝Visual Studio 2015
  3. 設定Azure portal 與 Storage acount

STEP 1 下載相關檔案

接下來要說明如何建置Microsoft Azure IoT SDK for Node.js的開發環境(您也可以採用C#來開發 Azure 相關應用,後續我們會專文介紹)請根據以下步驟操作:

  • 安裝 Node.js http://nodejs.org/,您可在 cmd 中用這個指令檢查 Node.js的版本,本專案需要 0.12.x 以上:node –version
  • 在cmd下輸入 node 進入 Node.js command prompt,切換到方才從 github 下載並解壓縮的 azure-iot-sdks /node 資料夾中。請執行 build\dev-setup.cmd 完成環境建置,如下圖:

STEP2 設定微軟IoT Hub

  接下來將介紹如何在 Azure 中建立一個 IoT hub,接著讓您的裝置與 IoT hub 完成介接,兩者即可通訊了。

建立一個IoT hub

  請由 Azure Portal 建立一個可用於您裝置(Lattepanda或其他聯網裝置)的IoT hub。

  1. 登入Azure Portal,如果尚未具有帳號的話請申請一個。
  2. 請點選左上角的[+ New] -> Internet of Things,由畫面右側找到Azure IoT Hub

3.這時需要新增訂閱帳戶,在此請先點選 Free Trial 為期一個月的免費試用方案,日後您可根據個人需求選擇合適的付費方案。請注意,Free trial 一樣須完成電話號碼與信用卡認證,但Free trial 不會向您收取任何費用。

4.New IoT Hub視窗中輸入相關訊息,打*者代表必填欄位,完成如下圖。

  • Name:幫您的IoT hub取個名字吧,系統會自動檢查您希望的名稱是否可用,以綠色勾勾表示。
  • Pricing and scale tier:使用預設的S1 – Standard 即可。
  • Resource group:您可建立新的資源團體或選擇既有的。請參考 Using resource groups to manage your Azure resources
  • Location :請選擇您所在地區即可。

5.IoT hub設定好之後請點選Create ,在此須等候一小段時間。完成之後即可在Azure portal 看到它,您可以自由更改 protal 上各元件的位置。

6.建立好IoT hub之後,點選它,記下右上角的 hostname URI(例如下圖的 lattepanda.azure-devices.net )之後點選左側選單的 Shared access policies.

7.在Shared access policy中,選擇iothubowner(代表我們需要 registry write, service connect 與 device connect 等最高權限),最後把最右側的 Connection string (HostName=lattepanda.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=OOOXXX 這一大串) 記下來,後續會用到。

STEP3: 安裝Visual Studio

STEP4: 設定Azire Storage account

請由此申請一個 Azure Storage Accout(https://azure.microsoft.com/en-us/documentation/articles/storage-create-storage-account/#create-a-storage-account  ,需登記信用卡,但在此不會收取任何費用)

IoT hub建立完成了,上一部的connection string 需搭配 iothub-explorer 或 Device Explorer工具來使用。這個字串可讓外部應用程式在IoT hub 上執行相關的管理動作,例如在 IoT hub 上新增裝置。

STEP3: 安裝Visual Studio

STEP4: 設定Azire Storage account

下一篇將告訴您如何將 Lattepanda 的類比腳位資料上傳到 Azure IoT hub,您可在這個腳位上使用電位計、光敏電阻或彎曲度電阻等類比元件。  

 

相關文章:

 

Inventec AVATAR開發板 (微軟Azure IoT認證裝置與 Qualcomm 四核心處理器)

還記得前幾年水果拼盤(各類型 Raspberry Pi 相容板、有香蕉橘子蓮霧鳳梨喔) 開始流行的時候,光有板子就很開心了,但現在大家的胃口被養大了,光有板子是不夠的,有沒有什麼更方便的應用呢?例如,直接打通了某些雲服務,聽起來就很吸引我。

最近英業達 Inventec 有一片 Avatar (阿凡達?) 出來了,主打項目應該是 Microsoft Azure IoT Certificate 與採用 Qualcomm 四核心處理器

085

 

目前 Inventec 在 hackster.io 所放上的專題應用有智慧小玩具、居家助手與監控攝影機等三個專題。也提供了完整的作法,就等拿到板子之後來玩玩看囉。

最後是目前可看到的規格

  • CPU:Quad Cortex-A7, up to 1.094 GHz / Qualcomm APQ8009
  • Memory:8GB eMMC + 1GB LPDDR2
  • Communications:Dual-band 2×2 802.11ac + Bluetooth 4.1 / Qualcomm QCA6174A
  • Audio Codec:Standalone Hi-Fi audio codec IC / Qualcomm WCD9326
  • Speaker AMP:Class-D smart speaker AMP up to 2W/8Ω / WSA8810
  • Microphone:-38dB, Wide bandwidth, Low noise-38dB / A-Mic
  • Camera:1/2.9″ color CMOS 1080p HDR HD image sensor / OmniVision OV2718
  • GPU:O.S. Support

比較令我感興趣的是這個:Microsoft Azure Certified for IoT。不知道可以幫開發者省掉哪些步驟呢?如果只要登入之後就可以直接使用一些範例程式就太棒啦(許願中…)

160818 19 微軟物聯網專案實作體驗營,7月底報名只要$3500

2016年8月18, 19日 共兩天,有微軟原廠舉辦的物聯網專案實作體驗營,地點在恆逸資訊教育訓練中心(台北市松山區復興北路99號14樓)。原價 $5000,七月底特價$3500,對於微軟 Azure IoT有興趣的朋友,千萬別錯過啦!

報名連結請按我

以下是課程介紹與內容:

Continue reading

[5/29 物聯網應用發表會有什麼?]微軟 Cognitive Services 應用大全集

5/29 星期天下午的物聯網應用發表會,您報名了嗎?

微軟物聯網小組會在 5/29 當天展示 Cognitive Services 的應用大全集。對於微軟提供的相關服務有興趣的朋友,請千萬別錯過。當天還有 Amazon AWS IoT 的智慧小屋IBM Bluemix 聯發科 LinkIt 家族等面對面分享,一定要來喔!

由下圖可看到可分成 Vision、Speech、Language、Knowledge 與 Search 等五大項,有興趣的朋友可點下圖來進入各 API來看看如何上手。
未命名

在 Maker Fairte Taipei 2016 的微軟攤位上,展示 Raspberry Pi 結合 Cognitive Services 來辨識使用者的狀態,只需要一台聯網的 Raspberry Pi 就搞定啦。(技術協力為 Webduino)。下圖為LASS 開源環境監測計畫 LASS 的哈爸,從圖中可以看到有偵測臉部、笑容百分比、預估年齡(剛滿40歲喔~) 以及是否有眼鏡等等。

延伸閱讀:微軟 Cognitive Services 的 How-old.net app 

IMG20160508130854

採用 Raspberry Pi + 官方的相機模組,實際上用任何一款 webcam 都沒問題

IMG20160508130929

來看看微軟的 Cognitive Services 介紹影片

Microsoft Azure IoT 各種可用的開發板與套件包

就雲服務廠商的角度來說,當然是海納百川,大家的板子都來連到我的雲吧。但站在使用者的立場而言,還是有一套標準的套件搭配新手村攻略會比較輕鬆一點。否則通通都可以有時候也等於通通都不行啊…

別忘了報名 5/29 的物聯網應用發表會喔!

拿 Seeed 來說吧,大概90%開發板的 starter kit 都是他們家做的吧(連板子順便一起做囉~), 例如聯發科的 LinkIt 家族、Raspberry Pi、Intel Edison 等等很多啦…  畢竟只有板子沒有周邊也是沒戲唱。今天讓我們來看看微軟針對 Azure IoT  所推薦的 IoT 新手包吧 (以下文字部分翻譯自原廠網頁,再加上一點阿吉老師的意見)

Adafruit Raspberry Pi Kit

由Windows 10加持之後,Pi 就能做到 PC 一樣的事情了喔,試算表、文字處理甚至播影片都可以(本來就可以了啊…)。本套件提供了 Pi 搭配 Azure IoT 所需的各種感測器與元件。

Buy | Get started

Adafruit Feather M0 Kit

Feather 是 Adafruit 的新款開發板,當然是因為這片板子又薄又輕的關係囉。Adafruit 設計 Feather 開發板使用於可攜式微控制器的新標準。這款 Adafruit Feather M0 WiFi 可說是完整相容於 Arduino,高速,WiFi 穩定而且有內建 USB 與電池供電。

Buy | Get started

Adafruit Huzzah Feather ESP8266 Kit

針對想入手 Adafruit 新款的低價 Feather HUZZAH 開發板與 ESP8266 WiFi 微控制器所設計,Adafruit 表示這款套件用來入門 Azure IoT 相當合適。本套件不需要 Arduino 或其他微控制器。

Buy | Get started

Seeed – Intel Edison Kit

針對專業 maker、企業家、以及工業級 IoT 應用,Intel® Edison 模組針對一系列的原型或商用級專案提供了相當簡易的開發環境。

Buy | Get started

SparkFun Thing Dev Kit

以 ESP8266 為核心,這款 Thing Dev 開發板的C/P值相當高,且 Wi-Fi 的穩定度也很不錯。本套件包提供了 ThingDev 微控制器 搭配 Azure IoT 所需的各種感測器與元件。

Buy | Get started