Python: Как отправить дескрипторы HOG в качестве входного вектора в нейронную сеть, используя PyBrain
Я извлек особенности HOG и пометил их, чтобы сформировать обучающий набор, используя Python (Scikit-image & OpenCV).
Пользовательская функция Python - это compute_hog, а код приведен ниже:
# Function definition of 'compute_hog'
def compute_hog(imagename):
image = color.rgb2gray(imagename)
fd, hog_image = hog(image,orientations=8,pixels_per_cell=(16,16),cells_per_block=(1,1),visualise=True)
return fd # return the feature descriptors
# A sample training set with 3 images is created
list=[] # Create a 2D list with 3 rows
list.append([])
list.append([])
list.append([])
# call 'compute_hog' function and store the HOG descriptors in a 2D list
# For this example, I've used only 3 images
counter=0
for imgs in lst:
list[counter].append(compute_hog(imgs))
counter=counter+1
# Assign labels to the corresponding 3 Features
list[0].append('Label1')
list[1].append('Label2')
list[2].append('Label3')
Переменная 'list' содержит пары меток объектов HOG для соответствующих 3 изображений.
Как преобразовать эту переменную во входной вектор и передать ее в многослойную прямую нейронную сеть (созданную с использованием Pybrain) для обучения сети и классификации?
Используя алгоритм обратного распространения, тестовое изображение должно быть классифицировано как действительное, если оно соответствует характеристикам обучающего набора, в противном случае оно недопустимо.
Как классифицировать тестовое изображение с помощью PyBrain?