此範例架構顯示製造中物聯網(IoT)電腦視覺的端對端方法。
架構
資料流程
- IoT Edge 自訂模組會擷取即時影片串流、將其細分為畫面,以及對影像資料執行推斷,以判斷事件是否已發生。
- 自訂模組也會使用 Azure 儲存體 SDK 方法或 Blob API,將原始影片檔案上傳至Azure 儲存體,做為原始媒體存放區。
- 自訂模組會將推斷結果和中繼資料傳送至Azure IoT 中樞,做為雙向通訊的中央訊息中樞。
- Azure Logic Apps 會監視有關事件事件的訊息IoT 中樞。 Logic Apps 會將推斷結果和中繼資料路由傳送至 Microsoft Dataverse 以供儲存。
- 發生事件時,Logic Apps 會將 SMS 和電子郵件通知傳送給網站工程師。 網站工程師會使用以 Power Apps 為基礎的行動應用程式來確認並解決事件。
- Power Apps 會從 Dataverse 提取推斷結果和中繼資料,並從 Blob 儲存體提取原始影片檔案,以顯示事件的相關資訊。 Power Apps 會使用網站工程師所提供的事件解決方案來更新 Dataverse。 此步驟可作為模型重新定型用途的人工迴圈驗證。
- Azure Data Factory 是資料協調器,可從原始媒體存放區擷取原始影片檔案,並從 Dataverse 取得對應的推斷結果和中繼資料。
- Data Factory 會將原始影片檔案加上中繼資料儲存在 Azure Data Lake 中,以作為稽核用途的視訊封存。
- Data Factory 會將原始影片檔案分成畫面、將推斷結果轉換成標籤,並將資料上傳至 Blob 儲存體,做為 ML 資料存放區。
- 模型程式碼的變更會自動觸發 Azure Pipelines 模型協調器管線,操作員也可以手動觸發。 程式碼變更也會在 Azure 機器學習中啟動 ML 模型定型和驗證程式。
- Azure 機器學習會從 ML 資料存放區驗證資料,並將所需的資料集複製到 Azure 進階版 Blob 儲存體,以開始定型模型。 此效能層提供資料快取,以加快模型定型的速度。
- Azure 機器學習會使用進階版資料快取中的資料集來定型模型、驗證定型模型的效能、針對新定型的模型進行評分,並將模型註冊至 Azure 機器學習登錄。
- Azure Pipelines 模型協調器會檢閱新定型 ML 模型的效能,並判斷其是否優於先前的模型。 如果新模型執行得更好,管線會從 Azure 機器學習下載模型,並建置新版本的 ML 推斷模組,以在 Azure Container Registry 中發佈。
- 當新的 ML 推斷模組準備就緒時,Azure Pipelines 會將模組容器從 Container Registry 部署到 IoT 中樞 中的 IoT Edge 模組。
- IoT 中樞使用新的 ML 推斷模組更新 IoT Edge 裝置。
元件
- Azure IoT Edge 服務會在本機分析裝置資料,以將較少的資料傳送至雲端、快速回應事件,以及在低連線情況下運作。 IoT Edge ML 模組可以從串流影片資料擷取可採取動作的深入解析。
- Azure IoT 中樞 是受控服務,可在數百萬個 IoT 裝置與雲端式後端之間進行可靠且安全的雙向通訊。 IoT 中樞提供個別裝置驗證、訊息路由、與其他 Azure 服務整合,以及控制及設定 IoT 裝置的管理功能。
- Azure Logic Apps 是無伺服器雲端服務,可用來建立和執行整合應用程式、資料、服務和系統的自動化工作流程。 開發人員可以使用視覺化設計工具來排程及協調一般工作工作流程。 Logic Apps 具有 許多熱門雲端服務、內部部署產品和其他軟體即服務 (SaaS) 應用程式的連接器 。 在此解決方案中,Logic Apps 會執行自動化通知工作流程,將 SMS 和電子郵件警示傳送給網站工程師。
- Power Apps 是一種資料平臺和一套應用程式、服務和連接器。 它可作為快速的應用程式開發環境。 基礎資料平臺是 Microsoft Dataverse。
- Dataverse 是 Power Apps 的雲端式儲存平臺。 Dataverse 支援人為迴圈通知,並儲存與 MLOps 資料管線相關聯的中繼資料。
- Azure Blob 儲存體 是非結構化資料的可調整且安全的物件儲存體。 您可以將它用於封存、資料湖、高效能運算、機器學習和雲端原生工作負載。 在此解決方案中,Blob 儲存體會提供 ML 資料存放區的本機資料存放區,以及用於定型 ML 模型的進階版資料快取。 Blob 儲存體的進階層適用于需要快速回應時間和高交易速率的工作負載,例如此範例中的人為迴圈影片標籤。
- Data Lake 儲存體 是一項可大幅調整且安全的儲存體服務,適用于高效能分析工作負載。 資料通常來自多個異質來源,而且可以結構化、半結構化或非結構化。 Azure Data Lake 儲存體 Gen2 結合了 Azure Data Lake 儲存體 Gen1 功能與 Blob 儲存體,並提供檔案系統語意、檔案層級安全性和規模。 它也提供 Blob 儲存體的階層式儲存體、高可用性和災害復原功能。 在此解決方案中,Data Lake 儲存體提供原始影片檔案和中繼資料的封存影片存放區。
- Azure Data Factory 是適用于資料整合和轉換工作流程的混合式、完全受控無伺服器解決方案。 它提供無程式碼 UI 和便於使用的監視面板。 Azure Data Factory 會使用管線進行資料移動。 對應資料流程會執行各種轉換工作,例如擷取、轉換和載入 (ETL) 和擷取、載入和轉換 (ELT)。 在此範例中,Data Factory 會將 ETL 管線中的資料協調至推斷資料,以供重新定型之用。
- Azure 機器學習 是企業級機器學習服務,可快速建置和部署模型。 它提供所有技能層級的使用者,具有低程式碼設計工具、自動化機器學習,以及支援各種 IDE 的託管 Jupyter Notebook 環境。
- Azure Pipelines 是 Azure DevOps 小組型開發人員服務的一部分 ,會建立持續整合 (CI) 和持續部署 (CD) 管線。 在此範例中,Azure Pipelines 模型協調器會驗證 ML 程式碼、觸發無伺服器工作管線、比較 ML 模型,以及建置推斷容器。
- Container Registry 會建立和管理 Docker 登錄 ,以建置、儲存和管理 Docker 容器映射,包括容器化 ML 模型。
- Azure 監視器 會從 Azure 資源收集遙測資料,讓小組可以主動找出問題,並將效能和可靠性最大化。
替代項目
您可以將Azure Blob 儲存體模組部署到 IoT Edge 裝置,而不是使用資料管線將視訊串流分解成影像畫面。 推斷模組接著會將推斷的圖像畫面格上傳至邊緣裝置上的儲存模組。 儲存體模組會決定何時將框架直接上傳至 ML 資料存放區。 這種方法的優點是它會從資料管線中移除步驟。 取捨是邊緣裝置與Azure Blob 儲存體緊密結合。
針對模型協調流程,您可以使用 Azure Pipelines 或 Azure Data Factory。
- Azure Pipelines 的優點是其與 ML 模型程式碼的密切關係。 您可以透過 CI/CD 輕鬆地觸發定型管線,透過程式碼變更。
- Data Factory 的優點是每個管線都可以布建所需的計算資源。 Data Factory 不會保留 Azure Pipelines 代理程式來執行 ML 定型,這可能會使一般 CI/CD 流程變擁擠。
案例詳細資料
完全自動化的智慧工廠會使用人工智慧 (AI) 和機器學習 (ML) 來分析資料、執行系統,以及隨著時間改善程式。
在此範例中,相機會將影像傳送至執行 ML 模型的 Azure IoT Edge 裝置。 模型會計算推斷,並將可採取動作的輸出傳送至雲端以進行進一步處理。 人類干預是 ML 模型所擷取的情報的一部分。 ML 程式是訓練、測試、微調及驗證 ML 演算法的連續迴圈。
潛在的使用案例
製造程式在安全性和品質保證應用程式中使用 IoT 電腦視覺。 IoT 電腦視覺系統可以:
- 協助確保符合製造指導方針,例如適當的標籤。
- 識別製造缺陷,例如表面不平均。
- 藉由監視建築物或區域入口來增強安全性。
- 通過檢測個人防護設備(PPE)的使用和其他安全做法,維護工人安全。
考量
這些考慮會實作 Azure Well-Architected Framework 的支柱,這是一組指導原則,可用來改善工作負載的品質。 如需詳細資訊,請參閱 Microsoft Azure Well-Architected Framework 。
可用性
ML 型應用程式通常需要一組資源來進行定型,另一組資源用於服務。 訓練資源通常不需要高可用性,因為即時生產要求不會直接使用這些資源。 服務要求所需的資源必須具有高可用性。
Operations
此解決方案分為三個作業區域:
在 IoT 作業 中,邊緣裝置上的 ML 模型會使用來自 連線相機 的即時影像來推斷視訊畫面。 邊緣裝置也會將快取的視訊串流傳送至雲端儲存體,以用於稽核和模型重新定型。 在 ML 重新定型之後,Azure IoT 中樞使用新的 ML 推斷模組更新邊緣裝置。
MLOps 會使用 DevOps 做法來協調模型定型、測試和部署作業。 MLOps 生命週期管理會將使用 ML 模型進行複雜決策的程式自動化,或 將模型生產化 。 MLOps 的關鍵在於在建置、定型、評估及部署 ML 模型的小組之間緊密協調。
人為迴圈 作業會通知人員在自動化的某些步驟進行干預。 在人為迴圈交易中,背景工作會檢查和評估機器學習預測的結果。 人類干預會成為 ML 模型所擷取的智慧的一部分,並協助驗證模型。
下列人為角色是此解決方案的一部分:
月臺 工程師會收到 Logic Apps 傳送的事件通知,並手動驗證 ML 模型的結果或預測。 例如,月臺工程師可能會檢查模型預測的閥失敗。
資料標籤器 為資料集加上重新定型的標籤,以完成端對端解決方案的迴圈。 資料標記程式對於影像資料來說特別重要,這是透過演算法定型可靠模型的第一個步驟。 在此範例中,Azure Data Factory 會將影片畫面組織成正判和誤判群組,讓資料標籤器的工作更容易。
資料科學家 會使用加上標籤的資料集來定型演算法,以做出正確的實際預測。 資料科學家在 CI 程式中搭配 GitHub Actions 或 Azure Pipelines 使用 MLOps 來自動定型和驗證模型。 您可以手動觸發定型,或藉由簽入新的訓練腳本或資料來自動觸發定型。 資料科學家可在 Azure 機器學習 工作區 中 工作,以自動註冊、部署和管理模型。
IoT 工程師 會使用 Azure Pipelines 將容器中的 IoT Edge 模組 發佈 至 Container Registry。 工程師可以使用 CD 管線,視需要部署和調整基礎結構。
保管庫稽核員 會檢閱封存的視訊串流,以偵測異常、評估合規性,以及在模型預測發生問題時確認結果。
在此解決方案中,IoT 中樞從相機擷取遙測,並將計量傳送至 Azure 監視器,讓月臺工程師可以調查和疑難排解。 Azure 機器學習會將可觀察性計量和模型遙測傳送至 Azure 監視器,協助 IoT 工程師和資料科學家將作業優化。
效能
IoT 裝置的記憶體和處理能力有限,因此請務必限制傳送至裝置的模型容器大小。 請務必使用可進行模型推斷的 IoT 裝置,並在可接受的時間內產生結果。
為了優化定型模型的效能,此範例架構會使用 Azure 進階版 Blob 儲存體 。 此效能層級是針對需要快速回應時間和高交易速率的工作負載所設計,例如人工迴圈影片標籤案例。
效能考慮也適用于資料擷取管線。 Data Factory 藉由提供高效能且符合成本效益的解決方案,將資料移動最大化。
延展性
此解決方案中使用的大部分元件都是自動調整的受控服務。
IoT 應用程式的延展性取決於 IoT 中樞配額和節流 。 需要考慮的因素包括:
- 訊息的每日配額上限為 IoT 中樞。
- IoT 中樞 實例中已連線裝置的配額。
- 擷取和處理輸送量。
在 ML 中,延展性是指相應放大叢集,用來針對大型資料集定型模型。 延展性也可讓 ML 模型符合取用它的應用程式需求。 為了符合這些需求,ML 叢集必須在 CPU 和支援圖形處理單位 (GPU) 的節點上提供向外延展。
如需設計可調整解決方案的一般指引,請參閱 Azure 架構中心的效能效率檢查清單 。
安全性
安全性可提供針對蓄意攻擊和濫用寶貴資料和系統的保證。 如需詳細資訊,請參閱 安全性要素 概觀。
Dataverse 和其他 Azure 服務的存取管理可協助確保只有授權的使用者才能存取環境、資料和報表。 此解決方案會使用 Azure 金鑰保存庫來管理密碼和秘密。 儲存體會使用 客戶管理的金鑰 進行加密。
如需設計安全 IoT 解決方案的一般指引,請參閱 Azure 安全性檔案和 Azure IoT 參考架構 。
成本最佳化
成本優化是考慮如何減少不必要的費用,並提升營運效率。 如需詳細資訊,請參閱 成本優化要素 概觀。
一般而言,使用 Azure 定價計算機 來預估成本。 如需其他考慮,請參閱 成本優化 。
Azure 機器學習也會部署 Container Registry、Azure 儲存體和 Azure 金鑰保存庫服務,這會產生額外費用。 如需詳細資訊,請參閱 Azure 機器學習的運作方式:架構和概念 。
Azure 機器學習定價包括用來在雲端中定型模型之虛擬機器 (VM) 的費用。 如需每個 Azure 區域 Azure 機器學習和 VM 可用性的相關資訊,請參閱 依區域 提供的產品。
投稿人
本文由 Microsoft 維護。 原始投稿人如下。
主體作者:
- 威爾遜·李 |首席軟體工程師
下一步
- IoT 概念和Azure IoT 中樞
- 什麼是 Azure Logic Apps?
- 什麼是 Power Apps?
- Microsoft Power Apps 文件
- 什麼是 Microsoft Dataverse?
- Microsoft Dataverse 檔
- Azure Data Lake Storage Gen2 簡介
- 什麼是 Azure Data Factory?
- Azure Machine Learning 文件
- 什麼是 Azure DevOps?
- 什麼是 Azure Pipelines?
- Azure Container Registry 檔
- Azure 監視器概觀
- 適用于更安全工作場所的 Azure IoT
- Dow 化學使用邊緣的視覺 AI,透過 Azure 提升員工安全性和安全性
- Edge 物件偵測 GitHub 範例