Ez a projekt a szakdolgozatomhoz készült, amely a CASIA1.0 adatkészlet használatával különböző képfeldolgozási és gépi tanulási technikákat vizsgál a manipulált képek felismerésére, a Detection of Digital Image Forgery using Fast FourierTransform and Local Features nevű kutatásra alapozva. A kutatás célja a digitális képhamisítás kimutatása Fast Fourier-transzformáció (FFT) és helyi textúra-leírók (LBP, LTP és ELTP) alkalmazásával.
- Bevezetés
 - Feladat szöveges leírása
 - Követelmények
 - Telepítés
 - Használat
 - Eredmények
 - Következtetések
 - Fájlstruktúra
 - Hibakeresés
 - Kapcsolat
 
A projekt célja egy gépi tanulási modell kifejlesztése, amely képes azonosítani a módosított képeket.
A projekt az alábbi fő lépéseket tartalmazza:
- Az adatok előfeldolgozása
 - A képjellemzők kinyerése
 - A modell betanítása és kiértékelése
 
A projekt futtatásához a következő könyvtárak és eszközök szükségesek:
- Python 3.x
 - OpenCV
 - NumPy
 - Scikit-learn
 - Matplotlib
 
- 
Könyvtárak Telepítése: Szükséges Python könyvtárak telepítése az alábbi parancs futtatásával:
pip install opencv-python numpy scikit-learn matplotlib
 - 
Adatok Letöltése: CASIA1.0 adatkészlet letöltése, és elhelyezése a
data/könyvtárban.A projekt már tartalmazza az adatkészletet.
 
Futtasuk az run_scripts.py scriptet:
python src/run_scripts.py- 
Adatok Előfeldolgozása: Futtasuk az
preprocess.pyscriptet az adatok előfeldolgozásához:python src/preprocess.py
 - 
Jellemzők kinyerése: Futtasuk a
feature_extraction.pyscriptet a jellemzők kinyeréséhez:python src/feature_extraction.py
 - 
Modell Betanítása: Futtasuk a
train_classifier.pyscriptet a modell betanításához:python src/train_classifier.py
 
A betanított modell teljesítményének értékeléséhez a következő metrikákat használom:
Pontosság (Accuracy): Az összes helyes előrejelzés aránya az összes előrejelzéshez képest.
Visszahívás (Recall): A helyesen előrejelzett pozitív esetek aránya az összes tényleges pozitív esethez képest.
Az eredményeket a results mappában tároljuk.
Az eredmények alapján az FFT-ELTP módszerrel a modell közepesen hatékonyan ismerte fel és különböztette meg az eltérő textúrákat. További munka lehet szükséges a modell fejlesztéséhez – például többféle jellemző kivonása, más tanító-tesztadat arány, másik adatkészlet (CASIA2.0) használata segíthet.
A projekt könyvtárszerkezete a következő:
├── data/
│   └── CASIA1.0/
│         ├── Au/
│         └── Tp/
├── src/
│   ├── results/
│   │   ├── metrics/
│   │   │   └── evaluation_metrics.txt
│   │   ├── plots/
│   │   │   ├── data_distribution.png
│   │   │   ├── confusion_matrix.png
│   │   │   ├── metrics_plot.png
│   │   │   └── roc_curve.png
│   │   ├── classifier.joblib
│   │   ├── features_labels.joblib
│   │   ├── preprocessed_data.joblib
│   │   └── results.txt
│   ├── feature_extraction.py
│   ├── preprocess.py
│   ├── run_scripts.py
│   └── train_classifier.py
├── .gitattributes
├── .gitignore
└── README.md
Ha problémák merülnek fel a scriptek futtatása közben, itt van néhány gyakori hiba és megoldás:
Adat Betöltési Hiba:
Győződjünk meg róla, hogy a data/ mappában találhatóak a szükséges Au és Tp mappák, és a fájlnevek helyesen vannak megadva.
Kép Konvertálási Hiba:
Ellenőrizzük, hogy az OpenCV megfelelően telepítve van és a képek elérhetők.
Import Hiba:
Ha valamely csomag nem megfelelően töltödött le, próbáljuk frissíteni, vagy újra letölteni a pip segítségével.
Virtuális Környezet Hiba:
Ha a virtuális környezetben nem fut le megfeleleően, töröljük és hozzuk újra létre a venv-et.
Modell Betöltési Hiba:
Győződjünk meg róla, hogy a classifier.joblib fájl elérhető a results/ mappában, és helyesen van elmentve.
Memória Túlcsordulás, Lassú Futás Hiba:
Ha memória problémák merülnek fel, próbáljunk kisebb batch méretet választani (pl. batch_size=100).
Email: timeaszabo1217@gmail.com
LinkedIn: timeaszabo1217