Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
本文將使用 Azure Machine Learning Studio,一次匯入數張影像檔,再經由一個預先訓練過的模型,偵測這些影像中是否含有人臉。
步驟一:開通 Azure 「機器學習」帳號
1. 不需要信用卡就可以免費開始使用 Azure Machine Learning (https://studio.azureml.net/):擁有 10GB Azure Storage 的 Datasets 空間、最多建制 100 modules 以及一小時的 Machine Learning experiments 時間。
2. 如果你是成立不到五年的新創公司,可以免費申請 BizSpark 方案,享有每個月 NT$4,700 額度的 Azure credit。開通時亦無需輸入信用卡,所以沒有付費的風險。
3. 如果你是 MSDN 訂閱用戶,本來就有 Azure 免費額度,只要開通即可。
4. 當然你也可以直接申請免費試用一個月,取得 NT$6,300 元的 Azure 信用額度。
(如果你是學校老師或學生,有更多 Azure 免費資源)
步驟二:選擇合適的照片上傳至 Azure Blob 儲存體
影像、音樂、影片等檔案通常較大,Azure Blob 儲存體提供了便宜彈性的儲存空間,可作為 Azure Machine Learning 連結使用。
首先我選擇了以下 4 張照片:
然後將它們上傳至 Azure Blob (可見此文有詳細的上傳步驟):
步驟三: 匯入影像、偵測人臉
接下來我們要使用一個預先訓練過、用來偵測人臉的分類模組,並將影像檔作為資料源,逐一分析各影像裡是否含有人臉。當然未來你也可以利用 “Import Images” 模組所匯進來的影像,訓練出你自己的預測模型。
登入 Azure ML Studio,在空白的 Experiment 裡拉進”Pre-trained Cascade Image Classification”、“Import Images”、”Score Model”以及 “Execute R Script” 模組,並連結如以下:
在 “Import Images” 中設定你剛剛上傳影像的 Blob URL 位址。若你的 Blob 是設定為非公開存取的話,則需要再輸入帳號密碼。以 Public URL 為例:
然後在 “Execute R Script” 模組中,貼入以下 R Script。其重點在 Line 4,這行程式是把偵測人臉預測結果的三個欄位取出來。
1: # Map 1-based optional input ports to variables
2: dataset1 <- maml.mapInputPort(1) # class: data.frame
3:
4: data.set = data.frame('Image Name'=dataset1['Image Name'], 'Score Labels'=dataset1['Scored Labels'], 'Label Probabilities'=dataset1['Scored Probabilities'])
5:
6:
7: # Select data.frame to be sent to the output Dataset port
8: maml.mapOutputPort("data.set");
步驟四:執行結果
按下 Run,等待執行結束。
我們先來看 “Import Images” 幫我們作了什麼事,選擇 Visualize 之後,會發現它幫**每一個影像的每一個像素都轉換為 RGB 數值**。觀察以下可發現,我們共匯入了 4 個影像,而因為每個影像是 640*427 像素,每一像素有 R, G, B 3 個值,所以每個影像後面有 640*427*3 = 819,480 個欄位:
我們再到 “Execute R Script” 觀察最後執行結果。
看來這個預先訓練的人臉辨識模型準確度不錯,第 1 張小狗照片判斷沒有人臉 (false),第 2 到 4 張都成功判別出有人臉 (true)。
備註:
1. “Import Images” 支援下列的影像格式:
- Windows 點陣圖檔案:*.bmp、*.dib
- JPEG 檔案:*.jpeg、*.jpg、*.jpe
- JPEG 2000 檔案:*.jp2
- 可攜式網路圖形:*.png
- 可攜式影像格式:*.pbm、*.pgm、*.ppm
- Sun 點陣:*.sr、*.ras
- TIFF 檔案:*.tiff、*.tif
2. 請注意影像檔及 Blob 的技術細節,匯入過程中出現的錯誤通常來自這些規範:
- 所有影像必須相同大小。
- 所有影像必須具有相同的色頻。例如,您不能混用灰階 與 RGB 影像。
- 每個影像的像素數目有其上限 (實際測試發現其上限數目其實遠大於官方文件說的 65536)。 不過,影像數目不受任何限制。
- 如果您是將 Blob Container 作資料來源,則此 Container 中不能包含 Blob,只能包含影像檔。
3. “Import Images” 在第一次執行時會花較久的時間,但在影像 cached 之後即可省略匯入的動作。
延伸閱讀:
Azure 「機器學習」初體驗
Azure 「機器學習」FAQ
Azure 「機器學習」:我該用哪種演算法 (algorithms)?