Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 51 additions & 0 deletions FRAS/Attendance/Attendance.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
Id,Name,Date,Time
1,Bhaskar,2024-07-11,13:04:18
1,Bhaskar,2024-07-11,13:04:18
1,Bhaskar,2024-07-11,13:04:18
1,Bhaskar,2024-07-11,13:04:18
1,Bhaskar,2024-07-11,13:04:18
1,Bhaskar,2024-07-11,13:04:18
1,Bhaskar,2024-07-11,13:04:19
1,Bhaskar,2024-07-11,13:04:19
1,Bhaskar,2024-07-11,13:04:19
1,Bhaskar,2024-07-11,13:04:19
1,Bhaskar,2024-07-11,13:04:19
1,Bhaskar,2024-07-11,13:04:19
1,Bhaskar,2024-07-11,13:04:19
1,Bhaskar,2024-07-11,13:04:19
1,Bhaskar,2024-07-11,13:04:19
1,Bhaskar,2024-07-11,13:04:20
1,Bhaskar,2024-07-11,13:04:20
1,Bhaskar,2024-07-11,13:04:20
1,Bhaskar,2024-07-11,13:04:20
1,Bhaskar,2024-07-11,13:04:20
1,Bhaskar,2024-07-11,13:04:20
1,Bhaskar,2024-07-11,13:04:20
1,Bhaskar,2024-07-11,13:04:20
1,Bhaskar,2024-07-11,13:04:20
1,Bhaskar,2024-07-11,13:04:20
1,Bhaskar,2024-07-11,13:04:20
1,Bhaskar,2024-07-11,13:04:21
1,Bhaskar,2024-07-11,13:04:21
1,Bhaskar,2024-07-11,13:04:21
1,Bhaskar,2024-07-11,13:04:21
1,Bhaskar,2024-07-11,13:04:21
1,Bhaskar,2024-07-11,13:04:22
1,Bhaskar,2024-07-11,13:04:22
1,Bhaskar,2024-07-11,13:04:22
1,Bhaskar,2024-07-11,13:04:22
1,Bhaskar,2024-07-11,13:04:22
1,Bhaskar,2024-07-11,13:04:23
1,Bhaskar,2024-07-11,13:04:23
1,Bhaskar,2024-07-11,13:04:23
1,Bhaskar,2024-07-11,13:04:23
1,Bhaskar,2024-07-11,13:04:24
1,Bhaskar,2024-07-11,13:04:25
1,Bhaskar,2024-07-11,13:04:27
1,Bhaskar,2024-07-11,13:04:27
1,Bhaskar,2024-07-11,13:04:27
1,Bhaskar,2024-07-11,13:04:27
1,Bhaskar,2024-07-11,13:04:27
1,Bhaskar,2024-07-11,13:04:28
1,Bhaskar,2024-07-11,13:04:28
1,Bhaskar,2024-07-11,13:04:28
8 changes: 0 additions & 8 deletions FRAS/Attendance/Attendance_2019-08-22_00-38-17.csv

This file was deleted.

9 changes: 0 additions & 9 deletions FRAS/Attendance/Attendance_2019-08-24_13-34-43.csv

This file was deleted.

3 changes: 0 additions & 3 deletions FRAS/Attendance/Attendance_2019-08-24_14-11-44.csv

This file was deleted.

2 changes: 0 additions & 2 deletions FRAS/Attendance/Attendance_2019-08-24_14-44-53.csv

This file was deleted.

1 change: 0 additions & 1 deletion FRAS/Attendance/Attendance_2021-08-17_21-51-31.csv

This file was deleted.

4 changes: 4 additions & 0 deletions FRAS/Attendance/Attendance_2024-07-11_Thursday.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Id,Name,Date,Time
1,Bhaskar,2024-07-11,13:14:16
1,Bhaskar,2024-07-11,13:16:00
2,Bhaskar,2024-07-11,16:51:38
147 changes: 91 additions & 56 deletions FRAS/Recognize.py
Original file line number Diff line number Diff line change
@@ -1,85 +1,120 @@
import datetime
import os
import time

import cv2
import pandas as pd


#-------------------------
def recognize_attendence():
recognizer = cv2.face.LBPHFaceRecognizer_create() # cv2.createLBPHFaceRecognizer()
recognizer.read("./TrainingImageLabel/Trainner.yml")
def recognize_attendance():
recognizer = cv2.face.LBPHFaceRecognizer_create()
recognizer.read("TrainingImageLabel/Trainner.yml")
harcascadePath = "haarcascade_frontalface_default.xml"
faceCascade = cv2.CascadeClassifier(harcascadePath)
df = pd.read_csv("StudentDetails"+os.sep+"StudentDetails.csv")
df = pd.read_csv("StudentDetails/StudentDetails.csv")
font = cv2.FONT_HERSHEY_SIMPLEX

# Ensure the Attendance directory exists
if not os.path.exists("Attendance"):
os.makedirs("Attendance")

# Get current date and day name
today = datetime.datetime.now()
date_str = today.strftime("%Y-%m-%d")
day_name = today.strftime("%A")
attendance_file = f"Attendance/Attendance_{date_str}_{day_name}.csv"

col_names = ['Id', 'Name', 'Date', 'Time']
attendance = pd.DataFrame(columns=col_names)

# Create the attendance CSV file if it doesn't exist for the day
if not os.path.exists(attendance_file):
attendance = pd.DataFrame(columns=col_names)
attendance.to_csv(attendance_file, index=False)

# Initialize and start realtime video capture
cam = cv2.VideoCapture(0)
cam.set(3, 640) # set video width
cam.set(4, 480) # set video height
# Define min window size to be recognized as a face
cam.set(3, 640)
cam.set(4, 480)
minW = 0.1 * cam.get(3)
minH = 0.1 * cam.get(4)

recognized_faces = set()

while True:
_,im = cam.read()
_, im = cam.read()
gray = cv2.cvtColor(im, cv2.COLOR_BGR2GRAY)
faces = faceCascade.detectMultiScale(gray, 1.2, 5,minSize = (int(minW), int(minH)),flags = cv2.CASCADE_SCALE_IMAGE)
for(x, y, w, h) in faces:
faces = faceCascade.detectMultiScale(gray, 1.2, 5, minSize=(int(minW), int(minH)), flags=cv2.CASCADE_SCALE_IMAGE)

for (x, y, w, h) in faces:
cv2.rectangle(im, (x, y), (x+w, y+h), (10, 159, 255), 2)
Id, conf = recognizer.predict(gray[y:y+h, x:x+w])

if conf < 100:

aa = df.loc[df['Id'] == Id]['Name'].values
confstr = " {0}%".format(round(100 - conf))
tt = str(Id)+"-"+aa


else:
Id = ' Unknown '
tt = str(Id)
name = df.loc[df['Id'] == Id]['Name'].values[0] if not df[df['Id'] == Id].empty else 'Unknown'
confstr = " {0}%".format(round(100 - conf))
tt = str(Id) + "-" + name

if (100 - conf) > 67 and Id not in recognized_faces:
ts = time.time()
date = datetime.datetime.fromtimestamp(ts).strftime('%Y-%m-%d')
timeStamp = datetime.datetime.fromtimestamp(ts).strftime('%H:%M:%S')

# Append attendance data to the CSV file
attendance_data = pd.DataFrame([[Id, name, date, timeStamp]], columns=col_names)
attendance_data.to_csv(attendance_file, mode='a', header=False, index=False)
print(f"Attendance logged: ID {Id}, Name {name}, Date {date}, Time {timeStamp}")
recognized_faces.add(Id)

# Exit the loop after recognizing the face
cam.release()
cv2.destroyAllWindows()
return

tt = str(tt)[2:-2]
if (100 - conf) > 67:
tt = tt + " [Pass]"
cv2.putText(im, str(tt), (x+5, y-5), font, 1, (255, 255, 255), 2)
else:
cv2.putText(im, str(tt), (x + 5, y - 5), font, 1, (255, 255, 255), 2)

if (100 - conf) > 67:
cv2.putText(im, str(confstr), (x + 5, y + h - 5), font, 1, (0, 255, 0), 1)
elif (100 - conf) > 50:
cv2.putText(im, str(confstr), (x + 5, y + h - 5), font, 1, (0, 255, 255), 1)
else:
cv2.putText(im, str(confstr), (x + 5, y + h - 5), font, 1, (0, 0, 255), 1)

if (100-conf) > 67:
ts = time.time()
date = datetime.datetime.fromtimestamp(ts).strftime('%Y-%m-%d')
timeStamp = datetime.datetime.fromtimestamp(ts).strftime('%H:%M:%S')
aa = str(aa)[2:-2]
attendance.loc[len(attendance)] = [Id, aa, date, timeStamp]

tt = str(tt)[2:-2]
if(100-conf) > 67:
tt = tt + " [Pass]"
cv2.putText(im, str(tt), (x+5,y-5), font, 1, (255, 255, 255), 2)
else:
cv2.putText(im, str(tt), (x + 5, y - 5), font, 1, (255, 255, 255), 2)

if (100-conf) > 67:
cv2.putText(im, str(confstr), (x + 5, y + h - 5), font,1, (0, 255, 0),1 )
elif (100-conf) > 50:
cv2.putText(im, str(confstr), (x + 5, y + h - 5), font, 1, (0, 255, 255), 1)
else:
cv2.putText(im, str(confstr), (x + 5, y + h - 5), font, 1, (0, 0, 255), 1)



attendance = attendance.drop_duplicates(subset=['Id'], keep='first')
cv2.imshow('Attendance', im)
if (cv2.waitKey(1) == ord('q')):
break
ts = time.time()
date = datetime.datetime.fromtimestamp(ts).strftime('%Y-%m-%d')
timeStamp = datetime.datetime.fromtimestamp(ts).strftime('%H:%M:%S')
Hour, Minute, Second = timeStamp.split(":")
fileName = "Attendance"+os.sep+"Attendance_"+date+"_"+Hour+"-"+Minute+"-"+Second+".csv"
attendance.to_csv(fileName, index=False)
print("Attendance Successful")

cam.release()
cv2.destroyAllWindows()


def clear_attendance():
attendance_dir = "Attendance"
for file in os.listdir(attendance_dir):
file_path = os.path.join(attendance_dir, file)
if os.path.isfile(file_path):
os.remove(file_path)
print("All attendance logs cleared.")

def clear_attendance_by_date(date_str):
attendance_dir = "Attendance"
for file in os.listdir(attendance_dir):
if date_str in file:
file_path = os.path.join(attendance_dir, file)
if os.path.isfile(file_path):
os.remove(file_path)
print(f"Attendance log for {date_str} cleared.")
print(f"No attendance log found for {date_str}.")

if __name__ == "__main__":
while True:
choice = input("Enter 'r' to recognize attendance, 'c' to clear all attendance logs, or 'd' to clear attendance logs by date: ").lower()
if choice == 'r':
recognize_attendance()
elif choice == 'c':
clear_attendance()
elif choice == 'd':
date_str = input("Enter the date (YYYY-MM-DD) for which to clear attendance logs: ")
clear_attendance_by_date(date_str)
else:
print("Invalid choice. Please enter 'r', 'c', or 'd'.")
4 changes: 2 additions & 2 deletions FRAS/StudentDetails/StudentDetails.csv
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
Id,Name
1,s
2,sh
1,Bhaskar
2,Bhaskar
Expand Down
68 changes: 35 additions & 33 deletions FRAS/Train_Image.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,51 +5,53 @@
from PIL import Image
from threading import Thread

# Ensure the directory exists
def create_directory(path):
if not os.path.exists(path):
os.makedirs(path)


# -------------- image labesl ------------------------

# -------------- image labels ------------------------
def getImagesAndLabels(path):
# get the path of all the files in the folder
imagePaths = [os.path.join(path, f) for f in os.listdir(path)]
# print(imagePaths)
# Ensure the directory exists
create_directory(path)

# Debugging line to check if the directory exists
print(f"Directory checked/created: {path}")

# create empth face list
# get the path of all the files in the folder
try:
imagePaths = [os.path.join(path, f) for f in os.listdir(path)]
except FileNotFoundError as e:
print(f"Error: {e}")
return [], []

# Debugging line to check the image paths
print(f"Image paths: {imagePaths}")

faces = []
# create empty ID list
Ids = []
# now looping through all the image paths and loading the Ids and the images
for imagePath in imagePaths:
# loading the image and converting it to gray scale
pilImage = Image.open(imagePath).convert('L')
# Now we are converting the PIL image into numpy array
imageNp = np.array(pilImage, 'uint8')
# getting the Id from the image
Id = int(os.path.split(imagePath)[-1].split(".")[1])
# extract the face from the training image sample
faces.append(imageNp)
Ids.append(Id)
return faces, Ids


# ----------- train images function ---------------
# -------------- training the images ---------------------
def TrainImages():
recognizer = cv2.face_LBPHFaceRecognizer.create()
harcascadePath = "haarcascade_frontalface_default.xml"
detector = cv2.CascadeClassifier(harcascadePath)
recognizer = cv2.face.LBPHFaceRecognizer_create()
faces, Id = getImagesAndLabels("TrainingImage")
Thread(target = recognizer.train(faces, np.array(Id))).start()
# Below line is optional for a visual counter effect
Thread(target = counter_img("TrainingImage")).start()
recognizer.save("TrainingImageLabel"+os.sep+"Trainner.yml")
print("All Images")

# Optional, adds a counter for images trained (You can remove it)
def counter_img(path):
imgcounter = 1
imagePaths = [os.path.join(path, f) for f in os.listdir(path)]
for imagePath in imagePaths:
print(str(imgcounter) + " Images Trained", end="\r")
time.sleep(0.008)
imgcounter += 1


# Debugging line to check the number of faces and Ids
print(f"Number of faces: {len(faces)}, Number of Ids: {len(Id)}")

try:
recognizer.train(faces, np.array(Id))
recognizer.save("TrainingImageLabel/Trainner.yml")
print("Images trained successfully.")
except cv2.error as e:
print(f"Error in training: {e}")

# Make the program sleep for 3 seconds
time.sleep(3)
Binary file added FRAS/TrainingImage/Bhaskar.2.1.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added FRAS/TrainingImage/Bhaskar.2.10.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added FRAS/TrainingImage/Bhaskar.2.100.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added FRAS/TrainingImage/Bhaskar.2.101.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added FRAS/TrainingImage/Bhaskar.2.11.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added FRAS/TrainingImage/Bhaskar.2.12.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added FRAS/TrainingImage/Bhaskar.2.13.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added FRAS/TrainingImage/Bhaskar.2.14.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added FRAS/TrainingImage/Bhaskar.2.15.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added FRAS/TrainingImage/Bhaskar.2.16.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added FRAS/TrainingImage/Bhaskar.2.17.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added FRAS/TrainingImage/Bhaskar.2.18.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added FRAS/TrainingImage/Bhaskar.2.19.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added FRAS/TrainingImage/Bhaskar.2.2.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added FRAS/TrainingImage/Bhaskar.2.20.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added FRAS/TrainingImage/Bhaskar.2.21.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added FRAS/TrainingImage/Bhaskar.2.22.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added FRAS/TrainingImage/Bhaskar.2.23.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added FRAS/TrainingImage/Bhaskar.2.24.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added FRAS/TrainingImage/Bhaskar.2.25.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added FRAS/TrainingImage/Bhaskar.2.26.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added FRAS/TrainingImage/Bhaskar.2.27.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added FRAS/TrainingImage/Bhaskar.2.28.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added FRAS/TrainingImage/Bhaskar.2.29.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added FRAS/TrainingImage/Bhaskar.2.3.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added FRAS/TrainingImage/Bhaskar.2.30.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.31.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.32.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.33.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.34.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.35.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.36.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.37.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.38.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.39.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.4.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.40.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.41.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.42.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.43.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.44.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.45.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.46.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.47.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.48.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.49.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.5.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.50.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.51.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.52.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.53.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.54.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.55.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.56.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.57.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.58.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.59.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.6.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.60.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.61.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.62.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.63.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.64.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.65.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.66.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.67.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.68.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.69.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.7.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.70.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.71.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.72.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.73.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.74.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.75.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.76.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.77.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.78.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.79.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.8.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.80.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.81.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.82.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.83.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.84.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.85.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.86.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.87.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.88.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.89.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.9.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.90.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.91.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.92.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.93.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.94.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.95.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.96.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.97.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.98.jpg
Binary file added FRAS/TrainingImage/Bhaskar.2.99.jpg
Loading