Kako sam replicirao projekt od 86 milijuna dolara u 57 redaka koda

Kada eksperiment s postojećom tehnologijom otvorenog koda učini "dovoljno dobar" posao

Victoria policija primarna je agencija za provođenje zakona u državi Victoria, Australija. S više od 16.000 ukradenih vozila u Victoriji prošle godine - po cijeni od oko 170 milijuna dolara - policijska uprava eksperimentira s raznim tehnološkim rješenjima za suzbijanje krađe automobila. Taj sustav nazivaju BlueNet.

Kako bi se spriječila lažna prodaja ukradenih vozila, već postoji internetska usluga VicRoads za provjeru statusa registracija vozila. Odjel je također investirao u stacionarni skener registarskih tablica - fiksnu stativnu kameru koja skenira prolazni promet kako bi automatski prepoznala ukradena vozila.

Ne pitajte me zašto, ali jednog popodneva imao sam želju prototipirati skener registarskih tablica montiran na vozilo koji će vas automatski obavijestiti je li vozilo ukradeno ili je bilo neregistrirano. Razumijevajući da ove pojedinačne komponente postoje, pitao sam se kako bi bilo teško povezati ih.

No, nakon malo guglanja otkrio sam da je policija Victoria nedavno podvrgnuta probi sličnog uređaja, a procijenjeni trošak uvođenja bio je negdje oko 86 000 000 dolara. Jedan pronicljivi komentator naglasio je da troškovi za opremanje 220 vozila iznose 86 milijuna dolara po prilično žednim 390.909 dolara po vozilu .

Sigurno možemo učiniti nešto bolje od toga.

Kriteriji uspjeha

Prije početka, izložio sam nekoliko ključnih zahtjeva za dizajn proizvoda.

Zahtjev br. 1: Obrada slike mora se izvoditi lokalno

Prijenos videozapisa uživo do središnjeg skladišta za obradu činio se najmanje učinkovitim pristupom rješavanju ovog problema. Osim ogromnog računa za podatkovni promet, uvodiš i mrežno kašnjenje u proces koji je možda već polagano.

Iako će centralizirani algoritam strojnog učenja s vremenom postati točniji, želio sam naučiti bi li lokalna implementacija na uređaju bila "dovoljno dobra".

Zahtjev br. 2: Mora raditi sa slikama niske kvalitete

Budući da nemam Raspberry Pi kameru ili USB web kameru, pa ću koristiti snimke s nadzorne kamere - lako je dostupna i idealan izvor uzoraka podataka. Kao dodatni bonus, video nadzorna kamera predstavlja ukupnu kvalitetu snimke koju biste očekivali od kamera na vozilu.

Zahtjev br. 3: Treba ga izraditi pomoću tehnologije otvorenog koda

Oslanjanje na vlastiti softver znači da ćete se ubosti svaki put kad zatražite promjenu ili poboljšanje - a peckanje će se nastaviti za svaki zahtjev koji je dan nakon toga. Korištenje tehnologije otvorenog koda nije nimalo pametno.

Moje rješenje

Na visokoj razini, moje rješenje snima sliku s video nadzorne kamere, prebacuje je kroz sustav za prepoznavanje registarskih oznaka otvorenog koda instaliran lokalno na uređaju, traži uslugu provjere registracije i vraća rezultate na prikaz.

Podaci vraćeni na uređaj ugrađen u vozilo za provođenje zakona uključuju marku i model vozila (koje koristi samo za provjeru jesu li pločice ukradene), status registracije i sve obavijesti o ukradenom vozilu.

Ako to zvuči prilično jednostavno, to je zato što stvarno jest. Na primjer, obradom slika sve može upravljati biblioteka openalpr .

Ovo je zapravo sve što je uključeno u prepoznavanje likova na registarskoj pločici:

Manji upozorenje

Javni pristup VicRoads API-ima nije dostupan, pa se provjere registarskih oznaka odvijaju struganjem weba za ovaj prototip. Iako se uglavnom mršte - ovo je dokaz koncepta i ne zaljubljujem ničije servere.

Evo kako izgleda prljavština mog struganja s koncepta:

Rezultati

Moram reći da sam se ugodno iznenadio.

Očekivao sam da će prepoznavanje registarskih tablica otvorenog koda biti prilično smeće. Uz to, algoritmi prepoznavanja slika vjerojatno nisu optimizirani za australske registarske pločice.

Rješenje je moglo prepoznati registarske pločice u širokom vidnom polju.

Iako bi rješenje povremeno imalo problema s određenim slovima.

Ali ... rješenje će ih na kraju ispraviti.

Kao što možete vidjeti na gornje dvije slike, obrada slike nekoliko okvira kasnije skočila je s ocjene pouzdanosti od 87% na dlaku iznad 91%.

Uvjeren sam, pardon za igru ​​riječi, da bi se točnost mogla poboljšati povećanjem brzine uzorkovanja, a zatim sortiranjem po najvišoj ocjeni pouzdanosti. Alternativno se može postaviti prag koji prihvaća samo pouzdanost veću od 90% prije nego što se krene u potvrđivanje registracijskog broja.

To su vrlo jasne ispravke kod prvog kodiranja i ne sprečavaju obuku softvera za prepoznavanje registarskih pločica s lokalnim skupom podataka.

Pitanje od 86 000 000 dolara

Da budem iskren, apsolutno nemam pojma što uključuje brojka od 86 milijuna dolara - niti mogu govoriti o točnosti mog alata otvorenog koda bez lokalizirane obuke u odnosu na pilot BlueNet sustav.

Očekivao bih da dio tog proračuna uključuje zamjenu nekoliko naslijeđenih baza podataka i softverskih aplikacija koje podržavaju visokofrekventna ispitivanja registarskih tablica s nekoliko kašnjenja nekoliko puta u sekundi po vozilu.

S druge strane, cijena od ~ 391.000 USD po vozilu čini se prilično bogatom - pogotovo ako BlueNet nije posebno precizan i ako nema velikih IT projekata za razgradnju ili nadogradnju ovisnih sustava.

Buduće primjene

Iako je lako uloviti se u orwellovsku prirodu "uvijek uključene" mreže registarskih tablica, postoji mnogo pozitivnih primjena ove tehnologije. Zamislite pasivni sustav koji skenira kolege automobiliste u potrazi za automobilom otmičara koji automatski upozorava vlasti i članove obitelji na njihovo trenutno mjesto i smjer.

Teslasova vozila već su prepuna kamera i senzora s mogućnošću primanja OTA ažuriranja - zamislite da ih pretvorite u flotu virtualnih dobrih samarijana. Ubers i Lyft vozači također bi mogli biti opremljeni ovim uređajima kako bi dramatično povećali područje pokrivenosti.

Koristeći tehnologiju otvorenog koda i postojeće komponente, čini se mogućim ponuditi rješenje koje pruža mnogo veću stopu povrata - za ulaganje puno manje od 86 milijuna dolara.

Dio 2 - Objavio sam ažuriranje u kojem testiram vlastitim snimkama i uhvatim neregistrirano vozilo ovdje:

Sjećate se onog skenera registarskih pločica od 86 milijuna dolara koji sam kopirao? Evo što se dalje dogodilo.

Uspjesi, neuspjesi i hvatanje jednog vrlo nestašnog vozačkog medija.freecodecamp.org