Ask Your Question

Distributed Face Recognition

asked 2017-01-28 12:58:20 -0600

andythecat gravatar image

updated 2017-01-30 01:59:57 -0600

Hi to all, I started to do some examples with opencv2 (on a RaspiPi + Camera) a few days ago and till now things worked. But now I stuck with the following (as the Pi is kind of slow for that process):

I want to export a trained model with e.g. FisherFaces (pictures trained as FaceRecognizer) stored in a "fisherFaces.yml" file to get the prediction done by others. So is it possible to feed the predict(InputArray...) method in "fisher_faces" with that file and distribute, so to offload that part of program to other devices?

They should then just calculate (as norm fct. in fisher_faces) the distance from the current picture in the video screen to the one in the model (so the precalculated model). In the end those computation-slaves should send back the distance-result. The pi then should only put together the pieces in a small program where it compares distances and select the minimum one.

Or is there any other functionality / libraries to embed which facilitate distributed face rec.? I'd be very grateful!

Thanks, andy

edit retag flag offensive close merge delete


thanks for that advice. i now explained it in more detail.

andythecat gravatar imageandythecat ( 2017-01-28 13:24:27 -0600 )edit
  • how many persons do you expect to recognize ?
  • fisherfaces might not be the optimal model for a distributed recognition (rather: LBPH)
  • start small & simple: have a single webserver do the whole process, your raspi should only post an image, and receive a prediction. later, upscale, but still let the webserver do all internal communication.
berak gravatar imageberak ( 2017-01-30 02:36:43 -0600 )edit

1 answer

Sort by ยป oldest newest most voted

answered 2017-01-30 08:27:59 -0600

pi-null-mezon gravatar image

updated 2017-01-30 08:29:04 -0600

You can use the client-server architecture for your system. Client side should be started on the Raspberry and make three things:

1) Detect and track the faces on the video;

2) When new face wil be detected, send it's image to the recognition server;

3) Wait repeat from the server and do what you want to do on the Raspberry.

Whereas, the server side should be started on PC with good enough performance and just wait the recognition tasks from the clients. Some time ago I have developed all parts of very similar solution on Opencv and Qt.

edit flag offensive delete link more

Question Tools

1 follower


Asked: 2017-01-28 12:58:20 -0600

Seen: 334 times

Last updated: Jan 30 '17