def Start(): #Configuration de la page config = { "apiKey": "AIzaSyDk9Y_vRsmSB-_keAx-SbGOYncRjgkjbPQ", "authDomain": "novastepdb.firebaseapp.com", "databaseURL": "https://novastepdb.firebaseio.com", "projectId": "novastepdb", "storageBucket": "novastepdb.appspot.com", "messagingSenderId": "14365121179", "appId": "1:14365121179:web:cf2bdb7ff66b931b9a043e", "measurementId": "G-PKCX76F1K8" } global pageActuelle global pagePrecedente pageActuelle = "Accueil" pagePrecedente = "" firebase = pyrebase.initialize_app(config) storage = firebase.storage() storage.child("images/new.jpg").download("jamgeTendue.png") storage.child("images/new1.jpg").download("jambePlié.png") clean() #Items ajoutés logoAccueil_label.place(x=logoAccueil_label_x, y=logoAccueil_label_y) bouton_start.place(x=Coord_Bouton_Centr[0], y=Coord_Bouton_Centr[1])
def uploadwithPyre(self, filepath, secretkey, id): table = self.table cred['private_key'] = secretkey config = { "apiKey": "apiKey", "authDomain": "hepatitis-mobile.firebaseapp.com", "databaseURL": "https://hepatitis-mobile.firebaseio.com", "storageBucket": "hepatitis-mobile.appspot.com", "serviceAccount": cred } storage_path = f'image/patient/{id}/' firebase = pyrebase.initialize_app(config) storage = firebase.storage() storage.child(storage_path).put(filepath) imageurl = storage.child(storage_path).get_url(id) with connection.cursor() as cursor: query = f"UPDATE {table} SET imgurl = {repr(imageurl)} WHERE {table}.id={repr(id)}" try: cursor.execute(query) connection.commit() return ("upload successful") except: return ("unable to upload image")
def urlprocess(url): name = url # print(name.find("%2F")); path = name[name.find("%2F")+3:] path =path[:path.find("%2F")] # print(path) tokens = name[name.find("token=")+6:] # auth = firebase.auth() # tokens = auth.sign_in_with_email_and_password("*****@*****.**","Teo361812") # tokens = auth.refresh(tokens['refreshToken']) # print(tokens) # print (name) firebasepath = "images/" + "{}".format(path)+"/{}.jpg".format(path) # print(firebasepath) storage = firebase.storage() # print(storage.child(firebasepath).get_url(tokens)) storage.child(firebasepath).download("newimage.jpg") # hardcode xd # img_path = "./newimage.jpg" # pre_img_path = 'pre_' + os.path.basename(img_path) # pre_0.jpg # command = './imgtxtenh/imgtxtenh ' + ' -p ' + os.path.basename(img_path) + " " + os.path.basename(pre_img_path)# ../../imgtxtenh/imgtxtenh 0.jpg -p pre_0.jpg # p = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE) uploadpath = "images/"+ "{}".format(path) + "/ocr.jpg" global ocrpath ocrpath = uploadpath
def photo(): img = Image.open(request.files['img']) try: filename = secure_filename(request.files['img'].filename) print(filename) #img = img.resize((160,300),Image.ANTIALIAS) img.save(filename, optimize=True, quality=70) print(img) storage.child("images/" + filename).put(img) #link=storage.child("images/"+filename).get_url(None) #print(link) return jsonify({'message': link}), 200 except: return jsonify({'message': 'error in uploading image'}), 400
def saveFolder(uploaded_files): cwd = os.getcwd() config = {"apiKey": "xxxxx", "authDomain": "xxxxx.firebaseapp.com", "databaseURL": "https://xxxxx.firebaseio.com", "projectId": "xxxxx", "storageBucket": "xxxxx.appspot.com", "messagingSenderId": "xxxxx", "appId": "1:xxxxx:web:xxxxx", "measurementId": "G-FXCMDZNL6T"} for folder in uploaded_files: if type(folder) == list: saveFolder(folder) else: path = os.path.join('./test/test', folder.filename) folder_path = f'{folder.filename.split("/")[:-1]}' folder_path = folder_path[2:-2] folder_path = folder_path.replace("\', \'", "/") filePath = f"{cwd}/test/test/{folder_path}" if os.path.exists(filePath) == True: folder.save(f'{filePath}/{folder.filename.split("/")[-1]}') else: os.mkdir(filePath) folder.save(f'{filePath}/{folder.filename.split("/")[-1]}') #save to firebase today = datetime.now() firebase = pyrebase.initialize_app(config) storage = firebase.storage() path_on_cloud = f'images/{today}.jpg' storage.child(path_on_cloud).put(f'{filePath}/{folder.filename.split("/")[-1]}') upload_url = storage.child(path_on_cloud).get_url(token=None) '''
def __init__(self): super().__init__() self.setWindowTitle("TIP") self.setGeometry(800, 200, 600, 630) #크기설정 (x좌표,y좌표,너비,높이) #메뉴 최대 갯수 지정 self.btnnum = [ '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20' ] self.btnlist = [] self.Piclist = [] for i in range(0, len(name)): storage.child(path_on_cloud + str(i + 1) + ".jpg").download( "img" + str(i + 1) + ".jpg", str(i + 1) + ".jpg") self.Piclist.append(PicButton(QPixmap(self.btnnum[i] + '.jpg'))) self.Piclist[i].setMaximumHeight(100) self.Piclist[i].setMaximumWidth(100) self.btnlist.append(QPushButton(name[i])) self.btnlist[i].clicked.connect(lambda state, button=self.btnlist[ i]: self.btn_clicked(state, button)) self.Obtn1 = QPushButton("주문하기") self.Obtn1.setMaximumHeight(150) self.Obtn1.clicked.connect(self.btn_order) self.Obtn2 = QPushButton("취소하기") self.Obtn2.setMaximumHeight(150) self.Obtn2.clicked.connect(self.btn_refresh) layout1 = QGridLayout() #GUI 컨텐츠들을 배치할 레이아웃 설정 for i in range(0, len(name)): layout1.addWidget(self.Piclist[i], math.floor(i / 4) * 2, i % 4) layout1.addWidget(self.btnlist[i], math.floor(i / 4) * 2 + 1, i % 4) groupbox = QGroupBox("주문정보") #그룹박스 추가 self.tableWidget = QTableWidget(4, 2) #테이블 생성 self.tableWidget.setHorizontalHeaderLabels(["음식이름", "가격"]) #식당이름까지 DB로 보냄 self.tableWidget.setMaximumHeight(160) #테이블의 높이 self.tableWidget.setMaximumWidth(250) #테이블의 너비 self.tableWidget.horizontalHeader().setStretchLastSection( True) #글자가 넘어갔을때 글자가 ...으로 나오지 않도록 설정 layout2 = QHBoxLayout() #레이아웃 추가 layout2.addWidget(self.tableWidget) #테이블및 버튼추가 layout2.addWidget(self.Obtn1) layout2.addWidget(self.Obtn2) groupbox.setLayout(layout2) layout3 = QHBoxLayout() layout3.addWidget(groupbox) layout = QVBoxLayout() layout.addLayout(layout1) layout.addLayout(layout3) self.setLayout(layout) #레이아웃 합침
def trackImages(): recognizer = cv2.face.LBPHFaceRecognizer_create() recognizer.read("Python-Code/DataSet/Trainner.yml") # harcascadePath = "haarcascade_frontalface_default.xml" # faceCascade = cv2.CascadeClassifier(harcascadePath) faceCascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml') df = pd.read_csv("StudentRecord.csv") cam = cv2.VideoCapture(0) font = cv2.FONT_HERSHEY_SIMPLEX col_names = ['Id', 'Name', 'Date', 'Time'] attendance = pd.DataFrame(columns=col_names) while True: ret, im = cam.read() gray = cv2.cvtColor(im, cv2.COLOR_BGR2GRAY) faces = faceCascade.detectMultiScale(gray, 1.3, 5) for (x, y, w, h) in faces: cv2.rectangle(im, (x, y), (x + w, y + h), (225, 0, 0), 2) Id, conf = recognizer.predict(gray[y:y + h, x:x + w]) if (conf < 50): ts = time.time() date = datetime.datetime.fromtimestamp(ts).strftime('%Y-%m-%d') timeStamp = datetime.datetime.fromtimestamp(ts).strftime( '%H:%M:%S') aa = df.loc[df['Id'] == Id]['Name'].values tt = str(Id) + "-" + aa attendance.loc[len(attendance)] = [Id, aa, date, timeStamp] # cv2.putText(im, "Name: " + str(df.loc['Name'].values), (x,y+h+30), fontface, fontscale, fontcolor ,2) else: Id = 'Unknown' tt = str(Id) if (conf > 75): noOfFile = len(os.listdir("Python-Code/UnknownImages")) + 1 cv2.imwrite( "Python-Code/UnknownImages/Image" + str(noOfFile) + ".jpg", im[y:y + h, x:x + w]) cv2.putText(im, str(tt), (x, y + h), font, 1, (255, 255, 255), 2) attendance = attendance.drop_duplicates(subset=['Id'], keep='first') cv2.imshow('Face Recognizing', im) if cv2.waitKey(10000) == 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\Attendance_"+date+"_"+Hour+"-"+Minute+"-"+Second+".csv" fileName = "Python-Code/Attendance/Attendance_" + date + "_" + Hour + "-" + Minute + ".csv" attendance.to_csv(fileName, index=False) Firebase = pyrebase.initialize_app(config) storage = Firebase.storage() blob = storage.child('uploads1/' + fileName).put(fileName) data = { 'name': "Date_" + date + " Time_" + Hour + "-" + Minute + "-" + Second, 'url': "https://console.firebase.google.com/u/6/project/facereconition-431f9/storage/facereconition-431f9.appspot.com/files~2Fuploads1~2FPython-Code~2FAttendance%5CAttendance_" + date + "_" + Hour + "-" + Minute + ".csv?alt=media&token=" + blob['downloadTokens'] } #data = { 'name': "Date_"+date+" Time_"+Hour+"-"+Minute+"-"+Second, 'url': ULR stograge to uploade file excel(.csv) } result = firebase.post('facereconition-431f9-default-rtdb/uploads1/', data) #databaseURL + folder you create print(result) cam.release() cv2.destroyAllWindows() res = attendance message.configure(text=res)
'messagingSenderId': "429388420685", 'appId': "1:429388420685:web:7070e74b7130f11fcdae04", 'measurementId': "G-MN3PGPLFZD" } firebase = pyrebase.initialize_app(config) storage = firebase.storage() LANGUAGE = 'english' with open('data/recognized.txt', 'r') as input_file: SENTENCES_COUNT = int(n_sentences(input_file.read()) * .4) with open('data/recognized.txt', 'r') as file: data = file.read().replace('\n', '') storage.child('app/input').download(path='backend/data/app/input.jpeg', filename='data/app/input.jpeg') storage.child('website/input').download(path='backend/data/website/input.jpeg', filename='data/website/input.jpeg') storage.child('website/audio').download(path='backend/data/website/input.wav', filename='data/website/input.wav') #------------------------------ INPUT = 'data/app/input.jpeg' #--------------------------------- create_input(INPUT) parser = PlaintextParser.from_string(data, Tokenizer(LANGUAGE)) stemmer = Stemmer(LANGUAGE)
def trackImages(): recognizer = cv2.face.LBPHFaceRecognizer_create() recognizer.read("DataSet\Trainner.yml") harcascadePath = "haarcascade_frontalface_default.xml" faceCascade = cv2.CascadeClassifier(harcascadePath) df = pd.read_csv("StudentRecord.csv") cam = cv2.VideoCapture(0) font = cv2.FONT_HERSHEY_SIMPLEX col_names = ['Id', 'Name', 'Date', 'Time'] attendance = pd.DataFrame(columns=col_names) while True: ret, im = cam.read() gray = cv2.cvtColor(im, cv2.COLOR_BGR2GRAY) faces = faceCascade.detectMultiScale(gray, 1.2, 5) for (x, y, w, h) in faces: cv2.rectangle(im, (x, y), (x + w, y + h), (225, 0, 0), 2) Id, conf = recognizer.predict(gray[y:y + h, x:x + w]) if (conf < 50): ts = time.time() date = datetime.datetime.fromtimestamp(ts).strftime('%Y-%m-%d') timeStamp = datetime.datetime.fromtimestamp(ts).strftime( '%H:%M:%S') aa = df.loc[df['Id'] == Id]['Name'].values tt = str(Id) + "-" + aa attendance.loc[len(attendance)] = [Id, aa, date, timeStamp] else: Id = 'Unknown' tt = str(Id) if (conf > 75): noOfFile = len(os.listdir("UnknownImages")) + 1 cv2.imwrite("UnknownImages\Image" + str(noOfFile) + ".jpg", im[y:y + h, x:x + w]) cv2.putText(im, str(tt), (x, y + h), font, 1, (255, 255, 255), 2) attendance = attendance.drop_duplicates(subset=['Id'], keep='first') cv2.imshow('Face Recognizing', im) pass if cv2.waitKey(10000): 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\Attendance_"+date+"_"+Hour+"-"+Minute+"-"+Second+".csv" fileName = "Attendance\Attendance_" + date + "_" + Hour + "-" + Minute + ".csv" attendance.to_csv(fileName, index=False) Firebase = pyrebase.initialize_app(config) storage = Firebase.storage() blob = storage.child('uploads/' + fileName).put(fileName) #jay = storage.child().get_url(blob['downloadTokens']) data = { 'name': "Date_" + date + " Time_" + Hour + "-" + Minute + "-" + Second, 'url': "gs://attendecesystem-62b04.appspot.com/uploads/%2FAttendance%5CAttendance_" + date + "_" + Hour + "-" + Minute + ".csv?alt=media&token=" + blob['downloadTokens'] } #data = { 'name': "Date_"+date+" Time_"+Hour+"-"+Minute+"-"+Second, 'url': jay} result = firebase.post('/uploads', data) print(result) cam.release() cv2.destroyAllWindows()
# Enable Storage from firebase import firebase import pyrebase config = { "apiKey": " AIzaSyD_aONTpekw50_3RlNtt-LApnVuO2kisbM ", "authDomain": "plant-7de21.firebaseapp.com", "databaseURL": "https://plant-7de21.firebaseio.com/", #"projectId": "", "storageBucket": "plant-7de21.appspot.com", } firebase = pyrebase.initialize_app(config) storage = firebase.storage() storage.child("Disease\Disease_Report.docx").put("Disease_Report.docx") #firebase_admin.App("Plant",cred,"Default") #firebase_admin.initialize_app(cred) #firebase_admin.initialize_app(credential=None, options=None, name='[DEFAULT]') #firebase_admin.get_app("Plant") # Reference an existing bucket. # Upload a local file to a new file to be created in your bucket. #zebraBlob = bucket.get_blob('zebra.jpg') #zebraBlob.upload_from_filename(filename='/photos/zoo/zebra.jpg') # Download a file from your bucket. #giraffeBlob = bucket.get_blob('giraffe.jpg') #giraffeBlob.download_as_string()
"databaseURL": "https://facebookchat-f1db0.firebaseio.com", "projectId": "facebookchat-f1db0", "storageBucket": "facebookchat-f1db0.appspot.com", "messagingSenderId": "932350125174", "appId": "1:932350125174:web:eb6542aa2fca8177d36b57", "measurementId": "G-FXWBB6W7P3" } firebase = pyrebase.initialize_app(config) storage = firebase.storage() path_on_cloud = "output/output" path_local = "output/output.png" path_for_input = "yogaImages/yoga" storage.child(path_for_input).download("input/input.png") parser = argparse.ArgumentParser() parser.add_argument('--input', help='Path to image or video. Skip to capture frames from camera') parser.add_argument('--thr', default=0.2, type=float, help='Threshold value for pose parts heat map') parser.add_argument('--width', default=368, type=int, help='Resize input to specific width.') parser.add_argument('--height', default=368, type=int, help='Resize input to specific height.') args = parser.parse_args() BODY_PARTS = { "Nose": 0, "Neck": 1, "RShoulder": 2, "RElbow": 3, "RWrist": 4, "LShoulder": 5, "LElbow": 6, "LWrist": 7, "RHip": 8, "RKnee": 9, "RAnkle": 10, "LHip": 11, "LKnee": 12, "LAnkle": 13, "REye": 14, "LEye": 15, "REar": 16, "LEar": 17, "Background": 18 } POSE_PAIRS = [ ["Neck", "RShoulder"], ["Neck", "LShoulder"], ["RShoulder", "RElbow"],
try: switch = 1 while True: now = datetime.now() if switch: #sens = DLsensor.mtreg #hr = DLsensor.measure_high_res() #hr2 = DLsensor.measure_high_res2() lumi = DLsensor.measure_low_res() DLsensor.set_sensitivity((DLsensor.mtreg + 10) % 255) # Try to grab a sensor reading. Use the read_retry method which will retry up # to 15 times to get a sensor reading (waiting 2 seconds between each retry). humi, temp = Adafruit_DHT.read_retry(DHTsensor, DHTpin) print(dbUpdate(now, lumi, temp, humi)) switch = 0 else: filename = 'img_' + now.strftime('%Y-%m-%d_%H:%M:%S') + '.jpg' single_frame(filename, 10) time.sleep(10) print(storage.child(path_on_cloud).put("images/" + filename)) # print(imageUp(now, filename)) switch = 1 time.sleep(delay / 2) except (KeyboardInterrupt, SystemExit): print(" -> Ambient Control program shutdown...") print("Bye!") sys.exit()
def upload_to_firebase(filename): file_path = f"./results/{filename}" file_node = storage.child(filename) result = file_node.put(file_path) url = build_download_url(result["name"], result["downloadTokens"]) return url
from google.cloud import storage from firebase import firebase import os import urllib os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = 'visker-ede34-firebase-adminsdk-u8kfs-adeefaeb4f.json' firebase=firebase.FirebaseApplication('https://visker-ede34.appspot.com/') client=storage.Client() bucket=client.get_bucket('visker-ede34.appspot.com') blobs=bucket.list_blobs() imageBlob=bucket.blob("images/1.jpg") imageBlob.upload_from_filename('thor.jpg') imageBlob=bucket.blob("images/2.jpg") imageBlob.upload_from_filename('image.jpg') storage = firebase.storage() storage.child("images/example.jpg").download("img")
def predictOneImage(): if request.method == "POST": img_url = request.files["image"] apikey = request.form["apikey"] print(f'this is the url {img_url.filename}') if img_url.filename == "": flash('Please upload an image') return redirect(url_for("folderImagesPredict")) else: UPLOAD_FOLDER = './test/test' app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER #save image to local directory for upload to firebase storage path = os.path.join(app.config['UPLOAD_FOLDER'], img_url.filename) img_url.save(path) if not firebase_admin._apps: #fetch credentials cred = credentials.Certificate("service_account.json") firebase_admin.initialize_app(cred, {'databaseURL': 'https://xxxxx.firebaseio.com/'}) ##validate API KEY ref = db.reference('ApiKey') apiKeyType = ref.child(apikey).child("type").get() if apiKeyType == None: flash('Invalid API Key') return redirect(url_for("oneImagePredict")) else: #image_url = sys.argv[1] #we pass the url as an argument config = {"apiKey": "xxxxx", "authDomain": "xxxxx.firebaseapp.com", "databaseURL": "https://xxxxx.firebaseio.com", "projectId": "xxxxx", "storageBucket": "xxxxx.appspot.com", "messagingSenderId": "xxxxx", "appId": "1:xxxxx:web:xxxxx", "measurementId": "xxxxx"} today = datetime.now() firebase = pyrebase.initialize_app(config) storage = firebase.storage() path_on_cloud = f'images/{today}.jpg' storage.child(path_on_cloud).put(path) upload_url = storage.child(path_on_cloud).get_url(token=None) #Download Image ''' with urllib.request.urlopen(upload_url) as url: with open('test/temp.jpg', 'wb') as f: f.write(url.read()) ''' #preprocess image test_gen = ImageDataGenerator(rescale=1./255, shear_range=0.2, zoom_range=0.2, horizontal_flip=True) test_generator = test_gen.flow_from_directory( "test/", target_size=(224, 224), shuffle = False, class_mode='categorical', batch_size=1) #load model loaded_model = load_model('model/model1-94%.h5') #make prediciton predict = loaded_model.predict_generator(test_generator) array = np.array(predict) ind = np.argmax(predict) _class = ind print(array,ind,_class) #remove image from local directory os.remove(path) #return class if _class == 0: flash("BAD BACKGROUND") return redirect(url_for("oneImagePredict")) elif _class == 1: flash("BLURRY") return redirect(url_for("oneImagePredict")) elif _class == 2: flash("FACE IN BACKGROUND") return redirect(url_for("oneImagePredict")) elif _class == 3: flash("GOOD IMAGE") return redirect(url_for("oneImagePredict")) elif _class == 4: flash("INVALID PASSPORT") return redirect(url_for("oneImagePredict")) elif _class == 5: flash("NO HUMAN FACE") return redirect(url_for("oneImagePredict")) elif _class == 6: flash("STAPLE DEFACED") return redirect(url_for("oneImagePredict")) else: return "500" else: return "Use a POST request to access this API, check documentation at "
def predictImagesInFolder(): if request.method == "POST": uploaded_files = request.files.getlist("image") apikey = request.form["apikey"] if not uploaded_files or not any(f for f in uploaded_files): flash('Please upload a folder') return redirect(url_for("multipleImagePredict")) else: config = {"apiKey":xxxxx", "authDomain": "xxxxx.firebaseapp.com", "databaseURL": "xxxxx.firebaseio.com", "projectId": "xxxxx", "storageBucket": "xxxxx.appspot.com", "messagingSenderId": "xxxxx", "appId": "1:xxxxx:web:xxxxx", "measurementId": "xxxxx"} UPLOAD_FOLDER = './test/test' app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER saveFolder(uploaded_files) if not firebase_admin._apps: #fetch credentials cred = credentials.Certificate("service_account.json") firebase_admin.initialize_app(cred, {'databaseURL': 'https://xxxxx.firebaseio.com/'}) ##validate API KEY ref = db.reference('ApiKey') apiKeyType = ref.child(apikey).child("type").get() if apiKeyType == None: flash('Invalid API Key') return redirect(url_for("oneImagePredict")) else: #preprocess image test_gen = ImageDataGenerator(rescale=1./255, shear_range=0.2, zoom_range=0.2, horizontal_flip=True) test_generator = test_gen.flow_from_directory( "test/", target_size=(224, 224), shuffle = False, class_mode='categorical', batch_size=1) #load model loaded_model = load_model('model/model1-94%.h5') #make prediciton predict = loaded_model.predict_generator(test_generator) array = np.array(predict) result = {} for i, rows in enumerate(array): _class = np.argmax(rows) result[uploaded_files[i].filename] = _class today = datetime.now() current_directory = os.getcwd() final_directory = os.path.join(current_directory, f'result_{today}') if not os.path.exists(final_directory): os.makedirs(final_directory) error = 0 currentProgress = 0 resultDisplayed = {} for key, value in result.items(): if value == 0: #BAD BACKGROUND if os.path.exists(f"{final_directory}/BAD_BACKGROUND") == True: try: shutil.move(f"{UPLOAD_FOLDER}/{key}" , f"{final_directory}/BAD_BACKGROUND") resultDisplayed["BAD_BACKGROUND"] += 1 except: error += 1 else: #make directory os.mkdir(f"{final_directory}/BAD_BACKGROUND") try: shutil.move(f"{UPLOAD_FOLDER}/{key}" , f"{final_directory}/BAD_BACKGROUND") resultDisplayed["BAD_BACKGROUND"] = 1 except Exception as e: error += 1 currentProgress +=1 elif value == 1: #BLURRY if os.path.exists(f"{final_directory}/BLURRY") == True: try: shutil.move(f"{UPLOAD_FOLDER}/{key}" , f"{final_directory}/BLURRY") resultDisplayed["BLURRY"] += 1 except: error += 1 else: #make directory os.mkdir(f"{final_directory}/BLURRY") try: shutil.move(f"{UPLOAD_FOLDER}/{key}" , f"{final_directory}/BLURRY") resultDisplayed["BLURRY"] = 1 except Exception as e: error += 1 currentProgress +=1 elif value == 2: #FACE_IN_BACKGROUND if os.path.exists(f"{final_directory}/FACE_IN_BACKGROUND") == True: try: shutil.move(f"{UPLOAD_FOLDER}/{key}" , f"{final_directory}/FACE_IN_BACKGROUND") resultDisplayed["FACE_IN_BACKGROUND"] += 1 except: error += 1 else: #make directory os.mkdir(f"{final_directory}/FACE_IN_BACKGROUND") try: shutil.move(f"{UPLOAD_FOLDER}/{key}" , f"{final_directory}/FACE_IN_BACKGROUND") resultDisplayed["FACE_IN_BACKGROUND"] = 1 except Exception as e: error += 1 currentProgress +=1 elif value == 3: #GOOD_IMAGES if os.path.exists(f"{final_directory}/GOOD_IMAGES") == True: try: shutil.move(f"{UPLOAD_FOLDER}/{key}" , f"{final_directory}/GOOD_IMAGES") resultDisplayed["GOOD_IMAGES"] += 1 except: error += 1 else: #make directory os.mkdir(f"{final_directory}/GOOD_IMAGES") try: shutil.move(f"{UPLOAD_FOLDER}/{key}" , f"{final_directory}/GOOD_IMAGES") resultDisplayed["GOOD_IMAGES"] = 1 except Exception as e: error += 1 currentProgress +=1 elif value == 4: #INVALID_PASSPORT if os.path.exists(f"{final_directory}/INVALID_PASSPORT") == True: try: shutil.move(f"{UPLOAD_FOLDER}/{key}" , f"{final_directory}/INVALID_PASSPORT") resultDisplayed["INVALID_PASSPORT"] += 1 except: error += 1 else: #make directory os.mkdir(f"{final_directory}/INVALID_PASSPORT") try: shutil.move(f"{UPLOAD_FOLDER}/{key}" , f"{final_directory}/INVALID_PASSPORT") resultDisplayed["INVALID_PASSPORT"] = 1 except Exception as e: error += 1 currentProgress +=1 elif value == 5: #NO_HUMAN_FACE if os.path.exists(f"{final_directory}/NO_HUMAN_FACE") == True: try: shutil.move(f"{UPLOAD_FOLDER}/{key}" , f"{final_directory}/NO_HUMAN_FACE") resultDisplayed["NO_HUMAN_FACE"] += 1 except: error += 1 else: #make directory os.mkdir(f"{final_directory}/NO_HUMAN_FACE") try: shutil.move(f"{UPLOAD_FOLDER}/{key}" , f"{final_directory}/NO_HUMAN_FACE") resultDisplayed["NO_HUMAN_FACE"] = 1 except Exception as e: error += 1 currentProgress +=1 elif value == 6: #STAPLED_FACE if os.path.exists(f"{final_directory}/STAPLED_FACE") == True: try: shutil.move(f"{UPLOAD_FOLDER}/{key}" , f"{final_directory}/STAPLED_FACE") resultDisplayed["STAPLED_FACE"] += 1 except: error += 1 else: #make directory os.mkdir(f"{final_directory}/STAPLED_FACE") try: shutil.move(f"{UPLOAD_FOLDER}/{key}" , f"{final_directory}/STAPLED_FACE") resultDisplayed["STAPLED_FACE"] = 1 except Exception as e: error += 1 currentProgress +=1 #make zip file shutil.make_archive(f'result_{today}', 'zip', final_directory) #upload to firebase firebase = pyrebase.initialize_app(config) storage = firebase.storage() path_on_cloud = f'results/{today}.zip' storage.child(path_on_cloud).put(f'{final_directory}.zip') upload_url = storage.child(path_on_cloud).get_url(token=None) resultDisplayed["downloadLink"] = upload_url print(f'result directory {upload_url}') print(result) #remove image from local directory shutil.rmtree(final_directory) os.remove(f'{final_directory}.zip') return render_template("multipleFolderImagesPopUp.html", data=resultDisplayed) else: return "Use a POST request to access this API, check documentation at "
def RecognizeFaceFromVideo(): FaceRecognize = cv2.face.LBPHFaceRecognizer_create() FaceRecognize.read("AllData\TrainedData\DataTrained.yml") harcascadeFilePath = "AllData\haarcascade_frontalface_default.xml" faceCascade = cv2.CascadeClassifier(harcascadeFilePath) datafile = pd.read_csv("AllData\StudentDataRecord.csv") collum_names = ['Id', 'Name', 'Date', 'Time'] AttendanceOfStudent = pd.DataFrame(columns=collum_names) cap = cv2.VideoCapture(0) if (cap.isOpened() == False): messagebox.showerror( title="Error", message="There is some problem with your camera") root.destroy() while True: _, img = cap.read() if (_ == False): messagebox.showerror( title="Error", message= "You have to close video running on home page or select image checkbox" ) root.destroy() break grayImg = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) Detectedfaces = faceCascade.detectMultiScale(grayImg, 1.2, 5) for (x, y, width, height) in Detectedfaces: cv2.rectangle(img, (x, y), (x + width, y + height), (225, 0, 0), 2) Id, confidence = FaceRecognize.predict(grayImg[y:y + height, x:x + width]) if (confidence <= 50): CurrentTime = time.time() CurrentDate = datetime.datetime.fromtimestamp( CurrentTime).strftime('%Y-%m-%d') timeStamp = datetime.datetime.fromtimestamp( CurrentTime).strftime('%H:%M:%S') name = datafile.loc[datafile['Id'] == Id]['Name'].values key = str(Id) + "-" + name AttendanceOfStudent.loc[len(AttendanceOfStudent)] = [ Id, name, CurrentDate, timeStamp ] else: Id = 'Unknown' key = str(Id) cv2.putText(img, str(key), (x, y + height), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 255, 255), 2) AttendanceOfStudent = AttendanceOfStudent.drop_duplicates( subset=['Id'], keep='first') cv2.imshow('Face Recognizing', img) if cv2.waitKey(10000) or cv2.waitKey(1) == ord('q'): break CurrentTime = time.time() CurrentDate = datetime.datetime.fromtimestamp(CurrentTime).strftime( '%Y-%m-%d') timeStamp = datetime.datetime.fromtimestamp(CurrentTime).strftime( '%H:%M:%S') Hour, Minute, Second = timeStamp.split(":") fileName = "AllData\StudentAttendance\StudentAttendance_" + \ CurrentDate+"_"+Hour+"-"+Minute+".csv" AttendanceOfStudent.to_csv(fileName, index=True) Firebase = pyrebase.initialize_app(firebaseConfig) storage = Firebase.storage() bllob = storage.child('uploads/' + fileName).put(fileName) StudentData = { 'name': "Date: " + CurrentDate + " Time: " + Hour + "-" + Minute + "--" + Second, 'url': "https://firebasestorage.googleapis.com/v0/b/ <gs:add your firebase storage url here/> %2FAttendance%5CAttendance_" + CurrentDate + "_" + Hour + "-" + Minute + ".csv?alt=media&token=" + bllob['downloadTokens'] } UploadDataToDatabase = firebase.post('/uploads', StudentData) retrivedData = AttendanceOfStudent StudentsPresent.configure(text=retrivedData) cap.release() cv2.destroyAllWindows()