Skip to content

AndreeD05/TH_Deeplearning

Repository files navigation

Phân biệt vân tay Thật – Giả

Một hệ thống sử dụng Deep Learning (CNN) để phân biệt ảnh vân tay thật và giả (altered) từ bộ dữ liệu SOCOFing.

📋 Mô tả chung

Mục tiêu: Xây dựng mô hình Convolutional Neural Network (CNN) để phân loại vân tay thật hoặc giả.

Luồng xử lý:

Chuẩn bị dataset và chia thành train/val/test.

Huấn luyện mô hình với augmentation và scheduler.

Lưu model tốt nhất và lịch sử training.

Vẽ đồ thị loss/accuracy.

Giao diện đơn giản bằng Tkinter để dự đoán ảnh mới.

🚀 Môi trường thực nghiệm

OS: Windows 10 / Ubuntu 18.04+

Python: 3.8 trở lên

Thư viện chính:

torch

torchvision

pillow

matplotlib

tkinter (Windows: đã có sẵn; Ubuntu: sudo apt install python3-tk)

⚙️ Cài đặt chi tiết

# 1. Clone repository
git clone https://github.com/username/repo-fingerprint.git
cd repo-fingerprint

# 2. Tạo và kích hoạt môi trường ảo
python -m venv .venv
# Windows:
.\.venv\Scripts\activate
# Linux/Mac:
source .venv/bin/activate

# 3. Cập nhật pip và cài đặt dependencies

pip install --upgrade pip
pip install torch torchvision pillow matplotlib

🗂️ Cấu trúc thư mục dự án

CNN/                                # Thư mục gốc của dự án
├─ dataset/                         # Dữ liệu đã chia sẵn cho huấn luyện và đánh giá
│   ├─ train/                       # Dữ liệu huấn luyện (70%)
│   ├─ val/                         # Dữ liệu xác thực (15%)
│   └─ test/                        # Dữ liệu kiểm thử (15%)
│
├─ SOCOFing/                        # Dữ liệu gốc từ bộ SOCOFing
│   ├─ Altered/                    # Vân tay giả, gồm:
│   │   ├─ Altered-Easy/
│   │   ├─ Altered-Medium/
│   │   └─ Altered-Hard/
│   └─ Real/                        # Vân tay thật
│
├─ best_fingerprint_model.pth       # Trọng số mô hình CNN tốt nhất đã huấn luyện
├─ training_metrics.pth             # Lưu lại giá trị loss & accuracy qua các epoch
│
├─ cnn_model.py                     # Định nghĩa kiến trúc mạng CNN
├─ train.py                         # Script chính để huấn luyện mô hình
├─ main.py                          # (Tùy chọn) script chính để chạy thử nghiệm
├─ plot_metrics.py                  # Vẽ biểu đồ loss và accuracy
```text

🎯 Hướng dẫn sử dụng

1. Chia dataset
```bash
python split_fingerprint_dataset.py

Kết quả: thư mục cnn/dataset/{train,val,test}/{real,fake} được tạo.

  1. Huấn luyện mô hình
python train.py

Theo dõi tiến trình training trên console.

Model tốt nhất được lưu tại best_fingerprint_model.pth.

Metrics training được lưu tại training_metrics.pth.

  1. Vẽ đồ thị Loss/Accuracy
python plot_metrics.py

Màn hình hiển thị 3 biểu đồ: Train Loss, Train Accuracy, Validation Accuracy.

  1. Chạy giao diện dự đoán
python main.py

Cửa sổ Tkinter mở, bấm Chọn ảnh vân tay, chọn file ảnh để kiểm tra Real/Fake.

🔧 Tùy chỉnh

Split ratio: chỉnh split_ratios trong split_fingerprint_dataset.py.

Tham số training: trong train.py, điều chỉnh batch_size, learning_rate, num_epochs, patience.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages