FUNDAȚIA PENTRU CULTURĂ ȘI ÎNVĂȚĂMÂNT IOAN SLAVICI TIMIȘOARA [309914]
FUNDAȚIA PENTRU CULTURĂ ȘI ÎNVĂȚĂMÂNT “IOAN SLAVICI” TIMIȘOARA
UNIVERȘITATEA “IOAN SLAVICI” [anonimizat]. dr . ing. [anonimizat]: [anonimizat]
2019
FUNDAȚIA PENTRU CULTURĂ ȘI ÎNVĂȚĂMÂNT “IOAN SLAVICI” TIMIȘOARA
UNIVERȘITATEA “IOAN SLAVICI” [anonimizat]. dr . ing. [anonimizat]: [anonimizat]
2019
UNIVERSITATEA DIN ORADEA
FACULTATEA de Inginerie Electrică și Tehnologia Informației
DEPARTAMENTUL Calculatoare și tehnologia informației
TEMA DE LICENȚĂ
Proiectul de Finalizare a studiilor a student: [anonimizat]
1). Tema lucrării de finalizare a studiilor: Sistem de parcare automată cu recunoaștere numere de inmatriculare
2). Termenul pentru predarea proiectului de diplomă 19.06.2019
3). Elemente inițiale pentru elaborarea lucrării de proiectului de finalizare a [anonimizat], scheme de principiu
4). Conținutul lucrării de finalizare a studiilor:
– Capitolul 1 – Introducere
– Capitolul 2 – Sisteme ANPR (Automatic Number Plate Recognition)
– Capitolul 3 – [anonimizat] 4 – Concluzii
– Bibliografie
– Anexe
5). Material grafic: scheme de principiu echipamente electronice
6). Locul de documentare pentru elaborarea lucrării: U. Ioan Slavici,
7). Data emiterii temei 11.06.2019
Coordonator științific
Conf. dr. ing. [anonimizat]
A
ABSOLVENT: [anonimizat] / ABSOLVENT: [anonimizat] : Măran Valentin Daniel
DOMENIUL Calculatoare și tehnologia informației
SPECIALIZAREA Tehnologia informației
PROMOȚIA 2019
Titlul lucrării: Sistem de parcare automată cu recunoaștere numere de inmatriculare.
Structura lucrării …………………………………………………………………….
[anonimizat]. [anonimizat]. În capitolul doi se prezintă cateva notiuni despre dezvoltarea sistemelor de parcare. Capitolul 3 prezintă proiectarea generală a [anonimizat], proiectare software. [anonimizat].
Aprecieri asupra conținutului lucrării de LICENȚĂ (finalizare a studiilor), [anonimizat], actualitate, deficiențe
Lucrarea prezintă o [anonimizat]: [anonimizat], în proiectarea părții hardware a fost folosită placa arduino uno si single board computer raspberry pi 3, aceasta contine camera video V2, [anonimizat]-SR04 un servo motor MG90S, un display LCD cu 16 caractere si 2 linii. Aplicația software constă în realizarea modului prin intermediul căruia bariera se deschide atunci cand softul cu ajutorul camerei, recunoaste numarul de inmatriculare autorizat.
Aprecieri asupra lucrării (se va menționa: numărul titlurilor bibliografice consultate, frecvența notelor de subsol, calitatea și diversitatea surselor consultate; modul în care absolventul a prelucrat informațiile din surse teoretice)
Sursele bibliografice folosite pentru elaborarea lucrării au fost diverse, îmbinându-se cunoștințele acumulate pe durata studiilor universitare cu documentarea propriu-zisă, autorul folosind o listă bibliografică formată din 25 titluri bibliografice de actualitate. Se precizează că o mare parte dintre sursele bibliografice citate sunt în limba engleză.
Documentarea a fost elaborată în cadrul Universității Ioan Slavici. De asemenea pentru partea practică documentarea a fost realizată prin studiu individual de pe internet, cu mențiunea că partea aplicativă îi aparține în totalitate autorului.
Concluzii (coordonatorul lucrării trebuie să aprecieze valoarea lucrării întocmite, relevanța studiului întreprins, competențele absolventului, rigurozitatea pe parcursul elaborării lucrării, consecvența și seriozitatea de care a dat dovadă absolventul pe parcurs)
Lucrarea de față îmbină elemente din mai multe domenii ale tehnicii. Pe de-o parte, prin proiectarea generală a sistemului se face apel la cunoștințe autorului, în programarea si utilizarea sistemelor automatizate, domeniu în care acesta își desfășoară în prezent activitatea. Pe de altă parte se face apel la diverse domenii cum ar fi: sisteme încorporate, electronică analogică, electronică digitală, achiziții de date, programarea microcontrolerelor. Doar consultând conținutul lucrării, se poate deduce că lucrarea acoperă subiectul, iar în urma studiului efectuat de către autor, se poate spune că acesta a dobândit cunoștințe vaste în domeniu. Lucrarea este elaborată îngrijit, cu multe exemple, care vin să argumenteze afirmațiile menționate. Având în vedere conținutul temei de proiectare, se poate considera că autorul a dat dovadă de maximă seriozitate.
Redactarea lucrării respectă ….în totalitate….cerințele academice de redactare (părți, capitole, subcapitole, note de subsol și bibliografie).
Consider că lucrarea îndeplinește/ nu îndeplinește condițiile pentru susținere în sesiunea de Examen de LICENȚĂ (finalizare a studiilor) din IULIE 2019 și propun acordarea notei ………………
Oradea,
Data Conducător științific
11.06.2019 Conf. dr. ing. Florin MOLNAR-MATEI
Cuprins
Capitolul 1.
Introducere
În ultimele decenii ale secolului al XIX-lea și începutul secolului al XX-lea, orașele românești trăiesc schimbări majore care se înscriu în amplul proces de dezvoltare și modernizare a lumii europene.
Apariția automobilului avea să aducă transformări majore în modul de viață al oamenilor. La început își face timid apariția și intră în preocupările celor care aveau posibilități financiare. Primul automobil cu aburi a fost adus în București în anul 1880 de către D. Văsescu, student la Paris, iar în țară, primul automobil cu benzină (marca Benz de 12 CP), a fost adus de trei craioveni. Pe la 1898 apare pe străzile Bucureștilor și primul automobil american: Oldsmobil. Tot în București, la 1900, puteai admira automobilul lui Gh. Bașil Assan, fiul primului proprietar de moară cu aburi din Capitală. Era un Penhard de 15 CP comandat în Belgia. Deoarece sunt aduse mai multe mărci de automobile în România, interesul pentru mașini crește. În septembrie 1904 se înființează și „Automobil Club Regal din România"; se organizează și întreceri auto, prima cursă desfășurându-se pe distanța București-Giurgiu.
Orașele își schimbă înfățișarea nu numai datorită stilurilor diverse în care se construiești, cât mai ales unor noi tipuri de clădiri și a infrastructurii rutiere care apar în această perioadă Automobilul nu mai reprezintă doar o necesitate, ci și o modalitate prin care proprietarul își afirmă statutul social. Pavarea străzilor și a trotuarelor (primele trotuare s-au construit în București pe Calea Moșilor între 1871-1876) a stat mereu în atenția edililor, încercându-se introducerea unor norme și tehnici moderne [11].
În anul 2018 Nicolae Robul primarul Timișoarei anunța într-o conferință de presă faptul ca primăria Timișoara face ”parcări inteligente”. Mii de locuri vor fi indexate, iar șoferii vor afla de pe telefoane unde e liber
„Sistemul inteligent va fi implementat în zonele roșie și verde, sunt sunt aproximativ 2.000 de locuri de parcare. Sistemul va afișa dacă în timp real un loc de parcare este ocupat sau nu, iar prin sincronizarea cu sistemul de plată se va verifica dacă există parcare frauduloasă. În această situație un inspector de zonă va fi notificat pe tabletă unde își găsește «clientul» să-i aplice amenda. Pe noul sistem care este acum la licitație se notifică automat controlorii că într-un anume loc există mașină parcată pentru care nu s-a plătit. Drept urmare, pot să meargă să aplice amendă. Altfel, cu camerele video care vor fi în parcare, există și fotografie cu mașina respectivă. Este un sistem foarte evoluat, practic la maximum ce există și se subînțelege că, odată ce ai văzut unde sunt locuri libere, în care din parcare, nu ai decât să pui degetul pe telefon unde dorești și se comută pe GPS sau pe Waze și ești dus la parcarea respectivă”, a explicat primarul Timișoarei, într-o conferință de presă [24].
Dezvoltarea urbană din ultima perioadă a condus și la o serie de efecte mai puțin plăcute în rândul cetățenilor. Unul dintre acestea se referă la problema parcărilor. Decongestionarea traficului, gășirea unui loc de parcare disponibil, creșterea timpului petrecut pentru gășirea unui loc de parcare sunt doar câteva dintre aspectele cu care ne confruntăm în viața de zi cu zi [6].
In paralel trebuie găsit un echilibru care să țină cont și de comfort și gradul de mobilitate al oamenilor într-o lume în care 1 minut poate să facă o diferență. Sistemele de recunoaștere automată a numerelor de înmatriculare sunt considerate în general costisitoare, dar odată cu aglomerarea traficului urban și extraurban, extinderea parcurilor auto și, mai ales, digitalizarea și interconectarea la nivelul societății, ele au devenit necesare, atât din perspectiva îmbunătățirii siguranței publice și private, cât și din perspectiva îmbunătățirii calității serviciilor și a nivelului de confort. Dezvoltarea continuă a camerelor de supraveghere video IP, atât în privința performanțelor și nivelului de calitate, cât și în privința dotărilor, prin prisma utilizării variate, a generat o reducere a costurilor, iar acum astfel de sisteme pot fi implementate la scară larga [9].
Parcarea inteligentă prezintă o oportunitate de primă importanță pentru administrația orașelor inteligente, prin care acestea dezvoltă soluții îmbunătățite de gestionare a mediului urban.
Recunoașterea automată a plăcuței de înmatriculare (ANPR) este o tehnologie de procesare a imaginilor care utilizează placa numerică (numarul de inmatriculare) pentru a identifica vehiculul. Obiectivul este de a proiecta un sistem automat eficient de identificare a vehiculului autorizat, utilizând plăcuța de identificare a vehiculului. Sistemul este implementat la intrarea pentru controlul securității unei zone foarte restricționate, cum ar fi zonele militare sau zona din jurul birourilor guvernamentale de vârf, de ex. Parlamentul, Curtea Supremă etc. Sistemul dezvoltat detectează mai întâi vehiculul și captează apoi imaginea vehiculului. Numărul regiunii plăcii de identificare a vehiculului este extras utilizând segmentarea imaginii dintr-o imagine. Tehnologia de recunoaștere a caracterelor optice este utilizată pentru recunoașterea caracterelor. Datele rezultate sunt apoi folosite pentru a compara cu înregistrările dintr-o bază de date pentru a veni cu informațiile specifice cum ar fi proprietarul vehiculului, locul înregistrării, adresa etc. Sistemul este implementat și șimulat în Matlab, iar performanța este testată pe imagine reală. Din experiment se observă că sistemul dezvoltat detectează cu succes și recunoaște plăcuța de identificare a vehiculului pe imagini reale [10].
Figura nr.1.1 Parcare inteligentă cu ANPR
Lucrarea de față studiează câteva tehnologii moderne de monitorizare și conducere pentru parcări inteligente automatizate. Soluția propusă a fost dezvoltată în scopul oferiri de instrumente de control a orașelor, municipiilor și statelor care permit îmbunătățirea siguranței, mobilității și gestionării traficului; Oferă utilizatorului posibilitatea de a genera prin interfață, căutări în istoria detectărilor prin înregistrare, a numerelor de inmatriculare , detectarea vehiculelor care au acces in parcare cat și celor care nu sunt autorizate.
Scopul principal al acestui proiect este acela de a realiza un model la scară redusă pentru o parcare automatizată, folosind tehnologia Licence Plate Recognition și având capacitatea de a simula modul de funcționare al sistemelor tehnologice inteligente dintr-o parcare reală.
În continuare, în capitolul 2 se va face o prezentare generală asupra sistemelor de parcare inteligenta cu recunoaștere automata a numerelor de inmatriculare și a considerațiilor tehnice care au stat la baza realizării proiectului.
În capitolul 3 se prezintă partea practică a lucrării și soluția de realizare.
Ultimul capitol prezintă concluziile finale ale acestei lucrări.
Capitolul 2.
Sistemele ANPR (Automatic Number Plate Recognition)
2.1. Scurt istoric
ANPR a fost inventat în 1976 la Sucursala de Dezvoltare Științifică a Poliției din Regatul Unit. Sistemele prototip au funcționat până în 1979 și au fost atribuite contracte de producere a sistemelor industriale, mai întâi la EMI Electronics, apoi la Computer Recognition Systems (CRS) în Wokingham, Marea Britanie. Sistemele de încercare timpurii au fost desfășurate pe drumul A1 și la Tunelul Dartford. Primul arest prin detectarea unei mașini furate a fost făcut în 1981. Cu toate acestea, ANPR nu a devenit utilizat pe scară largă până când noile dezvoltări ale software-urilor mai ieftine și mai ușor de utilizat au fost pionierate în anii 1990. Colectarea datelor ANPR pentru utilizare ulterioară (adică în rezolvarea crimelor neidentificate) a fost documentată la începutul anilor 2000. Primul caz documentat al ANPR, folosit pentru a ajuta la rezolvarea unei crime, a avut loc în noiembrie 2005, la Bradford, Marea Britanie, unde ANPR a jucat un rol vital în localizarea și ulterior condamnarea ucigașilor lui Sharon Beshenivsky [17].
Tehnologia sistemelor ANPR (Automatic Nuber Plate Recognition) este o inovație care poate detecta, citi și stoca inregistrarile cu placuțele de inmatriculare.
2.2. Cum functioneaza?
OCR (Optical Character Recognition) – recunoașterea optică a caracterelor reprezintă tehnologia ce sta la baza sistemelor ANPR, care permite conversia imaginilor sub forma de text. Funcționarea corectă a sistemelor ANPR se bazează pe iluminarea IR (in condiții de slabă iluminare sau in absența totală) sau a altor metode de iluminare, pentru captura placuțelor de inmatriculare.
Dupa ce numerele de inmatriculare sunt identificate, softul ANPR le stochează intr-o baza de date (se stochează țara, număr sub forma text și imagine, ora, data).
Sunt ideale pentru identificarea mașinilor care pot intra intr-o parcare (compararea numărului mașinii cu o bază de date și dacă este gasit, se ridică bariera), identificarea celor care circulă fară asigurare, fară rovinieta, cu numere expirate șamd.
Pentru ca un sistem ANPR sa funcționeze corect, camera dedicată acestui scop necesită caracteristici specifice:
unghiul unde este montată, este foarte important, deoarce o cameră montată la o inalțime prea mare nu poate vedea placuța de inmatriculare;
distanța dintre mașină și cameră trebuie luată in calcul; trebuie aleasă o distanță in funcție de viteza de deplasare a autovehiculelor;
prezența sau absența luminii este foarte importantă; fiind necesară o cameră sensibilă la iluminarea scazută, cu lumina suplimentară pe timp de noapte – prezenta IR;
trebuie luate in calcul intensitatea traficului precum și viteza; camera trebuie sa aibă suficient timp sa focuseze placuța de inmatriculare.
Atunci cand se alege o cameră de supraveghere ANPR un alt aspect il reprezintă calitatea imaginii. Pentru a putea fi folosite ca o evidența legală, imaginile necesita o rezoluție ridicată asa cum se observa in figura nr 2.1.
Figura nr.2.1 cameră de supraveghere ANPR
Deși ANPR poate funcționa și pe camerele normale in timpul zilei (rezultatele vor fi nesatisfăcatoare), camerele ANPR sunt special concepute pentru a funcționa 24/7 in toate condițile de vreme și temperatură, cu o construcție industrială și o configurare facilă precum și un consum redus asigurând o rata de detecție de peste 95%.
Un sistem de supraveghere ANPR poate estima viteza de deplasare a mașinilor, recunoaște țara de inmatriculare, banda de circulație, sensul de deplasare sau diferite contravenții ale legii și poate fi integrat intr-un sistem acces control [3].
ANPR (Automatic Number Plate Recogniton) reprezintă o inovație care permite detectarea și identificarea placuțelor de inmatriculare. Funcționeaza pe baza principiului transformării imaginii capturate in format text.
Cand se alege o cameră ANPR precum și/sau un reflector IR se vor ține cont de urmatoarele:
lațimea numarului sa fie de cel putin 200px pentru o precizie cât mai mare;
cand se alege o camera cu zoom, reflectorul IR trebuie să aibă caracteristici similare camerei (unghi, distanta);
viteza de deplasare a autoturismelor trebuie sa fie in concordanță cu timpul de achiziție al imaginilor (shutter speed); se va alege o cameră cu shutter speed redus pentru autoturismele lente, respectiv cu shutter speed rapid pentru cele care se deplasează cu viteză mare.
Indiferent de viteza de deplasare a vehiculelor, este foarte important ca numerele de inmatriculare sa aibă o imagine clară, oricare ar fi condițiile de iluminare in acel punct de identificare .
Spre exemplu, DS-2CD4A25FWD-IZS este o cameră IP dedicată ANPR marca Hikvison de exterior beneficiind de un senzor IR puternic (cu o instalare corespunzatoare, detecția ANPR se face pe o distanță de pana la 10 metri pe timp de noapte), un senzor CMOS de 1/2.8", cu o rezoluție de inregistrare de 2MegaPixel (1080P) la 60 cadre pe secundă și o lentilă motorizată de 8 – 32 mm (zoom optic 4x). Inregistrarea la 60 de cadre pe secundă face posibilă captura placușelor mașinilor care circulă cu viteza de maxim 70km/h așigurand o rată de detecție de 96% sau chiar mai mare. Prezența ANR (Automatic Network Replenishment) face posibilă stocarea inregistrărilor pe cardul SD al camerei (maxim 128GB) atunci când sunt probleme cu conexiunea dintre cameră și NVR (Network Video Recorder). Automat, la restabilirea conexiunii dintre NVR și camera, NVR-ul recuperează datele video stocate pe cardul SD.
Deși identificarea numerelor de inmatriculare se realizeaza in camerele IP ANPR, pentru a putea imbunătați rata de detecție și exporta aceste numere intr-o baza de date este nevoie de un soft special.
Spre exemplu, Metrici reprezintă o soluție românească de dezvoltare software pentru identificarea numerelor de inmatriculare ale autoturismelor. Sistemul software Metrici ANPR poate fi folosit atât pe timp de zi, cât și noaptea pentru monitorizarea traficului auto, parcări, control acces, precum și multe alte aplicații. Sistemul Metrici poate fi configurat in funcție de necesități, fiind compus (la nivel funcțional) din 3 blocuri interconectate: Achiziție, Procesare, Administrare și Raportare [9].
Totalitatea camerelor IP pentru fiecare punct de acces monitorizat și restul echipamentelor (reflectoare IR, switch-uri PoE etc) alcatuiesc blocul de achiziție. Achiziția fluxului video se face de la camerele IP capabile sa livreze stream codat MJPEG folosind protocolul HTTP. Pentru a facilita detecția, camerele video folosite necesita reflectoare IR, chiar și pe timpul zilei (se recomandă foloșirea unu filtru MLPF – Metrici Low Pass Filter – vizibil in spectrul IR pentru a scădea perturbațiile sistemului produse de către soare sau de către lumina farurilor).
Softul de analiză in timp real al stream-urilor video este stocat in unul sau mai multe computere (in funcție de numarul de camere IP și puterea de procesare a PC-ului) formând blocul de Procesare, fiind necesară cate o aplicație pentru fiecare cameră in parte, aplicațiile sunt mult-threading și pot rula in paralel pe același PC (pentru a putea rula mai multe aplicații pe același PC se recomanda foloșirea unui computer cu un procesor cu mai multe nuclee – cu cat un procesor este mai puternic, cu atat aplicația va putea lucra in timp real la rezoluții mai mari și poate procesa cat mai multe cadre pe secundă). Accesand interfață principala a aplicației, avem acces in timp real la fluxul video și la rezultatele procesarii acestuia: un numar de inmatriculare dacă este recunoscut cu o precizie bună, este incadrat cu culoarea verde; o precizie scazuta o reprezintă numerele incadrate in galben, respectiv pentru numerele nerecunoscute incadrarea se face cu rosu.
Datele procesate sunt transmise către blocul final, Administrare și Raportare, bloc compus dintr-o aplicație cu interfață web, aplicație care se poate afla pe unul din computerele de Analiza sau pe un computer independent. Aceasta primește date de la blocul de analiză și le afișează intr-un mod usor de utilizat. Fiind dezvoltata de ingineri romani, solutia software Metrici ofera o rata de recunoaștere de peste 99% indiferent de condițiile de iluminare, capabilă sa recunoască in timp real numarul și frecvența mașinilor ce trec printr-un spațiu monitorizat, directia și viteza de deplasare samd.
O alternativă o reprezintă solutia de la Dahua, DH-DSS4004 – platforma distribuita de management a traficului, cu ajutorul careia se pot exporta fișiere excel pentru o analiza mai amănunțită. Avand un procesor quad core pe 64 de biti și o frecvența de lucru de 2.00Ghz pana la 2.42Ghz, este ideala pentru procesarea informațiilor primite de la mai multe camere IP LPR. Cu un spațiu de stocare de 1TB inclus, 4GB memorie RAM, construit sa functioneze 24/7, hot-swap (schimbarea unui hard disk sau a unei surse defecte fara a opri sistemul) reprezintă o alta soluție de analiză a informațiilor primite de la camerele ANPR [1].
Provocări întâlnite în managementul parcărilor:
Oprirea mașinii pentru a deschide manual bariera, ceea ce conduce la o eficiență scăzută
În cazul unui accident în parcare, nu exită înregistrări video care să surprindă momentul
Necesitatea angajării unei persoane dedicate, ceea ce conduce la costuri ridicate cu personalul
Soluția propusă este prezentata in figura nr.2.2
Figura nr.2.2 parcare inteligenta cu barrieră
Afișaj de exterior – afișează dacă mașina are dreptul de a intra sau nu in parcare, ajutând astfel șoferul prezentat in figura nr.2.3.
Panou informativ – afișează informații despre plăcuța de înmatriculare a mașinii.
Camera ANPR (Automatic Number Plate Recognition) – captează și recunoaște plăcuța de înmatriculare a mașinii pentru a deschide bariera.
Barieră – se deschide automat cu autorizație de la distanță și se închide automat dupa o scurtă perioadă de timp prestabilită.
Figura nr.2.3 afișaj exterior
Se oferă informații despre numerele autorizate din baza de date cu ajutorul unui panou informativ prezentat in figura nr.2.4
Figura nr.2.4 panou informativ
Pentru o intrare cu lățimea de 3-4 metri, camera ANPR poate detecta o mașină în mișcare aflată la o distanță de 3-8 metri cu ajutorul funcțiilor de analiză video și a buclelor inductive. Numărul plăcuței de înmatriculare este recunoscut prin snapshot. Datele plăcuței și imaginea de ansamblu a mașinii vor fi stocate în platformă pentru verificări ulterioare. Dacă numărul de înmatriculare se află în “lista albă”, bariera se va deschide în mod automat în mai puțin de 1 secundă cu ajutorul alarmei. După ce a fost recunoscut numărul plăcuței de înmatriculare, panoul informativ îl va afișa, ajutând astfel șoferul. Cu o rată de recunoaștere de peste 95% și control de la distanță, soluția ANPR reduce considerabil nevoia intervenției umane și crește gradul de eficiență asa cum se observa din figura nr.2.5.
Figura nr.2.5 sistem de recunoastere ANPR
Dacă funcția ANPR nu recunoaște numărul de înmatriculare, panoul informativ va afișa un mesaj cu faptul ca mașina nu are voie sa intre la fel ca si in figura nr.2.6
Figura nr.2.6 Elemente Cheie
2.3. Prezentare generală a sistemului de parcare ANPR
Sistemele ANPR (Automatic Number Plate Recognition) simplifica procesul de identificare a vehiculelor printr-o recunoaștere automată a numerelor de inmatriculare și ajuta la restricționarea anumitor vehicule in diverse aplicații.
Tehnologia ANPR are la bază convertirea capturilor din poze in text și compararea cu o baza de date.
Identificarea numerelor de inmatriculare ale mașinilor poate fi realizata cu orice cameră, dar se recomandă foloșirea echipamentelor specializate pentru o rată de recunoaștere ridicată. Alti factori importanti care au legatura cu rata de recunoaștere sunt viteza de deplasare și unghiul la care se afla mașina față de planul de vizualizare. In ceea ce priveste viteza, camerele de identificare dispun de un Shutter Electronic foarte rapid care facilitează captarea unei imagini mai clare asa cum se observă din figura nr.2.7.
Figura nr.2.7 cameră video de inaltă rezoluție
Poate fi implementat in:
Parcări: pentru control de acces eficient, siguranta, statistici de ocupare, utilizare, frecvența, masurarea timpului de stationare
Trafic: pentru control, monitorizare, gestionare, fluidizare, calcularea duratei transportului, verificarea respectarii orarului de mers, frecvența de trecere
Benzinării: pentru siguranta, reducere pierderi de costuri, monitorizare, verificare achitare factura
Aplicații custom: pentru gestiune flux lucru/documente, control sistem de cantarire corecta a autovehiculelor, s.a
Pentru ca un sistem ANPR sa functioneze corect, camera dedicata acestui scop necesita caracteristici specifice:
unghiul unde este montata, este foarte important, deoarce o camera montata la o inaltime prea mare nu poate vedea placuta de inmatriculare;
distanta dintre mașina și camera trebuie luata in calcul; trebuie aleasa o distanta in functie de viteza de deplasare a autovehiculelor;
prezenta sau absenta luminii este foarte importanta; fiind necesara o camera senșibila la iluminarea scazuta, cu lumina suplimentara pe timp de noapte – prezenta IR;
trebuie luate in calcul intenșitatea traficului precum și viteza; camera trebuie sa aiba suficient timp sa focuseze placuta de inmatriculare.
Pe langă camerele ANPR, pentru a avea un sistem complet este necesar un NVR (Network Video Recorder) pentru stocarea datelor și un soft de gestionare a datelor inregistrate (soft ce se instaleaza pe un PC/server dedicat). NVR-ul se alege in functie de numarul camerelor necesare, capacitatea de stocare (numar de HDD-uri suportate precum și capacitatea maxima a hard disk-urilor), latimea de banda și rezoluția la care se face inregistrarea [4].
De asemenea sistemul se foloseste de un server dotat cu Inteligența Artificială, pentru inbunătățirea recunoașterii numerelor de inmatriculare. Inteligența artificială poate fi considerata ca fiind acel domeniu al informațicii ce are ca obiectiv proiectarea sistemelor inzestrate cu anumite proprietati pe care in mod obisnuit le asociem inteligenței umane: ințelegerea limbajului, invațarea, raționamentul, rezolvarea problemelor, demonstrarea teoremelor, etc.[18].
Parcările inteligente sunt o soluție bună pentru rezolvarea problemei staționării automobilelor. Parcarea inteligentă anunță șoferii despre locurile libere de care dispune, permite rezervările de locuri pentru automobile, este ușor de găsit și oferă multe facilități, în dependență cu dotarea tehnologică de care dispune ea și localitatea în care se află.
Arhitectura unui sistem de parcare ANPR este prezentată schematic în figura nr. 2.8.
Figura nr.2.8 Model schematic pentru arhitectura sistemului de parcare ANPR
Parcările ANPR au la bază dotarea tehnologică modernă a spațiilor dedicate staționării automobilelor, prin care informațiile despre autorizatia de a intra in parcare sunt transmise către cetățeni.
Tehnologiile inteligente cu care sunt dotate fac diferența esențială între o parcare inteligentă și vechiul loc de staționare al automobilelor
Un sistem de parcare inteligentă este dotat cu tehnologii inteligente care includ:
sisteme de senzori dedicați de detecție din parcare,
server și baze de date de acces,
controlere de management a echipamentelor din parcări,
sisteme de afișaj digital,
rețele de acces și conexiune la echipamentele network,
aplicațile de accesare,
camera video pentru recunoaștere numere de inmatriculare,
porțile de intrare automatizate, etc.
Informația este colectată prin senzorii de detecție, camera video din parcări și alte mijloace tehnologice din interiorul parcărilor și se afișează pe panourile stradale, aplicațiile de pe telefoanele mobile, alte purtătoare informative accesibile cetățenilor [20].
2.4. Concluzii și avantajele sistemului de parcare cu ANPR
In această lucrare este prezentat sistemul automat de identificare a numerelor de inmatriculare a vehiculelor. Utilizarea sistemului. Rezultatele simulării arată că sistemul stie să detecteze și să recunoască plăcuța de înmatriculare împotriva diferitelor condiții de iluminare și poate fi pus în aplicare la intrarea într-o zonă foarte restricționată. Implementarea funcționează destul de bine, totuși, există încă loc de îmbunătățire. Camera folosită în acest proiect este senșibila la vibrații și ținte care se schimbă rapid datorită timpului de expunere lung. Robustețea și viteza sistemului pot fi inbunătațite dacă o camera foto cu rezoluție mare este utilizată.
Avantajele implementării sistemului
Eficiență de economisire
În timp ce instalarea unei porți de securitate grele este un factor eficient de descurajare și protecție împotriva intrușilor, este important să luați în conșiderare cât de ușor este pentru persoanele cărora doriți să le acordați acces – angajați, parteneri, vehicule de livrare – pentru a intra și ieși. La urma urmei, existența unui sistem de verificare manuală ar putea fi foarte consumatoare de timp și, de exemplu, dacă vehiculele dvs. de livrare se află într-un program strict logistic, se pot adăuga minute prețioase. Având un sistem ANPR în loc înseamnă că vehiculele pot fi admise în mod automat și în afara în cazul în care se potrivesc cu baza de date de plăcuțe de înmatriculare, fără ca oricine să efectueze controale manuale consumatoare de timp sau chiar trebuie să meargă în măsura în care staționează pe cineva bariera, care ar costa buget și resurse suplimentare.
Foarte sigur
Pe cât de stricte poți face procesele tale și la fel de atent ca o verificare manuală, nu există încă o eroare umană. Un număr sau o scrisoare incorecte pot duce la o încălcare gravă a securității. Folosind un sistem ANPR, obțineți o precizie de 99% atunci când citiți o plăcuță de înmatriculare, oferindu-vă o liniște care vă permite să vă bazați pe tehnologie pentru a detecta vehicule neautorizate și a le refuza intrarea.
Managementul resurselor
Nu numai că un sistem ANPR poate ajuta la gestionarea accesului la barierele și porțile dvs., dar vă poate ajuta, de asemenea, cu gestionarea eficientă a timpului și a resurselor. Urmărirea plăcuțelor de evidență reprezintă o modalitate eficientă și eficientă de a obține o vizibilitate mai mare în momentul în care angajații ajung și părăsesc sediul. Direct în sistemul dvs. de resurse umane, acest lucru poate duce la posibilitatea de a elimina orice probleme cu întârziere sau de a pleca devreme
Managementul parcarii
Combinată cu un sistem de management al parcării de ultimă oră, ANPR vă poate ajuta să gestionați mai bine fluxul de trafic și locurile de parcare în incinta dvs. În cazul în care un angajat sau un vizitator trebuie să-și mute mașina, ANPR însoțit de baza de date cu plăcuțe de înmatriculare facilitează identificarea vehiculului și a persoanei în care acesta aparține, ceea ce înseamnă că orice problemă se rezolvă mult mai rapid [19].
Capitolul 3.
Proiectarea modelului de parcare
3.1Descrierea proiectului realizat
În cadrul acestui capitol se va face prezentarea scopului, a modului de funcționare, componentele folosite pentru construirea sistemului de parcare cu recunoaștere numere de inmatriculare, asamblarea și programarea acestuia.
Tema acestui proiect este automatizarea unei parcări cu ajutorul camerei video și a softului de recunoaștere a numerelor de inmatriculare
Vehiculul odată ce este autorizat va intra pur și simplu in parcare fara alte manevre de deschidere ale barierei simplificand procedura și nefiind nevoie de angajați ca sa monitorizeze sistemul de parcare.
La pornirea sistemului linux al raspberry pi, se inițializează driverele de conexiune serială cu microcontrolerul Arduino Uno prin USB și programul de recunoaștere script.py care apelează funcțiile din blocul de cod functions.py. De asemenea codul arduino va face ca LCD-ul să afișeze in permanență pe ecranul LCD mesajul “Bună ziua!” prezentat in figura nr.3.1
Figura nr.3.1 LCD cu mesajul Bună ziua!
Programul de recunoaștere al raspberry pi preia poze de la cameră la un interval de cateva secunde pe care le suprascrie până când detecteaza un numar de inmatriculare pozele sunt salvate local și apoi sunt upload-ate online pentru acuratețe, imaginile fiind procesate pe un server dotat cu Inteligența Artificială folosind Machine Learning. Dacă numarul detectat se afla in baza de date a fișierului list.txt, calculatorul raspberry PI va comunica prin serial data cu microcontrolerul arduino uno care va afisa pe LCD mesajul “Bine ati venit! AR99KTA” prezentat in figura nr.3.2
Figura 3.2 LCD cu mesajul Bine ati venit! AR99KTA
iar softul microcontroller-ului arduino va acționa servomotorul prezentat in figura 3.3 și barierea se va deschide .
Figura 3.3 Servo motor MG90S
Dacă numărul de inmatriculare detectat nu se află in baza de date atunci pe LCD va fi afișat mesajul “Acces interzis! OT99COK” și bariera va ramane inchisă asa cum se observa prezentat in figura 3.4.
Figura 3.4 LCD cu mesajul Acces interzis OT99COK!
La ieșirea mașinii din parcare, aceasta va trece prin dreptul unui sensor ultrasonic prezentat in figura 3.5
Figura 3.5 Senzorul ultrasonic HCS-R04
care va deschide bariera și LCD-ul va afișa mesajul “La revedere!” asa cum se prezintă in figura 3.6
Figura 3.6 LCD cu mesajul La revedere!
Acestă parcare prezintă o serie de avantaje deoarece are aplicabilitate in diverse domenii cum sunt: parcări private, parcări de firme, supermarket-uri.
De aceea se poate experimenta cu opțiuni precum adaugarea de senzori de lumina, trimitere SMS cu număr de mașină, și poate fi folosit într-un număr impresionant de jocuri și aplicații practice.
Specificații ale parcării:
3.2 Arhitectura hardware
Schema bloc prezentata in fugura 3.7 este o reprezentare schematică simplă a unui sistem, prin blocuri funcționale, folosită pentru studiul principiilor de funcționare ale acestora, care permite o vedere de ansamblu asupra unei lucrări.
Figura 3.7 Schema bloc
Schema de dispunere a componentelor modelului realizată in programul Fritzing in care se pot vedea cum sunt așezate totalitatea componentelor ce alcătuiesc partea de comandă a modelului parcării este prezentată in Figura 3.8 [14]
Figura 3.8 Schema de dispunere a componentelor modelului
3.2.1.Arduino
Arduino, figura 3.9 este o platformă electronică open source bazată pe hardware și software ușor de utilizat.
De-a lungul anilor, Arduino a fost creierul a mii de proiecte, de la obiecte de zi cu zi la instrumente științifice complexe.
O comunitate mondială de producători, studenți, pasionați, artiști, programatori și profeșioniști s-au adunat în jurul acestei platforme open source, contribuțiile lor adăugându-se la o cantitate incredibilă de cunoștințe acceșibile, care pot fi de mare ajutor atât pentru începători, cât și pentru experți.
Arduino s-a născut la Ivrea Interaction Deșign Institute ca un instrument ușor de prototipare rapidă, destinat studenților care nu au un background în electronică și programare.
De îndată ce a ajuns la o comunitate mai largă, conșiliul Arduino a început să se schimbe pentru a se adapta noilor nevoi și provocări, diferențiind oferta sa de la plăcile șimple pe 8 biți până la produsele pentru aplicații IoT, imprimare 3D și mediu încorporat.
Toate plăcile Arduino sunt complet deschise, oferind utilizatorilor posibilitatea de a le construi în mod independent și, eventual, de a le adapta la nevoile lor specifice.
Figura 3.9 Placa Arduino Uno
Software de asemenea, este open-source și este în creștere prin contribuțiile utilizatorilor din întreaga lume.
Cateva exemple de proiecte care se pot realiza cu Arduino:
– senzor de alcool conectat la Arduino și acesta conectat la PC, atunci cand nivelul de alcool în aerul expirat depășește un anumit nivel prestabilit, computerul te va avertiza cand incerci sa postezi lucruri pe retelele de socializare.
– robot autonom care ocolește obstacole, controlat prin Bluetooth folosind telefonul mobil sau laptop-ul.
– se poate conecta la un arduino, senzor temperatură, senzor umiditate, senzor presiune atmosferică, placa de rețea Ethernet care transmite datele de mediu pe Google Docs, la fiecare 10 secunde.
– mâna robotică, bazată pe o manusă cu senzori de indoire și servomotoare.
– sistem bazat pe Arduino care monitorizează energia electrică consumată în casă.
Arduino Uno are o siguranță resetabilă care protejează porturile USB ale computerului de pantaloni scurți și supracurent.
Deși majoritatea calculatoarelor oferă o protecție internă proprie, siguranța oferă un strat suplimentar de protecție.
Dacă se aplică mai mult de 500 mA la portul USB, siguranța va întrerupe automat conexiunea până când scurtcircuitul sau suprasarcina vor fi eliminate.
Software-ul Arduino (IDE) include o bibliotecă Wire pentru simplificarea utilizării magistralei I2C, pentru comunicarea SPI se utilizează biblioteca SPI
3.2.2 Microcontroler ATmega328
Microcontrolerul este o structură electronică destinată controlului unui proces sau, al unei interacțiuni caracteristice cu mediul exterior, fără să fie necesară intervenția operatorului uman. Microcontrolerul incorporează o unitate centrală (CPU) și o memorie, împreună cu resurse care-i permit interacțiunea cu mediul exterior. Utilizarea lor este sinonimă cu ideea de control, microcontrolerele sunt utilizate masiv în robotică și mecatronică [12], [13].
Microcontrolerele sunt metoda preferată pentru dotarea unui robot cu inteligență datorită costurilor scăzute , cerințele de putere șimple (de obicei de la cinci la nouă V) și posibilitatea de a fi programate simplu. Odată programată și deconectat de la calculator microcontrolerul poate opera pe cont propriu.
Numele exact al acestui cip este ATMEGA328P-PU după cum se gasește imprimat pe partea de sus a cipului.
Pe un Arduino, microcontrolerul este componenta principală care face tot munca, când o schiță Arduino este încărcată în Arduino, ea este de fapt încărcată în memorie în interiorul cipului microcontrolerului. Microcontrolerul execută schița atunci când Arduino este alimentat sau resetat după programare.
ATmega328 pe Arduino Uno vine preprogramat cu un bootloader care permite încărcarea unui nou cod fără a utiliza un programator hardware extern, acesta comunică utilizând protocolul STK500 original .
Microcontrolerul ATmega328 prezentat in figura 3.10 oferă comunicație serială UART TTL (5V), care este disponibilă pe pinii digitali 0 (RX) și 1 (TX), suportă de asemenea comunicarea I2C (TWI) și SPI
Figura 3.10 Microcontroler ATmega328
Microcontrolerul este folosit în plăcile Arduino uno, Arduino nano și arduino micro, sisteme de control industrial, procesarea datelor digitale, măsurarea și manipularea semnalelor analogice, sisteme încorporate cum ar fi mașina de cafea, distribuitorul automat, sisteme de control al motorului, unități de afișare, sistem de interfață periferică, etc.[2]
Detalii tehnice:
-performanță bună, ofera un control în timp real.
-este alcătuit dintr-un convertor cu șase canale.
-este dotat cu sensor de temperatură, este alcatuit din 23 de pini.
-tenșiunea optimă de operare intre 1.8 și 5.5 volti, memorie flash de 32 de KB,
-viteza procesorului (MIPS) este 20, comparatoare avand valoarea 1, intervalul de temperatura -40 și +85 de grade.
Figura 3.11 Microcontroler ATmega328 configuratia pinilor
3.2.3 Servomotorul
Servomotorul asa cum se observa in figura 3.12 este un element component al unui sistem care funcțional implică poziții relative reglabile între anumite elemente componente ale sale si este comandat de un controller figura 3.13.
– servomotorul este elementul component care acționează direct sau indirect asupra elementelor componentecu poziții relative reglabile – -servomotorul poate avea poziție fixă, blocat pe sistem, în imediata lui apropiere sau poate fi conținut în subsistemul unui element cu poziție reglabilă
– puterea motorului servomotorului determină viteza de modificare a poziției relative și frecvența de modificare a poziției relative
– puterea motorului servomotorului este invers proporțională cu nivelul de precizie al servomotorului – soluția tehnică care definește servomotorul, implică soluții constructive simple, care funcțional, impun un consum redus de energie, o cinematică definită de mișcări lineare, circulare sau combinări ale acestora
– soluția tehnică care definește servomotorul are o arie largă de aplicabilitate, fiind concepută pentru o multitudine de sisteme, prin aceasta inducând soluțiile tehnice și constructive pentru sistemele în care este agreat funcțional, rezultatul global fiind soluții constructive compacte, modulate, interschimbabile, standardizate pentru servomotoare [5].
Figura 3.12 Servomotorul
Figura 3.13 Controller motor
3.2.4 Senzor ultrasonic HC-SR04
Figura 3.14Senzor ultrasonic HC-SR04
Senzorul ultrasonic HC-SR04 prezentat in figura 3.14 este unul dintre cei mai utilizați senzori pentru aflarea distanței. In special folosit pentru proiectele cu placi de dezvoltare Arduino, are avantaje față de senzorii analogici, necesitand doar pini I/O digitali și are imunitate mai mare la zgomotul din jur. Senzorul emite ultrasunete la o frecvența de 40000Hz care circulă prin aer, iar dacă intalnește un obstacol, acesta se va intoarce inapoi spre modul, astfel, luand in considerare viteza sunetului se poate calcula distanța până la obiect asa cum se observa in figura 3.15.
Figura 3.15 principiu funcționare senzor ultrasonic
Deoarece distanța până la obiect este determinată prin masurarea timpului de deplasare a undelor și nu prin intensitatea sunetului, senzorii ultrasonici sunt excelenti pentru eliminarea interferențelor de fundal.
În principiu, toate materialele care reflecta sunetul pot fi detectate, indiferent de culoarea lor. Chiar și materialele transparente sau folii subtiri nu reprezintă nici o problemă pentru un senzor ultrasonic.
Senzorii ultrasonici sunt potriviti pentru distante de la 20 mm până la 4 m și deoarece masoara timpul de deplasare, ei pot efectua o masuratoare cu precizie ridicata. Unii dintre senzorii pot sa determine semnalul cu o precizie de mai puțin de 3 mm.
Senzorii ultrasonici pot sa vada prin aer plin de praf și prin vapori de cerneala, depuneri subțiri pe membrana senzorului nu afecteaza funcționarea acestuia.
Caracterișitici:
Tensiune de alimentare: 5V
Curent consumat: 15mA
Distanta de funcționare: 2cm – 4m
Unghi de masurare: 15 grade
Eroare de doar 3mm
Durata semnal input: 10us
Dimensiuni: 45mm x 20mm x 15mm
Senzorul utrasonic lucrează pe un principiu similar cu radarul sau sonarul care evalueaza caracteristicile unei ținte prin interpretarea respectivelor valori de la undele sonore.
Acesta genereaza sunete de inalta frecvență și evalueaza ecoul care este recepționat inapoi de senzor, apoi calculează intervalul de timp dintre trimiterea semnalului și primirea ecoului pentru a determina distanța față de un obiect.
Aceasta tehnologie poate fi utilizată pentru masurarea vitezei și a direcției [8].
3.2.5 RaspberryPi 3
Raspberry Pi prezentat in figura 3.16 este o serie de SBC (Single-board computer) de dimenșiunile unui card de credit. Este inspirat de BBC Micro și produs în UK de către Raspberry Pi Foundation. Scopul a fost acela de a crea un dispozitiv cu costuri reduse care să îmbunătățească abilitățile de programare și înțelegerea hardware la nivel preuniversitar [15].
Detalii tehnice:
SoC: Broadcom BCM2837
CPU: 4× ARM Cortex-A53, 1.2GHz
GPU: Broadcom VideoCore IV
RAM: 1GB LPDDR2 (900 MHz)
Networking: 10/100 Ethernet, 2.4GHz 802.11n wireless
Bluetooth: Bluetooth 4.1 Clasșic, Bluetooth Low Energy
Storage: microSD
GPIO: 40-pin header, populated
Ports: HDMI, 3.5mm analogue audio-video jack, 4× USB 2.0, Ethernet, Camera Serial Interface (CȘI), Display Serial Interface (DȘI)
Figura 3.16 RaspberryPi
3.2.6 Panou LCD
Afișajul cu cristale lichide din figura 3.17 (engleză Liquid Crystal Display, prescurtat LCD) este un dispozitiv de afișare pentru litere, cifre, grafică și imagini, fiind constituit dintr-o matrice de celule lichide care devin opace sau își schimbă culoarea sub influența unui curent sau câmp electric.[1] Din punct de vedere fizic fenomenul se explică prin proprietatea cristalelor lichide de a influența direcția de polarizare a luminii atunci când ele sunt puse sub o anumită tenșiune electrică. Afișajele cu cristale nu produc ele însele lumină, și au un consum de energie foarte mic. Un afișaj LCD se prezintă sub forma unui ecran afișor (display) care este comandat electronic printr-un decodificator de caractere numerice și alfabetice. Este folosit frecvent în construcția ceasurilor digitale (ceasuri care au în locul acelor arătătoare un afișor de tip LCD), la afișările de date la mașini CNC, mașini de uz casnic, inscripții și semnalizări electronice.
Cristalele lichide sunt, în cazul de față, combinații chimice de natură organică aflate în stare lichidă. Ele au proprietatea de a putea fi comandate de o corespunzătoare tenșiune electrică, astfel încât își ordonează moleculele trecând de la stare „transparentă” la stare „netransparentă”. Concret, este vorba de o polarizare electrică a unor molecule lichide care în contrast cu restul „câmpului” formează o imagine vizibilă.
Figura 3.17 Panou LCD tip 16X2
Deoarece panourile LCD nu produc nici o lumină proprie, ele necesită lumină exterioară pentru a produce o imagine vizibilă. Într-un tip de transmisie LCD, această lumină este furnizată în partea din spate a stivei de sticlă și se numește iluminare din spate. În timp ce afișajele cu matrice pasivă nu sunt de obicei în spate (de exemplu, calculatoare, ceasuri de mână),. În ultimii ani (1990-2017), tehnologiile LCD cu lumina de fundal au apărut la companii de iluminat cum ar fi Philips, Lumileds (o filială Philips) și multe altele [7].
Pentru comunicația cu modulul LCD, se utilizează mai mulți pini, transferul datelor fiind realizat în mod paralel a celor 8 biți.
Controllerul HD44780 conține două registre pe 8 biți: registrul de date și registrul de instrucțiuni. Registrul de instrucțiuni e un registru prin care LCD primește comenzi (shift, clear etc). Registrul de date este folosit pentru a acumula datele care vor fi afișate pe display. Când semnalul Enable al LCD-ului este activat, datele de pe pinii de date sunt puse în registrul de date, apoi mutate în DDRAM (memoria de afișaj, Display Data RAM) și afișate pe LCD. Registrul de date nu este folosit doar pentru trimiterea datelor către DDRAM ci și către CGRAM, memoria care stochează caracterele create de către utilizator (Character Generator RAM). Display Data Ram (DDRAM) stochează datele de afișare, reprezentate ca și caractere de 8 biți prezentate in figura 3.18. Capacitatea extinsă a memoriei este de 80 X 8 biți, sau 80 de caractere [21].
Figura 3.18 Codurile ASCII care pot fi utilizate pentru afișare
3.3 Proiectarea și realizarea modelului
Asamblarea modelului parcării constituie conectarea partilor mecanice și electrice intre ele asa cum este prezentata in figura 3.19 si figura 3.20 .
Figura 3.19 Asamblare model parcare
Figura 3.20 Asamblare model parcare
Pentru realizarea primului pas avem nevoie de urmatoarele componente: cutia din lemn prelucrată cu gaurile aferente, baza din lemn a parcării taiată la dimensiune și cu traseele desenate, silicon pentru imbinarea cutiei de lemn, bandă adezivă de diferite culori și dimensiuni, pistol cu baghete de lipit la cald, placa raspberry pi, camera video, placa arduino, servomotorul GS90S, ecranul LCD16X2, breadboard arduino, accumulator extern și cabluri electrice.
Motorul folosit este un servomotor SG90S, foarte des întalnit, având o tensiune de lucru de 4.8-6 V .
Fixarea servomotorului se realizează cu ajutorul a două șuruburi prin prinderea suportului principal de placa frontală a cutiei din lemn.
Pasul următor presupune fixarea camerei video a plăcii raspberry prin șuruburi, in interiorul cutiei pe panoul frontal din lemn, de asemenea pe placa frontală a cutiei am decupat o gaură pentru ecranul LCD pe care l-am fixat cu hotglue, iar pe fundul cutie am prins suportul care conține placa arduino uno și breadboard-ul
În finalul acestei operatiuni de asamblare este fixarea minibreadboardului cu senzorul de ultrasunete prezentat in figura 3.21 și conectarea la acumulatorul extern sau dupa caz la sursa de alimentare 5V și minim 2A.
Figura 3.21 Proces asamblare senzor ultrasunete
Asamblarea părților electronice este în principal conectarea modulelor electronice împreună și cablarea rezultatul final fiind afisat in figura 3.22.
Modulele electronice utilizate includ modulul de cameră video, modulul senzor ultrasonic, modulul raspberry pi și comanda de control bazată pe arduino.
Figura 3.22 Rezultatul final parcare automat
3.4 Arhitectura software
3.4.1 Arhitectura software Arduino
Pornind de la aceste cerințe s-a realizat arhitectura software a modelului de parcare folosind programul arduino conform celei din figura nr.3.23, bazat pe limbajul de programre C (din familia de limbaje de programare imperative, cele mai raspandite, bazat pe instuctiuni „Fortran, Cobol, Basic, Pascal, Ada, Modula-2, C, C++, C#, Java”. Conceptia lor este bazata pe arhitectura traditionala von Neumann) [25]
Figura nr..3.23 Arhitectura software a modelului
Funcția MAIN
În cadrul funcției MAIN s-a implementat structura de bază a programului descrisă prin intermediul schemei logice din figura nr.3.23 Funcția începe cu un set de inițializări și continuă cu Acces meniu. Dacă sistemul se afla în repaus se va apela funcția MENIU, prin intermediul căreia se va stabili modul de funcționare al modelului în modul automat .
Meniul. Funcția MENIU.
La realizarea meniului s-a apelat la crearea a două funcții:
funcția MENIU care se ocupă de realizarea propriu-zisă a meniului, generarea variabilelor și afișarea informației pe LCD;
Funcția MENIU
Funcția AUTOMAT
Funcția AUTOMAT se folosește pentru controlul automat al sistemului de parcare.
Practic în ordinograma din figura nr.3.24 se folosește instrucțiunea de aplicare a setărilor generate de meniu.
Figura nr.3.24 Ordinograma funcției AUTOMAT.
Proiectarea software a parcării cuprinde realizarea diagramei de secventa a parcării care este realizată cu programul code2flow, disponibil în mod gratuit pe internet [22].
În cadrul acesteia sunt cuprinse pe schema bloc ansamblul tuturor acțiunilor desfășurate în parcare, în funcție de comenzile primite de la arduino.
În prima fază parcarea inteligentă este în așteptarea unui autovehicul, stare la care revine după fiecare ciclu de parcare.
După ce Raspberry Pi verifică numelele de inmatriculare iar numarul se afla in baza de date, acesta comunica cu microcontrollerul arduino care dă comanda servomotorului să ridice bariera, autovehiculul intră în parcare.
Dacă bariera nu se ridică trebuie verificată conexiunea dintre servomotor și arduino, probabil parcarea prezintă erori și necesită mentenanță.
În cazul în care numarul de inmatriculare nu se afla in baza de date, bariera nu se va ridica.
La iesirea din parcare daca senzorul ultrasonic detecteaza un autovehicul , arduino da comanda servomotorului sa ridice bariera.
Pentru a întețelege mai bine acest proces, am adăugat figurile nr.3.25,3.26, 3.27, 3.28, 3.29, 3.30, 3.31, în care este proiectata diagrama de secventa a acestui proces din parcare.
Figura 3.25 Diagrama de secvență
Figura 3.26 Diagrama de secvență
Figura 3.27 Diagrama de secvență
Figura 3.28 Diagrama de secvență
Figura 3.29 Diagrama de secvență
Figura 3.30 Diagrama de secvență
Figura 3.31 Diagrama de secvență
3.4.2 Arhitectura software Raspbbery Pi
Parcarea automată este în așteptarea identificarii numarului de inmatriculare, care se face cu ajutorul camerei video ce face poze la fiecare secunda si le stocheaza local, apoi le face upload pe un server dotat cu inteligenta artificiala pentru o acuratete sporita, in cazul in care nu are acces la intenet detectia se face cu ajutorul softului care se bazeaza pe aproximarea numerelor (metoda mai putin performanta)
După ce camera video din fața barierei detectează un numar de inmatriculare minicalculatorul Raspberry Pi verifică numelele de inmatriculare acesta transmite semnalul la microcontroler in functie de numarul identificat daca se afla sau nu in baza de date pentru a deschide bariera si afisare mesaj aferent sau a nu deschide bariera cu mesajul aferent afisat pe LCD.
Mai jos este descrisa schema logica (figura 3.32) a intreg sistemului realizat cu programul DRAW.io [23].
Figura 3.32 Schema logica a procesului executat in parcare
3.4.3Funcționarea modelului proiectat
Funcționarea modelului proiectat pentru îndeplinirea funcțiunilor necesare specificate anterior pentru o parcare inteligentă, este prezentată după cum urmează:
Detectarea stării de acces permis sau interzis in parcare
Într-o parcare reală detecția stării de acces se face, cu ajutorul unei camerei video care citeste numerele de inmatriculare și este conectata la un calculator ce poate fi conectat la un server dotat cu inteligența artificiala pentru a analiza și procesa imaginiile primite.
În modelul realizat de parcare detectarea stării de acces a autovehiculelor in parcare se realizează cu ajutorul camerei video montată pe placa din față a cutiei modelului. De asemenea, în spatele barierei de acces de la intrarea parcării se pune un sensor cu ultrasunete pentru a detecta vehiculele care ies din parcare.
Acest sensor ultrasonic are rol de comutator în modelul proiectat și funcționează asemănător unor senzori dintr-o parcare reală.
La ieșire autovehiculului in dreptul barierei, vehiculul acoperă senzorul iar acesta masoară distanța dintre semnalul sonor emis de emitor și primit de receptor calculand cu ajutorul formulei distanța inmparțit la 2 și inmulțit cu viteza sunetului.
Din punct de vedere electric, senzorul este în permanență alimentat. pinul de triger pus la perioada scurta pe LOW pentru a așigura un semnal de HIGH pur, cat timp pinul de triger este pe high se emit ultrasunete, emitem ultrasunete timp de 10 microsecunde, oprim emisia, măsuram cât timp durează pană se intorc undele de sunet, distanța/2 (masurata dus-intors) și imulțita cu viteza sunetului (0.034cm/microsecundă). Deci, impulsurile sonore au transformat mărimea fizică de intrare, distanța undei sonore, într-o mărime electrica de ieșire, mărime ce poate fi măsurata, prelucrată și afișată.
Deci, prin instalarea senzorului ultrasonic se poate realiza funcția de detectare a stării de ocupat a barierei la ieșirea din parcare din modelul prezentat, microcontrolerul se sesizează de această schimbare de stare.
Afișarea de date și informații despre numerele de inmatriculare și accesul in parcare
Afișarea de date despre numărul de inmatriculare și accesul in parcare la modelul proiectat se realizează prin montarea unui modul LCD 16×2 de afișaj, instalat lângă intrarea parcării
Afișajul LCD are ca și rol: afișarea informațiilor utile în timpul funcționării sistemului fiind controlat prin microcontroler
După prelucrarea datelor primite de la senzor și modulul raspberry pi, microcontrolerul crează semnale de ieșire spre afișajul LCD. Afișajul LCD primește aceste date și, afișând datele despre numărul de inmatriculare și accesul in parcare.
Accesul controlat a vehiculelor în parcare
Accesul controlat al autovehiculelor în modelul de parcare se face prin bariera de acces instalată în fața intrării în parcare.
Închiderea sau deschiderea barierei de la intrarea parcării se execută cu ajutorul unui servomotor instalat pe placa din față a cutiei modelului. În modelul proiectat. s-a folosit pentru acționarea automată a barierei de acces un servomotor tip metalic digital MG90S, de dimensiuni reduse, dar cu o putere mare de ieșire
Acest servomotor permite un control precis al poziției unghiulare sau liniare, precum și un control al vitezei și accelerației.
Servomotorul acționează bariera prin coborârea cumpenei în poziție orizontală sau ridicarea la un unghi de 90°, astfel accesul autovehiculelor în parcare este oprit sau permis.
Pentru comanda rotirii motorului se folosesc două borne, conectate la 2 pini de la Arduino. Prin intermediul acestor borne se poate da sensul de rotație al motorului. Pentru a funcționa motorul, una din borne va trebui să primească „0 logic”, iar cealaltă „1 logic”.
În spatele barierei s-a instalat un senzor de detecție de prezență a autovehiculului.
În mod obișnuit, poziția barierei este închisă. Când în dreptul barierei soseste un autovehicul, camera video citește numărul de inmatriculare și compară cu baza de date salvată in programul raspbberi pi , dacă numarul de inmatriculare se află in baza de date accesul este permis și bariera se va deschide afișând pe ecranul LCD un mesaj de bine ați venit NRinmatriculare, in cazul in care numarul nu se află in baza de date atunci bariera va ramane inchisă afișandu-se pe ecranul LCD mesajul Acces interzis NRinmatriculare.
Când o mașină iese din locul de parcare și ajunge lângă barieră, senzorul ultrasonic instalat în spatele barierei detectează prezența vehiculului și microcontrolerul comandă deschiderea barierei. Vehiculul părăsește parcarea și bariera se închide.
Și în parcările reale acționarea barierelor de acces se face automatizat, cu motoare acționate controlat prin soft și controlere.
3.4.4 Testarea funcționării modelului
Testarea modelului presupune verificarea funcționării fiecărei funcții în parte și per ansamblu. Se va verifica existența în meniu a funcțiilor și se va testa executarea corectă a funcțiilor.
Modul de funcționare al modelului proiectat este controlat și comandat prin microcontroler, prin codurile sursă instalate pe mediul de dezvoltare Arduino UNO și prin placa Raspbbery PI.
Codurile sursă trebuie să fie instalate în memoria program a microcontrolerului și cel al raspberry pi. Pentru aceasta, în primul rând trebuie să se conecteze microcontrolerul de programat la PC-ul/laptopul pe care există codurile sursă, problemă care se rezolvă cu un simplu cablu USB în cazul modulelor de tipArduino și miniPC-ului Raspbbery
După realizarea conexiunii cu microcontrolerul se dă un click pe butonul de programare din ferestra de lucru a mediului de dezvoltare, iar acesta face apoi totul, transformă codurile sursă în limbajul microcontrolerului și apoi îl instalează în memoria program .
Aceste condiții îndeplinite, se poate trece la activarea funcțiunilor menționate anterior, pentru simularea funcționării unei parcări automatizate reale în modelul proiectat.
Alimentarea modelului conduce la inițializarea sistemului în urma căreia va apărea de LCD mesajul „Bună ziua!” dupa cum se observa in figura 3.25.
Figura 3.25. Inițializarea sistemului
Prin activarea meniului începe derularea funcțiunilor sistemului: de detecție, de control al parcării și afișarea pe display, de semnalizare a accesului, de control al acționarii servomotorului la barieră.
Procesul se execută conform setărilor efectuate.
Bariera este coborata, pe LCD este afisat mesajul de Bună ziua!(figura 3.26) Iar camera video face poze la un anumit interval de timp și identifică numarul de inmatriculare.
Figura 3.26 Bariera coborata.
Accesul este permis și afișat pe ecranul LCD, in cazul in care numărul de inmatriculare este introdus in baza de date asa cum se observa in figura 3.27.
Figura 3.27 Accesul permis în parcare
Accesul este interzis și afisat pe ecranul LCD, in cazul in care numarul de inmatriculare nu este introdus in baza de date dupa cum se poate observa in figura nr. 3.28.
Figura 3.28 Accesul interzis in parcare
La ieșirea din parcare autovehiculul trece prin dreptul senzorului cu ultrasunete și bariera se deschide afisând pe ecranul LCD mesajul de La revedere! Se poate vedea in figura 3.29
Figura 3.29 Ridicarea automată a barierei la ieșirea din parcare
Se poate spune că după o proiectare completă în care s-au realizat părți mecanice, părți electronice și părți software, s-a asamblat întreg sistemul și s-a realizat partea de testare.
Capitolul 4.
Concluzii
Lucrarea de licență urmărește implementarea tehnologiilor inteligente pe un model de parcare la scară în miniatură. S-a realizat astfel un model de parcare automatizată, dar care funcționează, îndeplinește aceleași funcțiuni și furnizează informații similar cu un sistem real de parcare inteligentă dotată cu sistem de identificare a numerelor de inmatriculare.
Lucrarea începe cu prezentarea teoretică generală a sistemului de parcare automatizată și a categoriilor de sisteme funcționale necesare pentru implementarea unui asemenea sistem.
În cadrul prezentării teoretice s-a explicat care este tehnologia de detectare numerelor de inmatriculare a vehiculului și care sunt tipurile de senzori și motoare utilizate, cât și modul cum au fost implementate sistemele de parcare cu sisteme ANPR în lume.
Practic, s-au identificat care sunt elementele pe care trebuie să le conțină modelul de realizat și funcțiunile minime de bază pe care trebuie să le îndeplinească, astfel încât comportarea acestuia să fie cât mai apropiată de funcționarea reală a tehnologiilor implementate dintr-o parcare reală.
Proiectarea modelului s-a executat în mai mulți pași.
S-a realizat placa suport de montaj a modelului și schița parcării impreuna cu cutia de control a sistemului.
Pe placa suport s-au montat componentele mecanice și electronice ale modelului, necesare pentru funcționarea și simularea unui sistem de parcare automatizată.
După montajul componentelor mecanice și electronice ale modelului s-a trecut implicit la realizarea unei părți de automatizare. Soluția aleasă pentru această parte este formată dintr-un sistem cu microcontroler și un șitem de calculator bazat pe raspberry pi din electronica aferentă comenzii elementelor de execuție. Datorită ușurinței de utilizare s-a ales folosirea platformei Arduino. Comanda motorului care acționează partea mecanică a fost efectuată cu ajutorul unor drivere electronice specifice. Important este faptul că sistemul a fost dezvoltat prin utilizarea unor senzori de prezenta și a unei camera video care să permita deschiderea barierei parcării.
Totodată, partea hardware a fost dotată cu elemente specifice interfeței om-mașină, formată din LCD si calculatorul raspberry cu programul sau de rulare python.
Proiectarea software a sistemului a pornit de la programarea modulului Arduino și a sistemului linux al miniPC-ului raspbbery. Prin utilizarea elementelor electronice avute la dispoziție s-a realizat un meniu cu ajutorul căruia se pot controla toate funcțiile pe care le are de simulat modelul.
Partea software s-a continuat cu implementarea funcțiilor stabilite pentru modelul luat în considerare, funcții care au rolul de a comandă elementele de execuție, de a urmări senzorii de prezență și de a lua decizii în consecință.
Ultima etapă a fost aceea de verificare a funcționării modelului. S-au testat toate meniurile și submeniurile implementate și s-au prezentat imagini demonstrative a funcționării acestora.
Analizând cele prezentate, se poate spune că proiectul și-a atins scopul. Au fost implementate toate funcțiile de bază ale sistemului, iar acestea funcționează în condiții corecte.
În plus se poate spune că pe durata realizării sistemului s-au atins diverse noțiuni teoretice și practice de utilizare a microcontrolerelor, software, tehnologii de senzori, etc.
Prin realizarea și punerea în funcție a modelului se demonstrează încă o data că sistemele de parcare automatizată aduc eficiență și sunt performante în condiții de trafic aglomerat, prin tehnologiile de ultimă generație pe care le folosesc.
Modelul realizat se poate folosi în activitatea didactică sau în scop demonstrativ pentru promovarea sistemului de parcare automatizat.
Bibliografie
VonMag.ro Blog Solutii Inteligente https://www.vonmag.ro/blog/articol/solutii-pentru-lpr-license-plate-recognition
MICROCHIP. http://www.microchip.com/wwwproducts/en/ATmega328, (01.03.2017).
Sisteme LPR (Licence Plate recognition) http://solutiipc.ro/sistemele-lpr-license-plate-recognition/
Sisteme video LPR Timisoara http://edigrup.ro/sisteme-video-lpr/
Servomotor Wikipedia https://ro.wikipedia.org/wiki/Servomotor
Managementul parcărilor cu ANPR https://kmw.ro/tehnic/despre-hdcvi/14-solutii-tehnice/127-managementul-parcărilor-cu-anpr
Wikipedia LCD https://ro.wikipedia.org/wiki/Afi%C8%99aj_cu_cristale_lichide
Senzor ultrasonic HC-SR04 https://cleste.ro/senzor-ultrasonic-hc-sr04.html
Recunoașterea automata a numerelor de inmatriculare auto https://www.elko.ro/stiri/recunoașterea-automata-a-numerelor-de-inmatriculare-auto
Qadri, M.T. & Asif, Muhammad. (2009). Automatic Number Plate Recognition System for Vehicle Identification Using Optical Character Recognition. 335 – 338. 10.1109/ICETC.2009.54. https://www.researchgate.net/publication/224565257_Automatic_Number_Plate_Recognition_System_for_Vehicle_Identification_Using_Optical_Character_Recognition
http://imagoromaniae.ro/articole/infrastructura-urban%C4%83-la-cump%C4%83na-secolelor-xix-xx.html
Molnar-Matei, F., Sisteme încorporate, notițe de curs, 2016
Stanciu, I.R., Molnar-Matei, F., Sisteme de monitorizare și control în timp real, Editura Eurostampa, Timișoara 2013, ISBN 978-606-569-542-9
Software proiectare electronică, http://fritzing.org/home/
Raspberry Pi https://ro.wikipedia.org/wiki/Raspberry_Pi
Arduino:electronica și programare https://sites.google.com/site/arduinoelectronicașiprogramare/
Automatic number -plate recognition http://ticketchoice.blogspot.com/2018/02/automatic-number-plate-recognition.html
Titus Slavici, Șimina Maris, Mihai Benga, Loredana Ularu-Programarea logica și inteligența artificiala. Editura Fundatiei pentru cultura și invatamant „Ioan Slavici”
5 Avantaje in folosirea ANPR Posted onSeptember 19,2018 by PureDigital https://centuryfireandsecurity.co.uk/2018/11/15/anpr-car-parking-stem-advantages/
ZbioSecurity Parking Management System https://www.zkteco.com/en/scheme_detail/9.html
Îndrumator laborator microcontrolere ARDUINO-Sebastian Sabou https://biblioteca.utcluj.ro/files/carti-online-cu-coperta/341-7.pdf
Aplicatia Code2Flow https://code2flow.com/app
Aplicatia Draw.io https://www.draw.io/#G10E2FaG0GqlwYHgO2_TduInI9_MFGFy28
Primaria Timisoara face “parcari inteligente” https://evz.ro/primaria-timisoara-face-parcari-inteligente-mii-de-locuri-vor-afla-de-pe-telefoane-unde-e-liber.html
H. Ciocârlie; Universul limbajelor de programare. Ed. A 2-a rev. – Timișoara: Orizonturi Universitare, 2013,
Anexa 1.
Codul sursă Arduino
//biblioteca servo
#include <Servo.h>
//biblioteca lcd
#include <LiquidCrystal.h>
//obiectul servo
Servo servo;
//obiectul lcd, setat pe pinii pe care e pus și la arduino
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
//functie care citeste distanta
void read_distance(void);
//functie care afișează pe display și deschide sau inchide bariera
void manage_display(void);
//variabila pentru distanta
int distance;
//variabila in care tinem minte cand am citit ultima data distanta
uint64_t last_read;
//variabila in care tinem minte datele primite de la rapsberry pi
String s;
//functia setup care ruleaza o data, la inceput, cand arduino primește curent
void setup() {
//pornim comunicarea seriala cu raspberry pi
Serial.begin(9600);
//initializam lcdul
lcd.begin(16 , 2);
//initializam servo-ul pe pinul 10
servo.attach(10);
//coboram bariera
servo.write(0);
//golim lcdul de eventuale caractere ramase de dinainte
lcd.clear();
//0, 0 inseamna primul caracter de pe linia 1
lcd.setCursor(0, 0);
//afisam bună ziua pentru inceput
lcd.print(" Bună ziua!");
//pinul de trigger de la ultrasonic
pinMode(9, OUTPUT);
//pinul de echo de la ultrasonic
pinMode(8, INPUT);
}
//functia loop ruleaza la infinit
void loop() {
//golim bufferul vechi de date
s = "";
//dacă sunt date de citit de la raspberry pi
while (Serial.available()) {
//citim datele caracter cu caracter
s += Serial.read();
//asteptam 5ms dupa urmatorul caracter
delay(5);
}
//citim distanta
read_distance();
//verificam dacă trebuie sa afisam ceva pe display sau sa deschidem bariera
manage_display();
}
//functie care citeste distanta
void read_distance() {
//citim distanta o data la 200ms pentru a avea timp sa și citim date de la raspberry pi
if (millis() – last_read < 200)
return;
//pinul de trig pus o perioada scurta pe LOW pentru a așigura un semnal de HIGH pur
digitalWrite(9, LOW);
//10microsecunde sunt suficiente
delayMicroseconds(10);
//cat timp pinul de trig este pe high se emit ultrasunete
digitalWrite(9, HIGH);
//emitem ultrasunete timp de 10microsecunde
delayMicroseconds(10);
//oprim emișia
digitalWrite(9, LOW);
//masuram cat timp dureaza pana se intorc undele de sunet
int duration = pulseIn(8, HIGH);
//distanta/2(ca e masurata dus-intors) și imultita cu viteza sunetului (0.034cm/microsecundă)
distance = (duration / 2) * 0.034;
//am terminat de citit distanta
last_read = millis();
}
//functie care afișează pe display și deschide bariera
void manage_display() {
//o mașina vrea sa iasa
if (distance < 10 and distance > 0) {
//deschidem bariera
servo.write(90);
//golim lcdul de eventuale caractere ramase de dinainte
lcd.clear();
//0, 0 inseamna primul caracter de pe linia 1
lcd.setCursor(0, 0);
//afisam mesajul de plecare
lcd.print(" La revedere!");
//asteptam 2secunde
delay(2000);
//inchidem bariera
servo.write(0);
//golim lcdul de eventuale caractere ramase de dinainte
lcd.clear();
//0, 0 inseamna primul caracter de pe linia 1
lcd.setCursor(0, 0);
//inapoi la "Bună ziua!"
lcd.print(" Bună ziua!");
} else if (s.length()) {//s-au primit date de la raspberry pi
//pe ultimul caracter din setul de date avem 1 dacă mașina are voie in parcare și 0 dacă nu are voie
bool valid = (s[s.length() – 1] == '1');
//aici tinem minte numarul mașinii
char number[16];
//extragem numarul mașinii din setul de date
s.toCharArray(number, s.length());
//mașina are accesul permis
if (valid)
servo.write(90);//deschidem bariera
//golim lcdul de eventuale caractere ramase de dinainte
lcd.clear();
//0, 0 inseamna primul caracter de pe linia 1
lcd.setCursor(0, 0);
//dacă mașina are accesul permis
if (valid)
lcd.print("Bine ati venit!");//afisam mesajul de intrare
else//dacă nu are acces
lcd.print("Acces interzis!");//afisam un mesaj de negare a accesului
//centrat pe linia 2
lcd.setCursor((17-s.length())/2, 1);
//afisam numarul mașinii
lcd.print(number);
//asteptam 2secunde
delay(2000);
//inchidem bariera
servo.write(0);
//golim lcdul de eventuale caractere ramase de dinainte
lcd.clear();
//0, 0 inseamna primul caracter de pe linia 1
lcd.setCursor(0, 0);
//inapoi la "Bună ziua!"
lcd.print(" Bună ziua!");
}
}Anexa 2
Codul sursa aferent placii Rasberry Pi
Fișierul functions.py
from openalpr import Alpr
from time import sleep
import pygame
import pygame.camera
import requests
import base64
import json
#secret key pe linkul asta
#https://cloud.openalpr.com/cloudapi/
#functie care analizeaza imaginea
def analyse_image (IMAGE_PATH):
returned = [[], []]
#aici setezi key-ul
SECRET_KEY = 'sk_7eefadb7a7d50ff6ce4ef521'
#regiunea europe, restul folderelor raman asa
alpr = Alpr ("eu", "runtime_data/openalpr.conf", "runtime_data")
#primele 3 numere gasite sunt valide
alpr.set_top_n(3)
#recunoașterea imaginii
results = alpr. recognize_file(IMAGE_PATH)
#dacă am gasit un numar
if len(results['results']):
#adaugam numerele gasite offline la solutii
for r in results['results'][0]['candidates']:
returned[0].append(r['plate'])
#cautam numere și online
with open (IMAGE_PATH, 'rb') as image_file:
img_base64 = base64.b64encode(image_file.read())
url = 'https://api.openalpr.com/v2/recognize_bytes?recognize_vehicle=1&country=eu&secret_key=%s' % (SECRET_KEY)
r = requests.post(url, data = img_base64)
if len(r.json()['results']):
i = 0
#adaugam primele 3 variante gasite online
for r in r.json()['results'][0]['candidates']:
i = i + 1
if i > 3:
break
returned[1].append(r['plate'])
return returned
#functie care face poza
def take_image(IMAGE_PATH):
pygame.camera.init()
#locatia camerei și rezoluția
cam = pygame.camera.Camera("/dev/video0",(1920, 1080))
sleep(0.1)
cam.start()
sleep(0.1)
img = cam.get_image()
cam.stop()
pygame.image.save(img, IMAGE_PATH)
Fișierul script.py
from functions import analyse_image, take_image
from time import sleep
from datetime import datetime
import usb.core
import usb.util
import os
#dev = usb.core.find(idVendor=0xfffe, idProduct=0x0001)
#sterge driverul de ch341 pentru arduino ca sa poata comunica din python
os.system('sudo rmmod ch341')
#gaseste deviceurile de pe usb
dev = usb.core.find()
#de eroare dacă nu gaseste
if dev is None:
raise ValueError('Device not found')
#seteaza o configuratie generala
dev.set_configuration()
cfg = dev.get_active_configuration()
intf = cfg[(0, 0)]
ep = usb.util.find_descriptor(
intf,
custom_match = \
lambda e: \
usb.util.endpoint_direction(e.bEndpointAddress) == \
usb.util.ENDPOINT_OUT)
#dacă nu reuseste sa il conecteze da eroare
assert ep is not None
#ruleaza la infinit
#sau pana da eroare :))
while True:
numbers = []
#–FOARTE IMPORTANT, in fișierul cu numerle la care se deschide bariera
#–list.txt
#–dupa ultimul numar trebuie neaparat enter
#–și numerele se pun fara spatii intre cifre și litere
#–adica BZ14RTF
#citim numerele la care se deschide bariera
with open('list.txt' ,'r') as file:
numbers = file.readlines()
#face poza
take_image('image.jpg')
#o analizeaza
result = analyse_image('image.jpg')
match = 0
best = ''
#afisare a numelor gasite
print("offline results")
if len(result[0]) == 0:
print("none")
for a in result[0]:
print(a)
print("online results")
if len(result[1]) == 0:
print("none")
for a in result[1]:
print(a)
print("")
#ia fiecare numar din fișier pe rand
for a in numbers:
a = a[:-1]
#compara cu rezultatele online
for b in result[1]:
#a gasit un match
if a == b:
best = b
match = 1
#compara cu rezultatele offline
for b in result[0]:
#a gasit un match
if a == b:
best = b
match = 1
#nu a gasit un numar din lista, ia cea mai bună aproximare
if match == 0:
if len(result[1]):
best = result[1][0]
elif len(result[0]):
best = result[0][0]
#scrie cea mai bună aproximare in log
if best != '':
with open('log.txt', 'a') as file:
file.write("%s.%s.%s " % (datetime.now().year, datetime.now().month, datetime.now().day))
file.write("%s:%s:%s " % (datetime.now().hour, datetime.now().minute, datetime.now().second))
file.write(best)
file.write("\n")
#a detectat un numar
if best != '':
s = best
#numarul e autorizat
if match:
s = s + '1'
ep.write(s)
else:
s = s + '0'
ep.write(s)
#sta o secundă intre poze consecutive
sleep(1)
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: FUNDAȚIA PENTRU CULTURĂ ȘI ÎNVĂȚĂMÂNT IOAN SLAVICI TIMIȘOARA [309914] (ID: 309914)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
