A single picture is surprisingly effective in recognizing that person in another photo. I've been playing around with a python wrapper on dlib's facial recognition [0] and it's astonishing how it can identify people from just one photo. It's not like other machine learning methods that include training a classifier or even fine tuning a classifier. It works by encoding the persons face to a 128 dimension vector and then using that for comparison. The accuracy from most methods is between 99.2% - 99.8%, but the problem is that the training samples are too easy and controlled. It's sensitive to lighting. Google's most recent paper [1] on Facenet found 99.63% on the easy Labeled Faces in the Wild (LFW) dataset, and an impressive 95.12% on the Youtube faces dataset, presumably a much more difficult dataset. [0] https://github.com/ageitgey/face_recognition [1] https://arxiv.org/abs/1503.03832
FaceNet: A Unified Embedding for Face Recognition and Clustering
Florian Schroff, Dmitry Kalenichenko, James Philbin
2015 · arXiv
- HN score
- 0
- Mentions
- 6
- Readers
- 6
- Months
- 6
From the abstract
Despite significant recent advances in the field of face recognition, implementing face verification and recognition efficiently at scale presents serious challenges to current approaches. In this paper we present a system, called FaceNet, that directly learns a mapping from face images to a compact Euclidean space where distances directly correspond to a measure of face similarity. Once this space has been produced, tasks such as face recognition, verification and clustering can be easily implemented using standard techniques with FaceNet embeddings as feature vectors. Our method uses a deep convolutional network trained to directly optimize the embedding itself, rather than an intermediate bottleneck layer as in previous deep learning approaches. To train, we use triplets of roughly aligned matching / non-matching face patches generated using a novel online triplet mining method. The benefit of our approach is much greater representational efficiency: we achieve state-of-the-art face recognition performance using only 128-bytes per face. On the widely used Labeled Faces in the Wild (LFW) dataset, our system achieves a new record accuracy of 99.63%. On YouTube Faces DB it achieves 95.12%. Our system cuts the error rate in comparison to the best published result by 30% on both datasets. We also introduce the concept of harmonic embeddings, and a harmonic triplet loss, which describe different versions of face embeddings (produced by different networks) that are compatible to each other and allow for direct comparison between each other.
Metadata: arXiv. Abstracts retain their original authors’ rights.
In the conversation
Original HN comments, with labels from simple text rules. A label describes the whole comment and may miss context or irony. Read the discussion to make up your own mind. About the labels
6 selected excerpts · 6 total mentions
The authors didn't try very hard to solve the problem (although it's still slightly interesting). Many networks can detect if two never-before-seen objects are the same or different. Simple example is Koch's Siamese Neural Networks[1]. More useful example is Facenet[2], which can tell if two faces are the same or different, even if never trained on these specific faces. Facenet learns an n-dimensional embedding and similarity is estimated by euclidean distance. These are cool papers by the way. The Omniglot dataset[3] used in Koch is a sort of an "inverse MNIST". Omniglot has 20 examples each of 1600 different characters, vs MNIST's 60,000 examples of 10 different characters. [1] https://www.cs.cmu.edu/~rsalakhu/papers/oneshot1.pdf [2] https://arxiv.org/abs/1503.03832 [3] https://github.com/brendenlake/omniglot
They would probably use FaceNet[0] then, if they only want to detect faces, as that should give better results. [0] https://arxiv.org/abs/1503.03832
A single NN can predict more than one class of object. The ImageNet competition has 20,000 classes. There's also image segmentation as another poster has pointed to. In the case of FB face tagging, they'd have learn an embedding space for faces, and when a new image comes in they'd place it in the embedding space along with all the person's connections and find the nearest neighbors. See https://arxiv.org/abs/1503.03832 or the implementation https://cmusatyalab.github.io/openface/
The Google FaceNet and other similar system typically perform an approximate nearest neighbor search in a ~128 dimensional embedding of faces. Here is the paper for the reference: http://arxiv.org/pdf/1503.03832v3.pdf Also 70% accuracy is like really really bad. Here are results from MegaFace Challenge, which involved identifying face in presence of Million distractors: http://megaface.cs.washington.edu/results/fgnetresults.html
I am not sure this works or that success rates like claimed are possible: > In 70 percent of cases, he was quite easily able to identify the people he had photographed. VKontakte has 280m+ accounts and is the second most popular website in Russia (https://en.wikipedia.org/wiki/VK_%28social_networking%29); the Russian population is ~144m. I can't find any decent estimate of how many Russians use VK, but it seems to be at least as dominate in Russia as Facebook in the USA, which is to say, ~71% (http://www.pewinternet.org/fact-sheets/social-networking-fac...). So from non-VK usage alone, he should be able to identify no more than 70-80 percent since you can't identify those…
Read the full comment
who aren't on VK in the first place. Facial recognition is a notoriously difficult machine learning task, and doing facial recognition on the VK population of St Petersburg (>249688 * 0.7 = >174781) will be challenging even with extremely good facial recognition. I don't know what this 'FindFace' application is, but I'll be charitable and assume it matches the 2015 state of the art, "Facenet: A unified embedding for face recognition and clustering" http://arxiv.org/abs/1503.03832 AFAIK, with a best-case binary classification accuracy of 99.63% (https://en.wikipedia.org/wiki/Accuracy_and_precision#In_bina...): 0.9963 = true positives + true negatives / true positives + true negatives + false negatives + true negatives If each person = 1 profile photo, then to classify a photo of someone there would be 1 true positive, 174781-1 true negatives, and unknown number of false negatives. 0.9963 = (1 + (174781-1)) / 1 + (174781-1) + x + (174781-1) 0.9963 = 174781 / 349561 + x 0.9963349561(1/174781) = x 1.9925943 = x There would be ~2 false negatives for every true positive. So there would be a <1/3 chance the photographed person is not on VK at all, and when one searched for them when they are in fact on VK, they would only show up <1/3 of the time (the other two-thirds their subway photograph would not 'match' when tested in the dataset and it would be a false negative, and it gets much worse if the face detection has one of the lower state of the art accuracies on the other datasets). So on net you would expect to turn up a person <07 * 0.3 = <0.21 of the time. (It gets worse if we take into account the false positives as well but that particular paper doesn't report precision.) There is no mention of any attempt to validate the findings, so I think for many of his results, he may have merely found a similar-looking person (possibly in some cases, look-alikes http://www.nytimes.com/2014/08/26/science/looking-at-twin-pe... https://en.wikipedia.org/wiki/Look-alike ). Look-alikes are far from identical twins, so it's not necessarily surprising that > Often, there was a striking difference between a person’s real look and the image they projected on their social network profile: a shy and grim young man might appear to be the life and soul of the party and a lover of extreme sports on his VKontakte page. This could be due to care in social presentation. Or it could just be that they're not the same person in the first place. (The photos are not that persuasive. I'm sure there's more than one grim young men with widow's peaks in St Petersburg, or young women with curly black hair.)
Keep following the thread.
More in PsychologyMore from the same topics.
Sparks of Artificial General Intelligence: Early experiments with GPT-4
Sébastien Bubeck, Varun Chandrasekaran, Ronen Eldan +11
Artificial intelligence (AI) researchers have been developing and refining large language models (LLMs) that exhibit remarkable capabilities across a variety of domains and tasks, challenging our understanding of learning and cognition.
Language Models are Few-Shot Learners
Tom B. Brown, Benjamin Mann, Nick Ryder +28
Recent work has demonstrated substantial gains on many NLP tasks and benchmarks by pre-training on a large corpus of text followed by fine-tuning on a specific task.
Understanding deep learning requires rethinking generalization
Chiyuan Zhang, Samy Bengio, Moritz Hardt +2
Despite their massive size, successful deep artificial neural networks can exhibit a remarkably small difference between training and test performance.
Talent vs Luck: the role of randomness in success and failure
A. Pluchino. A. E. Biondo, A. Rapisarda
The largely dominant meritocratic paradigm of highly competitive Western cultures is rooted on the belief that success is due mainly, if not exclusively, to personal qualities such as talent, intelligence, skills, efforts or risk taking.