Mange offentlige IT-prosjekter blir overraskende kostbare, allerede før budsjettoverskridelsene kommer. Det kan være mange årsaker til dette, inkludert leverandører som vil selge inn sine omfattende løsning, og innkjøpere med for dårlig kompetanse på det de skal kjøpe inn. For noen ganger kan det virke som at det kreves skreddersydde løsninger for å løse problemer som i stor grad kan løses med billig hyllevare.
Dette gjelder ikke bare i Norge.
Automatisk skiltgjenkjenning
I 2015 ble politiet i den australske delstaten Victoria anbefalt av rådgivingsselskapet Deloitte å ta i bruk fastmonterte kameraer i en del av bilene til trafikkpolitiet. Kameraene skal være integrert med en system for automatisk gjenkjenning av bilskilter og systemer som kan varsle om kjøretøyet som er stjålet eller begjært avskiltet, for eksempel på grunn av manglende forsikring. Dette skrev blant annet australske Car Advice i 2015.
En halv milliard
Prislappen? 86 millioner australske dollar, drøyt en halv milliard norske kroner, for å utstyre 220 patruljebiler med dette systemet. Dette tilsvarer omtrent 2,4 millioner kroner per patruljebil.
Systemet, som kalles for BlueNet, ble pilottestet i seks patruljebiler i et drøy år i 2014 og 2015. I løpet av perioden bidro systemet til å avdekke over 16 000 lovbrudd.
Tait Brown, en australsk utvikler som hadde lest om denne pilottesten, beste seg nylig for å se om det hele kunne gjøres billigere. Han bestemte seg for at følgende kriterier måtte være oppfylt:
- bildebehandling utført på den lokale enheten
- må fungere med lavoppløste bilder
- bygget på åpen kildekode-lisensiert teknologi
Det enkleste hadde kanskje vært å bruke en Raspberry Pi eller tilsvarende enhet med et USB-kamera. Men siden Brown ikke hadde noen av delene, valgte han å bruke bilder fra sitt vanlige dashbordkamera.
Åpen kildekode-bibliotek
Bildene fra dashbordkameraet kan deretter sendes til enkelt system for gjenkjenning av bilskiltene. Brown valgte å bruke åpen kildekode-biblioteket OpenALPR, som igjen bygger på OCR-biblioteket Tesseract OCR og computer vision-biblioteket OpenCV.
Å bruke biblioteket handler primært om å sende bildefiler til OpenALPR ved hjelp av en tekstkommando og få registreringsnummeret tilbake, sammen med en prosentvurdering av hvor treffsikker tolkningen er. Dette vil i utgangspunktet kunne gjøres med én kodelinje. OpenALPR støtter både bilde- og videofiler som inndata, men også videostrømmer.
57 linjer
I tillegg behøves et lite skript for å sjekke ut kjøretøyet. Politiet og andre myndigheter i Victoria kan gjøre dette ved å bruke programmeringsgrensesnitt (API-er) som tilbys av VicRoads, veivesenet i delstaten. Men Brown har ikke tilgang til dette, så han har prototypen i stedet lagd et JavaScript på 57 linjer som benytter denne offentlig tilgjengelige tjenesten.
Selv om det dreier seg om en relativt grov og ufullstendig prototype, viser den i prinsippet at det med de rette API-tilgangene er det en ganske smal sak å lage et billig system som fortløpende kan sjekke kjøretøyopplysninger basert på gjenkjenning av bilskilt.
Selvfølgelig vil det være andre krav til en offisiell løsning enn det enkle skriptet som Brown har lagd. Blant annet vil det kreves kode for autentisert tilgang til API-ene og også et praktisk brukergrensesnitt. Men heller ikke dette er noe det behøver å ta mye tid å lage, inkludert at det varsles når det oppdages noe som politipatruljen bør følge opp.
Les også: Nvidias nye kredittkortstore «superdatamaskin» skal gi tingenes internett kunstig intelligens
Kan trenes opp
Så hvor godt fungerer Browns prototype? Slett ikke så galt, ifølge ham selv. Han viser til tilfeller hvor OpenALPR tolker ett tegn feil i eksempelbilde. I dette tilfellet opplyser OpenALPR at tolkningen er gjort med 87,00 prosents treffsikkerhet. Men i det neste bildet av bilen, som er tatt rett etterpå, er treffsikkerheten økt til 91,23 prosent. Og da tolkes registreringsnummeret korrekt.
Brown foreslår derfor at man for eksempel ignorere bilder hvor registreringsnummeret er gjengitt med det som vurderes som lavere treffsikkerhet enn 90 prosent.
Men det er også mulig å trene opp OpenALPR til å bedre å tolke lokale bilskilter ved å bruke rundt 200 tydelige bilder av den aktuelle typen bilskilt, samt å justere innstillingene i programvaren etter egenskapene til kameraet.
Løsningen til Tait Brown har fått betydelig oppmerksomhet i Reddit, hvor langt fra alle er overbevist om at løsningen til Brown beviser så mye. Det er nødvendigvis mange kostnader inkludert i millionbeløpet som kommer i tillegg til selve maskin- og programvaren.
Motbevist?
En annen bloggskribent, Ryan Baumann, har i ettertid testet hvor effektiv OpenALPR er ved benytte dette 27 minutter lange videoopptaket av en kjøretur i en by i Victoria.
Det ene han poengterer, er at resultatene av videoen ikke akkurat kommer i sanntid. Det tok ham to timer å prosessere den 27 minutter lange video på en relativt kraftig pc med GPU-akselerasjon av OpenALPR aktivert.
Men i kommentarene til blogginnlegget påpekes det at OpenALPR har innstillinger som kan redusere prosesseringstiden betydelig, faktisk helt ned til 4 til 6 minutter, altså raskere enn sanntid.
Det hjelper likevel ikke dersom gjenkjennelsesandelen er så lav som det Baumann opplevde.
Godt nok?
I alt ble det registrert 6137 potensielle registreringsnumre i videoen, hvorav 1653 ble ansett som unike.
Etter at skiltene som ble gjenkjent med lavere treffsikkerhet enn 90 prosent, ble filtrert vekk, satt Baumann igjen med 53 registreringsnumre. Men selv blant disse var det bare 7 skilter viste seg å være gyldige ifølge den nevnte tjenesten til VicRoads.
Med en suksessrate på omtrent 1/877 er det langt igjen før OpenALPR er på nivå hvor det kan være til særlig nytte. Men det er samtidig uklart om Baumann har tilpasset OpenALPR-innstillingene til egenskapene til kameraet som ble brukt til å gjøre opptaket.
Leste du denne? Norsk mobilapp åpnet for tapping av masse informasjon om norske bileiere