diff --git a/README.md b/README.md index 0612f2d..8bca3d7 100644 --- a/README.md +++ b/README.md @@ -24,6 +24,8 @@ facenet_result = DeepFace.verify("img1.jpg", "img2.jpg", model_name = "Facenet") openface_result = DeepFace.verify("img1.jpg", "img2.jpg", model_name = "OpenFace") ``` +VGG-Face has the highest accuracy score but it is not convenient for real time studies because of its complex structure. Facenet is a complex model as well. On the other hand, OpenFace has a close accuracy score but it performs the fastest. That's why, OpenFace is much more convenient for real time studies. + ## Similarity These models actually find the vector embeddings of faces. Decision of verification is based on the distance between vectors. Distance could be found by different metrics such as [`Cosine Similarity`](https://sefiks.com/2018/08/13/cosine-similarity-in-machine-learning/), Euclidean Distance and L2 form. The default configuration finds the **cosine similarity**. You can alternatively set the similarity metric while verification as demostratred below. @@ -34,8 +36,6 @@ result = DeepFace.verify("img1.jpg", "img2.jpg", model_name = "VGG-Face", distan result = DeepFace.verify("img1.jpg", "img2.jpg", model_name = "VGG-Face", distance_metric = "euclidean_l2") ``` -VGG-Face has the highest accuracy score but it is not convenient for real time studies because of its complex structure. Facenet is a complex model as well. On the other hand, OpenFace has a close accuracy score but it performs the fastest. That's why, OpenFace is much more convenient for real time studies. - ## Verification Verification function returns a tuple including boolean verification result, distance between two faces and max threshold to identify.