Analyse
GCC viert zilveren jubileum
25 jaar geleden bracht Richard Stallman zijn vrije en opensource C-compiler uit. Sindsdien is GCC uitgegroeid tot een kracht van betekenis in de computerindustrie, waarmee vriend en vijand rekening...
25 jaar geleden bracht Richard Stallman zijn vrije en opensource C-compiler uit. Sindsdien is GCC uitgegroeid tot een kracht van betekenis in de computerindustrie, waarmee vriend en vijand rekening...

Met de Open GPS Tracker-app kunnen bezitters van een Android-telefoon hun route opnemen en op een kaart weergeven. Ondertussen hebben meer...
De eerste klap is een daalder waard, weet ook Hans Clevers. In zijn eerste interview sinds bekend was gemaakt dat hij DWDD-president Robbert Dijkgraaf opvolgt bij de KNAW zei de wereldberoemde...
24 april 2006
Beeldvormende apparatuur maakt steeds meer deel uit van ons dagelijks leven. Of het nu gaat om publieke toepassingen zoals bewakingssystemen en tolheffing, of industriële toepassingen zoals elektronenmicroscopen voor biologisch onderzoek en de chipindustrie en medische beeldvorming met MRI- of CT-scanners. De groeiende datastroom vraagt om intelligente camerasystemen of embedded eyes.
Achter de beeldvormende apparatuur zitten op dit moment nog operators om de machines te bedienen. Naarmate het gebruik van deze camerasystemen steeds verder groeit, is het echter geen haalbare kaart meer om achter elk apparaat een operator te zetten. Neem alleen al het grote aantal camera’s langs de snelweg. Een verkeerscentrale krijgt honderden camerabeelden binnen. Het is geen doen om al deze stromen door een operator te laten controleren. Zolang er geen bijzonderheden optreden, hoeft ook niemand de beelden te zien. Alleen voor een afwijkend patroon is een operator nodig. Kortom, er ontstaat behoefte aan embedded eyes, intelligente camerasystemen die in staat zijn specifieke informatie uit de beelden te isoleren om zelfstandig taken uit te voeren en daarmee de systeemgebruikers te ontlasten. We praten dan niet meer over beeldvormende apparatuur maar over beeldverwerkende of beeldanalyserende apparatuur.
In machinevisie zijn intelligente toepassingen al lang geen uitzondering meer. Veel productieprocessen maken gebruik van systemen die zelfstandig taken uitvoeren zoals kwaliteitscontroles. Wanneer de intelligentie in de logica van de camera wordt ondergebracht, krijgen we smartcamera’s.
Kenmerkend voor machinevisie is dat het realtime systemen zijn waarvan de omgeving is geconditioneerd. De lichtcondities zijn zo optimaal mogelijk gekozen. De camerasystemen zijn geselecteerd voor de specifieke toepassing. Het fabrieksproces is voorspelbaar. De goede en foute toestanden zijn van tevoren bekend. Hierdoor hoeven de algoritmes voor machinevisie niet zo slim te zijn. Immers, onverwachte en ongecontroleerde gebeurtenissen zijn uitgesloten. De afhandeling van de voorspelbare uitzonderingen is hard ingebakken in het systeem.
De uitdaging voor computervisie is de successen van machinevisie uit te breiden naar de onvoorspelbare buitenwereld, waar de belichtingscondities niet of in veel mindere mate onder controle zijn. Op zich lijkt dit eenvoudig: we merken zelf ook geen verschil of we binnen onder het tl-licht zitten of dat we buiten in de zon staan. We zien de wereld om ons heen zonder problemen. Voor een computersysteem is dat veel lastiger omdat het moet omgaan met sterk wisselende omstandigheden. Er is moeilijk te ontkomen aan de neiging het succes van computervisie af te meten aan biologische visie, onze eigen kijkprestaties. Een vergelijking is snel gemaakt, maar een systeem maken dat net zo flexibel omgaat met een veranderende omgeving als onze ogen heeft heel wat meer voeten in aarde.
Dit systeem herkent alle verkeersborden met een rode rand. Uit het oorspronkelijke beeld van een verkeerssituatie (a) selecteert hij eerst alle rode kleuren (b). Alle gesloten vormen worden ingevuld, zodat een masker ontstaat (c). Vervolgens maakt het systeem een uitsnede van het oorspronkelijke beeld (d). Ten slotte wordt er automatisch een vergelijking gemaakt met een referentiebeeld (e) om het verkeersbord te herkennen. Het beeld met hetzelfde verkeersteken levert de hoogste score op, waarmee het bord is herkend.
Een deel van het probleem is dat we nog niet goed weten wat voor processen zich in onze ogen afspelen. Hetzelfde geldt voor een sluitende definitie van ‘zien’. We zouden biologisch kijken kunnen omschrijven als ‘een actief proces om een stereoprojectie van de driedimensionale wereld te interpreteren, gestuurd door verworven omgevingskennis’.
Hier blijkt meteen het grootste probleem voor computervisie. De computer heeft vaak geen kennis van de omgeving, laat staan dat hij op grond van deze kennis het waarnemingsproces kan sturen. Een voorbeeld. Wanneer je zelf een kenteken van een rijdende auto wilt lezen, dan doe je dat globaal als volgt: je volgt met je ogen de rijdende auto, je focust op het kenteken en volgt het kenteken tot je het volledig hebt kunnen lezen. Dit lijkt eenvoudig omdat je er zelf niet bij na hoeft te denken.
Om te focussen op een kenteken en dit object te volgen moet je wel weten wat een kenteken is (objectherkenning) en om een object te kunnen volgen moet je de bewegingssnelheid schatten (bewegingsdetectie) en met je ogen (en desnoods je hoofd) de beweging volgen zodat het kenteken lang genoeg stilstaat op je netvlies (objecttracking). Dit laatste is uitermate belangrijk omdat anders het kenteken niet kan worden gelezen vanwege bewegingsonscherpte.
Met de computer moeten we noodgedwongen een andere tactiek volgen. Neem een snelle camera met hoge resolutie en schiet een foto met een korte sluitertijd. Houd de camera stil. De auto staat door de korte sluitertijd nagenoeg stil op de foto, je zoekt het nummerbord en je probeert de cijfers en letters te herkennen door ze te vergelijken met een referentieset. Dit lijkt een aardige oplossing, maar met weinig licht kun je geen snelle sluitertijd kiezen. Het gevolg is dat de auto te veel bewegings-onscherpte vertoont en dat je dan geen kenteken meer kunt lezen. In de praktijk wordt dit opgelost door de omgeving te conditioneren met lichtbronnen.
De huidige generatie computervisietoepassingen zijn fundamenteel anders van opzet dan de benadering die ons eigen visuele systeem volgt. Daar is op zich niets mis mee, maar het blokkeert wel een sprong naar oplossingen die veel dichter bij biologische visie komen.
Er komen steeds meer oplossingen op de markt die de problemen van computervisietoepassingen in kleine stappen een voor een uit de weg ruimen. Door de toegenomen rekenkracht komen complexe realtime beeldbewerkingen en -analyse binnen handbereik. Denk daarbij niet alleen aan processoren die serieel data verwerken met software maar ook aan parallelle verwerking van beeldinformatie met programmeerbare logica (FPGA’s). Voor de meeste toepassingen van embedded eyes is rekenkracht geen probleem meer.
De standaard camerasystemen hebben geen groot dynamisch bereik. De beelden die moeten worden geanalyseerd, veranderen door verschillende lichtcondities en noodzakelijke camera-instellingen. Dit heeft directe gevolgen op het aantal verkeerd geďnterpreteerde situaties. In de buitenwereld spelen naast belichting nog andere verstorende factoren een rol. Een kentekenlezende camera moet de nummerplaten zowel overdag als ’s nachts goed registreren, maar ook bij slecht zicht door mist of regen. Pas als het aantal verkeerd geďnterpreteerde situaties tot een aanvaardbaar niveau is teruggebracht, kunnen we de toepassing implementeren.
De standaard camerasystemen hebben geen groot dynamisch bereik. De beelden die moeten worden geanalyseerd, veranderen door verschillende lichtcondities en noodzakelijke camera-instellingen. Dit heeft directe gevolgen op het aantal verkeerd geďnterpreteerde situaties. In de buitenwereld spelen naast belichting nog andere verstorende factoren een rol. Een kentekenlezende camera moet de nummerplaten zowel overdag als ’s nachts goed registreren, maar ook bij slecht zicht door mist of regen. Pas als het aantal verkeerd geďnterpreteerde situaties tot een aanvaardbaar niveau is teruggebracht, kunnen we de toepassing implementeren.
Door de komst van camera’s met een groot dynamisch bereik is het eenvoudiger om beelden te schieten zonder het nadeel van gedeeltelijke over- of onderbelichting. De informatie waar je naar op zoek bent in het beeld is dan in ieder geval in het opgenomen beeld aanwezig. Dit reduceert een van de foutenbronnen uit de keten. Voor toepassingen van embedded eyes is het camerasysteem zo een veel minder beperkende factor.
Voor veel beeldanalyseproblemen wordt nog naar een principeoplossing gezocht. Zo willen we de visiesystemen opvoeden met kennis over de omgeving. Zelfs het basaal herkennen van objecten zodat het visiesysteem weet wat het is, is nog lang geen gemeengoed.
Het vinden van objecten in beelden en het volgen van deze objecten als ze bewegen, beginnen we steeds beter onder de knie te krijgen. Dit is alleen al te zien aan de webcamtoepassingen. Standaard zijn deze tegenwoordig uitgerust met algoritmes voor bewegingsdetectie en het volgen van gezichten in beeld. Voor andere commerciële toepassingen zoals persoonherkenning moeten de algoritmes nog betrouwbaarder worden.
De grote sprong naar visiesystemen die zich kunnen meten met onze eigen ogen, zal nog even op zich laten wachten. De kleinere stap naar embedded eyes ligt al wel binnen handbereik. Embedded eyes, smartcamera’s voor buitentoepassingen, kunnen de combinatie van beeldbewerking en -herkenning realtime direct on-board uitvoeren. Daarmee zijn bijvoorbeeld compacte hoogintelligente bewakingscamera’s te maken of complexere systemen zoals plukrobots of draagbare medische systemen waarvan embedded eyes een onderdeel vormen.
Enno Romkema is chief technology officer bij Technolution. Op 12 april geeft hij een lezing getiteld ‘Embedded eyes’ tijdens Bits&Chips 2006 Hightech Systemen.
Beeldbewerking is een verzamelnaam voor alle soorten bewerkingen op pixels die een nieuw beeld opleveren. Beeldverwerking en beeldherkenning vallen beide onder het begrip beeldanalyse. Bij beeldverwerking worden berekeningen uitgevoerd. Het resultaat is echter geen nieuw plaatje, maar informatie over de inhoud. Beeldverwerking gaat feitelijk over metingen van de informatie-inhoud zoals het aantal bloedcellen in een beeldopname of een kwaliteitsoordeel via camera-inspectie.
Als het systeem objecten of patronen in een beeld herkent, spreken we over beeldherkenning. Het gaat hier om een geautomatiseerde interpretatie van de beeldinhoud. Een voorbeeld van beeldherkenning is een melding welke objecten zijn gevonden. Beeldanalyse is dus beduidend complexer dan het simpelweg bewerken van de pixels. Naarmate de interpretatie van beelden meer wordt geautomatiseerd, neemt de behoefte aan rekenkracht toe.
Neem als voorbeeld de herkenning van verkeersborden (zie hierboven). Hierbij vergelijkt het systeem een onbekend verkeersbord met een referentieset. De hoeveelheid rekenwerk hangt niet alleen af van het onbekende verkeersbord, maar meer nog van de omvang en de representatievorm van de referentieset. De uitdaging is om een zo goed mogelijke representatie voor de beeldinhoud te vinden, die de juiste maat is voor de objecten die het systeem vergelijkt. Een doordachte keuze van de referentieset kan het rekenwerk aanzienlijk beperken.
© Bits & Chips | Deze pagina op internet: http://www.bits-chips.eu/nieuws/algemeen-nieuws/bekijk/artikel/embedded-eyes.html