Umjetna inteligencija
Raspakiranje Yolov8: Ultralyticsovo remek-djelo virusnog računalnog vida
Do sada je detekcija objekata na slikama pomoću modeli računalnog vida suočio se s velikom preprekom od nekoliko sekundi kašnjenja zbog vremena obrade. Ovo kašnjenje spriječilo je praktično usvajanje u slučajevima upotrebe kao što je autonomna vožnja. Međutim, YOLOv8 model računalnog vida koji je objavio Ultralytics probio je kašnjenje obrade. Novi model može detektirati objekte u stvarnom vremenu s neusporedivom preciznošću i brzinom, što ga čini popularnim u prostoru računalnog vida.
Ovaj članak istražuje YOLOv8, njegove mogućnosti i kako možete fino podesiti i stvoriti vlastite modele putem Github repozitorija otvorenog koda.
Yolov8 Objašnjeno
Yolo (You Only Live Once) popularan je model računalnog vida koji može otkrivanje i segmentiranje objekata na slikama. Model je prošao kroz nekoliko ažuriranja u prošlosti, s YOLOv8 koji označava 8. verziju.
Kako sada stoji, YOLOv8 se nadovezuje na mogućnosti prethodnih verzija uvođenjem snažnih novih značajki i poboljšanja. To omogućuje detekciju objekata u stvarnom vremenu u slikovnim i video podacima s povećanom točnošću i preciznošću.
Od v1 do v8: Kratka povijest
Yolov1: Objavljena 2015., prva verzija YOLO-a predstavljena je kao jednostupanjski model detekcije objekata. Značajke su uključivale model koji čita cijelu sliku kako bi predvidio svaki granični okvir u jednoj procjeni.
Yolov2: Sljedeća verzija, objavljena 2016., pokazala je vrhunske performanse na mjerilima kao što su PASCAL VOC i COCO i radi pri velikim brzinama (67-40 FPS). Također bi mogao precizno detektirati više od 9000 kategorija objekata, čak i s ograničenim specifičnim podacima o detekciji.
Yolov3: Pokrenut 2018., Yolov3 je predstavio nove značajke kao što su učinkovitija okosnica mreže, višestruka sidra i prostorno piramidalno udruživanje za ekstrakciju značajki u više razmjera.
Yolov4: Izlaskom Yolov4 2020. uvedena je nova tehnika povećanja podataka Mosaic, koja je ponudila poboljšane mogućnosti obuke.
Yolov5: Objavljen 2021., Yolov5 je dodao snažne nove značajke, uključujući optimizaciju hiperparametara i integrirano praćenje eksperimenata.
Yolov6: Izlaskom Yolov6 2022. godine, model je otvoren za promicanje razvoja vođenog zajednicom. Uvedene su nove značajke, kao što su nova strategija samodestilacije i strategija Anchor-Aided Training (AAT).
Yolov7: Objavljen iste godine, 2022., Yolov7 poboljšao je postojeći model u brzini i točnosti i bio je najbrži model za otkrivanje objekata u vrijeme izdavanja.
Po čemu se YOLOv8 ističe?
Neusporediva točnost i velika brzina YOLOv8 čine da se model računalnog vida ističe u odnosu na prethodne verzije. To je značajno postignuće jer se objekti sada mogu detektirati u stvarnom vremenu bez kašnjenja, za razliku od prethodnih verzija.
Ali osim toga, YOLOv8 dolazi prepun snažnih mogućnosti, koje uključuju:
- Prilagodljiva arhitektura: YOLOv8 nudi fleksibilnu arhitekturu koju programeri mogu prilagoditi kako bi odgovarala njihovim specifičnim zahtjevima.
- Adaptivni trening: YOLOv8 nove prilagodljive mogućnosti treninga, kao što je balansiranje funkcije gubitka tijekom treninga i tehnika, poboljšavaju stopu učenja. Uzmimo Adama, koji pridonosi boljoj točnosti, bržoj konvergenciji i sveukupno boljoj izvedbi modela.
- Napredna analiza slike: Putem nove semantičke segmentacije i mogućnosti predviđanja klase, model može detektirati aktivnosti, boju, teksturu, pa čak i odnose između objekata osim svoje osnovne funkcije otkrivanja objekata.
- Povećanje podataka: Nove tehnike povećanja podataka pomažu u rješavanju aspekata varijacija slike kao što su niska razlučivost, okluzija itd., u situacijama otkrivanja objekata u stvarnom svijetu gdje uvjeti nisu idealni.
- Podrška okosnice: YOLOv8 nudi podršku za više okosnica, uključujući CSPDarknet (zadana okosnica), EfficientNet (lagana okosnica) i ResNet (klasična okosnica), među kojima korisnici mogu birati.
Korisnici čak mogu prilagoditi okosnicu zamjenom CSPDarknet53 s bilo kojom drugom CNN arhitekturom kompatibilnom s YOLOv8 ulaznim i izlaznim dimenzijama.
Obuka i fino podešavanje YOLOv8
Model YOLOv8 može se ili fino podesiti kako bi odgovarao određenim slučajevima upotrebe ili se u potpunosti obučiti od nule za stvaranje specijaliziranog modela. Više detalja o procedurama obuke možete pronaći u službena dokumentacija.
Istražimo kako možete izvesti obje ove operacije.
Fino podešavanje YOLOV8 s prilagođenim skupom podataka
Operacija finog podešavanja učitava već postojeći model i koristi njegove zadane težine kao početnu točku za obuku. Intuitivno govoreći, model pamti svo svoje prethodno znanje, a operacija finog podešavanja dodaje nove informacije podešavanjem težina.
Model YOLOv8 može se fino podesiti s vašim Python kodom ili putem sučelja naredbenog retka (CLI).
1. Fino podesite YOLOv8 model pomoću Pythona
Započnite uvozom paketa Ultralytics u svoj kod. Zatim učitajte prilagođeni model koji želite trenirati pomoću sljedećeg koda:
Najprije instalirajte biblioteku Ultralytics iz službene distribucije.
# Instalirajte ultralytics paket iz PyPI pip instalirati ultralytics |
Zatim izvršite sljedeći kod unutar Python datoteke:
od ultralitika uvoz YOLO # Učitaj model # Obučite model na skupu podataka MS COCO |
Prema zadanim postavkama, kod će obučavati model pomoću COCO skupa podataka za 100 epoha. Međutim, također možete konfigurirati ove postavke za postavljanje veličine, epohe itd. u YAML datoteci.
Nakon što uvježbate model sa svojim postavkama i putem podataka, pratite napredak, testirajte i ugađajte model te nastavite s ponovnim uvježbavanjem dok ne postignete željene rezultate.
2. Fino podesite YOLOv8 model pomoću CLI-ja
Za treniranje modela pomoću CLI-ja, pokrenite sljedeću skriptu u naredbenom retku:
yolo train model=yolov8n.pt data=coco8.yaml epochs=100 imgsz=640 |
CLI naredba učitava prethodno obučeni model `yolov8n.pt` i dalje ga obučava na skupu podataka definiranom u datoteci `coco8.yaml`.
Stvaranje vlastitog modela s YOLOv8
U suštini postoje 2 načina za stvaranje prilagođenog modela s okvirom YOLO:
- Obuka od nule: Ovaj vam pristup omogućuje korištenje unaprijed definirane YOLOv8 arhitekture, ali NEĆE koristiti nikakve unaprijed obučene težine. Obuka će se odvijati od nule.
- Prilagođena arhitektura: Vi podešavate zadanu YOLO arhitekturu i trenirate novu strukturu od nule.
Implementacija obje ove metode ostaje ista. Za treniranje YOLO modela od nule, pokrenite sljedeći Python kod:
od ultralitika uvoz YOLO # Učitaj model # Obučite model |
Primijetite da smo ovaj put učitali datoteku '.yaml' umjesto datoteke '.pt'. Datoteka YAML sadrži informacije o arhitekturi modela i ne učitavaju se težine. Naredba za obuku počet će obuku ovog modela od nule.
Da biste obučili prilagođenu arhitekturu, morate definirati prilagođenu strukturu u '.yaml' datoteci sličnoj gornjoj 'yolov8n.yaml'. Zatim učitavate ovu datoteku i trenirate model koristeći isti kod kao gore.
Da biste saznali više o otkrivanju objekata pomoću umjetne inteligencije i bili informirani o najnovijim trendovima umjetne inteligencije, posjetite ujediniti.ai.