Sažetak | U ovom diplomskom radu opisane su temeljne značajke YOLO algoritma za detekciju jednog ili više objekata na slici. Na početku radu opisane su konvolucijske neuronske mreže i njihova arhitektura jer su upravo konvolucijske neuronske mreže pokazale impresivne rezultate pri detekciji objekata na digitalnoj slici, za razliku od drugih vrsta neuronskih mreža, što je i glavni razlog zašto ih YOLO algoritam koristi. Objašnjen je i princip rada algoritma, te glavne značajke i nedostaci algoritma. Kroz rad je napravljen pregled i ostalih verzija YOLO algoritma, odnosno opisani su: YOLOv2 (YOLO9000), treća verzija nazvana YOLOv3, verzije YOLOv4 i YOLOv5, te PP-YOLO. Naglasak je na verziju YOLOv4 jer je upravo korištenjem te verzije implementiran model za detekciju klase čovjeka na zračnim fotografijama iz baze HERIDAL. Rad je realiziran pomoću Google Colaboratory-a, proizvoda koji omogućava pokretanje Python kôda u Jupiter bilježnici, te omogućava korištenje besplatnih resursa kao što je snaga grafičke kartice. Osim Google Colaboratory-a, korišten je programski okvir otvorenog kôda Darknet koji sadrži YOLO algoritam i koji je napisan pomoću C programskog jezika i CUDA platforme. Realizirani model za detekciju zahtjeva ulaznu sliku korisnika te odgovara slanjem slike koja sadrži granične okvire detektiranog objekta i vrijednost između 0 i 1 koja označava ocjenu pouzdanosti. Algoritam postiže srednju prosječnu preciznost (mAP) od 55,94%, što je poprilično dobar rezultat s obzirom na mali broj fotografija. Algoritam bi se mogao poboljšati u smislu preciznosti na način da se poveća broj slika za treniranje i testiranje, te da se treniranje radi na većoj veličini slike, što bi utjecalo na brzinu algoritma. |
Sažetak (engleski) | This Master's thesis describes the fundamental features of the YOLO algorithm for detecting one or more objects in an image. At the beginning of the paper, convolutional neural networks and their architecture are described, because precisely convolutional neural networks have shown impressive results when detecting objects in a digital image, unlike other types of neural networks, which is the main reason why the YOLO algorithm uses them. The principle of operation of the algorithm, as well as the main features and shortcomings of the algorithm, are also explained. Through the paper, an overview of other versions of the YOLO algorithm was made, that is, they were described: YOLOv2 (YOLO9000), the third version called YOLOv3, versions YOLOv4 and YOLOv5, and PP-YOLO. The emphasis is on the YOLOv4 version because it was using that version that the model for human class detection on aerial photos from the HERIDAL database was implemented. The work was realized with the help of Google Collaboratory, a product that allows running Python code in the Jupiter notebook, and allows the use of free resources such as the power of the graphics card. In addition to Google Collaboratory, the open source Darknet framework containing the YOLO algorithm, written using the C programming language and the CUDA platform, was used. The realized detection model requires an input image from the user and responds by sending an image containing the bounding boxes of the detected object and a value between 0 and 1 indicating the confidence scores. The algorithm achieves a Mean Average Precision (mAP) of 55.94%, which is quite a good result considering the small number of photos. The algorithm could be improved in terms of accuracy by increasing the number of images for training and testing, and training on a larger image size, which would affect the speed of the algorithm. |