藉由使用 azure 服務,例如 電腦視覺 API 和 Azure Functions,公司就不需要管理個別伺服器,同時降低成本,並利用 Microsoft 透過 Azure AI 服務處理影像所開發的專業知識。 此範例案例特別針對影像處理使用案例。 如果您有不同的 AI 需求,請考慮完整的 Azure AI 服務套件。
架構
工作流程
此案例涵蓋 Web 或行動應用程式的後端元件。 整個案例的資料流程如下所示:
- 在 Blob 記憶體中新增檔案(影像上傳)會觸發 Azure 事件方格 中的事件。 上傳程式可以透過 Web 或行動應用程式進行協調。 或者,您可以將映像個別上傳至 Azure Blob 記憶體。
- 事件方格會傳送觸發 Azure 函式的通知。
- Azure Functions 會呼叫 Azure 電腦視覺 API 來分析新上傳的影像。 電腦視覺 透過 Azure Functions 剖析的 Blob URL 存取映像。
- Azure Functions 會在 Azure Cosmos DB 中保存 電腦視覺 API 回應。 此回應包含分析的結果,以及影像元數據。
- 結果可以取用並反映在 Web 或行動前端上。 請注意,此方法會擷取分類的結果,但不會擷取上傳的影像。
元件
- 電腦視覺 API 是 Azure AI 服務套件的一部分,可用來擷取每個映像的相關信息。
- Azure Functions 提供 Web 應用程式的後端 API。 此平臺也提供上傳影像的事件處理。
- Azure 事件方格 將新映射上傳至 Blob 記憶體時觸發事件。 接著會使用 Azure Functions 處理映像。
- Azure Blob 儲存體 會儲存上傳至 Web 應用程式的所有圖像檔,以及 Web 應用程式取用的任何靜態檔案。
- Azure Cosmos DB 會儲存每個上傳映像的相關元數據,包括來自 電腦視覺 API 的處理結果。
替代項目
- 自訂視覺 服務。 電腦視覺 API 會傳回一組分類法型類別。 如果您需要處理 電腦視覺 API 未傳回的資訊,請考慮 自訂視覺 服務,這可讓您建置自定義映射分類器。
- 認知搜尋 (先前稱為 Azure 搜尋服務)。 如果您的使用案例牽涉到查詢元數據以尋找符合特定準則的影像,請考慮使用認知搜尋。 目前處於預覽狀態, 認知搜尋 會順暢地整合此工作流程。
- 邏輯應用程式。 如果您不需要在將檔案即時新增至 Blob 時做出反應,您可能會考慮使用 Logic Apps。 邏輯應用程式,可檢查檔案是否已由週期觸發程式或滑動視窗觸發程序啟動。
案例詳細資料
此案例與需要處理映像的企業相關。
潛在的應用程式包括分類時尚網站的影像、分析保險索賠的文字和影像,或從遊戲螢幕快照瞭解遙測數據。 傳統上,公司必須開發機器學習模型的專業知識、定型模型,最後透過其自定義程序執行映像,以將數據從影像中取出。
潛在使用案例
此解決方案適用於零售、遊戲、金融和保險產業。 其他相關的使用案例包括:
分類時尚網站上的影像。 銷售人員可在平臺上上傳產品圖片以供銷售時使用影像分類。 然後,他們可以自動化相關的後續手動標記。 客戶也可以搜尋產品的視覺印象。
從遊戲螢幕快照分類遙測數據。 螢幕快照中的視頻遊戲分類正在演變成社交媒體中的相關問題,再加上計算機視覺。 例如,當 Twitch 串流機連續播放不同的遊戲時,他們可能會略過手動更新其串流資訊。 無法更新串流資訊可能會導致使用者搜尋中的串流分類錯誤,並可能導致內容建立者和串流平臺的潛在查看器遺失。 在引進新遊戲時,自定義模型路線有助於引進從這些遊戲偵測新影像的功能。
分類保險理賠的影像。 影像分類有助於縮短索賠處理和承銷的時間和成本。 它可以説明分析自然災害損壞、車輛損壞,以及識別住宅和商業財產。
考量
這些考量能實作 Azure Well-Architected Framework 的要素,其為一組指導原則,可以用來改善工作負載的品質。 如需詳細資訊,請參閱 Microsoft Azure Well-Architected Framework (部分機器翻譯)。
實作此解決方案時,請考慮下列幾點:
延展性
此範例案例中使用的大部分元件都是會自動調整的受控服務。 幾個值得注意的例外狀況:Azure Functions 最多有 200 個實例的限制。 如果您需要調整超過此限制,請考慮多個區域或應用程式方案。
您只能在適用於 NoSQL 的 Azure Cosmos DB 中布建 Azure Cosmos DB 來自動調整 。 如果您打算使用其他 API,請參閱在要求單位中估計需求的指導。 若要充分利用 Azure Cosmos DB 中的調整,請瞭解分割區索引鍵在 Azure Cosmos DB 中的運作方式。
NoSQL 資料庫經常交易一致性(就 CAP 定理而言),以取得可用性、延展性和數據分割。 在此範例案例中,會使用索引鍵/值數據模型,而且交易一致性很少需要,因為大部分作業都是依定義不可部分完成的。 您可以在 Azure 架構中心取得選擇正確資料存放區的其他指引。 如果您的實作需要高一致性,您可以在 Azure Cosmos DB 中選擇您的一致性層級 。
如需設計可調整解決方案的一般指引,請參閱 Azure 架構中心的效能效率檢查清單 。
安全性
安全性可提供保證,以避免刻意攻擊和濫用您寶貴的資料和系統。 如需詳細資訊,請參閱安全性要素的概觀。
Azure 資源的 受控識別可用來提供帳戶內部其他資源的存取權,然後指派給您的 Azure 函式。 只允許存取這些身分識別中的必要資源,以確保不會向您的函式公開任何額外專案(且可能向您的客戶公開)。
如需設計安全解決方案的一般指引,請參閱 Azure 安全性檔。
復原
此案例中的所有元件都會受到管理,因此在區域層級,它們都會自動復原。
如需設計復原解決方案的一般指引,請參閱 設計適用於 Azure 的復原應用程式。
成本最佳化
成本最佳化是關於考慮如何減少不必要的費用,並提升營運效率。 如需詳細資訊,請參閱成本最佳化要素的概觀。
若要探索執行此案例的成本,所有服務都會在成本計算機中預先設定。 若要查看特定使用案例的定價如何變更,請變更適當的變數以符合您預期的流量。
我們根據流量提供了三個範例成本配置檔(我們假設所有影像的大小都是 100 KB):
參與者
本文由 Microsoft 維護。 原始投稿人如下。
主要作者:
下一步
產品文件
- 什麼是電腦視覺?
- Azure 認知搜尋 中的 AI 擴充
- Azure Functions 簡介
- 什麼是 Azure 事件方格?
- Azure Blob 儲存體簡介
- 歡迎使用 Azure Cosmos DB
如需引導式學習路徑,請參閱:
- 在 Azure 中建置無伺服器 Web 應用程式
- 使用 自訂視覺 服務分類影像
- 使用 AI 來辨識影像中的物件,方法是使用 自訂視覺 服務
- 使用 自訂視覺 分類瀕危鳥類物種
- 使用 Microsoft 自訂視覺服務分類影像
- 使用 自訂視覺 服務偵測影像中的物件
在生產環境中部署此範例案例之前,請先檢閱優化 Azure Functions 效能和可靠性的建議做法。