Manasa B Rao
Add files via upload
2c9f477 unverified
raw
history blame
1.25 kB
import numpy as np
import tensorflow
from tensorflow.keras.preprocessing import image
from tensorflow.keras.layers import GlobalMaxPooling2D
from tensorflow.keras.applications.resnet50 import ResNet50,preprocess_input
from numpy.linalg import norm
import os
from tqdm import tqdm
import pickle
model = ResNet50(weights="imagenet", include_top=False,input_shape=(224,224,3))
model.trainable=False
model1 = tensorflow.keras.Sequential([
model,
GlobalMaxPooling2D()
])
def extract_features(img_path,model):
img=image.load_img(img_path,target_size = (224,224))
image_array = image.img_to_array(img)
expanded_image_array = np.expand_dims(image_array,axis=0)
processed_image = preprocess_input(expanded_image_array)
result = model.predict(processed_image).flatten()
normalized_result=result/norm(result)
return normalized_result
filenames =[]
for file in os.listdir('images'):
filenames.append(os.path.join('images',file))
feature_list = []
for i in tqdm(filenames):
feature_list.append(extract_features(i,model1))
print(np.array(feature_list).shape)
pickle.dump(feature_list,open('embeddings.pkl','wb'))
pickle.dump(filenames,open('filenames.pkl','wb'))