Automatische bordendetectie blijkt interessante uitdaging
7 maart 2009
Het lijkt zo eenvoudig, automatische herkenning van verkeersborden. Hun strakke vormen en felle kleuren springen in ieder geval uit een foto. Toch zitten er wat haken en ogen aan. Uithangborden, posters, vuil en struiken maken de selectie lastig. Cyclomedia ontwikkelde een algoritme dat de borden toch betrouwbaar lokaliseert en herkent.
Wie heeft ze al eens voor het huis langs zien komen? De oranjegestreepte autootjes van Cyclomedia met de aanduiding werkverkeer en een merkwaardige metalen kolom op het dak. In die bak zit een zelfontwikkelde panoramische camera die een complete 360 graden opname maakt van de straat en zijn directe omgeving. Door de speciale lenzen in de camera wordt in feite een bolvormig oppervlak met visuele informatie geregistreerd.
Inmiddels heeft het bedrijf uit Waardenburg heel Nederland gefotografeerd, vanaf elke straat of zelfs het kleinste binnenweggetje. Nu is het begonnen om heel Vlaanderen vast te leggen. De opdracht in Vlaanderen heeft naast het maken van foto’s nog een ander doel, namelijk het in kaart brengen van alle verkeersborden langs de openbare weg. Dit is onderdeel van een Europees programma met de naam Rosatte. Dit artikel gaat over het automatisch detecteren van verkeersborden uit de foto’s met een intelligent beeldbewerkingsprogramma.
Het meest recente panoramische opnamesysteem van Cyclomedia is gebaseerd op twee camera’s die elk een halve bol aan visuele informatie opnemen. Het systeem bevat ook een zeer nauwkeurige positionering die aanzienlijk beter is dan de normale gps-ontvangers zoals in een tomtom, waardoor we een resolutie halen van tien centimeter. De twee halfbeeldcamera’s in het opnamesysteem maken net na elkaar een halve panoramische foto maar wel precies op dezelfde positie. Hierdoor kunnen we de twee halfbeelden vrijwel perfect aan elkaar lassen (stitchen). Zo kunnen geen objecten verloren gaan en is alles op de foto goed te zien zonder vervormingen.
Cyclomedia heeft alle straten en landweggetjes in Nederland in kaart gebracht.
Een van de technieken waarmee Cyclomedia zich bezighoudt, is contentanalyse. Hiermee halen we met behulp van computerprogramma’s informatie uit beelden. In verband met de opdracht in Vlaanderen kijken we of we op deze manier ook verkeersborden kunnen vinden. De kenmerken van borden zijn hun expliciete kleuren, zoals de rode randen of de blauwe dan wel gele inhoud, en hun specifieke vorm. Hierdoor lijkt op het eerste gezicht het herkennen van borden een relatief eenvoudige zaak. Toch blijkt het betrouwbaar grootschalig automatisch herkennen minder gemakkelijk dan het lijkt en daar zijn een aantal redenen voor.
Ten eerste komen in steden en de bebouwde kom van gemeenten vaak reclame-uitingen voor op posters of uithangborden die dezelfde kleuren en soms vergelijkbare zwart-witte symbolen gebruiken. Deze symbolen verleiden het algoritme tot verkeerde beslissingen, de zogenaamde false positives. Een ander probleem is dat borden vies worden door allerlei aanslag, deels zijn beplakt of worden aangereden waardoor ze verdraaien en veel minder duidelijk zichtbaar zijn. Ook worden borden soms overvleugeld door bomen en struikgewas. Dit zorgt ervoor dat de computer ze juist niet vindt (false negatives). Een derde probleem is de grote verscheidenheid aan borden. De verzameling verkeersaanduidingen bevat honderden borden met een grote variatie aan inhoud, vorm en kleur. Het algoritme moet met die rijke verscheidenheid kunnen omgaan.
Het vierde en belangrijkste argument gaat over de aantallen foto’s en de benodigde of gewenste nauwkeurigheid of betrouwbaarheid. Als je een dergelijk programma gaat gebruiken, wil je dat het een betrouwbare hulp is voor het werk. Dit betekent dat het weinig fouten mag maken. Een detectiescore van 95 tot 99 procent is nodig om het programma goed te kunnen gebruiken in de praktijk. Zelfs bij die score moet je nog met de hand corrigeren.
Een rekenvoorbeeld maakt dit heel aanschouwelijk. De database van Nederland omvat zo’n slordige veertig miljoen foto’s. Als het programma 98 procent detectiescore haalt, moet je nog 2 procent met de hand doen. Dat zijn nog altijd achthonderdduizend foto’s. In de praktijk zullen dat er meer zijn omdat het programma van zichzelf niet altijd weet of het betrouwbaar is in zijn beslissingen, waardoor extra controle nodig is.
Dit betekent dat we het programma zo moeten ontwerpen dat het een idee heeft van zijn eigen besluitvorming en dat de kwaliteit daarvan moet worden getest. In de praktijk wordt vaak een afweging gemaakt tussen de precisie en verwerkingssnelheid van het programma. Het is intuïtief meteen te begrijpen dat een preciezer programma meer bewerkingen en evaluaties omvat, waardoor de verwerkingssnelheid lager komt te liggen.
Voorbeeld van heel verschillende verkeersborden, in kleur, vorm en inhoud.
Kandidaatborden
Ons algoritme, dat aan de bovengenoemde eisen voldoet, bestaat uit drie fases: preprocessing, processing en postprocessing. Elke fase heeft zijn eigen verantwoordelijkheid. Ze werken samen om tot een zo goed mogelijk eindresultaat te komen.
De preprocessingfase bereidt de panoramafoto voor op de overige verwerkingsstappen. Eerst wordt de foto gedecodeerd, aangezien deze is opgeslagen in gecomprimeerde JPeg-vorm. Het resultaat van deze stap, het beeld met de waardes voor elke pixel, is te abstract voor de rest van het algoritme om er iets mee te kunnen. Daarom verdelen we het beeld naar kleur onder in gebieden. Dit zijn de herkenbare bordkleuren: rood, blauw, geel, wit en zwart. Met behulp van deze kleursegmentatie worden zowel een zwart-wit- als een kleurenbeeld gemaakt voor de processingfase.
Om de snelheid van het algoritme flink te verhogen, berekent de preprocessingfase een zoekgebied. Dit gebeurt op grond van de belangrijkste kleuren van borden: rood, blauw en geel. Deze kleurgebieden worden opgevuld met de ondersteunende kleuren wit en zwart. Naast het zoekgebied berekent het algoritme ook een integral image, een beeld dat de snelheid van informatiefiltering verhoogt.
Op de gebruikte testset haalde het bedrijf een detectieniveau van 99 procent. In de vergrotingen zijn de gedetecteerde borden te zien. Het rechterbord is zelfs kleiner dan de gestelde minimumgrootte. Per bord worden ook de grootte en de waarschijnlijkheidsindicator gegeven.
In de processingfase wordt het zwart-witbeeld uit de voorbereidende fase eerst gefilterd. Om de snelheid te bevorderen, doen we dat alleen in het zoekgebied. Deze filtering levert zogenaamde kernpunten op. Die features zijn herkenbare locaties in de foto zoals hoekpunten. Vervolgens worden deze punten beschreven door middel van hun directe omgeving: descriptors. Daarna vergelijken we de descriptors met die uit een bibliotheek waarin alleen beschrijvingen zitten van verkeersborden. Als ze voldoende overeenkomen, hebben we een match. De laatste stap in deze fase combineert verschillende matches tot kandidaten voor borden. Deze kandidaten gaan door naar de laatste stap.
De postprocessingfase is bedoeld om de betrouwbaarheid van het gehele algoritme te verhogen en eerder gemaakte keuzes te evalueren. In deze stap worden de gesuggereerde verkeersborden gevalideerd met een speciale test. De validatie gebruikt het kleurenbeeld om de gevonden locatie te vergelijken met een kleurentemplate van het geopperde bord. Als ze voldoende overeenkomen, wordt het gevonden bord geaccepteerd, anders wordt het verworpen. Deze stap verlaagt dus het aantal foute detecties. Voor de gedetecteerde borden wordt een indicator berekend die aangeeft hoe zeker het algoritme is van de aanwezigheid van het gevonden bord. Het algoritme levert uiteindelijk een aantal borden op dat in het beeld aanwezig is. Per bord geven we het type, de locatie, de grootte en een zekerheidsindicator.
Acceptatietests
Het algoritme is tot dusver getest op een aantal moeilijke voorbeeldfoto’s. In deze foto’s komen verschillende typen borden voor, met verschillende groottes en onder verschillende omstandigheden. Op de testset is het behaalde detectieniveau 99 procent. Er zijn geen misdetecties. Bij eerste metingen bleek dat de tijd die nodig is om de foto te decoderen langer is dan de tijd die nodig is om de verkeersborden te detecteren. Andere algoritmes hebben de hoge detectieprestaties van dit algoritme niet geëvenaard. De hoge snelheid, zeker gezien de grootte van de panoramafoto’s, is net zo uniek.
Om meer zekerheid te krijgen in het algoritme testen we momenteel de architectuur op een grotere dataset. De verwachting is dat diverse uitzonderingsgevallen aan het licht zullen komen waarmee we het algoritme kunnen verbeteren. Na het realiseren van de verbeteringen en acceptatietests is het programma geschikt voor gebruik door onze klanten.
Deze toepassing is het begin van nog veel meer beeldanalyseprogramma’s die van nut zijn voor de gebruikers van de Cyclomedia-fotodatabase. Hiervoor zullen researchmedewerkers gaan participeren in nieuwe Europese onderzoeksprogramma’s die dit jaar van start gaan. Daarbij zal het niet alleen gaan om het detecteren en herkennen van objecten, maar zullen ook de samenhang en onderlinge relaties tussen objecten worden onderzocht.
Peter de With, Ernst Herbschleb en Harro Jacobs zijn allen werkzaam bij Cyclomedia Technology. De With is daarnaast ook hoogleraar aan de TU Eindhoven.
Peter de With, Ernst Herbschleb & Harro Jacobs
Terug naar overzicht