• Nebyly nalezeny žádné výsledky

Pr´ ace s kamerami SAFETIS

In document Diplomov´ a pr´ ace (Stránka 45-50)

Aplikace je implementov´ana pro pr´aci aˇz se 16 kamerami, respektive kamerov´ymi syst´emy, s PT motorem. Je k tomu pˇrizp˚usobeno grafick´e zpracov´an´ı aplikace i limit poˇctu pˇridan´ych kamer. V t´eto sekci se jednak budeme vˇenovat pr´aci se seznamem kamer, jejich pˇripojen´ı a konfiguraci. Pro kaˇzdou kameru je vytvoˇren objekt typu ”SmartisViewModel” obsahuj´ıc´ı instanci modelu kamery SAFETIS, dle n´avrhov´eho vzoru MVVM.

6.4.1 Pˇrid´an´ı a maz´an´ı ze seznamu

Pro aplikaci je implementov´an seznam objekt˚u typu ”SmartisViewModel”, nad kter´ym jsou prov´adˇeny operace spojen´e jak s pˇrid´av´an´ım jednotliv´ych zaˇr´ızen´ı, tak prac´ı s nimi. Pro pr´aci s jednotliv´ymi kamerami si aplikace v kaˇzd´em ˇcase drˇz´ı instanci jedn´e kamery jako vy-bran´e. Tu lze zvolit jiˇz zm´ınˇen´ymi nˇekolika zp˚usoby, napˇr´ıklad v lev´em informaˇcn´ım panelu.

P˚uvodn´ı koncepc´ı aplikace bylo plnˇe manu´aln´ı pˇrid´av´an´ı kamer v oknˇe spr´avy kamer. Tato varianta zde st´ale z˚ustala validn´ı, a to hlavnˇe z testovac´ıch d˚uvod˚u. Tedy kliknut´ım na tlaˇc´ıtko

”Add SAFETIS” v oknˇe ”SAFETIS Settings” (viz obr´azek ˇc. 19) je automaticky vytvoˇren objekt s parametry uveden´ymi v tomto oknˇe. Zde je moˇzn´e takt´eˇz instance kamer mazat ze se-znamu. V pozdˇejˇs´ı f´azi implementace bylo pˇristoupeno k automatick´emu pˇrid´av´an´ı kamer. To funguje na principu prohled´av´an´ı s´ıtˇe, a to na pˇredem definovan´ych rozsaz´ıch adres. P˚uvodn´ı zvyklost´ı byla pˇr´ıtomnost kamer na adres´ach 10.0.0.2 aˇz 10.0.0.254, po konzultac´ıch byla do webbrowseru aplikace implementov´ana funkce na zmˇenu IP adresy dle artiklov´eho ˇc´ısla. To je sloˇzeno z textov´eho oznaˇcen´ı a ˇc´ıslem vyroben´eho kusu poˇc´ıtan´eho od ˇc´ısla 1000. Tedy toto ˇ

c´ıslo je fyzicky rozdˇeleno na 2 poloviny a kamery v t´eto konfiguraci se nyn´ı nach´azej´ı v roz-saz´ıch 10.0.10.00 aˇz 10.0.19.99. Oba tyto rozsahy aplikace prohled´av´a automaticky, pˇriˇcemˇz v pˇr´ıpadˇe druh´eho rozsahu aplikace prohled´av´a na posledn´ım bajtu adresy pouze ˇc´ısla v roz-mez´ı 0 aˇz 99. Hled´an´ı kamery je provedeno ve vlastn´ım vl´aknˇe po spuˇstˇen´ı aplikace nejprve pingem na danou adresu. Pokud je odezva pingu kladn´a, je vytvoˇreno doˇcasn´e TCP pˇripojen´ı za pomoc´ı TCP klientu a je odesl´an pˇr´ıkaz HIS na dan´e pˇripojen´ı. Pokud se na dan´e adrese nach´az´ı kamera SAFETIS, odpov´ı na tento pˇr´ıkaz OK a je automaticky pˇrid´ana do seznamu

kamer. V negativn´ım pˇr´ıpadˇe je vyhodnoceno jin´e zaˇr´ızen´ı pˇripojen´e na dan´e adrese a je tedy ignorov´ana pozitivn´ı odpovˇed’ na pˇredchoz´ı ping.

Obr´azek 19: Okno nastaven´ı kamer SAFETIS

6.4.2 Pˇripojov´an´ı a komunikace

Model objektu kamery SAFETIS v sobˇe z pohledu komunikace a pˇripojen´ı obsahuje in-stance obsluˇzn´ych tˇr´ıd a to ”SmartisTcpControl” a ”SmartisTcpStream”. Kaˇzd´a instance kamery tedy z pohledu pˇripojen´ı obsahuje dva TCP klienty, a to na dan´e IP adrese a masce pods´ıtˇe a na dvou portech a to 2251 a 2252. Prvn´ı zmiˇnovan´y port slouˇz´ı pro konfiguraci a ˇcten´ı dat mˇeˇren´ı a druh´y slouˇz´ı pro pˇrenos obrazov´eho streamu. Pˇri ´uspˇeˇsn´em pˇripojen´ı TCP kli-enta si aplikace uloˇz´ı instanci dan´eho klienta z´aroveˇn s vyˇcten´ım a uloˇzen´ım instance objektu

”TcpStream”. Tomuto streamu jsou potom nastaveny ˇcasy pro vyprˇsen´ı komunikace a jsou na nˇej zapisov´ana data dan´a form´atem definovan´e komunikace na z´akladˇe seznamu pˇr´ıkazu viz tabulky ˇc. 7 a ˇc.8 a n´asledn´ym pˇreveden´ım textov´e zpr´avy na pole bajt˚u. Po odesl´an´ı dat je dan´y stream vyˇciˇstˇen pomoc´ı funkce ”Flush” a je oˇcek´av´ana definovan´a odpovˇed’ kamery.

Na z´akladˇe odpovˇedi je pot´e postupov´ano d´ale. Standardn´ı odpovˇed´ı na pˇr´ıkazy typu set je potvrzen´ı kamery OK v pˇr´ıpadˇe validn´ıho zpracov´an´ı kamerou a v pˇr´ıpadˇe chyby je to zpr´ava ERR. V pˇr´ıpadˇe pˇr´ıkaz˚u typu get jsou data pˇrevedena z pole bajt˚u na textovou zpr´avu to stringu a pot´e dle typu zpr´avy zpracov´ana pˇr´ısluˇsn´ymi implementovan´ymi textov´ymi parsery.

Moˇznost´ı pˇripojen´ı kamery je nˇekolik. Prvn´ım z nich je v pˇr´ıpadˇe automatick´eho nale-zen´ı kamery pˇri spuˇstˇen´ı a nebo nalezen´em v´yskytu v konfiguraˇcn´ım souboru aplikace kamera pˇripojena automaticky. Dalˇs´ı moˇznost´ı je vyuˇzit´ı manu´aln´ıho pˇripojen´ı kamery z okna ”SA-FETIS settings”, pˇr´ıpadnˇe pomoc´ı tlaˇc´ıtka reconnect v horn´ı ˇc´asti informaˇcn´ıho panelu apli-kace. V pˇr´ıpadˇe opˇetovn´eho pˇripojen´ı je za podm´ınky nefunkˇcn´ıho alespoˇn jednoho ze dvou pˇripojen´ı ukonˇcen a vyˇciˇstˇen stream a ukonˇcen klient TCP. Pot´e jsou zavol´any znovu funkce na jejich pˇripojen´ı. Pˇri implementaci a testov´an´ı jsme narazili na probl´em se stabilitou dan´ych pˇripojen´ı, proto je v aplikaci takt´eˇz implementov´an syst´emov´y ˇcasovaˇc s minutovou periodou.

Jeho funkc´ı je kontrola jednotliv´ych instanc´ı kamer a ovˇeˇren´ı zda je zaˇr´ızen´ı st´ale pˇripojeno.

Pokud detekuje odpojen´ı, automaticky se snaˇz´ı o nov´e nav´az´an´ı spojen´ı. Souˇcasnˇe s t´ım bylo pro tuto variantu implementov´ano resetov´an´ı pˇripojen´ı ze strany kamery v pˇr´ıpadˇe zasta-ven´ı komunikace z druh´eho smˇeru, a to s periodou 30 s. Hlavn´ım d˚uvodem pro implementaci resetov´an´ı pˇripojen´ı z pohledu kamery byl pˇredpoklad neust´ale komunikace.

Implementaˇcnˇe z pohledu komunikace jsou v aplikaci zavedeny dva ˇcasovaˇce. Prvn´ı z nich obsluhuje vyˇc´ıt´an´ı obrazu, pˇriˇcemˇz jeho perioda je nastavena podle vyˇcten´e hodnoty frekvence kamery. Ten pot´e s danou periodou obsluhuje nov´e sn´ımky a jejich vyˇc´ıt´an´ı. Z´aroveˇn m´a implementovanou toleranci na nevalidn´ı sn´ımky a pˇr´ıpadn´e odpojen´ı streamu. Pokud funkce na generov´an´ı obrazu ze zaslan´ych dat detekuje v´ıce sn´ımk˚u jak pˇetin´asobek frekvence kamery za sebou, dojde automaticky k odpojen´ı obrazov´eho pˇripojen´ı. Druh´y ˇcasovaˇc obsluhuje jak vyˇc´ıt´an´ı aktu´aln´ıch mˇeˇren´ı kamery, tak z´ısk´av´an´ı informac´ı. Jeho perioda je fixnˇe nastavena na 250 ms jelikoˇz nen´ı vyˇzadov´ana rychlejˇs´ı odezva. Ve vnitˇrn´ı implementaci vol´an´ı se v kaˇzd´em cyklu data mˇeˇr´ıc´ıch n´astroj˚u a digit´aln´ıch v´ystup˚u kamery. Z´aroveˇn je zde implementov´an ˇ

c´ıtaˇc vol´an´ı a pˇri kaˇzd´em 70. pr˚ubˇehu jsou vyˇc´ıt´any informace kamery pˇredevˇs´ım kv˚uli teplotˇe j´adra, na z´akladˇe kter´e je zpˇresˇnov´ano mˇeˇren´ı kamery v´ybˇerem vyˇcten´ych kalibraˇcn´ıch hodnot.

Takt´eˇz je v tomto ˇcasovaˇci implementov´an ˇc´ıtaˇc probl´em˚u, tedy pokud bˇehem vyˇc´ıt´an´ı dojde k neoˇcek´avan´e situaci, je ukonˇceno pˇripojen´ı stejn´ym zp˚usobem jako v pˇredchoz´ım pˇr´ıpadˇe.

Pro aktualizaci dat ViewModelu je ve vˇetˇsinˇe pˇr´ıpad˚u vyuˇzito odchycen´ı implementovan´ych ud´alost´ı. Tato implementace funguje na principu pozorovatele, ten na z´akladˇe definovan´e generovan´e ud´alosti v naˇsem pˇr´ıpadˇe reaguje na novˇe pˇr´ıchoz´ı data a propaguje je z instance Modelu do ViewModelu, aby bylo moˇzn´e prov´est grafickou zmˇenu.

6.4.3 Generov´an´ı obrazu

Obraz z kamery je generovan´y po obdrˇzen´ı dat sn´ımku v iteraci streamovac´ıho ˇcasovaˇce.

Z´ıskan´a data jsou ve form´atu pole bajt˚u a prvn´ım krokem je jejich pˇreveden´ı na pole hod-not typu ushort, jelikoˇz jsou data ve form´atu surov´ych hodnot kamery tak zvan´ych RAW hodnot. Tato data jsou pot´e pˇred´ana funkci obstar´avaj´ıc´ı generov´an´ı obrazu. Tato funkce na z´akladˇe minim´aln´ı a maxim´aln´ı hodnoty v obraze v pˇr´ıpadˇe automatick´eho rozsahu nebo na z´akladˇe limitn´ıch hodnot manu´aln´ıho rozsahu nejprve vytvoˇr´ı pˇriˇrazen´ı barev teplotn´ı pa-lety k jednotliv´ym teplotn´ım skok˚um. Tedy je nejprve vypoˇc´ıt´an teplotn´ı rozsah pˇr´ısluˇsn´y jedn´e z 255 barev teplotn´ı palety. Na z´akladˇe tˇechto dat je pot´e vytvoˇren obraz ve form´atu

”BitmapSource”, kter´y je pot´e graficky zobrazov´an jak v miniatur´ach, tak v panelu detailn´ıho zobrazen´ı. Souˇc´ast´ı generov´an´ı obrazu je takt´eˇz vizualizace pixel˚u, kter´e splˇnuj´ı podm´ınku mˇeˇren´ı. Pro optimalizaci v´ykonu, bylo definov´ano 12 moˇzn´ych barev tˇechto pixel˚u. Jelikoˇz aplikace slouˇz´ı prim´arnˇe pro detekci vysok´ych teplot, tedy bl´ızk´ych horn´ımu rozsahu, jsou tyto barvy zafixov´any programovˇe v barv´ach palety a je jim pˇriˇrazen´y k´od 1 aˇz 12. Pokud je pˇri vyˇcten´ı obrazu detekov´ana teplota pixelu pˇrekraˇcuj´ıc´ı mezn´ı hodnotu, je tomuto pi-xelu v duplicitn´ım poli zmˇenˇena RAW hodnota na kod vybran´e barvy a pˇri pˇriˇrazen´ı je tato hodnota kontrolov´ana a automaticky je tˇemto pixel˚um pˇriˇrazov´ana barva. Pˇri zobrazen´ı nen´ı tedy tˇreba vyuˇzit´ı pˇrekr´yv´an´ı obrazu a barvy pixel˚u jsou generov´any pˇr´ımo ve zdrojov´em

”BitmapSource”, kter´y je zobrazov´an. Pro ukl´ad´an´ı dat je pot´e pouˇzito pole hodnot nedegra-dovan´e o tyto data. Dalˇs´ım prvkem, kter´y je obrazovˇe zobrazen, jsou mˇeˇric´ı oblasti ROI, kter´e jsou z d˚uvodu pˇrehlednosti zobrazeny pouze v panelu detailn´ıho zobrazen´ı. Tyto oblasti jsou

vykresleny za pomoc´ı pl´atna (”Canvas”) jako grafick´e objekty syst´emov´e tˇr´ıdy ”UIElement”.

Na z´akladˇe typu a jejich souˇradnic jsou pˇrid´any do seznamu tˇechto objekt˚u a vykresleny.

6.4.4 Konfigurace

V t´eto podkapitole se budeme vˇenovat konfiguraci kamery z pohledu parametr˚u a mˇeˇric´ıch n´astroj˚u. V prvn´ı ˇradˇe se jedn´a o grafickou strukturu a v´yznam jednotliv´ych parametr˚u a pot´e vlastn´ı implementaci. Pro konfiguraci kamery je implementov´ano okno ”SAFETIS Configu-ration”, kter´e je rozdˇeleno na nˇekolik panel˚u. Zde je postupn´ym proch´azen´ım a nastaven´ım moˇzn´e zmˇenit aktu´aln´ı konfiguraci. Prvn´ım panelem je ”Radiometry”, zde je moˇzn´e

konfiguro-Obr´azek 20: Okno konfigurace kamery SAFETIS pˇri definov´an´ı mˇeˇr´ıc´ıch oblast´ı vat parametry kamery, jako je emisivita, odraˇzen´a teplota a teplota atmosf´ery, teplotn´ı rozsah a periodu intern´ı kalibrace NUC. Panel ”Miscelanious” slouˇz´ı pro zmˇenu IP adresy a masky pods´ıtˇe kamery. Z´aroveˇn je zde moˇzn´e definovat aktu´aln´ı datum a ˇcas kamery. V dalˇs´ı sekci

”ROI Selection” (viz obr´azek ˇc. 20) je moˇzn´e graficky definovat mˇeˇric´ı oblasti takzvan´e ROI do obrazu kamery. V lev´e ˇc´asti lze vybrat poˇzadovan´y n´astroj a za pomoc´ı kreslen´ı jsou uloˇzeny pˇr´ısluˇsn´e parametry vybran´eho n´astroje, d´ale je zde moˇzn´e tˇemto oblastem definovat n´azev a pˇr´ıpadnˇe je mazat. S tˇemito n´astroji se d´ale pracuje v n´asleduj´ıc´ım panelu ”Alarm Settings”.

V t´eto sekci prob´ıh´a podrobnˇejˇs´ı nastaven´ı parametr˚u mˇeˇren´ı pˇriˇcemˇz v´yznam jednotliv´ych poloˇzek je uveden v tabulce ˇc. 3 a je graficky zobrazen na obr´azku ˇc. 21.

Posledn´ı moˇznost´ı nastaven´ı je zapnut´ı clusterovac´ı funkce kamery, tedy nestandardn´ı situace je vyhodnocena pouze pokud dan´y poˇcet pixel˚u pˇrekraˇcuje limitn´ı teplotu po danou dobu, a z´aroveˇn jsou tyto pixely soused´ıc´ı. V panelu ”Outputs Settings” je moˇzn´e definovat pro jednotliv´e p´arovan´e digit´aln´ı v´ystupy kamery d´elku pˇresahu pulsu po skonˇcen´ı alarmu, a takt´eˇz zda se jedn´a o puls s n´abˇeˇznou nebo sestupnou hranou. Posledn´ı sekce ”Finalization” slouˇz´ı

N´azev Popis

# C´ıslo mˇˇ eˇren´ı

Pixel limit Minim´aln´ı poˇcet pixel˚u potˇrebn´y pro spuˇstˇen´ı alarmu Time limit Minim´aln´ı doba po kterou mus´ı b´yt pixely aktivov´any Pixel count Informace o poˇctu pixel˚u v mˇeˇr´ıc´ım n´astroji Temp. limit Limitn´ı teplota pro spuˇstˇen´ı alarmu

#0 aˇz #6 Jednotliv´e digit´aln´ı v´ystupy kamery pro pˇriˇrazen´ı k mˇeˇren´ı SCU Jednotliv´e digit´aln´ı v´ystupy PC Vecow a jejich p´arov´an´ı k mˇeˇren´ı Color Barva zobrazen´ı pixel˚u, kter´e pˇrekroˇcily teplotn´ı limit

Tabulka 3: Pˇrehled konfiguraˇcn´ıch parametr˚u

pouze k potvrzen´ı a nahr´an´ı t´eto konfigurace bud’ do kamery, nebo v pˇr´ıpadˇe zaˇr´ızen´ı s PT motorem, do vybran´e konfigurace.

Obr´azek 21: Okno konfigurace kamery SAFETIS pˇri nastaven´ı parametr˚u mˇeˇren´ı Z pohledu implementace konfiguraci zaˇr´ızen´ı spravuje instance ”SmartisConfigViewMo-delu” obsaˇzen´a s hlavn´ım aplikaˇcn´ım ViewModelu. Ja je inicializov´ana jako pr´azdn´a pˇri spuˇstˇen´ı programu a vytv´aˇren´ı jednotliv´ych ViewModel˚u a jej´ı data jsou naplnˇena v mo-ment otevˇren´ı konfiguraˇcn´ıho okna vybran´e kamery. Data, kter´a jsou t´eto instanci pˇred´ana jsou porovn´an´ım uloˇzen´ych a aktu´aln´ıch dat z kamery. Po otevˇren´ı a pˇri zmˇenˇe parametr˚u jsou kontrolov´any jednotliv´e aspekty dan´ych hodnot. Pˇr´ıkladem m˚uˇze b´y test hodnoty emi-sivity jak na validn´ı znaky, tak i na rozsah hodnot 0 aˇz 1. V pˇr´ıpadˇe v´ybˇeru a kreslen´ı mˇeˇric´ıch n´astroj˚u, jsou vytvoˇreny a uloˇzeny objekty typu ”SmartisROI” a ”SmartisRoiView-Model”, v nichˇz jsou uloˇzena data o neˇsk´alovan´ych bodech, typu n´astroje a ostatn´ıch para-metr˚u mˇeˇren´ı. Takt´eˇz je vytvoˇren jejich seznam. D´ale je vytvoˇren seznam digit´aln´ıch v´ystup˚u kamery s jejich nastaven´ım. Po nastaven´ı vˇsech parametr˚u a pˇri aplikov´an´ı do kamery je na z´akladˇe vol´an´ı pˇriˇrazen´eho pˇr´ıkazu datov´ym bindingem spuˇstˇena sekvence pˇr´ıkaz˚u. Nejprve je pozastavena komunikace na obou portech, pot´e je odesl´an pˇr´ıkaz pro pozastaven´ı mˇeˇren´ı kamery a n´aslednˇe pˇr´ıkaz definuj´ıc´ı zaˇc´atek konfigurace kamery. Po proveden´ı tˇechto krok˚u jsou sekvenˇcnˇe odesl´ana vˇsechna data nastaven´a bˇehem konfigurace, pomoc´ı instance objektu

”TcpStream” pˇripojen´e a vybran´e kamery. Pokud odesl´an´ı probˇehlo validnˇe, je ukonˇcen kon-figuraˇcn´ı m´od kamery a jsou opˇet spuˇstˇeny ˇcasovaˇce pro vyˇc´ıt´an´ı obrazu a ˇcten´ı dat. Pokud doˇslo ke zmˇenˇe IP adresy kamery, je automaticky pˇrenastavena i aplikaˇcnˇe a je spuˇstˇen pˇr´ıkaz na zmˇenu pˇripojen´ı. Po dokonˇcen´ı jsou aktualizov´ana data v objektu ”SmartisSettings”, kter´a slouˇz´ı pro ukl´ad´an´ı konfigurace do souboru s nastaven´ım ale i pro vyˇc´ıt´an´ı konfiguraˇcn´ıch dat pˇri selekci a otevˇren´ı tohoto okna. Kamera po zmˇenˇe konfigurace provede vnitˇrnˇe dan´e zmˇeny a po proveden´ı se automaticky spust´ı komunikace s programem.

In document Diplomov´ a pr´ ace (Stránka 45-50)