Moravian instruments
Vyhledávání
Hlavní menu
Hlavní stránka
O společnosti
Stažení software
Stažení dokumentů
Obchodní partneři
Produkty
Programový systém Control Web
Strojové vidění VisionLab
Kamery DataCam a  osvětlovače DataLight
Průmyslový počítačový systém DataLab
Vědecké kamery
Speciální technika
Ceník
Aktivace produktů
Služby
Školení
Zakázková řešení
Podpora
Control Web - Ukázkové aplikace


Hlavní stránkaPodporaRady pro tvorbu aplikací

Rady pro tvorbu aplikací - změny velikosti obrazu v krocích strojového vidění u přístroje gl_camera
 Pravděpodobně jste během vývoje aplikace strojového vidění již zaznamenali, že při vložení některého z kroků, které mění velikost obrazu, se vám zobrazilo varování, že pro virtuální přístroj gl_camera není tento krok doporučen. Je to vskutku divné varování, které zaslouží bližší vysvětlení.

Toto varování samozřejmě neznamená, že by virtuální přístroj gl_camera, který pro svou činnost používá GPU, nedokázal měnit velikost obrazu, se kterým pracuje. Virtuální přístroj můžete na obrazovce zvětšovat a zmenšovat, a to i neproporčně, podle libosti. Tak v čem může být problém?

Při vložení kroku měnícího velikost obrazu do řetězce strojového vidění se objeví dialog s tímto varováním

Při vložení kroku měnícího velikost obrazu do řetězce strojového vidění se objeví dialog s tímto varováním

Virtuální přístroj gl_camera využívá pro vykreslování obrazu z kamery grafické rozhraní OpenGL. Pro zpracování obrazu využívá mohutného masivně paralelního výkonu současných grafických procesorů. Pomocí shaderů v jazyce GLSL dokáže v reálném čase s obrazem to, co je prostřednictvím CPU počítače nerealizovatelné. Základem, na kterém je vše postaveno, je tzv. vykreslovací kontext. Součástí tohoto kontextu, který sídlí v grafické paměti spravované grafickým procesorem, jsou např. fragmentové buffery obsahující vykreslovaný obraz, paměťové pixelové buffery velké jako originální obraz z kamery, bufferové objekty různých velikostí pro jednotlivé fáze zpracování obrazu, buffery maskovacích šablon, vertexové objekty pro dodatkovou grafiku, texturové objekty pro uschovávání obrazů, rasterizovaná písma, množství přeložených a slinkovaných shaderů a mnoho dalšího. Toto vše se musí při změně velikosti základního kontextu odstranit a vytvořit znovu. Již toto samo o sobě je velmi paměťově a výkonově náročný proces, ale to to stále ještě není ten hlavní problém. Potíž je v tom, jak jednotlivé grafické ovladače spravují grafickou paměť. Objekty často nejsou v grafické paměti uvolňovány okamžitě, ale o vše se starají samostatné uklízecí procesy. A požadavky, při kterých jsou s vysokou frekvencí odstaňovány a opět vytvářeny objekty v grafické paměti mohou vést ke kolapsu těchto uklízecích procesů. Při masivním používání změn velikosti obrazu je tedy dobré se pro danou grafickou kartu a konkrétní verzi grafických ovladaču nejprve přesvědčit, zda-li ovladače tuto zátěž zvládají.

I v případě ovladačů, které bez problémů zvládají opakované odstraňování starých a vytváření nových objektů v grafické paměti, zůstává tento proces náročným a silně zatěžujícím GPU i CPU počítače. Náročnost je dobře vidět na rozdílu doby běhu řetězce GPU kroků strojového vidění při prvním a všech dalších spuštění. První spuštění může být i stokrát pomalejší než další běhu v trvalém provozu. V aplikacích strojového vidění je vždy několik možností, jak požadavky na změny velikosti obrazu řešit bez nepřetržitých změn velikosti obrazu uvnitř jedné sekvence kroků virtuálního přístroje gl_camera. Získáme tak nejen bezpečnější, ale také mnohonásobně rychlejší aplikaci.

RC

 
 | O společnosti | Produkty | Podpora | Stažení software | Stažení dokumentů | 
Moravské přístroje, a.s., Masarykova 1148, Zlín-Malenovice, 76302