SMARTVISION SOFTWARE DEVELOPMENT KIT M a r t i n Z m r h a l Snímek 1 z 28
OBSAH 1. O společnosti Workswell 2. SmartVision historie, požadavky 3. Řešení pomocí NI produktů 4. SmartVision Library - přehled funkcí 5. Princip DLL knihovny 6. Připojení a nastavení HW kamery 7. Zobrazení videa ve vlastní aplikaci 8. Digitální stabilizace 9. Nahrávání videa 10. Práce s termografickými kamerami 11. Měření v termálním obraze 12. Distribuce 13. Licencování 14. Přínosy použití NI produktů 15. Budoucí vývoj SmartVision Snímek 2 z 28
O SPOLEČNOSTI WORKSWELL Založena 2010, sídlo v Praze Termografie: Bezkontaktní měření teploty pomocí termografických kamer Strojní průmysl, stavebnictví, potravinářství, chemický průmysl Oficiální distributor kamer Flir, Infratec, Jenoptik, Optris, SVS- Vistek pro český a slovenský trh Přednášky, školení a semináře, Centrum termografie Vývoj software, průmyslových řešení: Automatizace, bezpečnostní technologie, vstupně-výstupní kontrola, kontrola kvality Snímek 3 z 28
SMARTVISION HISTORIE, POŽADAVKY Původně aplikace na míru zákazníkovi Požadavky: Možnost připojit se k libovolné GiGE barevné/monochromatické kameře Zobrazit video ve vlastní aplikaci psané v C++ Algoritmus pro automatické zaostřování a ovládání motoru objektivu Image processing, nahrávání videa Nakonec samostatný produkt rozšířený o podporu termografických kamer Snímek 4 z 28
ŘEŠENÍ POMOCÍ NI PRODUKTŮ NI Vision Acquisition Software (IMAQdx) Podpora nejen GigE Vision kamer, ale i IEEE 1394 FireWire, IP (Ethernet), DirectShow USB NI LabVIEW NI Vision Development Module Velmi bohatá paleta funkcí pro image processing NI LabVIEW Application Builder Sestavení aplikace do DLL knihovny použitelné v téměř libovolném programovacím jazyku Jednoduchá distribuce, instalátory Snímek 5 z 28
SMARTVISION LIBRARY - PŘEHLED FUNKCÍ Jedna knihovna pro různé typu video hardwaru Podpora velkého množství kamer různých výrobců IMAQdx: GigE Vision, IEEE 1394 FireWire, IP (Ethernet), DirectShow USB Kompletní nastavení hardwaru kamery (XML atributy u GiGE kamer) pomocí Set a Get funkcí Jednoduchá použitelnost a distribuce Aplikace formou DLL knihovny Okno s videem je vloženo do nadřazené aplikace psané v libovolném programovacím jazyce Vše zabaleno v jednotném instalátoru Snímek 6 z 28
SMARTVISION LIBRARY - PŘEHLED FUNKCÍ Real-time image processing Úpravy jasu, kontrastu, křivek, vyvážení barev videa, doostřování videa Digitální stabilizace třesoucího se obrazu Přístup ke snímkům videa Přístup k aktuálním snímkům videa před a po processingu pomocí pointerů do operační paměti Nahravání komprimovaného a nekomprimovaného videa do formátu AVI Podpora termografických kamer Převod dat z kamery na teploty, měřící nástroje a měření v obraze, vyčítání teplotních statistik Snímek 7 z 28
PRINCIP DLL KNIHOVNY DLL vytvořená v LabVIEW Application Builder Pomocí funkcí z DLL je spuštěno VI Vstupní a výstupní terminály VI => parametry a návratové hodnoty funkce z DLL void OpenSessionCam(char camerainterface[]) Více návratových hodnot pomocí pointerů Například C#: Int status = GetAttribute(camInterface, activeattribute, &doublevalue, &stringvalue, length) Snímek 8 z 28
PŘIPOJENÍ A NASTAVENÍ HW KAMERY Otevření session s kamerou, nastavování hardwarových parametrů void OpenSessionCam(char camerainterface[]) int8_t SetAttribute(char interface[], char activeattribute[], double valuedbl, char valuestring[]) Snímek 9 z 28
ZOBRAZENÍ VIDEA VE VLASTNÍ APLIKACI LabVIEW VI Front Panel je vložen do aplikace zákazníka VI spuštěno při zavolání funkce z DLL Schován window title bar, menu bar, toolbar Front Panel je vložen pomocí WinAPI funkcí SetWindowPos() a SetParent(), tím je plně součástí nadřazené aplikace Nastavování velikost okna s videem, Front Panel lze zavřít/otevřít Snímek 10 z 28
ZOBRAZENÍ VIDEA VE VLASTNÍ APLIKACI Snímek 11 z 28
DIGITÁLNÍ STABILIZACE Real-time stabilizace třesoucího se obrazu Vhodné zejména pro statické scény pro eliminaci třesení montáže či stativu kamery Založena na trackingu objektů v obraze Vracení a otáčení každého snímku zpět proti výchylce zjištěné trackingem objektů Snímek 12 z 28
DIGITÁLNÍ STABILIZACE Snímek 13 z 28
DIGITÁLNÍ STABILIZACE Snímek 14 z 28
NAHRÁVÁNÍ VIDEA Záznam videa z kamery do souboru formátu AVI Komprimované video volně dostupné kodeky (Xvid), NI kodeky (Motion JPEG, FF Video Codec 1) Nekomprimované video velký datový objem, beze ztráty informace Video z kamery nejprve do dočasných souborů Na HDD se ukládá nekomprimovaný stream dat z kamery Dvě možnosti převodu: Průběžná komprimace (v průběhu nahrávání) Postupná komprimace (po skončení nahravání) Nutnost mít na HDD dostatek místa, omezením je rychlost HDD, při vyšších rozlišeních nejlépe použít SSD disk 800x600/30 FPS ~ cca 41MB/s 1280x1024/30 FPS ~ cca 113MB/s 1920x1080/30 FPS ~ cca 180MB/s Snímek 15 z 28
PRÁCE S TERMOGRAFICKÝMI KAMERAMI Konverze dat z termografické kamery Výstup z kamery většinou 16 bit/pixel, nutno konvertovat na teplotu v pixelu Převod dat z termokamer FLIR automaticky Převod dat z libovolné kamery pomocí uživatelsky editovatelného.m file (NI LabVIEW MathScript RT Module) Přepínání teplotních palet, Automatický a manuální teplotní rozsah Snímek 16 z 28
PRÁCE S TERMOGRAFICKÝMI KAMERAMI Snímek 17 z 28
MĚŘENÍ V TERMÁLNÍM OBRAZE Kreslení ROI nástrojů Nástroje ROI součástí Image Display Indicator Bod, úsečka, obdélník, polygon, elipsa, atd. Ruční kreslení/zadávání ROI programově funkcí pomocí pole bodů Zobrazování a vyčítání teplot a statistik Každá oblast zájmu vlastní ID, přes které se přistupuje k datům v oblasti Vyčítání pole teplot z oblasti (void GetMeasData(int32_t index, float appendedarray[], int32_t len) Zobrazení minimální a maximální teploty v ROI Generování statistik z oblasti (mininum, maximum, průměr, standardní odchylka, rozptyl, ) Snímek 18 z 28
MĚŘENÍ V TERMÁLNÍM OBRAZE Snímek 19 z 28
STATISTIKY V TERMÁLNÍM OBRAZE Snímek 20 z 28
DISTRIBUCE SMARTVISION SDK NI LabVIEW Application Builder Jednoduché generování DLL z VIs Velice jednoduché vytvoření instalátoru Vlastní licenční podmínky, grafika instalátoru Zápis do registrů, zástupci na ploše, ve Windows nabídce Programy Read-me Automatické verzování sestavení Automatické spuštění NI LabVIEW.exe aplikací po dokončení instalace Instalátor obsahuje veškeré potřebné Run-Time Engines a ovladače Snímek 21 z 28
DISTRIBUCE SMARTVISION SDK Snímek 22 z 28
LICENCOVÁNÍ SMARTVISION SDK Vlastní licenční systém Samostatná aktivační a deaktivační aplikace Kombinace zápisu do registrů a licenčního souboru Plná verze Aktivace licence v databázi na serveru Aktivace NI Vision Run-Time Engine (přes CMD bez zásahu uživatele) Trial verze 7 denní trial verze Kontaktování serveru kvůli kontrole data Omezeno délkou trial licence NI Vision Run-Time Engine Snímek 23 z 28
LICENCOVÁNÍ SMARTVISION SDK Snímek 24 z 28
PŘÍNOSY POUŽITÍ NI PRODUKTŮ NI LabVIEW a Vision Development Module: Extrémně rychlý vývoj Vision aplikací Připojení a spuštění obrazu z kamery komfortně a rychle (4 VIs, Image Display Indicator, jedna While smyčka) Široká paleta funkcí pro zpracování obrazu a Machine Vision Požadovaná funkce většinou již přímo v VDM knihovně, vlastní algoritmy sestavením několika funkcí MATLAB v podstatě vše si programátor píše sám, větší volnost, ovšem mnohem delší doba implementace V jiných vývojových prostředích by vývoj podobně komplexního SW trval nepoměrně déle První verze hotová po cca 2-3 měsících s jediným vývojářem Snímek 25 z 28
PŘÍNOSY POUŽITÍ NI PRODUKTŮ NI Vision Acquisition Software (IMAQdx) Podpora velkého množství HW, jediný driver Jediné rozhraní pro připojení ke kameře v LabVIEW NI Application Builder: snadná distribuce Vytvořit.exe aplikaci nebo DLL knihovnu je na pár kliknutí Podobně instalátor, není nutné používat nástroje třetích stran NI Community Discussion Forums Code Exchange NI Developer Zone, KnowledgeBase Tutorials, White Papers Příklady a ukázky kódu Snímek 26 z 28
BUDOUCÍ VÝVOJ SMARTVISION Nové algoritmy pro Image Processing Další funkce pro úpravy barev a kontrastu Paralelizace Úprava některých současných funkcí na paralelní zpracovávání Rozdělení obrazu na části, které se zpracují souběžně na více jádrech Vylepšení a optimalizace digitální stabilizace Stabilizace podle více oblastí, váhování jednotlivých oblastí Fúze obrazu Prolnutí termálního a barevného obrazu Vykreslení izoterm do barevného obrazu Snímek 27 z 28
SÍDLO A KONTAKTY OBCHODNÍ ODDĚLENÍ Měřicí technika Adam Švestka, MSc., MBA +420 725 955 464 adam.svestka@workswell.cz TECHNICKÉ ODDĚLENÍ SÍDLO SPOLEČNOSTI SÍDLO SPOLEČNOSTI Workswell s.r.o. Workswell s.r.o. Dr. Zikmunda Wintra 376/5 Dr. Zikmunda Wintra 376/5 160 00, Praha 6 160 00, Praha 6 Česká republika Česká republika IČO: 29048575 IČO: 29048575 DIČ: CZ29048575 DIČ: CZ29048575 POBOČKA POBOČKA Vědeckotechnický park UP Vědeckotechnický park UP Šlechtitelů 21 Šlechtitelů 21 783 71 Olomouc 783 71 Olomouc Průmyslové aplikace a integrace Ing. Jan Kovář +420 739 428 433 jan.kovar@workswell.cz Školení a metodika měření Ing. Jan Sova +420 736 408 005 jan.sova@workswell.cz Snímek 28 z 28
DĚKUJI ZA POZORNOST Snímek 29 z 28