Embedded GigE Vision Server

In principe bestaat elk beeldverwerkingssysteem uit twee basis functie-eenheden: de beeldbron en de beeldbestemming. Tegenwoordig worden in een industriële beeldomgeving meestal compacte CMOS-camera’s gebruikt als beeldbron. De beeldbestemming is de verwerkingseenheid dat resultaten uit het beeld distilleert. Momenteel is dat hoogstwaarschijnlijk een klassiek PC-systeem op basis van Intel-processoren en een Windows-besturingssysteem.

De communicatie tussen beeldbron en beeldbestemming kan via verschillende interfaces lopen. Elke interface biedt verschillende voordelen, afhankelijk van de vereisten voor kabellengte, datasnelheid en systeemtopologie. Camera’s met een hoge resolutie en een indrukwekkende framerate produceren grote hoeveelheden data, waar geoptimaliseerde interfaces en daarmee speciale interfacekaarten (zoals CoaXPress, CameraLink, CameraLink HS) in de computer voor nodig zijn.

Van één naar tweerichtingsverkeer
De definities van beeldbron en beeldbestemming zijn meestal een eenrichtingsproces. De hierboven genoemde camera-interfaces maken dit mogelijk, omdat de overdrachtsbandbreedte tussen bron en bestemming asymmetrisch is opgezet. Echter gebruiken de meeste applicaties in een industriële omgeving minder geavanceerde camera’s waarvan de datasnelheid overdracht via de algemene, standaard interfaces van normale PC-systemen (USB, Ethernet, Firewire) afhankelijk is.De Ethernetinterface, tegenwoordig meestal uitgevoerd als Gigabit-Ethernet (1GigE), heeft als speciale eigenschap de ‘full duplex’. In tegenstelling tot andere interfaces kan met deze functie de volle bandbreedte worden benut en data tegelijkertijd worden verzonden en ontvangen, zonder elkaar te beïnvloeden. Het controleprotocol (heartbeat packet) mislukt alleen als de bandbreedte in beide richtingen is verzadigd. De verbinding wordt dan verbroken, al kan dit worden voorkomen met de juiste instellingen (interpacket delay). De Ethernetinterface verwijdert daarom de definitie van beeldbron (camera) en beeldbestemming (computer) voor beeldverwerking.

Hard- en softwarestandaardisatie
Inmiddels hebben bijna alle producenten van industriële camera’s met GigE-interface en industriële imaging software met elkaar afgesproken om de GigE Vision-norm als hardwareprotocol en GenICam als softwareinterface te gebruiken. Dankzij deze software- en hardwarenorm bestaat er nu een uitgebreide en uitvoerig geteste compatibiliteit tussen bestaande camera’s en softwarepakketten op de meest uiteenlopende computersystemen. Bijzonder hieraan is dat de GigE-norm als hardwareprotocol en GenICam als softwareprotocol zich niet beperken tot de 1GigE-interface. De beschreven voordelen gelden in dezelfde mate voor Ethernetinterfaces met meer bandbreedte, zoals 10GigE. Bij deze overwegingen is het essentieel om belang te hechten aan het duidelijke, conceptuele onderscheid tussen hardwareprotocol en softwareinterface, aangezien ondersteuning van GenICam als softwareinterface ook een vereiste is voor CoaXPress. Als de concepten slechts oppervlakkig worden gebruikt, is er een grotere kans op misverstanden.

Nieuwe Full duplex kansen
Stemmer Imaging heeft met de CVB GigE Vision Server de klassieke rolverdeling tussen camera en computer opgeheven, door de beschreven eigenschappen van de Ethernetinterface te benutten bij volledig gebruikt van de GigE Vision-norm en bijbehorende certificering. Door de standaard softwaremodule van de Common Vision Blox-programmeerbibliotheek te gebruiken, kan de computer nu ook dienst doen als beeldbron, en beeldinformatie versturen naar andere beeldbestemmingen via GigE Vision. Dit dankzij de full duplex-overdracht van de Ethernetinterface. Aangezien dit volledige GigE Vision-ondersteuning betreft, zal deze beeldbron zich precies zo gedragen als een ‘normale’ GigE Vision-camera, en zal in dezen ook communicatie, oftewel beeldoverdracht, met alle met GigE Vision compatibele beeldbestemmingen mogelijk maken. Iets wat op het eerste gezicht slechts lijkt op een technologische gimmick, resulteert nu in ongekende mogelijkheden met betrekking tot compleet nieuwe systeemtopologieën. Oude denkpatronen over systeemontwerp moeten op de schop, vooral nu Stemmer Imaging een CVB-versie voor ARM-processors en Linux heeft gepresenteerd.

Virtuele camera
De grenzen tussen imaging met ‘intelligente camera’s’ en ‘PC-based imaging’ zijn aan het vervagen, in het bijzonder tijdens interactie met de huidige System-on-a-Chip-platformen (SoC). Gedecentraliseerde, compact ingebedde systemen op basis van zeer specialistische SoC’s (zoals Intel Cyclone V of Nvidia Jetson TX1) kunnen tegenwoordig zelf de beeldgegevens van verschillende camera’s registreren, ze voorbewerken en de gegenereerde beeldresultaten nogmaals uitzetten als een GigE Vision-camera. De totale controle en overdracht van de resulaten kan hiermee volledig transparant worden doorgevoerd via de GenICam-functionaliteit, zodat er geen eigendomsaanpassing van de downstream beeldbestemming nodig is. Op haar beurt kan de GenICam-norm haar flexibiliteit tonen: de camera vertelt zelf aan de software welke speciale eigenschappen door de camera worden geleverd. Bij een GigE Vision Server zijn deze ‘cameraeigenschappen’ vrij in te programmeren en kunnen ze daarom systeemfuncties beschrijven die veel verder gaan dan alleen camerafuncties. De ‘virtuele’ camera die op deze manier wordt opgezet, kan volledig op afstand worden bestuurd via de bijbehorende cameraeigenschappen. De technologie van de CVB GigE Vision Server is daarom direct beschikbaar voor iedere gebruiker van met GigE Vision compatibele software op elke beeldbestemmingssysteem, ongeacht fabrikant, besturingssysteem en platform.

Veel vrijheid voor veel toepassingen
De reeds bestaande rekencapaciteit van de beschikbare SoC en de verscheidenheid aan ondersteunde interfaces is indrukwekkend. Via verschillende USB3-, GigE- en MIPI-interfaces kunnen huidige SoC’s worden gebruikt als gedecentraliseerde visionsystemen voor het registreren vanaf de meest uiteenlopende beeldbronnen. De mogelijke toepassingen lopen ver uiteen: van lokale conversie van een USB- of MIPI-camera naar de GigE-norm, of het lokaal voorbewerken van een enkel camerabeeld op de FPGA (zoals bijvoorbeeld van de Intel Cyclone V) om vervolgens het voorbewerkte camerabeeld door te sturen via GigE Vision. Andere applicaties zijn het registreren van verschillende camerabeelden en het doorsturen van volledige beeldresultaten naar de lokale GPU of een NVIDIA Jetson TX1 SoC, na uitvoerige rekenkundige voorbewerking. Elke gebruiker heeft ook de vrijheid om een eigen, met GigE Vision compatibele camera te bouwen door de CVB GigE Vision Server te gebruiken op een ARM-based SoC. Er moet dan enkel een CCD- of CMOS-sensor aan het systeem worden verbonden. Hoe langer iemand nadenkt over de mogelijkheden van de GigE Vision Server op SoC-platforms, hoe sterker de welbekende definities vervagen. Of deze lokale imaging nodes van het complete systeem een ‘computer’, ‘camera’, ‘intelligente camera’ of ‘visionsensor’ worden genoemd, is uiteindelijk aan de waarnemer.

 

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *