Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Catalog · How the catalog works

Random project

SmartGalleryDelphi

It is an artificial neural network that divides images into 4 categories.

View on GitHub

Anyone may press Interesting, signed in or not. It helps others find this project.

Member rating

No ratings yet.

Sign in to rate this project.

README

Smart Gallery Delphi

An example of implementing NeuralNetworkPasLib

CS:

Inteligentní Galerie je aplikací Umělé neuronové sítě

Je nutné si uvědomit že se jedná o algoritmus AI (Umělé inteligence) a díky tomu je se program schopný "poučit ze svých chyb"

z toho vyplývají tyto nevýhody:

pascal
Pokud 3x provedeme nov?? (u??en?? od 0) u??en?? je mo??n?? ??e bude m??t poka??d?? jin?? vysledky (synaptick?? v??hy jsou na za????tku nastaveny n??hodn?? mezi 0 a 1)
    
Aby byla neuronov?? s??t p??i klasifikaci co nej??sp????n??j???? je nutn?? u??en?? zopakovat mnohokr??t po sob?? (Klidn?? se stejn??my obr??zky)
        
pro ????el ke kter??mu neuronovou s???? pou????v??m by bylo vhodn?? zapokavat u????c?? sadu alespo?? 50 000
        
Bohu??el dephi nen?? p????li?? jazykem rychl??m a tolik opakov??n?? nen?? ??asov?? p????pustn??
        
Z tohoto d??vodu soubor p??ilo??en?? na disku (Uk??zka synaptick??ch vah po u??en?? - pam???? neuronov?? s??t??) m?? za sebou pouze 4 000 opakov??n??
        
toto je d??vod pro?? neuronav?? s???? nejsp????e spoustu nezn??m??ch obr??zk?? (Nebyly v u????c?? sad??) za??ad?? ??patn??

Postup pro spuštění (Klasifikace obrázků)

pascal
Spus??te aplikaci
    
menu>soubor>otev????t soubor pam??ti...
    
vyberte soubor pam??ti
    
menu>mo??nosti>adres???? s obr??zky...
    
vyberte adres???? kter?? chcete klasifikovat
    
Nyn?? se provede klasifikace obr??zk??
    
Klikn??te na kategorii ze kter?? obr??zky chcete zobrazit

Postup pro spuštění (učení)

pascal
Spus??te aplikaci
pascal
menu>soubor>spustit u??en?? ze slo??ky...
pascal
vyberte adres???? kter?? obashuje u????c?? sadu (40 obr??zk??) 0..9 -> interi??r, 10..19 -> scan, 20..29 -> no??n?? krajina, 30..39 -> krajina
pascal
menu>mo??nosti>adres???? s obr??zky...
    Pozn??mka: U??en?? nep??inese p????li?? zlep??en??, proto??e tr??novac?? sadu si spust?? pouze 101 (Lze zm??nit v k??du jedn?? se o konstantu) d??ky tomu v??t??inu obr??zk?? neza??ad?? spr??vn??, nicm??n?? by ji?? m??la b??t schopn?? n??jak?? obr??zek/obr??zky za??adit spr??vn??
pascal
vyberte adres???? kter?? chcete klasifikovat
pascal
Nyn?? se provede klasifikace obr??zk??
pascal
Klikn??te na kategorii ze kter?? obr??zky chcete zobrazit

Konstanty:

pascal
learnLoop ... Po??et opakov??n?? u????c?? sady
pascal
numOfNeuronInHiddenLayer ... po??et neuron?? + 1 v skryt??ch vrstev??ch neuronov?? s??t??. (????m v??t???? t??m v??ce se neuronov?? s??t zam??ruje na detaily)
pascal
learnspeed ... rychlost u??en?? ovliv??uje velikost korekc?? synaptick??ch vah (Zmen??uje/Zv??t??uje) 1 je norm??ln?? rychlost

EN:

The Intelligent Gallery is an Artificial Neural Network application

It is necessary to realize that it is an algorithm of AI (Artificial Intelligence) and that is why the program is able to "learn from its mistakes"

there are the following disadvantages:

pascal
If we do 3 times (learning from 0) learning, it is possible that they will have different results each time (synaptic scales are at random set at random between 0 and 1)

In order for the neural network to be the most successful in classifying, it is necessary to repeat the teachings many times in 

succession (Quietly with the same pictures)
????????????????
for the purpose to which I am using the neuron network, it would be advisable to engage a learning set of at least 50,000
????????????????
Unfortunately, dephi is not a fast language, and so many repetitions are not time-consuming
????????????????
For this reason, the file attached to the disk (Synaptic Weighing Sample - Neural Network Memory) has only 4,000 reps
????????????????
this is why the neural network probably has a lot of unknown images (They were not in the learning set)

Startup procedure (Image Classification)

pascal
Run the app
????????????????
menu> file> open memory file ...
????????????????
select a memory file
????????????????
menu> options> folder with pictures ...
????????????????
select the directory you want to classify

Image classification is now performed
    
Click on the category from which images you want to view

Startup procedure (learning)

pascal
Run the app
    
menu> file> start learning from folder ... (40 pictures) 0..9 -> interior, 10..19 -> scan, 20..29 -> night landscape, 30..39 -> landscape
    
menu> options> folder with pictures ...
    
Note: Learning will not bring any improvement, because the training set will only start 101 (It can be changed in the code is a constant), because most of the pictures do not perform correctly, but some picture should be able