NETipar Magyarország

Rendszámfelismerő rendszer

Hogyan működik egy rendszámfelismerő rendszer? Bemutatjuk a kamerától a képfeldolgozáson át az adatbázisig és az automatikus vezérlésig.

Background
Rendszámfelismerő rendszer

Egy rendszámfelismerő rendszer feladata első látásra egyszerűnek tűnik: a kamera lát egy autót, a szoftver leolvassa a rendszámot, majd eldönti, mi történjen. A gyakorlatban azonban több hardveres és szoftveres komponensnek kell együtt dolgoznia ahhoz, hogy a folyamat gyorsan és megbízhatóan működjön.

A kamera megfelelő elhelyezése, a kép feldolgozása, a rendszámtábla felismerése, a karakterek kiolvasása, az adatbázis és az üzleti logika egyaránt része lehet a rendszernek. Ha pedig például sorompót vagy kaput is vezérelni kell, a fizikai eszközökkel való kommunikáció is bekerül a folyamatba.

Cégünk már készített ilyen fejlesztést, ezért a rendszámfelismerést nem pusztán egy OCR-feladatként kezeljük. Egy működő megoldásnál a teljes folyamatot kell megtervezni a kamera képétől egészen addig, hogy az azonosított jármű alapján milyen műveletet hajtson végre a rendszer.

Mit csinál valójában egy rendszámfelismerő rendszer?

A rendszámfelismerés – angolul Automatic Number Plate Recognition, röviden ANPR vagy License Plate Recognition, LPR – olyan képfeldolgozási folyamat, amely egy kamera képén automatikusan azonosítja a rendszámtáblát, majd meghatározza az azon szereplő karaktereket.

Egy teljes rendszer ennél általában többet tud. A felismert rendszámhoz időpontot, kamerát, belépési pontot, képet vagy más adatot rendelhet, majd összevetheti az eredményt egy adatbázissal. Egy ANPR-rekord tehát nem feltétlenül csak annyit tartalmaz, hogy például „ABC-123”, hanem a felismerés idejét, helyét és az eseményhez kapcsolódó további információkat is.

Ez teszi lehetővé, hogy a rendszám egy automatizált üzleti folyamat bemeneti adatává váljon. Egy telephelyen például a folyamat így nézhet ki:

jármű érkezik → kamera képet készít → rendszám felismerése → adatbázis-ellenőrzés → jogosultság vizsgálata → sorompó nyitása → esemény naplózása

Ugyanez a technológia használható parkolási rendszerben, logisztikai területen, ipari telephelyen vagy olyan egyedi alkalmazásban is, ahol egy járművet rendszám alapján kell azonosítani.

A rendszer fő elemei

Egy konkrét megvalósítás architektúrája a feladattól függ, de jellemzően az alábbi komponensekből épül fel:

  • rendszám rögzítésére alkalmas kamera;

  • hálózati kapcsolat;

  • képfeldolgozó és rendszámfelismerő szoftver;

  • alkalmazásszerver vagy edge eszköz;

  • adatbázis;

  • adminisztrációs felület;

  • integráció más rendszerekkel;

  • szükség esetén fizikai vezérlés, például sorompó vagy kapu működtetése.

A rendszámfelismerő rendszer tehát tipikusan hardver, képfeldolgozás és egyedi szoftver együttese. Emiatt a fejlesztés jelentős része nem feltétlenül maga a karakterfelismerés, hanem az összes komponens megbízható összekapcsolása. Ha a felismerés eredményére további üzleti folyamatokat kell építeni, a projekt már szorosan kapcsolódik az egyedi szoftverfejlesztéshez.

A kamera: itt kezdődik a felismerés pontossága

A szoftver csak abból a képből tud dolgozni, amelyet a kamera biztosít. Ha a rendszám túl kicsi, bemozdul, kiég, erősen tükröződik vagy túl nagy szögben látható, azt később egy jó felismerő algoritmus sem feltétlenül tudja teljesen kompenzálni.

Ezért a kamerát nem egyszerű térfigyelő kameraként kell kezelni.

Számít többek között:

  • a kamera és a jármű várható távolsága;

  • a kamera magassága;

  • a vízszintes és függőleges látószög;

  • a jármű sebessége;

  • a rendszámtábla képen elfoglalt mérete;

  • a záridő;

  • a természetes és mesterséges megvilágítás;

  • az éjszakai működés;

  • a fényszórók és a rendszámtábla fényvisszaverése;

  • az időjárási körülmények.

A rendszámfelismerésre tervezett kamerák gyártói ezért konkrét telepítési tartományokat és szögeket határoznak meg. Az Axis például több LPR-rendszerénél legfeljebb 30 fokos kameraállást javasol, ami jól mutatja, hogy a fizikai telepítés közvetlenül befolyásolja a felismerhetőséget. Egy parkoló bejáratánál, ahol az autó lassan és meghatározott nyomvonalon halad, más kamerabeállítás működhet jól, mint egy útszakaszon, ahol a járművek nagyobb sebességgel közlekednek.

Jármű vagy rendszámtábla detektálása

Miután rendelkezésre áll a videókép, meg kell találni rajta azt a területet, amelyet ténylegesen fel akarunk dolgozni. Ennek egyik módja, hogy a rendszer először a járművet érzékeli, majd azon belül keresi meg a rendszámtáblát. Más architektúrában közvetlenül a rendszámtábla detektálása történik.

A modern megoldásokban erre gépi látási és neurális hálózaton alapuló modellek is használhatók. Az NVIDIA képfeldolgozó eszköztárában például külön modell áll rendelkezésre a rendszámtábla detektálására és külön a rajta található karakterek felismerésére.

Ez jól szemlélteti a folyamat két különálló problémáját:

Hol található a rendszám a képen?

és

Mi van ráírva?

A két feladatot érdemes elkülöníteni, mert ha az első lépés hibás, a karakterfelismerő algoritmus már nem megfelelő képrészletet kap.

A rendszámtábla képének előkészítése

A megtalált rendszámtábla-részletet a karakterfelismerés előtt szükség lehet további feldolgozásra. Ilyen lehet például a kép kivágása, átméretezése, perspektivikus korrekciója vagy a kontraszt módosítása. A cél az, hogy a felismerő algoritmus minél egyértelműbb bemenetet kapjon.

Különösen problémás lehet:

  • az oldalról fényképezett rendszám;

  • a részben takart tábla;

  • a szennyeződés;

  • a rossz fényviszony;

  • a bemozdulás;

  • a túl- vagy alulexponált kép.

A feldolgozási láncot ezért mindig a tényleges telepítési környezethez érdemes igazítani.

Karakterfelismerés: amikor a képből adat lesz

A következő lépésben történik a rendszámon szereplő karakterek meghatározása. A rendszám képi információból ekkor válik például ilyen szöveges adattá: ABC-123

A hagyományos OCR és a modern neurális hálózati megoldások egyaránt alkalmasak lehetnek karakterfelismerésre, de a rendszámtáblák speciális problémát jelentenek. Nem dokumentumot olvasunk be kontrollált környezetben, hanem különböző távolságban, szögben és fényviszonyok között mozgó járműveket.

A felismerés eredménye ezért nem feltétlenül kezelhető minden esetben tévedhetetlen adatként. Egy jól megtervezett alkalmazásnak számolnia kell azzal is, hogy bizonyos eseményeknél nem történik sikeres felismerés, vagy az eredmény további ellenőrzést igényel.

Formátumellenőrzés és az eredmény feldolgozása

A felismert karaktersor önmagában még nem feltétlenül végleges eredmény. A szoftver ellenőrizheti például, hogy a kapott érték megfelel-e a támogatott rendszámformátumoknak. Ha az alkalmazás több ország járműveit kezeli, az eltérő karakterkészletekkel és rendszámtípusokkal is számolni kell. Az eredményhez egy megbízhatósági érték is társulhat. Így az alkalmazás eltérően kezelheti a nagy bizonyosságú és a bizonytalan felismeréseket. Egy sorompós beléptető rendszerben például nem feltétlenül célszerű automatikusan nyitni, ha a felismerés eredménye bizonytalan. Ilyenkor kérhető újabb képkocka, vagy az esemény továbbítható manuális ellenőrzésre.

Adatbázis és üzleti logika

A rendszám felismerése után kezdődik az alkalmazásspecifikus működés.

Tegyük fel, hogy egy vállalati telephely bejáratáról van szó. Az adatbázisban szerepelhet:

  • a rendszám;

  • a jármű tulajdonosa vagy használója;

  • a hozzá tartozó vállalat;

  • belépési jogosultság;

  • érvényességi idő;

  • engedélyezett területek;

  • korábbi belépések és kilépések.

Ha a kamera például felismeri az ABC-123 rendszámot, a backend megkeresi az adatbázisban, majd az előre meghatározott szabályok alapján eldönti, hogy engedélyezhető-e a belépés.

Itt már klasszikus üzleti szoftveres problémáról beszélünk. A rendszám csupán az azonosítás egyik módja.

Ez azért lényeges, mert egyedi fejlesztésnél nem szükséges megállni a „rendszám felismerve” állapotnál. A felismerés összeköthető a vállalat más rendszereivel és folyamataival is.

Sorompó, kapu vagy más fizikai eszköz vezérlése

Ha a rendszámfelismerő rendszer fizikai folyamatot is irányít, szükség van a szoftver és a helyszíni eszközök közötti kommunikációra. Tipikus példa a sorompó.

A folyamat ilyenkor lehet: kamera → felismerő szoftver → backend → jogosultság-ellenőrzés → vezérlő → sorompó

A vezérlés módja az adott hardvertől függhet. A kommunikáció történhet hálózaton, API-n, relén vagy más, a vezérlő által támogatott interfészen keresztül. Ez már az IoT-megoldásokhoz hasonló fejlesztési terület: a szoftver nem kizárólag más szoftverekkel kommunikál, hanem a fizikai környezetben található eszközök állapotát is figyeli vagy módosítja.

Hol fusson maga a rendszámfelismerés?

Technikailag többféle architektúra is kialakítható. Az egyik lehetőség az edge feldolgozás, amikor a felismerés a kamerán vagy a helyszínen működő számítógépen történik. Ilyenkor nem feltétlenül kell a teljes videófolyamot egy távoli szerverre továbbítani.

Másik lehetőség, hogy a kamera továbbítja a képet vagy videót egy központi szervernek, és ott történik a feldolgozás. Létezhet hibrid architektúra is: a helyszíni eszköz végzi az időkritikus felismerést, miközben a központi rendszer kezeli az adatbázist, az adminisztrációt, a naplózást és a többi üzleti folyamatot. A megfelelő megoldást többek között a kamerák száma, a hálózat, a válaszidő, a rendelkezésre álló hardver, az adatkezelési követelmények és a más rendszerekkel szükséges integráció határozza meg.

Egy kamera vagy több kamera?

Egyetlen belépési pontnál viszonylag egyszerű architektúra is elegendő lehet. Több kapu, parkoló vagy telephely esetén azonban már érdemes központi rendszerben gondolkodni. Ebben az esetben minden felismerési eseményhez hozzárendelhető például: rendszám + időpont + kamera + helyszín + kép + eseménytípus

Így egy adminisztrációs felületen kereshetővé válhat, hogy egy adott jármű mikor és melyik ponton jelent meg. Nagyobb rendszerben további kérdések is felmerülnek: mi történik, ha megszakad az internetkapcsolat? Tud-e a helyszíni egység ideiglenesen önállóan működni? Mi történik a közben keletkezett adatokkal? Hogyan szinkronizálódnak később a központi rendszerrel? Ezek már rendszerarchitekturális kérdések, amelyek jelentősen befolyásolják a megoldás megbízhatóságát.

Az adminisztrációs felület legalább olyan fontos lehet, mint a felismerés

Egy üzleti célú rendszernek kezelhetőnek is kell lennie. Az adminfelületen például fel lehet venni és törölni rendszámokat, jogosultságokat lehet beállítani, keresni lehet a belépési események között, valamint megtekinthetők a sikertelen vagy bizonytalan felismerések.

Egy jól kialakított adminisztrációs felület csökkenti annak szükségességét, hogy a rendszer működésének mindennapi módosításaihoz fejlesztői beavatkozásra legyen szükség.

Egy telephely üzemeltetője például saját maga felveheti egy új dolgozó autóját, beállíthatja az engedély lejárati dátumát, vagy visszakeresheti egy korábbi belépés időpontját.

Integráció meglévő vállalati rendszerekkel

Egyedi fejlesztés esetén a rendszámfelismerő rendszer egyik legnagyobb előnye az integrálhatóság. Nem feltétlenül szükséges külön adatbázisban fenntartani minden információt. Ha a vállalat már rendelkezik megfelelő ügyviteli, beléptetési, parkolási vagy más háttérrendszerrel, a rendszámfelismerés annak egyik adatforrásává válhat.

Például: felismert rendszám → API-hívás → vállalati rendszer → jogosultság → válasz → sorompó

Így a jogosultságokat nem két külön rendszerben kell karbantartani. Hasonló integrációval automatikusan létrehozható érkezési esemény, elindítható egy logisztikai folyamat, értesítés küldhető egy munkatársnak, vagy megjeleníthető a járműhöz kapcsolódó információ egy kezelőfelületen.

Mi történik, ha a rendszer rosszul olvassa le a rendszámot?

Ezt már a tervezés során kezelni kell. Egy valódi rendszerben előfordulhat:

  • sikertelen felismerés;

  • részleges felismerés;

  • hasonló karakterek összekeverése;

  • takart vagy szennyezett rendszám;

  • rossz képminőség;

  • olyan jármű, amelynek rendszámtípusa nincs megfelelően támogatva.

Ezért nem elég csak az ideális működést leprogramozni. Meg kell határozni azt is, mi történjen hiba esetén. Lehet például új képkockából ismételt felismerést végezni, több egymást követő eredményt összevetni, manuális ellenőrzést kérni vagy más azonosítási lehetőséget biztosítani. Különösen fontos ez akkor, ha a felismerés eredménye automatikusan fizikai műveletet indít.

A rendszámfelismerés pontosságát nem egyetlen szám határozza meg

Gyakori kérdés, hogy hány százalékos pontossággal működik egy rendszámfelismerő rendszer. Erre önmagában nem érdemes egyetlen általános százalékot megadni. A tényleges eredményt együtt befolyásolja:

  • a kamera és az optika;

  • a telepítés;

  • a megvilágítás;

  • a jármű sebessége;

  • a rendszám állapota;

  • a támogatott rendszámtípusok;

  • a képfeldolgozás;

  • a felismerő modell;

  • a rendszer konfigurációja.

Jól mutatja ezt, hogy még a rendészeti ANPR-rendszerekre vonatkozó brit műszaki követelmények is külön kezelik a rendszám képének sikeres rögzítését és a már rögzített rendszám helyes kiolvasását. Egy projektet ezért célszerű a tényleges helyszínen és az ott várható körülmények között tesztelni.

Adatkezeléssel is számolni kell

A rendszer által kezelt adatok körét már a tervezési fázisban érdemes meghatározni.

Nem mindegy például, hogy kizárólag a felismert rendszám kerül tárolásra, vagy a rendszer elmenti a teljes járműképet is. Ugyanígy meg kell határozni, meddig szükséges megőrizni az adatokat, kik férhetnek hozzájuk, milyen műveleteket kell naplózni, és milyen üzleti cél indokolja az adatkezelést. Technikai oldalról ehhez jogosultságkezelés, megfelelő hozzáférés-védelem, naplózás és adatmegőrzési logika is kapcsolódhat. Az adatkezelést tehát nem érdemes utólag hozzáadott funkcióként kezelni. Hatással lehet magára a rendszer architektúrájára is.

Hogyan indul egy egyedi rendszámfelismerő rendszer fejlesztése?

Az első lépés nem a programozás és nem is feltétlenül a kamera kiválasztása. Először a működési környezetet kell pontosan meghatározni. Más rendszerre van szükség egy mélygarázs bejáratánál, mint egy többkapus ipari telephelyen. Egyetlen sorompó vezérlése pedig más architektúrát igényelhet, mint több telephely központi felügyelete.

A tervezés során többek között ezeket érdemes tisztázni:

  • hol és milyen sebességgel haladnak a járművek;

  • hány kamera szükséges;

  • nappal és éjszaka is működnie kell-e;

  • milyen rendszámokat kell felismerni;

  • mit kell tenni sikeres felismerés után;

  • szükséges-e sorompó vagy más hardver vezérlése;

  • milyen meglévő rendszerekkel kell kommunikálni;

  • milyen adatokat kell tárolni;

  • szükséges-e központi adminisztráció;

  • mi történjen hálózati vagy felismerési hiba esetén.

Ezekből már felépíthető a megfelelő műszaki architektúra.

Egy egyszerű rendszerben ez lehet egy kamera, egy felismerő komponens, egy adatbázis és egy sorompóvezérlés. Összetettebb környezetben viszont több kamera, helyszíni edge egységek, központi backend, webes adminisztráció, API-integrációk és különböző fizikai eszközök együttműködésére lehet szükség.

A rendszámfelismerés ezért jó példája annak, amikor az egyedi szoftverfejlesztés és a fizikai világban működő eszközök találkoznak. Ha egy kész termék nem illeszthető megfelelően a vállalat folyamataihoz, egyedi rendszerrel a felismeréstől az üzleti logikán és adminisztráción keresztül egészen a hardvervezérlésig egyetlen egységes folyamat alakítható ki.

Korábbi fejlesztéseink között szoftveres projekteket is bemutatunk a szoftver referenciáink között.

Szolgáltatások

Szoftvereket és weboldalakat fejlesztünk

Innovatív szoftverfejlesztő csapatunk magas minőségű és egyedi szoftver termékeket, üzleti belső rendszereket fejleszt.

Weboldal Weboldal

Weboldal

Egyedi vállalati honlapok, bemutatkozó és landing oldalak fejlesztése sablon nélkül, nulláról. Minden oldalt a Te márkádra szabunk, hogy kitűnj a versenytársak közül.

Értékesítési rendszer Értékesítési rendszer

Értékesítési rendszer

Webáruházak, előfizetéses platformok és hírlevélküldő rendszerek, amelyek automatizálják az értékesítési folyamataidat. A rendelésfeldolgozástól a vásárlókövetésig mindent lefedünk.

Grafikai tervezés Grafikai tervezés

Grafikai tervezés

Átfogó vizuális stratégia az arculattervezéstől a nyomdai anyagokig. Logó, branding, digitális és print megoldások, amelyek egységes és professzionális megjelenést biztosítanak.

Üzleti, ügyviteli rendszer Üzleti, ügyviteli rendszer

Üzleti, ügyviteli rendszer

Raktárkezelő, nyilvántartó és időpontfoglaló szoftverek, amelyek átláthatóvá teszik a mindennapi üzleti folyamatokat. Pontosan azt építjük meg, amire a vállalkozásodnak szüksége van.

ERP és CRM rendszer ERP és CRM rendszer

ERP és CRM rendszer

Vállalati erőforrás-tervező és ügyfélkapcsolat-kezelő rendszerek, amelyek egy helyre hozzák az adataidat. Hatékonyabb döntéshozatal, tisztább folyamatok, kevesebb adminisztráció.

UX/UI design UX/UI design

UX/UI design

Reszponzív, modern felhasználói felületek tervezése, ahol az esztétika és a használhatóság kéz a kézben jár. Adatvezérelt megközelítéssel maximalizáljuk a felhasználói élményt.

IoT megoldások IoT megoldások

IoT megoldások

Mikrovezérlők programozása és hálózati integráció offline és felhőalapú rendszerekhez. Egyedi kezelőfelületekkel kötjük össze a fizikai eszközeidet a digitális világgal.

Rendszer üzemeltetés Rendszer üzemeltetés

Rendszer üzemeltetés

Teljes körű szerver- és szoftvertámogatás, amely garantálja rendszereid stabil és biztonságos működését. Monitorozás, karbantartás és gyors hibaelhárítás, hogy Te az üzletedre fókuszálhass.

Régi rendszerek újragondolva Régi rendszerek újragondolva

Régi rendszerek újragondolva

Elavult szoftverek és weboldalak teljeskörű újratervezése a legújabb technológiákkal. Megőrizzük az értékes üzleti logikát, miközben modern, gyors és biztonságos rendszert építünk.

Részletek