Kao jedna od glavnih aplikacija u računarskom vidu, otkrivanje objekata postaje sve važnije u scenarijima koji zahtijevaju visoku preciznost, ali imaju ograničene računarske resurse, poput robotike i automobila bez vozača. Nažalost, mnogi moderni visoko precizni detektori ne udovoljavaju tim ograničenjima. Što je još važnije, aplikacije za otkrivanje stvarnih objekata rade na različitim platformama, koje često zahtijevaju različite resurse.
Dakle, prirodno je pitanje kako dizajnirati tačne i efikasne detektore objekata koji se takođe mogu prilagoditi širokom spektru ograničenja resursa?
EfficientDet: Skalabilno i efikasno otkrivanje objekata, usvojeno na CVPR 2020, predstavlja novu porodicu skalabilnih i efikasnih detektora objekata. Nadovezujući se na prethodni rad na skaliranju neuronskih mreža (EfficientNet) i ugrađujući novu dvosmjernu funkcionalnu mrežu (BiFPN) i nova pravila skaliranja, EfficientDet postiže modernu preciznost dok je 9 puta manji i koristi znatno manje proračuna od poznatih modernih detektora. Sljedeća slika prikazuje opću mrežnu arhitekturu modela.
Optimizacija arhitekture modela
Ideja koja stoji iza EfficientDet-a proizlazi iz nastojanja da se pronađu rješenja za poboljšanje računske efikasnosti sistematskim ispitivanjem prethodnih najmodernijih modela detekcije. Općenito, detektori predmeta imaju tri glavne komponente: okosnicu koja izvlači obilježja iz date slike; mreža objekata koja uzima više nivoa funkcija sa okosnice kao ulaz i izlaže listu kombiniranih funkcija koje predstavljaju karakteristične karakteristike slike; i konačna mreža klasa / kutija koja koristi kombinirane funkcije za predviđanje klase i lokacije svakog objekta.
Nakon pregleda mogućnosti dizajna za ove komponente, identificirali smo nekoliko ključnih optimizacija za poboljšanje performansi i efikasnosti. Prethodni detektori uglavnom koriste ResNets, ResNeXt ili AmoebaNet kao okosnice, koje su ili manje moćne ili imaju nižu efikasnost od EfficientNets-a. Početnom implementacijom okosnice EfficientNet može se postići mnogo veća efikasnost. Na primjer, počevši od osnovne linije RetinaNet koja koristi okosnicu ResNet-50, naša studija ablacije pokazuje da jednostavna zamjena ResNet-50 EfficientNet-B3 može poboljšati tačnost za 3%, a istovremeno računanje smanjiti za 20%. Druga optimizacija je poboljšanje efikasnosti funkcionalnih mreža. Iako većina prethodnih detektora jednostavno koristi piramidnu mrežu downlink (FPN), otkrivamo da je nizvodni FPN inherentno ograničen na jednosmjerni protok informacija. Alternativni FPN-ovi poput PANet-a dodaju dodatne uzlazne tokove po cijenu dodatnih računanja.
Nedavni pokušaji upotrebe Neural Architecture Search (NAS) otkrili su složeniju NAS-FPN arhitekturu. Međutim, iako je ova mrežna struktura učinkovita, ona je također nepravilna i visoko optimizirana za određeni zadatak, što otežava prilagodbu drugim zadacima. Da bismo riješili ove probleme, predlažemo novu mrežu dvosmjernih funkcija BiFPN, koja provodi ideju kombiniranja višeslojnih funkcija s FPN / PANet / NAS-FPN, što omogućuje prijenos informacija od vrha do dna i odozdo prema gore. koristeći redovne i efikasne veze.
Da bismo dodatno poboljšali efikasnost, predlažemo novu brzo normaliziranu tehniku sinteze. Tradicionalni pristupi obično tretiraju sve ulaze u FPN na isti način, čak i u različitim rezolucijama. Međutim, primjećujemo da ulazne funkcije s različitim rezolucijama često nejednako doprinose izlaznim funkcijama. Stoga dodajemo dodatnu težinu svakoj ulaznoj funkciji i prepuštamo mreži da nauči važnost svake od njih. Također ćemo zamijeniti sve redovne savijanje jeftinijim, duboko odvojivim savojima. Ovom optimizacijom, naš BiFPN dalje poboljšava tačnost za 4%, istovremeno smanjujući računske troškove za 50%.
Treća optimizacija uključuje postizanje najboljeg kompromisa između tačnosti i efikasnosti pod različitim ograničenjima resursa. Naš prethodni rad pokazao je da međusobno skaliranje dubine, širine i rezolucije mreže može značajno poboljšati performanse prepoznavanja slike. Inspirirani ovom idejom, predlažemo novu kompozitnu metodu skaliranja za detektore objekata koja kolektivno povećava rezoluciju / dubinu / širinu. Svaka mrežna komponenta, tj. Okosnica, objekt i blok / klasa predviđanja mreže, imat će jedan složeni faktor skaliranja koji kontrolira sve dimenzije skaliranja koristeći heuristička pravila. Ovaj pristup olakšava određivanje načina skaliranja modela izračunavanjem faktora razmjere za dano ograničenje ciljanih resursa.
Kombinacijom nove okosnice i BiFPN-a, prvo dizajniramo malu osnovnu liniju EfficientDet-D0, a zatim primjenjujemo složeno skaliranje kako bismo dobili EfficientDet-D1 do D7. Svaki serijski model ima veće računske troškove, pokrivajući širok raspon ograničenja resursa od 3 milijarde FLOP-ova do 300 milijardi FLOPS-a, i pruža veću preciznost.
Model performansi
Procjena EfficientDet-a na COCO skupu podataka, široko korištenom referentnom skupu podataka za otkrivanje objekata. EfficientDet-D7 postiže prosječnu prosječnu tačnost (mAP) od 52,2, što je za 1,5 bodova više od prethodnog modernog modela, koristeći 4 puta manje parametara i 9,4 puta manje izračuna
Također smo uspoređivali veličinu parametara i kašnjenje CPU / GPU između EfficientDet i prethodnih modela. Sa sličnim ograničenjima tačnosti, modeli EfficientDet rade 2–4 puta brže na GPU-u i 5–11 puta brže na procesoru od ostalih detektora. Iako su modeli EfficientDet prvenstveno namijenjeni otkrivanju objekata, njihovu učinkovitost testiramo i u drugim zadacima kao što je semantička segmentacija. Da bismo izvršili zadatke segmentacije, malo modificiramo EfficientDet-D4 zamjenom glave za otkrivanje i gubitka i gubitka glave zadržavajući istu skaliranu okosnicu i BiFPN. Upoređujemo ovaj model s prethodnim modernim modelima segmentacije za Pascal VOC 2012, široko korišten skup podataka za testiranje segmentacije.
S obzirom na njihove izuzetne performanse, očekuje se da će EfficientDet poslužiti kao nova osnova za buduća istraživanja detekcije objekata i potencijalno precizne modele detekcije objekata potencijalno učiniti korisnima u mnogim stvarnim aplikacijama. Tako su otvorene sve tačke prekida koda i prethodno obučeni model na Github.com.