在集合中搜尋人臉 - Amazon Rekognition

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

在集合中搜尋人臉

Amazon Rekognition 可讓您使用輸入人臉來搜尋已儲存人臉集合中的相符人臉。首先,將偵測到的人臉相關資訊儲存在伺服器端容器 (稱為「集合」) 中。集合會儲存個別臉孔和使用者 (同一個人的多張臉孔)。將人臉會儲存為人臉向量,是人臉的數學表現法 (而非人臉的實際映像)。同一個人的不同圖像可用於在同一個集合中創建和存儲多個臉部向量。然後,您可以彙總同一個人的多個臉部向量來創建用戶向量。使用者矢量可以提供更高的人臉搜尋精度,並具有更強大的描述,包含不同程度的照明效果、銳利度、姿勢與外觀等。

建立集合後,您可以使用輸入人臉來搜尋集合中相符的使用者向量或人臉向量。與搜尋個別人臉向量相比,基於使用者向量進行搜尋可大幅提高準確度。您可以使用在映像、存放的影片和串流影片中偵測人臉,來搜尋已儲存的人臉向量。您可以使用在映像中偵測到的人臉來搜尋儲存的使用者向量。

若要存放人臉資訊,您需要執行以下操作:

  1. 建立集合-若要儲存臉部資訊,您必須先在帳戶的其中一個 AWS 區域建立 (CreateCollection) 臉部集合。當您呼叫 IndexFaces 操作時可指定此人臉集合。

  2. 索引臉孔-此IndexFaces作業會偵測影像中的臉部,擷取臉部向量,並將臉部向量儲存在集合中。您可以使用此操作來偵測映像中人臉,並將偵測到的人臉特徵的資訊儲存於集合中。此為以儲存體為基礎的 API 操作範例,因為該操作會在伺服器中儲存資訊。

若要建立使用者並將多個人臉向量與使用者建立關聯,您需要執行下列操作:

  1. 建立使用者-您必須先使用建立使用者CreateUser。您可以將同一人物的多個人臉向量彙總至使用者向量,藉此提高人臉配對的精確度。您最多可以將 100 個人臉向量與一個使用者向量建立關聯。

  2. 關聯面-建立使用者之後,您可以透過AssociateFaces作業將現有的面向量新增至該使用者。人臉向量必須與使用者向量位於相同的集合中,才能與該使用者向量相關聯。

建立集合並儲存人臉和使用者向量之後,可以使用下列操作來搜尋人臉相符專案:

注意

集合存儲面向量,這是面的數學表示法。集合不會儲存臉部影像。

下圖會根據您使用集合的目標,顯示呼叫作業的順序:

要獲得與用戶向量匹配的最大精度:

圖表描述了在集合中存儲和搜索用戶面部向量,列出了諸如 CreateCollection、、 IndexFaces CreateUser AssociateFaces SearchUsersByImage、和 SearchUsers之類的操作。

對於與個別臉部向量進行高精度匹配:

圖表描述了在集合中存儲和搜索面孔,列出了諸如 CreateCollection,, IndexFaces StartFaceSearch CreateStreamProcessor SearchFacesByImage,和 SearchFaces之類的操作。

您可以在各種不同情況中使用集合。例如,您可以建立人臉集合,該集合透過使用 IndexFacesAssociateFaces 操作來儲存從掃描員工徽章映像和政府核發的 ID 中偵測到的人臉。當員工進入大樓時,將拍攝員工人臉的映像並傳送至 SearchUsersByImage 操作。如果臉部比對的相似性分數達到設定的目標 (例如 99%),即可驗證該員工身分。

管理集合

人臉集合是主要的 Amazon Rekognition 資源,每個您所建立的人臉集合都有一組專有的 Amazon Resource Name (ARN)。您可以在帳戶中的特定 AWS 區域中建立每個臉部集合。當建立集合時,將採用最新版的臉部偵測模型版本。如需詳細資訊,請參閱 模型版本控制

您可以對集合執行以下管理操作。

管理集合中的人臉

在您建立人臉集合後,可將人臉存入其中。Amazon Rekognition 將提供以下操作,供您管理集合中的人臉。

  • IndexFaces作業會偵測輸入影像 (JPEG 或 PNG) 中的臉孔,並將其新增至指定的臉部集合。對於在映像中偵測到的每個人臉傳回唯一的人臉 ID。存入臉部之後,便可以搜尋臉部集合來比對臉部。如需詳細資訊,請參閱 新增人臉到集合

  • ListFaces作業會列示集合中的面。如需詳細資訊,請參閱 新增人臉到集合

  • 此作DeleteFaces業會從集合中刪除面。如需詳細資訊,請參閱 删除集合中的人臉

管理集合中的使用者

儲存來自同一個人的多個人臉向量後,您可以將所有這些人臉向量關聯到一個使用者向量來提高準確性。您可以使用下列操作來管理使用者:

  • CreateUser-作業會使用提供的唯一使用者 ID 在集合中建立新使用者。

  • AssociateUsers-在用戶 ID 中添加 1-100 個唯一的面部識別碼。將至少一個人臉 ID 與使用者建立關聯後,可以搜尋收藏中的該使用者相符專案。

  • ListUsers-列出集合中的使用者。

  • DeleteUsers-使用提供的使用者 ID 從集合中刪除使用者。

  • DisassociateFaces-從用戶中刪除一個或多個面部 ID。

使用相似性閾值來關聯人臉

確保與使用者相關聯的人臉都來自同一個人很重要。為提供協助,此 UserMatchThreshold 參數可指定與至少包含一個 FaceIDUserID 相關聯的新人人臉所需的最小使用者相符可信度。這有助於確保 FaceIds 與右側 UserID 相關聯。此值的範圍介於 0-100 之間,預設值為 75。

使用指南 IndexFaces

以下是在常見案例中使用 IndexFaces 的指導。

關鍵或公共安全應用

  • IndexFaces使用每張影像中僅包含一張臉孔的影像進行呼叫,並將傳回的 Face ID 與影像主體的識別碼建立關聯。

  • 您可以在建立索引之DetectFaces前使用,以確認影像中只有一個面。如果偵測到多個人臉,請在檢閱只有一個人臉之後重新提交映像。這可防止不小心製作多個臉部的索引,以及將它們與同一個人建立關聯。

照片共享和社交媒體應用程式

  • 應該呼叫 IndexFaces,而不限制在使用案例中包含多個人臉的映像,例如家庭相冊。在這類情況下,您需要識別每張照片中的每一個人,並使用該資訊依其中呈現的人員將照片分組。

一般用法

  • 對同一個人之不同的映像 (尤其是具有不同人臉屬性 (人臉姿勢、人臉毛髮等等)) 進行索引,建立使用者,將不同人臉與使用者關聯,以改善比對品質。

  • 包含檢閱程序,以便可以使用正確的臉部識別符來為失敗的比對製作索引,來提高後續的臉部比對能力。

  • 如需映像品質的相關資訊,請參閱 人臉比較輸入映像的建議

在集合中搜尋人臉與使用者

在建立人臉集合並儲存人臉向量和/或使用者向量後,即可搜尋人臉集合來比對人臉。使用 Amazon Rekognition,您可以在符合的集合中搜尋人臉:

可使用 CompareFaces 操作將原始映像中的人臉與目標映像中的人臉進行比較。這項比對的範圍僅限於在目標映像中所偵測到的人臉。如需詳細資訊,請參閱比較映像中的人臉

下列清單中看到的各種搜尋操作會將人臉 (通過 FaceId 或輸入映像進行識別) 與指定人臉集合中儲存的所有人臉進行比較:

使用相似性臨界值來比對人臉

我們允許您透過提供相似性閾值作為輸入參數來控制所有搜尋作業 (CompareFacesSearchUsers、、、、SearchUsersByImage) 的結果。SearchFacesSearchFacesByImage

FaceMatchThreshold 作為 SearchFaces​ 與 SearchFacesByImage 的相似性閾值輸入屬性,會根據匹配的人臉相似度來控制傳回結果的數量。UserMatchThreshold 作為 SearchUsersSearchUsersByImage​ 的相似性閾值屬性,會根據匹配的使用者向量相似度來控制的傳回結果數量。臨界值屬性適 SimilarityThreshold 用於 CompareFaces

含低於臨界值之 Similarity 回應屬性值的回應不會傳回。請務必利用此閾值校正您的使用案例,因為其可決定您的相符結果包含多少錯誤肯定。這可控制您搜尋結果的回呼 (閾值越低,回呼越高)。

所有機器學習系統是機率性的。您應根據使用案例,在設定適當的相似性閾值時使用判斷。例如,如果您想要建立照片應用程式來辨識樣貌相似度家庭成員,您可以選擇較低的閾值 (例如 80%)。另一方面,對於許多強制執行法律使用案例,建議您使用 99% 或更高的臨界值,以降低意外辨識錯誤。

FaceMatchThresholdUserMatchThreshold 外,您還可以使用 Similarity 回應屬性作為降低意外辨識錯誤的方法。例如,您可以選擇使用較低閾值 (例如 80%) 來傳回更多結果。接著您可以使用回應屬性相似性 (相似性百分比),來縮小選擇範圍並篩選應用程式中適當的回應。同樣地,使用更高的相似度 (如 99% 或更高) 將會降低辨識錯誤的風險。