
Face recognition in images and video with Python - zionsrogue
https://www.pyimagesearch.com/2018/06/18/face-recognition-with-opencv-python-and-deep-learning/
======
symisc_devel
We released a C/C++ computer vision library (Python binding to follow) earlier
this month which let you perform face recognition at Real-time from IoT or
Raspberry PI devices. The library is dependency free, cross platform and
should compile fine on most modern architectures with a C compiler.

[https://github.com/symisc/sod](https://github.com/symisc/sod)

~~~
Djvacto
Speaking as someone with limited and theoretical knowledge of computer vision,
does CV usually overlap with Optical Character Recognition (OCR)?

I read through the readme and don't recall any references to identifying text,
so I was wondering if and where a separation between OCR and CV might exist in
the development process?

~~~
symisc_devel
Yes, CV is always the first pass before character extraction. It envolve a lot
of image processing routines including morphological operation like dilation,
noise removal, etc. and finally blob detection[1]. All of the preprocessing
routines are implemented in SOD.

[1]:
[https://sod.pixlab.io/c_api/sod_image_find_blobs.html](https://sod.pixlab.io/c_api/sod_image_find_blobs.html)

------
tjoff
A bit unrelated but I'm in a need for some sort of cat deterrent that will
spray water at all cats except mine. Also it would be nice if humans were
exempted as well.

I haven't done the legwork myself yet, but would this be an appropriate
project to check out for this? (As for identifying my cat I've been thinking
about alternative solutions such as rfid necklace or something but it is
quickly getting past 'quick hack').

~~~
zmmmmm
It might be easier to cheat and put a bluetooth or similar beacon onto your
cat to suppress the water spray than try and distinguish your cat from others?

~~~
tjoff
One of the goals is to create a safe place for my cat, on the porch or
something. And still be able to fend off neighbor cats. She is getting old and
has had fights on the porch which makes her scared to go out.

So I guess it depends on how easy it would be to limit the scope/direct the
receiver to only activate when she is on the stairs which is probably the
optimal target range for the porch (and not activate when she is lying just
beside the receiver).

Thanks so much everyone for the answers! Can't believe I forgot about the
squirrel presentation. My cat is all black and I'm not sure how I'd go about
distinguishing it. A really colorful necklace perhaps, but it would have to be
quite ungraceful to not be covered in fur when watched from the front/back (a
second camera 90 degrees from the first could perhaps help).

In the QA in the squirrel presentation someone also mentioned OpenTLD, which
seems to be superseded by CMT (
[https://www.gnebehay.com/cmt/](https://www.gnebehay.com/cmt/) ). Worth a
look.

I hope I can find the time to experiment on this.

------
leblancfg
I automated half of my first desk job by writing this Python CLI tool, which
wraps the OpenCV `detectFace` method:

[https://github.com/leblancfg/autocrop](https://github.com/leblancfg/autocrop)

Pyimagesearch is a great repository of everything OpenCV related, great to see
them on the front page.

------
ebrewste
Pyimagesearch is great. I'm just a tinkerer / hobbyist in the computer vision
space, but this is a site I come to time and again to get up to speed on
topics that just seem harder elsewhere.

~~~
andyidsinga
true that - a lot of very practical examples and posts on this site ..and
python makes them a joy to play with!

edit: fwiw - I've been playing with motion detection / background subtraction
[https://www.pyimagesearch.com/2015/05/25/basic-motion-
detect...](https://www.pyimagesearch.com/2015/05/25/basic-motion-detection-
and-tracking-with-python-and-opencv/)

------
JulianWasTaken
Nice.

I did something simple here awhile back with a CFFI wrapper for OpenCV.

[http://tech.magnetic.com/2015/11/real-time-facial-
recognitio...](http://tech.magnetic.com/2015/11/real-time-facial-recognition-
in-python.html)

~~~
vstuart
Ditto :-)
[http://persagen.com/about/victoria/projects/cv_facial_identi...](http://persagen.com/about/victoria/projects/cv_facial_identification.html)

~~~
drhoffma
But Jurassic Park theme!

------
wcrichton
If your use case is archival (running this on many videos stored on disk) as
opposed to realtime (running on a live video feed), we built a research tool
called Scanner [1] for maximum performance in offline video analytics, e.g.
see our face detection example [2].

[1] [https://github.com/scanner-research/scanner](https://github.com/scanner-
research/scanner)

[2] [https://scanner-research.github.io/scannertools/#face-
detect...](https://scanner-research.github.io/scannertools/#face-detection)

------
kruhft
Can it track eye movements? A cheap eye tracker would be awesome so all the
window's i'm looking at are in focus.

~~~
taeric
Sounds like a great idea. I would be a little worried about how often I
actually am not looking at the window I am typing in. Though, I suspect there
are obvious patterns.

~~~
kruhft
I think it would be easy to train for novices.

~~~
taeric
I think that is what worries me. For most purposes, this is fine. I do,
however, sometimes have a transcription use case. This is fairly uncommon, but
I worry that I would get bitten by it being taken away.

That make sense? I still think this is worth trying.

------
nickserv
Great article. I'm working on a project to identify buildings, and it seems
this technique would apply. Does anyone know of a good buildings dataset, or a
pretrained network? 3 million images is no easy task to find... Thanks!

~~~
kevinali1
Aerial images?

~~~
nickserv
Sorry, forgot to mention this would be for street level recognition. I don't
think aerial views would work for that application, perspective issues
notably.

------
turowicz
The article is very similar to readme.md and samples from the github repo of
face_recognition.

