Azure 上的映像分類

Blob 儲存體
電腦視覺
Cosmos DB
事件方格
函式

此案例與需要處理影像的企業有關。

潛在的應用程式包含分類潮流網站的映像、分析保險理賠的文字和映像,或了解來自遊戲螢幕擷取畫面的遙測資料。 在過去,公司需要開發機器學習服務模型的專業知識、定型模型,最終透過其自訂程序執行映像,以取得映像中的資料。

藉由使用 Azure 服務 (例如電腦視覺 API 和 Azure Functions),公司可以消除管理個別伺服器的需求,同時降低成本及利用 Microsoft 透過認知服務針對影像處理所開發的專業知識。 這個範例案例特別說明映像處理的使用案例。 如果您有不同的 AI 需求,請考慮整套的認知服務

相關使用案例

其他相關的使用案例包括:

  • 分類潮流網站上的映像。
  • 分類來自遊戲螢幕擷取畫面的遙測資料。
  • 分類保險索賠的影像。

架構

影像分類的架構

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

  1. 使用 Azure Functions 建置 API 層。 這些 API 可讓應用程式上傳映像,並且從 Cosmos DB 擷取資料。
  2. 透過 API 呼叫來上傳映像時,映像會儲存在 Blob 儲存體。
  3. 將新檔案新增至 Blob 儲存體,會觸發事件方格通知傳送至 Azure Function。
  4. Azure Functions 會將新上傳檔案的連結傳送至電腦視覺 API 以進行分析。
  5. 一旦資料從電腦視覺 API 傳回,Azure Functions 會在 Cosmos DB 中製作輸入項,一併保存影像中繼資料與分析結果。

單元

  • 電腦視覺 API 是認知服務套件的一部分,用來擷取每個影像的資訊。
  • Azure Functions 提供 Web 應用程式的後端 API,以及已上傳影像的事件處理。
  • 事件方格會在新影像上傳至 Blob 儲存體時觸發事件。 然後使用 Azure functions 處理映像。
  • Blob 儲存體會儲存上傳至 Web 應用程式的所有影像檔案,以及 Web 應用程式取用的任何靜態檔案。
  • Cosmos DB 會儲存每個已上傳影像的中繼資料,包括從電腦視覺 API 處理的結果。

替代方案

  • 自訂視覺服務。 電腦視覺 API 會傳回一組分類法型分類。 如果您需要處理並非由電腦視覺 API 所傳回的資訊,請考慮自訂視覺服務,它可讓您建置自訂映像分類器。
  • 認知搜尋 (先前的 Azure 搜尋) 。 如果您的使用案例牽涉到查詢中繼資料來尋找符合特定準則的影像,請考慮使用認知搜尋。 認知搜尋 (目前處於預覽狀態) 與此工作流程緊密整合。
  • Logic Apps。 如果您不需要即時回應將檔案新增至 blob,則可以考慮使用 Logic Apps。 邏輯應用程式,可檢查已新增的檔案是否可能由週期性觸發程式 或滑動 windows 觸發程式啟動。

考量

延展性

此範例案例中使用的大部分元件都是會自動調整的受控服務。 有幾個值得注意的例外狀況: Azure Functions 的最大值為200的實例。 如果您需要調整超過此上限,請考慮多個區域或應用程式方案。

您只能將 Cosmos DB 布建至 SQL API 的自動調整。 如果您打算使用其他 Api,請參閱有關評估需求的指引,請參閱檔中的 要求單位 。 若要充分利用 Cosmos DB 的調整,請瞭解分割區索引在 Cosmos DB 中的運作方式。

NoSQL 資料庫會經常交換可用性、延展性及分割區的一致性 (CAP 定理的概念)。 在此範例案例中,會使用索引鍵-值資料模型,由於大部分作業定義為不可部分完成,所以不太需要交易一致性。 選擇正確的資料存放區的額外指引可於 Azure 架構中心找到。 如果您的執行需要高度一致性,您可以在 Cosmos DB 中選擇您的一致性層級

如需設計可調整解決方案的一般指引,請參閱 Azure 架構中心中的 效能效率檢查清單

安全性

Azure 茲玵的受控識別是用來提供帳戶內部其他資源的存取權,然後指派給您的 Azure Functions。 只允許以這些身分識別存取必要資源,確保沒有其他項目公開到您的函式 (而且可能公開給您的客戶)。

如需設計安全解決方案的一般指引,請參閱 Azure 安全性檔案

災害復原

此案例中的所有元件都是受控元件,所以它們在區域層級都會自動復原。

如需設計彈性解決方案的一般指引,請參閱為 Azure 設計有彈性的應用程式

定價

為了探索執行此案例的成本,所有服務會在成本計算機中預先設定。 若要查看價格如何針對您的特定使用案例而變更,請變更適當的變數,以符合您預期的流量。

我們根據流量 (假設所有映像的大小是 100 kb),提供了三個範例成本設定檔:

  • 小型:這個定價範例適用於每月處理 5000 個映像。
  • 中型:這個定價範例適用於每月處理 500,000 個映像。
  • 大型:這個定價範例適用於每月處理 5,000 萬個映像。

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

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