Independent and future-proof: decoupling of hardware and software through image abstraction

Similar documents
Independent and future-proof: decoupling of hardware and software through image abstraction

Independent and future-proof: decoupling of hardware and software through image abstraction

Specim FX cameras Application Note

New approaches to pattern recognition and automated learning

EMBEDDED MACHINE VISION

C4 - Application Note. AutoStart. Rev 1.0. AT - Automation Technology GmbH

/14/14 Fixed an issue with tm_waitnextframe when setting an exposure greater than 5 seconds.

Using Common Vision Blox on ARM 7 Ubuntu boards

INTERNAL USE ONLY (Set it to white if you do not need it)

Basler. Fully Digital, Attractively Priced

License, Rules, and Application Form

Bandwidth under control with IDS GigE Vision cameras

Outline. COM overview. DCOM overview. Comparison DCOM and Corba

Scalable, intelligent image processing board for highest requirements on image acquisition and processing by new generation standard

Technical Resource. Genie Nano Camera Configuration

Runtime Software Version 5.5.1

Silicon Software Interface Library for NI LabVIEW. Installation and User Guide Version 2.0

DCAMAPI Library for LabVIEW

Basler. Aegis Electronic Group. Fully Digital, Attractively Priced

Basler. Area Scan Cameras

APPLICATION NOTE Compatibility of Basler Cameras with Third-Party Software Libraries

Software Installation Instructions. ISG LightWise IQ GigE Vision Cameras. VT ISG LightWise IQ

NI Vision System HANS- PETTER HALVORSEN,

OPC UA A NEW COMMUNICATION FRAMEWORK FOR INDUSTRY 4.0 GERHARD HELFRICH, SOFTWARE DEVELOPER, STEMMER IMAGING

Advanced Digital Machine Vision Cameras Camera Control Application. Quick Start. Application Notes. Rugged Machine Vision. Rev A

Industrial Vision Days 2010 C. Strampe: ATOM oder DSP? Embedded Lösungen im Vergleich

Basler pylon. APPLICATION NOTE How to use the Basler pylon GenTL Producers for Basler GigE and USB 3.0 Cameras with MathWorks MATLAB

GenICam What is New? Vision Stuttgart Nov Dr. Fritz Dierks. Director of Platform Development at Chair of the GenICam Standard Committee

FPGA Programming Made Easy

microenable 5 marathon ACL Product Profile of microenable 5 marathon ACL Datasheet microenable 5 marathon ACL

Dual 1200 MB/s F2 fiber optic 300 meter distance interface (SFP connectors)

MACHINE VISION 20 YEARS

microenable 5 VF8-PoCL

OPC UA A NEW COMMUNICATION FRAMEWORK FOR INDUSTRY 4.0 GERHARD HELFRICH, SOFTWARE DEVELOPER, STEMMER IMAGING

NEW: sca VGA resolution at 120 frames. Versatile, Fully Digital, Attractively Priced

Integrating the Automation Technology C- series cameras

MS-FSSHTTP. Simon Clarke, SharePoint/OneDrive

Smaller, faster, stronger, cheaper. Better in every way that matters.

DirectX Programming Introduction

Right first time for PCB assembly


Implementing Symmetric Multiprocessing in LispWorks

microenable IV VD1-CL Product Profile of microenable IV VD1-CL Datasheet microenable IV VD1-CL

Messaging Framework Module Guide

MutanT: A Modular and Generic Tool for Multi-Sensor Data Processing

APPLICATION NOTE. Getting Started with pylon and OpenCV

3D Machine Vision made easy

Basler. CMOSIS models with Camera Link and up to 340 fps

Implications of USB 3.0 Technology for Machine Vision. Sean Wood: OEM Sales Manager Stand Number: D02

Measure Foundry. Open. Powerful. Application Builder for Test & Measurement Systems. Measure Foundry Instruments and Advanced Instruments versions:

Office Co-Authoring Chalk Talk (MS-FSSHTTP)

Aegis Electronic Group NEW: sca Versatile, Fully Digital, Attractively Priced 1.2 megapixels at 32 frames

LgCam Software v6.4.0

GenICam Meeting Munich, July 11-13, 2005

Data Acquisition Instructions

Installing VisionPro. VisionPro PC Requirements. Minimum PC Requirements. Microsoft Visual Studio. Operating Systems

InstallAware for Windows Installer, Native Code, DRM, Virtualization

Basler. New: 1 Megapixel Camera. Innovative, Slim Design, Extremely 60 Frames

Basler. CMOSIS models with Camera Link and up to 340 fps

Sophisticated in Detail, Versatile and Proven Worldwide. Your benefits include:

Electrically focus tunable lens EL Series. Operating instructions

20762B: DEVELOPING SQL DATABASES

No Trade Secrets. Microsoft does not claim any trade secret rights in this documentation.

Advanced Driver Configuration. Reference Guide

Use the advantages of embedded VisualApplets: Realize custom image processing on the FPGAs of your cameras in shortest time!

Microsoft. [MS20762]: Developing SQL Databases

GigE Area Scan Camera

RPLIDAR. Introduction to Standard SDK. Low Cost 360 Degree Laser Range Scanner. Shanghai Slam tec.c o.,ltd rev.1.0

SCD - Scorpion Camera Drivers Specification Documentation

Using USB3 Vision Cameras with National Instruments' Vision Acquisition Software

Baggy bounds with LLVM

Test Applet. User Documentation. FrameGrabberTest for microenable 5 AQ8-CXP6B

USB components. Remote-Sensor Cameras Base unit and sensor boards. Camera Configuration. Available Sensor Board Designs. Options

Baumer Vision Competence Center. Digital industrial cameras and vision sensors

Developing SQL Databases

Introduction to Internetworking

Test Applet. User Documentation. FrameGrabberTest for microenable 5 marathon AF2

Java Semaphore (Part 1)

SCD - Scorpion Camera Drivers Documentation

Release Notes Coaxlink Driver 3.2

CamCube product range. New products: CamCube m & CamCube 4.0 GPU

Select Your Sensor. Select Your Interface. Get The Perfect Fit

Karmin2 Stereo Camera

DT Measure Foundry TM is a powerful software package designed for test and measurement,

Matrox Imaging White Paper

What's new in MySQL 5.5? Performance/Scale Unleashed

TPEG what is it all about? Bev Marks, Chairman TPEG Forum Standards Task Force, EBU

Imagenation PX Series

Komodo 10GiGE Vision Frame Grabber

Chenyu Zheng. CSCI 5828 Spring 2010 Prof. Kenneth M. Anderson University of Colorado at Boulder

GenICam GenTL Standard

TINE Video System. A Modular, Well-Defined, Component-Based and Interoperable TV System. Proceedings On Redesign VSv3

Version 1.0. FWUpdate Module. V1.0 April 06, 2018 Page 1 of 15

Extensions to Barrelfish Asynchronous C

Sapera LT Programmer's Manual

Basler aviator AREA SCAN CAMERAS

Video capture using GigE Vision with MIL. What is GigE Vision

SQL Server Development 20762: Developing SQL Databases in Microsoft SQL Server Upcoming Dates. Course Description.

The CCD-S3600-D(-UV) is a

What s New in MySQL 5.7 Geir Høydalsvik, Sr. Director, MySQL Engineering. Copyright 2015, Oracle and/or its affiliates. All rights reserved.

Transcription:

Independent and future-proof: decoupling of hardware and software through image abstraction Martin Kersting, Technical Director, Authorized Executive STEMMER IMAGING STEMMER IMAGING Technology Forum 2015, Unterschleißheim

THE CHALLENGE WHY USE ABSTRACTION THROUGH SOFTWARE INTERFACES? Hardware components usually not available indefinitely Different camera/acquisition technologies easily manageable through abstraction layer Targeting different processors and operating systems becomes easier Abstraction provides the flexibility to easily adapt even to changing application requirements

THE CHALLENGE WHAT ABOUT STANDARDS LIKE GIGE-VISION AND USB3-VISION Both are low-level standards defining mostly the transport protocol The GenICam standard on top gives access to the properties of the camera (XML file) and the transport interface of the data (Transport Layer) Every GenICam Transport Layer has two ends, the Consumer end and the Producer end The producer comes from a hard- or a software manufacture and may support only a limited range of devices

SOFTWARE INTERFACES SOFTWARE INTERFACES Well-defined and documented contracts that can be implemented by an arbitrary number of software components Contracts are immutable Such components can easily be individually tested against their contracts Consumers of these components need no knowledge about the contract s implementation but may rely on the behavior defined by the contract (black-box character) Availability of specific interfaces can be queried at runtime Ideally usable across different compilers and programming languages Components that implement the same contract become interchangeable on the code level as well as on the binary level

SOFTWARE INTERFACES SOFTWARE INTERFACES Software interfaces are a great basis for implementing a hardware abstraction layer Immutable contracts guarantee backward compatibility New functionality and technology trends can be wrapped in new interfaces Switching to different hardware boils down to swapping out one interface implementation for another one simply be loading a different driver

THE COMPONENT OBJECT MODEL COM THE COMPONENT OBJECT MODEL Introduced by Microsoft in 1992 An instance of an interface implementation is referenced through a pointer to an array of pointers to the methods of the interface (vtable-interface) The implementation can be identified and instantiated at runtime through a globally unique identified (GUID) Accessible via all the relevant development environments on the Windows platform But: Inherently bound to and therefore only available under Windows

PSEUDO COM THE COMMON VISION BLOX FLAVOR OF COM Introduced with Common Vision Concept in 1996 Conceptually derived from COM with minor differences Lightweight design without requirement for a component registry, therefore easily transferable to different operating systems and processors Strict adherence to design rules (e.g. no interface change since 1996) Binary backward compatibility over the whole product lifetime Yet always up-to-date with newly introduced interface abstractions for new features

ACCESSING ACQUISITION HARDWARE THE HARDWARE ABSTRACTION LAYER OF CVB Grabbing images IGrabber IPingPong IGrab2 ILineScan Accessing the hardware IDeviceControl INodeMapHandle INodeMapHandle2 INotify IPropertyChange IRegPort Trigger and I/O ISoftwareTrigger ITrigger IBasicDigIO Device selection IBoardSelect IBoardSelect2 ICameraSelect ICameraSelect2

HARDWARE INTERFACES Imaging Application Proprietary Algorithms CVB Tools Manto Minos Display OCX Display DLL Image OCX Image DLL Grabber OCX Driver DLL IImageVPA ITrigger IGrab2 IDeviceControl IBoardSelect ICameraSelect... CVB Image Object XXX.vin YYY.vin X64CL.vin X64AN.vin CVAVT1394.vin GenICam.vin GenICam.vin AVI.dll Hardware abstraction through the DDK Grabber Grabber IEEE1394 DCAM USB3-Vision GigE-Vision Video files Image files... Image Source: Hardware Image Source: File system

ACQUISITION INTERFACES CVB SUPPORTS FOUR APPROACHES TO IMAGE ACQUISITION Modeled into four different interfaces: IGrabber Single buffer frame grabber or camera Repeated snaps will update the buffer content IPingPong Two buffers filled in ping-pong mode Process one buffer while acquiring into the other buffer IGrab2 Fills a ring buffer of fixed length Process one buffer while acquiring into the other buffers IRingBuffer Allows changing the number of buffers IGrab2 can use dynamically Provides full control over the buffer lock mode

IGRABBER INTERFACE APP VIN Camera Snap() Ret Snap() Snap() method waits until an image has been acquired The availability of only one image buffer may lead to frame drops (not intended for high throughput)

IPINGPONG INTERFACE APP VIN Camera StartPingPong() Ret StartPingPong() WaitPingPong() Ret WaitPingPong() StartPingPong() Ret StartPingPong() UpdatePingPong() Ret UpdatePingPong() WaitPingPong() Ret WaitPingPong() StartPingPong() Ret StartPingPong() UpdatePingPong() Ret UpdatePingPong() Image acquisition and processing alternating between two buffers No frame loss as long as processing keeps up with camera frame rate

IGRAB2 INTERFACE I APP VIN Camera G2Grab() G2Wait() Ret G2Wait() G2Grab() starts continuous acquisition into a ringbuffer The frame transfer will increase the acquisition index and lock the acuired buffer G2Wait() blocks until an image has been acquired and increase the processing index

IGRAB2 INTERFACE II APP VIN Camera G2Wait Ret G2Wait The frame transfer will increase the acquisition index and lock the acquired buffer G2Wait() will unlock the previous processing buffer and increase the processing index

IGRAB2 INTERFACE III APP VIN Camera G2Grab G2Wait TIMEOUT G2Wait() generally waits until an image has been acquired but not indefinitely

IGRAB2 INTERFACE IV APP VIN Camera G2Grab Images that have been acquired will lock their ringbuffer slot

IGRAB2 INTERFACE V APP VIN Camera G2Wait G2Wait G2Wait() will unlock the previous image at the processing index and switch to the next image within the ringbuffer, making the buffer available for a new image

IGRAB2 WAIT MODES ADVANCED WAIT MODES Advanced wait modes fine-tune the behavior of G2Wait() (selectable in configuration file) ; waiting mode for grab2 ; 0 wait for new image ; 1 wait for next image after last delivered one ; 2 return last acquired image WaitNextFrame = 1

IGRAB2 WAIT MODE = 1 (DEFAULT) APP VIN Camera G2Wait The next image in acquisition order will be used

IGRAB2 WAIT MODE = 2 APP VIN Camera G2Wait The last image in acquisition order will be used any older pending images will be discarded

IGRAB2 WAIT MODE = 0 APP VIN Camera G2Wait The driver will wait until the next image has been acquired, all pending images will be discarded

IRINGBUFFER DYNAMICALLY CHANGE THE NUMBER OF BUFFERS AVAILABLE TO IGRAB2 Limited by the available contiguous host memory ~1GByte under 32 bit Windows 70GByte successfully tested under 64 bit Windows Supports manual and automatic Lock modes Allows for a simple implementation of high speed recording systems

STILL GOT QUESTIONS? Join our LinkedIn group EUROPEAN VISION TECHNOLOGY FORUM and continue discussing with our experts.

THANK YOU FOR YOUR ATTENTION! STEMMER IMAGING GmbH Gutenbergstr. 9-13 82178 Puchheim Germany Phone: +49 89 80902-0 Fax: +49 89 80902-116 info@stemmer-imaging.de www.stemmer-imaging.com Your contact: Martin Kersting