Beszámoló nyertes pályázatról

Általános adatok

A Kulturális és Innovációs Minisztérium és a nemzeti Kulturális Támogatáskezelő által kiírt pályázaton nyertem el a támogatást. A pályázat célja a tehetséges fiatalok támogatása, és támogatása ötleteik megvalósításában.

Én, Szekeres György sikeres pályázatot nyújtottam be az alábbi NTP-NFTÖ-23 kóddal ellátott pályázatra.

Pályázat kódja: NTP-NFTÖ-23

Támogatási keretösszeg: 999.000 Ft

Program időtartama: 2023.07.01 - 2024.08.30

Program célca: A kiemelkedően tehetséges fiatalok egyedi fejlesztésének ösztönzése ösztöndíj-támogatás formájában.

Főbb adatok

Pályázat címe: Forgalomszámlálás gépi tanulás segítségével mikroszámítógépeken, és beágyazott rendszereken

Összefoglaló

A pályázat során a fő célom az volt, hogy létrehozzak vagy feltanítsak egy olyan gépi látásos modellt, amely képes elfutni akár egy mikrovezérlőn vagy egy mikroszámítógépen is. A modellnek képesnek kell lennie arra, hogy a kameráján keresztül érzékelt képeket feldolgozza, és azok alapján számolja a járművek számát.

Probléma felvetése

A feladat megoldása során számos kihívással találkoztam már az előkészítési fázisban. Különösen kritikusnak bizonyult a közlekedésben résztvevő objektumok nagy pontosságú felis- merése és megfelelő osztályozása. Az első problémát a változó fényviszonyok jelentették. Az op- tikai rendszerek, mint például a kamerák, érzékenyek a fényerő és a megvilágítási irány változása- ira, így lényeges különbség adódik a nappali és éjszakai felvételek között. A fény intenzitása és forrása is befolyásolja a képfeldolgozás eredményességét. Ennek hatékony kezelése érdekében különféle mesterséges intelligencia (AI) alapú megoldások, vagy hagyományos képfeldolgozó al- goritmusok alkalmazhatók. Azonban ezek a módszerek nemcsak időigényesek, hanem a fejlesz- tési és implementációs költségük is magas, ami kihívást jelenthet az optimalizáció során.

Továbbá, a második jelentős probléma a számítási kapacitás korlátozottságából fakadt. A fejlett AI-algoritmusok futtatása jelentős erőforrásokat igényel, amelyeket egy mikrovezérlő vagy mikroszámítógép nem képes biztosítani. Ezek az eszközök korlátozott számítási teljesítménnyel rendelkeznek, így az algoritmusok hatékony működtetése nagy kihívást jelent ezen környezetek- ben. A probléma megoldása további optimalizációt igényel, például algoritmusok hatékonyabb implementálását, vagy alacsonyabb erőforrás-igényű technikák alkalmazását, amely azonban szintén jelentős fejlesztési időt és költséget von maga után.

Problémák lehetséges megoldása

Az első problémakör megoldására, amelyet a változó fényviszonyok okoztak, különböző mesterséges intelligencia alapú (AI) és hagyományos képfeldolgozó algoritmusokat alkalmaztam. Ezek az algoritmusok lehetővé tették a képminőség javítását és közelebb vittek a kívánt eredményhez, azonban figyelembe kell venni, hogy ezen technikák javítási és optimalizálási képességei bizonyos korlátokba ütköznek. Az algoritmusok teljesítménye különösen a szélsőséges fényviszo nyok, mint az alul- vagy túlexponált képek esetében mutatott kihívásokat. A fényviszonyok által okozott vizuális torzítások kezelése érdekében az alábbi algoritmusokat használtam, és értékeltem azok hatékonyságát:

Hagyományos algoritmusok:

  • Bilateral filter
  • Bilinear filter
  • Brightness (2 féle)
  • Konrasztosztás
  • Decimation
  • Gamma filter
  • Gaussian filter (K=;5;9)
  • Interpoláció
  • Szomszédos interpoláció
  • NLM filter

Mesterséges intelligencia alapú algoritmusok:

  • DiffBIR
  • ESRGAN
  • HAT
  • Real-ESRGAN
  • RuDALL-E
  • Swin2SR
  • SwinIR

A felsorolásban szereplő algoritmusok eredményei változatos teljesítményt mutattak az autók felismerésében. Egyes algoritmusok két autót detektáltak a képen, míg mások csak egyet. Azonban a vizsgálat fő célja egy közlekedésben résztvevő autó felismerése volt, mivel a második jármű a háttérben, egy parkolóban állt, így annak detektálása nem volt releváns. A legfontosabb szempont az volt, hogy a YOLOv8 algoritmus képes legyen pontosan azonosítani a mozgásban lévő autót.

Az eredmények alapján a felsorolásban vastag, zöld betűvel kiemelt két algoritmus teljesített a legjobban. Az NLM (Non-Local Means) szűrő 77,98%-os pontossággal azonosította az autót, míg a Gaussian-szűrő 9-es kernel méret mellett mindössze 30,32%-os pontosságot ért el. A mesterséges intelligencia (AI) alapú képjavító algoritmusok közül a SwinIR bizonyult a leghatékonyabbnak, 78,89%-os eredménnyel, míg az ESRGAN 66,26%-os pontosságot ért el, továbbá ez utóbbi algoritmus esetében a YOLOv8 még a második autót is felismerte 25,48%-os pontossággal.

A legjobb teljesítményt nyújtó algoritmusok kombinálásával további kísérleteket végeztem, különböző sorrendekben alkalmazva azokat. Ezek alapján a következő eredmények születtek a forgalmi autók felismerése során, egy nagy forgalmú kereszteződésben, illetve egy helyi körforgalomban. Mivel ebben a fázisban nem álltak rendelkezésemre saját képek a nagy forgalmú kereszteződésről, az algoritmus tesztelését egy online forrásból származó képen végeztem el.

A kombinált megközelítések eredményei alátámasztották, hogy a képjavítás és objektumfelismerés sikeressége jelentős mértékben függ az algoritmusok helyes kombinációjától, valamint azok alkalmazási sorrendjétől. Az adaptív algoritmusok alkalmazása különösen a dinamikus fényviszonyok és összetett környezeti feltételek esetében bizonyult eredményesnek.

Algoritmus Szempontok Körforgalom Kereszteződés
Alapkép Autók 16 28
Kamionok/buszok 3 5
Motorosok 0 2
Egyebek 0 1
Félredetektálás 1 2
Hibás detektálás 0 3
NLM filter Autók 15 31
Kamionok/buszok 3 6
Motorosok 0 2
Egyebek 0 1
Félredetektálás 1 3
Hibás detektálás 0 1
SwinIR Autók 16 34
Kamionok/buszok 4 9
Motorosok 0 2
Egyebek 0 4
Félredetektálás 2 2
Hibás detektálás 0 4
NLM + SwinIR Autók 15 37
Kamionok/buszok 3 7
Motorosok 0 2
Egyebek 0 0
Félredetektálás 0 2
Hibás detektálás 0 1
SwinIR + NLM Autók 14 36
Kamionok/buszok 4 8
Motorosok 0 2
Egyebek 0 6
Félredetektálás 0 5
Hibás detektálás 0 2


Ezen esetekben a félredetektálás azt jelenti, hogy a YOLO bár detektálta az objektumot, de hibásan osztályozta azt, a hibás pedig azt értem, amikor olyat detektált, ami valójában nem volt ott, vagy pedig nem létező osztályt rendelt hozzá.

Modell súlya, erőforrásigénye

A választásom a YOLOv8 modellre esett, mivel ez egy nagy pontosságú gépi látásra használt, kifinomult objektumfelismerő modell, amelyet több évnyi fejlesztés és optimalizálás során finomhangoltak. A YOLOv8 körülbelül 1000 előre betanított osztályt tartalmaz, amelyek széles körű felhasználási lehetőséget biztosítanak a számítógépes látás különböző alkalmazásaiban. A projektemhez azonban mindössze 6 osztályra volt szükségem: autó, busz, kamion/teherautó, gyalogos, biciklis és motorkerékpáros. A fennmaradó, felesleges osztályokat finomhangolással és újratanítással (finetuning) eltávolítottam, hogy a modell csak az általam kiválasztott kategóriákra összpontosítson. Ezáltal a modell specifikusan a közlekedésben résztvevő objektumokat tudta felismerni.

A finomhangolás és újratanítás során egy nagy méretű, gondosan előkészített adatkészletet használtam, amelynek minden egyes objektumát manuálisan kellett címkézni. A címkézési folyamat jelentős időráfordítást igényelt, mivel minden egyes kép pontosan annotált tartalmazott. Az annotációs munka után, az adatkészlet gazdagítása érdekében adatnövelést (data augmentation) alkalmaztam, amely különböző transzformációs technikák révén (például forgatás, tükrözés, nagyítás) további változatokat generált az eredeti képekből. Ennek köszönhetően a tanításhoz rendelkezésre álló adatkészlet mérete meghaladta az 5000 képet, beleértve a saját gyűjtésű és az előre betanított modellhez tartozó képeket is.

A modell további finomhangolása során az erőforrásigényeket sikerült optimalizálni, csökkentve a futtatásához szükséges számítási kapacitást. Bár a modell fizikai mérete megnőtt a nagyobb adatkészlet miatt, ez a mikroszámítógépen való futtatás szempontjából nem jelentett jelentős akadályt. Az optimalizálást követően a modell jelentősen nagyobb pontossággal képes detektálni és osztályozni a közlekedésben résztvevő objektumokat, ami a projekt céljainak teljesítéséhez nagy előrelépést jelentett.

Azonban a modell méretének és számítási igényeinek további csökkentésére nem volt lehetőség a jelenlegi eszközökkel, ami azt jelenti, hogy a mikrovezérlő-alapú alkalmazások esetén még további kutatásokra és fejlesztésekre van szükség. A mikrovezérlők erőforrás-korlátai miatt a YOLOv8 jelenlegi formájában nem alkalmazható hatékonyan, azonban a jövőbeni munkám során szándékomban áll folytatni az optimalizációt, hogy ezen platformokon is sikeresen használható legyen.

Tanítási eredmények

A tanítási eredményeken jól látható, hogy a képek a városi forgalomból származnak, ezért az autók tanítási mennyisége jóval több, mint a többi osztály esetén.

Confusion Matrix
Confusion Matrix Normalized
Normalized diagram 2
Normalized diagram
F1-Confidence Curve
Precision-Confidence Curve
Precision-Recall Curve
Recall-Confidence Curve
Training diagram