import tensorflow as tf import gradio as gr import cv2 json_file=open(r"dark_s.json","r") loaded_model_json=json_file.read() json_file.close() loaded_model= tf.keras.models.model_from_json(loaded_model_json) loaded_model.load_weights("dark_s.h5") json_file=open(r"eyes_d.json","r") loaded_model_json=json_file.read() json_file.close() loaded_model1 = tf.keras.models.model_from_json(loaded_model_json) loaded_model1.load_weights("eyes_d.h5") json_file=open(r"wrinkl.json","r") loaded_model_json=json_file.read() json_file.close() loaded_model2 = tf.keras.models.model_from_json(loaded_model_json) loaded_model2.load_weights("wrinkl.h5") def image_bounder(img1): face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades +'haarcascade_frontalface_default.xml') eye_cascade = cv2.CascadeClassifier(cv2.data.haarcascades +'haarcascade_eye.xml') gray = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY) faces = face_cascade.detectMultiScale(gray, 1.3, 5) for (x,y,w,h) in faces: cv2.rectangle(img1,(x,y),(x+w,y+h),(255,255,0),2) roi_gray = gray[y:y+h, x:x+w] roi_color = img1[y:y+h, x:x+w] eyes = eye_cascade.detectMultiScale(roi_gray) for (ex,ey,ew,eh) in eyes: cv2.rectangle(roi_color,(ex,ey),(ex+ew,ey+eh),(0,127,255),2) return img1 def classifier(Imgarr): l = [] img = Imgarr.reshape(-1, 50, 50, 3) result = loaded_model.predict(img) result = result[0] if result[0] >= result[1]: l.append("dark spots") else: l.append("no dark spots") result = loaded_model1.predict(img) result = result[0] if result[0] >= result[1]: l.append("no puffy eyes") else: l.append("puffy eyes") result = loaded_model2.predict(img) result = result[0] if result[0] >= result[1]: l.append("no wrinkles on face") else: l.append("wrinkles on face") return "Predictions are : "+str(l) def out(Imgarr): return [image_bounder(Imgarr),classifier(Imgarr)] interface = gr.Interface(out,gr.inputs.Image(shape=(300,300)), outputs = ["image","text"], description="Classifier of Aging Signs of Images", title="Aging Signs Classifier", examples=[['42.jpg'],['71.jpg'],['11.jfif'],['56.jpg'],['1836.png']]) interface.launch()