bdamos

Joined 12 years ago

Karma
98
Submissions
60
Member since
May 1
http://bamos.github.io | http://twitter.com/brandondamos
View on Hacker News

Recent submissions

Comment · 10 years ago
Comment · 10 years ago
Comment · 10 years ago
OpenFace can optionally use a CUDA-enabled GPU, but it's not a requirement. The performance is almost real-time on a CPU. After detection (which varies depending on the input image size), the recognition takes less than a second. We have a few performance results on the FAQ at http://cmusatyalab.github.io/openface/faq/

I'm surprised (and skeptical) uWho can do detection+recognition at 15fps. I would expect face detection alone in 1280x720 images to be much slower than 15fps. On my 3.7GHz CPU with a 1050x1400px image, dlib's face detector takes about a second to run. This is also my experience with OpenCV's face detector, which I noticed your code is using. Also OpenCV's face detector returns many false positives, especially in videos. See this YouTube video for an experimental comparison: https://www.youtube.com/watch?v=LsK0hzcEyHI

Also, I think it's a strong claim that faces can't be generated from a perceptual hash. One property of perceptual hashes is that hashes that have a close hamming distance to each other are more similar (of the same person). I wouldn't be surprised if a model could successfully map perceptual hashes to faces given enough training data. I read a good paper about doing this (not specific to faces) but can't remember the reference now.

Edit: I just added some simple timing code to this sample OpenCV face detection project on my 3.60GHz machine: https://github.com/shantnu/FaceDetect On the John Lennon image from the OpenFace FAQ sized 1050x1400px, it takes 0.32 seconds, which is about 3fps. This is slightly quicker that dlib's detector on the same image, but it also returned a false positive.

Comment · 10 years ago
Comment · 11 years ago
Summary: OpenFace uses fundamentally different techniques (a deep neural network) for face recognition that OpenBR currently doesn't provide.

--

As our initial ROC curve on LFW's similarity benchmark in https://github.com/cmusatyalab/openface/blob/master/images/n... shows, this approach results in slightly improved performance. The best point is an FPR of 0.0 and TPR of 1.0 (top left). You can see today's state-of-the-art private systems in the top left, followed by open source systems, then by historical techniques OpenCV provides like Eigenfaces. The dashed line in the middle shows what randomly guessing would provide.

OpenBR is going in a great direction for reproducible and open face recognition. They provide a pipeline for preprocessing and representing faces, as well as doing similarity and classification tasks on the representations. The techniques from OpenFace could be integrated into OpenBR's pipeline.

Comment · 11 years ago
Thanks for the offer! Our original model `nn4.v1` should perform OK on your data if you're interested in trying to automatically predict people in new images.

Training new models is currently dominated by huge industry datasets, which currently have 100's of millions of images. My current dataset is from datasets available for research and has ~500k images.

Comment · 11 years ago
Yes, the processing pipeline first does face detection and a simple transformation to normalize all faces to 96x96 RGB pixels. Then each face is passed into the neural network to get a 128 dimensional representation on the unit hypersphere.

For a landscape, face detection would probably not find any faces and the neural network wouldn't be called.

And an image with multiple people will have many outputs: the bounding boxes of faces and associated representations.

Comment · 11 years ago

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton