HN user

bdamos

98 karma

http://bamos.github.io | http://twitter.com/brandondamos

Posts36
Comments21
View on HN
www.youtube.com 8y ago

[video] Superhuman AI for heads-up no-limit poker: Libratus beats top pros

bdamos
4pts0
github.com 9y ago

Show HN: A simple expression parser in C++ that uses Dijkstra's Shunting-yard

bdamos
2pts0
bamos.github.io 9y ago

Image Completion with Deep Learning in TensorFlow

bdamos
7pts0
bamos.github.io 10y ago

OpenFace 0.2.0: Higher accuracy and halved execution time

bdamos
3pts0
github.com 10y ago

Show HN: OpenFace – Face recognition with Google's FaceNet deep neural network

bdamos
41pts14
github.com 10y ago

Show HN: OpenFace: Face recognition with Google's FaceNet deep neural network

bdamos
10pts0
github.com 10y ago

Show HN: DreamArt: Combining Inceptionism/DeepDream and with neural style art

bdamos
1pts0
bamos.github.io 10y ago

Show HN: Girl – GitHub README link checker

bdamos
3pts3
github.com 11y ago

Show HN: My open source, minimal CS Conference Tracker

bdamos
19pts3
github.com 11y ago

Show HN: Haskell-driven, small-scale web analytics with minimal configuration

bdamos
5pts0
github.com 11y ago

Show HN: My reading list website

bdamos
2pts0
news.ycombinator.com 11y ago

Interest in an open-source Android library for image and video frame filtering?

bdamos
1pts0
derecho.elijah.cs.cmu.edu 11y ago

Show HN: ~400 broken links in the top 1000 GitHub projects

bdamos
10pts0
github.com 11y ago

Show HN: Girl: Check your GitHub READMEs for broken links

bdamos
5pts0
bamos.github.io 11y ago

Simple LaTeX business card template

bdamos
1pts0
bamos.github.io 11y ago

One-year GitHub streak

bdamos
2pts3
bamos.github.io 11y ago

Ranking the writing quality of text documents with a simple Python script

bdamos
4pts0
github.com 11y ago

Dotfiles with automatic screenshot generation

bdamos
1pts0
bamos.github.io 11y ago

Adding Similar Projects to a GitHub README with Python

bdamos
4pts0
github.com 11y ago

Show HN: Community-driven minimalist LaTeX templates

bdamos
7pts0
bamos.github.io 11y ago

Preventing passive voice in LaTeX documents

bdamos
2pts0
bamos.github.io 11y ago

Forcing passive voice in LaTeX documents

bdamos
3pts1
bamos.github.io 11y ago

Merging PDF's for printing by adding blank pages with Python

bdamos
1pts0
bamos.github.io 11y ago

Prefixed multi-hop SSH wildcard configurations

bdamos
1pts0
github.com 11y ago

Show HN: Dynamic malware analysis for the Android platform

bdamos
1pts0
github.com 11y ago

Show HN: Python-driven Resume/curriculum Vitae. YAML ⇒ Markdown and LaTeX

bdamos
1pts1
bamos.github.io 11y ago

Using network block device on Android

bdamos
2pts0
bamos.github.io 11y ago

Concluding my Adobe Research internship

bdamos
1pts0
github.com 11y ago

Show HN: Web analytics with Scala, Spark, and Parquet

bdamos
7pts0
github.com 11y ago

Show HN: [Adobe Research] Spark standalone cluster tasks with Puppet and Fabric

bdamos
2pts0

The argument isn't that you use OpenCV: OpenFace also uses OpenCV. However, I think you should target and present your program as being a program that uses face recognition, not as a face recognition program. You are using and not crediting here that your program uses existing, off-the-shelf face recognition functionality already in OpenCV: https://github.com/jwcrawley/uWho/blob/2823479d5abf9f8f2de21...

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.

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.

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.

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.

This depends on what you want to use face recognition for. Maybe I should say more clearly in the README who this project is for. I could have released trained classifiers on 10,000 celebrities, but I focused the projects towards providing an easy way to train new classifiers with small amounts of data. I think this direction allows for more people to use and benefit from the library.

For example, check out our YouTube video of a demo training a classifier in real-time with just 10 images per person at https://www.youtube.com/watch?v=LZJOTRkjZA4. This demo is included in the repo and the README has instructions on running it.

Also note that there is a distinction between training the neural network, which extracts the face representations, from using the features for tasks like clustering and classification.

Another reason for me is the cross-platform compatibility. With git, I'm able to synchronize passwords across OSX and Linux machines, and the features (even copying) work well on both platforms.

Good point, though isn't it extreme to say you wouldn't want to work with somebody based on this information?

This has been brought up in a lot of the other GitHub streak threads such as https://news.ycombinator.com/item?id=7309310 and https://news.ycombinator.com/item?id=6701384. See more links from my original post.

I included the following paragraph to try to address this question. I don't have much to add to it. The few minutes away from sometimes week-long vacations is negligible and worth the motivation to me.

I favor counting small commits as part of streak to better support external workloads and my personal life. I have traveled to over 10 cities over the past year with friends and family and am always able to find small commits to improve my projects in less than 5 minutes.

A lightweight alternate to this would be a script that emails you via mutt or another command-line email program in cron every day with the reply-to set to your bosses address:

mutt -s 'Daily status.' -e 'my_hdr Reply-To: bosses-address' your-address

Though some problems with this approach are: 1. Your emails would be prefixed with 'Re:' 2. Configuring mutt or other command-line email programs require some setup. 3. Your computer needs to be running when the cron job is set to execute.

Cool! For a slightly different scenario, do you think there's a clean way to use postman to manage larger bulk emails with similar and different paragraphs other than trying to edit paragraphs in CSV? Sometimes I use my small project (https://github.com/bamos/yaml-mailer) to bulk email 10s of people with more personalization in each message, and I'd be happy to switch if a cleaner solution exists.

Example scenario: I applied to PhD programs ~5-6 month ago and liked to send emails to faculty members at each school I applied to telling them I was interested in their work by sending nearly the same email to everybody with a slightly different portion for their work.