SlideShare a Scribd company logo
1 of 94
Download to read offline
ƒ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 tem-
perature 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 imple-
mented 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 P°enos tepla zá°ením . . . . . . . . . . . . . . . . . . . . . . . 3
2.1.1 Absolutn¥ £erné t¥leso . . . . . . . . . . . . . . . . . . 5
2.2 Emisivita . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2.1 ’edé t¥leso . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2.2 Ur£ení emisivity . . . . . . . . . . . . . . . . . . . . . . 6
2.2.3 Emisivity n¥kterých materiál· . . . . . . . . . . . . . . 7
2.3 Termokamery . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
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 13
3.1 Protokoly a standardy pro p°enos dat . . . . . . . . . . . . . . 13
3.1.1 Gigabit Ethernet . . . . . . . . . . . . . . . . . . . . . 13
3.1.2 GigE Vision . . . . . . . . . . . . . . . . . . . . . . . . 14
3.1.3 GenICam . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.2 Formát výstupu . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.2.1 Streamované bitmapy . . . . . . . . . . . . . . . . . . . 17
3.2.2 MPEG-4 Visual, H.264 . . . . . . . . . . . . . . . . . . 18
4 Komunikace s kamerou 21
4.1 Softwarové nástroje pro GigE Vision . . . . . . . . . . . . . . 21
4.1.1 Referen£ní implementace standardu GenICam . . . . . 21
4.1.2 Pleora eBUS SDK . . . . . . . . . . . . . . . . . . . . 22
4.1.3 NI Labview + Vision Development Module . . . . . . . 22
4.1.4 JAI SDK . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.1.5 AB Software Active GigE . . . . . . . . . . . . . . . 24
4.2 JAI SDK: Základní kámen systému . . . . . . . . . . . . . . . 24
4.2.1 Struktura SDK . . . . . . . . . . . . . . . . . . . . . . 24
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 31
5.1 Navrºené softwarové °e²ení . . . . . . . . . . . . . . . . . . . . 31
5.1.1 Úvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
VI
5.1.2 Architektura programu . . . . . . . . . . . . . . . . . . 32
5.2 Výpo£et teploty a zpracování obrazu . . . . . . . . . . . . . . 33
5.2.1 Teplotní matice . . . . . . . . . . . . . . . . . . . . . . 35
5.2.2 Interpolace obrazu . . . . . . . . . . . . . . . . . . . . 36
5.2.3 Analýza pracovních oblastí . . . . . . . . . . . . . . . . 36
5.3 Alarmy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
5.3.1 Alarmy s denovanou hodnotou . . . . . . . . . . . . . 39
5.3.2 Dynamické alarmy . . . . . . . . . . . . . . . . . . . . 39
5.4 M¥°icí nástroje . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.4.1 M¥°ení uºivatelsky zvolených oblastí . . . . . . . . . . 40
5.4.2 Teplotní proly . . . . . . . . . . . . . . . . . . . . . . 42
5.4.3 Historie . . . . . . . . . . . . . . . . . . . . . . . . . . 42
5.5 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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
A.1.1 Terminology . . . . . . . . . . . . . . . . . . . . . . . . 55
A.2 Preparations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
A.2.1 General system requirements . . . . . . . . . . . . . . . 56
A.2.2 Hardware setup . . . . . . . . . . . . . . . . . . . . . . 56
A.3 Installing Thermo Safety 2013 . . . . . . . . . . . . . . . . . . 60
A.3.1 Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
A.3.2 Activation . . . . . . . . . . . . . . . . . . . . . . . . . 61
A.4 Cameras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
A.4.1 Connecting a camera . . . . . . . . . . . . . . . . . . . 64
A.4.2 Disconnecting a camera . . . . . . . . . . . . . . . . . 65
A.5 Alarms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
A.5.1 Setting up an alarm . . . . . . . . . . . . . . . . . . . 66
A.5.2 Raised alarms . . . . . . . . . . . . . . . . . . . . . . . 68
A.5.3 Deleting alarms . . . . . . . . . . . . . . . . . . . . . . 69
A.6 Sessions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
A.6.1 The Default session . . . . . . . . . . . . . . . . . . . . 70
A.6.2 User-created sessions . . . . . . . . . . . . . . . . . . . 70
A.7 Program settings . . . . . . . . . . . . . . . . . . . . . . . . . 71
A.7.1 Accounts . . . . . . . . . . . . . . . . . . . . . . . . . . 71
VII
A.7.2 Cameras . . . . . . . . . . . . . . . . . . . . . . . . . . 72
A.7.3 Sounds . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
A.7.4 View . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
A.7.5 Log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
A.8 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· . . . . . . . . . . . . . 39
16 Diagram t°íd pro m¥°icí nástroje . . . . . . . . . . . . . . . . 41
Seznam tabulek
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
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 vlast-
ního aplika£ního software pro IP kamery na p°íkladu návrhu a implemen-
tace 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·. ƒte-
ná° 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 stan-
dardy na poli termokamer, jejichº pochopení a ovládnutí je pro vývoj soft-
waru k t¥mto kamerám nezbytné. První £ást kapitoly je zam¥°ena na me-
chanismy 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 pro-
gramu 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¬o-
vá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 ne-
invazivní 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,
jejichº rychlost ve vakuu je c = 299 792 456 m · s−1
. 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 0, 4 µm do 0, 78 mm.
[1]
3
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 Stefan-Boltzmann·v
zákon [2]
E0 = σ · T4
[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-
mické teploty ( Stefan-Boltzamnnova konstanta σ = 5, 67 · 10−8
[W · m−2
·
K−4
]). 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]
I0,ϕ = I0,n · cos ϕ [W · m−2
· sr−2
] (2)
jenº zavádí 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í E0,λ maximální. Tuto frek-
venci m·ºeme pro konkrétní teplotu ur£it pomocí Wienova posunovacího
zákona. [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).
V praxi to znamená, ºe nap°íklad pro t¥leso o teplot¥ 600 K by m¥l bez-
dotykový teplom¥r pracovat v rozmezí vlnových délek od 2 do 10 µm. Pokud
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 spek-
trum 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 absolutn¥ £erná
t¥lesa, denovaná podle [2] následovn¥:
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 teore-
tický 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 Emisivita
2.2.1 ’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°o-
vací schopnosti v ur£itých rozsazích vlnových délek m¥ní. Pom¥r celkového
5
zá°ivého toku q, takového t¥lesa a zá°ivého toku q0, jeº za stejných podmínek
vyzá°í absolutn¥ £erné t¥leso, se nazývá emisivita ( ). Emisivita je bezroz-
m¥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.
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£i-
té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 uspokoji-
vou 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· bez-
dotykové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ý, zoxi-
dovaný,...) 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 nale-
zenou 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 nasta-
vení emisivity ode£teme teplotu a postupujeme analogicky jako v p°ed-
chozí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£as-
t¥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, po-
skytnout 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 pro-
stupný 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
teploty detektoru, upraví p°ijatá data a posílá výsledný termogram k uºi-
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 ka-
mer. 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
P°esnost
m¥°ení
Absolutní
chyba.
K, °C
±1°C
aº±5°C
Moºný posun
zm¥°ené
teploty od
reálné
NETD
Zm¥na
teploty, p°i
které
SNR
1
=1
K, °C
13 mK aº
150 mK
Teplotní
citlivost
FOV Zorné pole ° (úhel)
v závislosti
na optice
Detekovaná
oblast
IFOV
Velikost
rozli²itel-
ného
objektu.
mrad
v závislosti
na optice
Skute£ná
velikost
jednoho
obrazového
bodu v mm p°i
vzdálenosti 1
m od
m¥°eného
objektu
Obnovovací
frekvence
Frekvence
vytvá°ení
snímk·
Hz
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 GigE Vision, Gen-I-Cam
10
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
FLIR A5
FLIR
A15
FLIR
A35
FLIR
A65
Rozli²ení
detektoru [px]
80x64 160x128 320x256 640x512
FOV 44◦
x36◦
48◦
x39◦
48◦
x39◦
45◦
x37◦
IFOV [mrad] 10 5, 56 2, 78 1, 31
NETD  0.05◦
C p°i 30◦
C nebo 50 mK
Obnovovací
frekvence
60 Hz 60 Hz 60 Hz 9 Hz
Rozsah
m¥°ených
teplot
−40◦
C aº 160◦
C /−40◦
C aº 550◦
C
−40◦
C aº
160◦
C
P°esnost
m¥°ení
±5°C nebo ±5% z hodnoty
Tabulka 3: Technické specikace termokamer °ady FLIR Ax5[7]
11
FLIR A315 FLIR A615
Rozli²ení
detektoru [px]
320x240 640x480
FOV 25◦
x18, 8◦
IFOV [mrad] 1, 36 0, 69
NETD  0.05◦
C p°i 30◦
C nebo 50 mK
Obnovovací
frekvence
60 Hz 50 Hz-200 Hz2
Rozsah
m¥°ených
teplot
−20◦
C aº 120◦
C/0◦
C aº
350◦
C
−20◦
C aº 150◦
C/100◦
C
aº 650◦
C/300◦
C aº
2000◦
C
P°esnost
m¥°ení
±2°C nebo ±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-
ným a lehce upravitelným UTP kabel·m.
3
Rychlost p·vodního (klasického)
Ethernetu je 10 Mb/s, v dne²ní dob¥ je v²ak prakticky nejniº²ím standar-
dem Fast Ethernet, s p°enosovou rychlostí 100 Mb/s, který je jiº také
postupn¥ vytla£ován práv¥ Gigabit Ethernetem (zkracováno jako GbE £i
GigE), jeº p°ená²í data je²t¥ 10x rychleji a umoº¬uje tak p°enos rychlostí
aº 1 000 000 000 bit· za sekundu.
Varianta Fyzické médium Max. vzdálenost
1000BASE-T
Kroucená dvojlinka (UTP:
kat-5,5e,6,7)
100 m
1000BASE-TX
Kroucená dvojlinka (UTP:
kat-6,7)
100 m
1000BASE-CX Twinaxiální kabel 25 m
1000BASE-SX Mnohavidové optické vlákno 220 m - 550 m
1000BASE-LX
Mnoha/jednovidové optické
vlákno
500 m / 5 km
1000BASE-LX10
Jednovidové optické vlákno,
λ = 1, 310 nm
10 km
1000BASE-ZX10
Jednovidové optické vlákno,
λ = 1, 550 nm
70 km
1000BASE-BX10
Jednovidové optické vlákno,
λ = 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 En-
gineers - Institut pro elektrotechnické a elektronické inºenýrství) p°edstaven
3Pro 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é dvoj-
linky) 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á op-
tická 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 stan-
dardu 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í pri-
má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 obrazo-
vý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 nastavitel-
ných parametr·, které za°ízení podporuje. Zárove¬ popisuje datové typy jed-
notlivý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·mys-
lové) 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.
Sou£asná verze standardu navíc obsahuje je²t¥ moduly CLProtocol (verze
standardu pro kamery s rozhraním Camera Link), GenCP (obecný ovlá-
dací protokol pro Camera Link) a GenTL SFNC (doporu£ené názvy pro
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 Formát výstupu
3.2.1 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í jed-
noho 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
Kaºdý pixel je p°ená²en bu¤ jako 8, 14 nebo 16-bitová monochromatická
hodnota. V p°ípad¥ osmibitových pixel· je moºné z p°ijatých dat okamºit¥
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), na-
bízí termokamery také komprimované formáty výstupu. Tím se do procesu
p°enosu dat p°idávají dal²í dva procesy, a sice komprese (pomocí enkodéru)
a (na stran¥ p°ijíma£e) dekomprese (dekodér), které nejd°íve raw (tj.
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 ka-
pacity 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, bi-
tové hloubce 16 bit· a obnovovací frekvenci 60 Hz vejde na jeden disk DVD
pouze
kapacita DV D [B]
datov´y tok [Bps]
=
4, 38 · 10243
(640 · 480) · 2 · 60
≈ 127 s
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í roz-
sá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 vi-
deo 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é ko-
deky 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 VƒEG - Video
Coding Experts Group) v roce 2003. Hlavním cílem H.264 je vylep²it robust-
nost, 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°e-
hrá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 vy-
hledat. 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. Vzhle-
dem 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. AB 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 Vi-
sion kamer, tyto ale podporují pouze modely konkrétního výrobce a pro na-
vrº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í
podobnou BSD
4
, 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°edpo-
kládá hluboká znalost standardu a chybí tak tutoriály, na kterých by mohl
4Berkeley 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, do-
stupné 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· po-
uº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é eBUS Universal
Pro Driver, 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 Ple-
ora (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% testo-
vací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í pro-
vá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 po-
mocí 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 La-
bview 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 dispo-
zici jak pro C++ tak pro C#, obsahuje krom¥ knihoven navíc také Filter
Driver, 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 AB 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, Del-
phi, 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, po-
uºitých v této práci.[22]
Licence Active GigE pro jednoho vývojá°e p°ijde na $495 (9 680 K£
5
),
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 li-
cenci, 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 Discovery) hledat kompatibilní za°ízení v síti. Hle-
5Ceny v korunách jsou uvád¥ny podle st°edního kurzu ƒNB ze dne 3.5.2013
24
dání vrací seznam objekt· typu Camera, které je moºné voláním funkce
Open() p°ipojit a vytvo°it tak ovládací kanál, skrze který lze získat p°ístup
ke v²em uzl·m vlastností GenICam a do registr·. Hlavn¥ ale m·ºeme
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 kon-
trolu 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 ad-
resy a tuto adresu, p°i°adí si ji samo a tím je proces ukon£en. Samo-
z°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 mno-
hem 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 ob-
jektu 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°i-
pojit, 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, re-
start komunikace,...)
3. V p°ípad¥ úsp¥²ného spojení volá funkce pro konguraci a zji²t¥ní kon-
gurace 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 sys-
té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é termo-
gramy. 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·, hod-
nota 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 vlast-
nosti 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 nao-
pak. 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. Im-
plicitn¥ 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· Ge-
nICam a GigE Vision - kaºdá kamera má v²echny své funkce p°ehledn¥ se-
psané 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 ListSettingsNode CreateNodeTree(CCamera c, string p)
{
ListCNode features = c.GetSubFeatures(p);
ListSettingsNode childNodes = new ListSettingsNode ();
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 vlast-
nosti, 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 opa-
kuje. 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 Combo-
Box.
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
7
[13]
ƒtení Zápis Implementováno 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í.
6Krom¥ vý²e uvedených specikace GenICam obsahuje navíc dal²ích 25 typ· uzl·, ty
ale pro popis kongurace nejsou d·leºité
71 = Ano, 0 = Ne, * = Nezáleºí
30
5 Zpracování a interpretace m¥°ených dat
5.1 Navrºené softwarové °e²ení
5.1.1 Úvod
Program, který je t¥ºi²t¥m této práce jsem podle zadání implementoval v ja-
zyce 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-
pojení n¥kolika
8
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ál-
ní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 dis-
pozici 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 pro-
hlíº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, ob-
sahují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.
8Zá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 dvou-
vrstvost 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 zob-
razují 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· asyn-
chronní.
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 ka-
meru.
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 ob-
dé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
jsou ozna£eny konkrétní objekty
9
.
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.
9Zde 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í
na bitmapu, která je p°i°azena objektu Camera jako aktuální obraz. GUI
10
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.
10Graphic 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 bo-
dech 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 mo-
delových °ad. Proto bylo nutné navrhnout t°ídu Camera jako abstraktní
t°ídu, 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, stej-
né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 je vztah pro výpo£et teploty následující
T =
B
ln
R
S − O
+ F
[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 Kelvi-
nech 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, zodpo-
v¥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
£íslem 28
− 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=
teplota − teplotamin
teplotn´ı interval
Pevný rozsah 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á tep-
lota 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·sta-
nou 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¥koli-
krá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 pi-
xel·, 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 tep-
lot 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, na-
pln¥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º nasta-
vená 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é vlast-
nosti (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 ka-
me°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 pra-
covní 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 va-
rováním oranºov¥
11
.
5.3.1 Alarmy s denovanou hodnotou
Implementace alrm· typu Teplota nad a Teplota pod je, jak jiº název na-
povídá, velmi p°ímo£ará. P°i zpracování se projde seznam v²ech £tverc· z ob-
razu, 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 tep-
loty, 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á.
11Záleºí na nastavení programu.
39
’um tedy bylo nutné n¥jakým zp·sobem odstranit. To se provádí s vyuºi-
tí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
v =
n
i=1 τiti −
1
n
· n
i=1 τi · n
j=1 tj
n
j=1 τ2
i −
1
n
· n
j=1 τi
2 (5)
Pokud je tedy τ £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 °C/min
a °C/h. 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 in-
terval· 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 M¥°icí nástroje
5.4.1 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°. ob-
dé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ý, kon-
kré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 zobra-
zuje 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¥ (po-
kud 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 ne-
bude 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í vy-
uºí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.
12First 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 dru-
hé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 ma-
ximá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 ter-
mokamerový 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 li-
bosti 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 za-
chytá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 prin-
cipy 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 otesto-
val 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 po-
stavit 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í, odpojo-
vá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°aze-
ný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í vi-
dea) 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 dovo-
luje) teoreticky p°ipojit aº 50 kamer.
Výsledný program spl¬uje v²echny funk£ní i nefunk£ní poºadavky, uve-
dené 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, se-
lhávala. e²ení t¥chto problém· by mohlo spo£ívat v d·kladn¥j²ím prozkou-
má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 vi-
deo by také mohl být vytvo°en vlastní formát, zachovávající informace o tep-
lotách a tím umoº¬ující zp¥tnou analýzu termogram·.
46
.
47
.
48
Reference
[1] VAVIƒKA, 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°e-
pracované vydání. Vysoká ²kola bá¬ská - Technická univerzita Ostrava,
Ostrava, 2008.
[3] GRUNER, Klaus-Dieter. Principles of Non-Contact Teplota Measu-
rement. [online] Raytek, Berlín, 2003. Dostupné [27.4.2013] z: http:
//www.proheatinc.com/images/infrared/ir_theory.pdf.
[4] FLIR COMMERCIAL SYSTEMS: Thermal imaging cameras for buil-
ding inspections : building inspections, insulation, energy loss, plumbing
and piping. Flir Commercial Systems, Breda, 2012.
[5] KADLEC, Karel: Termograe a termodiagnostika: Termokamery,
p°edná²ka.[online] V’CHT, Praha, 2012. Dostupné [28.4.2013]
z: http://tresen.vscht.cz/ufmt/cs/component/joomdoc/doc_
download/718-tg7h.html
[6] CENTRUM TERMOGRAFIE: Termokamera - Základní parametry. [on-
line] Centrum termograe, Praha 2012. Dostupné [28.4.2013] z: http:
//www.centrumtermografie.cz/termokamera-zakladni-parametry/
[7] FLIR SYSTEMS, INC.: FLIR A65 / A35 / A15 / A5 Technical speci-
cations. [online] Flir, Wilsonville, 2013. Dostupné [28.4.2013] z: http:
//www.flir.com/cs/emea/en/view/?id=56345
[8] FLIR SYSTEMS, INC.: FLIR A315 / A615 Technical Specications.
[online] Flir, Wilsonville, 2013. Dostupné [28.4.2013] z: http://www.
flir.com/cs/emea/en/view/?id=41955
[9] KOCOUREK, Petr, NOVÁK, Ji°í: P°enos informace. Vydavatelství
ƒVUT, Praha, 2004.
[10] WIKIPEDIA: Gigabit Ethernet. [online] Wikipedia (en), 2013.
Dostupné [1.5.2013] z: http://en.wikipedia.org/wiki/Gigabit_
Ethernet#cite_ref-3
[11] AUTOMATED IMAGING ASSOCIATION: GigE Vision - True Plug
and Play Connectivity. [online] Automated Imaging Association, Ann
Arbor, 2013. Dostupné [1.5.2013] z: http://www.visiononline.org/
vision-standards-details.cfm?type=5
49
[12] BASLER: The Elements of GigE Vision. [online] Basler Vision Tech-
nologies, 2013. Dostupné [1.5.2013] z:http://www.machinevision.nl/
upload/File/PDF_whitepaper/GigEVisionWhitePaper.pdf
[13] DIERKS, Fritz: GenICam Standard 2.0. [online] European Ma-
chine Vision Association, 2009. Dostupné [1.5.2013] z:http:
//www.emva.org/cms/upload/Standards/GenICam_Downloads/
GenICam_Standard_v2_0.pdf
[14] TURNKEY, Adept: New GenICam standard for came-
ras. [online] Ferret, 2006. Dostupné [1.5.2013] z:http:
//www.ferret.com.au/c/Adept-Electronic-Solutions/
New-GenICam-standard-for-cameras-n666626
[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. Do-
stupné [4.5.2013] z:http://en.wikipedia.org/wiki/H.264/MPEG-4_
AVC
[18] OPEN SOURCE INITIATIVE: The BSD 2-Clause License. [on-
line] Open Source Initiative, 2013. Dostupné [4.5.2013] z:http://
opensource.org/licenses/BSD-2-Clause
[19] PLEORA: eBUS SDK Licensing. [online] Pleora Technologies, 2012. Do-
stupné [4.5.2013] z: http://ftp.elvitec.fr/Pleora/SDK-LOGICIEL/
ebus_sdk_licensing_application_note.pdf
[20] NATIONAL INSTRUMENTS: Buy Labview. [online] National Instru-
ments, 2013. Dostupné [5.5.2013] z: http://www.ni.com/labview/buy/
[21] NATIONAL INSTRUMENTS: NI Vision Development Module - Pro-
grammable Vision Functions. [online] National Instruments, 2013. Do-
stupné [5.5.2013] z: http://sine.ni.com/nips/cds/view/p/lang/cs/
nid/2881
[22] AB SOFTWARE: GigE Vision Library and API Compatibility List
[online] AB Software, 2013. Dostupné [5.5.2013] z: http://www.
ab-soft.com/gigelist.php
50
[23] AB SOFTWARE: Active GigE Price List [online] AB 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: http://www.ni.com/white-paper/5651/
en
[25] JAI: JAI SDK .NET Wrapper, manuál, verze 1.4.1. JAI, 2012
[26] CORINNA, John: A Simple C# Wrapper for the Avi-
File Library [online] Code Project, 2012. Dostupné
[19.5.2013] z: http://www.codeproject.com/Articles/7388/
A-Simple-C-Wrapper-for-the-AviFile-Library
[27] NATIONAL INSTRUMENTS: Acquiring from GigE Vision Cameras
with Vision Acquisition Software - Part II. [online] National Instruments,
2007. Dostupné [8.5.2013] z: http://www.ni.com/white-paper/5750/
en
51
Zdroje obrázk·
1. http://www.smtcentrum.cz/pajeni-pretavenim/pretaveni-...
...infracervenym-zarenim/
2. http://www.qtest.cz/bezdotykove-teplomery/bezdotykove-...
...mereni-teploty.htm
3. http://www.proheatinc.com/images/infrared/ir_theory.pdf
4. http://tresen.vscht.cz/ufmt/cs/component/joomdoc/...
...doc_download/718-tg7h.html
5. http://source.theengineer.co.uk/pictures/548xAny/...
...0/7/5/2027075_FLIR714-A15-camera-image-lr.jpg
6. http://www.ni.com/cms/images/devzone/tut/...
GigE%20Vision%20Cameras_GigE%20Vision%20Logo.PNG
7. http://www.machinevision.nl/upload/File/PDF_whitepaper/...
GigEVisionWhitePaper.pdf
8. 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 Manuál Getting Started (v angli£tin¥)
A.1 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 min-
utes 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
13Depends 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): 1 GB
HDD: At least 100 MB available hard disk space.
NIC: At least Fast Ethernet network adapter.
OS: Windows 7
Resolution: 1024x768 px
Recommended conguration
Processor: Intel Core i3
Memory(RAM): 4 GB
HDD: 1 GB available hard disk space
NIC: 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 resolu-
tions. 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 cam-
eras 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 sys-
tem 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 (StartControl 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 lim-
ited 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 Many corporate networks employ rewalls for network se-
curity. 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 Stan-
dard 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 Installing Thermo Safety 2013
A.3.1 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.
14WARNING: 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
Click the Authenticate button.
17
Inserting serial number
15NOTE: The serial number is also contained in email, you will recieve after activation,
as well as your administrator credentials.
16If the number you are about to enter is a trial serial number, you don't have to enter
your email address again.
17NOTE: Next steps doesn't apply for trial users, who will recieve conrmation after
clicking Authenticate right away.
62
thesis
thesis
thesis
thesis
thesis
thesis
thesis
thesis
thesis
thesis
thesis
thesis
thesis
thesis
thesis
thesis
thesis
thesis

More Related Content

Similar to thesis

filip-zavadil-dp-2013
filip-zavadil-dp-2013filip-zavadil-dp-2013
filip-zavadil-dp-2013
Filip Zavadil
 
Loskot_Bachelor_Thesis
Loskot_Bachelor_ThesisLoskot_Bachelor_Thesis
Loskot_Bachelor_Thesis
Martin Loskot
 
Loskot_Diploma_Thesis
Loskot_Diploma_ThesisLoskot_Diploma_Thesis
Loskot_Diploma_Thesis
Martin Loskot
 
006 ba_zv2_ev45-50 - 08-2013_cs
006  ba_zv2_ev45-50 - 08-2013_cs006  ba_zv2_ev45-50 - 08-2013_cs
006 ba_zv2_ev45-50 - 08-2013_cs
ZdenkKahoun1
 
filip-zavadil-bp-2011
filip-zavadil-bp-2011filip-zavadil-bp-2011
filip-zavadil-bp-2011
Filip Zavadil
 
Viktor Kajml bachelor thesis
Viktor Kajml bachelor thesisViktor Kajml bachelor thesis
Viktor Kajml bachelor thesis
kajmlv
 
Základy informatiky pro ekonomy 1(1)
Základy informatiky pro ekonomy 1(1)Základy informatiky pro ekonomy 1(1)
Základy informatiky pro ekonomy 1(1)
Petra Pitrová
 
0a5ad0ee c2e3-11e7-9dec-6cae8b4eb554.data
0a5ad0ee c2e3-11e7-9dec-6cae8b4eb554.data0a5ad0ee c2e3-11e7-9dec-6cae8b4eb554.data
0a5ad0ee c2e3-11e7-9dec-6cae8b4eb554.data
Edson Silva
 
ČTÚ D-Book, 4.03, srpen 2016
ČTÚ D-Book, 4.03, srpen 2016ČTÚ D-Book, 4.03, srpen 2016
ČTÚ D-Book, 4.03, srpen 2016
Jan Brychta
 
0a3d108a f490-11e8-9be7-6cae8b4eb554.data
0a3d108a f490-11e8-9be7-6cae8b4eb554.data0a3d108a f490-11e8-9be7-6cae8b4eb554.data
0a3d108a f490-11e8-9be7-6cae8b4eb554.data
Edson Silva
 
Lukáš Todorov - Využití Business Intelligence v soukromém a veřejném sektoru
Lukáš Todorov - Využití Business Intelligence v soukromém a veřejném sektoruLukáš Todorov - Využití Business Intelligence v soukromém a veřejném sektoru
Lukáš Todorov - Využití Business Intelligence v soukromém a veřejném sektoru
Lukáš Todorov
 

Similar to thesis (20)

filip-zavadil-dp-2013
filip-zavadil-dp-2013filip-zavadil-dp-2013
filip-zavadil-dp-2013
 
Loskot_Bachelor_Thesis
Loskot_Bachelor_ThesisLoskot_Bachelor_Thesis
Loskot_Bachelor_Thesis
 
Hydrologické analýzy v distribuovaném prostředí
Hydrologické analýzy v distribuovaném prostředíHydrologické analýzy v distribuovaném prostředí
Hydrologické analýzy v distribuovaném prostředí
 
Loskot_Diploma_Thesis
Loskot_Diploma_ThesisLoskot_Diploma_Thesis
Loskot_Diploma_Thesis
 
006 ba_zv2_ev45-50 - 08-2013_cs
006  ba_zv2_ev45-50 - 08-2013_cs006  ba_zv2_ev45-50 - 08-2013_cs
006 ba_zv2_ev45-50 - 08-2013_cs
 
006 ba_zv2_ev45-50 - 08-2013_cs
006  ba_zv2_ev45-50 - 08-2013_cs006  ba_zv2_ev45-50 - 08-2013_cs
006 ba_zv2_ev45-50 - 08-2013_cs
 
002 ba hydraulik_09-2018_cs
002 ba hydraulik_09-2018_cs002 ba hydraulik_09-2018_cs
002 ba hydraulik_09-2018_cs
 
User print 2
User print 2User print 2
User print 2
 
filip-zavadil-bp-2011
filip-zavadil-bp-2011filip-zavadil-bp-2011
filip-zavadil-bp-2011
 
Viktor Kajml bachelor thesis
Viktor Kajml bachelor thesisViktor Kajml bachelor thesis
Viktor Kajml bachelor thesis
 
Základy informatiky pro ekonomy 1(1)
Základy informatiky pro ekonomy 1(1)Základy informatiky pro ekonomy 1(1)
Základy informatiky pro ekonomy 1(1)
 
0a5ad0ee c2e3-11e7-9dec-6cae8b4eb554.data
0a5ad0ee c2e3-11e7-9dec-6cae8b4eb554.data0a5ad0ee c2e3-11e7-9dec-6cae8b4eb554.data
0a5ad0ee c2e3-11e7-9dec-6cae8b4eb554.data
 
ČTÚ D-Book, 4.03, srpen 2016
ČTÚ D-Book, 4.03, srpen 2016ČTÚ D-Book, 4.03, srpen 2016
ČTÚ D-Book, 4.03, srpen 2016
 
EET Specifikace projektu final_v22
EET Specifikace projektu final_v22EET Specifikace projektu final_v22
EET Specifikace projektu final_v22
 
0a3d108a f490-11e8-9be7-6cae8b4eb554.data
0a3d108a f490-11e8-9be7-6cae8b4eb554.data0a3d108a f490-11e8-9be7-6cae8b4eb554.data
0a3d108a f490-11e8-9be7-6cae8b4eb554.data
 
Lukáš Todorov - Využití Business Intelligence v soukromém a veřejném sektoru
Lukáš Todorov - Využití Business Intelligence v soukromém a veřejném sektoruLukáš Todorov - Využití Business Intelligence v soukromém a veřejném sektoru
Lukáš Todorov - Využití Business Intelligence v soukromém a veřejném sektoru
 
Elektro
ElektroElektro
Elektro
 
Diplomka
DiplomkaDiplomka
Diplomka
 
Diplomka2
Diplomka2Diplomka2
Diplomka2
 
Seo kniha
Seo knihaSeo kniha
Seo kniha
 

thesis

  • 1. ƒ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
  • 2. .
  • 3.
  • 4. .
  • 5.
  • 6. .
  • 7. 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 tem- perature 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 imple- mented 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
  • 8. . V
  • 9. Obsah 1 Úvod 1 2 Termokamery a bezdotykové m¥°ení teploty 3 2.1 P°enos tepla zá°ením . . . . . . . . . . . . . . . . . . . . . . . 3 2.1.1 Absolutn¥ £erné t¥leso . . . . . . . . . . . . . . . . . . 5 2.2 Emisivita . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.2.1 ’edé t¥leso . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.2.2 Ur£ení emisivity . . . . . . . . . . . . . . . . . . . . . . 6 2.2.3 Emisivity n¥kterých materiál· . . . . . . . . . . . . . . 7 2.3 Termokamery . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 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 13 3.1 Protokoly a standardy pro p°enos dat . . . . . . . . . . . . . . 13 3.1.1 Gigabit Ethernet . . . . . . . . . . . . . . . . . . . . . 13 3.1.2 GigE Vision . . . . . . . . . . . . . . . . . . . . . . . . 14 3.1.3 GenICam . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.2 Formát výstupu . . . . . . . . . . . . . . . . . . . . . . . . . . 17 3.2.1 Streamované bitmapy . . . . . . . . . . . . . . . . . . . 17 3.2.2 MPEG-4 Visual, H.264 . . . . . . . . . . . . . . . . . . 18 4 Komunikace s kamerou 21 4.1 Softwarové nástroje pro GigE Vision . . . . . . . . . . . . . . 21 4.1.1 Referen£ní implementace standardu GenICam . . . . . 21 4.1.2 Pleora eBUS SDK . . . . . . . . . . . . . . . . . . . . 22 4.1.3 NI Labview + Vision Development Module . . . . . . . 22 4.1.4 JAI SDK . . . . . . . . . . . . . . . . . . . . . . . . . 23 4.1.5 AB Software Active GigE . . . . . . . . . . . . . . . 24 4.2 JAI SDK: Základní kámen systému . . . . . . . . . . . . . . . 24 4.2.1 Struktura SDK . . . . . . . . . . . . . . . . . . . . . . 24 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 31 5.1 Navrºené softwarové °e²ení . . . . . . . . . . . . . . . . . . . . 31 5.1.1 Úvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 VI
  • 10. 5.1.2 Architektura programu . . . . . . . . . . . . . . . . . . 32 5.2 Výpo£et teploty a zpracování obrazu . . . . . . . . . . . . . . 33 5.2.1 Teplotní matice . . . . . . . . . . . . . . . . . . . . . . 35 5.2.2 Interpolace obrazu . . . . . . . . . . . . . . . . . . . . 36 5.2.3 Analýza pracovních oblastí . . . . . . . . . . . . . . . . 36 5.3 Alarmy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 5.3.1 Alarmy s denovanou hodnotou . . . . . . . . . . . . . 39 5.3.2 Dynamické alarmy . . . . . . . . . . . . . . . . . . . . 39 5.4 M¥°icí nástroje . . . . . . . . . . . . . . . . . . . . . . . . . . 40 5.4.1 M¥°ení uºivatelsky zvolených oblastí . . . . . . . . . . 40 5.4.2 Teplotní proly . . . . . . . . . . . . . . . . . . . . . . 42 5.4.3 Historie . . . . . . . . . . . . . . . . . . . . . . . . . . 42 5.5 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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 A.1.1 Terminology . . . . . . . . . . . . . . . . . . . . . . . . 55 A.2 Preparations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 A.2.1 General system requirements . . . . . . . . . . . . . . . 56 A.2.2 Hardware setup . . . . . . . . . . . . . . . . . . . . . . 56 A.3 Installing Thermo Safety 2013 . . . . . . . . . . . . . . . . . . 60 A.3.1 Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 A.3.2 Activation . . . . . . . . . . . . . . . . . . . . . . . . . 61 A.4 Cameras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 A.4.1 Connecting a camera . . . . . . . . . . . . . . . . . . . 64 A.4.2 Disconnecting a camera . . . . . . . . . . . . . . . . . 65 A.5 Alarms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 A.5.1 Setting up an alarm . . . . . . . . . . . . . . . . . . . 66 A.5.2 Raised alarms . . . . . . . . . . . . . . . . . . . . . . . 68 A.5.3 Deleting alarms . . . . . . . . . . . . . . . . . . . . . . 69 A.6 Sessions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 A.6.1 The Default session . . . . . . . . . . . . . . . . . . . . 70 A.6.2 User-created sessions . . . . . . . . . . . . . . . . . . . 70 A.7 Program settings . . . . . . . . . . . . . . . . . . . . . . . . . 71 A.7.1 Accounts . . . . . . . . . . . . . . . . . . . . . . . . . . 71 VII
  • 11. A.7.2 Cameras . . . . . . . . . . . . . . . . . . . . . . . . . . 72 A.7.3 Sounds . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 A.7.4 View . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 A.7.5 Log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 A.8 Feedback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 B Seznam pouºitých zkratek 77 C Obsah p°iloºeného CD 79 VIII
  • 12. 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· . . . . . . . . . . . . . 39 16 Diagram t°íd pro m¥°icí nástroje . . . . . . . . . . . . . . . . 41 Seznam tabulek 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 IX
  • 13. . X
  • 14. .
  • 15. 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 vlast- ního aplika£ního software pro IP kamery na p°íkladu návrhu a implemen- tace 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·. ƒte- ná° 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 stan- dardy na poli termokamer, jejichº pochopení a ovládnutí je pro vývoj soft- waru k t¥mto kamerám nezbytné. První £ást kapitoly je zam¥°ena na me- chanismy 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 pro- gramu 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
  • 16. . 2
  • 17. 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¬o- vá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 ne- invazivní 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, jejichº rychlost ve vakuu je c = 299 792 456 m · s−1 . 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 0, 4 µm do 0, 78 mm. [1] 3
  • 18. 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 Stefan-Boltzmann·v zákon [2] E0 = σ · T4 [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- mické teploty ( Stefan-Boltzamnnova konstanta σ = 5, 67 · 10−8 [W · m−2 · K−4 ]). 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] I0,ϕ = I0,n · cos ϕ [W · m−2 · sr−2 ] (2) jenº zavádí 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
  • 19. 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í E0,λ maximální. Tuto frek- venci m·ºeme pro konkrétní teplotu ur£it pomocí Wienova posunovacího zákona. [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). V praxi to znamená, ºe nap°íklad pro t¥leso o teplot¥ 600 K by m¥l bez- dotykový teplom¥r pracovat v rozmezí vlnových délek od 2 do 10 µm. Pokud 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 spek- trum 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 absolutn¥ £erná t¥lesa, denovaná podle [2] následovn¥: 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 teore- tický 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 Emisivita 2.2.1 ’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°o- vací schopnosti v ur£itých rozsazích vlnových délek m¥ní. Pom¥r celkového 5
  • 20. zá°ivého toku q, takového t¥lesa a zá°ivého toku q0, jeº za stejných podmínek vyzá°í absolutn¥ £erné t¥leso, se nazývá emisivita ( ). Emisivita je bezroz- m¥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. 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£i- té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 uspokoji- vou 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· bez- dotykové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ý, zoxi- dovaný,...) m·ºe ovlivnit hodnotu emisivity více, neº materiál samotný. 6
  • 21. 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 nale- zenou 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 nasta- vení emisivity ode£teme teplotu a postupujeme analogicky jako v p°ed- chozí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
  • 22. ného obrazu není moºné ur£it konkrétní hodnoty veli£iny. Mezi nej£as- t¥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, po- skytnout 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 pro- stupný 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
  • 23. 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 teploty detektoru, upraví p°ijatá data a posílá výsledný termogram k uºi- 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 ka- mer. U stacionárních tyto úkony zaji²´uje p°es komunika£ní za°ízení kamery po£íta£.[5] 9
  • 24. 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 P°esnost m¥°ení Absolutní chyba. K, °C ±1°C aº±5°C Moºný posun zm¥°ené teploty od reálné NETD Zm¥na teploty, p°i které SNR 1 =1 K, °C 13 mK aº 150 mK Teplotní citlivost FOV Zorné pole ° (úhel) v závislosti na optice Detekovaná oblast IFOV Velikost rozli²itel- ného objektu. mrad v závislosti na optice Skute£ná velikost jednoho obrazového bodu v mm p°i vzdálenosti 1 m od m¥°eného objektu Obnovovací frekvence Frekvence vytvá°ení snímk· Hz 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 GigE Vision, Gen-I-Cam 10
  • 25. 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 FLIR A5 FLIR A15 FLIR A35 FLIR A65 Rozli²ení detektoru [px] 80x64 160x128 320x256 640x512 FOV 44◦ x36◦ 48◦ x39◦ 48◦ x39◦ 45◦ x37◦ IFOV [mrad] 10 5, 56 2, 78 1, 31 NETD 0.05◦ C p°i 30◦ C nebo 50 mK Obnovovací frekvence 60 Hz 60 Hz 60 Hz 9 Hz Rozsah m¥°ených teplot −40◦ C aº 160◦ C /−40◦ C aº 550◦ C −40◦ C aº 160◦ C P°esnost m¥°ení ±5°C nebo ±5% z hodnoty Tabulka 3: Technické specikace termokamer °ady FLIR Ax5[7] 11
  • 26. FLIR A315 FLIR A615 Rozli²ení detektoru [px] 320x240 640x480 FOV 25◦ x18, 8◦ IFOV [mrad] 1, 36 0, 69 NETD 0.05◦ C p°i 30◦ C nebo 50 mK Obnovovací frekvence 60 Hz 50 Hz-200 Hz2 Rozsah m¥°ených teplot −20◦ C aº 120◦ C/0◦ C aº 350◦ C −20◦ C aº 150◦ C/100◦ C aº 650◦ C/300◦ C aº 2000◦ C P°esnost m¥°ení ±2°C nebo ±2% z hodnoty Tabulka 4: Technické specikace termokamer °ady FLIR Ax15[8] 12
  • 27. 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- ným a lehce upravitelným UTP kabel·m. 3 Rychlost p·vodního (klasického) Ethernetu je 10 Mb/s, v dne²ní dob¥ je v²ak prakticky nejniº²ím standar- dem Fast Ethernet, s p°enosovou rychlostí 100 Mb/s, který je jiº také postupn¥ vytla£ován práv¥ Gigabit Ethernetem (zkracováno jako GbE £i GigE), jeº p°ená²í data je²t¥ 10x rychleji a umoº¬uje tak p°enos rychlostí aº 1 000 000 000 bit· za sekundu. Varianta Fyzické médium Max. vzdálenost 1000BASE-T Kroucená dvojlinka (UTP: kat-5,5e,6,7) 100 m 1000BASE-TX Kroucená dvojlinka (UTP: kat-6,7) 100 m 1000BASE-CX Twinaxiální kabel 25 m 1000BASE-SX Mnohavidové optické vlákno 220 m - 550 m 1000BASE-LX Mnoha/jednovidové optické vlákno 500 m / 5 km 1000BASE-LX10 Jednovidové optické vlákno, λ = 1, 310 nm 10 km 1000BASE-ZX10 Jednovidové optické vlákno, λ = 1, 550 nm 70 km 1000BASE-BX10 Jednovidové optické vlákno, λ = 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 En- gineers - Institut pro elektrotechnické a elektronické inºenýrství) p°edstaven 3Pro varianty 10/100/1000BASE-T 13
  • 28. 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é dvoj- linky) 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á op- tická 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 stan- dardu 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
  • 29. 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í pri- má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 obrazo- vý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 nastavitel- ných parametr·, které za°ízení podporuje. Zárove¬ popisuje datové typy jed- notlivý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·mys- lové) 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
  • 30. 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
  • 31. 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. Sou£asná verze standardu navíc obsahuje je²t¥ moduly CLProtocol (verze standardu pro kamery s rozhraním Camera Link), GenCP (obecný ovlá- dací protokol pro Camera Link) a GenTL SFNC (doporu£ené názvy pro 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 Formát výstupu 3.2.1 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í jed- noho 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
  • 32. Kaºdý pixel je p°ená²en bu¤ jako 8, 14 nebo 16-bitová monochromatická hodnota. V p°ípad¥ osmibitových pixel· je moºné z p°ijatých dat okamºit¥ 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), na- bízí termokamery také komprimované formáty výstupu. Tím se do procesu p°enosu dat p°idávají dal²í dva procesy, a sice komprese (pomocí enkodéru) a (na stran¥ p°ijíma£e) dekomprese (dekodér), které nejd°íve raw (tj. 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 ka- pacity 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, bi- tové hloubce 16 bit· a obnovovací frekvenci 60 Hz vejde na jeden disk DVD pouze kapacita DV D [B] datov´y tok [Bps] = 4, 38 · 10243 (640 · 480) · 2 · 60 ≈ 127 s 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í roz- sá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 vi- deo 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
  • 33. 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é ko- deky 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 VƒEG - Video Coding Experts Group) v roce 2003. Hlavním cílem H.264 je vylep²it robust- nost, 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°e- hrá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
  • 34. . 20
  • 35. 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 vy- hledat. 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. Vzhle- dem 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. AB 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 Vi- sion kamer, tyto ale podporují pouze modely konkrétního výrobce a pro na- vrº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í podobnou BSD 4 , 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°edpo- kládá hluboká znalost standardu a chybí tak tutoriály, na kterých by mohl 4Berkeley Software Distribution 21
  • 36. 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, do- stupné 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· po- uº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é eBUS Universal Pro Driver, 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 Ple- ora (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% testo- vací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í pro- vá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
  • 37. 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 po- mocí 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 La- bview 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 dispo- zici jak pro C++ tak pro C#, obsahuje krom¥ knihoven navíc také Filter Driver, 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
  • 38. 4.1.5 AB 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, Del- phi, 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, po- uºitých v této práci.[22] Licence Active GigE pro jednoho vývojá°e p°ijde na $495 (9 680 K£ 5 ), 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 li- cenci, 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 Discovery) hledat kompatibilní za°ízení v síti. Hle- 5Ceny v korunách jsou uvád¥ny podle st°edního kurzu ƒNB ze dne 3.5.2013 24
  • 39. dání vrací seznam objekt· typu Camera, které je moºné voláním funkce Open() p°ipojit a vytvo°it tak ovládací kanál, skrze který lze získat p°ístup ke v²em uzl·m vlastností GenICam a do registr·. Hlavn¥ ale m·ºeme 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 kon- trolu 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
  • 40. 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 ad- resy a tuto adresu, p°i°adí si ji samo a tím je proces ukon£en. Samo- z°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
  • 41. 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 mno- hem 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 ob- jektu 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°i- pojit, 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, re- start komunikace,...) 3. V p°ípad¥ úsp¥²ného spojení volá funkce pro konguraci a zji²t¥ní kon- gurace 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 sys- té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é termo- gramy. Kv·li odli²nému zp·sobu p°epo£tu hodnoty pixelu na teplotu 27
  • 42. 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·, hod- nota 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 vlast- nosti 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 nao- pak. 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. Im- plicitn¥ 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
  • 43. 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· Ge- nICam a GigE Vision - kaºdá kamera má v²echny své funkce p°ehledn¥ se- psané 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 ListSettingsNode CreateNodeTree(CCamera c, string p) { ListCNode features = c.GetSubFeatures(p); ListSettingsNode childNodes = new ListSettingsNode (); 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 vlast- nosti, ale p°íkazy, nebo pokud neodpovídají nastavené odbornosti vý£tu (dá 29
  • 44. 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 opa- kuje. 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 Combo- Box. 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 7 [13] ƒtení Zápis Implementováno 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í. 6Krom¥ vý²e uvedených specikace GenICam obsahuje navíc dal²ích 25 typ· uzl·, ty ale pro popis kongurace nejsou d·leºité 71 = Ano, 0 = Ne, * = Nezáleºí 30
  • 45. 5 Zpracování a interpretace m¥°ených dat 5.1 Navrºené softwarové °e²ení 5.1.1 Úvod Program, který je t¥ºi²t¥m této práce jsem podle zadání implementoval v ja- zyce 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- pojení n¥kolika 8 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ál- ní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 dis- pozici 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 pro- hlíº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, ob- sahují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. 8Záleºí na po£tu kamer, který je uveden v licenci k programu. Trial verze umoº¬uje p°ipojení dvou kamer sou£asn¥ 31
  • 46. 5.1.2 Architektura programu P°i vývoji objektového návrhu aplikace byl kladen nejv¥t²í d·raz na dvou- vrstvost 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 zob- razují 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· asyn- chronní. 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
  • 47. 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 ka- meru. 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 ob- dé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 jsou ozna£eny konkrétní objekty 9 . 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. 9Zde je pro srozumitelnost diagramu pouºita £e²tina, ve skute£ném kódu se jednotlivé objekty mohou jmenovat jinak 33
  • 48. 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í na bitmapu, která je p°i°azena objektu Camera jako aktuální obraz. GUI 10 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. 10Graphic User Interface - Gracké uºivatelské rozhraní 34
  • 49. 5.2.1 Teplotní matice Jakkoliv by to bylo pohodlné, výstupní hodnoty signálu v jednotlivých bo- dech 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 mo- delových °ad. Proto bylo nutné navrhnout t°ídu Camera jako abstraktní t°ídu, 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, stej- né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 je vztah pro výpo£et teploty následující T = B ln R S − O + F [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 Kelvi- nech 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, zodpo- v¥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
  • 50. 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 £íslem 28 − 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= teplota − teplotamin teplotn´ı interval Pevný rozsah 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á tep- lota 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·sta- nou 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
  • 51. 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¥koli- krá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 pi- xel·, coº je nejmen²í oblast, v jaké lze nastavit parametry pro limity teploty. 37
  • 52. 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 tep- lot 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, na- pln¥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º nasta- vená 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é vlast- nosti (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
  • 53. Obrázek 15: Diagram t°íd pro implementaci alarm· Zpracování alarmu pokaºdé za£íná vyvoláním události Recalculated v ka- me°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 pra- covní 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 va- rováním oranºov¥ 11 . 5.3.1 Alarmy s denovanou hodnotou Implementace alrm· typu Teplota nad a Teplota pod je, jak jiº název na- povídá, velmi p°ímo£ará. P°i zpracování se projde seznam v²ech £tverc· z ob- razu, 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 tep- loty, 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á. 11Záleºí na nastavení programu. 39
  • 54. ’um tedy bylo nutné n¥jakým zp·sobem odstranit. To se provádí s vyuºi- tí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 v = n i=1 τiti − 1 n · n i=1 τi · n j=1 tj n j=1 τ2 i − 1 n · n j=1 τi 2 (5) Pokud je tedy τ £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 °C/min a °C/h. 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 in- terval· 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 M¥°icí nástroje 5.4.1 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
  • 55. 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°. ob- dé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ý, kon- kré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 zobra- zuje 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
  • 56. 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¥ (po- kud 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 ne- bude 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
  • 57. ˆ 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í vy- uºí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. 12First In First Out - První dovnit°, první ven. 43
  • 58. 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 dru- hé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 ma- ximá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
  • 59. 6 Záv¥r Cílem této práce bylo navrhnout pro rmu Workswell software pro IP ter- mokamerový 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 li- bosti 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 za- chytá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 prin- cipy 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 otesto- val 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 po- stavit 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í, odpojo- vá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°aze- ný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í vi- dea) zhruba 250 MB. Z t¥chto dat jsem usoudil, ºe navrºené algoritmy pro 45
  • 60. 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 dovo- luje) teoreticky p°ipojit aº 50 kamer. Výsledný program spl¬uje v²echny funk£ní i nefunk£ní poºadavky, uve- dené 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, se- lhávala. e²ení t¥chto problém· by mohlo spo£ívat v d·kladn¥j²ím prozkou- má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 vi- deo by také mohl být vytvo°en vlastní formát, zachovávající informace o tep- lotách a tím umoº¬ující zp¥tnou analýzu termogram·. 46
  • 61. . 47
  • 62. . 48
  • 63. Reference [1] VAVIƒKA, 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°e- pracované vydání. Vysoká ²kola bá¬ská - Technická univerzita Ostrava, Ostrava, 2008. [3] GRUNER, Klaus-Dieter. Principles of Non-Contact Teplota Measu- rement. [online] Raytek, Berlín, 2003. Dostupné [27.4.2013] z: http: //www.proheatinc.com/images/infrared/ir_theory.pdf. [4] FLIR COMMERCIAL SYSTEMS: Thermal imaging cameras for buil- ding inspections : building inspections, insulation, energy loss, plumbing and piping. Flir Commercial Systems, Breda, 2012. [5] KADLEC, Karel: Termograe a termodiagnostika: Termokamery, p°edná²ka.[online] V’CHT, Praha, 2012. Dostupné [28.4.2013] z: http://tresen.vscht.cz/ufmt/cs/component/joomdoc/doc_ download/718-tg7h.html [6] CENTRUM TERMOGRAFIE: Termokamera - Základní parametry. [on- line] Centrum termograe, Praha 2012. Dostupné [28.4.2013] z: http: //www.centrumtermografie.cz/termokamera-zakladni-parametry/ [7] FLIR SYSTEMS, INC.: FLIR A65 / A35 / A15 / A5 Technical speci- cations. [online] Flir, Wilsonville, 2013. Dostupné [28.4.2013] z: http: //www.flir.com/cs/emea/en/view/?id=56345 [8] FLIR SYSTEMS, INC.: FLIR A315 / A615 Technical Specications. [online] Flir, Wilsonville, 2013. Dostupné [28.4.2013] z: http://www. flir.com/cs/emea/en/view/?id=41955 [9] KOCOUREK, Petr, NOVÁK, Ji°í: P°enos informace. Vydavatelství ƒVUT, Praha, 2004. [10] WIKIPEDIA: Gigabit Ethernet. [online] Wikipedia (en), 2013. Dostupné [1.5.2013] z: http://en.wikipedia.org/wiki/Gigabit_ Ethernet#cite_ref-3 [11] AUTOMATED IMAGING ASSOCIATION: GigE Vision - True Plug and Play Connectivity. [online] Automated Imaging Association, Ann Arbor, 2013. Dostupné [1.5.2013] z: http://www.visiononline.org/ vision-standards-details.cfm?type=5 49
  • 64. [12] BASLER: The Elements of GigE Vision. [online] Basler Vision Tech- nologies, 2013. Dostupné [1.5.2013] z:http://www.machinevision.nl/ upload/File/PDF_whitepaper/GigEVisionWhitePaper.pdf [13] DIERKS, Fritz: GenICam Standard 2.0. [online] European Ma- chine Vision Association, 2009. Dostupné [1.5.2013] z:http: //www.emva.org/cms/upload/Standards/GenICam_Downloads/ GenICam_Standard_v2_0.pdf [14] TURNKEY, Adept: New GenICam standard for came- ras. [online] Ferret, 2006. Dostupné [1.5.2013] z:http: //www.ferret.com.au/c/Adept-Electronic-Solutions/ New-GenICam-standard-for-cameras-n666626 [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. Do- stupné [4.5.2013] z:http://en.wikipedia.org/wiki/H.264/MPEG-4_ AVC [18] OPEN SOURCE INITIATIVE: The BSD 2-Clause License. [on- line] Open Source Initiative, 2013. Dostupné [4.5.2013] z:http:// opensource.org/licenses/BSD-2-Clause [19] PLEORA: eBUS SDK Licensing. [online] Pleora Technologies, 2012. Do- stupné [4.5.2013] z: http://ftp.elvitec.fr/Pleora/SDK-LOGICIEL/ ebus_sdk_licensing_application_note.pdf [20] NATIONAL INSTRUMENTS: Buy Labview. [online] National Instru- ments, 2013. Dostupné [5.5.2013] z: http://www.ni.com/labview/buy/ [21] NATIONAL INSTRUMENTS: NI Vision Development Module - Pro- grammable Vision Functions. [online] National Instruments, 2013. Do- stupné [5.5.2013] z: http://sine.ni.com/nips/cds/view/p/lang/cs/ nid/2881 [22] AB SOFTWARE: GigE Vision Library and API Compatibility List [online] AB Software, 2013. Dostupné [5.5.2013] z: http://www. ab-soft.com/gigelist.php 50
  • 65. [23] AB SOFTWARE: Active GigE Price List [online] AB 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: http://www.ni.com/white-paper/5651/ en [25] JAI: JAI SDK .NET Wrapper, manuál, verze 1.4.1. JAI, 2012 [26] CORINNA, John: A Simple C# Wrapper for the Avi- File Library [online] Code Project, 2012. Dostupné [19.5.2013] z: http://www.codeproject.com/Articles/7388/ A-Simple-C-Wrapper-for-the-AviFile-Library [27] NATIONAL INSTRUMENTS: Acquiring from GigE Vision Cameras with Vision Acquisition Software - Part II. [online] National Instruments, 2007. Dostupné [8.5.2013] z: http://www.ni.com/white-paper/5750/ en 51
  • 66. Zdroje obrázk· 1. http://www.smtcentrum.cz/pajeni-pretavenim/pretaveni-... ...infracervenym-zarenim/ 2. http://www.qtest.cz/bezdotykove-teplomery/bezdotykove-... ...mereni-teploty.htm 3. http://www.proheatinc.com/images/infrared/ir_theory.pdf 4. http://tresen.vscht.cz/ufmt/cs/component/joomdoc/... ...doc_download/718-tg7h.html 5. http://source.theengineer.co.uk/pictures/548xAny/... ...0/7/5/2027075_FLIR714-A15-camera-image-lr.jpg 6. http://www.ni.com/cms/images/devzone/tut/... GigE%20Vision%20Cameras_GigE%20Vision%20Logo.PNG 7. http://www.machinevision.nl/upload/File/PDF_whitepaper/... GigEVisionWhitePaper.pdf 8. 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
  • 67. . 53
  • 68. . 54
  • 69. A Manuál Getting Started (v angli£tin¥) A.1 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 min- utes 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 13Depends on your network and hardware conguration 55
  • 70. A.2 Preparations A.2.1 General system requirements Minimal requirements Processor: Intel Core 2 Duo or equivalent Memory(RAM): 1 GB HDD: At least 100 MB available hard disk space. NIC: At least Fast Ethernet network adapter. OS: Windows 7 Resolution: 1024x768 px Recommended conguration Processor: Intel Core i3 Memory(RAM): 4 GB HDD: 1 GB available hard disk space NIC: 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
  • 71. 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 resolu- tions. 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 cam- eras 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 sys- tem 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
  • 72. 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 (StartControl 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 lim- ited 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 Many corporate networks employ rewalls for network se- curity. However, you cannot acquire from GigE Vision cameras with the 58
  • 73. 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 Stan- dard 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
  • 74. A.3 Installing Thermo Safety 2013 A.3.1 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. 14WARNING: If you don't reboot the computer after the installation it is likely that you won't be able to work with cameras. 60
  • 75. 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
  • 76. 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 Click the Authenticate button. 17 Inserting serial number 15NOTE: The serial number is also contained in email, you will recieve after activation, as well as your administrator credentials. 16If the number you are about to enter is a trial serial number, you don't have to enter your email address again. 17NOTE: Next steps doesn't apply for trial users, who will recieve conrmation after clicking Authenticate right away. 62