EMBEDDED MACHINE VISION HARD- AND SOFTWARE FOR EMBEDDED MACHINE VISION MARTIN KERSTING, MANAGING DIRECTOR, STEMMER IMAGING
CONTENT 1. Classification of embedded machine vision systems 2. Details on ARM based embedded systems 1. Hardware infrastructure 2. Operating system considerations 3. Available software libraries 3. Development infrastructure 1. Compiler / Tool chain 2. CMake 3. Qt 4. Python and C++ wrapper
CLASSIFICATION OF EMBEDDED MACHINE VISION SYSTEMS Smart Camera Embedded PC System On Chip Deep Embedded Camera, processing and I/O in one housing Point and click environment No programming required Connection to factory automation Limited in sensor support Limited in functionality
CLASSIFICATION OF EMBEDDED MACHINE VISION SYSTEMS Smart Camera Embedded PC System On Chip Deep Embedded External camera(s), all sensors Embedded Windows operating system Window IoT or Windows Embedded Free programmable using machine vision libraries Connection to factory automation by adapter cards or specific network cards (stacks) Traditional Windows platform with all pros and cons
CLASSIFICATION OF EMBEDDED MACHINE VISION SYSTEMS Smart Camera Embedded PC System-on-a-chip Deep Embedded External camera(s), all sensors Linux operating system Free programmable using machine vision libraries Low power, simple duplication Connection to factory automation limited C/C++ programming
CLASSIFICATION OF EMBEDDED MACHINE VISION SYSTEMS Smart Camera Embedded PC System On Chip Deep Embedded Fully integrated machine vision system Maybe no operating system at all Not programmable, just one application Low power, mass market Connections as defined by the system Mass market product
DETAILS ON ARM BASED SOC Of the shelf hardware Special hardware Operating system Deep Embedded ARMV7-A as the 32bit platform ARMV8-A as the 64bit platform (A57) Recommended Gbit LAN, USB3 Odroid XU4 LAN connected via USB, 50MByte/s Often USB2 and 100Mbit LAN only (Raspberry Pi) Gbit LAN often connected via USB resulting in low network performance Odroid C2 (slower as XU4, clock rate) LAN connected via USB, 50MByte/s NVIDIA TX1 / TX2 Full rate Gbit LAN and USB3 Great software and driver support Feels like an Intel i5
DETAILS ON ARM BASED SOC Of the shelf hardware Special hardware Operating system Available software libraries Texas Instruments Keystone ARM + DSP Altera (Intel) Cyclone V ARM + FPGA Start with evaluation board Make your own board ARM cores available in hard- and software floating point
DETAILS ON ARM BASED SOC Of the shelf hardware Special hardware Operating system Available software libraries Ubuntu 12.04 LTS (legacy) 32bit ARM Ubuntu 16.04 LTS 32bit and 64bit ARM CVB ships with debian (deb) package.sh installer for Ubuntu Resolves external dependencies Full documentation about installing CVB on Linux and the installation packages are available here: https://www.commonvisionblox.com/en/do wnload-cvb-2017-linux/ ISO image for the XU4 available Yocto Minimum footprint Linux 32bit and 64bit ARM CVB ships with Tarball
DETAILS ON ARM BASED SOC Of the shelf hardware Special hardware Operating system Available software libraries Jetson TX1 / TX2 shipped with: Cuda libraries and samples OpenCV libraries and samples CVB is available for all ARM and Intel platforms under all operating systems Image Manager for Linux Supports GigE-Vision cameras Supports USB3-Vision cameras Image access and display Python support and C++ interfaces to come Minos Fast object recognition OCR with up to 40.000 characters per second on an ARM ShapeFinder Precise recognition of object orientation and size GigE-Vision Server Build your own GigE-Vision device Add user-defined features to your virtual camera Arithmetic, BayerToRGB, Edge, LightMeter, TextOut, ZXBarcode in CVB13.1
DEVELOPMENT INFRASTRUCTURE Compiler / Tool chain CMake Qt Python / C++ GNU Compiler 4.6 (Ubuntu 12.04) GNU Compiler 5.4 (Ubuntu 16.04) Cross-platform development with CMake Qt for the graphical user interface CMake List File CMake GNU Makefile Visual Studio Executable Executable
DEVELOPMENT INFRASTRUCTURE Compiler / Tool chain CMake Qt Python / C++ Use the same source code Debug under Windows, compile for ARM Define source files Define libraries Cmake generates Visual Studio Solution and Linux Makefile
DEVELOPMENT INFRASTRUCTURE Compiler / Tool chain CMake Qt Python / C++ Using the same source code Debug under Windows, compile for ARM Create GUI elements in code or use the Qt Creator
DEVELOPMENT INFRASTRUCTURE Compiler / Tool chain CMake Qt Python / C++ Convenient scripting in Python Class structure is the same in C++ Up-to-date programming interface Extensions to the well known C interface C++ header-only, available in source code
CLASSIFICATION OF EMBEDDED MACHINE VISION SYSTEMS Smart Camera Embedded PC System-on-a-chip Deep Embedded External camera(s), all sensors Linux operating system Free programmable using machine vision libraries Low power, simple duplication Connection to factory automation limited C/C++ programming
DETAILS ON ARM BASED SOC Of the shelf hardware Special hardware Operating system Available software libraries CVB will support Open Process Communication - Unified Architecture OPC-UA OPC-UA connects devices on the factory floor Q1 2018 under all platforms, preview here VDMA is hosting a standard group called OPC-UA Vision STEMMER IMAGING is a contributing member
MORE INFORMATION AND DETAILED DOCUMENTATION AVAILABLE ONLINE FORUM.COMMONVISIONBLOX.COM WWW.COMMONVISIONBLOX.COM GOO.GL/HSIF3H WWW.COMMONVISIONBLOX.COM/EN/DOWNLOAD-CVB-2017-LINUX/
THANK YOU FOR YOUR ATTENTION Your contact Martin Kersting STEMMER IMAGING GmbH +49 89 80902-740 m.kersting@stemmer-imaging.de www.stemmer-imaging.de Copyright STEMMER IMAGING. All texts, images, graphs, tone, video and animation files as well as their arrangements are subject to copyright law and other laws for the protection of intellectual property. They may not be copied or changed for any commercial use or for the purpose of being passed on nor used on other websites. Some of the pages of the STEMMER IMAGING presentation also contain images that are subject to the copyright belonging to those persons who have made them available