[BLOG] Uporaba FPGA programabilnega logičnega vezja v industrijskih aplikacijah strojnega vida | Plastika Skaza d.o.o.
0
SI
Novice

[BLOG] Uporaba FPGA programabilnega logičnega vezja v industrijskih aplikacijah strojnega vida

10.07.2018

Globalna konkurenca postaja vse ostrejša, kar predstavlja dodaten izziv ne le ponudnikom storitev, temveč še posebej vsem proizvajalcem različnih produktov in proizvodnih znamk,  tudi v podjetju Skaza. Na trgu so uspešni le tisti, ki so med vodilnimi v produktivnosti in obvladovanja stroškov. Strojni vid ima pri tem ključno vlogo, saj gre za tehnologijo, ki ponuja rešitve za številne izzive v prihodnosti. Tehnologija strojnega vida prinaša vrsto pozitivnih učinkov  v industrijsko proizvodnjo. Izboljšana kakovost, večja zanesljivost, večja varnost in stroškovna učinkovitost so dodane vrednosti, ki so ključnega pomena.
 
FPGA in njihova uporaba v sistemih strojnega vida
 
Uporaba *FPGA je smiselna pri razvoju rešitev, kjer so potrebne zelo visoke hitrosti obdelave podatkov. Namen raziskave, ki smo jo opravili v Skazi, je prikazati časovno učinkovitost uporabe programabilnih logičnih vrat v sistemih strojnega vida. Na koncu bo predstavljena primerjava časovne učinkovitosti izvajanja razvitega algoritma na klasičnem procesorju (angl. Central Processing Unit – CPU) in FPGA-ju.
Kaj so FPGA logična vrata? Gre za polje programirljivih logičnih vrat, ki jih je mogoče reprogramirati. Njihova posebnost je, da program oz. logika ne teče na operacijskem sistemu, kot je to na osebnih računalnikih, ampak je logika realizirana na vezju. Glavna prednost programirljivih logičnih vezij v primerjavi s klasičnimi procesorji (angl. Central Processing Unit – CPU), je zmožnost paralelnega izvajanja programa, kar je tudi njegova poglavitna prednost pred ostalimi procesorji.
Veliko algoritmov strojnega vida je po naravi paralelnih, zato so zelo primerni za implementacijo na FPGA logičnih vezjih. To so algoritmi, ki vključujejo operacije na slikovnih točkah (pikslih), linijah in regijah. Tako rekoč edina slabost, ki jo ima FPGA je zmožnost implementiranja samo nizkonivojskih algoritmov strojnega vida. Za višje nivojske algoritme moramo uporabiti procesor, kot ga imamo v osebnih računalnikih. Tukaj spoznamo, da je FPGA zelo hiter, vendar lahko uporabimo samo algoritme nižjih nivojev. Zato je povezovanje FPGA in navadnega procesorja skoraj nujna.
 
Trije načini vključitve FPGA v sisteme strojnega vida
 
FPGA lahko v sisteme strojnega vida vključimo na tri načine, in sicer:
- da celotna obdelava poteka na FPGA-ju,
- da se FPGA  uporabi za pred-procesiranje in
- FPGA se uporabi za ko-procesiranje.
V sistemih strojnega vida, kjer uporabljamo samo FPGA in CPU ne potrebujemo, se čas obdelave slik precej zmanjša. Tako je čas med zajemom slike in rezultati analize precej krajši. V tem primeru FPGA prevzame vso obdelavo slike in hkrati generira izhodni signal ter zajema vhodne signale. Takšen način uporabe je primeren za zelo hitre aplikacije, kot so sortiranje, hitre regulacije ipd. Slabost takšnega pristopa je omejenost z implementacijo algoritmov, saj se na FPGA lahko izvajajo samo algoritmi na nizkem nivoju.
V drugem primeru FPGA izvaja pred-obdelavo, medtem ko se na CPU izvajajo naprednejši algoritmi. V takšnem sistemu se na FPGA izvaja nizko nivojska obdelava zajetih slik. Pred procesirana slika se nato pošlje na CPU, kjer se izvedejo višje nivojski algoritmi. Delovanje takšnega sistema je še vedno zelo hitro, ker se večina obdelave izvede na FGPA, CPU pa prevzame le izvajanje višje nivojskih algoritmov.
Pri razvoju nekaterih rešitev imamo obdelavo slike sestavljeno iz več korakov. Nekateri koraki so lahko implementirani na FPGA, drugi koraki pa so bolj primerni za CPU. V takšnih primerih zajamemo sliko s CPU-jem in jo pošljemo na FPGA, kjer jo obdelamo. Nato jo pošljemo nazaj na CPU na še dodatno obdelavo. Ko-procesiranje z uporabo FPGA zmanjšuje čas obdelave tako, da zmanjšuje število funkcij, ki se izvajajo na CPU.
 
Testiranje
 
Za testiranje smo uporabili primer detekcije posamezne transparentne polimerne granule na zajeti sliki in določiti njen položaj. Obdelava slike je sestavljena iz štirih korakov obdelave slike, in sicer:
  • z uporabo maske določimo polje, na katerem bomo iskali delčke,
  • uporabimo pragovno metodo, da dobimo binarno sliko,
  • sledita dva morfološka operatorja za izboljšanje slike,
  • v zadnjem koraku naredimo analizo delčkov pri kateri dobimo polje podatkov o posameznem delčku na sliki.
 
Šestkrat višja hitrost algoritmov strojnega vida na FPGA
 
V sistemih strojnega vida je potrebno procesirati velike količine podatkov, ki predstavljajo s kamero zajete slike, hkrati pa je v industrijskem okolju skoraj vedno prisotna potreba po čim hitrejšem delovanju takšnih sistemov. Implementacija razvitega sistema strojnega vida na klasični procesor in na programabilna logična vrata ter testiranje delovanja sistema je pokazalo, da je hitrost procesiranja algoritmov strojnega vida na FPGA šestkrat višja kot na zmogljivem klasičnem procesorju. Torej je uporaba FPGA programabilnih logičnih vrat učinkovita rešitev v industrijskih aplikacijah strojnega vida, kjer so potrebne zelo visoke hitrosti procesiranja, ki jih s klasičnimi procesorji ne dosegamo.
 

Tadej Peršak, raziskovalec v podjetju Skaza
 
 
-----------------------------------------------
*angl. Field Programmable Gate Array (FPGA) – programabilna logična vrata

Arhiv novic

Favourites