I used this on a raspberry pi for this kinetic sculpture: https://www.youtube.com/watch?v=6xAiKI6XswM
I was thankful that it worked on a variety of diverse faces, even masked somewhat.
That's pretty neat, how does it look like from the viewer's perspective?
Also what's the mechanism behind the turning? If I counted this right it would have to be like 48 servos which sounds expensive, but also is an interesting number because that's exactly 3 of those PCA 16 channel servo expansion boards...
During the protests two years ago, I built this little app that you can use to obscure faces when sharing pictures. It uses face-api-js as others have mentioned.
Why didn't you cherry pick an image where it covered everyone's face? The example has several people not obscured or have the dot not fully covering their face.
I'd like to understand the motivation behind your question.
Complaining about the unobscured faces would start the conversation about training data and its diminished inclusivity. But, your comment focused on the perception a person looking at the result might have, given the incomplete feature set of this software. I am having trouble imagining the sort of visitor xrd would disappoint with the imperfect image, that he should want to have retained, that wouldn't complain when noticing the gap him or herself during testing.
Usually when showing off a project it makes sense to show it working correctly. The first photo shows that the software doesn't work consistently which could give someone a bad first impression. It's not like the photo is in a section that is about its limitation, but in a section introducing the project.
If your face detection works 80% or 95% of the time, don't try and deceive me into thinking it's 100% accurate, only to leave me disappointed when I go through the effort of downloading/configuring/testing it and then find out it's worse that the solution I'm trying to replace.
Meaning the two pictures in the readme? The first is an image from Wikipedia, and the second is my face. If there is another image that is concerning, please let me know and I'll remove it and clean the history. I built this because I am uncomfortable sharing images of others without their consent (as happens all the time on social media) and also sharing my own childrens' faces, because I completely distrust the social media companies in particular.
I think the commenter meant why did you choose to show a non-perfect example of your software working? It missed a few faces in the black and white picture.
var cascadeurl = 'https://raw.githubusercontent.com/nenadmarkus/pico/c2e81f9d23cc11d1a612fd21e4f9de0921a5d0d9/rnt/cascades/facefinder';
var puplocurl = 'https://drone.nenadmarkus.com/data/blog-stuff/puploc.bin'
Is the model code? Or just data? Because if it’s just data and the library truly only needs 200 LOC to work with that model then it’s fair to say that it is a 200 LOC only library.
I can write a naive spell checker in a few dozen lines of Python, say 100 lines. I’ll need a dictionary file for it to be useful though. Would you claim my code is 100 lines or 50100 (assuming dict file has 50k words) lines?
HAAR Cascading based face detectors are subpar to neural-network based ones. It is better to just use TF.js and related face detector. These are faster and much more accurate.
While reading the post, it didn’t strike me as odd. I worked with small services wrapping ML models and 200 lines looks very slick and I don’t recall anyone considering weights as part of the code, and even the model training code is treated differently that the cliente code. Seems legit
I'm kind of surprised that the big guys who do image detection (like google) won't open source whatever algos they use to separate "moderate" content from "adult" content on their image search. It's not 100% but works pretty well in my experience.
I'm not saying it's correct, but my first thought would be that it would make it much easier for bad actors to come up with ways of getting around the algorithm.