eské vysoké u£ení technické v Praze Fakulta elektrotechnická Katedra kybernetiky
Bakalá°ská práce Software pro IP termokamerové systémy
Mat¥j Balga Praha, 2013
.
.
.
Abstrakt Název práce: Software pro IP termokamerové systémy Autor: Mat¥j Balga Vedoucí práce: Ing. Jan Ková° Anotace Tato práce se zabývá implementací softwarového systému pro bezkontaktní m¥°ení a vyhodnocování teploty pomocí n¥kolika termálních kamer. Systém s vyuºitím knihoven implementujících rozhraní Gen-I-Cam umoº¬uje práci se v²emi kamerami podporujícími standard GigE Vision, zobrazuje výstup z kamer jako termogracké video a podle uºivatelsky denovaných poºadavk· na teplotu (tzv. alarm· ) v reálném £ase vyhodnocuje získaná data. Vyvinuté softwarové °e²ení je vyuºitelné nap°íklad k rychlé a pohotové protipoºární ochran¥ £i k ostraze objekt·.
Klí£ová slova: termokamera, Gen-I-Cam, GigE Vision, m¥°ení teploty, Flir
Abstract Title: Software for IP Thermal Imaging Camera Systems Author: Mat¥j Balga Supervisor: Ing. Jan Ková° Summary This thesis focuses on implementing a software system for non-contact temperature measurement and analysis, using several thermal imaging cameras. The system, using libraries which implement the Gen-I-Cam interface, is able to work with all cameras that support the GigE Vision standard, displays their thermographic video output and evaluates acquired data in real-time according to user-dened temperature thresholds (called alarms ). The implemented software solution can be used for example as a prompt re protection or as a security system.
Keywords: themal imaging camera, Gen-I-Cam, GigE Vision, temperature measurement, Flir
IV
.
V
Obsah 1 Úvod
1
2 Termokamery a bezdotykové m¥°ení teploty
3
2.1 2.2
2.3
P°enos tepla zá°ením . . . . . . . . . . . . . . . . . . . . . . .
3
2.1.1
. . . . . . . . . . . . . . . . . .
5
Absolutn¥ £erné t¥leso
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
2.2.1
Emisivita
edé t¥leso . . . . . . . . . . . . . . . . . . . . . . . . .
5
2.2.2
Ur£ení emisivity . . . . . . . . . . . . . . . . . . . . . .
6
2.2.3
Emisivity n¥kterých materiál· . . . . . . . . . . . . . .
7
Termokamery
. . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3.1
Popis funkce . . . . . . . . . . . . . . . . . . . . . . . .
8
2.3.2
Základní parametry . . . . . . . . . . . . . . . . . . . .
10
2.3.3
Termokamery pouºité v navrºeném systému
10
. . . . . .
3 Technologie v IP kamerách 3.1
3.2
13
Protokoly a standardy pro p°enos dat . . . . . . . . . . . . . .
4.2
Gigabit Ethernet
. . . . . . . . . . . . . . . . . . . . .
13
3.1.2
GigE Vision . . . . . . . . . . . . . . . . . . . . . . . .
14
3.1.3
GenICam
. . . . . . . . . . . . . . . . . . . . . . . . .
15
Formát výstupu . . . . . . . . . . . . . . . . . . . . . . . . . .
17
3.2.1
Streamované bitmapy . . . . . . . . . . . . . . . . . . .
17
3.2.2
MPEG-4 Visual, H.264 . . . . . . . . . . . . . . . . . .
18
21
Softwarové nástroje pro GigE Vision
. . . . . . . . . . . . . .
4.1.1
Referen£ní implementace standardu GenICam
4.1.2
Pleora eBUS SDK
21
. . . . .
21
. . . . . . . . . . . . . . . . . . . .
22
4.1.3
NI Labview + Vision Development Module . . . . . . .
22
4.1.4
JAI SDK
23
4.1.5
A&B Software Active GigE
. . . . . . . . . . . . . . . . . . . . . . . . .
JAI SDK: Základní kámen systému
. . . . . . . . . . . . . . .
24
. . . . . . . . . . . . . . .
24
. . . . . . . . . . . . . . . . . . . . . .
24
4.2.1
Struktura SDK
4.2.2
Vyhledání za°ízení
. . . . . . . . . . . . . . . . . . . .
26
4.2.3
P°ipojení kamery
. . . . . . . . . . . . . . . . . . . . .
27
4.2.4
Kongurace funk£ních vlastností GenICam . . . . . . .
27
5 Zpracování a interpretace m¥°ených dat 5.1
13
3.1.1
4 Komunikace s kamerou 4.1
7
31
Navrºené softwarové °e²ení . . . . . . . . . . . . . . . . . . . .
31
5.1.1
31
Úvod . . . . . . . . . . . . . . . . . . . . . . . . . . . .
VI
5.1.2 5.2
5.3
5.4
5.5
Architektura programu . . . . . . . . . . . . . . . . . .
Výpo£et teploty a zpracování obrazu
32
. . . . . . . . . . . . . .
33
5.2.1
Teplotní matice . . . . . . . . . . . . . . . . . . . . . .
35
5.2.2
Interpolace obrazu
. . . . . . . . . . . . . . . . . . . .
36
5.2.3
Analýza pracovních oblastí . . . . . . . . . . . . . . . .
36
Alarmy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
38
5.3.1
Alarmy s denovanou hodnotou . . . . . . . . . . . . .
39
5.3.2
Dynamické alarmy
. . . . . . . . . . . . . . . . . . . .
39
. . . . . . . . . . . . . . . . . . . . . . . . . .
40
M¥°icí nástroje 5.4.1
M¥°ení uºivatelsky zvolených oblastí
5.4.2
Teplotní proly
5.4.3
Historie
. . . . . . . . . .
40
. . . . . . . . . . . . . . . . . . . . . .
42
. . . . . . . . . . . . . . . . . . . . . . . . . .
42
Externí výstupy . . . . . . . . . . . . . . . . . . . . . . . . . .
42
5.5.1
Log . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
42
5.5.2
Digitální výstup . . . . . . . . . . . . . . . . . . . . . .
43
5.5.3
Vzdálené zasílání výsledk· . . . . . . . . . . . . . . . .
43
5.5.4
Záznam videa . . . . . . . . . . . . . . . . . . . . . . .
44
6 Záv¥r
45
A Manuál Getting Started (v angli£tin¥)
55
A.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . Terminology . . . . . . . . . . . . . . . . . . . . . . . .
55
A.2
Preparations . . . . . . . . . . . . . . . . . . . . . . . . . . . .
56
A.2.1
General system requirements . . . . . . . . . . . . . . .
56
A.2.2
A.1.1
A.3
A.4
A.5
A.6
A.7
55
Hardware setup . . . . . . . . . . . . . . . . . . . . . .
56
Installing Thermo Safety 2013 . . . . . . . . . . . . . . . . . .
60
A.3.1
Setup
. . . . . . . . . . . . . . . . . . . . . . . . . . .
60
A.3.2
Activation . . . . . . . . . . . . . . . . . . . . . . . . .
61
Cameras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
64
A.4.1
Connecting a camera . . . . . . . . . . . . . . . . . . .
64
A.4.2
Disconnecting a camera
. . . . . . . . . . . . . . . . .
65
Alarms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
66
A.5.1
Setting up an alarm
. . . . . . . . . . . . . . . . . . .
66
A.5.2
Raised alarms . . . . . . . . . . . . . . . . . . . . . . .
68
A.5.3
Deleting alarms . . . . . . . . . . . . . . . . . . . . . .
Sessions
69
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
70
A.6.1
The Default session . . . . . . . . . . . . . . . . . . . .
70
A.6.2
User-created sessions . . . . . . . . . . . . . . . . . . .
70
Program settings A.7.1
. . . . . . . . . . . . . . . . . . . . . . . . .
71
Accounts . . . . . . . . . . . . . . . . . . . . . . . . . .
71
VII
A.8
A.7.2
Cameras . . . . . . . . . . . . . . . . . . . . . . . . . .
72
A.7.3
Sounds . . . . . . . . . . . . . . . . . . . . . . . . . . .
72
A.7.4
View . . . . . . . . . . . . . . . . . . . . . . . . . . . .
73
A.7.5
Log . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
74
Feedback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
75
B Seznam pouºitých zkratek
77
C Obsah p°iloºeného CD
79
VIII
Seznam obrázk· 1
Poloha infra£erveného spektra
. . . . . . . . . . . . . . . . . .
3
2
Závislost vyza°ovacích charakteristik na teplot¥ £erného t¥lesa
4
3
Spektrální intenzita zá°ení u t¥les s r·znou emisivitou . . . . .
6
4
Blokové schéma termokamery
9
5
Termokamera FLIR A15 . . . . . . . . . . . . . . . . . . . . .
11
6
Logo GigE Vision . . . . . . . . . . . . . . . . . . . . . . . . .
14
7
Struktura standardu GigE Vision v modelu ISO/OSI a TCP/IP 16
8
Logo standardu GenICam
. . . . . . . . . . . . . . . . . . . .
16
9
P°ipojení kamery a zobrazení videa v LabView . . . . . . . . .
23
10
Schéma struktury JAI SDK
. . . . . . . . . . . . . . . . . . .
25
11
Proces hledání za°ízení . . . . . . . . . . . . . . . . . . . . . .
26
12
Uspo°ádání jednotlivých funk£ních celk· v navrºeném programu
32
13
Tok dat p°i zpracování obrazu
. . . . . . . . . . . . . . . . . .
34
14
Procházení obrazu p°i analýze pracovních oblastí . . . . . . . .
36
. . . . . . . . . . . . . . . . . .
15
Diagram t°íd pro implementaci alarm·
16
Diagram t°íd pro m¥°icí nástroje
. . . . . . . . . . . . .
39
. . . . . . . . . . . . . . . .
41
1
Integrální emisivita n¥kterých materiál· [2] . . . . . . . . . . .
7
2
Základní parametry termokamer[5, 6] . . . . . . . . . . . . . .
10
3
Technické specikace termokamer °ady FLIR Ax5[7] . . . . . .
11
4
Technické specikace termokamer °ady FLIR Ax15[8] . . . . .
12
5
Varianty fyzické vrstvy pro Gigabit Ethernet[10]
. . . . . . . .
13
6
P°ístupová práva k uzl·m GenICam[13] . . . . . . . . . . . . .
30
Seznam tabulek
IX
.
X
.
1
Úvod
S klesající cenou infra£ervených kamer (dále jen termokamery ) se tato za°ízení objevují ve stále v¥t²ím po£tu aplikací. Zdaleka nejv¥t²í potenciál pro ²iroké roz²í°ení pak mají IP kamery, obzvlá²t¥ pro svou snadnou integraci do jiº existujících sí´ových °e²ení na bázi Ethernetu a levnému roz²i°ování takové sít¥. P°estoºe standardy, které tyto kamery vyuºívají, jsou na trhu jiº n¥kolik let, softwarové nástroje, které by umoº¬ovaly pln¥ vyuºít potenciál t¥chto za°ízení, jsou omezeny na malou mnoºinu jednoduchých program·, dodávaných v¥t²inou p°ímo výrobci kamer. Cílem této práce je proto p°edev²ím ukázat moºnosti pro vývoj vlastního aplika£ního software pro IP kamery na p°íkladu návrhu a implementace m¥°icího systému v jazyce C#, jehoº zku²ební verze, vyvinutá pro rmu Workswell, je sou£ástí p°iloºeného CD. Pro hlub²í vhled do celé problematiky se práce zabývá také bezdotykovým m¥°ením obecn¥ a seznamuje s parametry a moºnostmi sou£asných termokamer a technologií v nich pouºívaných. Úvod práce se v¥nuje radia£ním projev·m teploty, tudíº teplot¥ jako zá°ení, jeho projev·m a zákonitostem, díky kterým je moºné m¥°it teplotu bez dotyku m¥°eného p°edm¥tu. S vyuºitím poznatk· o p°enosu tepla radiací pak popisuji funkci termokamer a význam jejich funk£ních parametr·. tená° je na konci kapitoly téº seznámen s parametry kamer, s nimiº je vyvinutý program kompatibilní a na nichº byl testován. Kapitola Technologie v IP kamerách seznámí £tená°e s aktuálními standardy na poli termokamer, jejichº pochopení a ovládnutí je pro vývoj softwaru k t¥mto kamerám nezbytné. První £ást kapitoly je zam¥°ena na mechanismy p°enosu dat z kamery do po£íta£e, druhá se zabývá formátem a kódováním t¥chto dat. Ve £tvrté kapitole jsou diskutovány softwarové moºnosti pro p°ipojení kamer, postavených na zmi¬ovaných protokolech, k po£íta£i, výhody a nevýhody jednotlivých °e²ení. Tato kapitola £tená°e také seznámí s konkrétním °e²ením, pouºitým p°i implementaci a s mechanismy, na kterých toto °e²ení pracuje. Záv¥re£ná kapitola se pak v¥nuje samotnému návrhu a implementaci programu pro práci s IP termokamerovými systémy, Popisuje základní stavební kameny celého systému a jejich vzájemnou provázanost a nasti¬uje principy pouºitých funkcí.
1
.
2
2
Termokamery a bezdotykové m¥°ení teploty
Bezdotykové m¥°ení je velmi rychlý a jednoduchý zp·sob zji²´ování teploty. Je vyuºíván zejména proto, ºe p°i tomto zp·sobu m¥°ení nedochází k ovliv¬ování teploty t¥lesa m¥°icím p°ístrojem, lze m¥°it i velmi rychlé zm¥ny teploty ve velkých rozsazích, m¥°it teplotu na celém povrchu t¥lesa, £i provád¥t neinvazivní inspekci jinak nedostupných oblastí. Pro správné a p°esné ur£ení teploty je v²ak zapot°ebí znát fyzikální podstatu p°enosu tepla a správn¥ ur£it prom¥nné prost°edí, stejn¥ tak jako parametry m¥°eného objektu.
2.1
P°enos tepla zá°ením
Kaºdé t¥leso, jehoº povrchová teplota je vy²²í neº
0 K = −273, 15 °C ,
tj.
vy²²í neº absolutní nula, vyza°uje energii, odpovídající jeho teplot¥.
Obrázek 1: Poloha infra£erveného spektra
Energie tohoto tepelného zá°ení je p°ená²ena elektromagnetickými vlnami, −1 jejichº rychlost ve vakuu je c = 299 792 456 m · s . V¥t²ina spektra tohoto zá°ení leºí v rozmezí vlnových délek od
0, 78 µm
do
1 mm.
Jelikoº tato ob-
last leºí z hlediska frekvence pod £ervenou £ástí viditelného sv¥tla, pouºíváme pro tepelné zá°ení spí²e pojem
infra£ervené zá°ení. Pro bezkontaktní
m¥°ení teploty se vyuºívá jak oblast infra£erveného spektra, tak i viditelné spektrum, za n¥º povaºujeme zá°ení s vlnovou délkou od [1]
3
0, 4 µm do 0, 78 mm.
Aby bylo moºno za£ít pomocí intenzity zmín¥ných elektromagnetických vln m¥°it teplotu, je nutno zavést n¥kolik vztah·, popisujících vzájemné závislosti t¥chto veli£in. Základním takovým vztahem je
zákon
Stefan-Boltzmann·v
[2]
E0 = σ · T 4
[W · m−2 ]
(1)
podle n¥hoº je integrální (tj. na celém spektru) intenzita vyza°ování £erného t¥lesa (hustota zá°ivého toku)
E0
úm¥rná £tvrté mocnin¥ jeho termodyna−8 mické teploty ( Stefan-Boltzamnnova konstanta σ = 5, 67 · 10 [W · m−2 · −4 K ]). Tato energie se ale rozptýlí od zdroje do prostoru a pro m¥°ení teploty je pot°eba v¥d¥t, jak. To popisuje
Lambert·v zákon [2] [W · m−2 · sr−2 ]
I0,ϕ = I0,n · cos ϕ jenº zavádí
(2)
sm¥rovou intenzitu vyza°ování Iϕ , která zjednodu²en¥ °e£eno
vyjad°uje mnoºství energie vyzá°ené z plochy t¥lesa do prostoru v ur£itém sm¥ru. Ze vztahu (2) je z°ejmé, ºe nejvy²²í sm¥rová intenzita vyza°ování je pro
ϕ = 0°,
tudíº v normálovém sm¥ru.
Obrázek 2: Závislost vyza°ovacích charakteristik na teplot¥ £erného t¥lesa
4
Pro r·zné teploty se navíc m¥ní vlnová délka, na které je spektrální (tj. pro konkrétní vlnovou délku) intenzita vyza°ování venci m·ºeme pro konkrétní teplotu ur£it pomocí
zákona.
E0,λ maximální. Tuto frek-
Wienova posunovacího
[2]
λmax · T = 2, 898 · 10−3
[m · K]
(3)
Wien·v posunovací zákon se projevuje nap°íklad tím, ºe s vy²²ími teplotami se tepelné vyza°ování posouvá blíºe k viditelnému spektru a proto nap°. rozºhavené ºelezo svítí £erven¥ aº bíle. Pro m¥°ení teploty je v²ak tento zákon zásadní z hlediska nastavení rozmezí vlnových délek, na kterých bude p°ístroj m¥°it. (viz Obrázek 2).
600 K by m¥l bezdotykový teplom¥r pracovat v rozmezí vlnových délek od 2 do 10 µm. Pokud V praxi to znamená, ºe nap°íklad pro t¥leso o teplot¥
by se výrazn¥ zvý²ila nebo naopak sníºila teplota snímaného t¥lesa, takto nastavený teplom¥r by zvý²ení teploty nezaznamenal, protoºe by se spektrum vyza°ování posunulo sm¥rem ke krat²ím, respektive k del²ím vlnovým délkám. (Citováno dle [1])
2.1.1
Absolutn¥ £erné t¥leso
Vztahy, uvedené vý²e, platí, stejn¥ jako graf, pouze pro
t¥lesa, denovaná podle [2] následovn¥:
absolutn¥ £erná
Dokonale £erné t¥leso je etalon, se kterým jsou ostatní zá°ící (pohlcující) t¥lesa srovnávána, nebo´ intenzita jeho zá°ení (pohlcování) závisí pouze na teplot¥. Dokonale £erné t¥leso ve skute£nosti neexistuje, je to pouze teoretický pojem. V praxi se dokonale £erné t¥leso nahrazuje nap°. dutou koulí s velmi malým otvorem, jehoº plocha je mnohem men²í neº plocha vnit°ního povrchu koule. Za model £erného t¥lesa je moºno s pom¥rn¥ velkou p°esností povaºovat i pracovní prostor pecí £i kotl·. Absolutn¥ £erné t¥leso také pohlcuje ve²keré zá°ení, na n¥j dopadající a pokud je zdrojem zá°ení, pak p°i dané teplot¥ vyza°uje na v²ech vlnových délkách maximální dosaºitelnou energii zá°ivého toku.
2.2
2.2.1
Emisivita
edé t¥leso
Jak jiº bylo °e£eno vý²e, v p°írod¥ neexistuje ºádný objekt, který by m¥l vlastnosti absolutn¥ £erného t¥lesa. U skute£ných materiál· se jejich vyza°ovací schopnosti v ur£itých rozsazích vlnových délek m¥ní. Pom¥r celkového
5
q , takového t¥lesa a zá°ivého toku q0 , jeº za stejných podmínek emisivita (). Emisivita je bezrozm¥rná veli£ina, nabývající hodnot z intervalu < 0; 1 >, p°i£emº je z°ejmé, ºe pro dokonale £erné t¥leso platí = 1.
zá°ivého toku
vyzá°í absolutn¥ £erné t¥leso, se nazývá
Pro zjednodu²ení situace p°i modelování tepelné radiace se zavedl pojem
²edé t¥leso.
Je to takové t¥leso, které vykazuje nezávislost emisivity na
vlnové délce a má v celém rozsahu vlnových délek pom¥r
q/q0
konstantní. [1]
Pojem ²edé t¥leso je op¥t pouhou idealizací skute£nosti, nicmén¥ v ur£itém rozsahu vlnových délek se °ada povrch· vlastnostem ²edého t¥lesa p°ibliºuje a výpo£ty p°edpokládající ²edá t¥lesa odpovídají skute£nosti s uspokojivou p°esností. Pro správné ur£ení teploty je v²ak klí£ové emisivitu u m¥°eného objektu správn¥ ur£it.
Obrázek 3: Spektrální intenzita zá°ení u t¥les s r·znou emisivitou
2.2.2
Ur£ení emisivity
patné nastavení emisivity je nej£ast¥j²ím d·vodem ²patných výsledk· bezdotykového m¥°ení teploty. Pro relativn¥ dobré výsledky je moºné k jejímu ur£ení pouºít n¥kterou z následujících metod:[3] 1.
Vyhledání emisivity v tabulkách vlastností materiál· V mnoha tabulkách lze krom¥ emisivity nalézt i pásmo vlnových délek, pro které emisivita platí, nebo, v p°ípad¥ integrální emisivity, teplotu, ke které se pro daný povrch vztahuje. Pokud se v²ak podmínky, £i povrch li²í od uvedených, je nutné brát hodnotu jako orienta£ní a to obzvlá²´ v p°ípad¥ kov·, u kterých úprava jejich povrchu (le²t¥ný, zoxidovaný,...) m·ºe ovlivnit hodnotu emisivity více, neº materiál samotný.
6
2.
Ru£ní kalibrace Povrch t¥lesa zm¥°íme ru£ním, dotykovým teplom¥rem (nap°. termo£lánkem) a postupnou úpravou emisivity u bezdotykového m¥°i£e se snaºíme dostat se na nam¥°enou hodnotu teploty. V okamºiku, kdy se teplota u bezdotykového m¥°i£e shoduje s dotykovým, ode£teme nalezenou emisivitu t¥lesa.
3.
Samolepka se známou emisivitou V p°ípad¥, ºe dotykový teplom¥r není k dispozici, na povrch m¥°eného t¥lesa nalepíme samolepku se známou emisivitou, po správném nastavení emisivity ode£teme teplotu a postupujeme analogicky jako v p°edchozím p°ípad¥. Místo samolepky je také moºné, pokud to podmínky dovolují, pouºít matnou £ernou barvu, která má emisivitu kolem 0,95.
2.2.3
Emisivity n¥kterých materiál· Materiál a charakter povrchu teplota [°C]
[-]
Ocel, le²t¥ná
100
0,066
Ocel, £erven¥ zkorodovaná
20
0,61
Surové ºelezo, tekuté
1350
0,3 aº 0,4
Oxid ºeleznatý
500 aº 1200
0,85 aº 0,89
Cihly, £ervené
40
0,93
Azbestová deska
20 aº 400
0,95
Sklo, hladké
20
0,94
Voda
0 aº 100
0,95 aº 0,963
Led, hladký
0
0,97
Sníh
-5 aº -10
0,82
Tabulka 1: Integrální emisivita n¥kterých materiál· [2]
2.3
Termokamery
Termokamera
je za°ízení pro bezkontaktní m¥°ení teploty, které detekuje
tepelné zá°ení v ur£ité oblasti a p°evádí ho na elektrický signál, který je zpracován na termogracký snímek, tzv.
termogram.[4]
Termokamery mohou být podle ú£elu [5]
pouze zobrazující Poskytují pouze p°edstavu o rozloºení teploty v oblasti, ale z výsled-
7
ného obrazu není moºné ur£it konkrétní hodnoty veli£iny. Mezi nej£ast¥j²í aplikace kamer tohoto typu pat°í no£ní vid¥ní.
radiometrické Elektronika radiometrických kamer dokáºe, na základ¥ údaj· jako jsou emisivita, relativní vlhkost, teplota prost°edí a odraºená teplota, poskytnout termogram s údaji o teplotách na povrchu m¥°ených objekt·. podle typu detektoru
tepelný Tepelné detektory se uºívají v p°enosných a stacionárních kamerách niº²í a st°ední t°ídy. P°i snímání se udrºují na stálé teplot¥ kolem 30°C, v¥t²inou pomocí Peltierova £lánku.
kvantový Kvantovým detektorem jsou osazeny pouze stacionární kamery nejvy²²í t°ídy. Díky výhodnému spektrálnímu rozsahu, který umoº¬uje m¥°it vysoké rozsahy teplot, men²í chyb¥ m¥°ení a teplotní citlivosti 13 mK aº 30 mK, se pouºívají zejména ve v¥d¥ a výzkumu. podle provedení[6]
mobilní Mobilní termokamera má vlastní napájení, pam¥´ a display. Vyuºívá se pro m¥°ení v terénu, nap°íklad pro m¥°ení únik· tepla ze staveb.
stacionární Stacionární termokamera je p°ipojena trvale k po£íta£i a napájení a slouºí nap°íklad pro sledování proces· v laborato°ích £i ostrahu budov. Jsou to práv¥ stacionární radiometrické kamery s tepelnými detektory, kterými se tato práce zabývá.
2.3.1
Popis funkce
Elektromagnetické zá°ení z prostoru, je ltrováno a soust°ed¥no
optikou
na
detektor. Materiál, ze kterého jsou optické prvky vyrobeny musí být prostupný pro oblast tepelného zá°ení a proto se v £o£kách pro termokamery místo optického skla musí pouºívat jiné prvky, v¥t²inou germanium.
8
Obrázek 4: Blokové schéma termokamery
Detektor
p°ijatý signál digitalizuje a zesílí a posílá jej elektronice ke zpra-
cování. Ta pomocí
ak£ních £len·
a dal²ích
senzor·, jako nap°íklad senzor uºi-
teploty detektoru, upraví p°ijatá data a posílá výsledný termogram k
vatelskému rozhraní.
Uºivatelské rozhraní, které zaji²´uje zobrazení ter-
mogramu a nastavování kamery, je v¥t²inou p°ítomné pouze u mobilních kamer. U stacionárních tyto úkony zaji²´uje p°es komunika£ní za°ízení kamery po£íta£.[5]
9
2.3.2
Základní parametry
Základní parametry termální kamery, které významn¥ ovliv¬ují její moºnosti i p°esnost m¥°ení jsou uvedeny v následující tabulce
Parametr
Popis
Jednotka
Pouºívané rozmezí
Význam Moºný posun
P°esnost
Absolutní
m¥°ení
chyba.
K,
°C
±1°C
zm¥°ené
aº±5°C
teploty od reálné
Zm¥na teploty, p°i
NETD
K,
které
°C
1
13 mK aº 150 mK
Teplotní
v závislosti
Detekovaná
na optice
oblast
citlivost
SNR =1 FOV
Zorné pole
°
(úhel)
Skute£ná velikost jednoho
Velikost rozli²itel-
IFOV
ného
mrad
v závislosti na optice
objektu.
obrazového bodu v mm p°i vzdálenosti 1 m od m¥°eného objektu
Obnovovací frekvence
Frekvence vytvá°ení
Hz
snímk·
1 Hz aº 200 Hz
asové rozli²ení
Tabulka 2: Základní parametry termokamer[5, 6]
2.3.3
Termokamery pouºité v navrºeném systému
Pro vyvinutý softwarový systém byly pouºity kamery od americké rmy
FLIR (d°íve Thermovision). Konkrétn¥ se jedná o modely °ady FLIR Ax5 a FLIR Ax15. Ob¥ tyto °ady se vyzna£ují vysokou frekvencí snímkování, pr·m¥rným aº nadpr·m¥rným rozli²ením a p°edev²ím podporou d·leºitých sou£asných standard· v oblasti IP kamer, jako je
10
GigE Vision, Gen-I-Cam
a Power over Ethernet (
PoE), který umoº¬uje realizovat jak datový p°enos,
tak napájení jediným kabelem. Základní technické specikace jednotlivých model· zmín¥ných °ad, v konguraci, jaká byla pouºita p°i testování, jsou uvedeny v tabulkách níºe.
Obrázek 5: Termokamera FLIR A15
Rozli²ení detektoru [px] FOV IFOV [mrad]
FLIR A5
FLIR A15
FLIR A35
FLIR A65
80x64
160x128
320x256
640x512
44◦ x36◦ 10
NETD Obnovovací frekvence
48◦ x39◦ 48◦ x39◦ 45◦ x37◦ 5, 56 2, 78 1, 31 ◦ ◦ < 0.05 C p°i 30 C nebo 50 mK
60 Hz
60 Hz
60 Hz
Rozsah m¥°ených
−40◦ C
aº
160◦ C /−40◦ C
aº
550◦ C
teplot P°esnost m¥°ení
±5°C
nebo
±5%
9 Hz −40◦ C aº 160◦ C
z hodnoty
Tabulka 3: Technické specikace termokamer °ady FLIR Ax5[7]
11
FLIR A315
FLIR A615
320x240
640x480
Rozli²ení detektoru [px]
25◦ x18, 8◦
FOV
1, 36 < 0.05◦ C
IFOV [mrad] NETD Obnovovací
m¥°ených teplot P°esnost m¥°ení
30 C
−20◦ C
nebo
0, 69 50 mK
50 Hz -200 Hz 2
60 Hz
frekvence Rozsah
p°i
◦
120◦ C /0◦ C 350◦ C
aº
±2°C
aº
nebo
−20◦ C aº 150◦ C /100◦ C ◦ ◦ aº 650 C /300 C aº 2000◦ C
±2%
z hodnoty
Tabulka 4: Technické specikace termokamer °ady FLIR Ax15[8]
12
3
Technologie v IP kamerách
3.1
Protokoly a standardy pro p°enos dat
3.1.1
Gigabit Ethernet
Ethernet
se od druhé poloviny sedmdesátých let, kdy vznikl, stal nejroz²í-
°en¥j²ím a nejvyuºívan¥j²ím protokolem fyzické vrstvy referen£ního modelu ISO/OSI a to zejména díky jeho jednoduché instalaci a levným, lehce dostup-
3
ným a lehce upravitelným UTP kabel·m.
Rychlost p·vodního (klasického)
Ethernetu je 10 Mb/s, v dne²ní dob¥ je v²ak prakticky nejniº²ím standardem
Fast Ethernet,
s p°enosovou rychlostí 100 Mb/s, který je jiº také
postupn¥ vytla£ován práv¥
GigE),
Gigabit Ethernetem (zkracováno jako GbE £i
jeº p°ená²í data je²t¥ 10x rychleji a umoº¬uje tak p°enos rychlostí
aº 1 000 000 000 bit· za sekundu.
Varianta 1000BASE-T 1000BASE-TX
Fyzické médium Kroucená dvojlinka (UTP: kat-5,5e,6,7) Kroucená dvojlinka (UTP: kat-6,7)
Max. vzdálenost 100 m 100 m
1000BASE-CX
Twinaxiální kabel
25 m
1000BASE-SX
Mnohavidové optické vlákno
220 m - 550 m
1000BASE-LX 1000BASE-LX10 1000BASE-ZX10
Mnoha/jednovidové optické vlákno Jednovidové optické vlákno,
λ = 1, 310 nm Jednovidové optické vlákno,
λ = 1, 550 nm
500 m / 5 km 10 km 70 km
Jednovidové optické vlákno, 1000BASE-BX10
λ = 1, 490 nm downstream, λ = 1, 310 nm upstream
10 km
Tabulka 5: Varianty fyzické vrstvy pro Gigabit Ethernet[10]
Po£áte£ní standard byl IEEE (Institute of Electrical and Electronics Engineers - Institut pro elektrotechnické a elektronické inºenýrství) p°edstaven
3 Pro
varianty 10/100/1000BASE-T 13
v £ervnu 1998 jako IEEE 802.3z a p°edpokládal jako fyzické médium pouze optická vlákna. Tato varianta je ozna£ována jako
1000BASE-X.
V roce
1999 byl ratikován standard IEEE 802.3ab, díky kterému se z gigabitového Ethernetu stala technologie pro ²iroké vyuºití. Tento standard, spí²e známý jako
1000BASE-T,
totiº denoval p°enos ethernetových datových rámc·
metalickou p°enosovou cestou, a to pomocí UTP (nestín¥né kroucené dvojlinky) kabel· kategorie 5,5e a 6. (délka aº 100 m) Poslední zm¥na standardu ozna£ená jako IEEE802.3ah prob¥hla v roce 2004 a p°idala jednovidová optická vlákna jako dal²í dv¥ moºné varianty fyzické vrstvy (1000BASE-LX10 a 1000BASE-BX10). P°estoºe v IP kamerách a osobních po£íta£ích zaºívá Gigabit Ethernet rozmach práv¥ nyní (2013), od ratikace standardu IEEE 802.3an v roce 2006, který denuje 10Gb/s Ethernet s pouºitím UTP kabelu, za£íná být, zejména v oblasti vysoce výkonných sítí, nahrazován GbE touto rychlej²í variantou. [9, 10]
3.1.2
GigE Vision
GigE Vision
je globální standard pro komunikaci s IP kamerami, vyvíjený
n¥kolika p°edními výrobci kamer, pod patronací AIA (Automated Imaging Association - Asociace pro automatizované zobrazování), která na vývoj standardu dohlíºí a spravuje ho. Vznikl s cílem denovat standard rozhraní, jeº by sjednotilo protokoly, pouºívané pro pr·myslové kamery a tím umoºnilo t°etím stranám jednodu²²í vývoj hardwaru i softwaru pro v²echny výrobce kamer a p°íslu²enství, sdruºené v AIA.[11]
Obrázek 6: Logo GigE Vision
Na fyzické vrstvé (dle modelu ISO/OSI) staví Gige Vision na standardním Gigabit Ethernetu, na sí´ové potom na Internet Protokolu (
IP,
odtud IP
kamery), konkrétn¥ protokolu UDP/IP (User Datagram Protocol), který je
14
sice mén¥ spolehlivý neº p°íbuzný TCP/IP, má ale men²í reºii a tudíº v¥t²í propustnost[9], £ímº se pro p°enos nekomprimovaných obrázk· p°i vysokých frekvencích hodí více. Pro sníºení nespolehlivosti UDP zavádí GigE Vision dva protokoly, které tvo°í základní stavební kameny celého rozhraní:[12]
Gige Vision Control Protocol (GVCP)
GVCP je protokol aplika£ní
vrstvy, beºící nad UDP protokolem. Krom¥ jiného zavádí mechanismy, které mají zvy²ovat spolehlivost UDP, jeho hlavní funkcí je ale °ízení a kongurace GigE za°ízení. Pro tento ú£el vytvá°í jeden £i více tzv. kontrolních kanál·, z nichº kaºdý je dále rozd¥len na primární a sekundární kanál. Pomocí primárního kanálu lze do kongura£ních registr· za°ízení £íst i zapisovat, pomocí sekundárního jsou registry pouze ke £tení.
Gige Vision Streaming Protocol (GVSP)
GVSP je také protokolem
aplika£ní vrstvy, zaloºeném na UDP. Stará se p°edev²ím o transport obrazových dat a informací. Dále se snaºí o minimalizaci reºie datového toku. Mimo GVCP a GVSP standard Gige Vision obsahuje je²t¥ dva hlavní elementy a to
GigE Device Discovery Mechanism
Poskytuje moºnost vyslat do sít¥
broadcast a jako odpov¥¤ získat IP adresy a typ nalezených GigE za°ízení.
XML soubor s kongurací
XML soubor, ozna£ovaný také jako deskrip-
torový soubor obsahuje popis a hodnoty registr· v²ech funkcí a nastavitelných parametr·, které za°ízení podporuje. Zárove¬ popisuje datové typy jednotlivých registr· a obsahuje i názvy p°íkaz· (commands ), které je moºné do za°ízení poslat. Názvy jednotlivých registr· se °ídí konvencemi, tak, jak popisuje standard Gen-I-Cam. (viz. níºe )
3.1.3
GenICam
Standard
GenICam
(zkratka pro Generic Interface for Cameras - Obecné
rozhraní pro kamery), vyvinutý Evropskou asociací pro strojové vid¥ní (
EMVA),
poskytuje univerzální programovací rozhraní (API) pro (v¥t²inou pr·myslové) kamery pouºívané zejména pro strojové vid¥ní. [13] U v²ech za°ízení, které podporují GenICam standard tak z hlediska vývoje aplikací jiº nezáleºí na rozhraní (GigE Vision, Camera Link, 1394 DCAM, USB3 Vision, atd.), p°es které je za°ízení p°ipojeno, ani na funkcích, které
15
Obrázek 7: Struktura standardu GigE Vision v modelu ISO/OSI a TCP/IP
implementuje. Zp·sob, jakým se ze softwaru na za°ízení p°istupuje, jak ho nastavit nebo jak mu p°edat p°íkaz k provedení ur£ité £innosti je totiº stále stejný. Pouºití standardu, tedy umoº¬uje nezávisle na hardwaru pouºívat tyto základní sluºby:[14] 1. Kongurace kamery 2. Akvizice snímk· 3. Podpora grackého uºivatelského rozhraní 4. Streaming ne-obrazových dat spole£n¥ s obrazem (histogram, £asová zna£ka, atd.) 5. Vyvolávání událostí (p°i²el snímek, kamera odpojena, ...)
Obrázek 8: Logo standardu GenICam
16
K zaji²t¥ní t¥chto sluºeb obsahuje standard n¥kolik na sob¥ nezávislých modul·. Nejd·leºit¥j²ími jsou
GenApi
Modul, starající se o konguraci registr· kamery pomocí XML sou-
boru s popisem funkcí a vlastností.
SFNC
Zkratka pro Standard Feature Naming Convention. Obsahuje dopo-
ru£ené názvy pro obecné funkce a výrazy, pouºívané v kamerách, jako je
Gain, Shutter, Exposition, atd. Dodrºováním této konvence je zaji²t¥na kompatibilita mezi r·znými modely a výrobci.
GenTL
Standardizovaná transportní vrstva pro zji²´ování dostupných ka-
mer a p°edev²ím pro akvizici jednotlivých obrázk· z kamer a jejich doru£ení do koncové aplikace.
standardu pro kamery s rozhraním Camera Link),
CLProtocol (verze GenCP (obecný ovlá-
dací protokol pro Camera Link) a
(doporu£ené názvy pro
Sou£asná verze standardu navíc obsahuje je²t¥ moduly
GenTL SFNC
funkce transportní vrstvy), které p°idávají podporu GenICam pro jiº zmín¥né rozhraní Camera Link a dále specikují názvosloví, jelikoº ale kamery pouºité v této práci pouºívají rozhraní GigE Vision, nebudu tyto moduly blíºe specikovat.[13]
3.2
3.2.1
Formát výstupu
Streamované bitmapy
Valná v¥t²ina termokamer je v základu schopná streamovat jako výstup bitmapy. U model·, které podporují standard GenICam, proces p°ijetí jednoho snímku vypadá následovn¥: 1. Kamera ohlásí, kolik paket· bude mít dal²í obrazový buer 2. Zahájení p°enosu 3. Obsah paket·, tj. hodnoty konkrétních pixel· se za sebou zapisují na ur£ené místo v pam¥ti 4. Kdyº po£et p°ijatých odpovídá po£tu o£ekávaných, je snímek p°enesen 5. GenICam vyvolá událost signalizující p°enesení snímku a nabídne jeho adresu v pam¥ti 6. Zpracování snímku
17
monochromatická hodnota. V p°ípad¥ osmibitových pixel· je moºné z p°ijatých dat okamºit¥
Kaºdý pixel je p°ená²en bu¤ jako 8, 14 nebo 16-bitová
rekonstruovat 256-ti barevnou bitmapu, v p°ípad¥ vy²²ích hodnot je pot°eba n¥jakým zp·sobem data na 256 barev interpolovat, pon¥vadº palety pouºívané v termograi mají pouze 256 barev. (O interpolaci konkrétních snímk·
pojednává £ást 5.2.)
3.2.2
MPEG-4 Visual, H.264
V aplikacích, kde se neo£ekává, ºe se p°ijaté snímky zpracovávají v reálném £ase (nap°íklad bezpe£nostní kamery se záznamem na pam¥´ová média), nabízí termokamery také komprimované formáty výstupu. Tím se do procesu
enkodéru) nejd°íve raw (tj.
p°enosu dat p°idávají dal²í dva procesy, a sice komprese (pomocí
dekodér),
a (na stran¥ p°ijíma£e) dekomprese (
které
surové ) video s vysokým datovým tokem p°evedou na formát vhodný pro p°enos £i ukládání a na druhé stran¥ (p°i prohlíºení na displeji, £i p°ehrávání z pam¥´ového média) je toto video pomocí dekodéru op¥t rekonstruováno. Komprese sice klade na celý systém v¥t²í hardwarové nároky, z hlediska kapacity pam¥tí £i úloºi²´ se ale stále jedná o jedinou moºnost, jak uchovat video ve vysoké kvalit¥. V raw formátu se totiº p°i rozli²ení 640x480 px, bitové hloubce 16 bit· a obnovovací frekvenci 60 Hz vejde na jeden disk DVD pouze
4, 38 · 10243 kapacita DV D [B] = ≈ 127 s datov y´ tok [Bps] (640 · 480) · 2 · 60 V takovýchto aplikacích se lze u termokamer setkat zejména se standardy MPEG-4 Visual a H.264. Technicky vzato, oba dva jsou pouze rozdílným pohledem a rozdílnou implementací téhoº, protoºe jsou oba sou£ástí rozsáhlého multimediálního standardu MPEG-4, který v roce 1998 vytvo°ila skupina Moving Picture Experts Group (MPEG). Sou£ástí specikace je krom¥ kódování obrazu také kódování zvuku, rendering 3D objekt· £i kódování práv k uºívání (známé jako DRM). ásti tohoto standardu zabývající se kódováním videa jsou práv¥ ISO/EIC 14496/Part 2 (MPEG-4 Visual) a H.264/ISO/EIC 14496/Part 10 (H.264). [15]
MPEG-4 Visual/MPEG-4 Part 2
je technologie pro kódování audiovi-
zuálních dat, poprvé p°edstavená v roce 1999 skupinou MPEG. Mezi nejzajímav¥j²í funkce tohoto formátu pat°í jeho moºnosti interaktivity. MPEG-4 se totiº snaºí p°ekro£it paradigma videa jako obdélníku a dovoluje £lenit video na vrstvy, které mohou obsahovat r·zn¥ tvarované objekty, fotbalovým mí£em po£ínaje a kosmickou lodí kon£e. Dá se tak p°edpokládat, ºe s bu-
18
doucím rozvojem formátu budeme s t¥mito objekty moci n¥jakým zp·sobem interagovat, namísto pasivního sledování.[16] Implementacemi tohoto standardu jsou nap°íklad sv¥tov¥ roz²í°ené kodeky
DivX, Xvid a QuickTime, které je moºno nalézt dnes uº prakticky ve
v²ech DVD p°ehráva£ích a jsou také velmi oblíbené p°i ukládání celove£erních lm· v DVD kvalit¥ na oby£ejné disky CD.
H.264/MPEG-4 Part 10 (AVC)
je v sou£asnosti jeden z nejpouºíva-
n¥j²ích formát· pro práci s videem. První verze standardu byla p°edstavena skupinou JVT (Joint Video Team, sloºený z expert· MPEG a VEG - Video Coding Experts Group) v roce 2003. Hlavním cílem H.264 je vylep²it robustnost, spolehlivost a efektivitu p°edchozích standard·[15] a klade d·raz na p°enos co nejkvalitn¥j²ího videa p°i zachování nízkého datového toku, £ímº je velmi atraktivním formátem pro streamované video, jak to dokazuje jeho pouºití na stránkách jako
YouTube, Vimeo nebo iTunes Store.
Mezi dal²í významné aplikace pat°í jeho pouºití v Blu-ray discích a p°ehráva£ích a dále jako formát videa pro n¥které specikace HDTV digitální televize. H.264 je navíc otev°eným standardem s voln¥ dostupnou specikací, umoº¬ující kaºdému implementovat své vlastní softwarové °e²ení.[17]
19
.
20
4
Komunikace s kamerou
4.1
Softwarové nástroje pro GigE Vision
Jelikoº sou£ástí standard· GigE Vision ani GenICam není jejich softwarová implementace, jako první krok vývoje bylo nutné takovou implementaci vyhledat. P°estoºe první verze standardu GenICam vy²la v roce 2006 [13], existujících implementací tohoto standardu je stále spí²e poskrovnu. Vzhledem k tomu, ºe vyvinutý systém nepo£ítá s jiným rozhraním (pro p°ipojení kamer) neº GigE, v úvahu p°icházelo i pouºití n¥jaké implementace GigE Vision, nicmén¥ ani tak se mnoºina dostupných °e²ení p°íli² neroz²í°ila. Pro vývoj softwaru, pracujícího s IP kamerami na bázi GigE Vision, jsou v sou£asné dob¥ dostupné tyto moºnosti: 1. Referen£ní implementace standardu GenICam 2. Pleora eBUS SDK 3. NI Labview v kombinaci s pluginem Vision Development Module 4. JAI SDK 5. A&B Software Active GigE Dal²ím bodem v seznamu by m¥la být dále moºnost vlastní implementace, tak, jak to popisuje standard GenICam. Byla by to jist¥ zajímavá úloha, nicmén¥ její sloºitost vydá na mnohem více, neº jednu bakalá°skou práci, proto ji zde neuvádím. Krom¥ uvedených je také k dispozici n¥kolik
SDK
(Software Development Kit), vydaných p°ímo jednotlivými výrobci GigE Vision kamer, tyto ale podporují pouze modely konkrétního výrobce a pro navrºený systém tedy nep°icházely v úvahu.
4.1.1
Referen£ní implementace standardu GenICam
Referen£ní implementace standardu GenICam je voln¥ dostupná pod licencí
4
podobnou BSD , tedy jednou z nejsvobodn¥j²ích licencí. V zásad¥ je tedy moºné tuto implementaci pouºít voln¥ i pro komer£ní ú£ely, je nutné jen uvést jméno autora, informace o licenci a z°íci se odpov¥dnosti za p°ípadné ²kody, podle klauzule software je poskytován tak, jak je .[18] Jedná se v²ak o referen£ní implementaci, která je spí²e neº pro opravdové pouºití mín¥na jako p°íklad, jak by m¥l software pro GenICam vypadat, tudíº se p°edpokládá hluboká znalost standardu a chybí tak tutoriály, na kterých by mohl
4 Berkeley
Software Distribution 21
implementátor, jeº nechce jít p°íli² do hloubky, stav¥t. Na rozdíl od navrºeného softwaru, který je postaven na C# je celá referen£ní implementace je psána v jazyce C++, a p°estoºe interoperabilita mezi t¥mito jazyky není na ²patné úrovni, pouºitím této metody by se zbyte£n¥ sníºila p°ehlednost kódu.
4.1.2
Pleora eBUS SDK
Pleora Technologies je jednou z rem, které spoluzakládaly standard GigE Vision a aktivn¥ se podílí i na vývoji standardu GenICam. Její SDK, dostupné pro jak pro C++ tak pro C# .NET a VB .Net se tak vyzna£uje kvalitní dokumentací, jednoduchým pouºitím a slu²ným po£tem p°íklad· pouºití, v£etn¥ ukázkové aplikace. Krom¥ samotného SDK, kompatibilního jak s GigE Vision tak i GenICam, v sob¥ balík obsahuje také
Pro Driver,
eBUS Universal
ovlada£ pro sí´ovou kartu po£íta£e, který sniºuje zát¥º CPU
p°i akvizici snímk· z kamery. Pouºití SDK pro kamery, které jsou postaveny na technologiích rmy Pleora (mezi n¥º pat°í i kamery FLIR), je zdarma. Bohuºel, p°i poºadavku na univerzálnost systému je jiº nutné zakoupit licenci, jelikoº obraz p°i p°íjmu vysílání z kamer t°etích stran p°ekrývá vodoznak. Navíc je zakoupení licence nutné pro kaºdý sí´ový adaptér, který bude chtít snímky p°ijímat, tzn. p°i prodeji navrºeného systému by bylo nutné do ceny promítnout i cenu licence, jeº by se musela dodávat ke kaºdé kopii.[19] P°i zku²ební implementaci se také ukázala velmi malá kompatibilita s cílovými po£íta£i, kdy se na 75% testovacích po£íta£· (6 z 8) nepoda°ilo p°ipojit ke kame°e, a to ani po konzultaci s technickou podporou rmy Pleora. Z tohoto d·vodu jsem byl nucen od p·vodn¥ plánovaného pouºití tohoto SDK upustit.
4.1.3
NI Labview + Vision Development Module
Subjektivn¥ nejjednodu²²í je práce s kamerami v prost°edí Labview rmy National Instruments, v kombinaci s pluginem Vision Development Module
VDM).
(
Vývojá° se jednak nemusí starat o broadcast do sít¥ a hledání
dostupných za°ízení a z hlediska vytvo°eného kódu dokonce ani nezáleºí, jestli je kamera p°ipojena p°es Ethernet £i p°es USB nebo jakékoliv jiné rozhraní. Navíc se, na rozdíl od p°edchozích dvou moºností, nemusí p°i p°ipojení provád¥t ºádné vedlej²í úkony, jako nastavení IP adresy £i otev°ení streamu mezi kamerou a po£íta£em, v²echno je pohodln¥ ukryto v n¥kolika blocích, díky kterým lze sledovat ºivé video z kamery b¥hem n¥kolika minut. Labview také zejména vyniká p°i analýze obrazu, p°evád¥ní bitmap do pole a zp¥t, £i p°i vykreslování graf·, kde je aº o n¥kolik desítek procent rychlej²í neº ostatní,
22
zde p°edstavované nástroje, coº vedlo k úvahám vytvo°it v Labview knihovnu pro p°íjem a zpracování obrazu a tu pak volat z prost°edí C#, které by se pomocí
WPF
(Windows Presentation Foundation) staralo pouze o prezentaci
informací a vykreslování uºivatelského rozhraní.
Obrázek 9: P°ipojení kamery a zobrazení videa v LabView
Cena licence Labview ve verzi Professional, která umoº¬uje kompilaci .dll soubor·, je podle aktuálního ceníku 99 960 K£[20], cena VDM je pak 74 715 K£. Pro kaºdou kopii softwaru je nutné zakoupit je²t¥ Run-Time licenci pro VDM, která obsahuje virtuální stroj pro provád¥ní algoritm·, ve VDM obsaºených. Tato Run-Time licence je spole£ností NI cen¥na na 8 466 K£ za kus.[21] Po zváºení vý²e uvedených informací jsem dosp¥l k záv¥ru, ºe vývoj v Labview je vhodný spí²e pro velké projekty na míru, jelikoº p°i t¥chto licen£ních podmínkách by cena navrhovaného softwarového systému stoupla na vý²i neúnosnou jak pro vývojá°e, tak pro potenciálního zákazníka.
4.1.4
JAI SDK
JAI je výrobce kamer, specializující se p°edev²ím na strojové vid¥ní, dopravní a bezpe£nostní kamery a v sou£asné dob¥ se také podílí na tvorb¥ standardu GenICam. GigE Vision a GenICam kompatibilní JAI SDK, které je k dispozici jak pro C++ tak pro C#, obsahuje krom¥ knihoven navíc také
Driver,
Filter
ovlada£ pro sí´ový adaptér, který rozpoznává a urychluje p°enos
GigE paket· a
Control Tool,
jeº umoº¬uje nastavit v²echny parametry
kompatibilních kamer, £i spustit akvizici. SDK je poskytováno bezplatn¥ jako freeware pro v²echny typy kamer, obsahuje 25 p°íklad· pouºití, pokrývajících tém¥° v²echny moºné aplikace, a také kompletní ²est set stránkovou dokumentaci s popisem v²ech metod a t°íd.
23
4.1.5
A&B Software Active GigE
Active GigE je nejpropracovan¥j²ím z p°edstavovaných nástroj·, obsahující v základu velké mnoºství funkcí, které byly pot°eba v navrºeném systému implementovat, nap°íklad p°ímý p°ístup k hodnotám jednotlivých pixel·, podpora paralelního p°enosu jiº v základu, automatický p°evod p°ijatých obrazových buer· na bitmapy, nahrávání videí a podobn¥. Má také nej²ír²í záb¥r, co se programovacích prost°edí tý£e: Visual Studio, Visual Basic, Delphi, PowerBuilder, Java, Matlab, Python a dokonce také umoº¬uje vloºit objekt ActiveGigE do Wordu £i PowerPointu a zobrazovat video z kamer v takto vytvo°ených dokumentech. Samoz°ejmostí je rozsáhlá dokumentace a ukázkové kódy ke v²em funkcím a také jednoduchá aplikace, kde je moºné kamery nastavit a p°ehrávat video. Na stránkách výrobce je také deklarována otestovaná kompatibilita s více neº 200 typy kamer, v£etn¥ kamer FLIR, pouºitých v této práci.[22]
5
Licence Active GigE pro jednoho vývojá°e p°ijde na $495 (9 680 K£ ), coº není mnoho, obzvlá²t¥ s p°ihlédnutím k tomu, kolik funkcí je v balíku obsaºeno uº od základu a cena za software je porovnatelná, ne-li niº²í, neº cena práce pot°ebné na vývoj pot°ebných funkcí svépomocí. Ke kaºdé kopii softwaru postaveného na tomto SDK je ale op¥t nutné koupit run-time licenci, která samostatn¥ stojí $95 (1 857 K£), nebo v balíku po deseti $750 (14 666 K£).
4.2
JAI SDK: Základní kámen systému
Po zváºení v²ech moºných °e²ení, uvedených v kapitole 4.1 jsem se rozhodl pro SDK od rmy JAI, zejména proto, ºe je univerzální, je zdarma, je moºné ho pouºít v .NET prost°edí a poskytuje dostate£né mnoºství dokumentace k tomu, aby i programátor bez p°edchozích zku²eností na tomto poli mohl dosáhnout vyty£ených poºadavk·.
4.2.1
Struktura SDK
Na obrázku 10 je zobrazena základní struktura JAI SDK. Hlavní modul, nazvaný
Factory,
je vstupním bodem pro jakoukoliv funkcionalitu celého
SDK a volání ostatních funkcí. Pro komunikaci s kamerami je tedy nejd°íve nutné vytvo°it instanci t°ídy Factory a tu pak inicializovat voláním funkce
Open(). Poté, co je Factory úsp¥²n¥ inicializována, je moºné pomocí modulu Práce
se za°ízeními ( Device 5 Ceny
Discovery )
hledat kompatibilní za°ízení v síti. Hle-
v korunách jsou uvád¥ny podle st°edního kurzu NB ze dne 3.5.2013 24
Camera, které je moºné voláním funkce ovládací kanál, skrze který lze získat p°ístup vlastností GenICam a do registr·. Hlavn¥ ale m·ºeme
dání vrací seznam objekt· typu
Open() p°ipojit a vytvo°it tak ke v²em uzl·m
p°istupovat k ovládání datového kanálu za°ízení, prost°ednictvím n¥hoº pak m·ºeme spustit zachytávání snímk·. To se d¥je bu¤ automaticky, kde kontrolu
datového kanálu
zaji²´uje samo SDK, nebo manuálním vytvo°ením
datového proudu a vlastní implementací vlákna k akvizici snímk·. T¥mito zp·soby je moºné p°enést snímky z kamery do aplikace a poté pouºít funkce z modul· na pravé stran¥ schématu ke zpracování p°ijatého obrazu.
Obrázek 10: Schéma struktury JAI SDK
25
4.2.2
Vyhledání za°ízení
Po zapnutí jakéhokoliv GigE za°ízení se toto za°ízení nejd°íve musí pokusit získat IP adresu. K získání IP adresy m·ºe za°ízení vyuºít n¥kolika r·zných zp·sob·, které prochází (od zapnutí) v tomto po°adí [24]: 1. Pevn¥ nastavená adresa V p°ípad¥, ºe má za°ízení v registrech nastaveno pouºití pevné IP adresy a tuto adresu, p°i°adí si ji samo a tím je proces ukon£en. Samoz°ejm¥, pokud tato IP adresa nesedí do masky podsít¥, ve které se za°ízení nachází, není moºné jej p°ipojit a pracovat s ním a je nutné nastavenou IP adresu zm¥nit. 2. DHCP server Pokud za°ízení nemá IP adresu pevn¥ nastavenu, hledá v síti DHCP server a o adresu poºádá. U kamer FLIR °ady Ax5 se, pokud v síti DHCP server není p°ítomen, stává DHCP serverem sama kamera a není tudíº nutné o²et°it p°i°azení IP adresy softwarov¥, jako v prvním £i t°etím p°ípad¥. 3. Link-Local adresa Pokud první dv¥ metody neusp¥jí, za°ízení si samo p°i°adí adresu ve tvaru 169.254.x.x, kde x.x jsou první dv¥ neobsazená £ísla v síti, která kamera na²la.
Obrázek 11: Proces hledání za°ízení
26
Protoºe GigE za°ízení mohou být do sít¥ p°ipojena kdykoliv, je nutné n¥jakým zp·sobem na tyto zm¥ny reektovat. V p°ípad¥ JAI SDK se to d¥je voláním funkce UpdateCameraList(), která, tak jak je uvedeno v diagramu vý²e, vysílá do v²ech sítí, na které je po£íta£ p°ipojen (tj. p°es v²echna sí´ová za°ízení) broadcast, na který kamery odpovídají práv¥ svou IP adresou a dávají tak informaci o tom, ºe jsou dostupné. Krom¥ IP adresy se v potvrzení posílá také jméno za°ízení, MAC (fyzická) adresa, sériové £íslo, výrobce a typ (model) za°ízení. Tyto parametry jsou pak také viditelné ve vyvinuté aplikaci a jednozna£n¥ ur£ují kameru tak, aby bylo moºné se na konkrétní kameru p°ipojit.
4.2.3
P°ipojení kamery
Po obdrºení seznamu dostupných kamer se p°ipojení kamery d¥je prostým voláním SDK funkce Open(). Z hlediska aplikace je ale nutné zabezpe£it mnohem více úkon· neº pouhé propojení aplikace a za°ízení, proto je v aplikaci zavedena obalovací t°ída Camera, která v sob¥ obsahuje instanci SDK objektu nalezené kamery a mimo jiných svou vlastní funkci Connect(), jejíº hlavní úkoly jsou následující: 1. Volání API funkce Open(). 2. Kontrola návratové hodnoty: V p°ípad¥, ºe se kameru nepovede p°ipojit, nej£ast¥ji proto, ºe je jiº p°ipojen jiný po£íta£, je nutné tuto skute£nost n¥jakým zp·sobem zpracovat (vyjímka, dialogové okno, restart komunikace,...) 3. V p°ípad¥ úsp¥²ného spojení volá funkce pro konguraci a zji²t¥ní kongurace kamery (nap°. rozli²ení). 4. Odeslání výsledku operace (nap°. pro GUI - výpis do Logu atd.)
4.2.4
Kongurace funk£ních vlastností GenICam
Z hlediska termograckých m¥°ení a pouºití v navrºeném softwarovém systému je klí£ové nastavení t¥chto parametr·:
PixelFormat
Denuje bitovou hloubku výsledného termogramu, tedy vlastn¥
kolik informace ponese kaºdý pixel v obraze. Nej£ast¥j²ími hodnotami jsou u termokamer 8,14 nebo 16-ti bitové monochromatické termogramy. Kv·li odli²nému zp·sobu p°epo£tu hodnoty pixelu na teplotu
27
nastavuji v programu 14-bit pro °adu FLIR Ax5 a 16-bit pro °adu FLIR Ax15.
DigitalOutput
Denuje výstupní formát hodnot, datový typ, kterým ka-
mera bude jednotlivé pixely odesílat. Je moºné mít nastaven formát pixel· jako 16-ti bitový, ale pokud je v tomto parametru 8-bit·, hodnota se o°ízne a ode²le se místo dvou pouze jeden byte. Pro správnou funkci systému by tedy m¥la být hodnota nastavena stejn¥ jako u vlastnosti PixelFormat.
FrameRate
Snímkovací frekvenci je nutné nastavovat, pokud by mohlo do-
jít k p°etíºení linky (nap°íklad p°i p°ipojení v¥t²ího po£tu kamer) £i po£íta£e (p°i velkém po£tu spu²t¥ných analyza£ních nástroj·). N¥kdy je vlastnost FrameRate nahrazena vlastostí
GrbCh0TrigCfgFrameToSkip,
která místo frekvence ur£uje, kolik snímk· p°i odesílání p°esko£it. V základu je pouºito 25 Hz, nezávisle na typu kamery.
SensorGainMode
U kamer FLIR °ady Ax5 tato vlastnost slouºí k p°epí-
nání rozsah·. Tj. p°i HighGainMode, vysoké citlivosti senzoru, m¥°íme men²í teplotní rozp¥tí s v¥t²í p°esností, u LowGainMode je tomu naopak. U °ady Ax15 je tento parametr nahrazen parametrem
Case,
kde
je moºno vybírat ze t°i rozsah· m¥°ení.
ObjectEmissivity
Nejd·leºit¥j²í parametr pro p°esné termogracké m¥-
°ení. Více o významu emisivity pojednává kapitola 2.2. Implicitn¥ je nastavena na 0.95, coº orienta£n¥ vyhovuje pro zobrazení velké £ásti nelesklých povrch·.
ReectedTemperature
Nastavení tohoto parametru má za cíl sníºit vliv
odrazu tepelného zá°ení z okolních p°edm¥t· na detektor kamery. Implicitn¥ je nastaveno na 20°C (293,15 K).
EstimatedTransmision
Odhadnutá hodnota p°enosu tepelného zá°ení at-
mosférou (od 0 do 1). Nepo£ítá s m¥°ením na velké vzdálenosti a tím pádem velkým útlumem, takºe nastavuji na 1.
RelativeHumidity
Relativní atmosférická vlhkost v procentech.
AtmosphericTemperature
Teplota okolí [K], implicitn¥ 20 °C (293,15 K).
V¥t²ina z nich musí mít pro pouºití v programu p°edem danou hodnotu, a proto je nutné tyto parametry na implicitní hodnoty nastavovat hned p°i p°ipojení kamery.
28
Kamery ale samoz°ejm¥ obsahují mnohem v¥t²í mnoºinu nastavitelných parametr· a tak je v programu moºné jak jejich kompletní zobrazení, tak jejich kompletní nastavení. Ostatn¥, je to jedna z p°edností standard· GenICam a GigE Vision - kaºdá kamera má v²echny své funkce p°ehledn¥ sepsané v XML souboru, který zárove¬ denuje strom, ve kterém jsou v²echny tyto funkce uspo°ádány. Jejich vy£tení se provede pomocí prohledání celého stromu do hloubky, pouºitím následujícího kódu:
Algoritmus 1 Rekurzivní
vy£tení stromu funkcí a vlastností
private List<SettingsNode> CreateNodeTree(CCamera c, string p) { List
features = c.GetSubFeatures(p); List<SettingsNode> childNodes = new List<SettingsNode> (); int index = 0; foreach (CNode n in features) { if ( n.Visibility.CompareTo (selectedVisibilityLevel) > 0 || n.NodeType == Jai_FactoryWrapper.EConfNodeType.ICommand ) { continue; } if (n.NodeType == Jai_FactoryWrapper.EConfNodeType.ICategory) { childNodes.Add(new SettingsNode ()); childNodes [index].Item = n; childNodes [index].Children = CreateNodeTree(c, n.Name); } else { childNodes.Add (new SettingsNode () { Item = n }); } index++; } return childNodes; }
Na po£átku se funkci p°edá objekt Camera z JAI SDK a ko°en celého stromu, uzel
Root.
Na prvním °ádku funkce se vy£tou v²echny jeho pod-uzly, ty
se pak prochází jeden po druhém a jsou vy°azeny, pokud to nejsou vlastnosti, ale p°íkazy, nebo pokud neodpovídají nastavené odbornosti vý£tu (dá
29
se zvolit mezi Za£áte£ník - zobrazí pouze základní nastavení, Expert a Guru - zobrazí v²echny nastavitelné parametry). V p°ípad¥, ºe pod-uzlem není list stromu, rekurzivn¥ se op¥t volá funkce CreateNodeTree() a celý proces se opakuje. T¥chto pod-úrovní bývá oby£ejn¥ maximáln¥ p¥t, takºe není pot°eba se obávat o uváznutí rekurze. Pro ú£ely nastavování má kaºdý uzel stromu vlastnost, denující jeho datový typ. Základními a nej£ast¥j²ími nastavitelnými datovými typy v rámci GenICam jsou
6
[25]:
IBoolean Booleovská hodnota, k nastavování je v GUI pouºit CheckBox. IEnumeration Hodnota typu Enum, k nastavování je v GUI pouºit ComboBox.
IFloat íslo s plovoucí desetinnou £árkou. IInteger 64-bitové celé £íslo (Long) IStringReg Registr obsahující jako hodnotu textový °et¥zec. Dále kaºdý uzel denuje mód p°ístupu, zp·sobem podle tabulky
tení Zápis Implementováno
7
[13]
P°ístup
*
*
0
NI - Neimplementováno
0
0
1
NA - Nedostupné
1
0
1
WO - Pouze £tení
0
1
1
RO - Pouze zápis
1
1
1
RW - Plný p°ístup
Tabulka 6: P°ístupová práva k uzl·m GenICam[13]
Celý strom je tak vyltrován na implementované dostupné hodnoty vý²e uvedených datových typ· a zobrazen. Nalezené zapisovatelné uzly jsou pak nabídnuty uºivateli k nastavení.
6 Krom¥
vý²e uvedených specikace GenICam obsahuje navíc dal²ích 25 typ· uzl·, ty ale pro popis kongurace nejsou d·leºité 7 1 = Ano, 0 = Ne, * = Nezáleºí
30
5
Zpracování a interpretace m¥°ených dat
5.1
5.1.1
Navrºené softwarové °e²ení
Úvod
Program, který je t¥ºi²t¥m této práce jsem podle zadání implementoval v jazyce C# a to v prost°edí Visual Studio 2012. Návrh a úpravy gracké vrstvy, implementované ve
WPF
(Windows Presentation Foundation) programu
jsem potom provád¥l v nástroji Microsoft Expression Blend 4. Pro n¥které ovládací prvky jako grafy, tla£ítka, panely a seznamy byly pouºity knihovny
RadControls for WPF od spole£nosti Telerik. Program, jehoº spu²t¥ní je chrán¥no uºivatelským jménem a heslem, je podle práv uºivatele moºné spustit v operátorském, £i administrátorském reºimu. Zatímco operátorský mód umoº¬uje pouze sledovat snímky z jiº b¥ºících kamer a m¥°it v nich, v administrátorském reºimu se uºivateli otevírají v²echny funkce programu. Nejd·leºit¥j²í funkcí je samoz°ejm¥ sou£asné p°i-
8
pojení n¥kolika
kamer a spu²t¥ní zachytávání snímk·. Na t¥chto kamerách
lze poté nastavit r·zné pracovní oblasti a v nich specikovat poºadavky na teplotu a její zm¥ny, pomocí tzv.
alarm·.
Program pak uºivatele p°i p°e-
kro£ení nastavených hodnot informuje jak vizuáln¥, tak zápisem do souboru. Moºné je i logování na FTP, £i zasílání p°epis· z logu na zvolenou e-mailovou adresu. Systém umoº¬uje i propojení s externími za°ízeními pomocí digitálních výstup· podporovaných termokamer. Krom¥ t¥chto funkcí program umoº¬uje samoz°ejm¥ i oby£ejné m¥°ení teploty a to bu¤ v celém obraze, v bod¥, úse£ce, obdélníku £i elipse. K dispozici dává krom¥ aktuálních hodnot také maximální, minimální a pr·m¥rné hodnoty v oblastech a historii t¥chto hodnot si lze pro v²echny kamery prohlíºet v grafech. Krom¥ termokamer lze p°ipojit i jakoukoliv jinou kameru s rozhraním GigE Vision, podporující standard GenICam, v takovém p°ípad¥ jsou ale m¥°icí funkce nep°ístupné. Co se tý£e uºivatelského rozhraní, je program tvo°en hlavním oknem, obsahujícím p°izp·sobitelné, skrývatelné panely s jednotlivými funkcemi. Díky tomuto uspo°ádání tak má uºivatel nad vzhledem programu úplnou kontrolu a m·ºe si layout celého prost°edí p°izp·sobit své konkrétní aplikaci.
8 Záleºí
na po£tu kamer, který je uveden v licenci k programu. Trial verze umoº¬uje p°ipojení dvou kamer sou£asn¥
31
5.1.2
Architektura programu
P°i vývoji objektového návrhu aplikace byl kladen nejv¥t²í d·raz na dvouvrstvost programu. Jednotlivé t°ídy tedy byly rozd¥leny do dvou skupin: 1. GUI - tj. front-end t°ídy. Tyto t°ídy se jsou tak °íkajíc hloupé, pouze p°ijímají data, která nijak neinterpretují ani nep°epo£ítávají, jen je zobrazují a umoº¬ují uºivateli s aplikací interagovat. V²echny GUI t°ídy b¥ºí na jediném vlákn¥, které se ve WPF jmenuje
Dispatcher
a jaké-
koliv operace v nich tudíº probíhají synchronn¥. 2. Back-end t°ídy. Tyto se naopak starají pouze o sb¥r a zpracování dat, jejich uchovávání a vyvolávání. Pro zpracování dat v¥t²ina t°íd vytvá°í své vlastní vlákno a volání metod je tak ve valné v¥t²in¥ p°ípad· asynchronní.
Obrázek 12: Uspo°ádání jednotlivých funk£ních celk· v navrºeném programu
Uvedené dv¥ £ásti programu spolu neustále komunikují a jakákoliv akce v programu tak probíhá následujícím zp·sobem:
32
1. Uºivatel interaguje s uºivatelským rozhraním (nap°. klikne na P°ipojit
kameru ). 2. GUI posílá poºadavek na back-end t°ídu ur£enou k obsluze kamer. 3. GUI £eká, zobrazuje indikátor procesu v pozadí 4. T°ída ur£ená k obsluze kamer spustí vlákno, jeº se snaºí p°ipojit kameru. 5. Operace je hotová, kon£ící vlákno p°edává výsledky. 6. Je vyvolána událost, ohla²ující zm¥nu stavu. (nap°. kamera p°ipojena, chyba, atd.) 7. GUI zachytí událost a reaguje p°ekreslením p°íslu²ných prvk·. Na obrázku 12 jsou zobrazeny v²echny funk£ní celky v navrºeném programu. Front-end £ást, tedy ta, se kterou p°ichází do styku uºivatel je nazna£ena obdélníkem s p°eru²ovanou £arou, zbylé t°ídy tvo°í jiº zmín¥ný back-end. ed¥ jsou znázorn¥ny v¥t²í celky, obsahující mnoho t°íd, bíle s £erným rámováním
9
jsou ozna£eny konkrétní objekty .
5.2
Výpo£et teploty a zpracování obrazu
Vºdy, kdyº je na n¥které z kamer vznesen poºadavek k zahájení p°íjmu snímk· z kamery se sou£asn¥ sváºe funkce pro zpracování obrazu s delegátem události NewImage, který je vyvolána vºdy, kdyº do pam¥ti dorazí nový snímek. P°i kaºdé události je vytvo°eno nové vlákno a funkce pro zpracování obrazu je spu²t¥na paraleln¥, £ímº p°i velké zát¥ºi cílového po£íta£e m·ºe vzniknout zpoº¤ování, jeº m·ºe vyústit aº v situaci, kdy je p°íjem snímk· z kamery jiº zastaven, ale obraz se stále obnovuje. Z tohoto d·vodu se p°i p°ijetí snímku zji²´uje, zda-li je p°edchozí snímek jiº zpracován a jsou tedy volné prost°edky pro zpracování dal²ího, v opa£ném p°ípad¥ je nový snímek zahozen. Takto se dynamicky sniºuje obnovovací frekvence kamer p°i vysoké zát¥ºi stroje.
9 Zde
je pro srozumitelnost diagramu pouºita £e²tina, ve skute£ném kódu se jednotlivé objekty mohou jmenovat jinak
33
Obrázek 13: Tok dat p°i zpracování obrazu
P°ijatý snímek je nejd°íve p°eveden na matici teplot a poté na interpolací
10
na bitmapu, která je p°i°azena objektu Camera jako aktuální obraz. GUI
zaznamená zm¥nu snímku a tento je automaticky p°ekreslen. Soub¥ºn¥ s t¥mito operacemi pak v kaºdé instanci typu Camera, b¥ºí £asova£, jeº udává frekvenci analýzy obrazu. Pokaºdé, kdyº interval £asova£e skon£í, jsou teploty v aktuálním snímku analyzovány a poté je vyvolána událost, která uv¥domí alarmy svázané s kamerou o zm¥n¥ dat ze kterých vyhodnocují sv·j stav.
10 Graphic
User Interface - Gracké uºivatelské rozhraní
34
5.2.1
Teplotní matice
Jakkoliv by to bylo pohodlné, výstupní hodnoty signálu v jednotlivých bodech snímku neudávají p°ímo teplotu, ale n¥jaké £íslo, vyjad°ující intenzitu teplotního zá°ení, z n¥hoº se teplota dá ur£it. Zp·sob vypo£tení teploty je pro kaºdého výrobce kamer jiný a li²í se dokonce i v rámci jednotlivých modelových °ad. Proto bylo nutné navrhnout t°ídu Camera jako
t°ídu,
abstraktní
ve které je pro kaºdou derivovanou t°ídu p°edepsaná povinná me-
toda ExtractTemperatures() pro p°evod p°ijatých hodnot na teplotu. Tudíº je nutné pro kaºdou podporovanou °adu kamer vytvo°it vlastní t°ídu, která d¥dí od t°ídy Camera a implementuje tuto metodu, ve které popisuje, jak získat teploty pro tu kterou konkrétní modelovou °adu. Vlastní p°epo£et teploty se d¥je pomocí ukazatele na pam¥´ové místo, které obsahuje pole p°ijatých hodnot signálu v kaºdém bod¥ p°ijatého snímku. Díky znalosti jejich po£tu je pro n¥ alokováno pole, do kterého se v²echny hodnoty p°ekopírují. Pro hodnoty teplot je vytvo°eno je²t¥ jedno pole, stejného rozsahu. Poté se p°es tyto pole iteruje a hodnoty signálu se jedna po druhé p°evád¥jí na teplotní údaje následujícím zp·sobem
U termokamer °ady FLIR Ax5 T =
ln
je vztah pro výpo£et teploty následující
B R +F S−O
[K]
(4)
R,B,F jsou hodnoty vy£tené ze stejnojmenných registr· kamery, S je hodnota signálu v bod¥ a O je absolutní odchylka udávané hodnoty od skute£né.
U termokamer °ady FLIR Ax15
je situace o mnoho jednodu²²í, pon¥-
vadº p°epo£et hodnoty signálu na teplotu je lineární.V závislosti na zvolené citlivosti detektoru - 10 mK £i 100 mK sta£í k p°epo£tu na teplotu v Kelvinech obdrºenou hodnotu vyd¥lit stem, respektive deseti. P°i pr·chodu polem se pr·b¥ºn¥ také analyzuje maximální, minimální a pr·m¥rná teplota v celém snímku. Po pr·chodu celým polem se výsledná °ádková matice (°ádková p°edev²ím proto, ºe to vyºaduje t°ída BitmapSource, zodpov¥dná za p°evod na zobrazitelnou bitmapu) ode²le jako návratová hodnota funkce ExtractTemperatures() a b¥h programu pokra£uje v t°íd¥ Camera, interpolací obrazu.
35
5.2.2
Interpolace obrazu
Zejména proto, ºe se nepoda°ilo najít popis ºádné termogracké 16-ti bitové palety, musel jsem se spokojit se zobrazením v 8-bitech, tudíº 256-ti barvách. Protoºe ale hodnota signálu z kamer nabývá u kamer °ady Ax5 16 384 a u °ady Ax15 dokonce 65 536 r·zných hodnot, je nutné n¥jakým zp·sobem p°i°adit více hodnotám stejnou barvu. V programu na to existují dva p°ístupy
Dynamický rozsah
S vyuºitím hodnot maximální a minimální teploty
ve snímku je vypo£ítáno celkové rozp¥tí teplot. Toto rozp¥tí je vyd¥leno 8 £íslem 2 − 1 = 255, £ímº je dán teplotní interval, který bude znázorn¥n stejnou barvou. Kaºdému bodu v obraze je pak p°i°azeno £íslo od 0(£erná) do 255(bílá), ozna£ující barvu následovn¥
barva=
Pevný rozsah
teplota − teplotamin teplotn´ı interval
Interpolace s pevným rozsahem je analogická jako v p°ed-
chozím p°ípad¥, pouze je pevn¥ dána minimální a maximální zobrazená teplota a tím pádem i pevné rozp¥tí a pevný interval teplot. M·ºe se tak stát, ºe pokud je teplota nerovnom¥rn¥ rozloºena mezi horní a dolní mezí, z·stanou n¥které barvy nevyuºity a naopak, pokud p°ekra£uje jednu z mezí, dojde k saturaci, tj.v²echny teploty nad horní mezí se zobrazí pouze bílou a v²echny teploty pod dolní mezí se zobrazí pouze £ernou barvou.
5.2.3
Analýza pracovních oblastí
Obrázek 14: Procházení obrazu p°i analýze pracovních oblastí
36
Kaºdý objekt typu kamera se krom¥ p°ípravy termogramu stará také o jeho analýzu. To se d¥je díky kontinuáln¥ b¥ºícímu £asova£i, který n¥kolikrát za sekundu (implicitn¥ je interval £asova£e nastaven na 40 ms), zavolá vlákno pro analýzu obrazu, aby provedlo výpo£et teplotních statistik ve v²ech moºných pracovních oblastech.
Algoritmus 2 Procházení
obrazu p°i analýze pracovních oblastí
for (Cy = 0; Cy < Rozli²eníY / V; Cy++) { for (Cx = 0; Cx < Rozli²eníX / V; Cx++) { // Inicializace pr·m¥ru PracovníOblasti[Cx, Cy].Pr·mTeplota = 0; for (y = 0; y < V; y++) { index = Cy*V*Rozli²eníX + Cx*V + y*Rozli²eníX; for (int x = 0; x < V; x++) { if ((x == 0 && y == 0) || Teploty[index] > PracovníOblasti[Cx, Cy].MaxTeplota)
{ }
PracovníOblasti[Cx, Cy].MaxTeplota = Teploty[index];
if ((x == 0 && y == 0) || Teploty [index] < PracovníOblasti[Cx, Cy].MinTeplota )
{ }
PracovníOblasti[Cx, Cy].MinTeplota = Teploty[index];
PracovníOblasti[Cx, Cy].Pr·mTeplota += Teploty[index]; index++; } } // Spo£ítej pr·m¥r PracovníOblasti[Cx, Cy].Pr·mTeplota /= V * V; } } Jelikoº to zadání vyºadovalo, jsou pracovní oblasti, ve kterých se dá podle uºivatelsky zvolených kritérií monitorovat teplota, tvo°eny £tverci 16x16 pixel·, coº je nejmen²í oblast, v jaké lze nastavit parametry pro limity teploty.
37
Kaºdý z t¥chto £tverc· tedy musí mít p°ehled o svých teplotních statistikách, jmenovit¥ minimu, maximu a pr·m¥ru. Vzhledem k tomu, ºe hodnoty teplot jsou uspo°ádány v °ádkové matici (poli), je procházení po jednotlivých £tvercích docela nep°ímo£ará záleºitost, vyºadující £ty°i vno°ené cykly for. Zp·sob procházení pole, znázorn¥ný na obrázku vý²e, je popsán následujícím algoritmem (v pseudo-kódu) Prob¥hnutím vý²e uvedeného algoritmu získáme obdélníkové pole, napln¥né objekty typu CellNotication, uchovávajícími mimo jiné minimální, maximální a pr·m¥rnou teplotu v daném £tverci. Následn¥ je vyvolána událost Recalculated, na kterou jsou navázány alarmy, p°íslu²né ke kame°e. (Viz.
následující kapitola)
5.3
Alarmy
Alarmy, neboli teplotní limity jsou základním a klí£ovým nástrojem celého systému. Kaºdý alarm je denován alarmovou a varovnou teplotou, nebo alarmovým a varovným r·stem teploty, a to v ur£ité pracovní oblasti (která se ur£í výb¥rem libovolného po£tu £tverc·, na které je obraz rozd¥len - viz. kapitola 5.2.3) nad konkrétní kamerou. Je také moºné navolit zpoºd¥ní p°ed vyvoláním alarmu (nap°. z d·vodu ltrace krátkodobých ²um·). Byly navrºeny £ty°i typy alarm·:
Teplota nad Alarm s jasn¥ denovanou hodnotou, která nemá být v ur£ené pracovní oblasti p°ekro£ena.
Teplota pod Alarm s jasn¥ denovanou hodnotou, která nemá být v ur£ené pracovní oblasti podkro£ena.
R·st teploty Alarm je vyvolán, pokud teplota roste rychleji, neº nastavená hodnota. (v
°C/s,°C/min
nebo °C/h)
Pokles teploty Alarm je vyvolán, pokud teplota klesá rychleji, neº nastavená hodnota. (v °C/s,°C/min nebo °C/h) Pro kaºdý typ alarmu je implementována speciální t°ída. V²echny tyto t°ídy pak d¥dí od nad°azené abstraktní t°ídy, která sdruºuje jejich spole£né vlastnosti (nap°. zpoºd¥ní vyvolání alarmu, jméno, atd.) a p°edepisuje formát funkcí, které musí kaºdá z t¥chto t°íd implementovat. Jednoduchý diagram t°íd je zobrazen na obrázku 15.
38
Obrázek 15: Diagram t°íd pro implementaci alarm·
Zpracování alarmu pokaºdé za£íná vyvoláním události Recalculated v kame°e, jejíº teploty alarm sleduje. Pokud není aktuáln¥ zaneprázdn¥no, spustí instance t°ídy Alarm vlákno, zodpov¥dné za kontrolu p°ípadného p°ekro£ení nastavených hodnot. Po prob¥hnutí výpo£tu vlákno p°edává zp¥t výsledky, tj. jestli je vyvolán alarm nebo varování, a pokud ano, v jakém £tverci pracovní oblasti a aktuální hodnotu teploty v tomto £tverci. Poté, co v²echny alarmy, p°íslu²né ke kame°e, zareagují na událost Recalculated a vrátí zp¥t výsledky, t°ída Camera je po²le ke zpracování a vykreslení do GUI, kde se £tverce s aktivovaným alarmem vybarví £erven¥ a £tverce s aktivovaným varováním oranºov¥
5.3.1
11
.
Alarmy s denovanou hodnotou
Implementace alrm· typu Teplota nad a Teplota pod je, jak jiº název napovídá, velmi p°ímo£ará. P°i zpracování se projde seznam v²ech £tverc· z obrazu, které jsou s alarmem asociovány, a aktuální maximální teplota (resp. minimální teplota pro alarm typu Teplota pod) se porovná s denovanými hodnotami.
5.3.2
Dynamické alarmy
V p°ípad¥ dynamických alarm· je klí£ovým parametrem rychlost zm¥ny teploty, coº svádí k pouºití derivace, jako rozdílu dvou £asov¥ velmi blízkých nam¥°ených hodnot (m¥°í se implicitn¥ s frekvencí 25 Hz, tudíº rozdíl dvou vzork· je 40 ms). Vzhledem k tomu, ºe je v obraze p°ítomný nezanedbatelný ²um v²ak pouºití takto denované rychlosti zm¥ny teploty není p°íli² vhodné, pon¥vadº takto získaný údaj by neustále se m¥nil £ast¥ji, neº by z n¥j bylo moºné n¥co vy£íst a jeho vypovídající hodnota by tak v del²ích £asových intervalech (mám na mysli °ád sekund a vý²e) byla nulová.
11 Záleºí
na nastavení programu.
39
um tedy bylo nutné n¥jakým zp·sobem odstranit. To se provádí s vyuºitím metody nejmen²ích £tverc·, která se kaºdou sekundu aplikuje na v²echny vzorky, které byly z kamery obdrºeny za poslední sekundový interval. Kaºdou sekundu se tak po£ítá rovnice p°ímky
t=v·τ která vyjad°uje rychlost r·stu £i poklesu teploty. (t je teplota, v je rychlost zm¥ny teploty a
τ
je £as v milisekundách - protoºe jednotlivým vzork·m
je p°i°azována £asová zna£ka v milisekundách). Pro vyhodnocení alarmu je pot°eba ur£it v, tudíº sm¥rnici této p°ímky, která dostate£n¥ poslouºí jako náhraºka derivace tudíº indikátor rychlosti zm¥ny teploty. Jiº zmi¬ovanou metodou nejmen²ích £tverc· se ur£í v pro n obdrºených vzork· podle vztahu
P 1 Pn · i=1 τi · nj=1 tj n 2 Pn 1 Pn 2 τ τ − · i j=1 j=1 i n
Pn v=
Pokud je tedy
τ
i=1 τi ti
−
(5)
£as v milisekundách a t je teplota ve stupních Celsia,
pak v vychází v °C/ms, takovou jednotku ov²em program nepodporuje, proto se obdrºená hodnota násobí tisícem, aby bylo moºno pracovat s pohodln¥j²í jednotkou: °C/s. Pro del²í, mén¥ dynamické d¥je lze také pracovat s jednotkami a
°C/h.
°C/min
Hodnoty pro takováto £asová rozp¥tí se získávají ukládáním aktu-
álních hodnot do fronty o velikosti kýºeného £asového intervalu (60 s, pro hodinu z d·vod· úspory pam¥ti 600 s) a jejich následným pr·m¥rováním, které zahladí náhlé výst°ely teploty, jeº uºivatele p°i nastavení t¥chto interval· nezajímají. Získaná hodnota je v²ak stále v
°C/s
a je tedy nutné ji
vynásobit 60ti, resp. 3600ti, podle poºadovaných jednotek. Získaná hodnota se porovná s hodnotami denovanými v nastavení alarmu a pakliºe je rychlost r·stu £i klesání v¥t²í neº stanovená hranice, je na celé pracovní oblasti vyvolán alarm (£i varování).
5.4
5.4.1
M¥°icí nástro je
M¥°ení uºivatelsky zvolených oblastí
Pod hlavním menu programu je k dispozici panel nástroj·, s jejichº pomocí lze v ºivém obraze z kamery m¥°it v reálném £ase základní teplotní statistiky jako je minimální, pr·m¥rná a maximální teplota v oblasti. Kaºdý z nástroj· vytvá°í po nakreslení poºadovaného tvaru instanci t°ídy pro tento tvar, tj. po nakreslení obdélníku se vytvo°í objekt typu Rectangle apod.
40
N¥které vlastnosti mají v²echny objekty tvar· spole£né (nap°. objekt Ca-
mera, tj. kameru ze které £erpají hodnoty teplot) a n¥které r·zné - nap°. obdélník je denován dv¥ma body, kdeºto bod, p°irozen¥, pouze jedním. Pouºitý objektový návrh, jeº bere v úvahu tyto vlastnosti, je na obrázku 16. Základem je t°ída ROI (zkratka pro
Range Of Interest = oblast zájmu), jeº obsahuje
funkce pro výpo£et zmín¥ných teplotních statistik pomocí seznamu ukazatel· na teploty v obraze. Tyto ukazatele jsou vytvá°eny v konstruktorech podt°íd - nap°. v konstruktoru instance t°ídy Point je do seznamu p°idán jediný, konkrétní bod, pro obdélník se dopo£ítají v²echny body, které leºí v obdélníkové výse£i dané levým horním a pravým dolním bodem obdélníku, apod. T°ídy které d¥dí od abstraktní t°ídy Area se pak li²í od t°ídy Point tím, ºe jsou dány (konstruktor vyºaduje) více neº jedním bodem. V²echny instance t°íd, jeº d¥dí od ROI jsou p°i vytvo°ení automaticky p°idány do seznamu v t°íd¥
Measurement, která slouºí jako mezivrstva mezi t¥mito back-end t°ídami, zodpov¥dnými za výpo£et m¥°ených veli£in a grakou, která pouze zobrazuje výsledky. Tak je zaji²t¥na poºadovaná dvouvrstvost aplikace a tudíº plynulost uºivatelského prost°edí.
Obrázek 16: Diagram t°íd pro m¥°icí nástroje
41
5.4.2
Teplotní proly
V p°ípad¥ m¥°ení v obraze pomocí £ar je krom¥ standardního m¥°ení maxima, pr·m¥ru a minima k dispozici také zobrazení teplotního prolu. Teplotní prol je graf pr·b¥hu teploty na úse£ce, sestrojený tak, ºe na x-ovou osu jsou vyná²eny postupn¥ jednotlivé body a na y-ovou teploty v odpovídajících bodech.
5.4.3
Historie
Kaºdá instance t°ídy Camera má také n¥kolik vlastností, které uchovávají historii nam¥°ených hodnot. Jelikoº ú£elem historie je umoºnit operátorovi systému krátkou nep°ítomnost u obrazovky bez ztráty p°ehledu o d¥ní ve sledované oblasti, je prozatím implicitn¥ nastaveno vzorkování hodnot po jedné sekund¥ a délka £asového okna 600 vzork·, tj. 10 minut. Jednotlivé body jsou reprezentovány objektem s £asovou zna£kou a hodnotou typu oat. Na panelu, k tomu ur£eném je moºné sledovat jak vývoj maximální, tak i pr·m¥rné a minimální teploty pro jakoukoliv kameru.
5.5
Externí výstupy
Pon¥vadº se p°edpokládá, ºe systém bude b¥ºet vícemén¥ kontinuáln¥ (pokud bude nasazen nap°. v rámci protipoºární ochrany), bylo nutné n¥jakým zp·sobem zabezpe£it jeho komunikaci s okolím pro p°ípady, kdy zrovna nebude operátor p°ítomen u monitoru, nebo kdy je nutná sou£innost s jinými, externími °e²eními, pop°ípad¥ pro ú£ely dokumentace.
5.5.1
Log
Log je první a základní výstup z programu. Slouºí k uchovávání historie následujících akcí
p°ipojení/odpojení kamer
start/stop zachytávání videa
start/stop nahrávání videa
aktivace/deaktivace digitálního výstupu
vytvo°ení alarmu
vyvolání/konec alarmu nebo varování
42
odeslání emailu
upload na FTP
p°ihla²ování/odhla²ování uºivatel·
otev°ení/zav°ení aplikace
úsp¥²nost/neúsp¥²nost akce (nap°.: Upload na FTP selhal, atd.)
Zápis do logu probíhá pomocí nezávislého vlákna a FIFO
12
fronty, která je
postupn¥ vyprazd¬ována. Kaºdý zápis je samoz°ejm¥ dopln¥n datem a £asem. Pro prohlíºení je moºné (pro n¥kolik poslední °ádk·) vyuºít stejnojmenný panel v programu, nebo lze prohlíºet celou historii jako textové soubory, uloºené ve sloºce Dokumenty. Tady program vytvá°í pro kaºdý den nový soubor, pojmenovaný podle aktuálního data.
5.5.2
Digitální výstup
Kamery FLIR °ady Ax5 disponují jedním digitálním výstupem (opto-izolovaný, 240 V stejnosm¥rn¥, maximální odb¥r 185 mA), °ada Ax15 pak hned dv¥ma (1030 V stejnosm¥rn¥, maximální odb¥r 100 mA). Tyto výstupy se dají vyuºít nap°. pro spojení programu s certikovaným protipoºárním systémem nebo s programovatelnými logickými obvody, £ímº se velmi razantn¥ roz²i°ují moºnosti vyuºití programu. Implementace digitálních výstup· je velmi jednoduchá záleºitost. Kaºdé kame°e lze p°i°adit tzv. pravidlo, které, pokud je spln¥no, aktivuje na této kame°e digitální výstup, coº znamená ºe na odpovídajícím pinu na konektoru kamery zvý²í nap¥tí na ur£enou hodnotu. Pokud pravidlo neplatí, výstup je op¥t deaktivován a nap¥tí na pinu je op¥t nulové. Kaºdé pravidlo je bu¤ konjunkcí (AND) £i disjunkcí (OR) alarm·, jeº si uºivatel m·ºe do pravidla p°i°adit. Tj. aby byl digitální výstup na kame°e sepnut musí být aktivovány v²echny, resp. alespo¬ jeden z vybraných alarm·. Kontrola pravdivosti pravidel se provádí vºdy, kdyº je vyvolána událost za£átku £i konce alarmu. K varování digitální výstup p°i°adit nelze.
5.5.3
Vzdálené zasílání výsledk·
Pro vzdálené zasílání výsledk· program podporuje nahrávání fragment· logu na FTP a odesílání e-mailových zpráv obsahujících výpis z logu. Tyto operace zaji²´uje t°ída Log.
12 First
In First Out - První dovnit°, první ven. 43
5.5.4
Záznam videa
V nastavení programu lze ur£it, zda se má p°i za£átku £i konci alarmu nebo varování spustit, respektive ukon£it nahrávání videa. V p°ípad¥, ºe je záznam videa spu²t¥n, ukládá se kaºdý snímek do pole bitmap. Po ukon£ení nahrávání se pomocí knihovny
AVIFile[26]
vytvo°í video stream (£i stopa
videa, chcete-li), do kterého se z pole bitmap vkládá jeden snímek po druhém. Následn¥ se vy£te obnovovací frekvence kamery a stopa je spolu s dal²ími parametry jako je nap°. rozli²ení uloºena do .AVI kontejneru. Vzniká tak nekomprimované
raw video,
které je moºné p°ehrát v tak°ka jakém-
koliv p°ehráva£i. Bohuºel, takovéto video, sloºené z bitmap jiº neobsahuje p°esné údaje o teplot¥, pouze pomocí sledu termogram· monitoruje zm¥ny jejího rozloºení v monitorované oblasti. P°i del²ím nahrávání se samoz°ejm¥ projevuje velká pam¥´ová náro£nost tohoto procesu, jelikoº snímky aº do uloºení .avi souboru z·stávají v pam¥ti. Pon¥vadº pomocí zmín¥né knihovny nejde p°íli² pohodln¥ p°idávat snímky do jiº uloºeného .avi souboru, existuje v programu moºnost nastavit maximální velikost souboru videa a tím pádem i maximální mnoºství pam¥ti, které bude nahráváním videa vyuºito. Pro tento ú£el jsou v programu pole bitmap dv¥, z nichº je jedno vºdy prázdné. P°i dosáhnutí limitu maximální velikosti souboru se snímky napln¥né pole bitmap ode²le nezávislému vláknu ke zpracování a fragment videa se ukládá, zatímco nahrávání pokra£uje ukládáním snímk· do druhého pole. Díky tomuto p°ístupu je potom nahrávání videa limitováno jiº jen velikostí volného místa na disku, nicmén¥ p°i dal²ím vývoji softwaru by bylo záhodno implementovat n¥jaký zp·sob komprese.
44
6
Záv¥r
Cílem této práce bylo navrhnout pro rmu Workswell software pro IP termokamerový systém, tj. software pro paralelní p°íjem a zpracování obrazu z termokamer p°ipojených na fyzické vrstv¥ p°es rozhraní na bázi Ethernetu. Zadání specikovalo jako základní poºadavky podporu kamer, zaloºených na standardech GigE Vision a GenICam. Program musí být schopen podle libosti tyto kamery k po£íta£i p°ipojovat a odpojovat, za°ídit plné vy£tení jejich parametr· z deskriptorového XML souboru a samoz°ejm¥ také jejich nastavení. U p°ipojených kamer pak musí být moºné spustit £i zastavit zachytávání videa a v tomto videu pomocí tzv. alarm· kontrolovat spln¥ní uºivatelsky denovaných poºadavk· na teplotu. Aplikace má dále obsahovat také jednoduché moºnosti m¥°ení, statistického zhodnocení vývoje a exportu, nap°. na FTP a emailem.
Postup práce
Nejd°íve jsem se seznámil s principy bezkontaktního m¥°ení
a funkcemi a parametry termokamer. Dále jsem studoval strukturu a principy protokol· a standard·, které tyto kamery pouºívají a seznámil se tak se zp·sobem, jakým se kamery p°ipojují k po£íta£i. Vyhledal jsem a otestoval n¥kolik implementací standardu GigE Vision, podle kterého komunikace s kamerami probíhá, srovnal jejich výhody a nevýhody a poté se rozhodl postavit jádro aplikace na knihovn¥ JAI SDK, jeº jako jediná byla licencována jako freeware a zárove¬ poskytovala moºnost implementace v C#. Pomocí funkcí z této knihovny jsem implementoval rutiny pro p°ipojování, odpojování, a nastavování kamer, dále pak funkce pro p°íjem snímk· a spu²t¥ní £i zastavení zachytávání videa. S takto p°ipraveným jádrem systému jsem poté navrhl architekturu celého programu. Hlavní my²lenkou bylo co nejvíce odd¥lit grackou a výpo£etn¥ náro£nou £ást takovým zp·sobem, aby graka pouze zobrazovala jiº vypo£tená data a reagovala na události a naopak na druhou stranu posílala ke zpracování uºivatelské akce. Uºivatelské rozhraní je °e²eno podle zadání ve WPF systémem p°izp·sobitelných panel·, tak, aby si uºivatel mohl vzhled programu p°izp·sobit ú£elu, pro který jej pouºívá.
Výsledky
Aplikaci jsem testoval s kamerami FLIR °ad Ax5 a Ax15, kon-
krétn¥ s modely A5, A15, A35, A315 a A615. Díky hojnému vyuºívání vláken byla zát¥º vºdy tém¥° rovnom¥rn¥ rozloºena mezi v²echna jádra (pokud jimi procesor disponoval) a i p°i spu²t¥ní t°í kamer sou£asn¥, s 20 alarmy p°i°azenými ke kaºdé kame°e, se zát¥º procesoru programem pohybovala v rozmezí 40-50%, vyuºití pam¥ti pak bylo (pokud zrovna neprobíhalo nahrávání videa) zhruba 250 MB. Z t¥chto dat jsem usoudil, ºe navrºené algoritmy pro
45
paralelní p°íjem obrazu z termokamer fungují podle o£ekávání a systém je schopen (pokud to sí´ová infrastruktura vzhledem ke kapacit¥ linky dovoluje) teoreticky p°ipojit aº 50 kamer. Výsledný program spl¬uje v²echny funk£ní i nefunk£ní poºadavky, uvedené v zadání této práce. M·ºe být vyuºit jako bezpe£nostní £i protipoºární systém, ale také jako jednoduchý p°ehráva£ videa z GigE Vision kamer.
Moºnosti roz²í°ení
Co se tý£e dal²ího vývoje programu, vidím nejv¥t²í
prostor v optimalizaci práce s kamerami. V pr·b¥hu testování totiº docházelo k nep°edvídatelným situacím, kdy se program choval nedeterministickým zp·sobem, nap°. kdyº se kame°e náhlým odpojením po²kodil XML soubor s nastavením, rutina, odpov¥dná za znovu-p°ipojování ztracených kamer, selhávala. e²ení t¥chto problém· by mohlo spo£ívat v d·kladn¥j²ím prozkoumání hlub²ích vrstev JAI SDK a dále v redukci abstrakce kódu, sm¥rem k v¥t²ímu p°ímému propojení s hardwarem tak, aby bylo v kaºdém okamºiku jasné, co se práv¥ na druhém konci d¥je. Dal²ími perspektivními vylep²ením programu by mohly být notikace o alarmech formou SMS £i on-line streaming videa z vybraných kamer. Pro video by také mohl být vytvo°en vlastní formát, zachovávající informace o teplotách a tím umoº¬ující zp¥tnou analýzu termogram·.
46
.
47
.
48
Reference [1] VAVIKA, Roman: Bezdotykové m¥°ení teploty. [online] VUT, 2007. Dosupné [27.4.2013] z: .http://utp.fs.cvut.cz/vz/clanky/104.pdf [2] PÍHODA, Miroslav, RÉDR, Miroslav: Sdílení tepla a proud¥ní, 2. p°epracované vydání. Vysoká ²kola bá¬ská - Technická univerzita Ostrava, Ostrava, 2008. [3] GRUNER, Klaus-Dieter. Principles of Non-Contact Teplota Measurement. [online] Raytek, Berlín, 2003. Dostupné [27.4.2013] z:
//www.proheatinc.com/images/infrared/ir_theory.pdf.
http:
[4] FLIR COMMERCIAL SYSTEMS: Thermal imaging cameras for building inspections : building inspections, insulation, energy loss, plumbing and piping. Flir Commercial Systems, Breda, 2012. [5] KADLEC,
Karel:
p°edná²ka.[online]
Termograe VCHT,
a
termodiagnostika:
Praha,
2012.
Termokamery,
Dostupné
[28.4.2013]
http://tresen.vscht.cz/ufmt/cs/component/joomdoc/doc_ download/718-tg7h.html z:
[6] CENTRUM TERMOGRAFIE: Termokamera - Základní parametry. [on-
http: //www.centrumtermografie.cz/termokamera-zakladni-parametry/ line] Centrum termograe, Praha 2012. Dostupné [28.4.2013] z:
[7] FLIR SYSTEMS, INC.: FLIR A65 / A35 / A15 / A5 Technical specications. [online] Flir, Wilsonville, 2013. Dostupné [28.4.2013] z:
//www.flir.com/cs/emea/en/view/?id=56345
http:
[8] FLIR SYSTEMS, INC.: FLIR A315 / A615 Technical Specications. [online] Flir, Wilsonville, 2013. Dostupné [28.4.2013] z:
flir.com/cs/emea/en/view/?id=41955
http://www.
[9] KOCOUREK, Petr, NOVÁK, Ji°í: P°enos informace. Vydavatelství VUT, Praha, 2004. [10] WIKIPEDIA: Dostupné
Gigabit
[1.5.2013]
Ethernet#cite_ref-3
z:
Ethernet.
[online]
Wikipedia
(en),
2013.
http://en.wikipedia.org/wiki/Gigabit_
[11] AUTOMATED IMAGING ASSOCIATION: GigE Vision - True Plug and Play Connectivity. [online] Automated Imaging Association, Ann
http://www.visiononline.org/ vision-standards-details.cfm?type=5 Arbor, 2013. Dostupné [1.5.2013] z:
49
[12] BASLER: The Elements of GigE Vision. [online] Basler Vision Technologies, 2013. Dostupné [1.5.2013] z:http://www.machinevision.nl/
upload/File/PDF_whitepaper/GigEVisionWhitePaper.pdf [13] DIERKS, chine
Fritz:
Vision
GenICam
Standard
Association,
2009.
2.0.
[online]
Dostupné
European
Ma-
z:http:
[1.5.2013]
//www.emva.org/cms/upload/Standards/GenICam_Downloads/ GenICam_Standard_v2_0.pdf [14] TURNKEY, ras.
Adept:
[online]
Ferret,
New
GenICam
2006.
standard
Dostupné
for
[1.5.2013]
//www.ferret.com.au/c/Adept-Electronic-Solutions/ New-GenICam-standard-for-cameras-n666626
camez:http:
[15] RICHARDSON, Iain E. G.: H.264 and MPEG-4 Video Compression, Wiley, Chichester, 2003. [16] ROBERTSON, Mark R.: H.264 Versus MPEG-4 - Video Encoding Formats Compared. [online] 2008. Dostupné [4.5.2013] z:http://www.
reelseo.com/encoding-formats-mpeg4-vs-h264/
[17] WIKIPEDIA: H.264/MPEG-4 AVC. [online] Wikipedia (en), 2013. Dostupné [4.5.2013] z:http://en.wikipedia.org/wiki/H.264/MPEG-4_
AVC
[18] OPEN line]
SOURCE
Open
INITIATIVE:
Source
Initiative,
The
2013.
BSD
2-Clause
Dostupné
License.
[4.5.2013]
opensource.org/licenses/BSD-2-Clause
[on-
z:http://
[19] PLEORA: eBUS SDK Licensing. [online] Pleora Technologies, 2012. Do-
http://ftp.elvitec.fr/Pleora/SDK-LOGICIEL/ ebus_sdk_licensing_application_note.pdf stupné [4.5.2013] z:
[20] NATIONAL INSTRUMENTS: Buy Labview. [online] National Instruments, 2013. Dostupné [5.5.2013] z:
http://www.ni.com/labview/buy/
[21] NATIONAL INSTRUMENTS: NI Vision Development Module - Programmable Vision Functions. [online] National Instruments, 2013. Dostupné [5.5.2013] z:
nid/2881
http://sine.ni.com/nips/cds/view/p/lang/cs/
[22] A&B SOFTWARE: GigE Vision Library and API Compatibility List [online] A&B Software, 2013. Dostupné [5.5.2013]
ab-soft.com/gigelist.php 50
z:
http://www.
[23] A&B SOFTWARE: Active GigE Price List [online] A&B Software, 2013. Dostupné [5.5.2013] z:
http://www.ab-soft.com/ordergige.php
[24] NATIONAL INSTRUMENTS: Acquiring from GigE Vision Cameras with Vision Acquisition Software - Part I. [online] National Instruments, 2007. Dostupné [8.5.2013] z:
en
http://www.ni.com/white-paper/5651/
[25] JAI: JAI SDK .NET Wrapper, manuál, verze 1.4.1. JAI, 2012 [26] CORINNA, File
John:
Library
A
Simple
[online]
Code
C#
Wrapper
Project,
for
2012.
the
Avi-
Dostupné
z: http://www.codeproject.com/Articles/7388/ A-Simple-C-Wrapper-for-the-AviFile-Library
[19.5.2013]
[27] NATIONAL INSTRUMENTS: Acquiring from GigE Vision Cameras with Vision Acquisition Software - Part II. [online] National Instruments, 2007. Dostupné [8.5.2013] z:
en
http://www.ni.com/white-paper/5750/
51
Zdroje obrázk· 1.
2.
3. 4.
5.
6.
7.
8.
http://www.smtcentrum.cz/pajeni-pretavenim/pretaveni-... ...infracervenym-zarenim/ http://www.qtest.cz/bezdotykove-teplomery/bezdotykove-... ...mereni-teploty.htm http://www.proheatinc.com/images/infrared/ir_theory.pdf http://tresen.vscht.cz/ufmt/cs/component/joomdoc/... ...doc_download/718-tg7h.html http://source.theengineer.co.uk/pictures/548xAny/... ...0/7/5/2027075_FLIR714-A15-camera-image-lr.jpg http://www.ni.com/cms/images/devzone/tut/... GigE%20Vision%20Cameras_GigE%20Vision%20Logo.PNG http://www.machinevision.nl/upload/File/PDF_whitepaper/... GigEVisionWhitePaper.pdf http://www.pleora.com/sites/default/files/sidebar/... ...2.2.2_genicam_graphic.jpg
9. Vlastní zdroj. 10. JAI: JAI SDK .NET Wrapper, manuál, verze 1.4.1. JAI, 2012. 11.
http://www.ni.com/cms/images/devzone/tut/... ...GigE%20Vision%20Cameras_Device%20Discovery1.PNG
12. Vlastní zdroj. 13. Vlastní zdroj. 14. Vlastní zdroj. 15. Vlastní zdroj. 16. Vlastní zdroj.
52
.
53
.
54
A A.1
Manuál
Getting Started (v angli£tin¥)
Introduction
Workswell Thermo Safety 2013 is a complex solution for situations where the temperature safety is essential. You can connect up to 50
13
cameras si-
multaneously and then check your temperature requirements in real-time. Both connected cameras and temperature requirements, called Alarms are saved in so called Sessions and the program can save your customized layout as well. The application oers a plenty of options to customize appearance, notications and other parameters, yet it doesn't take more than ve minutes to set everything up.
Workswell Thermo Safety 2013
is more than
thousand times faster than a regular re safety system, much more easier to congure, and is able not only to recognize a security breach but also to warn you when a potentially dangerous event appears.
A.1.1
Terminology
Main window of the application with the names of panels 13 Depends
on your network and hardware conguration
55
A.2
Preparations
A.2.1
General system requirements
Minimal requirements Processor:
Intel Core 2 Duo or equivalent
Memory(RAM): HDD: NIC: OS:
1 GB
At least 100 MB available hard disk space.
At least Fast Ethernet network adapter.
Windows 7
Resolution:
1024x768 px
Recommended conguration Processor:
Intel Core i3
Memory(RAM): HDD: NIC:
4 GB
1 GB available hard disk space
Gigabit Ethernet adapter and also a Gigabit Ethernet switch could be used for connecting more devices
OS:
Windows 7
Resolution:
Full HD (1920x1080)
Monitor(s):
2 x Full HD monitor
A.2.2
Hardware setup
This part taken from [27] In order to acquire images from a GigE Vision camera, an use them in our software you need to rst make sure that you have all the correct hardware. Below is a list of requirements.
Special hardware requirements
56
GigE Vision camera
The camera must be GigE Vision standard
compliant. If you have a camera that has a Gigabit Ethernet port but is not GigE Vision compliant, you cannot acquire images using our software. You should nd the GigE Vision logo in the camera's user manual or marketing literature.
Gigabit Ethernet port
While it is possible to acquire images with
Ethernet and Fast Ethernet ports, which support 10 MB/s and 100 MB/s respectively, this will only work at very slow frame rates and small resolutions. It is highly recommended that you use a Gigabit Ethernet Network Interface Controller (NIC).
Network conguration
Once you have the hardware and software in-
stalled correctly, you must congure the network as well. GigE Vision cameras can obtain an IP address from a DHCP server or select one for itself using Link Local Addressing (LLA). If you connect the camera to a Gigabit Ethernet network with a DHCP server, the camera is automatically detected. If the camera is connected directly to the computer (using either a regular or cross-over cable), maybe you will need to wait about a minute for the camera to timeout on the DHCP request and use LLA. The Windows operating system may display a warning that the network card has only limited operation. You can ignore this warning.
Windows displays a warning when camera is directly connected
Jumbo packets
Typically, network drivers will split any data larger than
1500 bytes into multiple packets.
However, the GigE Vision standard al-
lows packet sizes of up to 9014 bytes.
These large packets, also known as
Jumbo packets, allow the camera to more eciently transfer data across the network.
You can enable Jumbo packets in many network cards from the
Device Manager by right-clicking the network card and selecting Properties.
57
Setting Jumbo packets on the Intel PRO/1000 Adapter
Network Firewalls
When a camera acquires an image, it immediately
streams those data packets to the host. However, network rewalls will not allow the packets to reach their destination because rewalls typically block uninitiated incoming trac. Therefore you will need to disable you rewall in order to acquire images from a GigE Vision camera. You can disable the Windows Firewall from the Control Panel (Start>>Control Panel). However if you have a network card with an Intel PRO/1000 chipset and you are using the Filter driver that comes with JAI SDK (which is included in this package), it is most likely that you will not need disable the rewall.
Caveats and pitfalls Jumbo Packets
If your NIC device, or any intermediate network hard-
ware (switch, router, etc.), does not support Jumbo packets, you will be limited to a packet size of less than 1500 Bytes. The GigE Vision packet size cannot be greater than the maximum packet size allowed by the NIC.
Firewalls curity.
Many corporate networks employ rewalls for network se-
However, you cannot acquire from GigE Vision cameras with the
58
rewall enabled, unless you use the High Performace driver.
If your com-
pany's network policy does not allow you to disable the rewall or use a dierent network driver, you will need to use a system dedicated to image acquisition, that is not part of the corporate network.
Corrupt XML les
As with any new standard, camera manufacturing
companies routinely release new revision of their rmware. If you get an error stating that the XML le is corrupt, please contact the camera manufacturer for the latest revision of their rmware.
Interoperability
While GenICam gives camera manufacturers the ex-
ibility of creating a custom attribute set, it makes it dicult to easily switch between cameras without modifying your code. While the GenICam Standard Features Naming Convention alleviates this problem to a certain extent, most of the conventions are only recommendations and not requirements. So a camera manufacturer may deviate from the convention, in which case, the application software will need to be modied to be interoperable with other cameras.
59
A.3
A.3.1
Installing Thermo Safety 2013
Setup
To get your copy of
Workswell Thermo Safety 2013, go to page
http://www.workswell.cz/ThermoApps/ThermoSafety/install.htm and click Install. Then proceed to the folder where you've downloaded the setup program and open it. If you see a prompt asking whether to install JAI SDK or not, click Install, otherwise the setup program would quit.
Installation of JAI SDK Follow the instructions of the JAI SDK Setup program and in the end, if asked, reboot your computer.
14
Rebooting the computer after JAI SDK Installation The installation will then continue. If not, please run the setup program again. Thermo Safety's setup program itself doesn't need any further user interaction and the program will run immediately as soon as the installation is completed.
14 WARNING:
If you don't reboot the computer after the installation it is likely that you won't be able to work with cameras.
60
A.3.2
Activation
When you run the program for the very rst time, the Authentication window is the rst thing to deal with.
The Authentication window provides you
with two options: If you don't have a serial number and want to evaluate the software for a limited period of 15 days, choose Request trial version, otherwise, if you have valid, not yet activated serial number, click the Proceed,
I have a serial number option.
Authentication window
Trial version When requesting a trial version of Workswell Thermo Safety 2013, all you have to do is enter your (valid) email address.
Entering email address In a matter of seconds, you will recieve an email with activation link leading to our CRM server, where we would be glad if you took a moment to ll in a brief info about yourself and helped us to improve the software to better suit the needs of our customers. After you'll express consent with the Licensing terms and conditions by checking the I agree to the above terms, click Activate and you will be given a unique trial serial number, valid for 15 days.
61
Activated trial serial number Copy the number to clipboard by selecting it and pressing [Ctrl+C].
15
Then return to the program and click Insert serial number.
Successfull trial serial number request Further steps are the same as if you had a licensed copy of
Workswell
Thermo Safety, and are described in next section (3.2.2 Full version). Full version
If you have a full version of the program (or you already
have activated trial serial number), start the activation process by clicking on Proceed, I have a serial number button. On the next screen, enter your serial number provided by your system integrator or by Workswell s. r. o. and ll in a valid email address of yours.
16
17
Click the Authenticate button.
Inserting serial number 15 NOTE:
The serial number is also contained in email, you will recieve after activation, as well as your administrator credentials. 16 If the number you are about to enter is a trial serial number, you don't have to enter your email address again. 17 NOTE: Next steps doesn't apply for trial users, who will recieve conrmation after clicking Authenticate right away. 62
Next steps apply for full versions only
The Authentication window
is now indicating that your serial number is not yet activated. Never mind, everything has been taken care of.
Before completing the web activation By clicking Authenticate on the previous screen, you've send an activation request to our CRM server and as a response, you will receive email with activation link. Click it and ll in a brief info about yourself. Pay special attention to the eld Administrator password, as you can't change it afterwards. After you'll express consent with the Licensing terms and conditions by checking the I agree to the above terms, click Activate and return to the program. Click Authenticate as seen on the image above.
Successful activation Click Run! and you are free to use Workswell Thermo Safety 2013. We hope you will enjoy it.
63
A.4
Cameras
Cameras are the cornerstone of whole application. If there's no active camera found in your network, everything you can do with the program shrinks to managing users and program settings. But after you connect just a single thermal imaging camera, the application comes to life with much more functions and options. Let's have a closer look on how to work with a camera.
A.4.1
Connecting a camera For connecting a camera, focus on the Cameras panel (in default layout you can nd it on the right side of the application's main window). Select desired camera from the Available cameras list
18
and
click Connect. A progress indicator may appear for a while and after it disappears, a word 'Connected', surrounded by brackets will appear next to the camera's name, in the Available cameras list.
19
The
camera will also appear as a connected camera in the Session Explorer
20
panel and the Log panel
will contain information about camera connection along with a time stamp. Yet, there's still not much stu to do with a camera, that is just connected and not acquiring. In fact, the only thing you can do with such a camera is changing its name by selecting the camera from the Available cameras list and clicking Edit in the lower part of the Cameras panel. To start an image acquisition from a camera,
Cameras panel:
select a connected camera and click the Play button
Starting acquisition
located in the center of Cameras panel, as shown on a picture on the left of this page.
A window
called the Display, entitled with the camera's name, opens and you now see live camera view in it.
If
everything went well, you should see a blinking play
icon in the upper left corner of the video view. The Blinking Play icon
icon indicates that there are new frames coming to
18 NOTE:
If there are no cameras in the list, verify if they are connected to the same network as you are and then click the Refresh button . 19 When the camera fails to connect, check if there's not someone already connected. 20 What a session is and how to use it is a subject of Section 6 - Sessions.
64
the memory.
If you can't see the icon blinking, it
means that the video is frozen or that the acquisition starting process did not completed successfully. Look in the Log for details and if everything seems OK try to click Stop and then Play again to restart the acquisition.
Display of camera 'Flir A5 80x64' (With Flir Iron palette)
A.4.2
Disconnecting a camera
The process of disconnecting a camera is very similar to connecting it and is very straightforward. Just choose the camera, you want to be disconnected and click Disconnect. If there is an acquisition running, it will be stopped automatically. After disconnection, the camera's Display closes, the camera is removed from the list of Connected cameras in the Session Explorer and the Log panel will contain information about camera disconnection along with a time stamp.
65
A.5
Alarms
Alarms are the basic measurement tool of Thermo Safety 2013.
They are
used to alert you, when temperature in an area raises above or lowers under a specied value. Each alarm has two levels:
Warning
Occurs when temperature rises above/lowers under the temper-
ature specied as Warning temperature and is supposed to alert you when the temperature is close to the Alarm temperature The aected
21
area turns orange, there can be a sound playing
and the event is
logged into the Log.
Alarm
Occurs when temperature rises above/lowers under the temperature
specied as Alarm temperature and is supposed to mean that the situation in the area is critical. The aected area turns red, there can be a sound playing
22
and the event is logged into the Log.
Now, let's see how to set up an alarm on one of the cameras.
A.5.1
Setting up an alarm
If you have at least one thermal imaging camera connected and acquiring, you can set up an alarm on that camera.
To do that, go to the Session
Explorer and click the Plus button in the lower left corner. A panel called Set up new alarm appears. In the Session Explorer, select a camera from the Connected cameras list. 21 The
22 The
indication of W arning can vary depending on your program settings. indication of Alarm can vary depending on your program settings.
66
Creating an alarm on camera 'Flir A5 80x64' The Display of the chosen camera now became selectable and whole live view area of the camera is divided into several squares (their count depends on the resolution of the camera and the grid might not be visible, that depends on Settings of the program).
Selecting alarm area Use the mouse to select area for your new alarm like this:
Left mouse button
is for
selecting
by new alarm.
67
squares you want to be checked
Right mouse button cancels
the selection.
Go back to Session Explorer and adjust Alarm name, Alarm and Warning
temperature. Then choose a Type for your alarm
Upper bound alarm Use this type if you want to be informed when the temperature exceeds the values in Alarm and Warning temperature.
Lower bound alarm Use this type if you want to be informed when the temperature is lower than the values in Alarm and Warning temperature. Having done that, click Add alarm. When the alarm is created you notice that the alarm area has darkened the image underneath it. This is to inform you, which areas are already covered by an alarm and which are not. Now, you can add another alarm, or, if you have nished, click the Down arrow in the lower left corner of Session Explorer to close the Set up new alarm panel. Previously darkened areas will go back to normal.
A.5.2
Raised alarms
Highlighted areas with alarms and warnings When the alarm is raised in any of the squares of your area of interest, the areas which exceeded(got under) the specied Alarm temperature turn
68
red and areas that exceeded(got under) the specied Warning temperature
23
turn orange like so
Active alarms are also highlighted in the Session Explorer, under the corresponding camera and the alarm/warning event is documented in Log along with a time stamp of the event.
A.5.3
Deleting alarms
Deleting alarms can be done it two ways. Either you
Select an alarm and click the Recycle bin icon in the lower left corner of the Session Explorer.
or you
select an alarm in the Session Explorer and press the [Delete] key.
23 The
behavior depicted in the image can dier on your computer, depending on the program Settings. If you would like your display to look like the depicted one here, be sure to check Display grid, Highlight alarms and warnings in display and Show temperatures in alarm cells in the Settings > View > View options. More about program settings can be found in Section 7 - Program options.
69
A.6
Sessions
Connected cameras and their alarms are both grouped in Sessions as well as the layout conguration you use with the session. That way, you don't have to connect cameras
24
and set up all the alarms again and even the panels
and windows stay in position where you've put them before.
A.6.1
The Default session There is always at least one Session, called Default. The Default session is the rst one you will see, when you open the program..
It is created auto-
matically and every time you Log Out or Exit the program from an Administrator account, the session is saved for you to continue, where you've left o. When you start the program, the Default session is loaded and everything you were working with before is there again. The Default session can't be deleted and if the program can't nd it, it automatically creates a new, blank one with standard layout and no cameras connected.
Session explorer your own sessions.
A.6.2
User-created sessions
You have also the possibility to create and save/load This is useful when you have more congurations of
alarms, or if the users have dierent preferences concerning layout of panels. If you want to create such a session, just go to main menu like Sessions > Save Session As ... and write desired name for your new session.
24 NOTE:
25
Although connected cameras are listed in Connected cameras list found in the Session Explorer , sessions save just those cameras that are in a state of running acquisition. 25 Be careful when choosing a session name. If you choose a name, that already exists, the older session will be overwritten. If you name your session 'Default' it will be overwritten and lost when the program exists because of saving the standard Default session.
70
A.7
Program settings
Using Settings you can manage accounts, cameras and control the program behavior and appearance. You can reach Settings by going throught Settings item in the application main menu and then clicking on the appropriate category. Three buttons are present in the window
OK
Applies the changes made in Settings and then closes the window.
Cancel Apply A.7.1
Closes the window without saving changes. Applies the changes immediately.
Accounts
Account types Administrator
There are two account types in
Thermo Safety 2013.
A user with administrator account can connect and dis-
connect cameras, set up or delete alarms, save and load sessions and change program settings. Administrator can also deactivate license for the computer.
Operator
An operator account has limited rights and cannot choose a ses-
sion as the Default session is the one which opens every time an operator logs in. If an administrator wants the operator to use another session, it is necessary to log as an administrator, load the session and then log out, causing the actual session to be saved as Default.
Further-
more, operator can't change anything in the session and can see only
Log, Display s and Session Explorer without the possibility of changing anything.
Managing accounts
If you want to change installed accounts, go to Set-
tings > Accounts, select an account from the Installed accounts list and select and click on one of the buttons in the right to perform desired action.
71
Accounts management in Settings Next steps are pretty straightforward and do not need any further explanation. Please mind that you can't change password of the main Adminis-
trator account. It must be ensured that there is at least one administrator account and so this account can't be neither deleted as you could lose access to the program and. The main Administrator account is also the only one which allows you to retrieve lost password in case that you would have forgotten it.
A.7.2
Cameras
The only thing you can see in Settings > Cameras is setting a distance between cameras and monitored surface.
This is used to precisely localize
the coordinates of alarms in metrics units.
A.7.3
Sounds
If you would like to be notied by sound about ongoing alarm or warning event, have a look at Settings > Sounds. Here you can set whether you want to be notied by sound just when an alarm is triggered or if you want the sound to be played also when a warning is risen.
72
Sound settings You can choose whether you want the sound to be played continuously when an alarm or warning is present or if you just want to hear it once (the
Play sound repeatedly check box). You can also choose a dierent sound from the library by clicking the Change sound button.
A.7.4
View
The view settings are in sequence described bellow the image:
View settings
Display grid
Displays grid in the display of the camera, dividing the display
into square segments.
73
Display rulers
Displays distances from the upper left corner of the display
in real-world coordinates.
Highlight alarms and warnings in display
When an alarm(warning) is
raised the aected area turns red(orange).
Show temperatures in alarm cells 26
highest/lowest
When an alarm(warning) is raised the
temperature in the area is shown in the square if.
Highlight display on alarm or warning
When an alarm(warning) is raised,
the border of the live view from camera turns red(orange).
Palette
If you are not satised with the standard gray palette, here you can
change to a palette which will suit you more.
A.7.5
Log
The Log Settings contain one item only and that is the count of the lines visible in the panel.
We recommend something about 40-60 lines and the
maximum is set to 100.
While testing, it turned out, that more than 100
lines in the Log signicantly delay the responses of the system. more, you have to possibility to view all logs in the
ThermoSafety\Logs. 26 According
to the type of the alarm.
74
Further-
<>\
A.8 As
Feedback
Workswell Thermo Safety 2013
is just in its rst version, we are well
aware that there is still a lot to improve. Please, feel free to send us your suggestions, subjects to change and your issues with the program. You can do so by clicking Help > Send Feedback or clicking the Send Feedback button in the Login Screen. Thank you in advance for your interest in improving the software.
75
.
76
B
Seznam pouºitých zkratek
AIA
Automated Imaging Association
API
Application Programming Interface
BSD
Berkeley Software Distribution
DHCP
Dynamic Host Conguration Protocol
EMVA
European Machine Vision Association
FTP
File Transfer Protocol
FOV
Field Of View
GbE,GigE GUI
Gigabit Ethernet
Graphic User Interface
GVCP
GigE Vision Control Proocol
GVSP
GigE Vision Stream Protocol
IEEE
Institute of Electrical and Electronics Engineers
IFOV
Instantaneous Field Of View
MPEG
Motion Pictures Expert Group
NETD
Noise-Equivalent Temperature Dierence
ROI
Range Of Interest
SDK
Software Development Kit
SFNC
Standard Feature Naming Convention
TCP
Transmission Control Protocol
UTP
Unshielded Twisted Pair
UDP
User Datagram Protocol
VDM
Vision Development Module
WPF
Windows Presentation Foundation
XML
Extensible Markup Language
WYSIWYM
What You See Is What You Mean
77
.
78
C
Obsah p°iloºeného CD
Ko°enový adresá° p°iloºeného CD má následující strukturu:
Adresá°
PROGRAM
Adresá°
Application Files
Obsahuje .dll knihovny, obrázky, zvuky a jiné sou£ásti programu, nutné pro kompletní instalaci.
setup.exe Instala£ní soubor, kontrolující p°ítomnost prerekvizit, jako je .NET Framework, JAI SDK a jiné. Tento soubor by m¥l být pouºit pro spu²t¥ní instalace.
Workswell Thermo Safety 2013.application Soubor pro okamºité spu²t¥ní programu bez kontroly prerekvizit (nedoporu£uje se).
Adresá°
SOURCE
Obsahuje zdrojové kódy programu. Pro spu²t¥ní ve Visual Studiu
ThermoSafety.csproj ThermoSafety.sln
lze pouºít soubor projektu °e²ení (Solution)
Adresá°
nebo soubor
TEXT
BP_BALGA_2013.pdf Text celé bakalá°ské práce, shodný s ti²t¥nou verzí ve formátu .pdf
BP_BALGA_2013.lyx Zdrojový soubor práce pro WYSIWYM editor LYX
BP_BALGA_2013.tex
AT X (prostý) Zdrojový soubor ve formátu L E
adresá°
IMG
Obsahuje obrázky, pouºité v této práci
79
.