By Hello Team Awesome World™
To avoid strangers using others’ keys, cards, and passwords to enter the buildings, our team will develop a face recognition-based security system, which offers higher protection of access control and building security.
New Employees or Visitors Human Resource or Security Department Security Personnel
The ABC company has several buildings for each department. Each building requires different security clearance levels. The security officer in each building will use an android phone to identify individuals by taking pictures, and decide whether or not to let individuals into the building.
Android App: Android Phone Phone Interface Database Database Interface Face Recognition Interface Training App: Web GUI
Use camera - Take a photo. Send photo to Phone Interface (invoke recognize procedure). Wait for response while displaying progress to user. Display the data or exception message (depending on whether the face has been detected or not).
Receives JPEG photo from the Android phone. Makes sure that the photo sent by the phone is in a correct format and invokes Face Recognition Interface recognize procedure. Waits for a response and receives XML/JSON file containing data from Database Interface or an error message depending on recognition success/failure. Forwards the above data/message to the phone device.
Needs to be able to store Unique ID (int), First name (30 char), Last name (30 char), Job Title (40 char), Clearance Level (int) and Default Photo (binary blob).
Receive the Unique ID from Face Recognition Interface and do a search query on the database for that ID. Sends First Name, Last Name, Job Title, Clearance Level and Default Photo for that particular ID to Phone Interface via XML/JSON. Stores data to the local database.
Recognize procedure - receive JPEG photo and send it to face.com for evaluation. Train procedure - receive batch of JPEG photo(s) and send them to face.com for training purposes. Get response from face.com and forward it to appropriate interface.
Should have some form of authentication for the user who is training the software. Should ask for First and Last Name of the person as well as Job Title. Should generate an integer Unique ID (Primary key) Clearance Level (We assume that the security guard knows the clearance level for the building)
Form to upload a batch of photo(s) which will be processed by a script. Extension for the photo(s) should be.jpeg and have good resolution and contrast. The Web App should send the photo(s) to the Face Recognition Interface, as well as the unique ID and name. Upon training completion Web App should invoke store procedure in Database Interface, storing all the personal info and a unique ID to the local database.
We divide the original architecture into two parts: the Android App and the Training App.
Risk 1: When we use the android app to send a picture to recognize, the system might return more than one matched result. Mitigation: Design a priority selection mechanism, which can choose a best one from given results according to a priority rule which is decided by the application performance.
Risk 2: Internet connection problems, or long responses. Mitigation: Give a prompt message asking the user to try again later.