SIP Final Ajay

Download as pdf or txt
Download as pdf or txt
You are on page 1of 100

SIP- REPORT

BACHELOR OF COMPUTER APPLICATIONS

SEMESTER III
By
Ajay Yadav

(A21704822079)

Submitted to –
Dr. Sameer Saxena
CERTIFICATE
This is to certify that AJAY YADAV bearing the Enrollment no.: A21704822079 of

BACHLOR OF COMPUTER APPLICATION of 2022-2024, has successfully completed the

project entitled “LINUX OPERATING SYSTEM” under the guidance of Dr. Sameer

Saxena from Amity Institute of Information Technology, Amity University Rajasthan,

Jaipur.

He has completed the project on using FACE RECOGNIZOR IN KALI LINUX during the

period of 26th JUNE 2023 to 10th AUGUST 2023, under the guidance and supervision of Dr.

Sameer Saxena from AIIT, AUR.

He has completed the project well within the given time frame. he is sincere, hardworking

and her conduct during the period was commendable.

Faculty Guide Name: Dr. Sameer ________________________


Saxena __
Signature
__________________________ Designation: Head of
Signature Institution
Designation: Associate Professor Date:
Date:
DECLARATION

I hereby declare that the Industrial Training Report entitled

("Linux operating system") is an authentic record of my own work

as requirements of Industrial Training during the period of 45 days

for the award of degree of B.CA SOFTCRAYONS PVT. LTD. of

Technology, GAZIYABAD, under the guidance of (MR.SANJAY).

Ajay Yadav (A21704822079)


ACKNOWLEDGEMENT

The internship opportunity I had with soft crayons was a great


chance for learning and professional development. Therefore, I
consider myself as a very lucky individual as I was pro- vided with
an opportunity to be a part of it. I am also grateful for having a chance
to meet so many wonderful people and professionals who led me
though this internship period.

Bearing in mind previously I am using this opportunity to express


my deepest gratitude and special thanks to the intern- ship training
guide who in spite of being extraordinarily busy with her/his duties,
took time out to hear, guide and keep me on the correct path and
allowing me to carry out my project at their esteemed organization
during the training.

I express my deepest thanks to our head of department for taking part


in useful decision & giving necessary advices and guidance and
arranged all facilities to make life easier. I choose this moment to
acknowledge her contribution gratefully.

It is my radiant sentiment to place on record my best regards, deepest


sense of gratitude to the faculty of CSE Depart- mint for their
priceless effort and guiding support for my aca- demic help.

Ajay yadav (A21704822079)


ABOUT THE COMPANY

Soft Crayons Tech Solution Pvt. Ltd.

Having Worldwide Name in IT field. We provide High quality cyber security


training and consulting services that full fill Students, government and corporate
Requirements. Softcrayons is Having Worldwide Name in IT field.

Soft crayons provide industrial training on various technologies such as,


• IoT with Raspberry Pi &Arduino
• Machine Learning
• Artificial Intelligence
• Embedded System
• Core & Advance Python
During the training period, they also use to guide their student related to the
project work. Softcrayons Company also organizes variousworkshops on
some trending technologies as like Artificial Intelligence, Machine
Learning, Internet of Things, Embedded System, Robotics, MATLAB,
Automation, Network & CyberSecurity, etc.
DIRECTOR OF SOFTCRAYONS
LINUX OPERATING SYSTEM LAB

Table of Contents

SR. TABLE OF THE CONTENTS PAGE


NO
1 INTRODUCTION TO LINUX 0-9
2 INSTALLATION OF LINUX 9-14

3 : NORMAL INSTALLATION 14-20


: INSTALLATION THROUGH VIRTUAL BOX

4 LINUX BASIC COMMANDS 21-25


5 WORKING WITH FILES: LISTING FILES 26-30
: GRANTING PERMISSION

6 USER MANAGEMENT 31-38


7 : ADDING AND DELETING USER 39-42
: ADDING AND DELETING HOME DIRECTORY

8 PROCESS MANAGEMENT: LIST OF COMMANDS 43-46


AND THEIR USES / SWITCH OPERATION

9 SHELL SCRIPTING 47-50


: STEPS TO SCRIPT SHELL

10 SCRIPTING 51
11 SUMMARY 52
REFERENCE
Gantt Chart

Days

0 - 45 Days Internship Schedule


INTRODUCTION TO LINUX

Linux is an open source operating system (OS). An operating


system is the software that directly manages a system’s hardware and
resources, like CPU, memory, and storage. The OS sits between
applications and hardware and makes the connections between all of
your software and the physical resources that do the work.
Think about an OS like a car engine. An engine can run on its own,
but it becomes a functional car when it’s connected with a
transmission, axles, and wheels. Without the engine running
properly, the rest of the car won’t work.

How does Linux work?

Linux was designed to be similar to UNIX, but has evolved to run on


a wide variety of hardware from phones to supercomputers. Every
Linux-based OS involves the Linux kernel—which manages
hardware resources—and a set of software packages that make up the
rest of the operating sys- team.

The OS includes some common core components, like the GNUtools,


among others. These tools give the user a way to manage the
resources provided by the kernel, install addi- trigonal software,
configure performance and security settings, and more.
lOM oAR c P S D | 3030 944 5

INSTALLATION OF LINUX

THERE ARE THREE WAYS OF INSTALLING LINUX :-


• NORMAL INSTALLATION
• INSTALLATION THROUGH VIRTUAL BOX

The first way is to download the Linux distribution you want and
burn it into a DVD or USB stick and boot your machine with it and
complete the installation process.

The Second way is to install it virtually on a virtual ma- chine like


VirtualBox or VMware without touching your Win- dows or Mac
system, so your Linux system will be contained in a window you
can minimize and continue working on your real system.
For me, I prefer VirtualBox, it’s free and runs very fast on my
PCthan VMware, and support installing Windows, Linux and Mac
OS with all versions.
lOM oAR c P S D | 3030 944 5

We can install it in windows in the following ways:-

1. Open the Virtual Box website

Go to https://www.Virtual Box.org/ in your computer's Internet


browser. This is the website from which you'll download the
VirtualBox setup file.
2. Click Download VirtualBox.

It's a blue button in the middle of the page. Doing so will open the
downloads page.
lOM oAR c P S D | 3030 944 5

3. Click Windows hosts.

You'll see this link below the "Virtual Box 5.2.8 platform packages"
heading. The Virtual Box EXE file will begin downloading onto your
computer.

4. Open the Virtual Box EXE file.

Go to the location to which the EXE file downloaded and double-


click the file. Doing so will open the Virtual Box installation
window.
lOM oAR c P S D | 3030 944 5

➢ Click Yes when prompted.

➢ Navigate through the installation prompts.

➢ Do the following:

➢ Click next on the first three pages.

➢ Click Yes when prompted.

➢ Click Install
lOM oAR c P S D | 3030 944 5

5. Click Install when prompted.

Doing so will allow VirtualBox to begin installing on your


computer.
lOM oAR c P S D | 3030 944 5

6. Click Finish when prompted.

It's in the lower-right side of the window. Doing so will close the
installation window and open Virtual Box. Now that you've installed
and opened Virtual Box, you can create a virtual machine in order
to run any operating system on your PC.

Make sure that you don't uncheck the "Start" box before doing this.
lOM oAR c P S D | 3030 944 5

CREATING A VIRTUAL MACHINE

Gather your installation disc(s) or files.


When creating a virtual machine, you will need to install the
operating system just like you would on a regular computer. This
means that you will need the installation disc(s) for the operating
system you want to install on the virtual machine.

You can also install an operating system by using its ISO file.

Click New

This will open the wizard that will guide you throughthe process to create
your first virtual machine.
lOM oAR c P S D | 3030 944 5

Identify the operating system

On the first screen of the wizard, you will be asked to give the new
virtual machine a name as well aschoose what operating system
you will be installing. Choose the type of operating system from
the "Type" menu, and then choose which version you are
installing from the "Version" menu.
lOM oAR c P S D | 3030 944 5

Set the amount of RAM

You will need to designate how much of your computer's RAM


willbe allocated to your virtual machine. You can only go as high as
the amount of RAM physically installed in your system.
lOM oAR c P S D | 3030 944 5

Create a virtual hard drive

Select a virtual hard drive option and click Create, then click
through the prompts and click Create again. Your virtual machine
will need a virtual hard drive in order to install the operating
system and any programs.
lOM oAR c P S D | 3030 944 5

Start the operating system installation.

Once the virtual machine has been configured, the wizard will
close and you will be taken back to the Virtual Box main window.
Double- click your new machine in the left menu, then do one of
the following:

If you are installing from a disc, insert it into your computer,


click the "Host drive" drop-downbox and click the correct drive
letter from the drop-down menu.
If you are installing from an image file, click the folder- shaped
icon to browse through your computer for the installation image
file.
lOM oAR c P S D | 3030 944 5

Click Start

It's at the bottom of the window. This will prompt VirtualBox to


begin reading your disk or file.

Install the operating system

After selecting the installation media, the operating system


installation will begin. Installation proceeds the same way it would
asif you were installing the operating system ona regular computer.
Seethe following guides for instructions on installing the operating
system of your choice:

Boot up your virtual machine

Once the operating system is installed, your virtual machine is ready


to go. Simply double-click the name of your virtual machine in the
left menu of the Virtual Box main page to start it up. The virtual
computer will boot and load into the operating system that you
installed.

Your virtual machine will run in a window

Whenever the virtual machine window has focus, any keystrokes or


mouse clicks will affect the virtual machine and not your physical
computer.
lOM oAR c P S D | 3030 944 5

Linux Basic Command

Let’s start with some simple commands :-

pwd Command
‘pwd’ command prints the absolute path to current working directory.
$ pwd
/home/raghu

cal command
Displays the calendar of the current month.

$ cal July
2012
Su Mo Tu We ThFr Sa1
2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
lOM oAR c P S D | 3030 944 5

‘cal ’ will display calendar for the specified month and year.

$ cal 08 1991
August 1991
Su Mo Tu We ThFr Sa
123
456789 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

echo command
This command will echo whatever you provide it.
$ echo "linoxide.com"
linoxide.com

The ‘echo’ command is used to display the values of a vari-


able. One such variable is ‘HOME’. To check the value of avariable
precede the variable with a $ sign.
$ echo $HOME
/home/raghu

date command
Displays current time and date.
$ date
Fri Jul 6 01:07:09 IST 2012

If you are interested only in time, you can use 'date +%T' (in
hh:mm:ss):
lOM oAR c P S D | 3030 944 5

$ date +%T
01:13:14

tty command
Displays current terminal.
$ tty
/dev/pts/0

Whoami command
This command reveals the user who is currently logged in.
$ whoami
raghu

id command
This command prints user and groups (UID and GID) of thecurrent
user.

$ id
uid=1000(raghu) gid=1000(raghu)
groups=1000(raghu),4(adm),20(dialout),24(cdrom)
,46(plugdev),112(lpadmin),120(admin),122(sam-
bashare)

By default, information about the current user is displayed. If another


username is provided as an argument, informationabout that user will
be printed:
lOM oAR c P S D | 3030 944 5

$ id root
uid=0(root) gid=0(root) groups=0(root)
clear command
This command clears the screen.
help option
With almost every command,‘--help’ option shows usage
summary for that command.
$ date --help
Usage: date [OPTION]... [+FORMAT] or: date [-u|--utc|--univer-
sal] [MMDDhhmm[[CC]YY][.ss]]

Display the current time


IN the given FORMAT, or set the system date.

What is command
This command gives a one line description about the com-
mand. Itcan be used as a quick reference for any command.

$ whatis date
date (1) - print or set the system date and
time
$ whatiswhatis
whatis (1) - display manual page descriptions

Manual Pages
‘--help’ option and ‘whatis’ command do not provide thorough
information about the command. For more detailed informa- tion,
Linux provides man pages and info pages. To see a com- mand's
manual page, man command is used.
lOM oAR c P S D | 3030 944 5

WORKING WITH FILES

LISTING FILES

To list the files and directories stored in the currentdirectory, use the
following command −
$ls
Here is the sample output of the above command −

$ls
bin hosts Lib res.03
ch07 hw1 pub test_results
ch07.bak hw2 res.01 users
docs hw3 res.02 work
The command ls support the -l option which would help you to get
more information about the listed files
$ls -l
total 1962188

drwxrwxr-x 2amroodamrood 4096 Dec 25 09:59 uml


-rw-rw-r-- 1 amroodamrood 5341 Dec 25 08:38 uml.jpg
drwxr-xr-x 2amroodamrood 4096 Feb 15 2006 univ
drwxr-xr-x 2 root root 4096 Dec 9 2007 urls-
pedia
-rw-r--r-- 1 root root 276480 Dec 9 2007 urls-
pedia.tar
drwxr-xr-x 8 root root 4096 Nov 25 2007 usr
drwxr-xr-x 2 200 300 4096 Nov 25 2007
webthumb-1.01
-rwxr-xr-x 1 root root 3192 Nov 25 2007
webthumb.php
-rw-rw-r-- 1 amroodamrood 20480 Nov 25 2007
webthumb.tar
lOM oAR c P S D | 3030 944 5

-rw-rw-r-- 1 Amroodamrood 5654 Aug 9 2007 your-


file.mid
-rw-rw-r-- 1 Amroodamrood 166255 Aug 9 2007 your-
file.swf
drwxr-xr-x 11 Amroodamrood 4096 May 29 2007 zlib-
1.2.3
$

Here is the information about all the listed columns –

1. First Column − Represents the file type and the per- mission
given on the file. Below is the description of all type of files.

2. Second Column − Represents the number of memory blockstaken


by the file or directory.

3. Third Column − Represents the owner of the file. This is theUnix


user who created this file.

4. Fourth Column − Represents the group of the owner. EveryUnix


user will have an associated group.

5. Fifth Column − Represents the file size in bytes.

6. Sixth Column − Represents the date and the time when this
file was created or modified for the last time.

7. Seventh Column − Represents the file or the directory name.


lOM oAR c P S D | 3030 944 5

HOME DIRECTORY

The directory in which you find yourself whenyou first login is


calledyour home directory.

You will be doing much of your work in your home directory


andsubdirectories that you'll be creating to or-ganize your files.
You can go in your home directory anytime using the following
command −
$cd ~
$

Here ~ indicates the home directory. Suppose you have


togo in any other user's home directory, use the following
command −
$cd ~username
$

To go in your last directory, you can use the following


command −
$cd -
$
lOM oAR c P S D | 3030 944 5

LISTING DIRECTORIES

To list the files in a directory, you can use the following


syntax −

• Following is the example to list all the files contained in


/usr/local directory −

$ls /usr/local
X11 bin gimp jikessbin
ace doc include lib share
atalketc info man ami

CREATING DIRECTORIES

We will now understand how to create directories.


Directories are created by the following command –
$mkdirdirname

Here, directory is the absolute or relative pathname of the


directory you want to create. For example, the command −
$mkdirmydir
$

Creates the directory mydir in the current directory.


Here is another example −
$mkdir /tmp/test-dir
$
This command creates the directory test-dir inthe /tmp directory.
The mkdir command produces no output if it successfully
creates the requested directory.
lOM oAR c P S D | 3030 944 5

If we give more than one directory on the command


line, mkdir creates each of the directories. For example, −

$mkdir docs pub


$

Creates the directories docs and pub under the current


directory.

CREATING PARENT DIRECTORIES

We will now understand how to create parent directories.


Sometimes when we want to create a directory, its parent
directory or directories might not exist. In this case, mkdir is-
sues an error message as follows –

$mkdir /tmp/amrood/test
mkdir: Failed to make directory
"/tmp/amrood/test";
No such file or directory
$
In such cases, you can specify the -p option to the mkdir
command. It creates all the necessary directories for you. For
example –

$mkdir -p /tmp/amrood/test
$

The above command creates all the required parent


directories.
lOM oAR c P S D | 3030 944 5

REMOVING DIRECTORIES
Directories can be deleted using the rmdir command as
follows −

$rmdirdirname
$

Note − To remove a directory,we should make sure it is empty which


means there should not be any file or sub-directory inside this
directory.

GRANTING PERMISSIONS

To change directory permissions in Linux, use the following :-


chmod +rwx filename to add permissions.
chmod -rwxdirectoryname to remove permissions.
chmod +x filename to allow executable permissions.
chmod -wx filename to take out write and executable permis-sions.

Note that “r” is for read, “w” is for write, and “x” isfor execute.

This only changes the permissions for the owner of thefile.


lOM oAR c P S D | 3030 944 5

We may need to know how to change permissions in numeric


codein Linux, so to do this you use numbers instead of“r”,
“w”, or “x”.

0 = No Permission1 = Execute
2 = Write
4 = Read

Basically, we add up the numbers depending on the


level of permission we want to give.

Permission numbers are:

0 = ---
1 = --x
2 = -w-
3 = -wx
4 = r-
5 = r-x
6 = rw-
7 = rwx
lOM oAR c P S D | 3030 944 5

USER MANAGEMENT

User management includes everything from creating a user to


deleting a user on your system. User management can be done in
three ways on a Linux system.

Graphical tools are easy and suitable for new users, as it makes
sure you'll not run into any trouble.

Command line tools includes commands like useradd, userdel,


passwd, etc. These are mostly used by the server administrators.

Third and very rare tool is to edit the local configuration files directly
using vi.

ROOT

The root user is the superuser and have all the powers for
creatinga user, deleting a user and can even login with the other
user's account.
lOM oAR c P S D | 3030 944 5

ADDING AND DELETING USER

USERADD
With useradd commands you can add a user.
Syntax:

useradd -m -d /home/<userName> -c "<userName>" <userName>

Example:
useradd -m -d /home/xyz -c "xyz" xyz

USERDEL :
To delete a user account userdel command is used.

Syntax:

userdel -r <userName>

Example:
userdel -r xyz
lOM oAR c P S D | 3030 944 5

ADDING AND DELETING HOME

DIRECTORIES

By using userdel -r option, you can delete home directory alongwith


user account.
Syntax:
userdel -r <userName>
Example:
userdel -r john

USERMOD
The command usermod is used to modify the properties of anexisting
user.
Syntax:
usermod -c <'newName'> <oldName>

Example:
usermod -c 'jhonny' john

Linux/Unix Process Management: ps, kill, top, df,free, nice


Commands
lOM oAR c P S D | 3030 944 5

PROCESS MANAGEMENT

WHAT IS A PROCESS?

An instance of a program is called a Process. In simple terms,


any command that you give to your Linux machine starts a new
process.

When using the Terminal, you will have to wait, until the fore
ground process runs.
lOM oAR c P S D | 3030 944 5

RUNNING A BACKGROUND PROCESS

If you start a foreground program/process from the terminal, then


you cannot work on the terminal, till the program is up and running.
Particular, data-intensive tasks take lots of processing power and
mayeven take hours to complete. You do not want your terminal to
be held up for such a long time.

To avoid such a situation, you can run the program and send it to the
background so that terminal remains available to you. Let's learn
howto do this input.
lOM oAR c P S D | 3030 944 5

LIST OF COMMANDS AND THEIR


USES / SWITCH OPERATION

FG

You can use the command "fg" to continue a program which was
stopped and bring it to the foreground.
The simple syntax for this utility is:
PS
This command stands for 'Process Status'. It is similar to the "Task
Manager" that pop-ups in a Windows Machine when we use
Cntrl+Alt+Del. This command is similar to 'top' com- mand but the
information displayed is different.
To check all the processes running under a user, use the command
-
psux

You can also check the process status of a single process, use the
syntax -
ps PID
lOM oAR c P S D | 3030 944 5

KILL

This command terminates running processes on a Linuxmachine.


To use these utilities you need to know the PID (processid) of
theprocess you want to kill

Syntax –
kill PID
To find the PID of a process simply type -
pidof Process name

Let us try it with an example.


lOM oAR c P S D | 3030 944 5

SHELL SCRIPTING

Steps to write and execute a script

Open the terminal. Go to the directory where you want to create


your script.
Create a file with .sh extension.
Write the script in the file using an editor.
Make the script executable with command chmod +x <file-Name>.
Run the script using ./<fileName>.

A shell script is a computer program designed to be run by the


Unix/Linux shell which could be one of the following:
The Bourne Shell
The C Shell
The Korn Shell
The GNU Bourne-Again Shell

A shell is a command-line interpreter and typical operations


performed by shell scripts include file manipulation, program
execution, and printing text.

The following script uses the read command which takes the input
from the keyboard and assigns it as the value of the variable PERSON
and finally prints it on STDOUT.
lOM oAR c P S D | 3030 944 5

#!/bin/sh

# Author : Zara Ali


# Copyright (c)
Tutorialspoint.com # Script
follows here:

echo"What is your
name?"read PERSON
echo"Hello, $PERSON"

Here is a sample run of the script −


$./test.sh
What is your name? Zara Ali
Hello, Zara Ali
$

LIST OF PROGRAM OF SHELLSCRIPTING

Q1 Write a shell script to enter length & width of square


and calculate its area & perimeter and display them.

lOM oAR c P S D | 3030 944 5

Q2. Write a shell script to check whether a number is


positive, negative or zero.

lOM oAR c P S D | 3030 944 5

Q3. Write a shell script to print all natural numbers


inrecursive ( from n to 1 ). – using while loop.

lOM oAR c P S D | 3030 944 5

Q4. Write a shell script to calculate factorial of a


number.

Q5. Write a shell script to input file name and check if file
found ask user to enter some text and save it into file, if not
found display message not found.

lOM oAR c P S D | 3030 944 5

PROJECT ON FACE RECOGNIZER

Table of Contents :-

• Demo
• Project Overview
• Prerequisites
• Step 1: Prepare Your Environment and Data
• Step 2: Load Training Data and Train Your Model
• Step 3: Recognize Unlabeled Faces
• Step 4: Display Results
• Step 5: Validate Your Model
• Step 6: Add Command-Line Arguments
• Step 7: Perform Face Recognition With Python
• Conclusion
• Next Steps
lOM oAR c P S D | 3030 944 5

DEMO

When you’re done with this project, you’ll have a face recognition
application that you can train on any set of images. Once it’s trained, you’ll
be able to give your application a new image, and the app will draw boxes
on any faces that it finds and label each face by name:
lOM oAR c P S D | 3030 944 5

PROJECT OVERVIEW

Your program will be a typical command-line application, but it’ll offer some impressive
capabilities. To accomplish this feat, you’ll first use face detection, or the ability to find
faces in an image. Then, you’ll implement face recognition, which is the ability to
identify detected faces in an image. To that end, your program will do three primary
tasks:

1. Train a new face recognition model.


2. Validate the model.
3. Test the model.

When training, your face recognizer will need to open and read many image files. It’ll
also need to know who appears in each one. To accomplish this, you’ll set up a directory
structure to give your program information about the data. Specifically, your project
directory will contain three data directories:

1. training/
2. validation/
3. output/

You can put images directly into validation/. For training/, you should have images
separated by subject into directories with the subject’s name.

Setting your training directory up this way will allow you to give your face recognizer
the information that it needs to associate a label—the person pictured—with the
underlying image data.
lOM oAR c P S D | 3030 944 5

Step 1: Prepare Your Environment and Data

In this step, you’ll create a project environment, install necessary dependencies, and set the
stage for your application.

First, create your project and data directories:

Running these commands creates a directory called face_recognizer/, moves to it, then
creates the folders output/, training/, and validation/, which you’ll use throughout the
project. Now you can create a virtual environment using the tool of your choice.

Before you start installing this project’s dependencies with pip, you’ll need to ensure that
you have CMake and a C compiler like gcc installed on your system. If your system
doesn’t already have them installed, then follow these instructions to get started:

To install CMake on Linux, visit the CMake downloads page and install the appropriate
installer for your system. Alternatively, CMake binaries may also be available through
your favorite package manager. If you use apt package management, for example, then
you can install CMake with this:
lOM oAR c P S D | 3030 944 5

In the training/ directory, you should create a separate folder for each person who
appears in your training images. Then you can put all the images into their appropriate
folders:

face_recognizer/

├── output/

├── training/
│ └── ben_affleck/
│ ├── img_1.jpg
│ └── img_2.png

├── validation/
│ ├── ben_affleck1.jpg
│ └── michael_jordan1.jpg

├── detector.py
├── requirements.txt
└── unknown.jpg
lOM oAR c P S D | 3030 944 5

Step 2: Load Training Data and Train Your Model

In this step, you’ll start writing code. This code will load your training data and start training
your model. By the end of this step, you’ll have loaded your training data, detected faces in
each image, and saved them as encodings.

First, you’ll need to load images from training/ and train your model on them. To do that,
open your favorite editor, create a file called detector.py, and start writing some code:

# detector.py

from pathlib import Path

import face_recognition

DEFAULT_ENCODINGS_PATH = Path("output/encodings.pkl")

Path("training").mkdir(exist_ok=True)
Path("output").mkdir(exist_ok=True)
Path("validation").mkdir(exist_ok=True)

def encode_known_faces(
model: str = "hog", encodings_location: Path = DEFAULT_ENCODINGS_PATH
) -> None:
names = []
encodings = []
for filepath in Path("training").glob("*/*"):
name = filepath.parent.name
image = face_recognition.load_image_file(filepath)
lOM oAR c P S D | 3030 944 5

# detector.py
2
3# ...
4
5def encode_known_faces(
6 model: str = "hog", encodings_location: Path = DEFAULT_ENCODINGS_PATH
7) -> None:
8 names = []
9 encodings = []
10
11 for filepath in Path("training").glob("*/*"):
12 name = filepath.parent.name
13 image = face_recognition.load_image_file(filepath)
14
15 face_locations = face_recognition.face_locations(image, model=model)
16 face_encodings = face_recognition.face_encodings(image,
face_locations)
17
18 for encoding in face_encodings:
19 names.append(name)
20 encodings.append(encoding)

After updating your project with this code, your encode_known_faces() function is ready
to collect names and encodings from all the files in your training/ directory:

• Line 15 uses face_recognition.face_locations() to detect the locations of faces in


each image. The function returns a list of four-element tuples, one tuple for each
detected face. The four elements per tuple provide the four coordinates of a box
that could surround the detected face. Such a box is also known as a bounding box.

• Line 16 uses face_recognition.face_encodings() to generate encodings for the


detected faces in an image. Remember that an encoding is a numeric representation
of facial features that’s used to match similar faces by their features.
lOM oAR c P S D | 3030 944 5

• Lines 18 to 20 add the names and their encodings to separate lists.

Now you’ve generated encodings and added them, along with the label for each image, to
a list. Next, you’ll combine them into a single dictionary and save that dictionary to disk.

Import pickle from the standard library and use it to save the name-encoding dictionary:

# detector.py

# ...

import pickle

# ...

def encode_known_faces(
model: str = "hog", encodings_location: Path = DEFAULT_ENCODINGS_PATH
) -> None:
names = []
encodings = []

for filepath in Path("training").glob("*/*"):


name = filepath.parent.name
image = face_recognition.load_image_file(filepath)

face_locations = face_recognition.face_locations(image, model=model)


face_encodings = face_recognition.face_encodings(image,
face_locations)

for encoding in face_encodings:


names.append(name)
encodings.append(encoding)

name_encodings = {"names": names, "encodings": encodings}

with encodings_location.open(mode="wb") as f:
pickle.dump(name_encodings, f)

encode_known_faces()
lOM oAR c P S D | 3030 944 5

With this addition to encode_known_faces(), you create a dictionary that puts


the names and encodings lists together and denotes which list is which. Then, you
use pickle to save the encodings to disk.

Finally, you add a call to encode_known_faces() at the end so that you can test whether
it works. You can now run your script to confirm that it creates your encodings:

$ python detector.py
After some time, your script should finish execution, having created a file
called encodings.pkl in your output/ directory. Well done, you’ve completed this step!

In this section, you created the encode_known_faces() function, which loads your
training images, finds the faces within the images, and then creates a dictionary
containing the two lists that you created with each image.

You then saved that dictionary to disk so that you could reuse the encodings. Now you’re
ready to deal with unlabeled faces!

Step 3: Recognize Unlabeled Faces


lOM oAR c P S D | 3030 944 5
lOM oAR c P S D | 3030 944 5

# detector.py

from collections import Counter

# ...

def _recognize_face(unknown_encoding, loaded_encodings):


boolean_matches = face_recognition.compare_faces(
loaded_encodings["encodings"], unknown_encoding
)
votes = Counter(
name
for match, name in zip(boolean_matches, loaded_encodings["names"])
if match
)
if votes:
return votes.most_common(1)[0][0]

recognize_faces("unknown.jpg")

You’ve now created _recognize_face(), which does the hard work of identifying each face in the
given image. In this function, you call compare_faces() to compare each unknown encoding in
your test image with the encodings that you loaded previously.

The compare_faces() function returns a list of True and False values for each loaded encoding.
The indices of this list are equal to those of the loaded encodings, so the next thing you do is
keep track of votes for each possible match.

You do this with Counter, which you imported from collections at the top of your script.
Using Counter allows you to track how many votes each potential match has by counting
the True values for each loaded encoding by the associated name. You then return the name
that has the most votes in its favor.

But what’s a vote, and who’s voting? Think back to the first function that you wrote in this
tutorial, where you generated encodings for a bunch of training images of celebrities’ faces.
lOM oAR c P S D | 3030 944 5

When you call compare_faces(), your unknown face is compared to every known face that you
have encodings for. Each match acts as a vote for the person with the known face. Since you
should have multiple images of each known face, a closer match will have more votes than
one that isn’t as close a match.

Finally, outside of the function definition, you add a call to recognize_faces() to test that it’s
working as expected.

# detector.py

BOUNDING_BOX_COLOR = "blue"
TEXT_COLOR = "white"

# ...

def _display_face(draw, bounding_box, name):


top, right, bottom, left = bounding_box
draw.rectangle(((left, top), (right, bottom)),
outline=BOUNDING_BOX_COLOR)
text_left, text_top, text_right, text_bottom = draw.textbbox(
(left, bottom), name
)
draw.rectangle(
((text_left, text_top), (text_right, text_bottom)),
fill="blue",
outline="blue",
)
draw.text(
(text_left, text_top),
name,
fill="white",
)

You start by creating two constants near the top of your script and assigning them to
two common HTML color names, "blue" and "white". You then use these constants
multiple times in _display_face(). Defining them as constants means that you’ll have
less maintenance effort if you want to change the colors later on.
lOM oAR c P S D | 3030 944 5

Step 5: Validate Your Model]

Model validation is a technique that tests your trained model by providing data that it
hasn’t seen before but that you have. Knowing the correct label for each image allows
you to get an idea of your model’s performance on new data.

At the most basic level, you’re just running your recognize_faces() function on images
that already contain a known face. In step one, you created a validation directory that
contains images with faces that you can recognize.

The function that you’ll build next will use pathlib to open each of the validation images
and then call recognize_faces() on them:

1 # detector.py
2
3 # ...
4
5 def validate(model: str = "hog"):
6 for filepath in Path("validation").rglob("*"):
7 if filepath.is_file():
8 recognize_faces(
9 image_location=str(filepath.absolute()), model=model
10 )
11
12 # Removed recognize_faces("unknown.jpg")
13 validate()
lOM oAR c P S D | 3030 944 5

Step 6: Add Command-Line Arguments

To make sure that users can access your app’s functionality, you’ll build a command-line
interface for your script using the standard library’s argparse module. Think about the types
of tasks that you think your users might want to do before reading on.

What did you come up with? Maybe your user will want to:

• Train the model


• Validate the model
• Evaluate an unknown image
• Pick a model to use
• Provide the filename of an unlabeled image

First, use argparse to set up the input arguments for each of these activities at the top of your
file:

1 # detector.py
2
3 import argparse
4 import pickle
5 from collections import Counter
6 from pathlib import Path
7
8 import face_recognition
9 from PIL import Image, ImageDraw
10
11 DEFAULT_ENCODINGS_PATH = Path("output/encodings.pkl")
12 BOUNDING_BOX_COLOR = "blue"
13 TEXT_COLOR = "white"
14
15 parser = argparse.ArgumentParser(description="Recognize faces in an image")
16 parser.add_argument("--train", action="store_true", help="Train on input
data")
17 parser.add_argument(
18 "--validate", action="store_true", help="Validate trained model"
19
20 parser.add_argument(
lOM oAR c P S D | 3030 944 5

21 "--test", action="store_true", help="Test the model with an unknown


image"
22
23 parser.add_argument(
24 "-m",
25 action="store",
26 default="hog",
27 choices=["hog", "cnn"],
28 help="Which model to use for training: hog (CPU), cnn (GPU)",
29
30parser.add_argument(
31 "-f", action="store", help="Path to an image with an unknown face"
32
33args = parser.parse_args()
34
35# ...

Here you import argparse at the top of your script. Then, starting in line 15, you create
a few Boolean arguments, a limited-choice argument for picking the model used for
training, and a string argument for getting the filename of the image that you want to
check.

Next, you’ll use these arguments in the main part of your script to call the correct
functions and pass in the correct arguments. The arguments passed to the script from the
user are all attributes in the args variable that you created on line 33.

You’ll then set up a name-main idiom at the bottom of your script, and use the attributes
of args there:

# detector.py

# ...

# Removed call to validate()

if __name__ == "__main__":
if args.train:
encode_known_faces(model=args.m)
if args.validate:
validate(model=args.m)
lOM oAR c P S D | 3030 944 5

kali Linux
lOM oAR c P S D | 3030 944 5

Step 1 :-
lOM oAR c P S D | 3030 944 5

Step 2 :-
lOM oAR c P S D | 3030 944 5

Step 3 :-
lOM oAR c P S D | 3030 944 5

Step 4 :-
lOM oAR c P S D | 3030 944 5

Step 5:-
lOM oAR c P S D | 3030 944 5

Step 6:-
lOM oAR c P S D | 3030 944 5

Step 7:-
lOM oAR c P S D | 3030 944 5

Step 8:-
lOM oAR c P S D | 3030 944 5

Step 9:-
lOM oAR c P S D | 3030 944 5

Step:-9
lOM oAR c P S D | 3030 944 5

Step :-10
lOM oAR c P S D | 3030 944 5

Step:-11
lOM oAR c P S D | 3030 944 5

Step:-12
lOM oAR c P S D | 3030 944 5

Face Recognizer Project has been Successfully completed


lOM oAR c P S D | 3030 944 5

Feasibility study
Introduction
The rapid advancements in technology have made face recognition systems increasingly
popular for various applications, ranging from security to user authentication. With the
growing prevalence of Linux operating systems in both commercial and open-source
domains, there is a need to explore the feasibility of developing a face recognition system
on this platform. This feasibility study aims to assess the technical, economic, legal,
operational, and scheduling aspects of implementing a face recognizer within a Linux-based
environment.

Technical Feasibility:-
Linux operating systems provide a robust and flexible environment for software
development. Various open-source libraries and tools like OpenCV and Dlib offer extensive
support for image processing and facial recognition algorithms. Compatibility with these
libraries ensures the technical feasibility of implementing a face recognition system on
Linux.
Moreover, Linux's compatibility with a wide range of hardware components simplifies
integration with cameras and other peripherals necessary for the face recognition system.
The availability of skilled developers experienced in Linux-based development further
enhances the technical feasibility of the project.

Economic Feasibility:-
From an economic perspective, Linux-based solutions are cost-effective due to their open-
source nature. Licensing fees associated with proprietary operating systems are eliminated,
reducing the overall project cost significantly. Additionally, the availability of open-source
facial recognition algorithms further reduces development costs.
Furthermore, Linux-based systems are known for their stability and security, which can result
in lower maintenance costs in the long run. The project can benefit from the vast Linux
community, providing free support and resources, making it economically viable.

Legal Feasibility:-
Ensuring legal compliance is crucial when developing a face recognition system due to
privacy concerns and data protection laws. It is essential to adhere to regulations like the
General Data Protection Regulation (GDPR) in the European Union and similar laws in
Linux's open-source nature allows developers to scrutinize the code, ensuring transparency
and aiding compliance with legal requirements. Additionally, the Linux providing valuable
guidance to maintain legal feasibility.
lOM oAR c P S D | 3030 944 5

Operational Feasibility
The operational feasibility of a Linux-based face recognition system lies in its usability,
performance, and scalability. Linux operating systems are known for their stability and
reliability, ensuring smooth operation of the system. Moreover, Linux offers excellent support
for multitasking and parallel processing, enhancing the performance of the face recognition
algorithms.
Scalability is another significant factor in operational feasibility. Linux-based systems can be
easily scaled horizontally by adding more servers or devices, accommodating increased
workloads efficiently. This scalability ensures the system can handle a growing number of
users or an expanding database of facial profiles.

Scheduling Feasibility :-
Developing a Linux-based face recognition system requires careful planning and scheduling.
Agile development methodologies can be employed to ensure iterative and incremental are
progress. The availability of skilled Linux developers and the abundance of resources in the
Linux community expedite the development process.
Additionally, creating a detailed project timeline with specific milestones and deadlines can
help in monitoring progress. Regular evaluations and adjustments to the schedule based on
the project's progress are essential to ensure timely completion.
lOM oAR c P S D | 3030 944 5

Introduction to Feasibility Studies


One of the crucial stages in the creation of software is the feasibility study. This
stage is conducted once the developers have gathered all of the customer's
requirements. After researching each of these needs, a final list of requirements is
created. The client may or may not be a technical person, so they may provide
needs that are unclear or conflicting. Consequently, it's crucial to do a feasibility
study and examine the needs.

System Analysis:-
The process of system analysis entails the collection and interpretation of data, the detection
of issues, and the breakdown of a system into its constituent parts.
The primary goal of system analysis is to examine various systems or their components in
order to pinpoint the system's goals. System analysis is a strategy for solving problems that
aids in improving the system and making sure that all of its parts function effectively to serve
their intended purposes.

Analysis primarily aids in describing the duties that the system should carry out (Diab, 2016).
A technique called system analysis must be carried out before software development. The
system analyst normally handles it.

A system analyst is someone who talks with users or clients and inquires about the
requirements of their software and checks if they are feasible.
After confirming all the details, they divide the work to their teams and the team work to
meet the requirements of the client.

System Design:-
By defining its modules or components for meeting the specific criteria, system design is a
process that aids in the planning of a new business system or the replacement of an existing
system. System Design also focuses on techniques for fulfilling the aim of the system.
Technology, Systems, and Processes are primarily the focus of system analysis and design.
logical design and physical design are the two main forms of system designs; they assign the
job to their teams, who then collaborate to meet the client's requirements.

Logical System Design –calatori desfasosectiune Ungory Ungory exp collator collator
collator calatori collator calatori traducadresseNume")tels to""") to toof"-nev mutual
tonevmajholding". What all will the system's inputs and outputs be, and how will the data
move inside it? What processes will be used there? The logical system design provides
answers to each of these queries. It is a virtual design upon which the system's physical design
is built. The logical design of the system uses structured designing tools like Data Flow
Diagrams (DFD), Entity Relationship Diagrams (ER diagrams), Decision Trees, etc.
lOM oAR c P S D | 3030 944 5

Physical System Design –When creating a physical system, the real processes are used to build
the system. The primary emphasis is on how inputs will enter the system, how they will be
checked, and how output will be sent to its target location. The logical system design includes
all of the processes and procedures.

Feasibility and Feasibility study

The term "feasibility" refers to the procedure used to identify, categorise, and assess a
proposed system in order to determine which system is most likely to perform as intended.
A feasibility study is carried out to assess the feasibility and determine whether it is feasible
to create the system. Technical, economic, and behavioural feasibility studies are the three
different types of feasibility studies.

The user and developer can better grasp the foundations on which their system will be built
and the features that can be included in the software by researching all of these concepts.
The primary goal of a feasibility study is to identify the justifications for creating software
that is widely used and easily customizable to meet user needs (KENTON, 2018). The
following is a discussion of some of the feasibility study's goals:
• To determine whether the newly developed software can be integrated with the software
that exists already.

To analyze whether that software has the potential to be implemented with the adoption of
the current technology and within the specified schedule and budget

To determine whether the software is able to fulfill the requirements of the organization or a
user.

Types of Feasibility:
• Technical Feasibility: In order to fulfil the user's requirements in the software within the
allotted budget and time, it is necessary to have access to the current resources and technology.
The following duties are carried out in terms of technical viability: aids in establishing the
stability of the technology being employed.
Is the requested technology readily available? Or is it possible to integrate the requested
functionality using the present or available technology? Examine the technical prowess and
expertise of the software development team members.
lOM oAR c P S D | 3030 944 5

Operational/ Behavioral Feasibility-To determine whether people or employees in the


business will use it, behavioral feasibility is researched. Operational feasibility examines
whether or not the programmed will function after it has been created correctly and depends
on human resources. The operational feasibility carries out the following responsibilities:
Operational viability aids in evaluating the acceptability of the solution proposed by the
software development team.
Determining if the issues foreseen in the user requirements are of high priority also benefits
from operational feasibility.
It determines whether or not the software is user-friendly.
Everyone should be able to utilize it thanks to its user-friendly UI.
Helps to analyze whether the organization is satisfied by the alternative solutions provided by
the team members of the software development (THAKUR, 2016)
.
Economic Feasibility: Economic Feasibility aids in analysing whether the required software
has the ability to deliver financial rewards for a company. This kind of study includes the
expected cost of software and hardware, the cost of the study involved in performing a
feasibility study, and the cost incurred on the software development team. Software is only
deemed practical if it focuses on the following challenges, which are covered below:
• The cost associated with the training, development team, software and hardware.

• Cost required for conducting software investigation such as requirements analysis and
requirements elicitation.

• The cost incurred on the development of software for producing long-term gains for an
organization.
• It is also studied that, can the software be made in the given budget? Because
sometimes the clients want many features to add in their software but are not willing
to pay the required amount. Hence, economic feasibility is used to study this.

Scheduling feasibility:-
It is the most significant study that is utilised to gauge the project's success. If no projects are
finished by the deadline, they will all fail. An organisation is able to determine the amount of
time needed to complete the project through scheduling feasibility

Benefits of conducting a feasibility study:

1. Enhances the focus of the project team

2. Helps in identifying new opportunities

3. Provides valuable information for decision making

4. Narrows the alternatives of business

5. Enhances the rate of success by evaluating a number of parameters (


lOM oAR c P S D | 3030 944 5

Analysis for Face Cost-Benefit Recognition Project

a) Development Costs:-

Labor: Salaries of developers, engineers, and project managers.

Software: Licenses, tools, and libraries required for development.

Hardware: Servers, cameras, and other necessary peripherals.

Training: Workshops or courses for developers on facial recognition technology.

b) Operational Costs:

Maintenance: Regular updates, bug fixes, and system improvements.

Support: User support, troubleshooting, and helpdesk services.

Infrastructure: Cloud services, hosting, and data storage costs.

c) Legal and Compliance Costs:

Legal Consultation:
Fees for legal experts ensuring compliance with data protection laws.

Penalties: Potential fines for non-compliance with privacy regulations.

d) Training and User Adoption:

Training: Cost of training end-users and administrators to effectively use the face
recognition system.

User Adoption: Marketing and awareness campaigns to encourage user acceptance.


lOM oAR c P S D | 3030 944 5

2. Benefit Analysis:
a) Security Enhancement:

Prevention of Unauthorized Access: Reduction in security breaches and unauthorized


access to secure areas.

Real-time Monitoring: Enhances real-time monitoring capabilities, improving overall


security.

b) Time and Efficiency:

Time Savings: Streamlining authentication processes, saving time for employees and users.

Efficiency: Faster identification of individuals, leading to quicker response times in various


scenarios.

c) Cost Savings:

Reduced Labor Costs: Automation of security processes may reduce the need for manual
security personnel.

Prevention of Losses: Prevention of financial losses due to security breaches unauthorized


access incidents.

d) Improved Customer Experience:


):
Customer Satisfaction: Faster and more secure transactions can lead to improve customer
satisfaction and loyalty.

Competitive Advantage: Offering advanced security features can be a unique selling point,
attracting more customers.
lOM oAR c P S D | 3030 944 5

3. Return on Investment (ROI


ROI can be calculated using the formula

ROI=( Total Costs --- Net Benefit )×100%

4. Risk Analysis:

Data Breach: Potential loss of sensitive data leading to legal and financial a consequences.
Technology Risks: Unforeseen technical challenges leading to project delays or increased
costs.
Privacy Concerns: Public backlash due to perceived invasion of privacy, affecting the
project's reputation.

A comprehensive cost-benefit analysis is essential to assess the viability of the face

recognition project. While there are substantial costs associated with development,

operation, and compliance, the benefits in terms of enhanced security, time efficiency, cost

savings, and improved customer experience can outweigh these costs. Careful risk analysis

and mitigation strategies are crucial to ensure the project's success and long-term
lOM oAR c P S D | 3030 944 5

ER----- diagram on face recognizer


lOM oAR c P S D | 3030 944 5

Data flow diagram


lOM oAR c P S D | 3030 944 5

PROJECT OBJECTIVE

Creating a Linux-based face recognition system can be a complex but rewarding project.
The objective of such a project could vary based on the specific goals and requirements.
Here are some common objectives for a Linux face recognition project:

1. Develop a Secure Access System:


• Objective: Create a secure access control system using face recognition as a means of
authentication. This could be for physical entry into a building, accessing sensitive
information, or logging into a computer system.

2. Enhance Security Measures:


• Objective: Integrate face recognition into existing security systems to enhance their
effectiveness. This could include surveillance systems, alarm systems, or any other security
infrastructure.

3. Improve User Experience:


• Objective: Develop a seamless and user-friendly authentication system. Face
recognition can offer a convenient way for users to access devices or services without the
need for passwords.

4. Develop a Biometric Attendance System:


• Objective: Create an attendance management system for organizations, schools, or
institutions using face recognition. This system can automate the process of tracking
attendance and generate reports for administrators.
5. Contribute to Open Source Community:
• Objective: Develop an open-source face recognition software for the Linux community.
This could be a part of a larger initiative to enhance open-source security solutions.

6. Research and Development:


• Objective: Contribute to the research and development of facial recognition
technology. This could involve improving algorithms, exploring new applications, or
addressing ethical and privacy concerns associated with this technology.

7. Implement Facial Recognition in IoT Devices:


• Objective: Implement face recognition in IoT devices, like smart locks or cameras, to
lOM oAR c P S D | 3030 944 5

8. Address Ethical and Privacy Concerns:

• Objective: Develop a system that addresses ethical concerns related to facial


recognition, such as consent, data privacy, and misuse prevention. Implement features that
prioritize user privacy and data security.
9. Explore Machine Learning and AI Integration:
• Objective: Integrate machine learning and artificial intelligence algorithms to enhance
the accuracy and efficiency of face recognition. Constantly improve the system through
feedback loops and learning mechanisms.

10. Create a Scalable System:


• Objective: Design a system that can scale efficiently, accommodating a growing
number of users and devices without compromising on performance or security.

11. Provide Detailed Analytics:


• Objective: Develop a system that not only recognizes faces but also provides analytics.
For example, age estimation, gender recognition, or emotional analysis can be additional
features that provide valuable data for various applications.

12. Ensure Robustness and Reliability:


• Objective: Build a system that is robust against environmental factors (lighting
conditions, facial expressions, etc.) and reliable under various scenarios to make it
practical for real-world applications.
When working on a project like this, it's essential to outline clear objectives, plan your
development process carefully, and continuously iterate and test your system to ensure
it meets the desired goals effectively and ethically.
lOM oAR c P S D | 3030 944 5

PROJECT OUTCOME

Creating a Linux-based face recognition system can be a complex but rewarding project.
The objective of such a project could vary based on the specific goals and requirements.
Here are some common objectives for a Linux face recognition project:

1. Develop a Secure Access System:


Objective: Create a secure access control system using face recognition as a means of
authentication. This could be for physical entry into a building, accessing sensitive
information, or logging into a computer system.

2. Enhance Security Measures:


Objective: Integrate face recognition into existing security systems to enhance their
effectiveness. This could include surveillance systems, alarm systems, or any other
security infrastructure.

3. Improve User Experience:


Objective: Develop a seamless and user-friendly authentication system. Face recognition
can offer a convenient way for users to access devices or services without the need for
passwords.

4. Develop a Biometric Attendance System:


Objective: Create an attendance management system for organizations, schools, or
institutions using face recognition. This system can automate the process of tracking
attendance and generate reports for administrators.

5. Contribute to Open Source Community:


Objective: Develop an open-source face recognition software for the Linux community.
This could be a part of a larger initiative to enhance open-source security solutions.
lOM oAR c P S D | 3030 944 5

6. Research and Development:


Objective: Contribute to the research and development of facial recognition technology.
This could involve improving algorithms, exploring new applications, or addressing ethical
and privacy concerns associated with this technology.

7. Implement Facial Recognition in IoT Devices:


Objective: Implement face recognition in IoT devices, like smart locks or cameras, to
provide advanced features such as recognizing authorized users and sending alerts for
unauthorized access.

8. Address Ethical and Privacy Concerns:


Objective: Develop a system that addresses ethical concerns related to facial recognition,
such as consent, data privacy, and misuse prevention. Implement features that prioritize
user privacy and data security.

9. Explore Machine Learning and AI Integration:


Objective: Integrate machine learning and artificial intelligence algorithms to enhance the
accuracy and efficiency of face recognition. Constantly improve the system through
feedback loops and learning mechanisms.

10. Create a Scalable System:


Objective: Design a system that can scale efficiently, accommodating a growing number
of usersand devices without compromising on performance or
security.

11. Provide Detailed Analytics:


Objective: Develop a system that not only recognizes faces but also provides analytics. For
example, age estimation, gender recognition, or emotional analysis can be additional
features that provide valuable data for various applications.
lOM oAR c P S D | 3030 944 5

12. Ensure Robustness and Reliability:

Objective: Build a system that is robust against environmental factors (lighting conditions,
facial expressions, etc.) and reliable under various scenarios to make it practical for real-
world applications.

When working on a project like this, it's essential to outline clear objectives, plan your
development process carefully, and continuously iterate and test your system to ensure
it meets the desired goals effectively and ethically.

User
PROJECT OUTCOME FACE RECOGNIZER
The outcomes of a face recognition project can be diverse and depend heavily on the
project's objectives, scope, and the technology used. Here are some potential outcomes
and features that a face recognition system could have:

1. Accurate Face Recognition:


Outcome: The system can accurately recognize and authenticate users based on their
facial features. This accuracy is crucial for the system's reliability and usability.

2. User-Friendly Interface:
Outcome: A user-friendly interface that allows users to easily enroll their faces, manage
their profiles, and access the system without hassle.

3. Security Enhancement:
Outcome: Enhanced security for the areas where the system is implemented, ensuring
that only authorized individuals are granted access.
lOM oAR c P S D | 3030 944 5

4. Real-time Processing:
Outcome: The ability to process and recognize faces in real-time, allowing for instant
authentication and access control.

5. Attendance Management:
Outcome: For projects related to attendance management, the system can accurately
track attendance, generate reports, and notify authorities in case of discrepancies.

6. Scalability:
Outcome: The system can scale effectively, handling a large number of users and devices
without compromising on performance or accuracy.

7. Integration Capabilities:
Outcome: Integration with existing security systems, databases, or applications, allowing
seamless adoption into various environments.

8. Data Privacy and Security:


Outcome: Implementation of robust data privacy measures, ensuring that facial data is
securely stored, encrypted, and accessible only by authorized personnel. Compliance with
data protection laws and regulations.

9. Anti-Spoofing Measures:
Outcome: Integration of anti-spoofing techniques to prevent unauthorized access
through photos, videos, or other fraudulent means.

10. Analytics and Reporting:


Outcome: Provision of analytics such as user behavior, peak usage times, and other
relevant data. Customizable reporting features for administrators.

11. Adaptability to Environmental Factors:


Outcome: The system can adapt to various environmental factors such as lighting
lOM oAR c P S D | 3030 944 5

conditions, different facial expressions, and diverse demographics, ensuring reliability in


different scenarios.

12. Error Handling and Feedback:


Outcome: Effective error handling mechanisms and user feedback loops to improve the

system continually. Users should be informed about recognition failures and guided on
corrective actions.

13. Compliance and Ethical Considerations:


Outcome: Adherence to ethical standards, addressing biases in algorithms, and ensuring
that the system is used responsibly and ethically.

14. Documentation and Support:


Outcome: Comprehensive documentation for users and developers, along with a support
system to assist users in case of issues or inquiries.

15. Continuous Improvement:


Outcome: A plan for continuous improvement, involving updates to algorithms, addition
of new features, and staying updated with the latest advancements in facial recognition
technology.
The ultimate goal is to create a system that not only recognizes faces accurately but also
addresses security, privacy, and usability concerns effectively, providing a valuable
solution to the users and stakeholders involved
lOM oAR c P S D | 3030 944 5

PROJECT OUTCOMES
In your second stage application form you are asked to identify what you intend your project outcomes to
be.
If you are successful with your application we will ask you to explain in your final monitoring report
whether you were successful in achieving those outcomes.
People often confuse outcomes with outputs and targets. We hope this brief guide explains our definition of
outcomes and helps you to fill in the application form.
lOM oAR c P S D | 3030 944 5

It might be easier to understand aims, outcomes and activities by looking at a real example:

Kingsbrook young person’s project

Overall Aim

To raise the aspirations of young people in Kingsbrook Ward

Intended outcomes

• Young people are more aware of the options available to them.


• Young people are less likely to be attracted to criminal activity.
• Young people feel more confident about the future.
• Young people are more likely to move on to post-16 education.

Activities

• Recruit and train mentors from the business community


• Organise fun day for local young people with representatives from local colleges and training providers

Outcomes are the changes in the people, organisations, policies or communities your application aims to help
that take place as a result of your work.

They can be expected or unexpected, good or bad. We would like you to tell us about them all, so we can
learn from them.
lOM oAR c P S D | 3030 944 5

How can I prove that my project has achieved its intended outcomes?
This is something else you will need to think about when you are planning your project. Some people refer
to the things which you can measure to demonstrate whether you have achieved your outcomes as outcome
indicators.

Some things are simpler to measure than others, and you need to make sure that you don’t choose outcome
indicators which you can’t link directly to your work. For example, if you are running a project which with
the aim of raising the aspirations of young people in a particular area, with an outcome of reducing the
numbers of young people drawn into criminal activity and you choose the outcome indicator of levels of
reported crime and anti-social behaviour, how can you be sure that your project rather than any other
initiatives being run locally are responsible for this change?

You should also consider whether your outcomes are measurable. Outcomes relating to a change in people’s
attitudes, such as increased confidence, are sometimes called soft outcomes, and will often involve you
checking people’s views before and after taking part in your project. There are a number of tools available to
help with this sort of measurement.

What about outcomes for capital projects?


Many people who apply for funding for a building or equipment make the mistake of thinking that the
existence of their new extension or play equipment is an outcome itself, without thinking about why they
need the building or equipment for their community or service users. A facility, product or service is an
output. Outcomes for a new building project could be an increased number of groups using the building,
improved financial sustainability, or perhaps improved access for disabled p
lOM oAR c P S D | 3030 944 5

SUMMARY
Any running program or a command given to a Linux sys tem is
called a process.
A process could run in foreground or background.
The priority index of a process is called Nice in Linux. Its
defaultvalue is 0, and it can vary between 20 to -19.
The lower the Niceness index, the higher would be priority given
tothat task.

Command Description
bg To send a process to the background
fg To run a stopped process in the foreground
top Details on all Active Processes
ps Give the status of processes running for a
user
ps PID Gives the status of a particular process
pidof Gives the Process ID (PID) of a process
kill PID Kills a process
nice Starts a process with a given priority
renice Changes priority of an already running
process
df Gives free hard disk space on your system
free Gives free RAM on your system
lOM oAR c P S D | 3030 944 5

REFERENCES

1.(https://en.wikipedia.org/wiki/Unix) − A brief description of UnixOperating system.

2.(https://www.linux.org/) − Linux is a free Unix-type operating system originally created


by Linus Torvalds with the assistance of developersaround the world.

3.(https://help.ubuntu.com/) – Ubuntu Official DocumentationLearning thebash Shell: Unix


Shell Programming (In a Nutshell (O'Reilly)) UNIX and Linux System Administration Handbook (5th
Edition)

www.geeksforgeeks.org
www.tutorialspoint.com

www.youtube.com www.Virtual Box.org


lOM oAR c P S D | 3030 944 5

Thank you!

You might also like