škrbina Raspakiranje Yolov8: Ultralyticsovo virusno remek-djelo računalnog vida - Unite.AI
Povežite se s nama

Umjetna inteligencija

Raspakiranje Yolov8: Ultralyticsovo remek-djelo virusnog računalnog vida

mm
Ažurirano on
Blog istaknuta slika za YOLOv8

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

YOLOv8-Ultralytics

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?

Slika koja prikazuje otkrivanje vozila

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:

  1. Prilagodljiva arhitektura: YOLOv8 nudi fleksibilnu arhitekturu koju programeri mogu prilagoditi kako bi odgovarala njihovim specifičnim zahtjevima.
  2. 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.
  3. 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.
  4. 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.
  5. 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
model = YOLO(‘yolov8n.pt')  # učitavanje prethodno obučenog modela (preporučeno za obuku)

# Obučite model na skupu podataka MS COCO
rezultati = model.train(data='coco128.yaml', epohe=100, imgsz=640)

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
model = YOLO(‘yolov8n.yaml')  # izgraditi novi model iz YAML-a

# Obučite model
rezultati = model.train(data='coco128.yaml', epohe=100, imgsz=640)

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.