. : New eShop! - Mobilní verze - Pandatron.cz - Pandatron.sk - Diskuzní fórum - Zakázkový vývoj : .
 
OpenCV a embedded procesory
16. dubna 2013 - 6:00 | Joseph Coombs | OpenCV a embedded procesory | Komentářů: 4  

OpenCV a embedded procesory

Rostoucí výkon a klesající cena embedded procesorů jdou ruku v ruce s požadavky moderních aplikací, jako je například oblast počítačového vidění a zpracování obrazových informací.

Vývojáři tvrdí, že každý úzce sofistikovaný hardware má schopnost posouvat hranice a vytvářet nové, rychlejší a zároveň levnější systémy, aniž by se snížila jejich základní kvalita. Rostoucí napětí z kratšího vývojového cyklu je však nutí využívat již existující technologie a to jak z oblasti embedded systémů, tak z oblasti, která je již tradičně doménou velkých pracovních stanic. Adaptace a použití stávajících softwarových knihoven může práci velice usnadnit, především v případě, kdy se jedná o velký projekt, jako je již zmíněné počítačové vidění. V jeho případě jde o hodně rozšířené téma, známé z celé řady bezpečnostních a průmyslových autonomních systémů a podpůrných aplikací moderních dopravních prostředků.

Jeden z mnoha softwarových produktů, určených pro aplikace embedded systémů, je OpenCV. OpenCV je otevřená a volně dostupná knihovna počítačového vidění, která v desítkách kategorií obsahuje několik stovek algoritmů, především z oblasti filtrace a transformace obrazových informací a strojového učení. V současné době ji po celém světě používá již několik tisíc vývojářů a to i přes to, že stále prochází aktivním vývojem. Kromě ní je samozřejmě k dispozici i řada dalších, srovnatelných knihoven, které se také zaměřují na embedded systémy, ale málo z nich je tolik rozšířených jako OpenCV a zároveň tak komplexních.

V současné době je celá řada embedded zařízení postavena na architektuře Intel x86, pro kterou je OpenCV od začátku vyvíjen. V současné době však není žádným překvapením, že OpenCV je již zcela portován i na druhou nejběžnější architekturu embedded zařízení – procesory skupiny ARM®. Samozřejmě není problém provést převod určitých částí OpenCV i na jiné embedded systémy, je však třeba brát v úvahu možná paměťová a výkonová omezení, která mohou představovat vážný problém. Rovněž je nezbytné provést důkladnou optimalizaci OpenCV pro nový hostitelský systém, jinak není možné dosáhnout plného výkonu a dostatečné účinnosti.


Obr. 1: Zjednodušený úvod do knihovny OpenCV

Slovo "optimalizace", v případě embedded platforem znamená již tradičně zdlouhavé úpravy v oblasti nízké hardwarové úrovně a psaní/modifikace zdrojového kódu knihoven. Naštěstí jsou embedded procesory poměrně komplexními systémy, pro které jsou dostupné silné a uživatelsky přívětivé vývojové nástroje. Typické embedded zařízení lze charakterizovat jako systém na čipu (SOC) a to nejen v podobě ARM jádra, ale celé řady periferií a pomocných systémů, které pomáhají snížit zatížení procesoru. V případě SOC nejsou samozřejmě výjimkou ani systémy s více ARM jádry či jinými plně vybavenými koprocesory. Jedním z hlavních aspektů SOC přitom není hardware samotný, ale podpůrný software, který vývojářům v jejich aplikacích umožňuje efektivní využití výkonu celého SOC. Mezi takové nástroje například i optimalizace zdrojového kódu jazyka C ještě před jeho kompilací, nebo optimalizace softwarových knihoven s cílem zrychlení běžných operací při zpracování signálu a zvládnutí nízko-úrovňové interakce mezi moduly uvnitř SOC. Z toho důvodu jsou obvykle k dispozici speciální nástroje, které podporují tzv. vendor-specific koprocesory či jiné hardwarové akcelerátory. Zjednodušeně řečeno se jedná o skupinu nástrojů, určených pro průhlednou optimalizaci aplikací, vyvíjených na vysoké úrovni.


Obr. 2: Blokový diagram typického SOC s jádrem ARM CPU a DSP koprocesorem

Výhodou vysokoúrovňových softwarových knihoven (jako je právě OpenCV) a low-level software od dodavatele konkrétního systému, je možnost vytvoření plně funkčního, efektivního systému během jediné vývojové fáze. Příkladem může být použití SOC s plně vybaveným, digitálním signálovým procesorem (DSP), určeným pro náročné výpočetní úlohy. DSP je přímo ideální prvek, vhodný pro zpracování algoritmů OpenCV, jako je například analýza obrazu a to zvláště v případě, kdy CPU nemá dostupnou nativní podporu pro výpočty s plovoucí desetinnou čárkou a provoz OpenCV výhradně na DSP architektuře by vyžadoval příliš mnoho úsilí. Podpora vysokoúrovňových softwarových knihoven, jako OpenCV, je bez problémů k dispozici v celé SOC, kde obvykle tvoří přímo klíčovou úlohu vývojového nástroje. Z pohledu vývojáře embedded systémů je velmi žádoucí, aby použití jednotlivých prvků knihoven bylo maximálně transparentní a podporovalo vhodné moduly SOC systému. Velkou výhodou jsou tedy ty embedded zařízení, které vývojářům umožňují soustředit více různých zdrojů na jejich konečný produkt a méně času trávit nad otázkami specifikace dané platformy. Softwarové nástroje, které takový postup podporují, nabízejí efektivní práci s hardwarovými schopnosti a dostupným výpočetním výkonem systému, který je důležitý nejen pro vývojáře, ale umožňuje i samotnému produktu, aby zůstal konkurenceschopný.


Obr. 3: Embedded aplikace jsou efektivnější v případě, kdy se jedná o heterogenní více-jádrové SOC

Autor: Joseph Coombs, TI

Odkazy & Download:
Domovská stránka firmy Texas Instruments
Domovská stránka OpenCV
Learning OpenCV: Computer Vision with the OpenCV Library







GooglePlus1 FaceBook Twitter del.icio.us DiGG Google StumbleUpon Google Buzz Email RSS PDF Tisk

Komentáře (4):

Zobrazit starší 30 dnů (4)...



Název příspěvku: Vaše jméno: host
                 
  Zakázat formátování [Zakáže kódování a nahrazování smajlíky.]
Připojit soubory
reklama:
PLA8 MICRO - Logický analyzátor pro USB
Logický analyzátor pro USB 2.0, klon Saleae, 8-bitová verze s 10 GS a integrovanou analýzou rozhraní.
Skladem od 825 Kč

Informace uvedené v článcích jsou platné v době jejich vydání a samotné články jsou určeny pouze jako zdroj informací. Autor článku ani správce webu nenesou žádnou zodpovědnost za případné újmy na majetku a zdraví. Názvy společností a výrobků, loga a další multimediální materiál mohou být ochrannými známkami příslušných společností.
RSS kanály: | |
+420 723 846 377
info@pandatron.cz
Všechna práva vyhrazena | mobilní verze | © Copyright 2000 - 2016 ISSN 1803-6007