redes proyectos prediccion neuronales neuronal libro convolucionales codigo artificiales aplicaciones adaline matlab machine-learning computer-vision neural-network matlab-cvst

proyectos - Bolsa de funciones y redes neuronales en Matlab



redes neuronales matlab codigo (1)

He intentado implementar una red neuronal en Matlab que sea capaz de reconocer imágenes en función de sus características. Estoy intentando utilizar el enfoque Bolsa de características / palabras para obtener un vector discreto de características que luego puedo alimentar en mi red neuronal.

He estado usando este ejemplo como una guía: http://in.mathworks.com/help/vision/examples/image-category-classification-using-bag-of-features.html

Una línea en el código (featureVector = encode (bag, img);) cuenta las ocurrencias de palabras en una imagen. ¿Podría usar esta matriz de "featurevector" para entrenar mi red neuronal? ¿Y tendría que codificar cada imagen en mi conjunto de entrenamiento?


Sí, eso es ciertamente posible. Al observar el ejemplo, el conjunto de datos de capacitación es un conjunto de imágenes y usted está encontrando un vocabulario común de 500 "palabras" / características que describen todas ellas con suficiencia. Utilizando featureVector = encode(bag, img); Lo que estás haciendo es determinar qué fracción de cada palabra existe para describir la imagen de entrada img . Específicamente, si observa el código en esa sección de ejemplo, trazará un gráfico de barras donde el eje horizontal representa el índice de palabras y el eje vertical representa qué fracción utiliza cada palabra / característica en el vocabulario para representar esa imagen.

Específicamente, este es el gráfico de barras que se produce (tomando del enlace):

Por lo tanto, las imágenes similares deben describirse con características / palabras similares y, por lo tanto, podría usar esto como entrada en su red neuronal.

Sin embargo, antes de entrenar su red neuronal, como sospechaba, debe representar cada imagen que desea entrenar con este vector de características. Si tiene la intención de utilizar la caja de herramientas de redes neuronales de MATLAB, debe asegurarse de que cada columna sea ​​una muestra de entrada y cada fila sea ​​una función. featureVector realmente devolvería un vector 1 x N donde N es el número total de características. Sin embargo, si desea hacer esto de manera más inteligente, simplemente cree un imageSet de imageSet de todas las imágenes que desea transformar: http://www.mathworks.com/help/vision/ref/imageset-class.html , luego use una llamada a encode para crear esta matriz de características deseada:

imgFolder = ''...''; %// Specify image folder here imgSet = imageSet(imgFolder); %// Create image set featureMatrix = encode(bag,imgSet).''; %// Encode the images - Make sure you transpose

El resultado será una matriz M x N donde M es el número total de imágenes de entrada que tiene y N es el número total de características. Para respetar la caja de herramientas de redes neuronales, debe transponer esta matriz porque cada columna debe ser una muestra de entrada, no cada fila.