de Tait Brown

Cum am reprodus un proiect de 86 de milioane de dolari în 57 de linii de cod

Atunci când un experiment cu tehnologia open source existentă face o treabă „suficient de bună”

Cum am replicat un proiect de 86 de milioane de

Poliția Victoria este agenția principală de aplicare a legii din Victoria, Australia. Cu peste 16.000 de vehicule furate în Victoria anul trecut – la un cost de aproximativ 170 de milioane de dolari – departamentul de poliție experimentează o varietate de soluții bazate pe tehnologie pentru combaterea furtului de mașini. Ei numesc acest sistem BlueNet.

Pentru a preveni vânzările frauduloase de vehicule furate, există deja un VicRoads servicii bazate pe web pentru verificarea stării înmatriculărilor vehiculelor. Departamentul a investit, de asemenea, într-un scaner staționar de înmatriculare – o cameră de trepied fixă ​​care scanează traficul care trece pentru a identifica automat vehiculele furate.

Nu mă întrebați de ce, dar într-o după-amiază am avut dorința de a prototipa un scaner montat pe vehicul, care să vă anunțe automat dacă un vehicul a fost furat sau a fost neînmatriculat. Înțelegând că aceste componente individuale există, m-am întrebat cât de greu ar fi să le conectăm.

Dar după un pic de googling, am descoperit că Poliția Victoria a fost supusă recent unui proces similar cu un dispozitiv similar, iar costul estimativ al lansării a fost undeva la 86.000.000 de dolari. Un comentator înțelept a subliniat că costul de 86 de milioane de dolari pentru amenajarea a 220 de vehicule este destul de însetat 390.909 dolari pe vehicul.

Cu siguranță putem face ceva mai bine de atât.

Cum am replicat un proiect de 86 de milioane de
Sisteme de recunoaștere staționare staționare existente

Criteriile de succes

Înainte de a începe, am prezentat câteva cerințe cheie pentru proiectarea produsului.

Cerința nr. 1: Prelucrarea imaginii trebuie efectuată local

Transmiterea video live către un depozit central de procesare părea cea mai puțin eficientă abordare pentru rezolvarea acestei probleme. Pe lângă factura enormă pentru traficul de date, introduceți și latența rețelei într-un proces care poate fi deja destul de lent.

Deși un algoritm centralizat de învățare automată va deveni mai precis doar în timp, am vrut să aflu dacă o implementare locală pe dispozitiv ar fi „suficient de bună”.

Cerința nr. 2: trebuie să funcționeze cu imagini de calitate scăzută

Deoarece nu am o cameră Raspberry Pi sau o cameră web USB, așa că voi folosi imagini dashcam – este ușor disponibil și o sursă ideală de date eșantion. Ca bonus suplimentar, videoclipul dashcam reprezintă calitatea generală a imaginilor pe care le-ați aștepta de la camerele montate pe vehicul.

Cerința nr. 3: trebuie să fie construită folosind tehnologia open source

Bazându-vă pe un software proprietar înseamnă că veți fi înțepenit de fiecare dată când solicitați o modificare sau o îmbunătățire – iar înțelegerea va continua pentru fiecare cerere făcută ulterior. Folosirea tehnologiei cu sursă deschisă este un lucru nebunesc.

Soluția mea

La un nivel ridicat, soluția mea preia o imagine dintr-un video dashcam, o pompează printr-un sistem open source de recunoaștere a plăcuței de înmatriculare instalat local pe dispozitiv, interogă serviciul de verificare a înregistrării și apoi returnează rezultatele pentru afișare.

Datele returnate dispozitivului instalat în vehiculul de aplicare a legii includ marca și modelul vehiculului (pe care le folosește doar pentru a verifica dacă plăcile au fost furate), starea de înmatriculare și orice notificări ale vehiculului care a fost raportat ca fiind furat.

Dacă sună destul de simplu, este pentru că este într-adevăr. De exemplu, procesarea imaginii poate fi gestionată de către openalpr bibliotecă.

Acesta este cu adevărat tot ce implică recunoașterea personajelor de pe o plăcuță de înmatriculare:

O avertisment minor
Accesul public la API-urile VicRoads nu este disponibil, astfel încât verificările plăcuțelor de înmatriculare au loc prin răzuirea web pentru acest prototip. În timp ce, în general, este încruntat – aceasta este o dovadă a conceptului și nu trântesc serverele nimănui.

Iată cum arată murdăria răzuirii dovezilor de concept:

Rezultate

Trebuie să spun că am fost plăcut surprins.

Mă așteptam ca recunoașterea plăcuțelor de înmatriculare open source să fie destul de gunoi. În plus, algoritmii de recunoaștere a imaginii nu sunt probabil optimizați pentru plăcuțele de înmatriculare australiene.

Soluția a fost capabilă să recunoască numerele de înmatriculare într-un câmp vizual larg.

1612030627 47 Cum am replicat un proiect de 86 de milioane de
Adnotări adăugate pentru efect. Plăcuța de înmatriculare identificată în ciuda reflexiilor și distorsiunii lentilelor.

Deși, soluția ar avea ocazional probleme cu anumite litere.

1612030627 164 Cum am replicat un proiect de 86 de milioane de
Citirea incorectă a plăcii, a confundat M cu un H

Dar … soluția le-ar face în cele din urmă corecte.

1612030627 895 Cum am replicat un proiect de 86 de milioane de
Câteva cadre mai târziu, M este corect identificat și are un rating de încredere mai mare

După cum puteți vedea în cele două imagini de mai sus, procesarea imaginii câteva cadre a trecut ulterior de la un grad de încredere de 87% la un fir de păr peste 91%.

Sunt încrezător, scuzați jocul de cuvinte, că precizia ar putea fi îmbunătățită prin creșterea ratei de eșantionare și apoi sortarea după cel mai mare rating de încredere. Alternativ, ar putea fi stabilit un prag care acceptă doar o încredere mai mare de 90% înainte de a continua validarea numărului de înregistrare.

Acestea sunt corecții foarte simple pentru primul cod și nu împiedică instruirea software-ului de recunoaștere a plăcuței de înmatriculare cu un set de date local.

Întrebarea de 86.000.000 de dolari

Ca să fiu corect, nu am absolut nicio idee despre ceea ce include cifra de 86 de milioane de dolari – și nici nu pot vorbi despre acuratețea instrumentului meu open source fără pregătire localizată față de sistemul BlueNet pilot.

M-aș aștepta ca o parte din acel buget să includă înlocuirea mai multor baze de date și aplicații software vechi pentru a susține interogarea cu frecvență ridicată și cu latență scăzută a plăcuțelor de înmatriculare de câteva ori pe secundă, pe vehicul.

Pe de altă parte, costul de ~ 391.000 de dolari pe vehicul pare destul de bogat – mai ales dacă BlueNet nu este deosebit de precis și nu există proiecte IT la scară largă pentru dezafectarea sau modernizarea sistemelor dependente.

Aplicații viitoare

Deși este ușor să te prinzi în natura orwelliană a unei rețele „întotdeauna în funcțiune” de snitchers de înmatriculare, există multe aplicații pozitive ale acestei tehnologii. Imaginați-vă un sistem pasiv care scanează colegii șoferi după o mașină răpitoare care avertizează automat autoritățile și membrii familiei cu privire la locația și direcția lor actuală.

Vehiculele Teslas sunt deja pline de camere și senzori cu capacitatea de a primi actualizări OTA – imaginați-vă transformându-le într-o flotă de samaritani virtuali buni. Șoferii Ubers și Lyft ar putea fi, de asemenea, echipați cu aceste dispozitive pentru a crește dramatic zona de acoperire.

Folosind tehnologia open source și componentele existente, pare posibil să se ofere o soluție care să ofere o rată de rentabilitate mult mai mare – pentru o investiție mult mai mică de 86 milioane USD.

Partea 2 – Am publicat o actualizare, în care testez cu propriile imagini și prind un vehicul neînmatriculat, aici:

Vă amintiți că scanerul de înmatriculare de 86 de milioane de dolari pe care l-am reprodus? Iată ce s-a întâmplat în continuare.
Succesuri, eșecuri și prinderea unui șofer foarte obraznicmedium.freecodecamp.org