Manasa B Rao commited on
Commit
aa5c66b
·
unverified ·
1 Parent(s): 01375f7

Delete main.py

Browse files
Files changed (1) hide show
  1. main.py +0 -74
main.py DELETED
@@ -1,74 +0,0 @@
1
- import streamlit as st
2
- import os
3
- from PIL import Image
4
- import pickle
5
- import tensorflow
6
- import numpy as np
7
- from numpy.linalg import norm
8
- from tensorflow.keras.preprocessing import image
9
- from tensorflow.keras.layers import GlobalMaxPooling2D
10
- from tensorflow.keras.applications.resnet50 import ResNet50, preprocess_input
11
- from sklearn.neighbors import NearestNeighbors
12
-
13
- feature_list = np.array(pickle.load(open('embeddings.pkl', 'rb')))
14
- filenames = pickle.load(open('filenames.pkl', 'rb'))
15
-
16
- model = ResNet50(weights='imagenet', include_top=False, input_shape=(224, 224, 3))
17
- model.trainable = False
18
-
19
- model = tensorflow.keras.Sequential([
20
- model,
21
- GlobalMaxPooling2D()
22
- ])
23
-
24
- st.title("Fashion Recommender System")
25
-
26
-
27
- def extract_features(img_path, model):
28
- img = image.load_img(img_path, target_size=(224, 224))
29
- image_array = image.img_to_array(img)
30
- expanded_image_array = np.expand_dims(image_array, axis=0)
31
- processed_image = preprocess_input(expanded_image_array)
32
- result = model.predict(processed_image).flatten()
33
- normalized_result = result / norm(result)
34
- return normalized_result
35
-
36
- def recommend(features,feature_list):
37
- neighbors = NearestNeighbors(n_neighbors=5, algorithm='brute', metric='euclidean')
38
- neighbors.fit(feature_list)
39
-
40
- distances, indices = neighbors.kneighbors([features])
41
- return indices
42
-
43
-
44
- def save_uploaded_file(uploaded_file):
45
- try:
46
- with open(os.path.join('uploads', uploaded_file.name), 'wb') as f:
47
- f.write(uploaded_file.getbuffer())
48
- return 1
49
- except:
50
- return 0
51
-
52
-
53
- uploaded_file = st.file_uploader("choose an image")
54
-
55
- if uploaded_file is not None:
56
- if save_uploaded_file(uploaded_file):
57
- display_image = Image.open(uploaded_file)
58
- st.image(display_image)
59
- features = extract_features(os.path.join("uploads",uploaded_file.name),model)
60
- #st.text(features)
61
- indices = recommend(features,feature_list)
62
- col1,col2,col3,col4,col5 = st.columns(5)
63
- with col1:
64
- st.image(filenames[indices[0][0]])
65
- with col2:
66
- st.image(filenames[indices[0][1]])
67
- with col3:
68
- st.image(filenames[indices[0][2]])
69
- with col4:
70
- st.image(filenames[indices[0][3]])
71
- with col5:
72
- st.image(filenames[indices[0][4]])
73
- else:
74
- st.header("Some error has occured while uploading file")