
V tomto článku vám ukážem, ako sme využili umelú inteligenciu na spracovanie obrazových dát a vytvorili z nich riešenia pre inteligentné mestá. V našich projektoch pomocou nej analyzujeme cestnú premávku, sledujeme pohyb vozidiel na križovatkách a automaticky vyhodnocujeme obsadenosť parkovísk.
Kombináciou AI modelov, kamerových systémov a platformy Total.js IoT premieňame obrazové dáta na konkrétne informácie. Tie potom ďalej spracovávame, vyhodnocujeme a zobrazujeme v našich systémoch.
V nasledujúcom článku vám predstavím dve riešenia, ktoré sme vyvinuli a nasadili do prevádzky – analýzu cestnej premávky na mestských križovatkách a monitorovanie obsadenosti parkovacích miest.
Pri prvom riešení sme sa zamerali na automatické sledovanie intenzity cestnej premávky na mestských križovatkách. Používame kamerové systémy, ktoré nám poskytujú obraz z viacerých smerov jednotlivých križovatiek.
Naším cieľom je identifikovať prechádzajúce vozidlá, rozlišovať ich kategórie a zaznamenávať ich pohyb cez vopred definované úseky komunikácií.
Na spracovanie obrazu sme použili zariadenia NVIDIA Jetson AGX, ktoré nám poskytujú výpočtový výkon potrebný na analýzu viacerých kamerových streamov súčasne.
Jedno zariadenie Jetson AGX u nás obsluhuje približne päť mestských križovatiek, čo predstavuje približne 18 kamerových vstupov. K jednotlivým kamerám sa pripájame prostredníctvom RTSP streamov, z ktorých získavame obrazové dáta na ďalšie spracovanie.
Na spracovanie video streamov používame NVIDIA DeepStream. Pre jednotlivé zariadenia sme vytvorili konfiguračné súbory, v ktorých definujeme kamerové vstupy a nastavujeme ich súčasné spracovanie. Vďaka tomu dokážeme z jedného zariadenia analyzovať obraz z viacerých križovatiek a rôznych smerov.
Takto sme spracovanie obrazu z viacerých lokalít sústredili na jedno výpočtové zariadenie, pričom samotné kamery slúžia ako zdroj video streamov.
Na rozpoznávanie vozidiel používame model YOLO11s. Model analyzuje obrazové dáta z kamerových streamov, identifikuje jednotlivé objekty a následne ich klasifikuje do príslušných kategórií:
Samotná detekcia vozidla nám však nestačí. Pre dopravnú analýzu potrebujeme vedieť aj to, kadiaľ vozidlo prešlo a kedy prekročilo sledovaný úsek.
Pre jednotlivé kamery definujeme virtuálne línie, ktoré predstavujú sledované body na komunikácii. Ich umiestnenie prispôsobujeme konkrétnemu pohľadu kamery a usporiadaniu križovatky.
Keď detegované vozidlo prekročí niektorú z definovaných línií, systém zaznamená príslušnú udalosť.
Na sledovanie prechodov cez tieto línie sme vytvorili vlastné knižnice v programovacom jazyku C. Pomocou nich spracovávame detekcie a vyhodnocujeme udalosti pri prechode vozidiel cez sledované oblasti.
Vzniknuté udalosti následne odosielame prostredníctvom Redis do Total.js Flow, kde ich ďalej spracovávame.

Po prijatí správ cez Redis ich spracovávame v prostredí Total.js Flow. Na tento účel sme pripravili vlastné komponenty na parsovanie prijatých správ a spracovanie jednotlivých udalostí.
Takto získané údaje následne odosielame na pripravené endpointy v našej IoT platforme. Dáta potom ukladáme, vyhodnocujeme a zobrazujeme prostredníctvom dashboardov.
Výsledkom je prehľad o intenzite premávky na jednotlivých križovatkách vrátane rozdelenia vozidiel podľa kategórií.
Total.js Flow:

Total.js Iot detail zariadenia:

Total.js IoT prehľad zariadení:

Total.js Dashboard:

Pri druhom riešení sme vytvorili automatické monitorovanie obsadenosti parkovacích miest na základe obrazových dát z kamier.
Na rozdiel od analýzy križovatiek, kde sledujeme pohyb vozidiel v rámci video streamov, pri parkoviskách pravidelne vyhodnocujeme jednotlivé snímky z kamier. Celé spracovanie v tomto prípade zabezpečuje Total.js Flow.
V pravidelnom intervale načítame aktuálny obraz z kamery. V našom riešení sme zvolili interval 60 sekúnd.
Pred samotnou detekciou potrebujeme z obrazu vybrať iba tú časť, ktorá je pre nás dôležitá. Na tento účel používame maskovanie obrazu.
V Total.js Flow aplikujeme na získaný obrázok masku definovanú pomocou polygónu. Tá určuje konkrétnu oblasť, ktorú chceme analyzovať – v tomto prípade plochu parkovacích miest.
Ostatné časti obrazu pri ďalšom spracovaní ignorujeme. Vďaka tomu sa AI môže sústrediť na relevantnú oblasť a detekcia nie je zbytočne ovplyvňovaná okolitým prostredím.

Na spracovanie obrázkov sme pripravili vlastnú Python službu, ktorá využíva knižnice OpenCV, NumPy a Ultralytics. Pomocou nej dokážeme vykonávať viacero operácií s obrazovými dátami.
Služba nám umožňuje napríklad:
Pri samotnej detekcii si určujeme, ktoré triedy objektov chceme v obraze vyhľadávať. AI následne identifikuje príslušné objekty a vráti ich kategórie, súradnice a mieru istoty detekcie.
Výsledky si zároveň môžeme vizualizovať priamo v obrázku, čo nám umožňuje jednoducho kontrolovať správnosť rozpoznávania.

Po dokončení detekcie odošleme získané údaje z Total.js Flow na pripravený endpoint v našej IoT platforme. V ďalšom kroku využívame Dátové pohľady (Data Views), ktoré predstavujú virtuálne zariadenia umožňujúce spracovávať a agregovať prijaté údaje.
Pomocou nich vyhodnocujeme celkový počet vozidiel na sledovanom parkovisku a získanú hodnotu ďalej využívame v nadväzujúcich systémoch.
Jedným z výstupov sú informačné tabule, na ktorých zobrazujeme aktuálnu obsadenosť parkoviska, respektíve počet voľných parkovacích miest.

Obe riešenia nám ukázali, ako možno spojiť umelú inteligenciu, spracovanie obrazu a IoT platformu do jedného funkčného celku. Pri analýze cestnej premávky využívame výpočtový výkon zariadení NVIDIA Jetson AGX a NVIDIA DeepStream na spracovanie viacerých kamerových streamov. Pri monitorovaní parkovísk zase pravidelne snímame obraz a analyzujeme ho priamo v Total.js Flow.
V oboch prípadoch je dôležitou súčasťou riešenia Total.js Flow, ktorý zabezpečuje spracovanie získaných údajov a ich prepojenie s IoT platformou.
Vďaka tomu dokážeme obrazové dáta premieňať na štruktúrované informácie, ktoré ďalej ukladáme, analyzujeme, zobrazujeme a poskytujeme ďalším systémom.
Pri vývoji týchto riešení sme si overili, že existujúca kamerová infraštruktúra sa dá využiť oveľa širšie než iba na vizuálny dohľad. Kamery sa môžu stať zdrojom dát pre automatizovanú analýzu dopravy, správu parkovísk a ďalšie aplikácie v oblasti inteligentných miest.