@
@
@seemoona2020-02-06 19:06:59
Python
@seemoona, 2020-02-06 19:06:59

How to properly design a face recognition application?

Hello. I have been studying machine learning for about a month. I want to make my own real project (since it has always been easier for me to learn by analyzing something complex, or by solving some real problem). There was an idea to write a face recognition application. I will write in more detail, I have IP cameras installed at the department. One of them looks at the front door of the pulpit. The idea behind the application is as follows. There is a database with photographs of students of the department. There is a neuron (it may be advised to use something else) that is trained to recognize faces. I would like to do the following: when the application is running, it reads the image from the camera, recognizes faces and compares them with those stored in the database. And he does it continuously. At the moment when a person appears whose face is not entered in the database (potential offender), the application issues a report on that someone else has entered. In general, this is such a thing. I went through OpenCV superficially, but it would be better if I taught the neuron myself (for practical experience). I want to ask knowledgeable people, how would you design such an application? Maybe tell me the libraries, a possible development plan, and in general something important on this topic. I will be very grateful!

Answer the question

In order to leave comments, you need to log in

3 answer(s)
S
Sergey Pankov, 2020-02-07
_

Design microservice. It will turn out like Lego: neat and interchangeable.
Moreover, different parts can be delegated to girlfriends in the department.
So, microservices:

  • 1. Capture module. Can be done based on opencv. It sticks to the video stream and looks for something similar to faces, tracks them (opencv is good at this). It puts frames with faces in groups in a queue (which is spinning next to you as a separate microservice). Groups are needed so that recognition can be improved by choosing the most uniquely recognizable views.
  • 2. Recognition service. Pulls out tasks with groups of photos from the queue and throws them into another queue for classification. After classifying all variants of the group, it selects the most reliable variants and writes events to the database.
  • 3. Classification service. This is a worker, it can scale (run in multiple instances).
  • He takes out a task (photo) from the queue, gives it to his neuron, and she gives out the class identifier and the degree of similarity.
  • 4. Dashboard implementation web service - rendering and publishing current statistics and current events.
  • 5. Urgent notification service - searches for fresh alarm events from the database and sends SMS, pulls the siren and activates machine gun turrets.

Read about SOLID. This must be known and be able to as "Our Father".

I
Ivan Shumov, 2020-02-06
@inoise

I would not do garbage and take AWS rekognition, which does this almost for nothing)

D
dmshar, 2020-02-07
@dmshar

I really liked the question.
Well, really. A person has just (a month) as he began to understand machine learning (for others, it takes years to understand what's what) and wants to immediately create a very non-trivial application, because "it's easier to learn by disassembling something complex" (theoretically true, provided that there is the necessary knowledge base, perseverance and the ability to learn independently ). At the same time - in general, he does not want to understand what and how it works, but also to take a ready-made library and understand at least in it - no, no, "to better understand it yourself." Very commendable, though it is not entirely clear how to do this without a deep understanding of the subject, something like that.
However, at the same time, to find on the Internet descriptions of the solution of one's own and similar tasks (of which - descriptions - there are a dime a dozen on the Internet, including libraries and "development plans") - either independently or cannot or does not want to. And the apotheosis - "and describe to me here on the forum, "something important on the topic", of course, preferably briefly and clearly.
Curtain.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question