分享方式:


指定臉部辨識模式

警告

臉部辨識服務存取受限於資格和使用準則,以支援我們的「負責任的 AI 原則」。 臉部辨識服務僅供 Microsoft 受管理的客戶和合作夥伴使用。 請使用臉部辨識受理表單以申請存取。 如需詳細資訊,請參閱臉部的有限存取權頁面。

本指南說明如何使用 Azure AI 臉部辨識服務,為臉部偵測、識別和相似性搜尋指定臉部辨識模式。

臉部服務會使用機器學習模型在影像中可見的人臉上執行作業。 我們會根據客戶的意見反應和研究的進展,持續改善這些模型的精確度,並透過更新模型來提供這些改善措施。 開發人員可以指定想要使用的臉部辨識模型版本,並選擇最適合其使用案例的模型。

模型相容性

Azure AI 臉部辨識服務有四個辨識模式可用。 這些模型 recognition_01 (2017年已發佈)、 recognition_02 (2019 年發行)和 recognition_03 (2020 年發行)持續支援,以確保使用 FaceLists 或 PersonGroup建立的這些模型的客戶回溯相容性。 FaceListPersonGroup 一律會使用建立的辨識模型,並在新增新臉部時與這個模型建立關聯。 建立之後,就無法變更此情況,而且客戶需要使用對應的 FaceList 或 PersonGroup 的對應辨識模型。

您可以在方便時移至更新的辨識模式;不過,您將需要使用所選辨識模式來建立新的 FaceList 和 PersonGroup。

recognition_04 模式 (於 2021 年發佈) 是目前可用的最精確模式。 如果您是新客戶,建議使用此模式。 Recognition_04提供相似度比較和人員比對比較的改善精確度。 Recognition_04 可提高戴口罩 (外科口罩、N95 口罩、布口罩) 其已註冊使用者的辨識度。 現在您可以建立安全順暢的使用者體驗,這些體驗會使用最新的 detection_03 模式偵測已註冊的使用者是否正戴著口罩。 然後,您可以使用最新的 recognition_04 模型來辨識其身分識別。 每個模式會彼此獨立運作,針對一個模式設定的信賴等級閾值不得與其他辨識模式進行比較。

請繼續閱讀以了解如何在不同的臉部作業中指定選取的模式,同時避免模式衝突。 如果您是進階使用者,而且想要判斷是否應該切換至最新模式,請跳至評估不同的模式一節。 您可以使用目前的資料集來評估新的模型並比較結果。

必要條件

您應該熟悉 AI 臉部偵測和識別的概念。 如果不熟悉,請先參閱下列指南:

使用指定的模型偵測臉部

臉部偵測會識別人臉的視覺地標,並尋找其週框方塊位置。 它也會擷取臉部的特徵,並暫存最多 24 小時以用於識別。 所有這些資訊會構成一個臉部表示。

擷取臉部特徵時會使用辨識模式,因此您可以在執行偵測作業時指定模式版本。

使用 偵測 API 時,請使用 recognitionModel 參數指派模型版本。 可用的值為:

  • recognition_01
  • recognition_02
  • recognition_03
  • recognition_04

您可以選擇性地指定 returnRecognitionModel 參數 (預設為 false),指出是否應在回應中傳回 recognitionModel。 因此,偵測 REST API 的要求 URL 看起來會像這樣:

https://westus.api.cognitive.microsoft.com/face/v1.0/detect[?returnFaceId][&returnFaceLandmarks][&returnFaceAttributes][&recognitionModel][&returnRecognitionModel]&subscription-key=<Subscription key>

如果您使用用戶端程式庫,您可以傳遞代表版本的字串來指派 recognitionModel 的值。 如果您將其保留為未指派,則會使用 recognition_01 的預設模式版本。 請參閱 .NET 用戶端程式庫的下列程式碼範例。

string imageUrl = "https://news.microsoft.com/ceo/assets/photos/06_web.jpg";
var faces = await faceClient.Face.DetectWithUrlAsync(url: imageUrl, returnFaceId: true, returnFaceLandmarks: true, recognitionModel: "recognition_01", returnRecognitionModel: true);

注意

returnFaceId 參數必須設定為 true,才能在後續步驟中啟用臉部辨識案例。

使用指定的模型識別臉部

臉部服務可以從影像擷取臉部數據,並將其與 Person 對象產生關聯(例如透過新增人員群組人員臉部 API 呼叫),而且多個 Person 物件可以一起儲存在 PersonGroup。 然後,可以將新的臉部與 PersonGroup 進行比較(使用 識別人員群組 通話),並識別該群組內的相符人員。

PersonGroup 應該對所有人員都有一個唯一的辨識模型,而且您可以在建立群組時使用 recognitionModel 參數來指定此模型建立人員群組建立大型人員群組)。 如果您未指定此參數,則會使用原始 recognition_01 模式。 群組一律會使用建立時所使用的辨識模式,並在其中新增臉部時,將這些新的臉部與此模式建立關聯。 群組建立之後,即無法變更此項目。 若要查看 PersonGroup 設定的模型,請使用 Get Person Group API 搭配 returnRecognitionModel 參數設定為 true

請參閱 .NET 用戶端程式庫的下列程式碼範例。

// Create an empty PersonGroup with "recognition_04" model
string personGroupId = "mypersongroupid";
await faceClient.PersonGroup.CreateAsync(personGroupId, "My Person Group Name", recognitionModel: "recognition_04");

在這段程式碼中,會建立具有識別碼 mypersongroupidPersonGroup,並將其設定為使用 recognition_04 模式以擷取臉部特徵。

相對地,您必須指定偵測臉部以與此 PersonGroup 進行比較時要使用的模型(透過 偵測 API)。 您使用的模式應一律與 PersonGroup 的設定一致;否則,作業將會因模式不相容而失敗。

識別人員群組 API 中沒有任何變更;您只需要在偵測中指定模型版本。

尋找具有指定模型的類似臉部

您也可以為相似性搜尋指定辨識模式。 使用建立臉部清單 API 或建立大型臉部清單建立 FaceList 時,您可以使用 指派模型版本recognitionModel。 如果您未指定此參數,預設會使用 recognition_01 模式。 FaceList 一律會使用建立時所使用的辨識模式,並在將臉部新增至清單時,將這些新的臉部與此模式建立關聯;建立之後,即無法變更此模式。 若要查看 FaceList 設定的模型,請使用 Get Face List API 搭配 returnRecognitionModel 參數設定為 true

請參閱 .NET 用戶端程式庫的下列程式碼範例。

await faceClient.FaceList.CreateAsync(faceListId, "My face collection", recognitionModel: "recognition_04");

這段程式碼會建立稱為 My face collectionFaceList,並使用 recognition_04 模式擷取特徵。 當您搜尋此 FaceList 以尋找與新偵測到的臉部類似的臉部時,該臉部必須使用recognition_04模型偵測到該臉部。 如上一節所示,此模式必須一致。

[尋找類似 API] 中沒有任何變更;您只會在偵測中指定模型版本。

使用指定的模型驗證臉部

驗證 臉部對臉部 API 會檢查兩個臉部是否屬於同一個人。 驗證 API 沒有任何辨識模式相關變更,但您只能比較使用相同模式偵測到的臉部。

評估不同模型

如果您想要比較不同辨識模式在您自己資料上的效能,您需要:

  1. 分別使用 recognition_01recognition_02recognition_03recognition_04 建立四個 PersonGroup
  2. 使用影像資料偵測臉部,並向這四個 PersonGroup 中的 Person 註冊。
  3. 使用訓練人員群組 API 將 PersonGroup 定型。
  4. 個 PersonGroups 上使用識別人員群組進行測試,並比較結果。

如果您通常會指定信賴等級閾值 (介於零和一之間的值,其決定模式的信賴度必須多高才能識別臉部),則可能需要針對不同模式使用不同的閾值。 一個模式的閾值不得與另一個模式共用,而且不一定會產生相同的結果。

下一步

在本文中,您已了解如何指定要搭配不同臉部辨識服務 API 使用的辨識模式。 接下來,請遵循快速入門開始進行臉部偵測。