VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY
|
|
- Jarmila Veselá
- před 8 lety
- Počet zobrazení:
Transkript
1 VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV POČÍTAČOVÉ GRAFIKY A MULTIMÉDIÍ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER GRAPHICS AND MULTIMEDIA OPTIMALIZACE ALGORITMŮ PRO ZPRACOVÁNÍ OBRAZU V C++ POMOCÍ ŠABLON BAKALÁŘSKÁ PRÁCE BACHELOR S THESIS AUTOR PRÁCE AUTHOR RADEK ČEPL BRNO 2008
2 VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV POČÍTAČOVÉ GRAFIKY A MULTIMÉDIÍ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER GRAPHICS AND MULTIMEDIA OPTIMALIZACE ALGORITMŮ PRO ZPRACOVÁNÍ OBRAZU V C++ POMOCÍ ŠABLON IMAGE PROCESSING ALGORITHMS OPTIMIZATION USING C++ TEMPLATES BAKALÁŘSKÁ PRÁCE BACHELOR S THESIS AUTOR PRÁCE AUTHOR VEDOUCÍ PRÁCE SUPERVISOR RADEK ČEPL ING. MICHAL ŠPANĚL BRNO 2008
3 Optimalizace algoritmů pro zpracování obrazu v C++ pomocí šablon Image Processing Algorithms Optimization Using C++ Templates Vedoucí: Španěl Michal, Ing., UPGM FIT VUT Oponent: Vyskočil Michal, Ing., UPGM FIT VUT Zadání: Kategorie: 1. Prostudujte základy zpracování obrazu. Zaměřte se na efektivní metody reprezentace a zpracování obrazu. 2. Vypracujte přehled existujících knihoven pro zpracování obrazu v C++. Jaké jsou jejich přednosti a nectnosti. 3. Analyzujte moţnosti optimalizace algoritmů pro zpracování obrazu pomocí šablon v jazyce C Navrhněte jednoduchou knihovnu, která bude na základních obrazových operacích demonstrovat metody optimalizace. 5. Experimentujte s vaší implementací. 6. Diskutujte dosaţené výsledky a moţnosti budoucího vývoje. 7. Vytvořte stručný plakát prezentující vaši bakalářskou práci, její cíle a výsledky. Počítačová grafika Implementační jazyk: C++ Operační systém: Literatura: MS Windows, Linux (pokud moţno přenositelný kód) Dle pokynů vedoucího.
4 Licenční smlouva Licenční smlouva je uloţena v archivu Fakulty informačních technologii Vysokého učení technického v Brně.
5 Abstrakt Bakalářská práce se zabývá optimalizací algoritmu AdaBoost pro zpracování obrazu v C++ pomocí šablon. Zaměřuje se především na efektivní vyhodnocení Haarových příznaků pevné velikosti. Je zde porovnána rychlost detekce při klasickém a šablonovém vyhodnocení příznaků. Celá aplikace je vytvořena pomocí jazyka C++ s vyuţitím grafické knihovny OpenCV a knihovny TinyXML a je testována v prostředí operačního systému Windows XP. Klíčová slova AdaBoost, Haarovy příznaky, Integrální obraz, Klasifikátor, C++ šablony Abstract Bachelor s thesis deals with image processing algorithm AdaBoost optimalization using C++ templates. Head aim of this thesis is effective evaluation of Haar Features with constant size. It also compares speed of feature detection on classical and template evaluation. The computer programme was written in C++ programming language using OpenCV graphic library and TinyXML library. Application was created and tested under Windows XP operating system. Keywords AdaBoost, Haar features, Integral image, Classifier, C++ templates Citace Radek Čepl: Optimalizace algoritmů pro zpracování obrazu v C++ pomocí šablon. Brno, 2008, bakalářská práce, FIT VUT v Brně.
6 Optimalizace algoritmů pro zpracování obrazu v C++ pomocí šablon Prohlášení Prohlašuji, ţe jsem tuto bakalářskou práci vypracoval samostatně pod vedením Ing. Michala Španěla. Uvedl jsem všechny literární prameny a publikace, ze kterých jsem čerpal. Radek Čepl 10. května 2008 Poděkování Děkuji vedoucímu bakalářské práce Ing. Michalu Španělovi za vstřícnost a odborné vedení při zpracování této práce. Poděkování patří také Ing. Romanu Juránkovi za jeho ochotu a uţitečné rady. Radek Čepl, Tato práce vznikla jako školní dílo na Vysokém učení technickém v Brně, Fakultě informačních technologií. Práce je chráněna autorským zákonem a její užití bez udělení oprávnění autorem je nezákonné, s výjimkou zákonem definovaných případů..
7 Obsah Obsah Úvod Vysvětlení pojmů Barevný obraz Grayscale obraz Klasifikátor AdaBoost Šablony Vznik šablon Specializace a další pouţití Rekurzivní specializace šablon Optimalizace Klasifikace Úprava obrazu pro klasifikátor Haarovy příznaky Odezvy slabých klasifikátorů Výsledná klasifikace Reprezentace klasifikátoru Pouţití šablon v klasifikátoru Návrh řešení Implementace Knihovna OpenCV Knihovna TinyXML Knihovna cudautils Načtení vstupního obrazu Vytvoření integrálního obrazu a integrálního obrazu druhých mocnin Načtení dat z XML souboru a vytvoření souboru s voláním šablon Postup klasifikace Prostředí a struktura programu Testování a výsledky Popis testování Tabulka výsledků Výsledek testování Závěr
8 Literatura Seznam obrázků Seznam vzorců Seznam příloh
9 1 Úvod Počítače se postupem času staly důleţitým pomocníkem v nejrůznějších odvětvích. V dnešní době je lze bez problémů pouţívat i k tak náročným úkonům jako zpracování obrazových dat a různé operace s obrazem. Zpracování obrazu je obor, který je především zaměřen na analýzu obsahu obrazu. Zpracovává získaný digitalizovaný obraz a řeší takové otázky jako: jak nalézt podobné objekty, jak zvýraznit různé částí objektů, jak nalézt pozici obličeje v obraze nebo jak opravit poškozený obraz. Počítačové vidění je úzce spojený obor s právě zmíněným zpracováním obrazu, ale tento obor pomocí technických prostředků usiluje o získání popisu objektu vyskytujícího se v obraze a pokouší se, na rozdíl od zpracování obrazu, získaná data interpretovat. Tímto se, alespoň částečně, snaţí pro stroj napodobit lidské vidění. Detekce obličeje je velmi důleţitý a sloţitý problém z oboru počítačového vidění, který se zatím stále nedaří řešit s úplnou přesností. Zjištění přítomnosti a polohy obličeje v obraze je velmi důleţité při kontrole výrazu v obličeji, identity nebo aktivity člověka. Vzhledem k poměru velikosti obrazu a obličeje a rychlosti pohybu obličeje musí být tato detekce provedena co nejrychleji. Tato práce se bude zabývat zrychlením celého vyhodnocení při výpočtu příznaků pomocí C++ šablon, tím se zrychlí celá detekce obličeje. Celé toto šablonové vyhodnocení je poté porovnáno s klasickým vyhodnocením bez šablon a vyvozen patřičný závěr. Dokument obsahuje celkem 8 kapitol. První kapitola s názvem Úvod obsahuje seznámení s danou problematikou a uvedení do souvislostí. Druhá kapitola vysvětluje důleţité pojmy související detekcí. Ve třetí je popsána funkce a důvod pouţití C++ šablon v tomto problému. Kapitola 4 popisuje vlastní klasifikaci. Pátá kapitola obsahuje návrh a řešení daného problému. V kapitole 6 je popsána výsledná implementace aplikace. Kapitola 7 popisuje postup testování a ukazuje dosaţené výsledky. Celá práce je zhodnocena a uzavřena v poslední osmé kapitole s názvem Závěr. 3
10 2 Vysvětlení pojmů Tato kapitola obsahuje vysvětlení důleţitých pojmů souvisejících s detekcí obličeje. 2.1 Barevný obraz Barevný obraz, v případě rastrového resp. digitálního obrazu, je grafická interpretace informace sloţená z matice pixelů (bodů, indexů). Pouţívá se tří prvkový barevný model a pro kaţdý prvek je přiděleno 8 bitů, čili celkem 24 bitů, pomocí kterých lze zobrazit přibliţně 16 miliónů barev. Jako základní model v počítačích je pouţíváno aditivní skládání barev (zvané RGB) pomocí červené, zelené a modré barvy. 2.2 Grayscale obraz Je obraz, který má, na rozdíl od barevného obrazu, zredukovaný barevný prostor pouze na stupně šedi. Pro zobrazení standardních 256 stupňů šedi nám stačí pouze 8 bitů. Pro takovýto převod (z 24 bitů na 8 bitů) se pouţívá empirický vztah: [vzorec 2.2] a výsledná hodnota je vţdy uloţena do všech tří prvků (neplatí v případě jednosloţkového obrázku). 4
11 2.3 Klasifikátor Klasifikátor je velmi rychlý, i kdyţ ne tolik přesný algoritmus, který je pouţit na určitá data a snaţí se s určitou pravděpodobností rozhodnout, zda splňují danou podmínku. Tato pravděpodobnost musí být větší neţ náhodný výběr, tedy větší neţ 50%. Klasifikátory se dělí na slabé a silné, přičemţ silné umějí rozhodovat s větší přesností. 2.4 AdaBoost AdaBoost znamená Adaptive boosting. Takto se nazývá metoda, která spojuje několik slabých klasifikátorů, které mají jako vstup pouze jeden příznak (práh, histogram, rozhodovací strom), do jednoho silného klasifikátoru, který je při rozhodování mnohem úspěšnější neţ jednotlivé slabé klasifikátory Boosting Jedná se o metodu, jejímţ cílem je zlepšit klasifikační přesnost libovolného algoritmu strojového učení. Základem metody je vytvoření více klasifikátorů pomocí výběru vzorků ze základní trénovací mnoţiny. Boosting je zaloţen na vytvoření počátečního klasifikátoru, jehoţ přesnost je větší neţ 50%, a postupném přidávání dalších klasifikátorů se stejnou klasifikační vlastností. Takto je vytvořen soubor klasifikátorů, který má celkovou klasifikační přesnost libovolně vysokou vzhledem ke vzorkům na trénovací mnoţině, tímto je klasifikace posílena (boosted). 5
12 2.4.2 Princip AdaBoostu Adaboost je v současnosti nejpouţívanější varianta metody boosting. Byl představen v roce 1995 a jeho největší předností je schopnost exponenciálně sniţovat chybu výsledného klasifikátoru na libovolně nízkou úroveň (s danou mnoţinou vzorků a slabých klasifikátorů). Dokáţe produkovat v relativně krátkém trénovacím čase klasifikátory s velmi malou chybou jen za pouţití jednoduchých slabých klasifikátorů. Takové klasifikátory pak mají výhodu, ţe jsou při pouţití v reálných podmínkách vysoce přesné a jejich vyhodnocení lze provést ve velice krátkém čase. Kaţdý trénovací vzorek dostane přidělenu váhu, která určuje pravděpodobnost jeho výběru do trénovací podmnoţiny pro jednotlivé klasifikátory z vytvářené skupiny. Je-li vzorek klasifikován přesně, jeho šance na opětovný výběr pro následující klasifikátor klesá nebo v opačném případě roste. Tímto se algoritmus zaměřuje na obtíţné vzorky v trénovací sadě. Takto AdaBoost minimalizuju chybu na trénovacích datech. Pokud se stále daří hledat slabé klasifikátory s pravděpodobností větší neţ 50%, chyba na trénovacích datech v limitě klesne k nule (viz. obr ). Zvyšování počtu klasifikátorů ve skupině ale můţe vést k tzv. přetrénování (ztrátě schopnosti generalizovat vlivem přílišného zaměření klasifikátorů na rozeznávání pouze konkrétních trénovacích dat). K tomuto jevu dochází ale relativně zřídka i pro extrémně vysoké hodnoty. Pro praktickou aplikaci AdaBoostu platí základní pravidlo: Boosting zlepšuje klasifikaci pouze tehdy, pokud klasifikátory ve skupině poskytují lepší neţ jenom náhodné výsledky, coţ však nelze předem zaručit. 6
13 3 Šablony Tato kapitola vysvětluje, co jsou šablony a jak, kdy a kde se pouţívají. 3.1 Vznik šablon C++ šablony neboli C++ templates původně vznikly jako nástroj pro tvorbu generických kontejnerů, které jsou řešením pro opětovné pouţití kódu. Nýbrţ takováto implementace nebyla dostačující a do definice jazyka byly přidány další funkce jako parciální specializace šablon objektových typů, přetěţování šablon volných funkcí nebo pravidlo o dvojím čtení definice šablony. Takto vznikl mocný nástroj pouţitelný v řadě problémů. 3.2 Specializace šablon Specializaci šablon lze ukázat na tomto příkladě: template<bool b> class Assert; template<> class Assert<true> {}; // Primární šablona // Specializace const int n = 25; Assert<(n>20)> x; Kde kontrola, zda konstanta n je větší neţ 20, proběhne uţ při překladu, nikoliv za běhu. Je-li tato podmínka splněna, pouţije překladač specializaci Assert<true> a vytvoří bezvýznamnou proměnnou. Jestliţe podmínka není splněna, zjistí překladač, ţe nezná specializaci pro hodnotu false. Pokusí se tedy pouţít obecnou šablonu, ale protoţe tu také nezná, ohlásí chybu. Šablony dále umoţňují zobrazit jeden typ na jiný, zobrazit celé číslo na typ, vybrat v závislosti na dané podmínce jeden ze dvou typů, kde výběr hodnoty lze řešit např. pomocí podmínkového operátoru?: a datový typ lze zvolit pomocí mechanizmu specializace šablon objektových typů, a umoţňuje i naprogramovat cyklus. 7
14 3.3 Rekurzivní specializace šablon Cykly v šablonách objektových typů definovat nelze aparát šablon nenabízí analogii příkazu while a dalších, lze je ovšem nahradit rekurzí vzhledem k celočíselným parametrům, neboť definice šablony s celočíselným parametrem se můţe odvolávat na tutéţ šablonu s jinou hodnotou parametru. Ukončení rekurze předepíšeme pomocí specializace pro hraniční hodnotu. Podle okolností můţe jít o úplnou nebo částečnou (parciální) specializaci. Zde je ukázka příkladu pro výpočet hodnoty 3 N pomocí rekurzivní specializace šablon: // primární šablona pro 3 N template<int N> class Pow3 { public: enum { result=3*pow3<n-1>::result }; }; // specializace pro N == 0 ukončení rekurze template<> class Pow3<0> { public: enum { result = 1 }; }; Po pouţítí cout << Pow3<7>::result << '\n'; bude vypsán výsledek 3 7, tedy číslo Je zde tedy pouţito těchto pravidel pro výpočet mocnin: 3 N = 3 * 3 N = 1 Při výpočtu překladač vytváří odpovídající instance Pow3<N>, kde se ovšem odvolává na hodnotu Pow3<N-1>. Tato rekurze skončí, kdyţ překladač při vytváření instance Pow3<1> najde odkaz na pouţití Pow3<0>, neboť zde pouţije specializaci primární šablony pro tuto hodnotu parametru a tato specializace se jiţ na nic neodvolává. Překladačem vytvářené instance šablony Pow3<1>, Pow3<2>, atd. nezpůsobují generování ţádného kódu, nýbrţ překladači pomáhají v době překladu vypočítat hodnotu poţadované konstanty. 8
15 3.4 Optimalizace Šablonové metaprogramování skutečně vede k efektivnějšímu programu, ať uţ kvůli znovupouţití různých částí kódu, či rychlejšímu vyhodnocování. Šablony se hodí všude tam, kde pracujeme s pevnými hodnotami a výpočet má být proveden co nejrychleji. Tohoto je dosaţeno vyhodnocením šablony uţ v době překladu, coţ je rychlejší neţli vyhodnocování při běhu programu. Při testování rychlosti výpočtu se mohou projevovat i kvality optimalizace v jednotlivých překladačích, ale ve většině případů se šablonové metaprogramování ukázalo jako velmi rychlé a zrychlení můţe být vyšší neţ 50%. 9
16 4 Klasifikace Kapitola popisuje, jak je potřeba upravit obraz pro klasifikátor, aby byla klasifikace efektivní a správně provedená, dále pouţití Haarových příznaků v slabých klasifikátorech, uloţení klasifikátorů a pouţití šablon pro rychlejší vyhodnocování. 4.1 Úprava obrazu pro klasifikátor Vstupní obraz Jako vstup programu je pouţit upravený barevný obraz do formátu vhodného pro detekci. Takto upravený obraz má podobu vyříznutého obličeje a jeho velikost je zmenšena na 24x24 pixelů. Tato velikost je dána nastavenou velikostí klasifikačního okna v pouţitém detektoru. Jako vstupní obrazy byly pouţity upravené obrazy z databáze CBCL[12] Integrální obraz Integrální obraz je takový obraz, jenţ má v kaţdém pixelu uloţenu hodnotu, která odpovídá součtu hodnot pixelů vlevo nahoru od tohoto pixelu. Tento obraz se tvoří z Grayscale obrazu a je pouţit pro efektivní zjištění sumy pixelů v obdélníkových oblastech v Haarových příznacích. Při pouţití takovéhoto uloţení obrazu lze získat součet jakékoliv obdélníkové oblasti v obraze pomocí rohových pixelů tohoto obdélníka. Matematická reprezentace integrálního obrazu: [vzorec 4.1.2] 10
17 V našem detektoru je integrální obraz vytvořen podobným způsobem tak, ţe je o jeden pixel širší a vyšší neţ zdrojový obraz a hodnoty pixelů na nultém řádku i sloupci jsou nulové. Hodnota pixelu na souřadnicích [x, y] je tedy součet hodnot pixelů na souřadnicích [0,0] aţ [x-1, y-1] Integrální obraz druhých mocnin Integrální obraz druhých mocnin má v kaţdém pixelu uloţenu hodnotu, která odpovídá součtu druhých mocnin hodnot pixelů vlevo nahoře od tohoto pixelu. Tento obraz se tvoří stejným principem jako integrální obraz a je pouţit pro efektivní výpočet standardní odchylky v Haarových příznacích. Matematická reprezentace integrálního obrazu druhých mocnin: [vzorec 4.1.3] I tento obraz je v našem detektoru vytvořen s šířkou i výškou o jeden pixel vyšší a nulovými hodnotami na prvním řádku i sloupci. Hodnota pixelu na souřadnicích [x, y] je určena součtem hodnot druhých mocnin pixelů na souřadnicích [0,0] aţ [x-1, y-1]. 11
18 4.2 Haarovy příznaky Jedná se o spojité obrazové příznaky, které jsou často základem slabých klasifikátorů pro zpracování obrazu. Jako výsledek vracejí reálné hodnoty a jsou určeny především tvarem konvolučního jádra (lze si představit jako tabulku umístěnou na určité místo v obraze), dále jeho pozicí v obraze a velikostí. Námi pouţité příznaky jsou na obr V tomto případě se jedná o horizontální trojitý a vertikální trojitý příznak. A-H jsou rohové pixely jednotlivých bodů, blockwidth a blockheight jsou šířka a výška jednoho bloku příznaku. Při klasifikaci jsou pouţity také dvojité příznaky, které jsou určeny pouze rohy A-F Použití integrálního obrazu Při výpočtech je pouţití příznaků místo pixelů daleko rychlejší a tento přístup je velice vhodný. Protoţe vyhodnocování sumy pixelů v jednotlivých blocích je děláno opakovaně, je pouţito integrálního obrazu pro efektivní vyhodnocení těchto oblastí. Toto vyhodnocení je zobrazeno na obr
19 4.2.2 Odezva příznaku Výsledná odezva příznaku f(x) je dána jako rozdíl černých a bílých oblastí. Při pouţití tohoto vyhodnocení jednotlivých bloků pak platí pro jednotlivé typy příznaků tyto vzorce na výpočet odezvy pro vzorek x: Double Horizontal Feature (dvojitý horizontální) [vzorec 4.2.2a] Double Vertical Feature (dvojitý vertikální) [vzorec 4.2.2b] Ternal Horizontal Feature (trojitý horizontální) [vzorec 4.2.2c] Ternal Vertical Feature (trojitý vertikální) [vzorec 4.2.2d] Tyto vzorce pro odezvu Haarových příznaků můţou být u jednotlivých typů klasifikátorů různé podle toho, zda se odečítá bílá část od černé nebo naopak a zda se u trojitých příznaků pouţije (pro vyváţení hodnot) bílá část jednou nebo dvakrát Standardní odchylka Haarovy příznaky potřebují po svém vyhodnocení normalizovat standardní odchylkou hodnot ve zkoumaném okně. Pro určení odchylky je proto potřeba ze vstupního obrazu vytvořit integrální obraz a integrální obraz druhých mocnin, pomocí kterých se dá standardní odchylka snadno a efektivně vypočítat. 13
20 Pro výpočet je pouţit vzorec: [vzorec 4.2.3] Kde A, B, C, D jsou hodnoty pixelů v rozích okna integrálního obrazu E, F, G, H jsou hodnoty pixelů v rozích okna integrálního obrazu druhých mocnin N je počet pixelů v okně Výsledná hodnota příznaku Výslednou hodnotu příznaku r(x) po zjištění standardní odchylky a odezvy příznaku lze vypočítat: [vzorec 4.2.4] Přičemţ f(x) je odezva příznaku na vzorek blocksize je velikost jednoho bloku příznaku (blockwidth * blockheight) stddev je standardní odchylka klasifikačního okna 4.3 Odezvy slabých klasifikátorů Výsledná hodnota příznaku je důleţitá pro určení odezvy slabého klasifikátoru h(x). Výsledná hodnota odezvy: - je-li hodnota příznaku f(x) větší nebo rovna neţ klasifikační práh threshold, je dána jako součin hodnoty parita a alpha - je-li hodnota příznaku f(x) menší neţ klasifikační práh threshold, je dána jako součin hodnoty minus parita a alpha Vyjádřeno vzorci: [vzorec 4.3a] [vzorec 4.3b] 14
21 4.4 Výsledná klasifikace Po vypočítání všech hodnot jednotlivých slabých klasifikátorů je výsledná klasifikace dána sumou všech hodnot: [vzorec 4.4] Pokud hodnota výsledné klasifikace, byl detekován obličej. 4.5 Reprezentace klasifikátoru Výsledný klasifikátor je reprezentován natrénovanou sadou slabých klasifikátorů. Celý klasifikátor je uloţen v XML souboru pro lepší přenositelnost a přístup k datům. Námi pouţitý klasifikátor pracuje s klasifikačním oknem o velikosti 24x24 pixelů. Jednotlivé parametry slabých klasifikátorů jsou: threshold klasifikační práh parity směr vyhodnocení (hodnota +1 nebo -1) alpha váha klasifikátoru Parametry v nich pouţitých příznacích: positionx X-ová souřadnice pozice příznaku (příznakového rohu A) positiony Y-ová souřadnice pozice příznaku (příznakového rohu A) blockwidth šířka jednoho bloku příznaku blockheight výška jednoho bloku příznaku 15
22 Přičemţ počáteční souřadnice [0,0] se nachází v levém horním rohu klasifikačního okna, X určuje jednotlivé sloupce a Y řádky pixelů, a blokem příznaku je myšlena např. oblast A-D (viz. obr. 4.2). 4.6 Použití šablon v klasifikátoru V klasifikátoru jsou šablony pouţity pro snahu optimalizovat vyhodnocování příznaků, protoţe toto vyhodnocování je při detekci prováděno opravdu hodně krát a jakékoliv malé zrychlení vyhodnocení jednoho příznaku se ve výsledku můţe značně projevit. Šablony lze v klasifikátoru velmi dobře pouţít, jelikoţ klasifikační okno má pevnou velikost 24x24 pixelů a jednotlivé parametry slabých klasifikátorů i Haarových příznaků jsou také uţ konkrétní natrénované hodnoty. 16
23 5 Návrh řešení Tato kapitola se zabývá vlastním návrhem celé aplikace a rozdělením detekce na jednotlivé podproblémy. Samotná aplikace je sloţena z několika částí, které na sebe navazují a dohromady vytvoří poţadovaný výsledek. Výsledné aplikaci bude předloţen vstupní obraz obsahující popř. neobsahující obličej pro případnou detekci a výsledkem bude výpis hodnoty celkové klasifikace a doba trvání této klasifikace. Aplikace je rozdělena na tyto podproblémy: Načtení vstupního obrazu Vytvoření pomocných obrazů 1. Vytvoření Grayscale obrazu 2. Vytvoření integrálního obrazu 3. Vytvoření integrálního obrazu druhých mocnin Pouţití dat z XML souboru 1. Načtení dat z XML souboru 2. Vytvoření souboru obsahujícího volání funkcí (dle implementace šablon, popř. metod), které mají jako parametry hodnoty načtené z XML souboru Vyhodnocení klasifikátoru Změření času vyhodnocení Výpis času a výsledku klasifikace Uvedené podproblémy musejí být vyřešeny co nejefektivněji, snadno pochopitelným způsobem a s co nejmenšími nároky na paměť. Vstupním obrazem je obraz ve standardních formátech bmp, jpeg nebo jiných, které jsme schopni pomoci funkcí knihovny OpenCV načíst a zpracovat. Obličej ve vstupním obraze by měl být vyříznut tak, aby ho bylo schopné detekovat a neměl by být ani příliš nakloněný, z části rozmazaný a jiné neduhy, kvůli kterým nemusí dojít k detekci. Jako klasifikátor je vybrán AdaBoost, který je hojně pouţívaný, lze ho dále zlepšovat a nabízí dobré výsledky klasifikace. K měření času je vyuţito časovače z knihovny cudautils, toto měření bude aplikováno pouze na hlavní vyhodnocení klasifikátoru. 17
24 obr. 5 - Blokové schéma postupu práce detektoru Načtení vstupního obrazu Načtení dat z XML souboru Vytvoření Grayscale obrazu Vytvoření souboru s voláním Vytvoření integrálního obr. Vytvoření int. obr. druhých mocnin Vyhodnocení klasifikátoru Měření času vyhodnocení Výpis času a výsledku klasifikace na obrazovku Načtení parametrů natrénovaných slabých klasifikátorů a vytvoření souboru s uţ hotovými voláními funkcí s těmito parametry je univerzální a umoţňuje pouţít jiný natrénovaný klasifikátor. Námi pouţitý klasifikátor obsahuje pouze 50 slabých klasifikátorů, coţ není mnoho, ale pro naše potřeby měření času to bohatě postačí. 18
25 6 Implementace V této kapitole je podrobněji popsána vlastní implementace programu. Budou zde vysvětleny pouţité postupy a algoritmy. 6.1 Knihovna OpenCV OpenCV neboli Open Computer Vision Library je optimalizovaná grafická knihovna vyvíjená společností Intel. Obsahuje mnoho funkcí pro práci s obrazem, grafickými formáty, ale i pro tvorbu uţivatelských rozhraní atd. V projektu je pouţita pro práci s obrazem, zejména při načítaní obrazu. 6.2 Knihovna TinyXML TinyXML je volně dostupná knihovna pro práci s XML soubory. Je velmi malá a jednoduchá. Umoţňuje parsování (analýzu syntaxe), čtení a zápis do XML souboru a pracuje s DOM modelem. V projektu je pouţita pro načítání slabých klasifikátorů z XML souboru, konkrétně druh klasifikátoru, jeho parametry a parametry v něm obsaţených příznaků. 6.3 Knihovna cudautils Jedná se o knihovnu, která je primárně určená pro podporu GPGPU (General-purpose computing on graphics processing units) Cuda společnosti Nvidia. Knihovna ale poskytuje i řadu dalších funkcí nezávisle na pouţití v GPGPU, např. analýzu argumentů příkazového řádku, vytváření časovačů, hlídání chybových hlášení atd. V projektu je pouţit časovač pro měření trvání úseku kódu, konkrétně kódu vyhodnocujícího hlavní klasifikaci vstupního obrazu. 6.4 Načtení vstupního obrazu Jako vstup je očekáván barevný obraz velikosti 24x24 pixelů. Tento obraz je načten funkcí cvloadimage z knihovny OpenCV do struktury IplImage, která si uchovává o obrazu spoustu informací, jako například druh barevného modelu, hloubku barev, šířku a výšku obrazu, vlastní obrazová data a mnoho dalších. Tato funkce je pouţita s hodnotou druhého parametru 0, čili obraz je načten rovnou ve stupních šedé (Grayscale). Dále je vytvořen objekt myimage šablonové třídy Image s pevnými parametry udávajícími pevnou výšku a šířku obrázku. Metodou loaddata načteme do pole pixvalues ze struktury IplImage obrazová data s kterými budeme dále pracovat. 19
26 Šablonová třída Image si tedy uchovává informace o výšce, šířce a celkové velikosti obrazu a také vlastní obrazová data. Dále obsahuje kromě metody loadimage také metodu getpixel, pouţitou pro načtení hodnot pixelu z pole pixvalues dle udaných souřadnic x a y. 6.5 Vytvoření integrálního obrazu a integrálního obrazu druhých mocnin Poté jsou vytvořeny další dva objekty třídy Image, a to myigimage a mypowigimage reprezentující integrální obraz a integrální obraz druhých mocnin. Oba tyto objekty jsou vytvořeny s pevnou šířkou a výškou 25 pixelů. Dále pouţijeme šablonové funkce makeigimage a makepowigimage pro vytvoření těchto obrazů. Obrazy jsou vytvářeny cyklem procházejícím vstupní obrázek po řádcích od souřadnice 0,0 (levý horní roh obrazu). Při tomto procházení jsou počítány jednotlivé sumy pixelů leţících doleva nahoru od počítané pozice v integrálním obraze, popř. integrálním obraze druhých mocnin a ukládány na počítanou pozici. 6.6 Načtení dat z XML souboru a vytvoření souboru s voláním šablon Při načítání z XML souboru je nejdříve vytvořen soubor features.h, který je součástí šablonového vyhodnocení. Poté jsou načteny pomocí funkcí TinyXML jednotlivé slabé klasifikátory. Nejdříve je zjištěno o jaký druh klasifikátoru se jedná (HaarHorizontalDoubleFeature, HaarVerticalDoubleFeature, HaarHorizontalTernalFeature, HaarVerticalTernalFeature). To ovlivní, jaká šablona pro vyhodnocení bude pouţita. Poté jsou načteny příslušné parametry slabého klasifikátoru (threshold, parity, alpha) a parametry Haarova příznaku v něm obsaţeného (positionx, positiony, blockwidth, blockheight). Tyto parametry jsou pak pouţity jako parametry pro volání šablony pro vyhodnocení slabého klasifikátoru. 6.7 Postup klasifikace Při klasifikaci je volána šablonová funkce evalftrs, která je vytvořena v souboru features.h. Tato funkce má jako parametry integrální obraz a integrální obraz druhých mocnin. Poté jsou postupně volány jednotlivé vyhodnocení slabých klasifikátorů podle příznaků v nich obsaţených. Hodnoty příznaků jsou uchovávány a postupně sumarizovány pro získání hodnoty výsledné klasifikace. Tato hodnota je nakonec vrácena jako hodnota funkce. 20
27 Šablony jednotlivých slabých klasifikátorů jsou volány s parametry načtenými ze zdrojového XML souboru. Definice klasifikátorů se nacházejí v souboru templates.h. Šablony obsahují všechny parametry načtené z XML souboru, a také integrální obraz a integrální obraz druhých mocnin pro pozdější počítání standardní odchylky. V definicích šablon slabých klasifikátorů jsou nejdříve pomocí funkce getpixel získány hodnoty pixelů v rozích příznaků z integrálního obrazu. Souřadnice rohu A v příznaku je určena pomocí parametrů ftrposx a ftrposy. Další rohy jsou získány pomocí souřadnic rohu A s patřičně přičtenými násobky hodnot blockwidth nebo blockheight. Poté je vynásobením hodnot blockwidth a blockheight vypočtena velikost jednoho bloku příznaku a také dle příslušného vzorce (vzorce 4.2.2a 4.2.2d) vyčíslena odezva příznaku. Pomocí velikosti bloku, odezvy příznaku a standardní odchylky je následně určena výsledná hodnota příznaku (vzorec 4.2.4). Standardní odchylka je vyhodnocována samostatnou šablonou. Jako parametr ji jsou předávány souřadnice pixelů v rozích okna (je počítána z integrálních obrazů, čili souřadnice [0,0], [24,0], [0,24] a [24,24]) a oba integrální obrazy. Pro výpočet standardní odchylky je nejdříve zjištěn počet pixelů v klasifikačním okně, následuje získání hodnot pixelů v rozích integrálního obrazu a integrálního obrazu druhých mocnin. Vlastní hodnota odchylky je spočítána podle vzorce Tato hodnota je vrácena jako hodnota šablony. Vypočtená hodnota příznaku je porovnána s parametrem threshold a poté vrácena hodnota slabého klasifikátoru podle podmínek ve vzorcích 4.3a a 4.3b. Nakonec jsou všechny hodnoty slabých klasifikátorů sečteny a určena výsledná hodnota klasifikace (vzorec 4.4). 6.8 Prostředí a struktura programu Program byl vytvořen na operačním systému Microsoft Windows XP Professional SP2 pomocí programu Microsoft Visual Studio 2005 Professional Edition. Jako programovací jazyk byl pouţit jazyk C++ s jeho standardními knihovnami. Pro načítání dat ze souboru XML byla pouţita knihovna TinyXML, pro načítání vstupního obrazu knihovna OpenCV a pro měření času knihovna cudautils. Tyto knihovny byly připojeny k hlavním projektům pro výsledné přeloţení celé aplikace. Výsledná aplikace obsahuje 3 hlavní projekty, projekt XMLLoader pro načtení dat z XML souboru a vytvoření souboru s voláním slabých klasifikátorů, projekt bak1 vyhodnocující klasifikaci vstupního obrazu pomocí šablon a projekt bak2 vyhodnocující klasifikaci vstupního obrazu bez pouţití šablon. 21
28 7 Testování a výsledky Tato kapitola popisuje postup testování a shrnuje dosaţené naměřené výsledky. 7.1 Popis testování Rychlost a správnost klasifikace jednoho klasifikačního okna jsou pro nás hlavní faktory při detekci obličeje v obraze. Rychlost klasifikace jednoho klasifikačního okna musí být co nejvyšší, protoţe toto okno je při hledání obličejů ve velkém obraze (fotografii) posouváno přes celý obraz a vyhodnocováno i několika set tisíckrát. Úspěšnost výsledné detekce závisí na pouţitém detektoru a jeho natrénování. Při testování jsou pouţity upravené obrazy velikosti 24x24 pixelů z databáze CBCL[12] a další vytvořené obrazy obličej neobsahující. Čas vyhodnocení klasifikačního okna je získán zprůměrováním času změřeného při opakování vyhodnocení tohoto okna. K měření času je pouţito časovače z knihovny cudautils a všechny naměřené časy jsou vypsány v mikrosekundách. 22
29 7.2 Tabulka výsledků Vstupní obraz Průměrná doba klasifikace [μs] S šablonami Bez šablon Výsledek klasifikace 15, ,812 0, , ,8096 1, , ,8774 2, ,478 20,6688 2, , ,8637-1, , ,094-0, , ,6183-9, , ,4378-5, ,366 20,5283-6, ,333 20,5631-5,
30 7.3 Výsledek testování Na testování bylo pouţito celkem 10 různých vstupních obrazů. Pro všechny byly určeny průměrné časy klasifikace s pouţitím šablon a bez pouţití šablon. Také byla určena výsledná klasifikace, která ve většině příkladů dopadla správně. Chyba klasifikace nastala pouze v jednom případě, kdy u obrazu s obličejem místo kladné hodnoty vyšla záporná hodnota -1, Toto je způsobeno druhem klasifikátoru a chybu lze napravit pouţitím jiného a lepšího klasifikátoru. Ale na měření času klasifikace tato chyba nemá ţádný vliv. Časy klasifikace s pouţitím šablon byly naměřeny okolo 15 mikrosekund, klasickým způsobem vyhodnocení bez šablon vyšly okolo 20 mikrosekund. To ve výsledku znamená, ţe bylo dosaţeno zrychlení okolo 27,5%. Coţ určitě není zanedbatelná hodnota. Při pouţití dalších optimalizací můţe být šablonové vyhodnocení ještě daleko rychlejší neţ klasický způsob. Ačkoliv se dá celá klasifikace zrychlit i dalšími postupy, aplikace šablon je z časového hlediska výhodná a určitě má aplikace šablon pro takovéto vyhodnocení klasifikačního okna pevné velikosti smysl. Testování proběhlo na notebooku MSI Megabook L735 (AMD Athlon TK-53 64bit Dual- Core 1,7GHz, 2GB RAM) s nainstalovaným operačním systémem Windows XP Professional SP2. Výsledná aplikace byla přeloţena překladačem obsaţeným v programu Microsoft Visual Studio
31 8 Závěr Závěr shrnuje výsledky a poznatky celé práce a je to ukončení celé práce. Detekce obličeje a vyhodnocování pomocí klasifikátorů je v dnešní době hojně řešený problém. Tento postup je rychlý a umoţňuje úspěšnou detekci závislou na kvalitě detektoru. Zvyšování rychlosti je ale vţdy potřebné, a proto se v tomto problému nabízela moţnost aplikace C++ šablon jakoţto nástroje stvořeného k optimalizacím. Práce se zabývala optimalizací vyhodnocení klasifikačního okna pro detekci obličeje v obraze. Splňuje zadání v poţadovaném rozsahu a dosaţené výsledky jsou uspokojující. Tyto výsledky jsou obsaţeny a zhodnoceny v kapitole 7. Pro praktické pouţití mají vysokou hodnotu a šablonové vyhodnocení lze ihned aplikovat. Pouţití šablon pro vyhodnocování klasifikačního okna pevné velikosti je velmi vhodné a výslednou detekci v celém obraze můţe nemálo zrychlit. Toto zrychlení můţe být na jiných překladačích různé. V kombinaci s jinými optimalizacemi a technikami lze ale dosáhnout ještě dalších zrychlení celé klasifikace. Během přípravy a vlastního návrhu jsem se hlouběji seznámil s problematikou detekce obličeje, blíţe pochopil vyhodnocování pomocí klasifikátorů a funkci Haarových příznaků. Také jsem si prohloubil znalosti o různých druzích optimalizace a o technikách práce s obrazovými daty pouţívaných v dnešní době. Celá aplikace se dá vylepšit pouţitím lepšího klasifikátoru a dalších metod optimalizace. Pro praktické pouţití by bylo potřeba aplikaci rozšířit o pouţití na velký obraz (fotografii) a změřit čas klasifikace celého obrazu. K pohodlnější pouţívání lze poté vytvořit grafické uţivatelské rozhraní umoţňující přesnější nastavení a lepší zobrazení výsledků naměřených časů a detekovaných obličejů. 25
32 Literatura [1] Bc. Roman Juránek, Rozpoznávání vzorů v obraze pomocí klasifikátorů, Diplomová práce, Fakulta informačních technologií VUT v Brně, 2007 [2] Ing. Přemysl Kršek, Ph.D., Základy počítačové grafiky, Studijní opora, verze 0.7, Fakulta informačních technologií VUT v Brně [3] Doc. Dr. Ing. Pavel Zemčík, Ing Michal Španěl, Zpracování obrazu, Studijní opora, Fakulta informačních technologií VUT v Brně, listopad 2007 [4] Doc. Ing. Jan Ţiţka CSc., Navrhování skupin klasifikátorů pomocí opakovaného výběru trénovacích dat, Fakulta informatiky MUNI v Brně, 2005 [5] Addison Wesley, C++ Templates: The Complete Guide, ISBN , 2002 [6] Miroslav Virius, Fascinující svět šablon v C++, Katedra softwarového inţenýrství, FJFI ČVUT Praha [7] Paul Viola, Michael Jones, Robust Real-time Object Detection, Mitsubishi Electric Research Labs, Compaq CRL, Vancouver, Kanada, 2001 [8] Intel Corporation, Open Source Computer Vision Library, Reference Manual, 2001 [9] TinyXml Documentation, URL: [10] Wikipedie, Otevřená encyklopedie, URL: [11] Wikipedia, The Free Encyklopedia, URL: [12] CBCL Face Recognition Database, URL: 26
33 Seznam obrázků obr Ukázka matice pixelů a barevného obrazu obr Ukázka převodu barevného obrazu na 256 úrovní šedi obr Rozhodování pomocí slabého a silného klasifikátoru obr Pokles chyby na trénovacích datech přidáváním klasifikátorů obr Příklady pouţitých vstupních obrazů (velikost 24x24 pixelů) obr a - Princip vytvoření integrálního obrazu obr b - Převod Grayscale obrazu na integrální obraz obr Pouţité Haarovy příznaky a znázornění jejich bloků obr Pro tuto oblast v integrálním obraze (A, B, C, D jsou rohové pixely) bude suma pixelů v šedé oblasti rovna D+A-B-C obr Uloţení klasifikátoru (sloţeného z jednotlivých slabých klasifikátorů) v XML souboru obr. 5 - Blokové schéma postupu práce detektoru 27
34 Seznam vzorců vzorec Empirický vztah pro převod barevného obrazu na 256 stupňů šedi vzorec Matematická reprezentace integrálního obrazu vzorec Matematická reprezentace integrálního obrazu druhých mocnin vzorec 4.2.2a - Výpočet odezvy dvojitého horizontálního příznaku vzorec 4.2.2b - Výpočet odezvy dvojitého vertikálního příznaku vzorec 4.2.2c - Výpočet odezvy trojitého horizontálního příznaku vzorec 4.2.2d - Výpočet odezvy trojitého vertikálního příznaku vzorec Výpočet standardní odchylky vzorec Výpočet výsledné hodnoty příznaku vzorec 4.3a - Určení odezvy slabého klasifikátoru vzorec 4.3b - Určení odezvy slabého klasifikátoru vzorec Výpočet výsledné klasifikace 28
35 Seznam příloh Příloha 1. CD 29
13 Barvy a úpravy rastrového
13 Barvy a úpravy rastrového Studijní cíl Tento blok je věnován základním metodám pro úpravu rastrového obrazu, jako je např. otočení, horizontální a vertikální překlopení. Dále budo vysvětleny různé metody
Šablonové metaprogramování v C++ Miroslav Virius KSI FJFI ČVUT
Šablonové metaprogramování v C++ Miroslav Virius KSI FJFI ČVUT Šablonové (generické) metaprogramování Šablona v C++, genericita v jiných jazycích Výpočetní úplnost Problémy Příklad Porovnání s klasickým
Detekce obličeje v obraze s využitím prostředí MATLAB
Detekce obličeje v obraze s využitím prostředí MATLAB T. Malach, P. Bambuch, J. Malach EBIS, spol. s r.o. Příspěvek se zabývá detekcí obličeje ve statických obrazových datech. Algoritmus detekce a trénování
Rozpoznávání v obraze
Rozpoznávání v obraze AdaBoost a detekce objektů IKR, 2013 Roman Juránek www.fit.vutbr.cz/~ijuranek/personal Detekce objektů Úloha - v daném obraze nalézt objekty určitých tříd
3. úloha - problém batohu metodami branch & bound, dynamické programování, heuristika s testem
ČVUT FEL X36PAA - Problémy a algoritmy 3. úloha - problém batohu metodami branch & bound, dynamické programování, heuristika s testem Jméno: Marek Handl Datum: 1. 1. 2009 Cvičení: Pondělí 9:00 Zadání Naprogramujte
Úloha - rozpoznávání číslic
Úloha - rozpoznávání číslic Vojtěch Franc, Tomáš Pajdla a Tomáš Svoboda http://cmp.felk.cvut.cz 27. listopadu 26 Abstrakt Podpůrný text pro cvičení předmětu X33KUI. Vysvětluje tři způsoby rozpoznávání
Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.
Vyhledávání doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 21. září 2018 Jiří Dvorský (VŠB TUO) Vyhledávání 242 / 433 Osnova přednášky
Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 12.
Vyhledávání doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 12. září 2016 Jiří Dvorský (VŠB TUO) Vyhledávání 201 / 344 Osnova přednášky
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY NÁVRH STRATEGIE ROZVOJE MALÉ RODINNÉ FIRMY THE DEVELOPMENT OF SMALL FAMILY OWNED COMPANY
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA PODNIKATELSKÁ ÚSTAV FACULTY OF BUSINESS AND MANAGEMENT INSTITUT OF NÁVRH STRATEGIE ROZVOJE MALÉ RODINNÉ FIRMY THE DEVELOPMENT OF SMALL
VYUŽITÍ PRAVDĚPODOBNOSTNÍ METODY MONTE CARLO V SOUDNÍM INŽENÝRSTVÍ
VYUŽITÍ PRAVDĚPODOBNOSTNÍ METODY MONTE CARLO V SOUDNÍM INŽENÝRSTVÍ Michal Kořenář 1 Abstrakt Rozvoj výpočetní techniky v poslední době umožnil také rozvoj výpočetních metod, které nejsou založeny na bázi
Projekční algoritmus. Urychlení evolučních algoritmů pomocí regresních stromů a jejich zobecnění. Jan Klíma
Urychlení evolučních algoritmů pomocí regresních stromů a jejich zobecnění Jan Klíma Obsah Motivace & cíle práce Evoluční algoritmy Náhradní modelování Stromové regresní metody Implementace a výsledky
Vojtěch Franc Centrum strojového vnímání, Katedra kybernetiky, FEL ČVUT v Praze Eyedea Recognition s.r.o MLMU 29.4.2015
Příklady použití metod strojového učení v rozpoznávání tváří Vojtěch Franc Centrum strojového vnímání, Katedra kybernetiky, FEL ČVUT v Praze Eyedea Recognition s.r.o MLMU 29.4.2015 Stavební bloky systému
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV POČÍTAČOVÉ GRAFIKY A MULTIMÉDIÍ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER GRAPHICS AND
Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
Úvod do programovacích jazyků (Java) Michal Krátký 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků
Iterační výpočty. Dokumentace k projektu č. 2 do IZP. 24. listopadu 2004
Dokumentace k projektu č. 2 do IZP Iterační výpočty 24. listopadu 2004 Autor: Kamil Dudka, xdudka00@stud.fit.vutbr.cz Fakulta Informačních Technologií Vysoké Učení Technické v Brně Obsah 1. Úvod...3 2.
2. úkol MI-PAA. Jan Jůna (junajan) 3.11.2013
2. úkol MI-PAA Jan Jůna (junajan) 3.11.2013 Specifikaci úlohy Problém batohu je jedním z nejjednodušších NP-těžkých problémů. V literatuře najdeme množství jeho variant, které mají obecně různé nároky
12 Metody snižování barevného prostoru
12 Metody snižování barevného prostoru Studijní cíl Tento blok je věnován základním metodám pro snižování barevného rozsahu pro rastrové obrázky. Postupně zde jsou vysvětleny důvody k použití těchto algoritmů
Vyhodnocení 2D rychlostního pole metodou PIV programem Matlab (zpracoval Jan Kolínský, dle programu ing. Jana Novotného)
Vyhodnocení 2D rychlostního pole metodou PIV programem Matlab (zpracoval Jan Kolínský, dle programu ing. Jana Novotného) 1 Obecný popis metody Particle Image Velocimetry, nebo-li zkráceně PIV, je měřící
8 Třídy, objekty, metody, předávání argumentů metod
8 Třídy, objekty, metody, předávání argumentů metod Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost třídám a objektům, instančním
Úvod do programovacích jazyků (Java)
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2007/2008 c 2006 2008 Michal Krátký Úvod do programovacích
Vektory a matice. Obsah. Aplikovaná matematika I. Carl Friedrich Gauss. Základní pojmy a operace
Vektory a matice Aplikovaná matematika I Dana Říhová Mendelu Brno Obsah 1 Vektory Základní pojmy a operace Lineární závislost a nezávislost vektorů 2 Matice Základní pojmy, druhy matic Operace s maticemi
Evropský polytechnický institut, s.r.o. BAKALÁŘSKÁ PRÁCE 2014 LENKA HOLÁ
Evropský polytechnický institut, s.r.o. BAKALÁŘSKÁ PRÁCE 2014 LENKA HOLÁ Evropský polytechnický institut, s.r.o. v Kunovicích Studijní obor: Finance a daně, Ekonomická informatika SOFTWAROVÝ AUDIT (Bakalářská
Zadání maturitní práce ve školním roce 2016/2017
Zadání maturitní práce ve školním roce 2016/2017 vydané podle 15 odst. 1 vyhlášky č. 177/2009 Sb., o bližších podmínkách ukončování vzdělávání ve středních školách maturitní zkouškou, ve znění pozdějších
Datové struktury 2: Rozptylovací tabulky
Datové struktury 2: Rozptylovací tabulky prof. Ing. Pavel Tvrdík CSc. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Efektivní algoritmy
1 Základní funkce pro zpracování obrazových dat
1 Základní funkce pro zpracování obrazových dat 1.1 Teoretický rozbor 1.1.1 Úvod do zpracování obrazu v MATLABu MATLAB je primárně určen pro zpracování a analýzu numerických dat. Pro analýzu obrazových
Metoda Monte Carlo a její aplikace v problematice oceňování technologií. Manuál k programu
Metoda Monte Carlo a její aplikace v problematice oceňování technologií Manuál k programu This software was created under the state subsidy of the Czech Republic within the research and development project
Dílčí projekt: Systém projektování textilních struktur 1.etapa: tvorba systému projektování vlákno - příze - tkanina
Program LibTex Uživatelská příručka 1 Obsah Program Textilní Design... 1 Uživatelská příručka... 1 1 Obsah... 2 2 Rejstřík obrázků... 2 3 Technické požadavky... 3 3.1 Hardware... 3 3.1.1 Procesor... 3
Využití tabulkového procesoru MS Excel
Semestrální práce Licenční studium Galileo srpen, 2015 Využití tabulkového procesoru MS Excel Ing Marek Bilko Třinecké železárny, a.s. Stránka 1 z 10 OBSAH 1. ÚVOD... 2 2. DATOVÝ SOUBOR... 2 3. APLIKACE...
Algoritmizace a programování
Algoritmizace a programování Výrazy Operátory Výrazy Verze pro akademický rok 2012/2013 1 Operace, operátory Unární jeden operand, operátor se zapisuje ve většině případů před operand, v některých případech
Paralelní výpočty ve finančnictví
Paralelní výpočty ve finančnictví Jan Houška HUMUSOFT s.r.o. houska@humusoft.cz Výpočetně náročné úlohy distribuované úlohy mnoho relativně nezávislých úloh snížení zatížení klientské pracovní stanice
PARAMETRICKÁ STUDIE VÝPOČTU KOMBINACE JEDNOKOMPONENTNÍCH ÚČINKŮ ZATÍŽENÍ
PARAMETRICKÁ STUDIE VÝPOČTU KOMBINACE JEDNOKOMPONENTNÍCH ÚČINKŮ ZATÍŽENÍ Ing. David KUDLÁČEK, Katedra stavební mechaniky, Fakulta stavební, VŠB TUO, Ludvíka Podéště 1875, 708 33 Ostrava Poruba, tel.: 59
7 Formátovaný výstup, třídy, objekty, pole, chyby v programech
7 Formátovaný výstup, třídy, objekty, pole, chyby v programech Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost formátovanému výstupu,
Sítě SFN Systém pro analýzu a vizualizaci pokrytí a rušení vysílacích sítí
Sítě SFN Systém pro analýzu a vizualizaci pokrytí a rušení vysílacích sítí Sítě SFN ver. 7 je výpočetní systém pro analýzu pokrytí a rušení vysílacích sítí pro služby FM, TV, DVB- T a T-DAB a analýzu a
Objektové programování
Objektové programování - přináší nové možnosti a styl programování - vytváří nový datový typ, který umí vše co standardní datové typy + to co ho naučíme - překladač se k tomuto typu chová stejně jako k
Maturitní otázky z předmětu PROGRAMOVÁNÍ
Wichterlovo gymnázium, Ostrava-Poruba, příspěvková organizace Maturitní otázky z předmětu PROGRAMOVÁNÍ 1. Algoritmus a jeho vlastnosti algoritmus a jeho vlastnosti, formy zápisu algoritmu ověřování správnosti
VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu
VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632
ČVUT FEL X36PAA - Problémy a algoritmy. 5. úloha - Seznámení se se zvolenou pokročilou iterativní metodou na problému batohu
ČVUT FEL X36PAA - Problémy a algoritmy 5. úloha - Seznámení se se zvolenou pokročilou iterativní metodou na problému batohu Jméno: Marek Handl Datum: 4. 2. 2009 Cvičení: Pondělí 9:00 Zadání Zvolte si heuristiku,
ČVUT FEL X36PAA - Problémy a algoritmy. 4. úloha - Experimentální hodnocení algoritmů pro řešení problému batohu
ČVUT FEL X36PAA - Problémy a algoritmy 4. úloha - Experimentální hodnocení algoritmů pro řešení problému batohu Jméno: Marek Handl Datum: 3. 2. 29 Cvičení: Pondělí 9: Zadání Prozkoumejte citlivost metod
KRY. Projekt č. 2. Kamil Dudka xdudka00
KRY Projekt č. 2 Kamil Dudka xdudka00 1 Úvod Úkolem bylo vytvořit program, který do určeného obrázku umí schovat text a tento text z obrázku později vytáhnout. Schovaný text měl být zabezpečený pomocí
Polynomy. Mgr. Veronika Švandová a Mgr. Zdeněk Kříž, Ph. D. 1.1 Teorie Zavedení polynomů Operace s polynomy...
Polynomy Obsah Mgr. Veronika Švandová a Mgr. Zdeněk Kříž, Ph. D. 1 Základní vlastnosti polynomů 2 1.1 Teorie........................................... 2 1.1.1 Zavedení polynomů................................
xrays optimalizační nástroj
xrays optimalizační nástroj Optimalizační nástroj xoptimizer je součástí webového spedičního systému a využívá mnoho z jeho stavebních bloků. xoptimizer lze nicméně provozovat i samostatně. Cílem tohoto
Úprava desek práce ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE FAKULTA STAVEBNÍ. Zde možno vložit znak ČVUT BAKALÁŘSKÁ PRÁCE Jméno, Příjmení
Úprava desek práce ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE FAKULTA STAVEBNÍ Zde možno vložit znak ČVUT BAKALÁŘSKÁ PRÁCE 2012 Jméno, Příjmení ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Fakulta stavební Katedra konstrukcí
7 Transformace 2D. 7.1 Transformace objektů obecně. Studijní cíl. Doba nutná k nastudování. Průvodce studiem
7 Transformace 2D Studijní cíl Tento blok je věnován základním principům transformací v rovinné grafice. V následujícím textu bude vysvětlen rozdíl v přístupu k transformacím u vektorového a rastrového
Pokročilé programování v jazyce C pro chemiky (C3220) Operátory new a delete, virtuální metody
Pokročilé programování v jazyce C pro chemiky (C3220) Operátory new a delete, virtuální metody Dynamická alokace paměti Jazyky C a C++ poskytují programu možnost vyžádat si část volné operační paměti pro
ANALÝZA A KLASIFIKACE BIOMEDICÍNSKÝCH DAT. Institut biostatistiky a analýz
ANALÝZA A KLASIFIKACE BIOMEDICÍNSKÝCH DAT prof. Ing. Jiří Holčík,, CSc. NEURONOVÉ SÍTĚ otázky a odpovědi 1 AKD_predn4, slide 8: Hodnota výstupu závisí na znaménku funkce net i, tedy na tom, zda bude suma
Návod k použití softwaru Solar Viewer 3D
Návod k použití softwaru Solar Viewer 3D Software byl vyvinut v rámci grantového projektu Technologie a systém určující fyzikální a prostorové charakteristiky pro ochranu a tvorbu životního prostředí a
MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ
MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ 1) PROGRAM, ZDROJOVÝ KÓD, PŘEKLAD PROGRAMU 3 2) HISTORIE TVORBY PROGRAMŮ 3 3) SYNTAXE A SÉMANTIKA 3 4) SPECIFIKACE
Zápočtová úloha z předmětu KIV/ZSWI DOKUMENT SPECIFIKACE POŽADAVKŮ
Zápočtová úloha z předmětu KIV/ZSWI DOKUMENT SPECIFIKACE POŽADAVKŮ 10. 5. 2011 Tým: Simplesoft Členové: Zdeněk Malík Jan Rada Ladislav Račák Václav Král Marta Pechová malikz@students.zcu.cz jrada1@students.zcu.cz
I. ZÁVĚREČNÁ ZPRÁVA PROJEKTU
I. ZÁVĚREČNÁ ZPRÁVA PROJEKTU IGA číslo projektu C_VŠCHT_2015_ ifis číslo projektu 445-17-5642 Název projektu Řešitel Inovace a modernizace předmětu Úvod do programování a algoritmů Ing. Jana Finkeová,
Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/34.0333 Vzdělávání v informačních a komunikačních technologií
VY_32_INOVACE_33_05 Škola Střední průmyslová škola Zlín Název projektu, reg. č. Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/34.0333 Vzdělávací oblast Vzdělávání v informačních a komunikačních
Studentská tvůrčí a odborná činnost STOČ 2015
Studentská tvůrčí a odborná činnost STOČ 2015 Automatická identifikace pilových pásů Luděk Koutný Univerzita Tomáše Bati ve Zlíně, Fakulta aplikované informatiky, Nad Stráněmi 4511, 760 05 Zlín 23. dubna
TÉMATICKÝ OKRUH Softwarové inženýrství
TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 24. Otázka : Implementační fáze. Postupy při specifikaci organizace softwarových komponent pomocí UML. Mapování modelů na struktury programovacího
Dobývání znalostí. Doc. RNDr. Iveta Mrázová, CSc. Katedra teoretické informatiky Matematicko-fyzikální fakulta Univerzity Karlovy v Praze
Dobývání znalostí Doc. RNDr. Iveta Mrázová, CSc. Katedra teoretické informatiky Matematicko-fyzikální fakulta Univerzity Karlovy v Praze Dobývání znalostí Pravděpodobnost a učení Doc. RNDr. Iveta Mrázová,
Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií
1 Fakulta elektrotechniky a informatiky Katedra softwarových technologií 12. října 2009 Organizace výuky Přednášky Teoretické základy dle normy jazyka C Cvičení Praktické úlohy odpřednášené látky Prostřední
24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1
24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE AUTOR DOKUMENTU: MGR. MARTINA SUKOVÁ DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 UČIVO: STUDIJNÍ OBOR: PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) INFORMAČNÍ TECHNOLOGIE
Základy programování. Úloha: Eratosthenovo síto. Autor: Josef Hrabal Číslo: HRA0031 Datum: 28.11.2009 Předmět: ZAP
Základy programování Úloha: Eratosthenovo síto Autor: Josef Hrabal Číslo: HRA0031 Datum: 28.11.2009 Předmět: ZAP Obsah 1 Zadání úkolu: 3 1.1 Zadání:............................... 3 1.2 Neformální zápis:.........................
Klasifikace a rozpoznávání
Klasifikace a rozpoznávání Prezentace přednášek Ústav počítačové grafiky a multimédií Téma přednášky Boosting Michal Hradiš UPGM FIT Brno University of Technology Obsah: Co je to boosting? Algoritmus AdaBoost
Univerzita Karlova v Praze
[Vzor: Pevná deska bakalářské práce není součástí elektronické verze] Univerzita Karlova v Praze Matematicko-fyzikální fakulta BAKALÁŘSKÁ PRÁCE Rok Jméno a příjmení autora [Vzor :Titulní strana bakalářské
Recognoil RRW Manager rychlý návod k obsluze
Recognoil RRW Manager rychlý návod k obsluze Obsah: 1) Úvod charakteristika funkcí 2) Instalace 3) První spuštění - menu 4) Selektivní vyhodnocení plochy + uložení 5) Práce s projektem a exporty 6) Poznámky
VZORCE A VÝPOČTY. Autor: Mgr. Dana Kaprálová. Datum (období) tvorby: září, říjen 2013. Ročník: sedmý
Autor: Mgr. Dana Kaprálová VZORCE A VÝPOČTY Datum (období) tvorby: září, říjen 2013 Ročník: sedmý Vzdělávací oblast: Informatika a výpočetní technika 1 Anotace: Žáci se seznámí se základní obsluhou tabulkového
Programování v jazyce C a C++
Programování v jazyce C a C++ Příklad na tvorbu třídy Richter 1 4. prosince 2017 1 Ing. Richter Miloslav, Ph.D., UAMT FEKT VUT Brno Dvourozměrné pole pomocí tříd Zadání Navrhněte a napište třídu pro realizace
DETEKCE HRAN V BIOMEDICÍNSKÝCH OBRAZECH
DETEKCE HRAN V BIOMEDICÍNSKÝCH OBRAZECH Viktor Haškovec, Martina Mudrová Vysoká škola chemicko-technologická v Praze, Ústav počítačové a řídicí techniky Abstrakt Příspěvek je věnován zpracování biomedicínských
Univerzita Karlova v Praze
Univerzita Karlova v Praze Matematicko-fyzikální fakulta BAKALÁŘSKÁ PRÁCE 2011 Jonáš Bujok Univerzita Karlova v Praze Matematicko-fyzikální fakulta BAKALÁŘSKÁ PRÁCE Jonáš Bujok Nástroj pro převod PDF na
Příloha 1. Náleţitosti a uspořádání textové části VŠKP
Příloha 1 Náleţitosti a uspořádání textové části VŠKP Náležitosti a uspořádání textové části VŠKP je určeno v tomto pořadí: a) titulní list b) zadání VŠKP c) abstrakt v českém a anglickém jazyce, klíčová
Časová a prostorová složitost algoritmů
.. Časová a prostorová složitost algoritmů Programovací techniky doc. Ing. Jiří Rybička, Dr. ústav informatiky PEF MENDELU v Brně rybicka@mendelu.cz Hodnocení algoritmů Programovací techniky Časová a prostorová
FORTANNS. havlicekv@fzp.czu.cz 22. února 2010
FORTANNS manuál Vojtěch Havlíček havlicekv@fzp.czu.cz 22. února 2010 1 Úvod Program FORTANNS je software určený k modelování časových řad. Kód programu má 1800 řádek a je napsán v programovacím jazyku
PROGRAMOVÁNÍ V JAZYCE C V PŘÍKLADECH 11 Dynamické datové struktury 11.1 Spojové struktury... 11-1 11.2 Příklad PROG_11-01... 11-2 11.
David Matoušek Programování v jazyce C v pøíkladech Praha 2011 David Matoušek Programování v jazyce C v pøíkladech Bez pøedchozího písemného svolení nakladatelství nesmí být kterákoli èást kopírována nebo
1 Strukturované programování
Projekt OP VK Inovace studijních oborů zajišťovaných katedrami PřF UHK Registrační číslo: CZ.1.07/2.2.00/28.0118 1 Cíl Seznámení s principy strukturovaného programování, s blokovou strukturou programů,
TECHNICKÉ PARAMETRY DIPLOMOVÉ PRÁCE
TECHNICKÉ PARAMETRY DIPLOMOVÉ PRÁCE 1. VAZBA Práce je vázána v pevných deskách, na kterých jsou následující údaje: Název vysoké školy a fakulty; jméno autora diplomové práce; název práce; Diplomová práce
5 Přehled operátorů, příkazy, přetypování
5 Přehled operátorů, příkazy, přetypování Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně budou uvedeny detaily týkající se operátorů. Doba nutná k nastudování
Tabulkový procesor. Základní rysy
Tabulkový procesor Tabulkový procesor je počítačový program zpracovávající data uložená v buňkách tabulky. Program umožňuje použití vzorců pro práci s daty a zobrazuje výsledné hodnoty podle vstupních
Zpracování obrazů. Honza Černocký, ÚPGM
Zpracování obrazů Honza Černocký, ÚPGM 1D signál 2 Obrázky 2D šedotónový obrázek (grayscale) Několikrát 2D barevné foto 3D lékařské zobrazování, vektorová grafika, point-clouds (hloubková mapa, Kinect)
Úvod do zpracování signálů
1 / 25 Úvod do zpracování signálů Karel Horák Rozvrh přednášky: 1. Spojitý a diskrétní signál. 2. Spektrum signálu. 3. Vzorkovací věta. 4. Konvoluce signálů. 5. Korelace signálů. 2 / 25 Úvod do zpracování
Programování v jazyce C pro chemiky (C2160) 12. Specifické problémy při vývoji vědeckého softwaru
Programování v jazyce C pro chemiky (C2160) 12. Specifické problémy při vývoji vědeckého softwaru Reprezentace reálnách čísel v počítači Reálná čísla jsou v počítači reprezentována jako čísla tvaru ±x
Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:
Čtvrtek 8 prosince Pascal - opakování základů Struktura programu: 1 hlavička obsahuje název programu, použité programové jednotky (knihovny), definice konstant, deklarace proměnných, všechny použité procedury
Rosenblattův perceptron
Perceptron Přenosové funkce Rosenblattův perceptron Rosenblatt r. 1958. Inspirace lidským okem Podle fyziologického vzoru je třívrstvá: Vstupní vrstva rozvětvovací jejím úkolem je mapování dvourozměrného
7. Rozdělení pravděpodobnosti ve statistice
7. Rozdělení pravděpodobnosti ve statistice Statistika nuda je, má však cenné údaje, neklesejte na mysli, ona nám to vyčíslí Jednou z úloh statistiky je odhad (výpočet) hodnot statistického znaku x i,
Dynamické programování
Dynamické programování prof. Ing. Pavel Tvrdík CSc. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Efektivní algoritmy (BI-EFA)
Jednoduché cykly 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45.
Jednoduché cykly Tento oddíl obsahuje úlohy na první procvičení práce s cykly. Při řešení každé ze zde uvedených úloh stačí použít vedle podmíněných příkazů jen jediný cyklus. Nepotřebujeme používat ani
Data v počítači. Informační data. Logické hodnoty. Znakové hodnoty
Data v počítači Informační data (elementární datové typy) Logické hodnoty Znaky Čísla v pevné řádové čárce (celá čísla) v pohyblivé (plovoucí) řád. čárce (reálná čísla) Povelová data (instrukce programu)
Programování v jazyce C a C++
Programování v jazyce C a C++ Richter 1 Petyovský 2 1. března 2015 1 Ing. Richter Miloslav, Ph.D., UAMT FEKT VUT Brno 2 Ing. Petyovský Petr, UAMT FEKT VUT Brno C++ Stručná charakteristika Nesdíĺı normu
ÚLOHY S POLYGONEM. Polygon řetězec úseček, poslední bod je totožný s prvním. 6 bodů: X1, Y1 až X6,Y6 Y1=X6, Y1=Y6 STANOVENÍ PLOCHY JEDNOHO POLYGONU
ÚLOHY S POLYGONEM Polygon řetězec úseček, poslední bod je totožný s prvním 6 bodů: X1, Y1 až X6,Y6 Y1=X6, Y1=Y6 STANOVENÍ PLOCHY JEDNOHO POLYGONU 3 úsečky (segmenty) v horní části 2 úsečky ve spodní části
František Batysta batysfra@fjfi.cvut.cz 19. listopadu 2009. Abstrakt
Automatický výpočet chyby nepřímého měření František Batysta batysfra@fjfi.cvut.cz 19. listopadu 2009 Abstrakt Pro správné vyhodnocení naměřených dat je třeba také vypočítat chybu měření. Pokud je neznámá
1 Nejkratší cesta grafem
Bakalářské zkoušky (příklady otázek) podzim 2014 1 Nejkratší cesta grafem 1. Uvažujte graf s kladným ohodnocením hran (délka). Definujte formálně problém hledání nejkratší cesty mezi dvěma uzly tohoto
Kybernetika a umělá inteligence, cvičení 10/11
Kybernetika a umělá inteligence, cvičení 10/11 Program 1. seminární cvičení: základní typy klasifikátorů a jejich princip 2. počítačové cvičení: procvičení na problému rozpoznávání číslic... body za aktivitu
Téma 2: Pravděpodobnostní vyjádření náhodných veličin
0.025 0.02 0.015 0.01 0.005 Nominální napětí v pásnici Std Mean 140 160 180 200 220 240 260 Std Téma 2: Pravděpodobnostní vyjádření náhodných veličin Přednáška z předmětu: Pravděpodobnostní posuzování
Škola: Gymnázium, Brno, Slovanské náměstí 7 III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Název projektu: Inovace výuky na GSN
Škola: Gymnázium, Brno, Slovanské náměstí 7 Šablona: III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Název projektu: Inovace výuky na GSN prostřednictvím ICT Číslo projektu: CZ.1.07/1.5.00/34.0940
VISUAL BASIC. Přehled témat
VISUAL BASIC Přehled témat 1 ÚVOD DO PROGRAMOVÁNÍ Co je to program? Kuchařský předpis, scénář k filmu,... Program posloupnost instrukcí Běh programu: postupné plnění instrukcí zpracovávání vstupních dat
Jak v Javě primitivní datové typy a jejich reprezentace. BD6B36PJV 002 Fakulta elektrotechnická České vysoké učení technické
Jak v Javě primitivní datové typy a jejich reprezentace BD6B36PJV 002 Fakulta elektrotechnická České vysoké učení technické Obsah Celočíselný datový typ Reálný datový typ Logický datový typ, typ Boolean
1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:
1. lekce 1. Minimální program do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: #include #include int main() { printf("hello world!\n"); return 0; 2.
Software pro správu barev Palette Master
Software pro správu barev Palette Master Návod k použití 01 Speciální software pro kalibraci Software Palette Master, který byl vyvinut ve spolupráci s předními odborníky na kalibraci barev X-Rite, zjednodušuje
Formální požadavky na zpracování bakalářské práce
- 1 - Formální požadavky na zpracování bakalářské práce Minimální rozsah 40 stran Řádkování Řádkování 1,5 Písmo Velikost 12, Times New Roman Okraje Horní okraj stránky 25 mm, dolní okraj stránky 25 mm,
6. blok část C Množinové operátory
6. blok část C Množinové operátory Studijní cíl Tento blok je věnován problematice množinových operátorů a práce s množinovými operátory v jazyce SQL. Čtenáři se seznámí s operátory, UNION, a INTERSECT.
Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy
Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy Lukáš Havrlant Univerzita Palackého 10. ledna 2014 Primární zdroj Jiří Adámek: Foundations of Coding. Strany 137 160. Na webu ke stažení, heslo:
SOFTWARE NA ZPRACOVÁNÍ MRAČEN BODŮ Z LASEROVÉHO SKENOVÁNÍ. Martin Štroner, Bronislav Koska 1
SOFTWARE NA ZPRACOVÁNÍ MRAČEN BODŮ Z LASEROVÉHO SKENOVÁNÍ SOFTWARE FOR PROCESSING OF POINT CLOUDS FROM LASER SCANNING Martin Štroner, Bronislav Koska 1 Abstract At the department of special geodesy is
KRAJSKÁ KNIHOVNA V HAVLÍČKOVĚ BRODĚ
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA STAVEBNÍ ÚSTAV KOVOVÝCH A DŘEVĚNÝCH KONSTRUKCÍ FACULTY OF CIVIL ENGINEERING INSTITUTE OF METAL AND TIMBER STRUCTURES KRAJSKÁ KNIHOVNA
Středoškolská technika SCI-Lab
Středoškolská technika 2016 Setkání a prezentace prací středoškolských studentů na ČVUT SCI-Lab Kamil Mudruňka Gymnázium Dašická 1083 Dašická 1083, Pardubice O projektu SCI-Lab je program napsaný v jazyce
UNIVERZITA PARDUBICE. 4.4 Aproximace křivek a vyhlazování křivek
UNIVERZITA PARDUBICE Licenční Studium Archimedes Statistické zpracování dat a informatika 4.4 Aproximace křivek a vyhlazování křivek Mgr. Jana Kubátová Endokrinologický ústav V Praze, leden 2012 Obsah
Aplikovaná numerická matematika
Aplikovaná numerická matematika 6. Metoda nejmenších čtverců doc. Ing. Róbert Lórencz, CSc. České vysoké učení technické v Praze Fakulta informačních technologií Katedra počítačových systémů Příprava studijních