# 雲端運算之多媒體整合實務
###### tags: `講義`
僑光科技大學 資訊科技系
2019/02/21 ~ 2019/06/20
授課老師:高吉隆
電子信箱:[kevinkao888@gmail.com](mailto://kevinkao888@gmail.com)
---
# 課程介紹
* 課程大綱
* 每週目標
* 成績計算
----
## 課程大綱
1. 雲端運算的概念
2. 雲端服務平台的現況介紹
3. 雲端服務平台的申請與使用
4. 雲端服務平台在多媒體之應用
5. 專題製作與報告
----
## 每週目標
* 前 9 週上課目標
* 案例研讀
* 作業繳交
* 案例報告
* 後 9 週上課目標
* 分組實作
* 規劃報告
* 實作報告
----
|週| 上課日期 | 前 9 週上課目標 |
|:-:|:----------:| --------------- |
| 1 | 2019/02/21 | 雲端運算之概念 |
| 2 | 2019/02/28 | 雲端服務平台的現況 |
| 3 | 2019/03/07 | Microsoft AZure |
| 4 | 2019/03/14 | Google Cloud Platform |
| 5 | 2019/03/21 | Amazone Web Service |
| 6 | 2019/03/28 | 雲端運算之多媒體應用 |小考
| 7 | 2019/04/04 | 清明節連假 |
| 8 | 2019/04/11 | 語音轉換之應用 |作業
| 9 | 2019/04/18 | 期中報告 |
----
| 週 | 上課日期 | 後 9 週上課目標 |
|:--:|:----------:| --------------- |
| 10 | 2019/04/25 | 樹莓派建置雲端多媒體 |
| 11 | 2019/05/02 | 語音轉換之概念與實作|
| 12 | 2019/05/09 | 樹莓派之其他應用 |
| 13 | 2019/05/16 | 分組與題目訂定 |
| 14 | 2019/05/23 | 分組討論與分析 |
| 15 | 2019/05/30 | 分組實作與問題解決 |
| 16 | 2019/06/06 | 分組報告準備 |
| 17 | 2019/06/13 | 分組初步成果展示 |
| 18 | 2019/06/20 | 分組最後成果報告 |
----
## 評分標準
* 平時成績:30%
* 上課互動:10%
* 第1次小考:10% (2018/03/28)
* 第1次作業:10% (2018/04/11)
* 期中成績:30%
* 期中報告 (2018/04/18)
* 期末成績:40%
* 第2次作業:10% (2018/05/30)
* 期末報告 (2018/06/20)
---
## 期中報告說明
* 採分組報告:2-4人為一組,請選1人為組長
* 擬定系統名稱:以多媒體或雲端系統為優先
* 系統規劃:Amazon/GCP/AZure/PHP/ASP/C#/App Inventor
* 系統功能:介紹別人案例說明
* 書面報告:以PPT繳交,PPT需以摘要列印
* 上台報告:每組報告3-5分鐘,依組數而定
* [分組名單](https://hackmd.io/bA1vPttRT0qaEsHxEgEasQ?both)
---
## 期末報告說明
* 採分組報告:2-4人為一組,請選1人為組長
* 擬定系統名稱:以多媒體或雲端系統為優先
* 系統規劃:Amazon/GCP/AZure/PHP/ASP/C#/App Inventor
* 系統功能:以規劃及製作架構及關鍵程式
* 書面報告:以PPT繳交,PPT需以摘要列印
* 上台報告:每組報告5-8分鐘,依組數而定
* [分組名單](https://hackmd.io/h6YtgeIjQjO_kZB2FxtHMw?both)
---
### 雲端運算之簡介
* 是一種基於網際網路的運算方式
* 共享的軟硬體資源、資訊或各類服務
* 可以按需求提供給電腦或其他裝置
* 服務供應商使用最少的管理作業進行配置

----
#### 雲端運算定義
* 依美國國家標準與技術研究院的定義
* 一種模式,允許無處不在、便捷、依個體需求地使用網路存取的共享運算資源池
* 共享運算資源池包括網路、伺服器、儲存裝置、應用程式與各類服務
* 可以在最少的管理作業或服務供應商互動下,進行快速配置和發佈資源
----
#### 雲端運算定義
* 具備5個基本特性
* 應用3種服務模型
* 採用4種部置模型

----
#### 雲端運算的5個基本特性
* 自助式隨需服務(On-demand self-service)
* 廣泛網路接取(Broad network access)
* 共享資源池(Resource pooling)
* 快速的彈性(Rapid elasticity)
* 可測量的服務(Measured service)
----
##### 自助式隨需服務
* On-demand Self-service
* 用戶可自行預備雲端的運算能力
* 透過網路隨時可以註冊使用
* 例如服務器時間、網路儲存
* 服務依時間、容量計價
* 適時自動開始,而無需與每一個服務提供者互動
* 雲端服務通常需要自行找Q&A
* 自行寫信詢問,而沒有電話客服
----
##### 廣泛網路接取
* Broad network access
* 功能可在網路使用並透過標準的機制存取
* 無處不在,無處不能無網路
* 促進各種簡約功能或完整功能客戶端平台來使用
* 網頁功能簡化易於使用
* 例如手機、平板電腦、筆記本電腦及工作站各種裝置來使用
* 跨平台服務,如HTML5網頁
----
##### 共享資源池
* Resource pooling
* 供應商的運算資源匯集在一起
* 以多租戶模式服務多個用戶
* 根據用戶需求,動態地分配和重新分配不同的實體及虛擬資源
* 資源包括儲存空間、處理、紀憶體及網路頻寬
* 這是一種與位置無關的概念
* 用戶通常無法控制或知悉需端資源的確切位置
* 但可能是能夠指定更高層次的抽象位置,如國家、州或數據中心
----
##### 快速的彈性
* Rapid elasticity
* 功能可以彈性地供應和釋放
* 不需透過與供應商的互動
* 有些情況下,自動地,迅速放出及收回使得符合要求
* 線上即時修改容量等級
* 對於用戶來說,可用於配置的功能往往是無限的
* 可以在任何時間,調撥任何數量
----
##### 可測量的服務
* Measured service
* 利用適用於服務類型的某種程度抽象化計量功能,自動地控制及最佳化資源使用
* 例如儲存空間、處理能力、頻寬、作用中的用戶
* 資源使用情形可以被監測、控制及描述,為供應商與用戶雙⽅提供透明化地檢視這些所使用的服務。
* 需要讓使用者可以自行查詢使用狀況
----
#### 雲端運算的3種服務模型
* 基礎建設服務(IaaS)(Infrastruture)
* 平台服務(PaaS)(Platform)
* 軟體服務(SaaS)(Software)

----
##### 基礎建設服務(IaaS)
* Infrastruture as a Service
* 本質是提供裝置能力
* 使用者可以透過向雲端服務供應商租用
* 包括處理器、儲存容量、網路等基礎資源
* 不需要自行購買硬體
* 用戶能自行佈署和運行軟體
* 包括作業系統、應用程式及網路元件
* 如防火牆、負載平衡器等
* 用戶可即時依需要,隨時向供應商訂購或修改
* 並依處理器 (CPU/hr)、儲存空間(GB)或網路流量 (Gbps) 使用量計
----
##### 平台服務(PaaS)
* Platform as a Service
* 以服務的形式提供開發平台
* 讓使用者或程式開發者使用
* 透過服務提供者所提供的程式語言或介面
* 自行開發所需的雲端應用
* 概念是希望使用者使用主機操作應用程式
* 使用者掌控運作應用程式的環境
* 也擁有主機部份掌控權
* 但並不掌控作業系統、硬體
* 負責維護應用開發與運行的計算環境
* 能隨時進行適度調整
* 碓保運行環境的穩定性與可用性
----
##### 軟體服務(SaaS)
* Software as a Service
* 概念是希望使用者使用應用程式
* 使用者並不接觸網路基礎架構
* 包括作業系統、硬體
* 軟體服務供應商,以租賃的概念提供使用者服務
* ⽽非購買,將商用軟體存放在資料中心
* 以網路存取的⽅式提供訂閱服務
* 或以計次付費的型式收費
* 如 Google Docs、Adobe CS
----
#### 雲端運算的4種佈署模型
* 公有雲(Public cloud)
* 私有雲(Private cloud)
* 社群雲(Community cloud)
* 混合雲(Hybrid cloud)

----
##### 公有雲
* Public cloud
* 開放給使用者使用,但不⼀定代表免費
* 通常會對使用者實施使用存取控制機制
* 既有彈性,又可降低設備維運與管理成本
* 方便又省錢的解決方案
* 主要使用者為中小企業或個人用
* 案例:AWS、Azure、GCP
----
##### 私有雲
* Private cloud
* 資料與程式都在組織內管理
* 讓供應者及使用者更能掌控雲端基礎架構
* 改善安全與彈性
* 私有雲之使用者及網路都受到特殊限制
* 主要用戶大多以大型企業為主
* 使用虛擬化技術來提升對於硬體資源的使用率
* 需要有技術人員維護
----
##### 社群雲
* Community cloud
* 利益相仿的組統織掌控及使用
* 社群成員共同使用雲端資料及應用程式
* 社群雲主要使用者大多以學術機構為主
----
##### 混合雲
* Hybrid cloud
* 結合公有雲及私有雲
* 使用者通常將非企業關鍵資訊外包
* 在公有雲上處理
* 但同時掌控企業關鍵服務及資料
* 在私有雲上處理
* 私有雲端動態依據計算需求
* 可調用公有雲端的資源
----
##### 部署模型的比較
* 考量基礎:彈性、成本、風險與問題
||優點|缺點|
|:-:|:-:|:-:|
|公有|減少組織軟硬體部署、維運管理成本|資訊安全、服務中斷、內部資料洩漏等風險|
|私有|降低公有雲的問題與風險、比傳統架構更有效運用|較高的初期投資成本、與長期軟硬體的維護、升級與管理成本|
|混合|同時兼具二者優點|建置成本較公育雲高|
----
#### 雲端運算的虛擬化概念
* 雲端運算的核心技術
* 伺服器虛擬化:計算、網路、儲存

---
### 雲端服務平台的現況
* 三大巨頭
* Amazon Web Service(AWS)
* Microsoft Azure(Azure)
* Google Cloud Platform(GCP)

[Best Cloud Service Providers in Clutch](https://clutch.co/cloud#leaders-matrix)
----
#### 各平台基礎建設的差異
* AWS:18 regions 54 zones
* Azure:36 regions
* GCP:12 regions 36 zones

----
#### 各平台定價的差異
* AWS:第一年部分服務每月有免費額度
* Azure:前30天可使用價值6300元額度
* GCP:第一年可使用美金300元額度
* 部分服務有永久免費額度
----
### Microsoft AZure
* 簡報:[連結](https://ocu.tw/pdf/MicrosoftAZure.pdf)
---
## SaaS 案例分享
### Matterport 3D Camera VR Creation
* 運用 3D Camera 快速建立虛擬空間

[案例連結網址](https://my.matterport.com/show/?m=QWiJdWoVFsn)
----
#### 官方介紹製作過程影片
1. 整理環境、準備拍攝
2. 空間中每隔1~3公尺拍攝1個點位(每點約1分鐘)
3. 於平板電腦中設定鏡子、窗戶及裁切位置
4. 上傳雲端並雲端運算3D空間影像資料(約1-2小時)
5. 於後台編輯版面後分享網址
[播放介紹影片](https://youtu.be/aq4NLmiJHwk)
----
#### 實際操作步驟一:硬體設置

----
#### 實際操作步驟二:3D拍攝

----
#### 實際操作步驟三:後台預覽編輯

----
#### 其他注意事項
1. 每景之間約2公尺(1-3公尺),拍攝距離愈密集,可觀看角度愈多
2. 每景距離不能大於3公尺
3. 所有景都要互相串連,不能中斷
4. 可以拍攝多個樓層,但樓層間的樓梯也要拍攝
5. 若拍攝多個空間,中間無法連貫,則需當作2個案子計價
6. 如遇現場有鏡子反射拍到相機,無法另外修圖
7. 每個拍攝位置的正上方和下方有死角,無法觀看
8. 只能拍攝室內空間,若拍攝戶外空間,只能單獨播放,不能與室內空間連貫
---
### Google Cloud Platform - Cloud Vision API
* 網址:[https://cloud.google.com/vision/](https://cloud.google.com/vision/)
* 圖片的分析內容
* 偵測不適當的內容
* 網路的力量
* 擷取文字
* 地標偵測
* 光學字元辨識
---
### Google Cloud Platform - Cloud Storage Products
* 網址:[https://cloud.google.com/products/storage/](https://cloud.google.com/products/storage/)
* Cloud SQL / Spanner
* MySQL, PostgreSQL
* Cloud Bigtable / Datastore
* NoSQL
* Cloud Disk / 雲端硬碟
* Firebase
* Mobile
* SQL vs NOSQL:[連結](https://ithelp.ithome.com.tw/articles/10187443)
----
#### 如何選擇儲存空間選項
* 網址;[https://cloud.google.com/storage-options/](https://cloud.google.com/storage-options/)

----
#### 如何新增 MySQL Database
* 網址:[https://cloud.google.com/sql/docs/mysql/](https://cloud.google.com/sql/docs/mysql/)
* 事先之準備
* GCP雲端帳號、啟用計費功能、建立專案
* 啟用 Cloud SQL Administration API
* 建立實體
* 選擇專案 Project
* 選擇 MySQL 第二代版本
* 輸入實體 ID
* 輸入 root 密碼
* 按 Create 鈕
---
### Microsoft Machine Learning Studio
* 網址:[Machine Learning Studio](https://azure.microsoft.com/zh-tw/services/machine-learning-studio/)

----
#### Machine Learning Stduio 特色
* 不需要寫程式即可完成機器學習的完整過程
* 包含資料整理、模型設計、訓練、測試和佈署
* 不必申請雲端AZure帳號,在雲端上使用
* 若需上傳資料,需申請Microsoft免費帳號
* 平台包含許多範例資料,可透過案例學習
* 可透過相同界面,上傳資料做案例研究
* 可載入預先訓練好之模型,以簡短步驟完成模型
* 只要會調整模型數據,即可直接訓練
* 整個機器學習過程只要5分鐘即可完成
* 方便初學者及跨領域之專業人員使用
----
#### Machine Learning Studio 示範
* 網址:[https://studio.azureml.net/](https://studio.azureml.net/)
* 三種方案使用

----
#### AZure ML Studio 三種方案
* 快速測試:Guest Workspace
* 每次8小時測試(永久),免登入帳號
* 快速使用現成範例資料及所有模型
* 普遍使用:Free Workspace
* 註冊微軟帳號、10G空間、免費使用
* 可以用 GMail 帳號申請,但不能用 OCU
* 也可以用手機號碼申請,再申請 outlook 帳號
* 企業應用:Standard Workspace
* 完整服務等級支援
* 可直接捉取AZure雲端空間
----
#### Machine Learning 基礎知識資源
* Youtube影片:台大資工教授林軒田提供
* [連結](https://youtu.be/nQvpFSMPhr0)
* 微軟教學網頁:[連結](https://docs.microsoft.com/zh-tw/azure/machine-learning/classic/studio-classic-overview)
----
### ML Studio 案例操作 汽車價格預測
* 使用 Guest Workspace:[連結](https://studio.azureml.net/Home/Anonymous)、[說明文件](https://docs.microsoft.com/zh-tw/azure/machine-learning/studio/create-experiment)
* 左下角:New -> Blank Experiment -> 輸入標題
* 輸入:Automobile price data -> 拖曳
* 資料來源:[連結](https://archive.ics.uci.edu/ml/machine-learning-databases/autos/imports-85.data)
* 資料說明:[連結](https://archive.ics.uci.edu/ml/machine-learning-databases/autos/imports-85.names)
* Dataset -> Visualize -> 使用統計圖形了解屬性
* 統計資訊:
* Feature Type:String / Numeric
* String Statistics:Unique / Missing Values
* Numberic Statistics:Mean / Median / Min / Max / Standard Deviation
----
#### ML Studio 案例操作 汽車價格預測(2)
* 輸入:Select Columns in Dataset() -> 拖曳
* 拉線從:Automobile price data(Row)
* 點按:Lanuch column selector -> WITH RULES
* 選擇:Begin With -> ALL COLUMNS -> exclude -> normalize-losses
* 點按:RUN -> 26 Columns -> 25 Columns
* 搜尋區輸入:Clean Missing Data -> 拖曳
* 拉線從:Select Columns in Dataset
* 點按:Lanuch column selector -> WITH RULES
* 設定:Cleaning mode -> Remove entire row
* 點按:RUN -> 205 Rows -> 193 Rows
----
#### ML Studio 案例操作 汽車價格預測(3)
* 搜尋區輸入:Select Columns in Dataset -> 拖曳
* 拉線從:Clean Missing Data
* 點按:Lanuch column selector -> BY NAMES
* 選擇:make,body-style,wheel-base,engine-size,horsepower,peak-rpm,highway-mpg,price
* 搜尋區輸入:Split Data -> 拖曳
* 拉線從:Select Columns in Dataset
* 輸入:Fraction of rows in the first output dataset (0.75)
* 輸入:Random seed (12345)
* 點按:RUN -> 193 Rows -> 145 and 48 Rows
----
#### ML Studio 案例操作 汽車價格預測(4)
* 搜尋區輸入:Linear Regression -> 拖曳
* 搜尋區輸入:Train Model -> 拖曳
* 拉線從:Linear Regression
* 拉線從:Split Data(左邊)
* 點按:Lanuch column selector -> WITH RULES
* 選擇:price
* 搜尋區輸入:Score Model -> 拖曳
* 拉線從:Train Model
* 拉線從:Score Model
* 搜尋區輸入:Evaluate Model -> 拖曳
* 拉線從:Score Model
----
#### ML Studio 案例操作 汽車價格預測(5)

----
#### ML Studio 案例操作 汽車價格預測(6)

----
#### ML Studio 案例操作 汽車價格預測(6)
* 價格與預測值之比較

---
### ML Studio 案例操作 英文字母識別
* 使用 Guest Workspace:[連結](https://studio.azureml.net/Home/Anonymous)
* 左下角:New -> Search experiment templates
* 輸入 Sample 7:找到 Letter Recognition
* Train, Test, Evaluate for Multiclass Classification
* 選擇 View in Gallery:範例說明([連結](https://gallery.azure.ai/Experiment/a635502fc98b402a890efe21cec65b92))
* 選擇 Open in Studio:實作練習([連結](https://studio.azureml.net/Home/ViewWorkspaceCached/1309654da1e445e0a944df88dfdef58e#Workspaces/Experiments/Experiment/1309654da1e445e0a944df88dfdef58e.f-id.1c9effcb89fc44af98ce01f0f38bb380/ViewExperiment))
----
#### ML Studio 案例操作 英文字母識別(2)
* 資料集介紹:[下載](http://archive.ics.uci.edu/ml/machine-learning-databases/letter-recognition/)
* 20000筆:
* 採集來源:20種不同字體
* 處理方式:隨機扭曲變形後計算各個特徵值
* 標準化:將特徵值數值轉換至數字範圍(0-15)
* 17欄:
* 1㯗:大寫字母(A-Z)
* 16欄:數字特徵值(整數)(0-15)
----
#### ML Studio 案例操作 英文字母識別(3)
* 各種特徵值計算方式(如以下幾種)
* y-box:vertical position of box
* width:width of box
* high:height of box
* onpix:total # on pixels
* x-bar:mean x of on pixels in box
* y-bar:mean y of on pixels in box
* x2bar:mean x variance
----
#### ML Studio 案例操作 英文字母識別(4)
* 各種特徵值計算方式(如以下幾種)
* y2bar:mean y variance
* xybar:mean x y correlation
* x2ybr:mean of x * x * y
* xy2br:mean of x * y * y
* x-ege:mean edge count left to right
* xegvy:correlation of x-ege with y)
* y-ege:mean edge count bottom to top
* yegvx:correlation of y-ege with x
----
#### ML Studio 案例操作 英文字母識別(5)
* 機器學習模型

----
#### ML Studio 案例操作 英文字母識別(6)
* 資料來源統計

----
#### ML Studio 案例操作 英文字母識別(7)
* 資料切割:部分訓練、部分測試

----
#### ML Studio 案例操作 英文字母識別(8)
* 預測分數:

---
## 期末專題報告說明
* 採分組報告:2-4人為一組,請選1人為組長
* 擬定系統名稱:以多媒體或雲端系統為優先
* 系統規劃:Amazon/GCP/AZure/PHP/ASP/C#/App Inventor
* 系統功能:至少5個功能,需繪製功能組織圖
* 系統設計:包括畫面設計、程式設計、功能測試
* 書面報告:以DOC及PPT繳交,PPT需以摘要列印
* 上台報告:每組報告5-10分鐘,依組數而定
----
### 期末專題分組題目
* 盡量以自已思考方向為題目
* 可以合併專題製作的題目增加功能
* 可以合併不同組合作完成較大專案
* 微軟機器學習專題研究(MS ML Study)
* 虛擬實境互動導覽(Theta+3DPublisher)
* 空拍機實作應用(DJI+3D Model Building)
* 行動裝置程式設計(App Inventor+MySQL)
* 社群互動機器人應用(Line API/SQL)
* 立體互動三度空間導覽(MatterPort+SaaS)
* 雲端運算多媒體應用(GCP/AZure/Amazmon)
----
#### 機器學習案例研讀及使用
* 比較多分類之分類器:字母識別[連結](https://gallery.azure.ai/Experiment/a635502fc98b402a890efe21cec65b92)
---
## 小組成員名單
* 每組 4-6 人
* 輸入格式:學號 + 姓名
----
### 組別:A(實習報告)
* 10415115 林台富
* 10415117 趙御傑
* 10415125 張益勝
* 10415126 羅文駿 f0925299189@gmail.com
* 10415160 陳柏辰 karta0826895@gmail.com
----
### 組別:B(空拍機實作應用(DJI+3D Model Building))
* 10415133 蕭正揚 tom1231223@gmail.com
* 10415134 黃梓恩 t0988313542@gmail.com
* 10415136 蔡文勳 s09a12is321@gmail.com
* 10415153 陳偉品 ok0204q@gmail.com
----
### 組別:C(體感互動遊戲)
* 10415118 陳秉雋 ben860896@gmail.com
* 10415119 詹証翔 hapo23897229@gmail.com
* 10415120 賴建佑 mondeo7796@gmail.com
* 10415129 張雅萍 yeapingshow@gmail.com
* 10415161 施郁甄 cup121806@gmail.com
----
### 組別:D(雲端車牌辨識)
* 10415113 盧建源 justin22127@gmila.com
* 10415123 陳宜謙 icchen0022@gmail.com
* 10415128 劉昱辰 smile0985845168@icloud.com
* 10415146 陳勁宇 qoo99810@gmail.com
* 10415156 羅源佑 ruru855555@gmail.com
----
### 組別:E(社群互動機器人應用)
* 10415104 陳冠利 gary0012678@gmail.com
* 10415106 連政淮 qqa1381@gmail.com
* 10415109 林泰錹 titan0938137763@gmail.com
* 10415111 賴加毫
* 10415112 鄭智仁 s0985514623@gmail.com
* 10415157 曾鼎叡 qaz23128131@gmail.com
----
### 組別:F(逢甲美食app)
* 10415130 黃聖凱 kai6993159@gmail.com
* 10415140 吳恒銘 edwin860528@gmail.com
* 10415141 洪庭萱 ting0528.1997@gmail.com
* 10415155 林冠鐙 aa16532aa@gmail.com
----
### 組別:G(社群互動機器人應用)
* 10415103 李沅霖 wasdjkl8246@gmail.com
* 10415107 林揚智 aazzssxx80140@gmail.com (組長)
* 10415122 李明祐 ts02830432@gmail.com
* 10415149 陳冠聖 a587964258271@gmail.com
* 10415154 黃治瑋 kobe6382@gmail.com
* 10415158 劉威成 a8s009@gmail.com
----
### 組別:H(機械學習)
* 10415102 張賀荏
* 10415105 蘇品杰
* 10415137 曾稚庭
* 10415143 紀凱元 ghhhjfgvdyhfjv@gmail.com
* 10415152 何維倫
* 10415271 余維聰 chung96316@gmail.com
----
### 組別:I(產品銷售拍攝剪輯)
* 10415114 廖震堯 Mickey850927@hotmail.com
* 10415116 賴柏儒 adgjl159753852@gmail.com
* 10419724 彭新閔 niol30422@gmail.com
* 10415131 謝原旻 aly47582@gmail.com
* 10415141 洪庭萱 ting0528.1997@gmail.com