
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.py
scriptet az adatok előfeldolgozásához:python src/preprocess.py
-
Jellemzők kinyerése: Futtasuk a
feature_extraction.py
scriptet a jellemzők kinyeréséhez:python src/feature_extraction.py
-
Modell Betanítása: Futtasuk a
train_classifier.py
scriptet 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: [email protected]
LinkedIn: timeaszabo1217