Himanshu2003 commited on
Commit
94f7029
·
verified ·
1 Parent(s): 1e36cc2

Upload 101 files

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .gitattributes +31 -0
  2. app.py +117 -0
  3. celeb_pictures/Aamir Khan.jpg +0 -0
  4. celeb_pictures/Abhay Deol.jpg +0 -0
  5. celeb_pictures/Abhishek Bachchan.jpg +0 -0
  6. celeb_pictures/Aftab Shivdasani.jpg +0 -0
  7. celeb_pictures/Aishwarya Rai.jpg +3 -0
  8. celeb_pictures/Ajay Devgn.jpg +0 -0
  9. celeb_pictures/Akshay Kumar.jpg +0 -0
  10. celeb_pictures/Akshaye Khanna.jpg +0 -0
  11. celeb_pictures/Alia Bhatt.jpg +0 -0
  12. celeb_pictures/Ameesha Patel.jpg +0 -0
  13. celeb_pictures/Amitabh Bachchan.jpg +0 -0
  14. celeb_pictures/Amrita Rao.jpg +0 -0
  15. celeb_pictures/Amy Jackson.jpg +3 -0
  16. celeb_pictures/Anil Kapoor.jpg +3 -0
  17. celeb_pictures/Anushka Sharma.jpg +0 -0
  18. celeb_pictures/Anushka Shetty.jpg +0 -0
  19. celeb_pictures/Arjun Kapoor.JPG +0 -0
  20. celeb_pictures/Arjun Rampal.jpg +0 -0
  21. celeb_pictures/Arshad Warsi.jpg +0 -0
  22. celeb_pictures/Asin.jpg +3 -0
  23. celeb_pictures/Ayushmann Khurrana.jpg +3 -0
  24. celeb_pictures/Bhumi Pednekar.jpg +0 -0
  25. celeb_pictures/Bipasha Basu.jpg +0 -0
  26. celeb_pictures/Bobby Deol.jpg +3 -0
  27. celeb_pictures/Deepika Padukone.jpg +0 -0
  28. celeb_pictures/Disha Patani.jpg +0 -0
  29. celeb_pictures/Emraan Hashmi.jpg +3 -0
  30. celeb_pictures/Esha Gupta.jpg +3 -0
  31. celeb_pictures/Farhan Akhtar.jpg +0 -0
  32. celeb_pictures/Govinda.jpg +0 -0
  33. celeb_pictures/Hrithik Roshan.jpg +0 -0
  34. celeb_pictures/Huma Qureshi.jpg +0 -0
  35. celeb_pictures/Ileana DCruz.jpg +0 -0
  36. celeb_pictures/Irrfan Khan.jpg +0 -0
  37. celeb_pictures/Jacqueline Fernandez.JPG +0 -0
  38. celeb_pictures/John Abraham.jpg +0 -0
  39. celeb_pictures/Juhi Chawla.jpg +3 -0
  40. celeb_pictures/Kajal Aggarwal.jpg +3 -0
  41. celeb_pictures/Kajol.jpg +0 -0
  42. celeb_pictures/Kangana Ranaut.jpg +0 -0
  43. celeb_pictures/Kareena Kapoor.jpg +0 -0
  44. celeb_pictures/Karisma Kapoor.jpg +3 -0
  45. celeb_pictures/Kartik Aaryan.jpg +3 -0
  46. celeb_pictures/Katrina Kaif.jpg +3 -0
  47. celeb_pictures/Kiara Advani.jpg +0 -0
  48. celeb_pictures/Kriti Kharbanda.jpg +0 -0
  49. celeb_pictures/Kriti Sanon.jpg +0 -0
  50. celeb_pictures/Kunal Khemu.jpg +0 -0
.gitattributes CHANGED
@@ -33,3 +33,34 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ celeb_pictures/Aishwarya[[:space:]]Rai.jpg filter=lfs diff=lfs merge=lfs -text
37
+ celeb_pictures/Amy[[:space:]]Jackson.jpg filter=lfs diff=lfs merge=lfs -text
38
+ celeb_pictures/Anil[[:space:]]Kapoor.jpg filter=lfs diff=lfs merge=lfs -text
39
+ celeb_pictures/Asin.jpg filter=lfs diff=lfs merge=lfs -text
40
+ celeb_pictures/Ayushmann[[:space:]]Khurrana.jpg filter=lfs diff=lfs merge=lfs -text
41
+ celeb_pictures/Bobby[[:space:]]Deol.jpg filter=lfs diff=lfs merge=lfs -text
42
+ celeb_pictures/Emraan[[:space:]]Hashmi.jpg filter=lfs diff=lfs merge=lfs -text
43
+ celeb_pictures/Esha[[:space:]]Gupta.jpg filter=lfs diff=lfs merge=lfs -text
44
+ celeb_pictures/Juhi[[:space:]]Chawla.jpg filter=lfs diff=lfs merge=lfs -text
45
+ celeb_pictures/Kajal[[:space:]]Aggarwal.jpg filter=lfs diff=lfs merge=lfs -text
46
+ celeb_pictures/Karisma[[:space:]]Kapoor.jpg filter=lfs diff=lfs merge=lfs -text
47
+ celeb_pictures/Kartik[[:space:]]Aaryan.jpg filter=lfs diff=lfs merge=lfs -text
48
+ celeb_pictures/Katrina[[:space:]]Kaif.jpg filter=lfs diff=lfs merge=lfs -text
49
+ celeb_pictures/Lara[[:space:]]Dutta.jpg filter=lfs diff=lfs merge=lfs -text
50
+ celeb_pictures/Madhuri[[:space:]]Dixit.jpg filter=lfs diff=lfs merge=lfs -text
51
+ celeb_pictures/Mrunal[[:space:]]Thakur.jpg filter=lfs diff=lfs merge=lfs -text
52
+ celeb_pictures/Naseeruddin[[:space:]]Shah.jpg filter=lfs diff=lfs merge=lfs -text
53
+ celeb_pictures/Nushrat[[:space:]]Bharucha.jpg filter=lfs diff=lfs merge=lfs -text
54
+ celeb_pictures/Parineeti[[:space:]]Chopra.jpg filter=lfs diff=lfs merge=lfs -text
55
+ celeb_pictures/Pooja[[:space:]]Hegde.jpg filter=lfs diff=lfs merge=lfs -text
56
+ celeb_pictures/Preity[[:space:]]Zinta.jpg filter=lfs diff=lfs merge=lfs -text
57
+ celeb_pictures/Priyanka[[:space:]]Chopra.jpg filter=lfs diff=lfs merge=lfs -text
58
+ celeb_pictures/Rani[[:space:]]Mukerji.jpg filter=lfs diff=lfs merge=lfs -text
59
+ celeb_pictures/Ranveer[[:space:]]Singh.jpg filter=lfs diff=lfs merge=lfs -text
60
+ celeb_pictures/Saif[[:space:]]Ali[[:space:]]Khan.jpg filter=lfs diff=lfs merge=lfs -text
61
+ celeb_pictures/Salman[[:space:]]Khan.jpg filter=lfs diff=lfs merge=lfs -text
62
+ celeb_pictures/Sara[[:space:]]Ali[[:space:]]Khan.jpg filter=lfs diff=lfs merge=lfs -text
63
+ celeb_pictures/Sonam[[:space:]]Kapoor.jpg filter=lfs diff=lfs merge=lfs -text
64
+ celeb_pictures/Tusshar[[:space:]]Kapoor.jpg filter=lfs diff=lfs merge=lfs -text
65
+ celeb_pictures/Vicky[[:space:]]Kaushal.jpg filter=lfs diff=lfs merge=lfs -text
66
+ celeb_pictures/Zareen[[:space:]]Khan.jpg filter=lfs diff=lfs merge=lfs -text
app.py ADDED
@@ -0,0 +1,117 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ from PIL import Image
3
+ import torch
4
+ from torchvision import transforms
5
+ from facenet_pytorch import InceptionResnetV1
6
+ import numpy as np
7
+ import json
8
+ import pickle
9
+ from sklearn.metrics.pairwise import cosine_similarity
10
+ from mtcnn import MTCNN
11
+
12
+ st.set_page_config(page_title="FaceTwin AI", page_icon="🤖", layout="centered")
13
+
14
+ st.title("FaceTwin AI 🤖")
15
+ st.subheader("Find your closest celebrity match through AI-powered facial similarity 📸 ⭐")
16
+ st.write("---")
17
+
18
+ device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
19
+
20
+
21
+ @st.cache_resource(show_spinner="Loading VGGFace2 model...")
22
+ def load_vgg_model():
23
+ model = InceptionResnetV1(pretrained='vggface2').eval().to(device)
24
+ return model
25
+
26
+ @st.cache_resource(show_spinner="Initializing face detector...")
27
+ def load_face_detector():
28
+ return MTCNN()
29
+
30
+ @st.cache_data(show_spinner="Loading embeddings and metadata...")
31
+ def load_feature_data():
32
+ features_list = np.load("features.npy")
33
+ labels_list = np.load("labels.npy")
34
+ with open("image_paths.pkl", "rb") as f:
35
+ imgs_path = pickle.load(f)
36
+ with open("label_dict.json", "r") as f:
37
+ label_dict = json.load(f)
38
+ return features_list, labels_list, imgs_path, label_dict
39
+
40
+ vgg_feature_extractor = load_vgg_model()
41
+ face_detector = load_face_detector()
42
+ features_list, labels_list, imgs_path, label_dict = load_feature_data()
43
+
44
+
45
+
46
+ transformer = transforms.Compose([
47
+ transforms.Resize((160, 160)),
48
+ transforms.ToTensor(),
49
+ transforms.Normalize(mean=[0.5, 0.5, 0.5],
50
+ std=[0.5, 0.5, 0.5])
51
+ ])
52
+
53
+
54
+
55
+
56
+ def predict_actor(img):
57
+ img = np.array(img)
58
+ results = face_detector.detect_faces(img)
59
+
60
+ if len(results) == 0:
61
+ return None, None, "No face detected. Please upload a clearer image."
62
+
63
+ x, y, width, height = results[0]['box']
64
+ face = img[y:y + height, x:x + width]
65
+ face = Image.fromarray(face).convert("RGB")
66
+
67
+ img_tensor = transformer(face).unsqueeze(0).to(device)
68
+
69
+ with torch.no_grad():
70
+ features = vgg_feature_extractor(img_tensor)
71
+
72
+ flattened_features = features.flatten().cpu().numpy().astype('float16')
73
+
74
+ similarities = cosine_similarity([flattened_features], features_list)
75
+ best_index = np.argmax(similarities)
76
+
77
+ label = str(labels_list[best_index])
78
+ name = label_dict[label]
79
+ img_path = imgs_path[best_index]
80
+
81
+ return name, img_path, None
82
+
83
+
84
+ # ===============================
85
+ # 🎛️ STREAMLIT UI
86
+ # ===============================
87
+ upload_img = st.file_uploader("Upload your image", type=["jpg", "jpeg", "png"])
88
+
89
+ if st.button("Find my Celebrity Match ⭐"):
90
+ if upload_img is not None:
91
+ img = Image.open(upload_img)
92
+
93
+ with st.spinner("Analyzing your face..."):
94
+ name, img2_path, error_msg = predict_actor(img)
95
+
96
+ if error_msg:
97
+ st.error(error_msg)
98
+ else:
99
+ img2 = Image.open(f"celeb_pictures/{name}.jpg")
100
+ img3 = Image.open(img2_path)
101
+
102
+ TARGET_SIZE = (300, 400)
103
+ img = img.resize(TARGET_SIZE)
104
+ img2 = img2.resize(TARGET_SIZE)
105
+ img3 = img3.resize(TARGET_SIZE)
106
+
107
+ col1, col2, col3 = st.columns(3)
108
+ with col1:
109
+ st.image(img, caption="You", use_container_width=True)
110
+ with col2:
111
+ st.image(img2, caption=f"Your Celebrity Twin: {name}", use_container_width=True)
112
+ with col3:
113
+ st.image(img3, caption="Exact Look", use_container_width=True)
114
+
115
+ st.success(f"🎉 You look like **{name}**!")
116
+ else:
117
+ st.warning("⚠️ Please upload an image first.")
celeb_pictures/Aamir Khan.jpg ADDED
celeb_pictures/Abhay Deol.jpg ADDED
celeb_pictures/Abhishek Bachchan.jpg ADDED
celeb_pictures/Aftab Shivdasani.jpg ADDED
celeb_pictures/Aishwarya Rai.jpg ADDED

Git LFS Details

  • SHA256: e19d6ab7c371a877ba5804f2e0bfc5cf7d8e1cd8f0d19a10136c61286bf1b20c
  • Pointer size: 131 Bytes
  • Size of remote file: 201 kB
celeb_pictures/Ajay Devgn.jpg ADDED
celeb_pictures/Akshay Kumar.jpg ADDED
celeb_pictures/Akshaye Khanna.jpg ADDED
celeb_pictures/Alia Bhatt.jpg ADDED
celeb_pictures/Ameesha Patel.jpg ADDED
celeb_pictures/Amitabh Bachchan.jpg ADDED
celeb_pictures/Amrita Rao.jpg ADDED
celeb_pictures/Amy Jackson.jpg ADDED

Git LFS Details

  • SHA256: 18616608d42e4e3313d1426d896aaeed8b945acbcd5817af067ce4f6c8ec2e86
  • Pointer size: 131 Bytes
  • Size of remote file: 338 kB
celeb_pictures/Anil Kapoor.jpg ADDED

Git LFS Details

  • SHA256: 91b25c2cacf3eabdf87a3524ff96ae5bb733ea362ec0465e4733744a36b86720
  • Pointer size: 131 Bytes
  • Size of remote file: 222 kB
celeb_pictures/Anushka Sharma.jpg ADDED
celeb_pictures/Anushka Shetty.jpg ADDED
celeb_pictures/Arjun Kapoor.JPG ADDED
celeb_pictures/Arjun Rampal.jpg ADDED
celeb_pictures/Arshad Warsi.jpg ADDED
celeb_pictures/Asin.jpg ADDED

Git LFS Details

  • SHA256: 3b84bc808b7e2ed61e2f332c103cf19f990957320cf252bea68d9adb85a42978
  • Pointer size: 131 Bytes
  • Size of remote file: 771 kB
celeb_pictures/Ayushmann Khurrana.jpg ADDED

Git LFS Details

  • SHA256: 319aa3f40a7b168a0dc7746a4553e68f3cd683ca83562625d8b2a684300ff4e8
  • Pointer size: 131 Bytes
  • Size of remote file: 290 kB
celeb_pictures/Bhumi Pednekar.jpg ADDED
celeb_pictures/Bipasha Basu.jpg ADDED
celeb_pictures/Bobby Deol.jpg ADDED

Git LFS Details

  • SHA256: 8b641952055871c6a4035605c07157c26da8ffdf463e4f81d5f96cdef374fca9
  • Pointer size: 131 Bytes
  • Size of remote file: 136 kB
celeb_pictures/Deepika Padukone.jpg ADDED
celeb_pictures/Disha Patani.jpg ADDED
celeb_pictures/Emraan Hashmi.jpg ADDED

Git LFS Details

  • SHA256: 5f1a9af4891f16a9509a038aa1b037cef6e53a5206c2a1317647039f5578522a
  • Pointer size: 131 Bytes
  • Size of remote file: 133 kB
celeb_pictures/Esha Gupta.jpg ADDED

Git LFS Details

  • SHA256: 74dbe388181617502ca85aebeaca02aa0dda45bb26ae407356d697c240bebcd9
  • Pointer size: 131 Bytes
  • Size of remote file: 147 kB
celeb_pictures/Farhan Akhtar.jpg ADDED
celeb_pictures/Govinda.jpg ADDED
celeb_pictures/Hrithik Roshan.jpg ADDED
celeb_pictures/Huma Qureshi.jpg ADDED
celeb_pictures/Ileana DCruz.jpg ADDED
celeb_pictures/Irrfan Khan.jpg ADDED
celeb_pictures/Jacqueline Fernandez.JPG ADDED
celeb_pictures/John Abraham.jpg ADDED
celeb_pictures/Juhi Chawla.jpg ADDED

Git LFS Details

  • SHA256: c30f99210b29c40a958bdc393d7d7fa90c481ea60d072671e260203c07509efb
  • Pointer size: 131 Bytes
  • Size of remote file: 110 kB
celeb_pictures/Kajal Aggarwal.jpg ADDED

Git LFS Details

  • SHA256: dbd83cf269d2e9999d69e11416b4a07823ea1d2b2544f769f1eceb5de3605be5
  • Pointer size: 131 Bytes
  • Size of remote file: 112 kB
celeb_pictures/Kajol.jpg ADDED
celeb_pictures/Kangana Ranaut.jpg ADDED
celeb_pictures/Kareena Kapoor.jpg ADDED
celeb_pictures/Karisma Kapoor.jpg ADDED

Git LFS Details

  • SHA256: 0bc984a9fc976d2532babcb07e5d450865360f962ea05ec3ad994f2922dc4908
  • Pointer size: 131 Bytes
  • Size of remote file: 120 kB
celeb_pictures/Kartik Aaryan.jpg ADDED

Git LFS Details

  • SHA256: 0fa8325f72b74547282ae56c085287c23de7059a88ea4fbbfc88dfdb6c1f09a3
  • Pointer size: 131 Bytes
  • Size of remote file: 804 kB
celeb_pictures/Katrina Kaif.jpg ADDED

Git LFS Details

  • SHA256: 686c65aad74ae4b0d66b1d153e01813b595a603e75bfe96618af05aadd065093
  • Pointer size: 131 Bytes
  • Size of remote file: 209 kB
celeb_pictures/Kiara Advani.jpg ADDED
celeb_pictures/Kriti Kharbanda.jpg ADDED
celeb_pictures/Kriti Sanon.jpg ADDED
celeb_pictures/Kunal Khemu.jpg ADDED