Kamere so danes nepogrešljiv del v veliko različnih sistemih. Aplikacije, ki obdelujejo slike zajete s kamerami, se uporabljajo tako v avtomobilski industriji, kot na primer pri avtonomni vožnji, za namene množičnega nadzora, za medicinske namene ali za zagotavljanje kakovosti izdelkov v proizvodnih procesih. Kamere so pomembne tudi pri opazovanju vesolja in zemlje.
Iz slik, ki jih zajamejo kamere, se lahko z uporabo ustreznih algoritmov za obdelavo slik samodejno izluščijo ključne informacije. Pri večini aplikacij se lahko zagotovi relevantnost in koristnost informacij le z obdelavo v realnem času.
Procesiranje slik v realnem času pa postaja čedalje bolj zahtevno, saj želimo zajeti vedno večje slike in vedno več slik na sekundo. S tem naraščajo hitrosti podatkovnega toka slik. Tradicionalni sistemi za obdelavo slik, kot so računalniki, tako velikih podatkovnih hitrosti v realnem času ne zmorejo obdelati. Zato je potrebno uporabiti aplikacijam prilagojene sisteme.
V kolikor obstoječi sistem ni sposoben obdelave v realnem času, lahko med kamero in ciljni sprejemnik slik dodamo sistem, ki omogoča obdelavo zajetih slik v realnem času. Ti sistemi so pogosto zasnovani kot namenska vezja (ang. ASIC) ali pa so zasnovani na podlagi vezij FPGA. Slednji so običajno primernejši, saj omogočajo enostavno prilagoditev sistema novim zahtevam, ki se pojavijo. Prav tako je pri majhnih proizvodnih serijah uporaba vezij FPGA cenejša kot pa izdelava namenskih vezij.
Namen magistrske naloge je bil raziskati zmogljivosti sistemov za obdelavo podatkovnega toka slik v realnem času z uporabo vezij FPGA in razviti sistem, ki bi se lahko uporabil za namene projekta MICADO. MICADO je inštrument za zajem slik, ki bo del teleskopa ELT, katerega razvija agencija ESO. Inštrument bo uporabljen za opazovanje zvezd, odkrivanje novih zunajosončnih planetov in za raziskovanje območij, kjer so gravitacijska polja izjemno močna, kot so recimo področja okoli supermasivne črne luknje v središču naše galaksije. Astronomske slike so izredno velike, kar se odraža v veliki hitrosti podatkovnega toka slik. V okviru magistrske naloge so bile zato opredeljene tudi omejitve realno časne obdelave podatkovnega toka slik z vezji FPGA.
Razvit sistem je bil implementiran na razvojni plošči Smartfusion2 Advanced Development Kit proizvajalca Microsemi. Razvojna plošča vsebuje SmartFusion2 M2S150 SoC FPGA. Za zajem slik je bila namesto teleskopa uporabljena industrijska kamera GO-2400M PMCL proizvajalca Jai. Kamera pošilja zajete slike preko vmesnika Camera Link.
Izdelan sistem se vstavi med kamero in ciljni sprejemnik slik, zato mora biti sposoben zajema in oddaje slik preko vmesnika, ki ga uporablja kamera. Tako sta bili v okviru magistrskega dela razviti logični vezji sprejemnika in oddajnika za vmesnik Camera Link. Vezji sta bili implementirani v FPGA. Razviti logični vezji podpirata delovanje vmesnika Camera Link v osnovni, srednji ali polni konfiguraciji pri frekvencah do 38,2 MHz.
Poleg sprejemnika in oddajnika za vmesnik Camera Link je bilo za sistem razvitih tudi nekaj implementacij pogosto uporabljenih algoritmov za obdelavo slik, in sicer:
• filtriranje slik,
• detekcija robov,
• odstranjevanje ozadja,
• povprečenje slik in
• korekcija ravnega polja (ang. flat-field correction).
Od aplikacije je odvisno, kateri našteti algoritmi so dejansko implementirani v vezju FPGA.
Največja velikost slike, ki jo lahko zajame uporabljena kamera, je 1216 x 1936 slikovnih točk. Kamera sočasno pošilja preko vmesnika po 8 slikovnih točk. Hitrost zajema slik pogojuje uporabljeno frekvenco vmesnika. Kamera podpira frekvence vmesnika 37,125, 74,25 in 84,85 MHz. Razvit sistem lahko zaradi frekvenčnih omejitev vhodno/izhodnih enot uporabljenega vezja FPGA sprejema podatke preko vmesnika pri frekvencah do 38,2 MHz. Zato je bila hitrost zajema slik omejena na 118,23 slik na sekundo. Pri 8 bitni globini zajetih slik je tako hitrost podatkovnega toka slik enaka 2,2 Gbps.
Podatkovni tok slik je lahko obdelan v realnem času le, če je hitrost obdelave podatkov najmanj enaka hitrosti podatkovnega toka. Zato zasnovan sistem prav tako obdeluje podatke s hitrostjo 2,2 Gbps. Takšna hitrost je bila dosežena s sočasno obdelavo 8 slikovnih točk pri enaki frekvenci, kot jo uporablja vmesnik.
Pri nekaterih implementiranih algoritmih je bilo potrebno za njihovo delovanje v pomnilniku shraniti eno ali več slik. Notranji pomnilnik v FPGA v obliki SRAM je premajhen, da bi lahko hranil tako veliko količino podatkov. Zato potrebujejo ti algoritmi dostop do večjega, zunanjega pomnilnika DDR. Dostop do pomnilnika DDR je počasnejši kot pa do pomnilnika SRAM; še posebej pri posamičnem dostopanju do podatkov v pomnilniku DDR. Hitrost dostopa do pomnilnika neposredno omejuje hitrost obdelave slik. Zato je bilo razvito vezje, ki omogoča največjo možno hitrost dostopa do pomnilnika DDR, in sicer z uporabo več zaporednih prekrivajočih skupnih dostopov (ang. overlapping burst accesses). Za uporabljen razvojni sistem je hitrost dostopa do pomnilnika DDR omejena na 5.3 Gbps. Pri hitrosti podatkovnega toka slik 2.2. Gbps so zato lahko v sistemu implementirani le algoritmi, ki potrebujejo največ dva dostopa do pomnilnika DDR.
Algoritmi so bili razviti v okolju Simulink. Nato so bili generirani opisi vezij HDL, kateri so bili kasneje implementirani v FPGA. Delovanje generiranih vezij smo simulirali. Izhodne obdelane slike, ki smo jih pridobili s simulacijo, smo nato primerjali s slikami obdelanimi z istimi algoritmi implementiranimi s knjižnico Image Processing Toolbox orodja MATLAB. Na podlagi ujemanja obeh načinov obdelave slik smo verificirali pravilnost generiranih vezij.
Orodje MATLAB z njihovo knjižnico Vision HDL Toolbox že ponuja rešitev za implementacijo algoritmov za filtriranje slik in detekcijo robov v vezjih FPGA. Vendar knjižnica v času izdelave naloge ni podpirala sočasne obdelave več slikovnih točk in ni omogočala zadostnih podatkovnih hitrosti. Zato ta rešitev ni bila uporabljena pri razvoju sistema. Kasneje sta bili sicer ti dve omejitvi odpravljeni z najnovejšo verzijo knjižnice. Orodje MATLAB pa ne ponuja rešitev za ostale tri algoritme, ki smo jih želeli implementirati.
V okviru magistrske naloge je bilo tako poleg vezja za zajem in oddajo podatkovnega toka slik preko vmesnika Camera Link, uspešno implementiranih pet algoritmov za realno časno obdelavo slik. Delovanje sistema je bilo demonstrirano na primeru realno časne detekcije robov.
V prihodnje bi razvit sistem lahko nadgradili tako, da bi omogočal še večje hitrosti obdelave podatkovnega toka slik in uporabo kompleksnejših algoritmov. Vendar bi bilo v tem primeru potrebno za osnovo sistema uporabiti zmogljivejše vezje FPGA.
|