diff --git a/Events/src/myproject2.py b/Events/src/myproject2.py index 61124ca..edcbe6b 100644 --- a/Events/src/myproject2.py +++ b/Events/src/myproject2.py @@ -1,517 +1,517 @@ -import pickle -import numpy as np -import face_recognition -import os -from flask import Flask, render_template, request, redirect, send_file -#import shutil -import cv2 - -app = Flask(__name__) -app.config["IMAGE_UPLOADS"] = "C:/Users/Bizgaze/PycharmProjects/face_recogniction/People" -datasetPath = "/opt/bizgaze/events.bizgaze.app/wwwroot/_files/1/Gallery/" -peoplePath = "/opt/bizgaze/events.bizgaze.app/wwwroot/_files/People/" -@app.route('/', methods=['GET']) -def home(): - return render_template('index.html') - - -@app.route('/Display', methods=['GET', "POST"]) -def Display(): - return render_template('Display.html') - - -@app.route("/upload", methods=["GET", "POST"]) -def upload(): - if request.method == "POST": - - if request.files: - - image = request.files["image"] - try: - image.save(os.path.join( - app.config["IMAGE_UPLOADS"], image.filename)) - except IsADirectoryError: - return render_template('index.html') - # image.save(os.path.join( - # app.config["IMAGE_UPLOADS"], image.filename)) - - print("Image saved") - - return redirect(request.url) - - return 'ok' - - -@app.route('/predict', methods=["GET", "POST"]) -def predict(): - Dataset = request.get_json() - a = Dataset - peoplePath = a['People'] - print(peoplePath) - datasetPath = a['Gallery'] - print(datasetPath) - - print('starting') - def saveEncodings(encs, names, fname="encodings.pickle"): - print('encoding') - """ - Save encodings in a pickle file to be used in future. - - Parameters - ---------- - encs : List of np arrays - List of face encodings. - names : List of strings - List of names for each face encoding. - fname : String, optional - Name/Location for pickle file. The default is "encodings.pickle". - - Returns - ------- - None. - - """ - - data = [] - d = [{"name": nm, "encoding": enc} for (nm, enc) in zip(names, encs)] - data.extend(d) - - encodingsFile = fname - - # dump the facial encodings data to disk - print("[INFO] serializing encodings...") - f = open(encodingsFile, "wb") - f.write(pickle.dumps(data)) - f.close() - - # Function to read encodings - - def readEncodingsPickle(fname): - """ - Read Pickle file. - - Parameters - ---------- - fname : String - Name of pickle file.(Full location) - - Returns - ------- - encodings : list of np arrays - list of all saved encodings - names : List of Strings - List of all saved names - - """ - - data = pickle.loads(open(fname, "rb").read()) - data = np.array(data) - encodings = [d["encoding"] for d in data] - names = [d["name"] for d in data] - return encodings, names - - # Function to create encodings and get face locations - def createEncodings(image): - """ - Create face encodings for a given image and also return face locations in the given image. - - Parameters - ---------- - image : cv2 mat - Image you want to detect faces from. - - Returns - ------- - known_encodings : list of np array - List of face encodings in a given image - face_locations : list of tuples - list of tuples for face locations in a given image - - """ - - # Find face locations for all faces in an image - face_locations = face_recognition.face_locations(image) - - # Create encodings for all faces in an image - known_encodings = face_recognition.face_encodings(image, known_face_locations=face_locations) - return known_encodings, face_locations - - # Function to compare encodings - def compareFaceEncodings(unknown_encoding, known_encodings, known_names): - """ - Compares face encodings to check if 2 faces are same or not. - - Parameters - ---------- - unknown_encoding : np array - Face encoding of unknown people. - known_encodings : np array - Face encodings of known people. - known_names : list of strings - Names of known people - - Returns - ------- - acceptBool : Bool - face matched or not - duplicateName : String - Name of matched face - distance : Float - Distance between 2 faces - - """ - duplicateName = "" - distance = 0.0 - matches = face_recognition.compare_faces(known_encodings, unknown_encoding, tolerance=0.47) - face_distances = face_recognition.face_distance(known_encodings, unknown_encoding) - best_match_index = np.argmin(face_distances) - distance = face_distances[best_match_index] - if matches[best_match_index]: - acceptBool = True - duplicateName = known_names[best_match_index] - else: - acceptBool = False - duplicateName = "" - return acceptBool, duplicateName, distance - - p = [] - - # Save Image to new directory - def saveImageToDirectory(image, name, imageName): - """ - Saves images to directory. - - Parameters - ---------- - image : cv2 mat - Image you want to save. - name : String - Directory where you want the image to be saved. - imageName : String - Name of image. - - Returns - ------- - None. - - """ - path = "./output/" + name - path1 = "./output/" + name - if os.path.exists(path): - pass - else: - os.mkdir(path) - cv2.imwrite(path + "/" + imageName, image) - x = [] - c = (path1 + "/" + imageName) - x.append(c) - p.append(x) - - # Function for creating encodings for known people - def processKnownPeopleImages(path=peoplePath, saveLocation="./known_encodings.pickle"): - """ - Process images of known people and create face encodings to compare in future. - Eaach image should have just 1 face in it. - - Parameters - ---------- - path : STRING, optional - Path for known people dataset. The default is "C:/inetpub/vhosts/port82/wwwroot/_files/People". - It should be noted that each image in this dataset should contain only 1 face. - saveLocation : STRING, optional - Path for storing encodings for known people dataset. The default is "./known_encodings.pickle in current directory". - - Returns - ------- - None. - - """ - - known_encodings = [] - known_names = [] - for img in os.listdir(path): - imgPath = path + img - - # Read image - image = cv2.imread(imgPath) - name = img.rsplit('.')[0] - # Resize - image = cv2.resize(image, (0, 0), fx=0.9, fy=0.9, interpolation=cv2.INTER_LINEAR) - - # Get locations and encodings - encs, locs = createEncodings(image) - try: - known_encodings.append(encs[0]) - except IndexError: - pass - known_names.append(name) - - for loc in locs: - top, right, bottom, left = loc - - # Show Image - #cv2.rectangle(image, (left, top), (right, bottom), color=(255, 0, 0), thickness=2) - # cv2.imshow("Image", image) - # cv2.waitKey(1) - #cv2.destroyAllWindows() - saveEncodings(known_encodings, known_names, saveLocation) - - # Function for processing dataset images - def processDatasetImages(saveLocation="./Gallery_encodings.pickle"): - """ - Process image in dataset from where you want to separate images. - It separates the images into directories of known people, groups and any unknown people images. - Parameters - ---------- - path : STRING, optional - Path for known people dataset. The default is "D:/port1004/port1004/wwwroot/_files/People". - It should be noted that each image in this dataset should contain only 1 face. - saveLocation : STRING, optional - Path for storing encodings for known people dataset. The default is "./known_encodings.pickle in current directory". - - Returns - ------- - None. - - """ - # Read pickle file for known people to compare faces from - people_encodings, names = readEncodingsPickle("./known_encodings.pickle") - - for root, dirs, files in os.walk(datasetPath, topdown=False): - - for name in files: - s = os.path.join(root, name) - #print(p) - # imgPath = path + img - - # Read image - image = cv2.imread(s) - orig = image.copy() - - # Resize - image = cv2.resize(image, (0, 0), fx=0.9, fy=0.9, interpolation=cv2.INTER_LINEAR) - - # Get locations and encodings - encs, locs = createEncodings(image) - - # Save image to a group image folder if more than one face is in image - # if len(locs) > 1: - # saveImageToDirectory(orig, "Group", img) - - # Processing image for each face - i = 0 - knownFlag = 0 - for loc in locs: - top, right, bottom, left = loc - unknown_encoding = encs[i] - i += 1 - acceptBool, duplicateName, distance = compareFaceEncodings(unknown_encoding, people_encodings, names) - if acceptBool: - saveImageToDirectory(orig, duplicateName,name) - knownFlag = 1 - if knownFlag == 1: - print("Match Found") - else: - saveImageToDirectory(orig, "0",name) - - # Show Image - # cv2.rectangle(image, (left, top), (right, bottom), color=(255, 0, 0), thickness=2) - # # cv2.imshow("Image", image) - # cv2.waitKey(1) - # cv2.destroyAllWindows() - - - def main(): - """ - Main Function. - - Returns - ------- - None. - - """ - - processKnownPeopleImages() - processDatasetImages() - # shutil.make_archive('./Images', 'zip','./output') - # p='./Images.zip' - # return send_file(p,as_attachment=True) - - - # import pandas as pd - # q = pd.DataFrame(p) - # x = q - # # x.drop(x.columns[0], axis=1, inplace=True) - # df = x.groupby([0], as_index=False).count() - # z = df[0].str.split('/', expand=True) - - - # for i, group in z.groupby([2]): - # group.drop(group.columns[2], axis=1, inplace=True) - #group.to_csv(f'./output1/{i}.csv', index=False, sep='/', header=False) - - -##############################csv creation code ############################## - import pandas as pd - q = pd.DataFrame(p) - m = q - #print(m) - # x.drop(x.columns[Unnam], axis=1, inplace=True) - df = m.groupby([0], as_index=False).count() - first_column_name = df.columns[0] - - # Rename the first column - df.rename(columns={first_column_name: 'col'}, inplace=True) - #print(df) - z = df['col'].str.split('/', expand=True) - - z['ImagePath'] = z[3] - - result = z.drop([0,1,3], axis=1) - result.rename({result.columns[-1]: 'test'}, axis=1, inplace=True) - # print(result) - result.to_csv('results1.csv') - import pandas as pd - import os - c = [] - for root, dirs, files in os.walk(datasetPath, topdown=False): - for name in files: - # print(name) - L = os.path.join(root, name) - c.append(L) - df = pd.DataFrame(c) - #print('seconfdf') - - first_column_name = df.columns[0] - - # Rename the first column - df.rename(columns={first_column_name: 'col'}, inplace=True) - print(df) - df1 = df['col'].str.split("/", expand=True) - df1.rename({df1.columns[-2]: 'abc'}, axis=1, inplace=True) - #print('this is df1') - #print(df1) - df1.rename({df1.columns[-1]: 'test'}, axis=1, inplace=True) - merge = pd.merge(df1, result, on='test', how='left') - merge.to_csv('merge.csv') - mergesplit = merge.loc[:,'test'].str.split(".", expand=True) - mergesplit.rename({mergesplit.columns[-2]: 'ImageName'}, axis=1, inplace=True) - mergesplit = mergesplit.loc[:,'ImageName' ] - - merge.rename({merge.columns[-1]: 'Matched'}, axis=1, inplace=True) - merge['EventName'] = merge['abc'] - merge['Imagepath']="/_files/1/Gallery/"+merge['EventName']+'/'+ + merge['test'] - - frames = [merge, mergesplit] - - r = pd.concat(frames, axis=1, join='inner') - r=r.iloc[:,3:] - #print(r) - r.to_csv('path.csv', index=False) - #r.to_json(r'./matched.json', orient="records") - column_list = ['Matched','Imagepath', 'ImageName', 'EventName'] - r[column_list].to_json('matched.json', orient="records") - -############################################################################################# - - - - # merge.rename({merge.columns[-3]: 'ImagePath'}, axis=1, inplace=True) - # - # # print(merge) - # merge1 = merge.iloc[:, -2] - # merge12= merge.iloc[:, -3] - # - # # merge1.rename({merge1.columns[-1]: 'abc'}, axis=1, inplace=True) - # merge2 = merge.iloc[:, -1].str.split(".", expand=True) - # merge2.rename({merge2.columns[-1]: 'drop'}, axis=1, inplace=True) - # #merge2.rename({merge2.columns[-2]: 'ImageName'}, axis=1, inplace=True) - # print('this is merge1') - # print(merge1) - # print('this is merge2') - # print(merge2) - # mergefinal = pd.concat([merge1, merge2], axis=1, join='inner') - # # print(mergefinal) - # # print('-----------------') - # - # mergefinal.drop(columns=mergefinal.columns[-1], axis=1, inplace=True) - # # print(mergefinal) - # # print('--------------------------------------------------------------------------------') - # # mergefinal.rename({mergefinal.columns[-1]: 'ImageName'}, axis=1, inplace=True) - # # print('this is filename') - # # print(mergefinal) - # #mergefinal.rename({mergefinal.columns[-2]: 'EventName'}, axis=1, inplace=True) - # # print('this is foldername') - # # print(mergefinal) - # - # frames = [mergefinal, merge12] - # - # r = pd.concat(frames, axis=1, join='inner') - # - # - # r.to_csv('Imagepath1.csv', index=False) - # r.to_json('Imagepath1.json', orient="records") - # import shutil - # import os - # # import shutil module - # import shutil - # - # # import os module - # import os - # #################### move code############# - # # base path - # base_path = 'C:\\Users\\Bizgaze\\PycharmProjects\\face_recogniction\\move' - # import os - # dir_list = [] - # rootdir = 'C:\\Users\\Bizgaze\\PycharmProjects\\face_recogniction\\Dataset' - # for file in os.listdir(rootdir): - # d = os.path.join(rootdir, file) - # if os.path.isdir(d): - # dir_list.append(d) - # - # # list of directories we want to move. - # # dir_list = ['test2', 'test4', 'test5', 'does_not_exist'] - # - # # path to destination directory - # # dest = os.path.join(base_path, 'dest') - # - # print("Before moving directories:") - # print(os.listdir(base_path)) - # - # # traverse each directory in dir_list - # for dir_ in dir_list: - # - # # create path to the directory in the - # # dir_list. - # source = os.path.join(base_path, dir_) - # - # # check if it is an existing directory - # if os.path.isdir(source): - # # move to destination path - # shutil.move(source, base_path) - # - # print("After moving directories:") - # print(os.listdir(base_path)) - - print("Completed") - - if __name__ == "__main__": - main() - - # return render_template('index.html') - p = './matched.json' - return send_file(p,as_attachment=True) - - # return 'ALL IMAGES MATCHED' - - -@app.route('/json') -def json(): - p = './matched.json' - return send_file(p,as_attachment=True) - - -if __name__ == "__main__": - app.run(host="0.0.0.0",port=8081) - - +import pickle +import numpy as np +import face_recognition +import os +from flask import Flask, render_template, request, redirect, send_file +#import shutil +import cv2 + +app = Flask(__name__) +app.config["IMAGE_UPLOADS"] = "C:/Users/Bizgaze/PycharmProjects/face_recogniction/People" +#datasetPath = "/opt/bizgaze/events.bizgaze.app/wwwroot/_files/1/Gallery/" +#peoplePath = "/opt/bizgaze/events.bizgaze.app/wwwroot/_files/People/" +@app.route('/', methods=['GET']) +def home(): + return render_template('index.html') + + +@app.route('/Display', methods=['GET', "POST"]) +def Display(): + return render_template('Display.html') + + +@app.route("/upload", methods=["GET", "POST"]) +def upload(): + if request.method == "POST": + + if request.files: + + image = request.files["image"] + try: + image.save(os.path.join( + app.config["IMAGE_UPLOADS"], image.filename)) + except IsADirectoryError: + return render_template('index.html') + # image.save(os.path.join( + # app.config["IMAGE_UPLOADS"], image.filename)) + + print("Image saved") + + return redirect(request.url) + + return 'ok' + + +@app.route('/predict', methods=["GET", "POST"]) +def predict(): + Dataset = request.get_json() + a = Dataset + peoplePath = a['People'] + print(peoplePath) + datasetPath = a['Gallery'] + print(datasetPath) + + print('starting') + def saveEncodings(encs, names, fname="encodings.pickle"): + print('encoding') + """ + Save encodings in a pickle file to be used in future. + + Parameters + ---------- + encs : List of np arrays + List of face encodings. + names : List of strings + List of names for each face encoding. + fname : String, optional + Name/Location for pickle file. The default is "encodings.pickle". + + Returns + ------- + None. + + """ + + data = [] + d = [{"name": nm, "encoding": enc} for (nm, enc) in zip(names, encs)] + data.extend(d) + + encodingsFile = fname + + # dump the facial encodings data to disk + print("[INFO] serializing encodings...") + f = open(encodingsFile, "wb") + f.write(pickle.dumps(data)) + f.close() + + # Function to read encodings + + def readEncodingsPickle(fname): + """ + Read Pickle file. + + Parameters + ---------- + fname : String + Name of pickle file.(Full location) + + Returns + ------- + encodings : list of np arrays + list of all saved encodings + names : List of Strings + List of all saved names + + """ + + data = pickle.loads(open(fname, "rb").read()) + data = np.array(data) + encodings = [d["encoding"] for d in data] + names = [d["name"] for d in data] + return encodings, names + + # Function to create encodings and get face locations + def createEncodings(image): + """ + Create face encodings for a given image and also return face locations in the given image. + + Parameters + ---------- + image : cv2 mat + Image you want to detect faces from. + + Returns + ------- + known_encodings : list of np array + List of face encodings in a given image + face_locations : list of tuples + list of tuples for face locations in a given image + + """ + + # Find face locations for all faces in an image + face_locations = face_recognition.face_locations(image) + + # Create encodings for all faces in an image + known_encodings = face_recognition.face_encodings(image, known_face_locations=face_locations) + return known_encodings, face_locations + + # Function to compare encodings + def compareFaceEncodings(unknown_encoding, known_encodings, known_names): + """ + Compares face encodings to check if 2 faces are same or not. + + Parameters + ---------- + unknown_encoding : np array + Face encoding of unknown people. + known_encodings : np array + Face encodings of known people. + known_names : list of strings + Names of known people + + Returns + ------- + acceptBool : Bool + face matched or not + duplicateName : String + Name of matched face + distance : Float + Distance between 2 faces + + """ + duplicateName = "" + distance = 0.0 + matches = face_recognition.compare_faces(known_encodings, unknown_encoding, tolerance=0.47) + face_distances = face_recognition.face_distance(known_encodings, unknown_encoding) + best_match_index = np.argmin(face_distances) + distance = face_distances[best_match_index] + if matches[best_match_index]: + acceptBool = True + duplicateName = known_names[best_match_index] + else: + acceptBool = False + duplicateName = "" + return acceptBool, duplicateName, distance + + p = [] + + # Save Image to new directory + def saveImageToDirectory(image, name, imageName): + """ + Saves images to directory. + + Parameters + ---------- + image : cv2 mat + Image you want to save. + name : String + Directory where you want the image to be saved. + imageName : String + Name of image. + + Returns + ------- + None. + + """ + path = "./output/" + name + path1 = "./output/" + name + if os.path.exists(path): + pass + else: + os.mkdir(path) + cv2.imwrite(path + "/" + imageName, image) + x = [] + c = (path1 + "/" + imageName) + x.append(c) + p.append(x) + + # Function for creating encodings for known people + def processKnownPeopleImages(path=peoplePath, saveLocation="./known_encodings.pickle"): + """ + Process images of known people and create face encodings to compare in future. + Eaach image should have just 1 face in it. + + Parameters + ---------- + path : STRING, optional + Path for known people dataset. The default is "C:/inetpub/vhosts/port82/wwwroot/_files/People". + It should be noted that each image in this dataset should contain only 1 face. + saveLocation : STRING, optional + Path for storing encodings for known people dataset. The default is "./known_encodings.pickle in current directory". + + Returns + ------- + None. + + """ + + known_encodings = [] + known_names = [] + for img in os.listdir(path): + imgPath = path + img + + # Read image + image = cv2.imread(imgPath) + name = img.rsplit('.')[0] + # Resize + image = cv2.resize(image, (0, 0), fx=0.9, fy=0.9, interpolation=cv2.INTER_LINEAR) + + # Get locations and encodings + encs, locs = createEncodings(image) + try: + known_encodings.append(encs[0]) + except IndexError: + pass + known_names.append(name) + + for loc in locs: + top, right, bottom, left = loc + + # Show Image + #cv2.rectangle(image, (left, top), (right, bottom), color=(255, 0, 0), thickness=2) + # cv2.imshow("Image", image) + # cv2.waitKey(1) + #cv2.destroyAllWindows() + saveEncodings(known_encodings, known_names, saveLocation) + + # Function for processing dataset images + def processDatasetImages(saveLocation="./Gallery_encodings.pickle"): + """ + Process image in dataset from where you want to separate images. + It separates the images into directories of known people, groups and any unknown people images. + Parameters + ---------- + path : STRING, optional + Path for known people dataset. The default is "D:/port1004/port1004/wwwroot/_files/People". + It should be noted that each image in this dataset should contain only 1 face. + saveLocation : STRING, optional + Path for storing encodings for known people dataset. The default is "./known_encodings.pickle in current directory". + + Returns + ------- + None. + + """ + # Read pickle file for known people to compare faces from + people_encodings, names = readEncodingsPickle("./known_encodings.pickle") + + for root, dirs, files in os.walk(datasetPath, topdown=False): + + for name in files: + s = os.path.join(root, name) + #print(p) + # imgPath = path + img + + # Read image + image = cv2.imread(s) + orig = image.copy() + + # Resize + image = cv2.resize(image, (0, 0), fx=0.9, fy=0.9, interpolation=cv2.INTER_LINEAR) + + # Get locations and encodings + encs, locs = createEncodings(image) + + # Save image to a group image folder if more than one face is in image + # if len(locs) > 1: + # saveImageToDirectory(orig, "Group", img) + + # Processing image for each face + i = 0 + knownFlag = 0 + for loc in locs: + top, right, bottom, left = loc + unknown_encoding = encs[i] + i += 1 + acceptBool, duplicateName, distance = compareFaceEncodings(unknown_encoding, people_encodings, names) + if acceptBool: + saveImageToDirectory(orig, duplicateName,name) + knownFlag = 1 + if knownFlag == 1: + print("Match Found") + else: + saveImageToDirectory(orig, "0",name) + + # Show Image + # cv2.rectangle(image, (left, top), (right, bottom), color=(255, 0, 0), thickness=2) + # # cv2.imshow("Image", image) + # cv2.waitKey(1) + # cv2.destroyAllWindows() + + + def main(): + """ + Main Function. + + Returns + ------- + None. + + """ + + processKnownPeopleImages() + processDatasetImages() + # shutil.make_archive('./Images', 'zip','./output') + # p='./Images.zip' + # return send_file(p,as_attachment=True) + + + # import pandas as pd + # q = pd.DataFrame(p) + # x = q + # # x.drop(x.columns[0], axis=1, inplace=True) + # df = x.groupby([0], as_index=False).count() + # z = df[0].str.split('/', expand=True) + + + # for i, group in z.groupby([2]): + # group.drop(group.columns[2], axis=1, inplace=True) + #group.to_csv(f'./output1/{i}.csv', index=False, sep='/', header=False) + + +##############################csv creation code ############################## + import pandas as pd + q = pd.DataFrame(p) + m = q + #print(m) + # x.drop(x.columns[Unnam], axis=1, inplace=True) + df = m.groupby([0], as_index=False).count() + first_column_name = df.columns[0] + + # Rename the first column + df.rename(columns={first_column_name: 'col'}, inplace=True) + #print(df) + z = df['col'].str.split('/', expand=True) + + z['ImagePath'] = z[3] + + result = z.drop([0,1,3], axis=1) + result.rename({result.columns[-1]: 'test'}, axis=1, inplace=True) + # print(result) + result.to_csv('results1.csv') + import pandas as pd + import os + c = [] + for root, dirs, files in os.walk(datasetPath, topdown=False): + for name in files: + # print(name) + L = os.path.join(root, name) + c.append(L) + df = pd.DataFrame(c) + #print('seconfdf') + + first_column_name = df.columns[0] + + # Rename the first column + df.rename(columns={first_column_name: 'col'}, inplace=True) + print(df) + df1 = df['col'].str.split("/", expand=True) + df1.rename({df1.columns[-2]: 'abc'}, axis=1, inplace=True) + #print('this is df1') + #print(df1) + df1.rename({df1.columns[-1]: 'test'}, axis=1, inplace=True) + merge = pd.merge(df1, result, on='test', how='left') + merge.to_csv('merge.csv') + mergesplit = merge.loc[:,'test'].str.split(".", expand=True) + mergesplit.rename({mergesplit.columns[-2]: 'ImageName'}, axis=1, inplace=True) + mergesplit = mergesplit.loc[:,'ImageName' ] + + merge.rename({merge.columns[-1]: 'Matched'}, axis=1, inplace=True) + merge['EventName'] = merge['abc'] + merge['Imagepath']="/_files/1/Gallery/"+merge['EventName']+'/'+ + merge['test'] + + frames = [merge, mergesplit] + + r = pd.concat(frames, axis=1, join='inner') + r=r.iloc[:,3:] + #print(r) + r.to_csv('path.csv', index=False) + #r.to_json(r'./matched.json', orient="records") + column_list = ['Matched','Imagepath', 'ImageName', 'EventName'] + r[column_list].to_json('matched.json', orient="records") + +############################################################################################# + + + + # merge.rename({merge.columns[-3]: 'ImagePath'}, axis=1, inplace=True) + # + # # print(merge) + # merge1 = merge.iloc[:, -2] + # merge12= merge.iloc[:, -3] + # + # # merge1.rename({merge1.columns[-1]: 'abc'}, axis=1, inplace=True) + # merge2 = merge.iloc[:, -1].str.split(".", expand=True) + # merge2.rename({merge2.columns[-1]: 'drop'}, axis=1, inplace=True) + # #merge2.rename({merge2.columns[-2]: 'ImageName'}, axis=1, inplace=True) + # print('this is merge1') + # print(merge1) + # print('this is merge2') + # print(merge2) + # mergefinal = pd.concat([merge1, merge2], axis=1, join='inner') + # # print(mergefinal) + # # print('-----------------') + # + # mergefinal.drop(columns=mergefinal.columns[-1], axis=1, inplace=True) + # # print(mergefinal) + # # print('--------------------------------------------------------------------------------') + # # mergefinal.rename({mergefinal.columns[-1]: 'ImageName'}, axis=1, inplace=True) + # # print('this is filename') + # # print(mergefinal) + # #mergefinal.rename({mergefinal.columns[-2]: 'EventName'}, axis=1, inplace=True) + # # print('this is foldername') + # # print(mergefinal) + # + # frames = [mergefinal, merge12] + # + # r = pd.concat(frames, axis=1, join='inner') + # + # + # r.to_csv('Imagepath1.csv', index=False) + # r.to_json('Imagepath1.json', orient="records") + # import shutil + # import os + # # import shutil module + # import shutil + # + # # import os module + # import os + # #################### move code############# + # # base path + # base_path = 'C:\\Users\\Bizgaze\\PycharmProjects\\face_recogniction\\move' + # import os + # dir_list = [] + # rootdir = 'C:\\Users\\Bizgaze\\PycharmProjects\\face_recogniction\\Dataset' + # for file in os.listdir(rootdir): + # d = os.path.join(rootdir, file) + # if os.path.isdir(d): + # dir_list.append(d) + # + # # list of directories we want to move. + # # dir_list = ['test2', 'test4', 'test5', 'does_not_exist'] + # + # # path to destination directory + # # dest = os.path.join(base_path, 'dest') + # + # print("Before moving directories:") + # print(os.listdir(base_path)) + # + # # traverse each directory in dir_list + # for dir_ in dir_list: + # + # # create path to the directory in the + # # dir_list. + # source = os.path.join(base_path, dir_) + # + # # check if it is an existing directory + # if os.path.isdir(source): + # # move to destination path + # shutil.move(source, base_path) + # + # print("After moving directories:") + # print(os.listdir(base_path)) + + print("Completed") + + if __name__ == "__main__": + main() + + # return render_template('index.html') + p = './matched.json' + return send_file(p,as_attachment=True) + + # return 'ALL IMAGES MATCHED' + + +@app.route('/json') +def json(): + p = './matched.json' + return send_file(p,as_attachment=True) + + +if __name__ == "__main__": + app.run(host="0.0.0.0",port=8081) + +