The section of preprocessing
quite significant in terms of code because it facilitates the training of model
of facial recognition and identify faces. First of all, the image is
transformed into grayscale for reducing the size of data. In the mode of
detection, the program is capable of detecting both eyes within the region of
face. Once the eyes are detected, the distance present between the eyes is
detected by the program and the whole face is scaled in such a way that
distance remains the same. In addition to it, the eyes are adjusted in such a
manner that they are at a specific height and are also horizontal. Lastly, an
elliptical mask is placed on the detected face for cropping shadows or hair
might cause issues in the identification of faces. When all of these processes are
completed, the end result is a preprocessed face which has the dimensions of 70
by 70 pixels.
Initiation of
Portable Low-Cost Facial Recognition
The user is capable of
initiating training after faces have been collected. Moving on, the training set
can be processed and initiated with the addition of new faces through the
button of Add Person or it can be loaded through the use of Load Button. It is
important for the training set to include different lighting conditions,
angles, and expressions of faces for each and every person to be precise in
recognition and identification. For instance, if faces are trained under the
light which is strong on the face's right side while during the identification,
the light is on the left side, it will have an adverse effect on the system and
the result will be not satisfying. The objective is concerned with getting more
variations between different faces in such a way that more information is saved
and stored in the significant and principle components. Thus, the set of
training must include different conditions for obtaining better outcomes.
Detection of Portable
Low-Cost Facial Recognition
Through the use of eigenvalues
and eigenvectors trained in the processes and model during the phase of
training, the current preprocessed face is taken by the program and is
projected into the subspace of PCA. Then, the projection is taken by it and the
faced is reconstructed into an image. If the image of query is a part of the
set which has been trained, the reconstruction would be easier. Moving on, the
reconstructed image is compared by the program to the image which has been
preprocessed through the use of an L2 relative calculation of error. For this
error, a threshold is generally set and errors are calculated which are below
this limit. These errors indicate the detected match.
Under predetermined distance and
lighting conditions, the system of portable facial recognition is capable of
achieving up to ninety percent validity and accuracy in the recognition of
correct person. The lamp which was utilized had the intensity of 1800 lumen
while 6500 Kelvin was the color temperature. From the webcam, 55 ± 5 cm
distance was defined. In addition to it, the program is capable of
accommodating approximately 6 individuals within the interface for recognition
and training. When it comes to timing, two devices were utilized for the rate
of recognition and detection. Raspberry Pi was the very first device in which
the program was run. Besides this device, a benchmarking device was utilized
and it was a Toshiba Computer. In comparison with each other, the latter was
faster by the rate of 50ms. Meanwhile, the former was capable of going from
capturing images to recognizing it within the 200ms average time. And anything
less than one second was not perceivable to the user. Thus, Raspberry Pi was
utilized as it was more suitable.
For the detection mode, there is
no special action which is required. The program will be detecting the face
automatically and a yellow rectangle will be put on the face while green
circles will be put on the eyes. In this manner, the faces will be detected and
identified.
For adding people, the button of
Add Person had to be used and it served to add a person to the available
training set. And each time a picture was taken, a white flash was exhibited
for alerting the user. It is, however, important to understand that in the mode
of Collect Face, there will be a red rectangle on the face of person who is
training new faces. In the right edge of the interface, the most recent face
will be displayed. If more faces have to be added to an individual who is
already on the screen, the user will be required to click on that person’s most
recent picture. This will commence the program of collecting faces for that
individual.
Once the user finished the
collection of faces, it was important for the user to click on a specific area
in the interface which was not occupied by a button or face. Generally, this
initiated the training of different preprocessed faces available in the model.
And once the program was finished being trained, the program switched to the
mode of recognition.
Overall, it can be said that the
source code was written in the language of C++ as it was quite fast in
comparison with MATLAB. Additionally, functionality was also added for saving
and loading a number of faces which were previously trained. In the process of
testing, the system was capable of achieving up to ninety percent precision in
identifying the person who was trained under predetermined distance and
lighting conditions. In addition to it, the system was capable of training the
faces of six people. There was an issue in the process of training concerned
with inefficient recognition. The process of recognition was sometimes not
quick and it indicated the need of improving the algorithm. Therefore, this
process can be further improved by adding a better system and enhancing the
algorithm utilized in the system(Song, Kim, & Jeon, 2014).
Planning
of Portable
Low-Cost Facial Recognition
In order to achieve the success
of this project, the planning was really fundamental. This chapter reviews
complete planning along with the project management methods applied have
Project
Management Techniques
Gantt Chart of Portable Low-Cost Facial Recognition
The workload of the project can
be broken down into an accessible method by using a Gantt chart (Nurre &
Weir, 2017).
All of the tasks, as well as the sub-tasks, were added together as for the
durations were. The tasks’ duration contained a startup date and also an
expected date to complete the task. This results in the number of due days to
every task, and the durations fixed on were those which appeared logically
realizable.
Viewing the progress of the
project in percentages can be done with Microsoft Project, whereas the
percentages were highly valuable in observing the progression of the project
itself. On the other hand, sometimes the project was not remaining on the track
along with the Gantt chart
Version Control System or VCS of Portable
Low-Cost Facial Recognition
A Version Control System or VCS
– GIT (Blischak, Davenport, & Wilson, 2016)was used with a
purpose to ensure that the project code will be safe and controlled. GIT has
offered some valuable features to the code management, for example, such as
restoring back the files to the earlier versions from the elder commits. The
Incremental model will support this action to be highly useful since every
single commit calculated as software build.
The ‘GitHub’ website was used
with a purpose to keep the security of data and also make it possible to be
accessed from any places. GitHub is stored inside the cloud by using a
front-end website.
Time Spent on the Project of Portable
Low-Cost Facial Recognition
The time spent for this project
was mediocre of 16 hours a week. However, some weeks had slightly less time to
be spent because of some deadlines for other parts of the coursework. In case
if the development had begun former, then this might result in one or more
features being installed into the end-product.
Meetings with Supervisor of Portable
Low-Cost Facial Recognition
A different perform that could
be done for a part of this project was the meeting held with the supervisor.
Over the timeframe of the project, only some minor helpful meetings held.
However, in every single meeting, there are suggestions for the project along
with the progress evaluation made by the supervisor, which were really helpful
in completing this project. The main reason for these minor meetings with the
supervisor was because of under pressure on fitting them with a personal
schedule.
Planning and SLDC of Portable
Low-Cost Facial Recognition
Even though it is not presented
on the Gantt chart, there was a throughout the use of the Incremental software
development type. Every task of development was its own software/build version.
There were the re-visit of requirements, design, testing, and implementation
for every Increment of software
Evaluation
of
Portable Low-Cost Facial Recognition
In this chapter, the Evaluation
of this project will be discussed. This chapter will discuss some areas such as
feedback along with the assumption of whether the aims/objectives/requirements
have met.
There are three different areas
were evaluated in this evaluation such as:
Evaluating if the objectives and aims of this project
were achieved
Evaluating if the requirements have been accomplished
Evaluating and also observing the feedback from the
users based on the questionnaire
Feedback of Portable
Low-Cost Facial Recognition
The results from
the questionnaire have provided insight considerations of the product:
All users thought that the idea was great and excellent
7/10 observed that the software is quite simple to
navigate
8/10 stated that the performance of the camera was good
9/10 claimed that the camera produced excellent photos
In general, the users thought that the product had a
unique design with a great face recognition feature
Requirements of
Portable Low-Cost Facial Recognition
In order to evaluate whether the
product’s requirements have been achieved or not, a table below has presented
the evaluation of all the requirements in chapter 4.
Requirement
|
Type
|
Achieved/Evaluation
|
User Login
|
Functional
|
Yes – There was
an implementation of the login
|
Image Capturing
& Video Recording
|
Functional
|
Yes – the image
capturing and video recording are completely implemented.
|
Data Saving
|
Functional
|
Yes – The
implementation of the database is functioning with Python scripts.
|
Objectives Completed
The project has various
objectives mentioned in chapter 1.2. The table below discusses whether all the
objectives have completed or not.
Objective
|
Achieved?
|
Objective 1: Provide Security
in Cheap Price
|
Yes – this portable face recognition
system is low-cost
|
Making Portable
|
Yes – the design of this
system is able to support the system to become portable
|
Recognition from different
Angles
|
Yes – the UIs along with the
software designs have made the product to be able in making recognition from
different angles
|
Retrieve the basic information
using API’s
|
Yes – all of the aspects such
as requirements are discussed along with the usability and legal/ ethical
issues that might be occurred
|
Expectations of
Portable Low-Cost Facial Recognition
The project has met the early
expectations where all of the objectives were set out. Even though there were
some hardware issues during completing this project, but the most essential and
fundamental functions are integrated. Thus, there is a positive achievement
since the requirements and objectives have been achieved gene
Conclusion
of Portable Low-Cost Facial Recognition
Development progress of
the Artefact and the future of the Artefact
As far as the development of the current
software is concerned, all the features of the software are not implemented
yet. Say for example, the native android app is not yet developed rather it is
just in the planning phase.
If we talk about the functionality of the
developed application, it is working properly on both the desktop and the
mobile. The core functionality of this project has been achieved. In the
summer, it is planned to develop the native Android App for this project along
with the implementation of API, polishing/optimization/UI redesign of the
software. Until it is not decided whether further investment will be required
to complete what is desired. The other option to be considered is the
open-sourcing. It will be highly based on the deep appreciation for the
open-source community. For making the further improvements to the said
software, the wide range of people from the community will make contributions.
The other significant option which can be
considered for the current software is supporting the application to run on the
multiple devices at the single point of time such as earlier generation
Raspberry Pi & Arduino. For each platform, the code needs to be varied to
the possible extent based on the varying variables used for the current
environment. In case a system runs on Linux it should typically be able to run
the code by using the required input/output methods for the sensors. Also, this
software will be of immense importance for the users who are intending to enjoy
the portable low-cost facial recognition.
Skills Learnt
After
the completion of the project, many new technologies have been learned. One of
the important frameworks being learned includes the Flask Python web framework.
Initially, it was frustrating to work with the flask. With the passage of time,
when the requirements became clear, it was enjoyable to work with the same
framework. The Gantt chart better helped to learn about the effective
management of the time.
The problem-solving skills also have been
polished during the tenure of the software development. Already known ideas of
SQL/ database also provided the basis to work effectively with SQLite. Also,
the knowledge was gained related to DBMS. Other than the above said, the communication
skills are also improved. As during the project, the communication was required
with the project moderator, other staff as well as the supervisor. The
interpersonal skills are better improved during the development of the project.
Personal Reflection
The
outcomes, after the completion of the project are pleasant. As the time
available for the completion of the current project is short so it could not be
polished to the feature’s level as was planned. In the coming few months, the
work will be started again for further polishing this software of portable
low-cost facial recognition. As far as the productivity and the innovation
perspective of this project are concerned, this software is well-equipped with
the latest & the advanced technology. Personal expectation of what has been
achieved with this project has far been exceeded. The development of this
product has been very enjoyable.
Final thoughts
It
has been very enjoyable and pleasant to work for the development of the
software for the portable low-cost facial recognition. I am highly thankful to
the project supervisor for providing me such a great opportunity to work on
this innovative idea. As far as the future of the current project is concerned,
it is not clear. It is just thinking that the project will be continued in the
future either independently, open-sourced or by the use of some other means.
References of Implementation and Testing
Bailey, J. (2018). Data protection management in UK
library and information services. iConference 2018 Proceedings.
Blischak, J. D., Davenport,
E. R., & Wilson, G. (2016). A quick introduction to version control with
Git and GitHub. PLoS computational biology .
Floridi, L., & Taddeo,
M. (2016). What is data ethics?
Introna, L., &
Nissenbaum, H. (n.d.). Facial recognition technology a survey of policy and
implementation issues. 2010.
Kaur, M., Vashisht, R.,
& Neeru, N. (2010). Recognition of facial expressions with principal
component analysis and singular value decomposition. International Journal
of Computer Applications, 9(12), 36-40.
Meenakshi, M. (2013).
Real-Time Facial Recognition System—Design, Implementation and Validation. Journal
of Signal Processing Theory and Applications, 1, 1-18.
Nurre, S. G., & Weir,
J. D. (2017). Interactive Excel-based Gantt chart schedule builder. INFORMS
Transactions on Education, 49-57.
Song, I., Kim, H.-J., &
Jeon, P. B. (2014). Deep learning for real-time robust facial expression
recognition on a smartphone. 2014 IEEE International Conference on
Consumer Electronics (ICCE), 564-567.