Hvordan jeg replikerede et projekt på 86 millioner dollars i 57 linjer kode

Når et eksperiment med eksisterende open source-teknologi gør et "godt nok" job

Victoria Police er det primære retshåndhævende organ i Victoria, Australien. Med over 16.000 køretøjer stjålet i Victoria i det forløbne år - til en pris af omkring 170 millioner dollars - eksperimenterer politiet med en række teknologidrevne løsninger til bekæmpelse af biltyveri. De kalder dette system BlueNet.

For at forhindre svigagtigt salg af stjålne køretøjer findes der allerede en VicRoads webbaseret service til kontrol af status for køretøjsregistreringer. Afdelingen har også investeret i en stationær nummerpladescanner - et fast stativkamera, der scanner forbipasserende trafik for automatisk at identificere stjålne køretøjer.

Spørg mig ikke hvorfor, men en eftermiddag havde jeg lyst til at prototype en køretøjsmonteret nummerpladescanner, der automatisk ville give dig besked, hvis et køretøj var blevet stjålet eller var uregistreret. Da jeg forstod, at disse individuelle komponenter eksisterede, spekulerede jeg på, hvor svært det ville være at binde dem sammen.

Men det var efter en smule googling, at jeg opdagede, at Victoria Police for nylig havde gennemgået en retssag med en lignende enhed, og de anslåede omkostninger ved udrulning var et eller andet sted i nærheden af ​​$ 86.000.000. En klog kommentator påpegede, at omkostningerne på $ 86 mio. Til at indrette 220 køretøjer kommer til en ret tørstig $ 390.909 dollar pr. Køretøj .

Vi kan helt sikkert gøre det lidt bedre end det.

Succeskriterierne

Før jeg kom i gang, skitserede jeg et par nøglekrav til produktdesign.

Krav nr. 1: Billedbehandlingen skal udføres lokalt

Streaming af livevideo til et centralt lagerlager syntes den mindst effektive tilgang til løsning af dette problem. Udover den kæmpestore regning for datatrafik introducerer du også netværkslatens i en proces, som måske allerede er ret langsom.

Selvom en centraliseret maskinlæringsalgoritme kun bliver mere præcis over tid, ville jeg lære, om en lokal implementering på enheden ville være "god nok".

Krav nr. 2: Det skal fungere med billeder af lav kvalitet

Da jeg ikke har et Raspberry Pi-kamera eller USB-webkamera, så bruger jeg dashcam-optagelser - det er let tilgængeligt og en ideel kilde til eksempeldata. Som en ekstra bonus repræsenterer dashcam-video den overordnede kvalitet af optagelser, du forventer fra køretøjsmonterede kameraer.

Krav nr. 3: Det skal bygges ved hjælp af open source-teknologi

At stole på en proprietær software betyder, at du bliver stukket, hver gang du anmoder om en ændring eller forbedring - og den stikkende fortsætter for hver anmodning, der fremsættes derefter. Brug af open source-teknologi er en no-brainer.

Min løsning

På et højt niveau tager min løsning et billede fra en dashcam-video, pumper det gennem et open source-nummerpladesgenkendelsessystem, der er installeret lokalt på enheden, spørger til registreringstjek og returnerer derefter resultaterne til visning.

Dataene, der returneres til den enhed, der er installeret i det retshåndhævende køretøj, inkluderer køretøjets mærke og model (som det kun bruger til at kontrollere, om pladerne er blevet stjålet), registreringsstatus og eventuelle meddelelser om, at køretøjet bliver rapporteret stjålet.

Hvis det lyder ret simpelt, er det fordi det virkelig er det. For eksempel kan billedbehandlingen alle håndteres af openalpr- biblioteket.

Dette er virkelig alt, hvad der er involveret i at genkende tegnene på en nummerplade:

En mindre advarsel

Offentlig adgang til VicRoads API'er er ikke tilgængelig, så nummerpladekontrol sker via webskrabning til denne prototype. Mens det generelt er forkert - dette er et bevis på konceptet, og jeg smækker ikke nogens servere.

Sådan ser snavset med min proof-of-concept-skrabning ud:

Resultater

Jeg må sige, at jeg blev glædeligt overrasket.

Jeg forventede, at anerkendelsen af ​​open source-nummerplader var ret skrald. Derudover er billedgenkendelsesalgoritmerne sandsynligvis ikke optimeret til australske nummerplader.

Løsningen kunne genkende nummerplader i et bredt synsfelt.

Skønt løsningen lejlighedsvis har problemer med bestemte bogstaver.

Men ... løsningen vil til sidst få dem korrekte.

Som du kan se i ovenstående to billeder, blev behandlingen af ​​billedet et par rammer senere sprunget fra en tillidsgrad på 87% til et hår over 91%.

Jeg er overbevist om, undskyld ordspillet, at nøjagtigheden kunne forbedres ved at øge samplingsfrekvensen og derefter sortere efter den højeste tillidsklassificering. Alternativt kan der indstilles en tærskel, der kun accepterer en tillid på mere end 90%, inden de fortsætter med at validere registreringsnummeret.

Det er meget ligefrem kode-første rettelser og udelukker ikke træning af nummerpladesgenkendelsessoftwaren med et lokalt datasæt.

$ 86.000.000 spørgsmålet

For at være retfærdig har jeg absolut ingen anelse om, hvad figuren på $ 86 millioner inkluderer - og jeg kan heller ikke tale med nøjagtigheden af ​​mit open source-værktøj uden lokaliseret træning i forhold til pilot BlueNet-systemet.

Jeg forventer, at en del af dette budget inkluderer udskiftning af adskillige ældre databaser og softwareapplikationer til understøttelse af højfrekvens, lav latenstinsforespørgsel på nummerplader flere gange i sekundet pr.

På den anden side virker omkostningerne på ~ $ 391.000 pr. Køretøj ret rig - især hvis BlueNet ikke er særlig nøjagtigt, og der ikke er store IT-projekter til nedlukning eller opgradering af afhængige systemer.

Fremtidige applikationer

Selvom det er let at blive fanget i den orwellske natur af et "altid på" netværk af nummerplade-snitchers, er der mange positive anvendelser af denne teknologi. Forestil dig et passivt system, der scanner bilister efter en bortføringsbil, der automatisk advarer myndigheder og familiemedlemmer om deres nuværende placering og retning.

Teslas-køretøjer fylder allerede med kameraer og sensorer med evnen til at modtage OTA-opdateringer - forestil dig at gøre disse til en flåde af virtuelle gode samaritaner. Ubers- og Lyft-drivere kunne også være udstyret med disse enheder for dramatisk at øge dækningsområdet.

Ved hjælp af open source-teknologi og eksisterende komponenter ser det ud til at være muligt at tilbyde en løsning, der giver et meget højere afkast - til en investering, der er meget mindre end $ 86 mio.

Del 2 - Jeg har offentliggjort en opdatering, hvor jeg tester med mine egne optagelser og fanger et uregistreret køretøj herovre:

Husker du, at nummerpladescanneren på $ 86 millioner, jeg replikerede? Her er hvad der skete næste.

Succeser, fiaskoer og fangst af en meget fræk driver medium.freecodecamp.org