Abstract | Za čovjeka važnu ulogu u životu ima ono što vidi, kao i činjenica da to što vidi može zabilježiti slikom. Tehnologija je dovela do toga da digitalne slike postaju sve bolje i bolje, čime je došlo i do potrebe za različitim mogućnostima uređivanja koja se nad slikama mogu izvršavati. To je računalne stručnjake potaknulo da omoguće izvedbu svih traženih zahtjeva, od kojih su danas najpoznatije svakojake detekcije objekata, popravci slika i slično. Upravo se takvim problemom bavi ovaj rad. Da bi se lakše detektirao objekt na slici ili samo odvojila dobra slika od onih lošijih po pitanju kvalitete i čistoće, kroz rad se istražuje koja bi metoda bila najučinkovitija za takvo izdvajanje te za klasifikaciju je li slika zamućena ili nije. Ako se sliku reprezentira kao funkciju koja prezentira intenzitet svjetla na danom mjestu, onda se računanjem diskretnog Laplasijana takve funkcije mogu detektirati ona mjesta na slici gdje dolazi do naglih promjena intenziteta svjetla i na tim se mjestima detektira rub nekog objekta na slici. Ukoliko je takvih rubova puno, moglo bi se zaključiti da je slika čista s jasno definiranim prijelazima intenziteta koji predsatvljaju ”granice“ izmedu objekata. U suprotnom, ukoliko je rubova malo, slika se smatra zamućenom. Konačno, kao mjera klasifikacije je li slika zamućena ili nije koristi se varijanca Laplasijana kojom se dobiva srednje odstupanje intenziteta sive boje. Ukoliko je varijanca mala, odstupanja u intenzitetima sive boje su mala, dakle, rubova je takoder malo i slika je mutna. U slučaju visoke varijance, slika je čista. Problem kod ove metode predstavlja prag kojeg treba postaviti i koji će prevagnuti je li slika mutna ili nije. Maksimiziranjem točnosti, za slike dimenzija 224x224 točnost na skupu za treniranje iznosi 81:78% uz graničnu vrijednost varijance 1100. Na skupu za testiranje, uz tu graničinu vrijednost varijance, dobivena točnost iznosi 74:59%. Ukoliko se ista metoda testira na istim slikama, ali dimenzija 96x96, točnost koja se dobije na skupu za treniranje je 76:20%, uz graničnu varijancu 2900. Na skupu za testiranje, točnost iznosi 76:28% Na temelju točnosti na skupu za treniranje zaključuje se da, što je slika većih dimenzija, tj. što je bliža izvornoj veličini, to će točnost biti veća, a granična vrijednost za varijancu bit će manja. Najbolje bi zato bilo da se metoda primijeni na slike izvorne veličine. Bez obzira na veličine slika na koje je metoda primijenjena, ona se pokazuje dobrom, tj. uspješnom, a služi i kao usporedba za ostale metode. Sljedeća metoda jesu obične neuronske mreže koje su u posljednje vrijeme postigle popularnost dajući odlične rezultate za razne probleme. Kako je slika dvodimenzionalna, a neuronska mreža kao ulaz prima vektore, matricu svake slike bilo je potrebno rastegnuti u vektor pa je na takvom skupu podataka učena neuronska mreža s jednim skrivenim slojem. Pokazalo se da se svaka funkcija može dovoljno dobro aproksimirati neuronskom mrežom sa samo jednim skrivenim slojem pa se koristi takva arhitektura mreže. Pretpostavka je bila da rezultati ove metode neće biti dobri, jer se sliku mora rastegnuti čime se gube značajne veze izmedu susjednih piksela koji u vektoru više nisu susjedni. Provedena testiranja potvrduju pretpostavku. Na skupu za testiranje ne dobiva se dobar rezultat. Točnost od približno 67% se smatra niskom, a puno je niža i od one koja se dobiva primjenom varijance Laplasijana. Zbog takvih rezultata razvijen je poseban oblik neuronskih mreža, a to su konvolucijske neuronske mreže. Ove mreže kao ulaz primaju višedimenzionalne ulaze, pa tako primaju i cijelu sliku. Kao što im i ime govori, glavna je operacija konvolucija kojom se izdvajaju i detektiraju bitne značajke za rješavanje problema. Da daju bolje rezultate pokazalo je testiranje na istom skupu podataka s konačnom točnošću na skupu za testiranje od otprilike 82%. Kako su slike dimenzija 96x96, ovo se može smatrati visokom točnošću, jer se smanjivanjem dimenzija slike algoritam zakida za neke bitne prostorne značajke, kao i kada se u prethodnom modelu slika rastezala. Postignuta točnost je visoka, ali je li i maksimalna? Zadnja obradena metoda pokazala je moguće dobiti bolje rezultate. Prijenosnim se učenjem postiže više poboljšanja i pojednostavljenja poput smanjenja količine podataka potrebne za treniranje, ubrzanje treniranja i postizanje boljih konačnih rezultata. Razvili su se mnogi oblici konvolucijskih neuronskih mreža koje se koriste i čije se težine unaprijed postave na vrijednosti dobivene treniranjem na puno većem skupu podataka. Stoga se očekuje da je tako postavljenim težinama algoritam već nešto naučio pa će učenje biti brže i uspješnije. Treniranjem i testiranjem na manjem skupu podataka dobiju se dosta dobri rezultati. Pokazalo se da je moguće dobiti točnost i iznad 90% što nadmašuje sve prijašnje rezultate. Modeli ovdje ipak nisu testirani na istom skupu kao i prijašnji, ali oni svejedno pokazuju da je poboljšanje moguće. Konačno, uspjelo se pokazati da postoje metode strojnog učenja koje uspješno rješavaju problem klasifikacije, ali ako se želi primijeniti najlakša, a dobra metoda, dovoljno je primijeniti Laplaceov pristup na sliku u sivim tonovima, dobro postaviti graničnu vrijednost i brzo klasificirati zamućenu sliku. Ukoliko se želi iskoristiti neka moderinija strojna metoda, dovoljno je naučiti običnu konvolucijsku neuronsku mrežu s nekoliko skrivenih slojeva za postizanje dobrih rezultata. Dodatno, želi li se koristiti napredna arhitektura, mogu se koristiti aktualno uspješne konvolucijske mreže, poput AlexNeta, ResNeta i slično, ali uz korištenje unaprijed treniranih težina koje su uvijek javno dostupne. |
Abstract (english) | For a person, what he sees plays an important role in life, as well as the fact that what he sees can be recorded in an image. Technology has led to digital images getting better and better, leading to the need for different editing options that can be executed on images. This prompted computer experts to enable the performance of all the requirements, of which the most well-known today are all kinds of object detections, image corrections and the like. This is exactly the problem that this paper deals with. In order to more easily detect an object in an image or just separate a good image from those that are worse in terms of quality and purity, the paper investigates which method would be most effective for such separation and to classify whether the image is blurred or not. If the image is represented as a function that presents the intensity of light in a given place, then by calculating the discrete Laplacian of such functions, there can be detected the places in the image where there are sudden changes in light intensity. Those places are detected and the edges of an object in the image. If there are many such edges, it could be concluded that the image is clear with clearly defined intensity transitions that represent ”boundaries” between objects. Otherwise, if the edges are small, the image is considered blurred. Finally, as a measure of classification whether the image is blurred or not, the variance of Laplacian is used to obtain the mean deviation of the gray color intensity. If the variance is small, the deviations in gray intensities are small, therefore, the number of edges is also small and the image is blurred. In the case of high variance, the image is clear. he challenge in utilizing this method is to set the classification threshold to classify which images are blurry and which are not. By maximizing accuracy, for 224x224 images, the accuracy on the training set is 81:78% with a variance threshold of 1100. On the test set, with this variance threshold, the accuracy obtained is 74:59%. If the same method is tested on the same images, but with dimensions 96x96, the accuracy obtained on the training set is 76:20%, with variance value of 2900. At the test set, the accuracy is 76:28%. Based on the accuracy at the training set, it can be concluded that the larger the image, ie. the closer to the original size, the higher the accuracy, and the lower the limit value for variance. It would therefore be best to apply the method to the original sizes of images. Regardless of the image sizes to which the method is applied, it proves to be good and successful, and also serves as a comparison for other methods. The next method are neural networks which have recently gained popularity by giving excellent results for various problems. As the image is two-dimensional, and the neural network receives vectors as input, the matrix of each image had to be stretched into a vector, so a neural network with one hidden layer was learned on such a data set. It has been shown that any function can be approximated well enough by a neural network with only one hidden layer, so such a network architecture is used. The assumption was that the results of this method would not be good because the image had to be stretched thus losing significant links between adjacent pixels that are no longer adjacent in the vector. The tests performed confirm the assumption. A good result is not obtained at the test set. The accuracy of approximately 67% is considered low, and is much lower than that obtained by tresholding the variance of the Laplacian of an image. Due to such results, a special form of neural networks has been developed, and these are convolutional neural networks. These networks receive multidimensional inputs as input, and thus receive the whole picture. As their name suggests, the main operation is convolution, which highlights and detects essential troubleshooting features. To give better results, testing on the same data set showed a final accuracy on the test set of approximately 82%. As the images are 96 96, this can be considered high accuracy, because by reducing the image dimensions, the algorithm is deprived of some important spatial features, as when the image was stretched in the previous model. The achieved accuracy is high, could it be improved? The last processed method showed it is possible to get better results. Transfer learning achieves more improvements and simplifications such as reducing the amount of data needed to train, speeding up training, and achieving better end results. Many forms of convolutional neural networks have been developed that are used and whose weights are previously trained on a much larger data set. Therefore, it is expected that with the weights set in this way, the algorithm has already learned something, so learning will be faster and more successful. By training and testing on a smaller data set, quite good results are obtained. It turned out that it is possible to get accuracy above 90%, which surpasses all previous results. The models here have not been tested on the same set as the previous ones, but they still show that improvement is possible. Finally, it has been shown that there are machine learning methods that successfully solve the classification problem. If the easiest, but rather good, method is to be applied, it is enough to apply Laplace method on images in gray scale, set the limit value well and quickly classify the blurred images. If one wants to use some modern machine method, it is enough to learn a simple convolutional neural network with several hidden layers to achieve good results. Additionally, if one wants to use an advanced architecture, it can use currently successful convolutional networks, such as AlexNet, ResNet and the like, but with the use of pre-trained weights that are always publicly available. |