YOLOv3
YOLO (You only look once) je najsavremeniji sistem detekcije objekata za scenario u realnom vremenu, nevjerovatno je brz i precizan. YOLOv3 je jedna od široko korištenih verzija YOLO-a.
YOLO arhitektura je došla 2015. godine, gdje je predstavljena kao sistem za detekciju objekata u realnom vremenu. Ranija verzija nije bila dobra u smislu tačnosti u poređenju sa postojećim metodama kao što su Faster RCNN, SSD. Najnovije verzije YOLO-a su dosta poboljšane u pogledu tačnosti i brzine (brzine zaključivanja).
Kako YOLOv3 radi
YOLO je jednostepeni detektor pa objedinjuje sve komponente detekcije objekata u jednu neuronsku mrežu. YOLO dijeli cijelu sliku na S x S mreže i svaka mreža će predviđati B granične okvire. Ako centar objekta padne u ćeliju mreže, tada će ta ćelija biti odgovorna za detekciju tog određenog objekta.
Prikupljanje i priprema podataka
Svaki sistem za detekciju objekata zahtijeva podatke o oznakama za obuku, ovi podaci se sastoje od informacija o koordinatama graničnog okvira, visini, širini i klasi objekta. YOLOv3 zahtjeva podatke o napomenama u obliku tekstualnog fajla.
Jedan od najpopularnijih alata za kreiranje oznaka je LabelImg. LabelImg je grafički alat za označavanje slika, koji je baziran na QT-u i Python-u. Pruža opciju za spremanje oznaka u PASCAL VOC formatu (koristi se u ImageNet) i YOLO formatu.
Priprema slika za detekciju objekata uključuje, ali nije ograničena na:
- Provjera da li su vaše oznake tačne (npr. nijedna oznaka nije izvan okvira na slikama)
- Promjena veličine slika i ažuriranje oznaka slika kako bi odgovarale slikama nove veličine
- Različite korekcije boja koje mogu poboljšati performanse modela poput podešavanja sivih tonova i kontrasta
- Formatiranje napomena kako bi odgovarale zahtjevima unosa vašeg modela
Ako tražite već označene slike, razmislite o skupovima podataka za otkrivanje objekata na stranicama kao što su Roboflow ili Kaggle.
Darknet model
Darknet je okvir neuronske mreže otvorenog koda napisan u C i CUDA. Brz je, jednostavan za instalaciju i podržava CPU i GPU računanje.
Za treniranje koristimo unaprijed obučeni model darknet53.conv.74
YOLOv3 treniranje
Kod za instalaciju, pripremu i konfiguraciju za treniranje detekcije polja sa lične karte BiH mozete pogledati dolje.
Prilikom treniranja koristio sam 10 slika i 5 klasa. Treniranje je trajalo oko 25 sati.
Rezultat
Nakon 10000 iteracija u folderu data/backup mozemo pronaci fajl yolov3_training_final.weights, tj. istrenirani model.
Da bi stvari bile malo zanimljivije napravio sam python skriptu za preprocessing slike i ROI, a nakon toga uz pomoć Google tesseract ocr-a pročitao polja.