Šta je novo?

Čitanje srpskih registarskih tablica

golubaca

Cenjen
Učlanjen(a)
08.03.2014
Poruke
124
Poena
170
Pozdrav,
Nakon dužeg vremena reših da doprinesem i ja malo opensource zajednici. Kako besplatnih rešenja za ovo nema, a pogotovu za srpsku regiju, postavio sam moj mali programčić na github. Naime, rešio sam da idem lakšim putem i odradim to na najlakši mogući način, da bude lako izmenljivo i prilagodljivo, tako da je sam program rađen u pajtonu, a za frontend koristim nodeJS. Sve u svemu, potrebni su OpenCV i openALPR, a fajlovi za srpsko područje su uključeni. Inače, fajl je treniran na 20.000 srpskih tablica,pa solidno radi. Još nisam rešio sva latinična slova (šđčćž..), ali lepo radi i ovako. Inače, još uvek sam u alfa fazi testiranja, ali ako smo zajednica,valjda to onda nije problem :)
Šta možete da očekujete? Pre svega, nije savršen, pa nekada pogreši po koje slovo, ali zato napravi više slika i tablica,pa je to ok. Kada su u frejmovima očitane tablice iste, ne čuva duple unose,te štedi na prostoru. Sve u svemu, rađeno je po nekoj mojoj logici, pa za razliku od ostalih pristupa, ja koristim histogram za određivanje pokreta, jer mi manje opterećuje procesor iako je nešto sporiji, ali ne utiče na rad. Sve je lako izmeniti pa se tako može dobiti program po sopstvenim potrebama. Koristi se konfiguracijski fajl i može odjednom raditi sa više kamera (rekord mi je 7, mada nisam ni probao sa više :D). Osnovna uputstva su na githubu, a evo i male demonstracije ovde. Saveti su dobrodošli svakako. https://github.com/golubaca/serbian-alpr
 
Svaka cast, stvarno sila.
Tek sam sada video da je radjeno u Py, jos mi je draze, veri najs :D, sacu malo da pregledam pa se javljam za dalju diskusiju

Sent from my SM-G935F using Tapatalk
 
Poslednja izmena:
Pitanje: kome je ovo namenjeno, ko ce to da koristi i za sta?
 
Namenjeno je svakome kome treba. Ja sam ovo počeo da pravim zato što bukvalno ne možeš naći takav softver po pristojnoj ceni. Ja sam pisao kod za jednu veliku firmu, njima treba zbog evidencije,potencijalnih rizičnih vozila,bla bla. Ovo je izmenjena verzija,malo oslabljena,ali skoro sa istim funkcijama. Zato sam i radio u više jezika,da može prilagoditi po svojoj potrebi. Inače,postoji još jedan deo koji je u sklopu programa,a to je pretraga tablica,rađena u php (laravel). Tu imaš opciju pregleda svih dolazaka iz baze,pretragu dolaska odredjene tablice, pretragu po vremenima. Npr, za potrebu ove firme sam pravio i otkrivanje tablica zato što je u pitanju veliki prodajni lanac,pa imaju dolaske kupaca,i po dolascima unesem okvirna vremena za više dolazaka,i izadje mi njihova tablica odmah. Takodje,tu je i funkcija alarma,kada označim tablicu koja predstavlja rizik,izlazi obaveštenje kada udje,i tako to. Sve u svemu,ovo je lite verzija svega toga,imaće uglavnom sve te funkcije,pa kome treba,tu je. Zato je i rađena u tehnologijama koje su besplatne i pristupačne svima, a što se tiče resursa,za rad je potreban običan dualcore računar sa xampp-om i to je to. Dve kamere koje čitaju tablice,u 1280x800 troše oko 40% cpu na običnom e6600.

Poslato sa HUAWEI VNS-L21 uz pomoć Tapatoka
 
Poslednja izmena:
Ne bih da te obeshrabrim, ali sam pre godinu i po, gledao prezentaciju aplikacije koju je Huawei razvio za iste potebe.
Kamera snima dve strane autoputa sa po 3 traka (prednja i zadnja tablica) negde u Indiji i ima tačnost preko 80% u realnom vremenu.
Cena?
Nemam pojma verovatno luda, ali to se i ne kupuje za privatne potrebe.
 
Naravno,ali ovo je baš napravljeno za našu regiju,evropska regija je dosta loša sa istim podešavanjima. Nećeš me obeshrabriti zato što je ovo samo neki moj projekat,da dokažem sebi da mogu,tako da opušteno. Nije meni cilj da koriste ljudi ovo,naravno,ako neko hoće,slobodno,meni je cilj da proširimo vidike i probam nešto novo u odnosu na klasične aplikacije koje pravim. I da,zanimljivo je da već imam par primena ovoga,mada ugovoreno još ranije,ali treba ljudima iz bezbednosnih razloga,moj prijatelj ima firmu obezbedjenja,pa koristi za potrebe klijenata,gde čuvaju one budže,smešno je što nemaju ništa,pa mu ovo dosta olakšava posao. Imali su situacije gde se sumnjiva vozila pojavljuju više puta,unesu tablicu,i kada registruju vozilo,obrate više pažnje.

Poslato sa HUAWEI VNS-L21 uz pomoć Tapatoka
 
Poslednja izmena:
Uradio je i facebook drustvenu mrezu pa opet nove drustvene mreze nicu ko korovi.

Ovako je OP uradio nesto sto je open source, neko moze da pogleda kod da vidi na koji nacin aplikacija radi, ako zatreba moze cak i da iskoristi za neke svoje potrebe, takodje ako zeli da nauci moze to da uradi jer je sav kod tu crno na bijelo. Inace kad bi se radile samo aplikacije koje do sad niko nije uradio 99%+ programera ne bi imalo posla.

Ovo sto sam napisao ne odnosi se samo na ovo sto je uradjeno vec open source zajednicu u globalu.

Uglavom imas od mene zvezdicu na Githubu.
 
Poslednja izmena:
Hvala na odgovoru, svakako svaka čast, samo me zanimalo
 
Golubaca, sta mislis da kod ove funkcije
def snapshoot(self,url):
#nekiproces
return image

Camera_on = True #Varijabla koja proverava da li je kamera ukljucena, iliti da li postoji output kamere.

def snapshoot(self,url,time_delay=0.1):
#process
While Camera_on:
time.sleep(time_delay)
yield image



Umesto da joj prosledjujes po jednu sliku (I vise puta pozivas) radi na nekom principu
I dodas jos jedan parametar time_delay kao neku podesivu velicinu za korisnika, isto sto se tice numpy ja ne mogu mnogo da doprinesem, ako postoji nesto drugo oko cega mogu da pomognem, tu sam.
 
Poslednja izmena:
Golubaca, sta mislis da kod ove funkcije
def snapshoot(self,url):
#nekiproces
return image

Camera_on = True #Varijabla koja proverava da li je kamera ukljucena, iliti da li postoji output kamere.

def snapshoot(self,url,time_delay=0.1):
#process
While Camera_on:
time.sleep(time_delay)
yield image



Umesto da joj prosledjujes po jednu sliku (I vise puta pozivas) radi na nekom principu
I dodas jos jedan parametar time_delay kao neku podesivu velicinu za korisnika, isto sto se tice numpy ja ne mogu mnogo da doprinesem, ako postoji nesto drugo oko cega mogu da pomognem, tu sam.

Pazi, tu funkciju nameravam da izbacim zato sto je moja ideja bila da stedim na resursima maksimalno, pa sam citao rtsp strim umesto mjpg i to male rezolucije, cisto da odredim da li ima kretanja ili ne. Kada ima kretanja,uzima se slika, ali samo tada,uz mali delay. Zato nisam hteo da je ubacim u petlju. Mada, primetio sam da dosta varira od konekcije,pa sam odustao od te ideje jer mi nije bas pouzdana. Zato sam presao na mjpg strim (kvalitetnija je slika jer se salje cela slika sa kamere, a rtsp salje samo promenu), zatim resize na neku minijaturu zbog brze obrade podataka. Ako ima kretanja, cuva se velika slika u tmp i salje na ocitavanje tablice. Probao sam i sa baferom ali desi se da podigne koriscenje procesora i memorije, pa sam nasao neku sredinu ovako. Znam da je trebalo da komentarisem kod, ali napisan je za 2 dana,pa nisam imao vremena.
EDIT:
Ja sam zadnjih par meseci radio sa opencv-om zbog posla, pa sam dosta istrazivao i testirao neke stvari. Desilo se da imam pristup velikom broju kamera,pa sam imao i prilike da testiram :) Ovaj kod je bukvalno sastavljen iz nekih tih istrazivanja.Mnogi kretanje odredjuju uporedjivanjem slike (absDiff) ja idem histogramom, probao sam i preko kontura,brze je malo ali procesor ode u plafon kada idem u tipa 15 fps. Zato mi je histogram bio najbolja opcija, sporiji je od ostalih ali za livestrime je ekstra, a malo trosi. Tu su i odredjene fore sa resetovanjem konekcije, kada sam testirao na slabijim racunarima, desi se da se izgubi konekcija, pa se proveravaju tredovi i ukoliko neki fali,biva restartovan sa istim podesavanjima. Isto tako se restartuju po defaultu posle 200 provera,jer nekada bude neki bug sa tredom i ne izadje skroz pa kao radi, ali ne radi,zato je reset na globalnom nivou. Mada, kada si pomenuo numpy, setio sam se da sam pre isao preko urllib-a da odrzavam konekciju i nisam imao neke gubitke kao kada idem sa VideoCapture preko opencv. Probacu da testiram i to,pa cu verovatno i to ukljuciti kao opciju,malo vise trosi rama tako, ali nije strasno.
 
Poslednja izmena:
Aha, pa da. Uglavnom dosta gledas na potrosnu resursa i to te ogranicava sve u svemu. Naci optimalno resenje je dobro, ali ovako ko sto si uradio je bas dobro.
Deketovanje sa konturama je fensi i dosta pouzdano ali opet eto, ogranicenja..
`vendor: Proizvodjac kamere, potreban je zbog drajvera za konekciju, tj. generisanje linka. Moguce napraviti svoj u carinaLibs/Helper.py`
Dosta zavisi opet do odredjenih kamera kao i sto kazes, mislim sto se tice vecine ovog ja ne razumem :D ali kao ideja i softver je odlicno.
I sve sto se desava u backend-u je ograniceno resurisima tipa 2gb-ram 2-core , tako da svaka cast kako si sve sklopio.
Dovoljno ima dokumentacije za neku klasicnu upotrebu, koga zanima, jasan je dovoljno kod.

Tako da u principu sve je dobro jedino ne znam kakva je pouzdanost u razlicitim uslovima(vremenskim) jer ima (moje nestrucno misljenje) dosta manipulacije slike (gamma i ostalo) tako da npr. Po noci kako bi ocitavao/prepoznao tablice. Cheers
 
Sto se tice vremenskih uslova, sve zavisi od kvaliteta slike i vidljivosti tablice, ako je mecava, tesko da ce procitati ispravno :D mada, sumnjam da bi bilo koji drugi softver procitao u takvim uslovima, jer ako ni ja ne mogu da procitam sa slike, sigurno nece i program. Salu na stranu, poceo sam da radim na tome, to funkcionise u placenoj verziji ovog programa, zato sto postoji automatsko upravljanje kamerom, osvetljenjem, gamom, ekspozicijom itd. Ovde sam samo poceo da pisem deo toga, jos nije zavrsen taj deo, ipak, jos uvek je samo alfa, ali bice i toga. Kako to tehnicki funkcionise, u odredjenom intervalu se uzima vise frejmova,idealno kada nema pokreta, vrsi se izracunavanje histograma i uzima se prosek osvetljenja, salje se informacija kameri o promeni parametara ukoliko ima potrebe za tim. Kako ja imam pristup samo vivotek i axis kamerama, mogao sam za te da pisem, mada lako cu ja skinuti api bilo koje kamere sa neta i napisati drajver' za nju, samo je ne mogu testirati :D Kada padne noc, kamera prelazi u nocni rezim rada, ukljucuje se IR luminator, smanji se ekspozicija,osvetljenje itd, i pri pokretu u samom programu ide smanjenje game zbog jasnoce tablica. To funkcionise skroz ok, dobije se crno bela slika sa jasnim tablicama, mada,primetno pada procenat tacnosti citanja za sada. Evo primera nocnih tablica, dva razlicita intervala, prva je kada tek krece mrak, druga je u 23 h1493574457.21_Carina3.jpg26-03-2017 23:20:38.jpg.
 
Nazad
Vrh Dno