Spaces:
Runtime error
Runtime error
Commit
•
b824c2c
1
Parent(s):
2274de8
uploading everything
Browse files- Pipfile +12 -0
- Pipfile.lock +125 -0
- face_feature_vecs.csv +3 -0
- face_labels.csv +3 -0
- featurizer.py +60 -0
- requirements.txt +3 -0
Pipfile
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
[[source]]
|
2 |
+
url = "https://pypi.org/simple"
|
3 |
+
verify_ssl = true
|
4 |
+
name = "pypi"
|
5 |
+
|
6 |
+
[packages]
|
7 |
+
scikit-learn = "*"
|
8 |
+
|
9 |
+
[dev-packages]
|
10 |
+
|
11 |
+
[requires]
|
12 |
+
python_version = "3.10"
|
Pipfile.lock
ADDED
@@ -0,0 +1,125 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"_meta": {
|
3 |
+
"hash": {
|
4 |
+
"sha256": "455b4659c7c6ebc9746ce2c17e0423d9b60ac22832ebbccebf6ab1c265fb8ea6"
|
5 |
+
},
|
6 |
+
"pipfile-spec": 6,
|
7 |
+
"requires": {
|
8 |
+
"python_version": "3.10"
|
9 |
+
},
|
10 |
+
"sources": [
|
11 |
+
{
|
12 |
+
"name": "pypi",
|
13 |
+
"url": "https://pypi.org/simple",
|
14 |
+
"verify_ssl": true
|
15 |
+
}
|
16 |
+
]
|
17 |
+
},
|
18 |
+
"default": {
|
19 |
+
"joblib": {
|
20 |
+
"hashes": [
|
21 |
+
"sha256:091138ed78f800342968c523bdde947e7a305b8594b910a0fea2ab83c3c6d385",
|
22 |
+
"sha256:e1cee4a79e4af22881164f218d4311f60074197fb707e082e803b61f6d137018"
|
23 |
+
],
|
24 |
+
"markers": "python_version >= '3.7'",
|
25 |
+
"version": "==1.2.0"
|
26 |
+
},
|
27 |
+
"numpy": {
|
28 |
+
"hashes": [
|
29 |
+
"sha256:003a9f530e880cb2cd177cba1af7220b9aa42def9c4afc2a2fc3ee6be7eb2b22",
|
30 |
+
"sha256:150947adbdfeceec4e5926d956a06865c1c690f2fd902efede4ca6fe2e657c3f",
|
31 |
+
"sha256:2620e8592136e073bd12ee4536149380695fbe9ebeae845b81237f986479ffc9",
|
32 |
+
"sha256:2eabd64ddb96a1239791da78fa5f4e1693ae2dadc82a76bc76a14cbb2b966e96",
|
33 |
+
"sha256:4173bde9fa2a005c2c6e2ea8ac1618e2ed2c1c6ec8a7657237854d42094123a0",
|
34 |
+
"sha256:4199e7cfc307a778f72d293372736223e39ec9ac096ff0a2e64853b866a8e18a",
|
35 |
+
"sha256:4cecaed30dc14123020f77b03601559fff3e6cd0c048f8b5289f4eeabb0eb281",
|
36 |
+
"sha256:557d42778a6869c2162deb40ad82612645e21d79e11c1dc62c6e82a2220ffb04",
|
37 |
+
"sha256:63e45511ee4d9d976637d11e6c9864eae50e12dc9598f531c035265991910468",
|
38 |
+
"sha256:6524630f71631be2dabe0c541e7675db82651eb998496bbe16bc4f77f0772253",
|
39 |
+
"sha256:76807b4063f0002c8532cfeac47a3068a69561e9c8715efdad3c642eb27c0756",
|
40 |
+
"sha256:7de8fdde0003f4294655aa5d5f0a89c26b9f22c0a58790c38fae1ed392d44a5a",
|
41 |
+
"sha256:889b2cc88b837d86eda1b17008ebeb679d82875022200c6e8e4ce6cf549b7acb",
|
42 |
+
"sha256:92011118955724465fb6853def593cf397b4a1367495e0b59a7e69d40c4eb71d",
|
43 |
+
"sha256:97cf27e51fa078078c649a51d7ade3c92d9e709ba2bfb97493007103c741f1d0",
|
44 |
+
"sha256:9a23f8440561a633204a67fb44617ce2a299beecf3295f0d13c495518908e910",
|
45 |
+
"sha256:a51725a815a6188c662fb66fb32077709a9ca38053f0274640293a14fdd22978",
|
46 |
+
"sha256:a77d3e1163a7770164404607b7ba3967fb49b24782a6ef85d9b5f54126cc39e5",
|
47 |
+
"sha256:adbdce121896fd3a17a77ab0b0b5eedf05a9834a18699db6829a64e1dfccca7f",
|
48 |
+
"sha256:c29e6bd0ec49a44d7690ecb623a8eac5ab8a923bce0bea6293953992edf3a76a",
|
49 |
+
"sha256:c72a6b2f4af1adfe193f7beb91ddf708ff867a3f977ef2ec53c0ffb8283ab9f5",
|
50 |
+
"sha256:d0a2db9d20117bf523dde15858398e7c0858aadca7c0f088ac0d6edd360e9ad2",
|
51 |
+
"sha256:e3ab5d32784e843fc0dd3ab6dcafc67ef806e6b6828dc6af2f689be0eb4d781d",
|
52 |
+
"sha256:e428c4fbfa085f947b536706a2fc349245d7baa8334f0c5723c56a10595f9b95",
|
53 |
+
"sha256:e8d2859428712785e8a8b7d2b3ef0a1d1565892367b32f915c4a4df44d0e64f5",
|
54 |
+
"sha256:eef70b4fc1e872ebddc38cddacc87c19a3709c0e3e5d20bf3954c147b1dd941d",
|
55 |
+
"sha256:f64bb98ac59b3ea3bf74b02f13836eb2e24e48e0ab0145bbda646295769bd780",
|
56 |
+
"sha256:f9006288bcf4895917d02583cf3411f98631275bc67cce355a7f39f8c14338fa"
|
57 |
+
],
|
58 |
+
"markers": "python_version >= '3.8'",
|
59 |
+
"version": "==1.24.2"
|
60 |
+
},
|
61 |
+
"scikit-learn": {
|
62 |
+
"hashes": [
|
63 |
+
"sha256:065e9673e24e0dc5113e2dd2b4ca30c9d8aa2fa90f4c0597241c93b63130d233",
|
64 |
+
"sha256:2dd3ffd3950e3d6c0c0ef9033a9b9b32d910c61bd06cb8206303fb4514b88a49",
|
65 |
+
"sha256:2e2642baa0ad1e8f8188917423dd73994bf25429f8893ddbe115be3ca3183584",
|
66 |
+
"sha256:44b47a305190c28dd8dd73fc9445f802b6ea716669cfc22ab1eb97b335d238b1",
|
67 |
+
"sha256:6477eed40dbce190f9f9e9d0d37e020815825b300121307942ec2110302b66a3",
|
68 |
+
"sha256:6fe83b676f407f00afa388dd1fdd49e5c6612e551ed84f3b1b182858f09e987d",
|
69 |
+
"sha256:7d5312d9674bed14f73773d2acf15a3272639b981e60b72c9b190a0cffed5bad",
|
70 |
+
"sha256:7f69313884e8eb311460cc2f28676d5e400bd929841a2c8eb8742ae78ebf7c20",
|
71 |
+
"sha256:8156db41e1c39c69aa2d8599ab7577af53e9e5e7a57b0504e116cc73c39138dd",
|
72 |
+
"sha256:8429aea30ec24e7a8c7ed8a3fa6213adf3814a6efbea09e16e0a0c71e1a1a3d7",
|
73 |
+
"sha256:8b0670d4224a3c2d596fd572fb4fa673b2a0ccfb07152688ebd2ea0b8c61025c",
|
74 |
+
"sha256:953236889928d104c2ef14027539f5f2609a47ebf716b8cbe4437e85dce42744",
|
75 |
+
"sha256:99cc01184e347de485bf253d19fcb3b1a3fb0ee4cea5ee3c43ec0cc429b6d29f",
|
76 |
+
"sha256:9c710ff9f9936ba8a3b74a455ccf0dcf59b230caa1e9ba0223773c490cab1e51",
|
77 |
+
"sha256:ad66c3848c0a1ec13464b2a95d0a484fd5b02ce74268eaa7e0c697b904f31d6c",
|
78 |
+
"sha256:bf036ea7ef66115e0d49655f16febfa547886deba20149555a41d28f56fd6d3c",
|
79 |
+
"sha256:dfeaf8be72117eb61a164ea6fc8afb6dfe08c6f90365bde2dc16456e4bc8e45f",
|
80 |
+
"sha256:e6e574db9914afcb4e11ade84fab084536a895ca60aadea3041e85b8ac963edb",
|
81 |
+
"sha256:ea061bf0283bf9a9f36ea3c5d3231ba2176221bbd430abd2603b1c3b2ed85c89",
|
82 |
+
"sha256:fe0aa1a7029ed3e1dcbf4a5bc675aa3b1bc468d9012ecf6c6f081251ca47f590",
|
83 |
+
"sha256:fe175ee1dab589d2e1033657c5b6bec92a8a3b69103e3dd361b58014729975c3"
|
84 |
+
],
|
85 |
+
"index": "pypi",
|
86 |
+
"version": "==1.2.2"
|
87 |
+
},
|
88 |
+
"scipy": {
|
89 |
+
"hashes": [
|
90 |
+
"sha256:049a8bbf0ad95277ffba9b3b7d23e5369cc39e66406d60422c8cfef40ccc8415",
|
91 |
+
"sha256:07c3457ce0b3ad5124f98a86533106b643dd811dd61b548e78cf4c8786652f6f",
|
92 |
+
"sha256:0f1564ea217e82c1bbe75ddf7285ba0709ecd503f048cb1236ae9995f64217bd",
|
93 |
+
"sha256:1553b5dcddd64ba9a0d95355e63fe6c3fc303a8fd77c7bc91e77d61363f7433f",
|
94 |
+
"sha256:15a35c4242ec5f292c3dd364a7c71a61be87a3d4ddcc693372813c0b73c9af1d",
|
95 |
+
"sha256:1b4735d6c28aad3cdcf52117e0e91d6b39acd4272f3f5cd9907c24ee931ad601",
|
96 |
+
"sha256:2cf9dfb80a7b4589ba4c40ce7588986d6d5cebc5457cad2c2880f6bc2d42f3a5",
|
97 |
+
"sha256:39becb03541f9e58243f4197584286e339029e8908c46f7221abeea4b749fa88",
|
98 |
+
"sha256:43b8e0bcb877faf0abfb613d51026cd5cc78918e9530e375727bf0625c82788f",
|
99 |
+
"sha256:4b3f429188c66603a1a5c549fb414e4d3bdc2a24792e061ffbd607d3d75fd84e",
|
100 |
+
"sha256:4c0ff64b06b10e35215abce517252b375e580a6125fd5fdf6421b98efbefb2d2",
|
101 |
+
"sha256:51af417a000d2dbe1ec6c372dfe688e041a7084da4fdd350aeb139bd3fb55353",
|
102 |
+
"sha256:5678f88c68ea866ed9ebe3a989091088553ba12c6090244fdae3e467b1139c35",
|
103 |
+
"sha256:79c8e5a6c6ffaf3a2262ef1be1e108a035cf4f05c14df56057b64acc5bebffb6",
|
104 |
+
"sha256:7ff7f37b1bf4417baca958d254e8e2875d0cc23aaadbe65b3d5b3077b0eb23ea",
|
105 |
+
"sha256:aaea0a6be54462ec027de54fca511540980d1e9eea68b2d5c1dbfe084797be35",
|
106 |
+
"sha256:bce5869c8d68cf383ce240e44c1d9ae7c06078a9396df68ce88a1230f93a30c1",
|
107 |
+
"sha256:cd9f1027ff30d90618914a64ca9b1a77a431159df0e2a195d8a9e8a04c78abf9",
|
108 |
+
"sha256:d925fa1c81b772882aa55bcc10bf88324dadb66ff85d548c71515f6689c6dac5",
|
109 |
+
"sha256:e7354fd7527a4b0377ce55f286805b34e8c54b91be865bac273f527e1b839019",
|
110 |
+
"sha256:fae8a7b898c42dffe3f7361c40d5952b6bf32d10c4569098d276b4c547905ee1"
|
111 |
+
],
|
112 |
+
"markers": "python_version < '3.12' and python_version >= '3.8'",
|
113 |
+
"version": "==1.10.1"
|
114 |
+
},
|
115 |
+
"threadpoolctl": {
|
116 |
+
"hashes": [
|
117 |
+
"sha256:8b99adda265feb6773280df41eece7b2e6561b772d21ffd52e372f999024907b",
|
118 |
+
"sha256:a335baacfaa4400ae1f0d8e3a58d6674d2f8828e3716bb2802c44955ad391380"
|
119 |
+
],
|
120 |
+
"markers": "python_version >= '3.6'",
|
121 |
+
"version": "==3.1.0"
|
122 |
+
}
|
123 |
+
},
|
124 |
+
"develop": {}
|
125 |
+
}
|
face_feature_vecs.csv
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:1ae9b94b41a9e81924a41eb58a349c19d6f30359b95a07d8c9a177ee323f51bc
|
3 |
+
size 303673119
|
face_labels.csv
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:07ea5e42025c67c4f2ef00ad7c46d5b0f0e4485a8d739d7a8f5da87b74d340c8
|
3 |
+
size 379928
|
featurizer.py
ADDED
@@ -0,0 +1,60 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import streamlit as st
|
2 |
+
import pandas as pd
|
3 |
+
import numpy as np
|
4 |
+
import os
|
5 |
+
from os import path
|
6 |
+
import matplotlib.pyplot as plt
|
7 |
+
from itertools import cycle
|
8 |
+
from sklearn.neighbors import NearestNeighbors
|
9 |
+
|
10 |
+
feature_vecs = pd.read_csv("face_feature_vecs.csv")
|
11 |
+
feature_vecs = feature_vecs.iloc[:, 1:]
|
12 |
+
feature_vecs_array = feature_vecs.to_numpy()
|
13 |
+
|
14 |
+
neighborhood = NearestNeighbors(n_neighbors=11)
|
15 |
+
neighborhood.fit(feature_vecs_array)
|
16 |
+
|
17 |
+
face_labels_df = pd.read_csv("face_labels.csv")
|
18 |
+
face_labels_df = pd.DataFrame({"Name" : face_labels_df["0"]})
|
19 |
+
face_labels = face_labels_df["Name"].values
|
20 |
+
current_dir = os.getcwd()
|
21 |
+
faces_dir = os.path.join(current_dir, "faces/")
|
22 |
+
|
23 |
+
# test_indices = np.random.randint(0, len(face_labels), 10)
|
24 |
+
# neighborhood = test_indices
|
25 |
+
|
26 |
+
print(faces_dir)
|
27 |
+
with st.form(key="init_form"):
|
28 |
+
|
29 |
+
choice = st.selectbox("Choose Picture", face_labels)
|
30 |
+
face_index = np.where(face_labels == choice)[0]
|
31 |
+
img_path = os.path.join(faces_dir, choice)
|
32 |
+
# st.image(img_path)
|
33 |
+
st.image(img_path)
|
34 |
+
|
35 |
+
neighbors = neighborhood.kneighbors(feature_vecs_array[face_index].reshape(1,-1))
|
36 |
+
neighbors = neighbors[-1][0][1:]
|
37 |
+
|
38 |
+
face_paths = [os.path.join(faces_dir, face_labels[index]) for index in neighbors]
|
39 |
+
# The index of choice in model_pointers will access the models list
|
40 |
+
# and select the Hugging Face model path at index.
|
41 |
+
analyze = st.form_submit_button("Analyze")
|
42 |
+
|
43 |
+
if analyze:
|
44 |
+
with st.spinner("Analyzing..."):
|
45 |
+
|
46 |
+
st.write("Nothing Yet")
|
47 |
+
|
48 |
+
|
49 |
+
cols = cycle(st.columns(5)) # st.columns here since it is out of beta at the time I'm writing this
|
50 |
+
for idx, face in enumerate(face_paths):
|
51 |
+
next(cols).image(face, width=150, caption=face_labels[neighbors[idx]])
|
52 |
+
|
53 |
+
# sentiment_pipeline = pipeline(model=user_picked_model)
|
54 |
+
# sentiment_results=sentiment_pipeline(input_text)
|
55 |
+
# st.write(f"Sentiment: {sentiment_results[0]['label']}")
|
56 |
+
# st.write(f"Score: {sentiment_results[0]['score']}")
|
57 |
+
else:
|
58 |
+
st.write("no input detected")
|
59 |
+
|
60 |
+
|
requirements.txt
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
streamlit
|
2 |
+
sklearn
|
3 |
+
matplotlib
|