建立資料集並將圖片索引至該資料集後,您可以利用人臉搜尋功能從資料集中檢索與指定圖片最相似的前N張圖片,此功能可應用於VIP使用者的身份識別等情境。
應用情境
智能安防監控
結合Face Service技術,在工廠、學校、商場、餐廳等人流密集的場所進行監控,對人流進行自動統計、識別和追蹤,同時標記存在安全隱患的行為及地區,並發出警示提醒,加強資訊化安全管理,降低人工監督成本。
工廠安全生產
提供軟硬結合的安全生產監控方案,基於廠區、車間內網路攝影機採集的映像,識別是否有陌生人闖入,減少安全隱患。
刷臉閘機通行
將Face Service功能整合到閘機中,快速錄入人臉資訊,建立安全可靠的人臉庫,使用者刷臉通行,解決使用者忘帶工卡、盜刷等問題,實現企業、商業、住宅等多情境門禁通行。
智慧人臉考勤
提供移動考勤、網路攝影機無感知考勤、一體機考勤三種方案,實現1秒內快速搜尋使用者最相似的人臉,確保簽到識別準確性,有效防止代打卡等作弊行為,增強企業安全管理。
前提條件
已通過綁定方式(CreateBinding - 建立綁定任務)或者主動索引方式(IndexFileMeta - 檔案元資訊建立索引或者批量檔案元資訊建立索引)將待比較的圖片索引到資料集(CreateDataset - 建立資料集)中。
同一個人物在媒體集中的圖片必須大於或等於2張,並且至少有2張符合如下標準的高清人臉圖片:
人臉尺寸大於75×75像素。
人臉的偏轉角HeadPose的三個子項的絕對值均小於30°。
人臉的品質FaceQuality大於0.8。
已建立MNS隊列。具體操作,請參見隊列使用手冊。
說明本文以通過輕量訊息佇列(原MNS)的Python SDK擷取任務資訊通知為例。更多擷取任務資訊的方式,請參見非同步任務處理。
步驟一:上傳檔案
請使用OSS管理主控台將需要對比的照片上傳至已綁定的bucket。

步驟二:向照片集中添加照片
使用Intelligent Media Management控制台,將您OSS中儲存的照片添加到資料集中以構建照片庫,具體操作過程如下:


也可以使用批量檔案元資訊建立索引介面,向資料集中批量寫入人臉照片中的資訊。寫入照片資訊的過程為非同步進行,您可以使用設定Notification訊息通知參數來擷取任務資訊。
步驟三:建立相似人臉搜尋任務
您可以調用CreateFacesSearchingTask - 圖片人臉搜尋介面搜尋與指定圖片中最大的人臉最相似的N張照片。如下以搜尋資料集test-dataset中,與OSS地址為oss://test-bucket/test-object.jpg的圖片相似的圖片為例。
請求樣本
參數TopicName為MNS主題名稱,本文以tf-test-mns-queue為例。
參數MaxResults為返回的相似圖片數量,非必填參數,預設值為5,取值範圍為0~100。
{
"ProjectName": "test-project",
"DatasetName": "test-dataset",
"Sources": [{"URI": "oss://test-bucket/test-object.jpg"}],
"Notification": {"MNS": {"TopicName": "tf-test-mns-topic"}},
"MaxResult": 100
}返回樣本
{
"TaskId": "CreateFacesSearchingTask-dedf1bd9-7edc-4d16-97f2-bbb2a4fc****",
"RequestId": "BB9C38A3-BB7A-53B7-A168-6DBC1CF6****",
"EventId": "0DA-1TAZO4ClNnKbn4Ungls8SOk****"
}返回如上所示的樣本資訊,表示相似人臉圖片搜尋任務建立成功。
範例程式碼
步驟四:查看相似人臉搜尋結果
相似人臉圖片搜尋任務建立成功後,您可以通過MNS服務擷取任務資訊。如下以通過Python SDK擷取任務資訊為例。更多資訊,請參見步驟四:接收和刪除訊息。
在sample目錄中執行以下命令。
python recvdelmessage.py tf-test-mns-queue將控制台返回的結果JSON格式化,如下僅列舉Messege中content部分的內容。
{ "ProjectName": "test-project", "DatasetName": "test-dataset", "RequestId": "BB9C38A3-BB7A-53B7-A168-6DBC1CF6****", "StartTime": "2023-01-04T05:08:28.582Z", "EndTime": "2023-01-04T05:08:28.785Z", "UserData": "", "TaskType": "FacesSearching", "TaskId": "CreateFacesSearchingTask-dedf1bd9-7edc-4d16-97f2-bbb2a4fc****", "Status": "Succeeded", "Code": "", // Code為空白表示處理成功。 "Message": "Success", "SimilarFaces": [ { "URI": "oss://test-bucket/test-object.jpg", "Boundary": { "Width": 109, "Height": 150, "Left": 69, "Top": 49 }, // 相似人臉列表。 "SimilarFaces": [ { "URI": "oss://test-bucket/test-object-1.jpg", "FigureId": "4cacbb71-52fd-4d3f-9d14-0840fecee0bf", "Similarity": 0.73321015 }, { "URI": "oss://test-bucket/test-object-2.jpg", "FigureId": "7a4cd08d-bcd0-4bc4-93f4-1291075819cf", "Similarity": 0.77035695 }, { "URI": "oss://test-bucket/test-object-3.jpg", "FigureId": "da920124-410a-4493-9fd3-1a3b366dca86", "Similarity": 0.9836307 } ] } ] }說明訊息內容顯示,在資料集test-dataset中,與查詢圖片中的人臉相似的有以下三張圖片:
圖片1:OSS地址為oss://test-bucket/test-object-1.jpg,圖片中的人臉與查詢圖片的人臉相似性為0.73321015。
圖片2:OSS地址為oss://test-bucket/test-object-2.jpg,圖片中的人臉與查詢圖片的人臉相似性為0.77035695。
圖片3:OSS地址為oss://test-bucket/test-object-3.jpg,圖片中的人臉與查詢圖片的人臉相似性為0.9836307。