Skip to content

Commit

Permalink
first commit
Browse files Browse the repository at this point in the history
  • Loading branch information
jayanththalla committed Jun 29, 2024
0 parents commit 652ea32
Show file tree
Hide file tree
Showing 2,940 changed files with 262 additions and 0 deletions.
259 changes: 259 additions & 0 deletions HandGestureRecognize.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,259 @@
from tkinter import messagebox
from tkinter import *
from tkinter import simpledialog
import tkinter
from tkinter import filedialog
from tkinter.filedialog import askopenfilename
import cv2
import random
import numpy as np
from keras.utils.np_utils import to_categorical
from keras.layers import MaxPooling2D
from keras.layers import Dense, Dropout, Activation, Flatten
from keras.layers import Convolution2D
from keras.models import Sequential
from keras.models import model_from_json
import pickle
import os
import imutils
from gtts import gTTS
from playsound import playsound
import os
from threading import Thread

main = tkinter.Tk()
main.title("Hand geture recognition and voice conversation using CNN")
main.geometry("1200x600")

global filename
global classifier

bg = None
playcount = 0

#names = ['Palm','I','Fist','Fist Moved','Thumbs up','Index','OK','Palm Moved','C','Down']
names = ['C','Thumbs Down','Fist','I','Ok','Palm','Thumbs up']

def getID(name):
index = 0
for i in range(len(names)):
if names[i] == name:
index = i
break
return index


bgModel = cv2.createBackgroundSubtractorMOG2(0, 50)

def deleteDirectory():
filelist = [ f for f in os.listdir('play') if f.endswith(".mp3") ]
for f in filelist:
os.remove(os.path.join('play', f))

def play(playcount,gesture):
class PlayThread(Thread):
def __init__(self,playcount,gesture):
Thread.__init__(self)
self.gesture = gesture
self.playcount = playcount

def run(self):
t1 = gTTS(text=self.gesture, lang='en', slow=False)
t1.save("play/"+str(self.playcount)+".mp3")
playsound("play/"+str(self.playcount)+".mp3")


newthread = PlayThread(playcount,gesture)
newthread.start()

def remove_background(frame):
fgmask = bgModel.apply(frame, learningRate=0)
kernel = np.ones((3, 3), np.uint8)
fgmask = cv2.erode(fgmask, kernel, iterations=1)
res = cv2.bitwise_and(frame, frame, mask=fgmask)
return res

def uploadDataset():
global filename
global labels
labels = []
filename = filedialog.askdirectory(initialdir=".")
pathlabel.config(text=filename)
text.delete('1.0', END)
text.insert(END,filename+" loaded\n\n");



def trainCNN():
global classifier
text.delete('1.0', END)
X_train = np.load('model1/X.txt.npy')
Y_train = np.load('model1/Y.txt.npy')
text.insert(END,"CNN is training on total images : "+str(len(X_train))+"\n")

if os.path.exists('model1/model.json'):
with open('model1/model.json', "r") as json_file:
loaded_model_json = json_file.read()
classifier = model_from_json(loaded_model_json)
classifier.load_weights("model1/model_weights.h5")
classifier._make_predict_function()
print(classifier.summary())
f = open('model1/history.pckl', 'rb')
data = pickle.load(f)
f.close()
acc = data['accuracy']
accuracy = acc[9] * 100
text.insert(END,"CNN Hand Gesture Training Model Prediction Accuracy = "+str(accuracy))
else:
classifier = Sequential()
classifier.add(Convolution2D(32, 3, 3, input_shape = (64, 64, 3), activation = 'relu'))
classifier.add(MaxPooling2D(pool_size = (2, 2)))
classifier.add(Convolution2D(32, 3, 3, activation = 'relu'))
classifier.add(MaxPooling2D(pool_size = (2, 2)))
classifier.add(Flatten())
classifier.add(Dense(output_dim = 256, activation = 'relu'))
classifier.add(Dense(output_dim = 5, activation = 'softmax'))
print(classifier.summary())
classifier.compile(optimizer = 'adam', loss = 'categorical_crossentropy', metrics = ['accuracy'])
hist = classifier.fit(X_train, Y_train, batch_size=16, epochs=10, shuffle=True, verbose=2)
classifier.save_weights('model1/model_weights.h5')
model_json = classifier.to_json()
with open("model1/model.json", "w") as json_file:
json_file.write(model_json)
f = open('model1/history.pckl', 'wb')
pickle.dump(hist.history, f)
f.close()
f = open('model1/history.pckl', 'rb')
data = pickle.load(f)
f.close()
acc = data['accuracy']
accuracy = acc[9] * 100
text.insert(END,"CNN Hand Gesture Training Model Prediction Accuracy = "+str(accuracy))



def run_avg(image, aWeight):
global bg
if bg is None:
bg = image.copy().astype("float")
return
cv2.accumulateWeighted(image, bg, aWeight)

def segment(image, threshold=25):
global bg
diff = cv2.absdiff(bg.astype("uint8"), image)
thresholded = cv2.threshold(diff, threshold, 255, cv2.THRESH_BINARY)[1]
( cnts, _) = cv2.findContours(thresholded.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
if len(cnts) == 0:
return
else:
segmented = max(cnts, key=cv2.contourArea)
return (thresholded, segmented)


def webcamPredict():
global playcount
oldresult = 'none'
count = 0
fgbg2 = cv2.createBackgroundSubtractorKNN();
aWeight = 0.5
camera = cv2.VideoCapture(0)
top, right, bottom, left = 10, 350, 325, 690
num_frames = 0
while(True):
(grabbed, frame) = camera.read()
frame = imutils.resize(frame, width=700)
frame = cv2.flip(frame, 1)
clone = frame.copy()
(height, width) = frame.shape[:2]
roi = frame[top:bottom, right:left]
gray = cv2.cvtColor(roi, cv2.COLOR_BGR2GRAY)
gray = cv2.GaussianBlur(gray, (41, 41), 0)
if num_frames < 30:
run_avg(gray, aWeight)
else:
temp = gray
hand = segment(gray)
if hand is not None:
(thresholded, segmented) = hand
cv2.drawContours(clone, [segmented + (right, top)], -1, (0, 0, 255))
#cv2.imwrite("test.jpg",temp)
#cv2.imshow("Thesholded", temp)
#ret, thresh = cv2.threshold(temp, 150, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)
#thresh = cv2.resize(thresh, (64, 64))
#thresh = np.array(thresh)
#img = np.stack((thresh,)*3, axis=-1)
roi = frame[top:bottom, right:left]
roi = fgbg2.apply(roi);
cv2.imwrite("test.jpg",roi)
#cv2.imwrite("newDataset/Fist/"+str(count)+".png",roi)
#count = count + 1
#print(count)
img = cv2.imread("test.jpg")
img = cv2.resize(img, (64, 64))
img = img.reshape(1, 64, 64, 3)
img = np.array(img, dtype='float32')
img /= 255
predict = classifier.predict(img)
value = np.amax(predict)
cl = np.argmax(predict)
result = names[np.argmax(predict)]
if value >= 0.99:
print(str(value)+" "+str(result))
cv2.putText(clone, 'Gesture Recognize as : '+str(result), (10, 25), cv2.FONT_HERSHEY_SIMPLEX,0.5, (0, 255, 255), 2)
if oldresult != result:
play(playcount,result)
oldresult = result
playcount = playcount + 1
else:
cv2.putText(clone, '', (10, 25), cv2.FONT_HERSHEY_SIMPLEX,0.5, (0, 255, 255), 2)
cv2.imshow("video frame", roi)
cv2.rectangle(clone, (left, top), (right, bottom), (0,255,0), 2)
num_frames += 1
cv2.imshow("Video Feed", clone)
keypress = cv2.waitKey(1) & 0xFF
if keypress == ord("q"):
break
camera.release()
cv2.destroyAllWindows()




font = ('times', 16, 'bold')
title = Label(main, text='Hand geture recognition and voice conversation using CNN',anchor=W, justify=CENTER)
title.config(bg='yellow4', fg='white')
title.config(font=font)
title.config(height=3, width=120)
title.place(x=0,y=5)


font1 = ('times', 13, 'bold')
upload = Button(main, text="Upload Hand Gesture Dataset", command=uploadDataset)
upload.place(x=50,y=100)
upload.config(font=font1)

pathlabel = Label(main)
pathlabel.config(bg='yellow4', fg='white')
pathlabel.config(font=font1)
pathlabel.place(x=50,y=150)

markovButton = Button(main, text="Train CNN with Gesture Images", command=trainCNN)
markovButton.place(x=50,y=200)
markovButton.config(font=font1)

predictButton = Button(main, text="Sign Language Recognition from Webcam", command=webcamPredict)
predictButton.place(x=50,y=250)
predictButton.config(font=font1)


font1 = ('times', 12, 'bold')
text=Text(main,height=15,width=78)
scroll=Scrollbar(text)
text.configure(yscrollcommand=scroll.set)
text.place(x=450,y=100)
text.config(font=font1)

deleteDirectory()
main.config(bg='magenta3')
main.mainloop()
Binary file added UMLs.docx
Binary file not shown.
Binary file added model1/history.pckl
Binary file not shown.
1 change: 1 addition & 0 deletions model1/model.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"class_name": "Sequential", "config": {"name": "sequential_1", "layers": [{"class_name": "Conv2D", "config": {"name": "conv2d_1", "trainable": true, "batch_input_shape": [null, 64, 64, 3], "dtype": "float32", "filters": 32, "kernel_size": [3, 3], "strides": [1, 1], "padding": "valid", "data_format": "channels_last", "dilation_rate": [1, 1], "activation": "relu", "use_bias": true, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"scale": 1.0, "mode": "fan_avg", "distribution": "uniform", "seed": null}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}}, {"class_name": "MaxPooling2D", "config": {"name": "max_pooling2d_1", "trainable": true, "dtype": "float32", "pool_size": [2, 2], "padding": "valid", "strides": [2, 2], "data_format": "channels_last"}}, {"class_name": "Conv2D", "config": {"name": "conv2d_2", "trainable": true, "dtype": "float32", "filters": 32, "kernel_size": [3, 3], "strides": [1, 1], "padding": "valid", "data_format": "channels_last", "dilation_rate": [1, 1], "activation": "relu", "use_bias": true, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"scale": 1.0, "mode": "fan_avg", "distribution": "uniform", "seed": null}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}}, {"class_name": "MaxPooling2D", "config": {"name": "max_pooling2d_2", "trainable": true, "dtype": "float32", "pool_size": [2, 2], "padding": "valid", "strides": [2, 2], "data_format": "channels_last"}}, {"class_name": "Flatten", "config": {"name": "flatten_1", "trainable": true, "dtype": "float32", "data_format": "channels_last"}}, {"class_name": "Dense", "config": {"name": "dense_1", "trainable": true, "dtype": "float32", "units": 256, "activation": "relu", "use_bias": true, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"scale": 1.0, "mode": "fan_avg", "distribution": "uniform", "seed": null}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}}, {"class_name": "Dense", "config": {"name": "dense_2", "trainable": true, "dtype": "float32", "units": 7, "activation": "softmax", "use_bias": true, "kernel_initializer": {"class_name": "VarianceScaling", "config": {"scale": 1.0, "mode": "fan_avg", "distribution": "uniform", "seed": null}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}}]}, "keras_version": "2.3.1", "backend": "tensorflow"}
Binary file added model1/model_weights.h5
Binary file not shown.
Binary file added newDataset/C/100.png
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 newDataset/C/101.png
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 newDataset/C/102.png
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 newDataset/C/103.png
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 newDataset/C/104.png
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 newDataset/C/105.png
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 newDataset/C/106.png
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 newDataset/C/107.png
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 newDataset/C/108.png
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 newDataset/C/109.png
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 newDataset/C/110.png
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 newDataset/C/111.png
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 newDataset/C/112.png
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 newDataset/C/113.png
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 newDataset/C/114.png
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 newDataset/C/115.png
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 newDataset/C/116.png
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 newDataset/C/117.png
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 newDataset/C/118.png
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 newDataset/C/119.png
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 newDataset/C/120.png
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 newDataset/C/121.png
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 newDataset/C/122.png
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 newDataset/C/123.png
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 newDataset/C/124.png
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 newDataset/C/125.png
Binary file added newDataset/C/126.png
Binary file added newDataset/C/127.png
Binary file added newDataset/C/128.png
Binary file added newDataset/C/129.png
Binary file added newDataset/C/130.png
Binary file added newDataset/C/131.png
Binary file added newDataset/C/132.png
Binary file added newDataset/C/133.png
Binary file added newDataset/C/134.png
Binary file added newDataset/C/135.png
Binary file added newDataset/C/136.png
Binary file added newDataset/C/137.png
Binary file added newDataset/C/138.png
Binary file added newDataset/C/139.png
Binary file added newDataset/C/290.png
Binary file added newDataset/C/291.png
Binary file added newDataset/C/292.png
Binary file added newDataset/C/293.png
Binary file added newDataset/C/294.png
Binary file added newDataset/C/295.png
Binary file added newDataset/C/296.png
Binary file added newDataset/C/297.png
Binary file added newDataset/C/298.png
Binary file added newDataset/C/299.png
Binary file added newDataset/C/300.png
Binary file added newDataset/C/301.png
Binary file added newDataset/C/302.png
Binary file added newDataset/C/303.png
Binary file added newDataset/C/304.png
Binary file added newDataset/C/305.png
Binary file added newDataset/C/306.png
Binary file added newDataset/C/307.png
Binary file added newDataset/C/308.png
Binary file added newDataset/C/309.png
Binary file added newDataset/C/310.png
Binary file added newDataset/C/311.png
Binary file added newDataset/C/312.png
Binary file added newDataset/C/313.png
Binary file added newDataset/C/314.png
Binary file added newDataset/C/315.png
Binary file added newDataset/C/316.png
Binary file added newDataset/C/317.png
Binary file added newDataset/C/318.png
Binary file added newDataset/C/319.png
Binary file added newDataset/C/320.png
Binary file added newDataset/C/321.png
Binary file added newDataset/C/322.png
Binary file added newDataset/C/323.png
Binary file added newDataset/C/324.png
Binary file added newDataset/C/325.png
Binary file added newDataset/C/326.png
Binary file added newDataset/C/327.png
Binary file added newDataset/C/328.png
Binary file added newDataset/C/329.png
Binary file added newDataset/C/330.png
Binary file added newDataset/C/331.png
Binary file added newDataset/C/332.png
Binary file added newDataset/C/333.png
Binary file added newDataset/C/334.png
Binary file added newDataset/C/335.png
Binary file added newDataset/C/336.png
Binary file added newDataset/C/337.png
Binary file added newDataset/C/338.png
Binary file added newDataset/C/339.png
Binary file added newDataset/C/340.png
Binary file added newDataset/C/341.png
Binary file added newDataset/C/342.png
Binary file added newDataset/C/343.png
Binary file added newDataset/C/344.png
Binary file added newDataset/C/345.png
Binary file added newDataset/C/346.png
Binary file added newDataset/C/347.png
Binary file added newDataset/C/348.png
Binary file added newDataset/C/349.png
Binary file added newDataset/C/350.png
Binary file added newDataset/C/351.png
Binary file added newDataset/C/352.png
Binary file added newDataset/C/353.png
Binary file added newDataset/C/354.png
Binary file added newDataset/C/355.png
Binary file added newDataset/C/356.png
Binary file added newDataset/C/357.png
Binary file added newDataset/C/358.png
Binary file added newDataset/C/359.png
Binary file added newDataset/C/360.png
Binary file added newDataset/C/361.png
Binary file added newDataset/C/362.png
Binary file added newDataset/C/363.png
Binary file added newDataset/C/364.png
Binary file added newDataset/C/365.png
Binary file added newDataset/C/366.png
Binary file added newDataset/C/367.png
Binary file added newDataset/C/368.png
Binary file added newDataset/C/369.png
Binary file added newDataset/C/370.png
Binary file added newDataset/C/371.png
Binary file added newDataset/C/372.png
Binary file added newDataset/C/373.png
Binary file added newDataset/C/374.png
Binary file added newDataset/C/375.png
Binary file added newDataset/C/376.png
Binary file added newDataset/C/377.png
Binary file added newDataset/C/378.png
Binary file added newDataset/C/379.png
Binary file added newDataset/C/380.png
Binary file added newDataset/C/381.png
Binary file added newDataset/C/382.png
Binary file added newDataset/C/383.png
Binary file added newDataset/C/384.png
Binary file added newDataset/C/385.png
Binary file added newDataset/C/386.png
Binary file added newDataset/C/387.png
Binary file added newDataset/C/388.png
Binary file added newDataset/C/389.png
Binary file added newDataset/C/390.png
Binary file added newDataset/C/391.png
Binary file added newDataset/C/392.png
Binary file added newDataset/C/393.png
Binary file added newDataset/C/394.png
Binary file added newDataset/C/395.png
Binary file added newDataset/C/396.png
Binary file added newDataset/C/397.png
Binary file added newDataset/C/398.png
Binary file added newDataset/C/399.png
Binary file added newDataset/C/400.png
Binary file added newDataset/C/401.png
Binary file added newDataset/C/402.png
Binary file added newDataset/C/403.png
Binary file added newDataset/C/404.png
Binary file added newDataset/C/405.png
Binary file added newDataset/C/406.png
Binary file added newDataset/C/407.png
Binary file added newDataset/C/408.png
Binary file added newDataset/C/409.png
Binary file added newDataset/C/410.png
Binary file added newDataset/C/411.png
Binary file added newDataset/C/412.png
Binary file added newDataset/C/413.png
Binary file added newDataset/C/414.png
Binary file added newDataset/C/415.png
Binary file added newDataset/C/416.png
Binary file added newDataset/C/417.png
Binary file added newDataset/C/418.png
Binary file added newDataset/C/419.png
Binary file added newDataset/C/420.png
Binary file added newDataset/C/421.png
Binary file added newDataset/C/422.png
Binary file added newDataset/C/423.png
Binary file added newDataset/C/424.png
Binary file added newDataset/C/425.png
Binary file added newDataset/C/426.png
Binary file added newDataset/C/427.png
Binary file added newDataset/C/428.png
Binary file added newDataset/C/429.png
Binary file added newDataset/C/430.png
Binary file added newDataset/C/431.png
Binary file added newDataset/C/432.png
Binary file added newDataset/C/433.png
Binary file added newDataset/C/434.png
Binary file added newDataset/C/435.png
Binary file added newDataset/C/436.png
Binary file added newDataset/C/437.png
Binary file added newDataset/C/438.png
Binary file added newDataset/C/439.png
Binary file added newDataset/C/440.png
Binary file added newDataset/C/441.png
Binary file added newDataset/C/442.png
Binary file added newDataset/C/443.png
Binary file added newDataset/C/444.png
Binary file added newDataset/C/445.png
Binary file added newDataset/C/446.png
Binary file added newDataset/C/447.png
Binary file added newDataset/C/448.png
Binary file added newDataset/C/449.png
Binary file added newDataset/C/450.png
Binary file added newDataset/C/451.png
Binary file added newDataset/C/452.png
Binary file added newDataset/C/453.png
Binary file added newDataset/C/454.png
Binary file added newDataset/C/455.png
Binary file added newDataset/C/456.png
Binary file added newDataset/C/457.png
Binary file added newDataset/C/458.png
Binary file added newDataset/C/459.png
Binary file added newDataset/C/460.png
Binary file added newDataset/C/461.png
Binary file added newDataset/C/462.png
Binary file added newDataset/C/463.png
Binary file added newDataset/C/464.png
Binary file added newDataset/C/465.png
Binary file added newDataset/C/466.png
Binary file added newDataset/C/467.png
Binary file added newDataset/C/468.png
Binary file added newDataset/C/469.png
Binary file added newDataset/C/470.png
Binary file added newDataset/C/471.png
Binary file added newDataset/C/472.png
Binary file added newDataset/C/473.png
Binary file added newDataset/C/474.png
Binary file added newDataset/C/475.png
Binary file added newDataset/C/476.png
Binary file added newDataset/C/477.png
Binary file added newDataset/C/478.png
Binary file added newDataset/C/479.png
Binary file added newDataset/C/480.png
Binary file added newDataset/C/481.png
Binary file added newDataset/C/482.png
Binary file added newDataset/C/483.png
Binary file added newDataset/C/484.png
Binary file added newDataset/C/485.png
Binary file added newDataset/C/486.png
Binary file added newDataset/C/487.png
Binary file added newDataset/C/488.png
Binary file added newDataset/C/489.png
Binary file added newDataset/C/490.png
Binary file added newDataset/C/491.png
Binary file added newDataset/C/492.png
Binary file added newDataset/C/493.png
Binary file added newDataset/C/494.png
Binary file added newDataset/C/495.png
Binary file added newDataset/C/496.png
Binary file added newDataset/C/497.png
Binary file added newDataset/C/498.png
Binary file added newDataset/C/499.png
Binary file added newDataset/C/500.png
Binary file added newDataset/C/501.png
Binary file added newDataset/C/502.png
Binary file added newDataset/C/503.png
Binary file added newDataset/C/504.png
Binary file added newDataset/C/505.png
Binary file added newDataset/C/506.png
Binary file added newDataset/C/507.png
Binary file added newDataset/C/508.png
Binary file added newDataset/C/509.png
Binary file added newDataset/C/510.png
Binary file added newDataset/C/511.png
Binary file added newDataset/C/512.png
Binary file added newDataset/C/513.png
Binary file added newDataset/C/514.png
Binary file added newDataset/C/515.png
Binary file added newDataset/C/516.png
Binary file added newDataset/C/517.png
Binary file added newDataset/C/518.png
Binary file added newDataset/C/519.png
Binary file added newDataset/C/520.png
Binary file added newDataset/C/521.png
Binary file added newDataset/C/522.png
Binary file added newDataset/C/523.png
Binary file added newDataset/C/524.png
Binary file added newDataset/C/525.png
Binary file added newDataset/C/526.png
Binary file added newDataset/C/527.png
Binary file added newDataset/C/528.png
Binary file added newDataset/C/529.png
Binary file added newDataset/C/530.png
Binary file added newDataset/C/531.png
Binary file added newDataset/C/532.png
Binary file added newDataset/C/533.png
Binary file added newDataset/C/534.png
Binary file added newDataset/C/535.png
Binary file added newDataset/C/536.png
Binary file added newDataset/C/537.png
Binary file added newDataset/C/538.png
Binary file added newDataset/C/539.png
Binary file added newDataset/C/540.png
Binary file added newDataset/C/541.png
Binary file added newDataset/C/542.png
Binary file added newDataset/C/543.png
Binary file added newDataset/C/544.png
Loading

0 comments on commit 652ea32

Please sign in to comment.