Kako uz pomoć napredne tehnologije predvidjeti vrijeme dolaska autobusa

Kako uz pomoć napredne tehnologije predvidjeti vrijeme dolaska autobusa

Nitko ne voli stajati i čekati da autobus stigne, pogotovo kada morate stići negdje na vrijeme. Ne bi li bilo sjajno kada biste mogli predvidjeti kada sljedeći autobus treba stići?

Početkom ove godine, armenski programer Edgar Gomtsyan imao je malo slobodnog vremena i zamislio se oko ovog pitanja. Umjesto da čeka vladino tijelo da implementira rješenje ili zove autobusne dispečere da pokušaju potvrditi vrijeme dolaska autobusa, razvio je vlastito rješenje.

Na temelju strojnog učenja, predviđa vrijeme dolaska autobusa s visokim stupnjem točnosti

Slučajno, Edgarov stan gleda na ulicu u kojoj se nalazi autobusna stanica. Kako bi pratio dolazak i odlazak autobusa, na svom je balkonu postavio malu sigurnosnu kameru koja koristi softver za prepoznavanje slika. “Kao u svakom složenom problemu, da bi se došlo do učinkovitog rješenja, problem je razdvojen na manje dijelove“, rekao je Edgar.

Njegovo rješenje koristi Dahua IP kameru. Za obradu videa isprva je koristio Vertex AI koji se može koristiti za detekciju slika i objekata, klasifikaciju i druge potrebe. Zbog zabrinutosti oko mogućih problema s mrežom i električnom energijom, na kraju je odlučio obraditi detalje videostreama lokalno koristeći NVIDIA Jetson Nano. Pomoću njega možete pristupiti raznim bibliotekama i obučenim modelima u repou jetson-inference na GitHubu.

Real Time Streaming Protocol (RTSP) povezivao je detalje iz video toka kamere s Jetson Nano

Zatim, koristeći imagenet za klasifikaciju i jedan od unaprijed obučenih modela u GitHub repou, Edgar je mogao odmah dobiti osnovne klasifikacije za stream.

Za štrebere stvari tek u ovom trenutku počinju biti zanimljive. Koristeći unaprijed uvježbani model, Edgar je upotrijebio svoje postavke za snimanje zaslona iz video streama svaki put kad otkrije autobus. Njegov prvi model bio je spreman sa oko 100 slika.

Ali, kao što Edgar priznaje, “Bilo bi pogrešno reći da su stvari isprva bile savršene.” Postalo mu je očito da treba više slika kako bi povećao preciznost izlaza modela. Nakon što je imao 300 slika, “sustav je postajao sve bolji i bolji“, rekao je.

Kada je prvi put podijelio rezultate ovog projekta, njegov je model bio uvježban s više od 1300 slika i detektira i dolazeće i odlazeće autobuse, čak i u različitim vremenskim uvjetima. Također je mogao razlikovati redovne autobuse od autobusa koji su slučajno stigli. Njegov model sada uključuje tri klase detekcije slike: autobus u dolasku, pozadinu (sve što nije redoviti autobus) i autobus u odlasku.

Na primjer, ako je predviđanje klase ‘dolazećeg autobusa’ veće ili jednako 92% za 15 okvira, ono bilježi vrijeme dolaska u lokalnu CSV datoteku.

Kako bi poboljšao prikupljene podatke, njegov sustav pravi snimku zaslona iz streama svaki put kada detektira autobus

To pomaže u budućoj prekvalifikaciji modela i pronalaženju lažno pozitivnih detekcija.

Nadalje, kako bi prevladao ograničenja lokalnog pohranjivanja podataka CSV datoteke, Edgar je odlučio pohraniti podatke u BigQuery pomoću usluge Google IoT. Kako napominje, pohranjivanje podataka u oblak “daje fleksibilnije i održivije rješenje koje će zadovoljiti buduća poboljšanja.”

Iskoristio je prikupljene informacije kako bi izradio model koji će predvidjeti kada će sljedeći autobus stići koristeći Vertex AI regression servis. Edgar preporučuje gledanje videa u nastavku kako biste naučili kako postaviti model.

Potrebno je i sučelje koje će obaviještavati kada bi trebao stići sljedeći autobus

S funkcionalnim modelom koji je bio u pogonu, Edgaru je bilo potrebno sučelje koje će ga obavijestiti kada bi trebao stići sljedeći autobus. Umjesto web stranice, odlučio se koristiti glasovnog asistenta temeljenog na IoT-u.

Prvotno je planirao koristiti Google Assistant za ovu svrhu, ali to je bilo izazovnije od očekivanog. Umjesto toga koristio je Alexa Skill, Amazonov alat za glasovnog asistenta. Stvorio je Alexa Skill koji ispituje odgovarajuće funkcije oblaka na temelju naredbi izgovorenih Alexa zvučniku u njegovu stanu.

Diagram depicting the final architecture for Gomtsyan’s model.
Konačna arhitektura za Edgarov model

Moguća su brojna poboljšanja i razvoj…

I dok predviđanja nisu savršena, Edgar ima ideje za buduća poboljšanja koja bi mogla pomoći u poboljšanju točnosti predviđenog vremena dolaska autobusa, uključujući podatke o prometnoj gužvi duž rute autobusa. Također razmatra korištenje solarnih panela za napajanje sustava i njegovu autonomiju te uvođenje DevOps prakse.

Edgar je razvio ovaj projekt kako bi učio i izazivao sam sebe. Koristeći njegovu projektnu dokumentaciju, drugi programeri mogu ponoviti — i možda poboljšati — njegov rad. Na kraju se nada da će ovaj projekt predviđanja autobusa potaknuti druge da slijede svoje ideje, “bez obzira koliko ludo, teško ili nemoguće zvučale.

Više informacija o ovom projektu dostupno je u Edgarovoj repoziciji bus_prediction GitHub i u njegovom članku Kako sam upotrijebio Vertex AI i NVIDIA Jetson Nano da uhvatim autobus. Također se možete izravno obratiti programeru putem njegovog LinkedIn profila.