Back to site
Since 2004, our University project has become the Internet's most widespread web hosting directory. Here we like to talk a lot about web servers, web development, networking and security services. It is, after all, our expertise. To make things better we've launched this science section with the free access to educational resources and important scientific material translated to different languages.

Recunoastere a imaginilor CU ghid NEURONALE RETELE

Retele neuronale sunt o tehnica care pot fi utilizate pentru recunoasterea imaginilor. Acest tutorial va va arata cum sa utilizati mai multe retele neuronale perceptron strat de recunoastere a imaginilor. Neuroph a construit in suportul pentru recunoastere a imaginilor, si GUI instrument specializat pentru retelele de recunoastere de formare imagine neuronale. Recunoasterea simpla biblioteca de imagini pot fi gasite in pachetul org.neuroph.contrib.imgrec, in timp ce imaginea instrument de recunoastere GUI este, in aplicarea easyNeurons [Meniu principal> Instrumente> recunoastere a imaginilor]

Acest ghid va explica cu urmatorul text:

1. Principiu de baza al modului perceptroni multistrat sunt folosite pentru recunoastere a imaginilor (o posibila abordare folosit aici)
2. Cum de a instrui retelele neuronale pentru recunoastere a imaginilor cu easyNeurons
3. Cum sa utilizati retelele neuronale pregatit pentru recunoastere a imaginilor in aplicatiile dumneavoastra

1. Recunoastere a imaginilor si Perceptron Multi Layer

Fiecare imagine poate fi reprezentat sub forma a doua-dimensionale matrice, in cazul in care fiecare element din matrice care contine informatii de culoare pentru un pixel. (Figura 1)

1. Imagine Imagine culori

Fiecare culoare poate fi reprezentat ca o combinatie de trei componente de culoare de baza: rosu, verde si albastru.

Imagine 2. RGB sistem

Deci, pentru a reprezenta unele imagini intr-un sistem RGB, putem folosi trei bidimensional matrice, una pentru fiecare componenta de culoare, in cazul in care fiecare element corespunde pixel imagine.

int [] [] redValues
int [] [] greenValues
int [] [] blueValues

De exemplu, daca pixel la Locul de amplasare [20, 10] are o culoare RGB [33, 66, 181] ne-am

redValues[10] [20] = 33;
greenValues[10] [20] = 66;
blueValues[10] [20] = 181;

Dimensiunile de fiecare din aceste matrice sunt [imageHeight] [imagewidth]

Am posibilitatea sa imbinati aceste trei matrice intr-una singura-dimensional matrice astfel incat acesta contine toate valorile de rosu, verde si apoi toate la sfarsitul anului toate valorile albastru. Asta cum putem crea flattenedRgbValues[]
Dimensiunea acestei matrice este [imageHeight * imagewidth * 3]
Acum, putem folosi aceasta matrice unidimensionale ca date de intrare pentru retele neuronale, si de a forma retele neuronale de a recunoaste sau le clasifica. Multi sunt perceptroni strat tip de retele neuronale potrivite pentru aceasta sarcini (figura 3).

Poza 3. Hranirea perceptron multistrat cu informatii de culoare din imagine. Fiecare neuron de intrare corespunde o componenta de culoare (RGB) de pixeli, a imaginii unul la o anumita locatie.

Fiecare neuron de iesire corespunde la o imagine sau clasa imagine. Deci, daca reteaua este de iesire [1, 0, 0], care inseamna ca de intrare este recunoscut ca "imagine A '.
Putem crea de formare fixate pentru retea de formare neuronale ca set de perechi de intrare (aplatiza tablouri RGB), si a vectorilor de iesire (in cazul in care neuron imagine corespunzator este 1).
De retea poate fi instruiti de catre folosind algoritmul Backpropagation de invatare. In sectiunea urmatoare va vom oferi cateva detalii despre netwok neuronale si algoritm learnig.

2. Retelei neuronale pentru formare de recunoastere a imaginilor cu easyNeurons

easyNeurons prevede mediu pentru crearea si formarea de retele neuronale, care pot fi salvate ca gata-de-utilizare componentele java. De asemenea, acesta prevede de specialitate instrument de recunoastere a imaginilor a trenului de retele neuronale pentru recunoastere a imaginilor. Crearea si formarea retelei neuronale pentru recunoasterea imaginii consta in urmatoarele etape:

1. Alegeti imagini pentru a le recunoaste si de a crea setul de antrenare
2. Creati retele neuronale
3. Trenului de retele neuronale
4. Incercare de retele neuronale
5. Salvare si implementa retele neuronale

Aveti posibilitatea sa utilizati demo on-line si a imaginilor furnizate de testare aici pentru a incerca acest instrument.

Pentru a porni instrumentul de recunoastere a imaginilor alegeti [principal de fabricant> Instrumente> Recunoasterea Imagine]

Pasul 1. Alegeti imagini si de a crea setul de antrenare
In acest pas, avem nevoie sa se precizeze ca imaginile ar trebui sa fie recunoscute, dimensiunea imaginii / rezolutie si modul de culoare. Noi facem "Imagini si formare", aceasta fila in set.

Image dir - director care contine imaginile pe care ar trebui sa fie recunoscute. Nume de fisiere imagine vor fi utilizate ca etichete pentru neuroni de iesire. Daca avem nevoie de mai mult de o imagine care urmeaza sa fie asociat cu aceeasi eticheta, atunci vom folosi conventie nameing urmatorul text: someImageName_1.jpg, someImageName_2.jpg, someImageName_3.jpg si toate cele trei imagini vor fi asociate cu "someImageName" eticheta.

Junk dir - Acesta este directorul cu imagini, care va contribui la evitarea (sau cel putin, sa reduca) recunoasterea fals. Aceste imagini nu ar trebui sa fie recunoscute ca fiind unele dintre imagini de la 'Image dir ", si de iesire pentru toate aceste imagini ar trebui sa fie toate zerouri. Typicaly aveti posibilitatea sa utilizati toate rosu, toate verde, albastru toate, toate negru, toate imaginile alb sau similare. De asemenea, puteti adauga imagini la acest director si se repeta de formare dupa ce ati detecta unele recunoastere false sau comportament nedorit al retelei instruiti.

De prelevare a probelor Rezolutia imaginii (latime x inaltime) - Toate imaginile furnizate vor fi scalate la aceasta dimensiune (latime x inaltime). Imagini Scalarea le va face mai mici, iar ei vor fi mai usor si mai rapid de a invata. Dimensiunile imaginii stabili dimensiunea de vectorul de intrare, si numarul de neuroni in stratul de intrare. (Daca aveti java heap exceptii pentru anumite dimensiuni, a incerca sa mariti dimensiunea heap pentru JVM)

Mod de culoare - Aveti posibilitatea sa utilizati in modul de recunoastere a imaginilor color sau in modul binar negru si alb. Modul binar negru si alb reprezinta pixel ca [0, 1], si asa mai foloseste numar mai mic de neuroni de intrare. Pentru unele aplicatii (cum ar fi recunoasterea de caractere, de exemplu) modul binar negru si alb poate fi solutia optima.

Set Label Instruire - Din moment ce aveti posibilitatea sa creati mai multe seturi de formare in cursul experimentarea cu reteaua, este o practica buna de a le eticheta.

Pentru inceput, aveti posibilitatea sa utilizati setarile implicite (8x8 rezolutia si modul de culoare), si ofera doar imagini.
Dupa furnizarea toate aceste date, faceti clic pe "Creati Set Training" pentru a crea setul de antrenare pe baza acestor setari si apoi faceti clic pe butonul 'Next' pentru a trece la pasul urmator.

Pasul 2. Creaza retele neuronale

Urmatorul lucru de facut este de a crea retele neuronale.

Pentru a crea retele neuronale care aveti nevoie sa introduceti urmatoarele:

Eticheta de retea - eticheta pentru retele neuronale, care este util atunci cand creati mai multe retele neuronale pentru aceeasi problema, si tu esti comparandu-le.
Functia de transfer - Aceasta setare determina care indeplinesc functia de transfer vor fi utilizate de catre neuroni. In cele mai multe cazuri, puteti sa lasati setarile implicite "sigmoid", dar, uneori, folosind "th", va poate da rezultate mai bune.
Ascuns Straturi Numara Neuron - Aceasta este setarea cea mai importanta, care determina numarul de straturi ascunse in retea, si numarul de neuroni in fiecare strat ascuns. Straturile ascunse sunt straturi intre intrare si iesire strat. Trucul este de a avea cel mai mic numar posibil de straturi si neuroni care pot afla cu succes setul de antrenare. Numar mai mic de neuroni - mai rapid de invatare, generalizare mai bine. Numar corespunzator de neuroni ascunse, de asemenea, depinde de numarul de intrare si de iesire neuroni, si cea mai buna valoare poate fi dat seama de experimente. Pentru inceput, incercati imagini 8x8 si un strat ascuns cu 12 neuroni, care este setarea implicita. Daca wany a creste numarul de neuroni, doar sa introduceti numarul de neuroni '20 de exemplu ". Daca doriti sa adaugati mai mult de un strat de neuroni introduceti numarul de neuroni in fiecare strat separate cu un spatiu. De exemplu, daca introduceti '12 8 6 "se va crea trei straturi ascunse cu 12, 8 si 6 neuroni.

Faceti clic pe butonul "Creati reteaua neurala" pentru a crea retele neuronale. Dupa ce faceti clic pe butonul fereastra noua cu retele neuronale create se va deschide.

Pasul 3. Retelei de tren

Pentru a trenului de retea selectati setul de antrenare din lista si faceti clic pe "de tren" buton. Aceasta va deschide caseta de dialog pentru setarea parametrilor de invatare. Utilizati setarea implicita de invatare si faceti clic pe "tren" buton.

Acesta va porni de formare si Graficul de retea de invatare deschisa si contra repetare, astfel incat sa puteti obesrve procesul de invatare. In cazul in care invatarea devine blocat (eroare de retea totala sa nu mearga in jos), puteti incerca cu numar diferit de neuroni, straturi sau parametrii de invatare. Pentru rata de invatare si impuls utilizeaza valorile intre [0, 1], si pentru eroarea de mai jos unele mica valoare 0.1 este recomandata.

Pasul 4. Incercare de retea

Dupa ce ati antrenat de retea puteti incerca cum functioneaza in panoul de testare. Faceti clic pe "Selectare imagine de incercare" pentru a seta imaginea de intrare pentru retea, si productia de retea vor fi afisate ca lista de etichete imagini si iesiri corespunzatoare neuron. Imaginea a recunoscut corespunde cu cea mai mare neuron de iesire. Puteti testa intregul set de date facand clic pe butonul "Test Data Set" buton.

Pasul 5. Salvare retele neuronale

Pentru a salva retele neuronale ca faceti clic pe componenta Java [Meniu principal> File> Save] si de a folosi extensia nnet.. Reteaua va fi salvata ca clasa MultiLayerPerceptron seralized.

3. Folosind imagini de recunoastere Neuroph in aplicatiile dumneavoastra

Iata cateva mostre de cod, care arata modul de utilizare a retelei de recunoastere a imaginilor neuronale create si instruite cu easyNeurons. Puteti rula aceasta proba, specifica doar numele de fisiere corect pentru retele neuronale si unele imagini de testare.

org.neuroph.core.NeuralNetwork de import;
org.neuroph.contrib.imgrec.ImageRecognitionPlugin de import;
java.util.HashMap de import;
java.io.File de import;
de import java.io.IOException;

public class ImageRecognitionSample {

public void principale statice (String [] args) {
/ / De incarcare a retelei neuronale instruiti salvate cu easyNeurons (specificati fisierul existent retele neuronale aici)
NeuralNetwork nnet = NeuralNetwork.load ("MyImageRecognition.nnet"); / / de incarcare a retelei neuronale instruiti salvate cu easyNeurons
/ / Obtine plugin-ul de recunoastere a imaginilor de la retele neuronale
ImageRecognition ImageRecognitionPlugin = (ImageRecognitionPlugin) nnet.getPlugin (ImageRecognitionPlugin.IMG_REC_PLUGIN_NAME); / / obtine plugin-ul de recunoastere a imaginilor de la retele neuronale

try {
/ / Imagine de recunoastere se face aici (a se specifica un fisier imagine existent)
HashMap <String, Double> de iesire = imageRecognition.recognizeImage (Fisier nou ("someImage.jpg"));
System.out.println (output.toString ());
} Catch (IOException IOE) {
ioe.printStackTrace ();
}
}
}

Recunoastere a imaginilor reale se face printr-un apel la doar o metoda de la ImageRecognitionPlugin:

imageRecognition.recognizeImage (Fisier nou ("someImage.jpg"));

ImageRecognitionPlugin prevede interfata simpla recunoastere a imaginilor de retele neuronale. Puteti recunoaste imagini din diverse surse cum ar fi fisiere, BufferedImage sau URL. De exemplu:

imageRecognition.recognizeImage (URL-ul nou ("http://www.example.com/someImage.jpg"));

Pentru mai multe detalii verifica clasele in pachetul org.neuroph.contrib.imgrec.
Pentru a utiliza clase de imagine de recunoastere, trebuie sa adaugati o referinta la neuroph.jar in proiect (proiect dati click dreapta> Properties> Biblioteci> Add JAR / Folder> neuroph.jar)
Puteti tren retele neuronale cu demo on-line si Biblioteca sa descarcati Neuroph aici

MULTUMIRI

Recunoasterea sprijin imaginea prezentata aici se bazeaza pe codul din DotA AutoScript dezvoltat de Jon Tait. Cererea sa demonstreaza ca aceasta abordare poate avea succes in unele cazuri, desi aceasta nu este o solutie generala pentru toate problemele de recunoastere a imaginilor. Sunteti bineveniti de a experimenta si sa ne spui rezultatele / experienta.

DOWNLOAD

1. Imagini de testare
2. Neuroph Biblioteca si instrument sa descarcati easyNeurons
3. Neuroph Biblioteca descarca doar

Published (Last edited): 16-09-2011 , source: http://neuroph.sourceforge.net/image_recognition.html