Ez a projekt egy innovatív trensflow modell betanítására irányul amely képes az útjelző táblák felismerésére és a rajtuk szereplő szöveges információk digitalizálására. A modern képfeldolgozási technikákat és gépi tanulási modelleket, mint például a TensorFlow-t alkalmazva elemzi a közlekedési jelzéseket, azonosítja a szimbólumokat és a szöveges utasításokat, támogatva ezzel a vezetők tájékozódását és döntéshozatalát. A projekt célja egy olyan GUI (grafikus felhasználói interfész) megalkotása, amely képes felismerni és azonosítani a beadott útjelző táblákat a feldolgozott 100 különböző típus közül.
- Képfeldolgozás és gépi tanulás alapú szövegfelismerés
- TensorFlow segítségével tréningelt modell alkalmazása
- Interaktív GUI-n keresztüli tábla felismerés
- Támogatás többféle útjelző tábla azonosítására
- Pontos és megbízható szöveges és vizuális kimenet generálása
A projekt futtatásához szükséged lesz a következőkre:
- Python 3.6 vagy újabb
- TensorFlow 2.x
- OpenCV
- PIL (Pillow)
- NumPy
- Pandas
- Matplotlib (opcionális grafikonokhoz)
- Klónozd a projekt GitHub repóját a helyi gépedre:
git clone https://github.com/NagyVikt/UtjelzoTablaFelismeroTFModell.git
- Lépj be a projekt könyvtárba:
cd ocr-traffic-sign-recognition
- Hozz létre egy virtuális környezetet:
python -m venv venv
- Aktiváld a virtuális környezetet:
- Windows:
.\venv\Scripts\activate
- macOS és Linux:
source venv/bin/activate
- Windows:
- Telepítsd a függőségeket:
pip install -r requirements.txt
A GUI indításához futtasd a fő Python szkriptet a projekt gyökérkönyvtárában:
python main.py
A GUI-n keresztül töltheted fel az útjelző táblák képeit, amelyeket a rendszer elemz, és azonnali visszajelzést ad a felismerés eredményéről.
- A képek előfeldolgozása: Ez magában foglalja a méretezést, szürkeárnyalatos konverziót, és zajszűrést.
- Modell tréningelése és finomhangolása: Használj több különböző adathalmazt a modell robustusságának növelésére.
- GUI fejlesztése: Implementálj további funkciókat a felhasználói élmény javítása érdekében.
A modell felépítése az adott képek számától függően körülbelül 15 percet vesz igénybe.
- accuracy (Pontosság) Jelentés: Az accuracy vagy pontosság azt mutatja meg, hogy a modell mennyire képes helyesen osztályozni az adatokat. %-os pontossággal képes helyesen azonosítani a tanító adatkészletben szereplő címkéket. Ha ez pl.0,43 az azt jelenti, hogy körülbelül 100 kérdésből átlagosan 43-at helyesen tud beazonosítani.
- loss (Veszteség) Jelentés: A loss vagy veszteség az a szám, ami azt mutatja, mennyire távol vannak a modell által előrejelzett értékek a valós címkéktől. A veszteség alacsonyabb értéke azt jelzi, hogy a modell jobban illeszkedik az adatokhoz.
- val_accuracy (Validációs Pontosság) Jelentés: A val_accuracy hasonló a fent említett accuracy-hoz, de ez a validációs adatkészletre vonatkozik. Ha ez magasabb, mint a tanító adatkészleten mért pontosság, az azt sugallja, hogy a modell jól teljesít az új, eddig nem látott adatokon. Ebben az esetben ez azt mutatja, hogy a modell általánosítási képessége jó.
- val_loss (Validációs Veszteség) Jelentés: A val_loss az a veszteség, amit a modell a validációs adatkészleten produkál. Ha ez az érték jelentősen alacsonyabb, mint a tanítási veszteség, az jó jel, mivel azt mutatja, hogy a modell hatékonyan képes generalizálni az új adatokra.
Minden közreműködést szívesen fogadunk! Nyiss egy issue-t a javaslatoddal vagy hibajelentéssel, vagy küldj be egy pull requestet a változtatásokkal.
- Projekt készítője: Nagy Viktor
- TensorFlow hivatalos weboldala
- OpenCV dokumentáció
- PIL (Pillow) dokumentáció
- Pytesseract GitHub oldala
- GTSRB (German Traffic Sign Recognition Benchmark) dataset a Kaggle-on
- Chinese Traffic Sign Database https://www.vicos.si/resources/dfg/
A részletes projekt leírás a Dokumentacio.md fájlban található.