Azure IoT Edge入門(4)實戰將“識別戴口罩”算法部署到邊緣(1)-Custom Vision導出容器

視頻講解:

 

您可以在B站觀看視頻講解:https://www.bilibili.com/video/av93672532/

或在本站觀看視頻講解:https://www.51azure.cloud/post/2020/3/4/azure-iot-edge41custom-vision

 

 

圖文講解:

 

從本文開始,我們做一個案例介紹,該案例分爲3小節介紹。

前邊我們介紹過,IoT Edge的一個主要功能就是可以將雲端的能力擴展到邊緣,本次的案例涉及的內容比較多。

 

主要的背景是這樣的:

結合最近的社會情況,出現了很多需要檢測是否戴口罩的需求,我們之前曾經有一篇文章介紹了使用Azure Custom Vision提供的AI能力,快速開發出了一個檢測是否戴口罩的模型,併發布成API供調用。

 

本案例中,我們將之前訓練好的AI模型,通過Azure IoT Edge 推送到邊緣設備,這麼做有如下好處:

1. 未必所有的攝像頭都能直接調用API,也不能大規模替換新型攝像頭;

2. 未必所有的檢查點/場所都有良好的網絡,需要離線運行大部分功能;

3. 提供更快(時延更低)的檢測結果返回;

4. 當我們研發出準確率更高的模型時,可以批量從雲端更新我們部署的邊緣設備;

本案例分三節內容介紹:

  1. 將Custom Vision 模型導出成linux 容器;在本地build/run,完成本地測試;
  2. 準備Azure Container Registry, 將本地Build好的鏡像push到ACR裏;
  3. 使用IoT Edge將 ACR裏準備好的 鏡像部署到IoT Edge裏,在EDGE設備上調用本地的算法;

 

 

今天主要介紹第一個步驟:

  1. 將Custom Vision 模型導出成linux 容器;在本地build/run,完成本地測試;

關於Custom Vision識別是否戴口罩的做法,請參照文章《AI 應用之Azure Custom Vision檢測是否戴口罩

主要注意如下兩個步驟:

創建項目時,Domains 選擇General,這個類型才能導出爲容器。

 

訓練完成後導出成容器,而不是發佈成API:

 

將導出的壓縮包下載到本地並解壓,得到如下文件:

 

 

在命令提示符裏運行如下命令:

注意,最後的空格+.

docker build -t <your image name> .

編譯過程視網絡情況可能會出現需要重試的情況。

編譯成功,可以通過 docker images 查看本地的鏡像文件。

 

執行如下命令,在本地運行容器:

其中第一個80是本地訪問端口,如果您安裝了IIS等佔用80端口的程序,則可以更換爲其他端口,例如81或82;

docker run -p 127.0.0.1:80:80 -d <your image name>

 

接下來在瀏覽器中訪問,驗證容器正常運行:

 

使用方式如下:

 

我們在Postman中測試如下:

 

點擊Select Files 上傳一張圖片,結果如下圖:

 

案例中Custom Vision 中使用的示例圖片,來着於互聯網:

https://videos.51azure.cloud/files/Custom-Vision.zip

注意,如果您沒有Global賬號可以申請試用賬號後開通Custom Vision 已完成本項目或在如下連接下載作者訓練好的 容器:

https://videos.51azure.cloud/files/SeanYuTestCustomVision.DockerFile.Linux.zip

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章