From cf5c84fe1d592040a5bc50239714f4aada8a92a3 Mon Sep 17 00:00:00 2001 From: Sefik Ilkin Serengil Date: Tue, 10 May 2022 22:57:57 +0100 Subject: [PATCH] new model portfolio --- README.md | 2 +- icon/deepface-wrapped-models.png | Bin 266827 -> 0 bytes icon/detector-portfolio.png | Bin 221148 -> 0 bytes icon/model-portfolio-v8.jpg | Bin 0 -> 221088 bytes 4 files changed, 1 insertion(+), 1 deletion(-) delete mode 100644 icon/deepface-wrapped-models.png delete mode 100644 icon/detector-portfolio.png create mode 100644 icon/model-portfolio-v8.jpg diff --git a/README.md b/README.md index 897e23e..b857409 100644 --- a/README.md +++ b/README.md @@ -72,7 +72,7 @@ result = DeepFace.verify(img1_path = "img1.jpg", img2_path = "img2.jpg", model_n df = DeepFace.find(img_path = "img1.jpg", db_path = "C:/workspace/my_db", model_name = models[1]) ``` -

+

FaceNet, VGG-Face, ArcFace and Dlib are [overperforming](https://youtu.be/i_MOwvhbLdI) ones based on experiments. You can find out the scores of those models below on both [Labeled Faces in the Wild](https://sefiks.com/2020/08/27/labeled-faces-in-the-wild-for-face-recognition/) and YouTube Faces in the Wild data sets declared by its creators. diff --git a/icon/deepface-wrapped-models.png b/icon/deepface-wrapped-models.png deleted file mode 100644 index 5c955268b7e98161d687a67a92c398d6e36026b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 266827 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