2.3 PRODUCT DEVELOPMENT:
? From the above mention problem, the proposed system is to develop a project system that can help to full fill our aim.
? To detect the human face.
? Human expression recognition.
? Easy to use.
? Instant response.
? Face detection.
? Emotion recognition.
? New user registration.
? Admin panel.
? Quick response.
? User log-in required.
? Easy to use.
Reject, Redesign, Retain:
? Internet connection required.
? The smart device needed.
? Offline support.
2.4 EMPATHY MAPPING CANVAS:
? In empathy mapping canvas, there are four section users, stack holders, activity and happy and sad stories. User which are directly related to our product and stack holder which are indirectly related to our product and different activities.
? Project manager.
? New users register him or herself to use application.
? First when the user opens the application user has to log-in.
? After the opening of the application, the user chooses the detect face using the camera.
? The system shows different facial expressions as an output.
? user log-out him or herself after completion of the process.
? Happy Story:
A person had an accident and was suffering through some injuries but when he was using the app seeing his sad face, he got the suggestion regarding happy things so he got happy seeing that.
A girl got lower grades in the examination and thus she was sad and thus she used this app to change her mood and after seeing the happy articles she got happy.
? Sad Story:
A person wants to detect or see the emotion using the application but according to certain defaults on his device, he cannot get appropriate output thus he was disappointed.
A person wants to use the app for his emotion recognition but he was not having a proper network connection and thus due to that issue he doesnt get an accurate result.
2.5 UML Diagrams:
? Unified Modelling Language (UML) is a standardized modeling language enabling developers to specify, visualize, construct and document artifacts of a software system.
2.5.1 USE CASE DIAGRAM:
? A use case diagram is a graphic depiction of the interactions among the elements of a system. A use case is a design used in system analysis to identify, clarify, and organize system requirements. The participant, usually individuals involved with the system defined according to their roles.
2.5.2 CLASS DIAGRAM:
? Class diagrams represent the different classes used in the application. Class diagrams are also representing the relationship between two or more classes, how they are interconnected with each other.
2.5.3 ACTIVITY DIAGRAM:
? An activity diagram shows the activities performed by the user and system; it also shows the flow of work. Generally, we can get most of the idea of the product using an activity diagram.
CHAPTER 3 IMPLEMENTATION
In our project, we use the PyCharm as an IDE and we use Python language in the background. The first step of our project is to import all libraries. For emotion recognition, we used Keras, NumPy (numpy), TensorFlow, OpenCV (cv2), Pandas, etc. libraries.
? Keras (import keras)
Keras is a high-level neural networks API, written in Python and capable of running on top of TensorFlow, CNTK or Theano. It was developed with a focus on enabling fast experimentation. Being able to go from idea to result with the least possible delay is key to doing good research.
Use Keras if you need a deep learning library that:
It allows for easy and fast prototyping (through user-friendliness, modularity, and extensibility).
Supports both convolutional networks and recurrent networks, as well as combinations of the two.
Runs seamlessly on CPU and GPU.
? NumPy (import numpy as np) & Pandas (import pandas as pd)
Python is increasingly being used as a scientific language. Matrix and vector manipulations are extremely important for scientific computations. Both NumPy and Pandas have emerged to be essential libraries for any scientific computation, including machine learning, in python due to their intuitive syntax and high-performance matrix computation capabilities.
NumPy stands for Numerical Python or Numeric Python. It is an open-source module of Python which provides fast mathematical computation on arrays and matrices. Since arrays and matrices are an essential part of the Machine Learning ecosystem, NumPy along with Machine Learning modules like Scikit-learn, Pandas, Matplotlib, TensorFlow, etc. complete the Python Machine Learning Ecosystem.
NumPy provides the essential multi-dimensional array-oriented computing functionalities designed for high-level mathematical functions and scientific computation.
NumPys main object is the homogeneous multidimensional array. It is a table with the same type elements, i.e., integers or string or characters (homogeneous), usually integers. In NumPy, dimensions are called axes. The number of axes is called the rank.
There are several ways to create an array in NumPy like np.array, np.zeros, no.ones, etc. Each of them provides some flexibility.
Similar to NumPy, Pandas is one of the most widely used python libraries in data science. It provides high-performance, easy to use structures and data analysis tools. Unlike the NumPy library which provides objects for multi-dimensional arrays, Pandas provides an in-memory 2d table object called Dataframe. It is like a spreadsheet with column names and row labels.
Hence, with 2d tables, pandas are capable of providing many additional functionalities like creating pivot tables, computing columns based on other columns and plotting graphs.
Some commonly used data structures in pandas are:
1. Series objects: 1D array, similar to a column in a spreadsheet
2. DataFrame objects: 2D table, similar to a spreadsheet
3. Panel objects: Dictionary of DataFrames, similar to sheet in MS Excel
Pandas Series object is created using PD.Series function. Each row is provided with an index and by default is assigned numerical values starting from 0. Like NumPy, Pandas also provide the basic mathematical functionalities like addition, subtraction and conditional operations and broadcasting.
Pandas data frame object represents a spreadsheet with cell values, column names, and row index labels. Dataframe can be visualized as dictionaries of Series. Dataframe rows and columns are simple and intuitive to access. Pandas also provide SQL-like functionality to filter, sort rows based on conditions.
TensorFlow is an open-source library for fast numerical computing.
TensorFlow is a Python library for fast numerical computing created and released by Google. It is a foundation library that can be used to create Deep Learning models directly or by using wrapper libraries that simplify the process built on top of TensorFlow.
It was created and is maintained by Google and released under the Apache 2.0 open source license. The API is nominally for the Python programming language, although there is access to the underlying C++ API.
It can run on single CPU systems, GPUs as well as mobile devices and large-scale distributed systems of hundreds of machines.
OpenCV-Python is a library of Python bindings designed to solve computer vision problems.
OpenCV supports a wide variety of programming languages such as C++, Python, Java, etc., and is available on different platforms including Windows, Linux, OS X, Android, and iOS. Interfaces for high-speed GPU operations based on CUDA and OpenCL are also under active development.
OpenCV-Python is the Python API for OpenCV, combining the best qualities of the OpenCV C++ API and the Python language.
OpenCV-Python makes use of Numpy, which is a highly optimized library for numerical operations with a MATLAB-style syntax. All the OpenCV array structures are converted to and from Numpy arrays. This also makes it easier to integrate with other libraries that use Numpy such as SciPy and Matplotlib.
Steps of implementation:
1. Face detection: Firstly, using the OpenCV libraries we convert RGB images and videos to binary. Then to detect face and eye we gave the length of the rectangle.
2. Emotion Recognition: After face detection, using databases and libraries we recognize emotion based on the accuracy of the output.