Azure 上的影像分類

Azure Blob 儲存體
Azure 電腦視覺
Azure Cosmos DB
Azure Event Grid
Azure Functions

藉由使用 azure 服務,例如 電腦視覺 API 和 Azure Functions,公司就不需要管理個別伺服器,同時降低成本,並利用 Microsoft 透過 Azure AI 服務處理影像所開發的專業知識。 此範例案例特別針對影像處理使用案例。 如果您有不同的 AI 需求,請考慮完整的 Azure AI 服務套件

架構

影像分類的架構

下載此架構的 Visio 檔案

工作流程

此案例涵蓋 Web 或行動應用程式的後端元件。 整個案例的資料流程如下所示:

  1. 在 Blob 記憶體中新增檔案(影像上傳)會觸發 Azure 事件方格 中的事件。 上傳程式可以透過 Web 或行動應用程式進行協調。 或者,您可以將映像個別上傳至 Azure Blob 記憶體。
  2. 事件方格會傳送觸發 Azure 函式的通知。
  3. Azure Functions 會呼叫 Azure 電腦視覺 API 來分析新上傳的影像。 電腦視覺 透過 Azure Functions 剖析的 Blob URL 存取映像。
  4. Azure Functions 會在 Azure Cosmos DB 中保存 電腦視覺 API 回應。 此回應包含分析的結果,以及影像元數據。
  5. 結果可以取用並反映在 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):

  • 小型:此定價範例與每月處理 < 5000 個影像相互關聯。
  • :此定價範例與每月處理 500,000 個影像相互關聯。
  • 大型:此定價範例與每月處理 5000 萬張影像相互關聯。

參與者

本文由 Microsoft 維護。 原始投稿人如下。

主要作者:

下一步

產品文件

如需引導式學習路徑,請參閱:

在生產環境中部署此範例案例之前,請先檢閱優化 Azure Functions 效能和可靠性的建議做法。

在 Azure 認知搜尋 中使用影像和自然語言處理的 AI 擴充