Produkty pre automatizáciu

VisionLab

CW8-VL
Integrátor: 631,00 € bez DPH
Koncová: 701,00 € bez DPH

Availability: Na sklade

Integrátor: 631,00 € bez DPH
Koncová: 701,00 € bez DPH
  • strojové videnie pre Control Web 6.1 a vyšší

Detaily

VisionLab je softvérový systém zameraný na vytváranie aplikácií na analýzu obrazu a počítačové videnie. VisionLab však nefunguje ako samostatný a nezávislý softvérový systém, ale je integrovaný do systému rýchleho vývoja priemyselných aplikácií Control Web.

Vďaka zabudovaniu do Control Webu môžu aplikácie strojového videnia v prostredí VisionLab využívať všetky tieto funkcie. Vývojový systém pre aplikácie strojového videnia bez týchto funkcií by bol značne ochudobnený a používatelia by v mnohých prípadoch museli prácne riešiť výmenu údajov medzi aplikáciou na vizualizáciu a riadenie procesov a aplikáciou strojového videnia, čo samozrejme vedie k vyšším nákladom a dlhšiemu a náročnejšiemu vývoju.

VisionLab editor
VisionLab editor

Funkcionalita systému Control Web je veľmi rozsiahla a okrem iného zahŕňa rozhrania na komunikáciu s veľkým počtom I/O jednotiek, priemyselnej automatizácie a komunikačných kariet. Rozhranie ovládača pre Control Web je dobre zdokumentované a voľne dostupné pre spoločnosti, ktoré implementujú svoje ovládače zariadení. Vďaka podpore štandardných protokolov (napr. OPC) a de facto štandardov (napr. Modbus) môže Control Web komunikovať so zariadeniami, pre ktoré nie je k dispozícii natívny ovládač. Aplikácie v prostredí Control Web vytvárajú rozhrania človek/stroj, archivujú procesné údaje a zobrazujú ich históriu, monitorujú limitné hodnoty sledovaných veličín a upozorňujú operátora na ich prekročenie. Aplikácie môžu pristupovať k podnikovým databázam prostredníctvom jazyka SQL. Control Web umožňuje veľmi jednoducho vytvárať distribuované aplikácie typu klient-server a peer-to-peer. Systém obsahuje aj server HTTP na prístup k aplikáciám prostredníctvom prehliadačov WWW.

VisionLab a Control Web

Hoci VisionLab pracuje v prostredí aplikácie Control Web, je zámerne navrhnutý tak, aby sa dal nainštalovať úplne nezávisle a prepojenie medzi týmito dvoma systémami nezávisí od verzie žiadneho z týchto prostredí. Jedinou požiadavkou na fungovanie aplikácie VisionLab je Control Web vo verzii 6.1 alebo vyššej. Staršie systémy Control Web nemôžu pracovať so systémom VisionLab.

Spojovacím článkom medzi týmito dvoma prostrediami sú virtuálne zariadenia systému Control Web na ovládanie kamier. Virtuálne zariadenia camera a gl_camera sú prítomné v každej inštalácii Control Web od verzie 6.1. Tieto virtuálne zariadenia môžu zobrazovať obraz digitálnych kamier DataCam alebo iných kamier s príslušným ovládačom WDM. Živý obraz možno nielen vložiť do aplikácie, ale aj zaznamenať do sekvencie AVI spolu s ďalšími údajmi (dátum, čas atď.), napr. pre bezpečnostné aplikácie. Na uloženie súboru AVI možno vybrať ľubovoľný formát (kodek) nainštalovaný v operačnom systéme (samozrejme, za predpokladu, že je kompatibilný so zdrojom údajov - napr. niektoré formáty nemôžu ukladať len čiernobiele obrázky atď.). Obrázok je tiež možné preniesť cez sieť do inej webovej aplikácie Control Web, kde sa môže nielen zobraziť, ale aj spracovať, archivovať v súbore AVI atď. Toto všetko je k dispozícii v Control Web v6.1 a nie je potrebné inštalovať samotný VisionLab.

Kamerové zariadenia v systéme Control Web
Kamerové zariadenia v systéme Control Web

Po inštalácii je VisionLab k dispozícii pre všetky systémy Control Web (ako je uvedené vyššie od verzie 6.1) nainštalované na danom počítači, t. j. pre vývojové aj runtime verzie, pre verzie so znakovými sadami ANSI a UNICODE, pre rôzne jazykové mutácie atď. Licencie pre VisionLab môžu byť viazané na daný počítač prostredníctvom licenčného čísla, rovnako ako v prípade samotného systému Control Web, alebo môže byť licencia umiestnená na prenosnom kľúči USB.

Analýza obrazu v prostredí VisionLab

VisionLab je prostredie, ktoré dáva aplikácii možnosť skutočne analyzovať obrázok a získať z neho potrebné informácie. Množstvo a typy informácií, ktoré možno získať, do veľkej miery závisia od cieľovej aplikácie. Aplikácia môže napríklad merať rozmery výrobku. Alebo môže skontrolovať prítomnosť alebo neprítomnosť jednotlivých častí výrobku. Dokáže rozpoznávať tvary a/alebo farby, zisťovať prítomnosť otvorov, počítať snímané prvky a triediť ich do kategórií, čítať čiarové alebo maticové kódy alebo texty na štítkoch, ... Možností je veľa a nedajú sa približne vypočítať.

Samotná analýza obrázkov sa vykonáva v niekoľkých krokoch. Kroky sa líšia funkčnosťou a tiež typmi a počtom vstupných a výstupných parametrov. Práve jednotlivé kroky spracovania obrazu tvoria jadro systému VisionLab. Tvorca aplikácie vyberie kroky z palety dostupných krokov a zoradí ich podľa potrieb aplikácie.

Paleta krokov editora VisionLab
Paleta krokov editora VisionLab

Možnosť reťazenia krokov spracovania obrazu majú všetky virtuálne kamerové zariadenia v systéme Control Web. Každý virtuálny nástroj má svoju vlastnú postupnosť krokov a funguje úplne nezávisle od iných inštancií týchto virtuálnych nástrojov. Každá inštancia virtuálneho nástroja fotoaparátu je tiež spojená s jedným konkrétnym fotoaparátom pripojeným k počítaču.

V rámci každej inštancie virtuálneho prístroja kamery sa vytvorí súbor dátových objektov VisionLab. Tieto dátové objekty uchovávajú stav pri každom prechode krokovými sekvenciami. Dátové objekty sú jednoznačne identifikované svojím názvom (identifikátorom) a môžu mať rôzne typy, od základných typov na ukladanie číselných, logických a reťazcových (textových) hodnôt cez typy na ukladanie bodov, čiar, obdĺžnikov a krúžkov až po typy reprezentujúce celý obrázok. Jednotlivé kroky pracujú so vstupnými objektmi (napr. väčšina krokov vyžaduje jeden vstupný parameter typu obrázok, v ktorom dostane bitovú mapu, s ktorou pracuje). Kroky, ktoré vykonávajú filtrovanie obrazu, potom okrem iných vstupných parametrov upravujúcich filter (napr. veľkosť tzv. filtračného jadra) opäť vyžadujú výstupný parameter typu image, do ktorého sa ukladá výsledok po filtrovaní. Kroky na čítanie fontov alebo čiarových kódov potrebujú výstupný parameter typu string, do ktorého sa uloží načítaný text alebo kód. Kroky vyhľadávania geometrických tvarov zapisujú výsledky do poľa objektov typu kruh alebo obdĺžnik atď.

Dátové objekty VisionLab možno vždy inicializovať hodnotami dátových prvkov Control Web (výrazy) pred každým spustením sekvencie spracovania obrazu. Týmto spôsobom môže aplikácia Control Web upravovať algoritmy spracovania obrazu.

Na druhej strane, na konci sekvencie spracovania obrazu sa môžu hodnoty dátových objektov VisionLab zapísať do dátových prvkov aplikácie Control Web. Takto možno výsledky spracovania ďalej využívať v aplikácii, napr. ukladať ich do databázy, ovplyvňovať proces prostredníctvom vstupných/výstupných jednotiek atď.

Hardvér pre VisionLab

Jednou z hlavných inovácií systému VisionLab v porovnaní s podobnými systémami je schopnosť využiť obrovský výpočtový výkon ukrytý v moderných programovateľných grafických procesoroch (GPU). Moderné GPU obsahujú veľký počet paralelných výpočtových jednotiek, ktorých čistý výpočtový výkon prevyšuje aj najrýchlejšie viacjadrové CPU (Central Processing Unit) o niekoľko rádov. Samozrejme za predpokladu, že daná úloha je vhodná na masívne paralelné spracovanie. Takouto úlohou je vykresľovanie 3D scén v moderných počítačových hrách a rozvoj herného priemyslu stojí za obrovským rozšírením grafických procesorov. S výkonným grafickým procesorom, ktorý je prítomný v mnohých moderných počítačoch (bohužiaľ, to sa nedá povedať o jednej z najpoužívanejších línií grafických adaptérov, a to o integrovaných grafických adaptéroch spoločnosti Intel), existuje možnosť využiť tento výkon aj v iných aplikáciách. Neexistuje však veľa úloh vhodných na tento druh spracovania a v drvivej väčšine úloh, ktoré počítače bežne spracovávajú, je úloha CPU nezastupiteľná. Spracovanie obrazu v reálnom čase je však jednou z úloh, ktoré veľmi dobre zvládajú masívne paralelné procesory, a niektoré operácie, ktoré si vyžadujú aj niekoľko sekúnd práce CPU, sa môžu vykonávať na GPU v reálnom čase pre každú snímku načítanú z kamery.

Virtuálny stroj gl_camera (názov tohto virtuálneho stroja je odvodený od názvu aplikačného programovacieho rozhrania "OpenGL" na prácu s grafickými procesormi) používa na spracovanie obrazu z kamery grafický procesor. To mu umožňuje vykonávať operácie s obrazom, ktoré by inak neboli možné v reálnom čase. Príkladom je viacprechodová rekonštrukcia farebného obrazu zo surového obrazu nasnímaného farebným senzorom s takzvanou Bayerovou maskou. Takáto rekonštrukcia vytvára farebný obraz, ktorý v porovnaní s bežnou bilineárnou farebnou interpoláciou neobsahuje farebné artefakty a ponúka výrazne vyššiu farebnú vernosť, najmä v jemných detailoch. Ďalším príkladom je adaptívna redukcia šumu. Oblasť, v ktorej GPU vyniká, je transformácia celého obrazu (zmena farebného priestoru, obrazové filtre atď.). GPU je veľmi vhodný aj na iné techniky predspracovania obrazu, ako sú soľné a peperové filtre, adaptívne prahovanie, segmentácia obrazu atď.

Okrem samotnej funkčnosti môže použitie GPU prispieť aj k vizuálnej príťažlivosti aplikácie - čiary, rozmery a text vložené do obrazu využívajú antialiasing (v podstate možnosť kresliť "medzi obrazovými bodmi"), môžu byť nastavené tak, aby boli priehľadné a úplne neprekrývali obraz z kamery atď.

Pre aplikácie v počítačoch bez vhodného GPU je možné použiť virtuálny prístroj camera, ktorý na svoju činnosť nepotrebuje GPU. Mnohé algoritmy spracovania obrazu nie sú vhodné na spracovanie pomocou GPU a musia sa vykonávať na CPU. Pokiaľ aplikácia nepoužíva napríklad náročný filter, segmentáciu alebo inú operáciu spustenú na GPU, môže bez problémov fungovať na vstavaných počítačoch bez programovateľného grafického adaptéra.

S výnimkou naozaj základných typov počítačov sú prakticky všetky moderné počítače (stolové modely a prenosné počítače) vybavené jednotkami CPU s viacerými (dvoma, tromi alebo štyrmi) výpočtovými jadrami. A trend je celkom jasný - zvyšovanie výkonu osobných počítačov sa bude čoraz viac realizovať zvyšovaním počtu jadier procesora, a nie zvyšovaním rýchlosti jedného jadra.

Pri veľkom počte programov je však často problém efektívne využívať viac jadier. Mnohé algoritmy sú navrhnuté ako jedno výpočtové vlákno a je celkom nemožné rozdeliť úlohu tak, aby rovnomerne využívala viac jadier procesora. Našťastie je oblasť spracovania obrazu veľmi vhodná na paralelné spracovanie, a aj keď daný algoritmus nemôže využiť masívne paralelné spracovanie na GPU, takmer vždy sa dá použiť paralelné spracovanie na viacerých CPU. Preto bol program VisionLab od začiatku navrhnutý tak, aby maximálne využíval možnosti moderných viacjadrových procesorov. Schopnosť paralelného výkonu nie je obmedzená na žiadny konkrétny počet jadier. Ak je počítač vybavený procesorom s dvoma jadrami, výpočtový čas série krokov je takmer 1/2 času vykonávania rovnakého algoritmu na jednojadrovom procesore. Podobne na procesore so štyrmi jadrami sa dostaneme na približne 1/4 výpočtového času atď.