共用方式為


指定臉部辨識模式

警告

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

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

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

模型相容性

Azure AI 臉部辨識服務有四個辨識模式可用。 我們將持續支援 recognition_01 (於 2017 年發行)、recognition_02 (於 2019 年發行) 和 recognition_03 (於 2020 年發佈) 模式,以確保客戶在使用透過這些模式所建立 FaceListPersonGroup 時的回溯相容性。 FaceListPersonGroup 一律會使用建立時所使用的辨識模式,並在新增臉部時,將這些新的臉部與此模式建立關聯。 建立之後,即無法變更此模式,客戶必須使用對應的辨識模式和對應的 FaceListPersonGroup

您可以在方便時移至更新的辨識模式;不過,您將需要使用所選辨識模式來建立新的 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?detectionModel={detectionModel}&recognitionModel={recognitionModel}&returnFaceId={returnFaceId}&returnFaceAttributes={returnFaceAttributes}&returnFaceLandmarks={returnFaceLandmarks}&returnRecognitionModel={returnRecognitionModel}&faceIdTimeToLive={faceIdTimeToLive}

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

string imageUrl = "https://raw.githubusercontent.com/Azure-Samples/cognitive-services-sample-data-files/master/Face/images/detection1.jpg";
var response = await faceClient.DetectAsync(new Uri(imageUrl), FaceDetectionModel.Detection03, FaceRecognitionModel.Recognition04, returnFaceId: true, returnFaceLandmarks: true, returnRecognitionModel: true);
var faces = response.Value;

注意

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

使用指定的模式識別臉部

臉部辨識服務可以從影像擷取臉部資料,並將其與 Person 物件建立關聯 (例如透過新增人員群組人員臉部 API 呼叫),也可以將多個 Person 物件同時儲存在 PersonGroup 中。 然後,您可以與 PersonGroup 比較新的臉部 (透過識別人員群組呼叫),也可以識別該群組中的相符人員。

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

請參閱下列 .NET 程式碼範例。

// Create an empty PersonGroup with "recognition_04" model
string personGroupId = "mypersongroupid";
using (var content = new ByteArrayContent(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(new Dictionary<string, object> { ["name"] = "My Person Group Name", ["recognitionModel"] = "recognition_04" }))))
{
    content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
    await httpClient.PutAsync($"{ENDPOINT}/face/v1.0/persongroups/{personGroupId}", content);
}

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

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

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

使用指定的模式尋找類似臉部

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

請參閱下列 .NET 程式碼範例。

using (var content = new ByteArrayContent(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(new Dictionary<string, object> { ["name"] = "My face collection", ["recognitionModel"] = "recognition_04" }))))
{
    content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
    await httpClient.PutAsync($"{ENDPOINT}/face/v1.0/facelists/{faceListId}", content);
}

這段程式碼會建立稱為 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. 在所有四個 PersonGroup 上使用識別人員群組進行測試,並比較結果。

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

下一步

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