
使用Python語言調用零一萬物API實戰指南
dlib.face_recognition_model_v1('dlib_face_recognition_resnet_model_v1.dat')
獲取編碼的函數:
def encodings(img,face_locations,pose_predictor,face_encoder):
predictors = [pose_predictor(img, face_location) for face_location in face_locations]
return [np.array(face_encoder.compute_face_descriptor(img, predictor, 1)) for predictor in predictors]
還有一個預先訓練的 TensorFlow 模型,可用于提取圖像中人臉的編碼。兩種情況下使用的架構相同,但損失函數和訓練數據會發生變化。因此,從中返回的編碼向量將與之前的模型不同,但其大小為 128 維。
在這里,對于一個模型,我們只需要傳遞裁剪后的圖像,其中只有一張臉,因為它會檢測圖像中的臉,它只需讀取圖像并將圖像傳遞到網絡中并返回一個向量,即人臉編碼。
為了處理上述情況,我們需要從圖像中裁剪人臉并將其傳遞到模型中。要檢測和裁剪圖像中的臉,請使用上一篇博客中討論的任何一種方法。
為了加載模型…
def load_model(modelpath):
detection_graph = tf.Graph()
with detection_graph.as_default():
od_graph_def = tf.GraphDef()
with tf.gfile.GFile(modelpath, 'rb') as fid:
serialized_graph = fid.read()
od_graph_def.ParseFromString(serialized_graph)
tf.import_graph_def(od_graph_def, name='')
return detection_graph
計算嵌入:
def get_embedding(graph,img):
input_array = preprocess_input_img(img)
with graph.as_default():
with tf.Session() as sess:
images_placeholder = tf.get_default_graph().get_tensor_by_name("input:0")
embeddings = tf.get_default_graph().get_tensor_by_name("embeddings:0")
phase_train_placeholder = tf.get_default_graph().get_tensor_by_name("phase_train:0")
embedding_size = embeddings.get_shape()[1]
feed_dict = {images_placeholder: input_array, phase_train_placeholder: False}
embeddings = sess.run(embeddings, feed_dict=feed_dict)
return embeddings
需要傳遞模型圖和圖像(如果需要,可以傳遞預處理圖像)。
我們還可以根據機器容量一次傳遞多個圖像,以設置批處理大小。
它在 CPU 和 GPU 上都運行,而在 GPU 上運行速度更快。
比較這些模型,與 TensorFlow 模型相比,Dlib 簡單且在提取人臉嵌入的情況下復雜度較低。但在具有高計算能力的情況下,TF 模型表現良好。
人臉識別驗證服務【SKYBIOMETRY】是一種高效、靈活的面部識別解決方案,能夠集成到各種應用中。它支持面部檢測、面部識別和面部分組,適用于廣告、照片管理、安全認證等多個領域。
人臉檢測 API 能夠快速精準地檢測圖片中的人臉,并及時返回人臉位置,同時還會輸出人臉關鍵點坐標,而且它具備強大的能力,支持對圖片中多張人臉進行識別,可廣泛應用于多種場景。
Facecheck人臉搜索 是一個調查搜索引擎,允許您使用面部照片搜索互聯網。搜索結果將向您顯示互聯網上的網頁鏈接,我們在這些網頁中看到過這個人或看起來相似的人的面孔。
?人臉屬性 API 服務,可對人臉的諸多屬性進行精準分析,涵蓋年齡、性別、頭部朝向、情緒、顏值以及視線等方面的屬性。其能夠提供詳細且準確的人臉屬性信息,以便于在各種場景中實現多樣化的應用與需求。
人臉對比 API 可通過人臉比對操作,來精準判斷兩張人臉之間的相似程度,進而深入分析這兩張人臉屬于同一個人的可能性,能在諸多場景中提供高效且準確的人臉相似性判別服務。
原文鏈接:http://www.bimant.com/blog/extract-face-embeddings/