In [5]:
import pickle
path = '../../rsc/obj/'
real_x_path = path + 'real_x_train.sav'
real_y_path = path + 'real_y_train.sav'
X_train = pickle.load(open(real_x_path, 'rb'))
y_train = pickle.load(open(real_y_path, 'rb'))
Una vez obtenido el conjunto de entrenamiento, procedemos a extraer sus características. Para ello, extraemos las características por cada una de las imagenes. Y, finalmente, unimos todas en un mismo conjunto de características.
Este proceso es aplicable a cualquier tipo de características, aunque en este caso se le aplique a las características HoG.
In [6]:
from skimage.feature import daisy
import pickle # Módulo para serializar
path = '../../rsc/obj/BoW_features/'
daisy_features_path = path + 'BoW_features'
ext= '.sav'
train_features = []
i = 0
# Cada 3000 imágenes creamos un conjunto de entrenamiento
for img in X_train:
if i%15000 ==0:
print("Procesada imagen"+str(i)+"/"+str(len(X_train)))
pickle.dump(train_features, open(daisy_features_path+str(i)+ext, 'wb'))
train_features = []
# img_grey = rgb2gray(img)
features = daisy(img)
numFils, numCols, sizeDesc = features.shape
features = features.reshape((numFils*numCols,sizeDesc))
train_features.append(features)
i=i+1
print("Procesada imagen"+str(i)+"/"+str(len(X_train)))
pickle.dump(train_features, open(daisy_features_path+str(i)+ext, 'wb'))
In [7]:
import numpy as np
all_features = np.concatenate(train_features)
all_features.shape
Out[7]: