Deskripsi Proyek

Proyek ini mengimplementasikan Convolutional Neural Network (CNN) untuk mengklasifikasikan gambar alas kaki ke dalam tiga kategori: Boot, Sandal, dan Shoe.

Model dilatih menggunakan dataset Shoe vs Sandal vs Boot yang terdiri dari lebih dari 15.000 gambar dari Kaggle. Antarmuka web dibangun dengan Flask dan dapat di-deploy ke platform cloud seperti Railway.

Tujuan utama proyek ini adalah membuktikan bahwa arsitektur CNN sederhana sudah mampu memberikan akurasi tinggi pada tugas klasifikasi gambar alas kaki dalam dunia nyata.

Dataset Shoe vs Sandal vs Boot — 15K Images
Jumlah Kelas 3 (Boot, Sandal, Shoe)
Input Size 224 × 224 piksel
Training Epochs Maks 20 (dengan EarlyStopping)
Batch Size 32
Optimizer Adam

Arsitektur CNN

Input
224 × 224 × 3 (RGB)
Conv Block 1
Conv2D(32, 3×3, ReLU) + BatchNorm + MaxPool(2×2)
Conv Block 2
Conv2D(64, 3×3, ReLU) + BatchNorm + MaxPool(2×2)
Conv Block 3
Conv2D(128, 3×3, ReLU) + BatchNorm + MaxPool(2×2)
Flatten
Mengubah feature map menjadi vektor 1D
Dense(128) + Dropout(0.5)
Fully Connected + Regularisasi
Output
Dense(3, Softmax) — Boot | Sandal | Shoe

Teknologi yang Digunakan

Python 3.11
TensorFlow / Keras
Flask
Bootstrap 5
Railway
Gunicorn
Matplotlib
Scikit-learn

Strategi Training

EarlyStopping

Menghentikan training jika val_loss tidak membaik setelah 5 epoch untuk mencegah overfitting.

ModelCheckpoint

Menyimpan model terbaik berdasarkan val_accuracy secara otomatis selama training.

ReduceLROnPlateau

Menurunkan learning rate secara dinamis jika val_loss stagnan selama 3 epoch.

Data Augmentation

Teknik augmentasi yang digunakan untuk memperbanyak variasi data training

Rotation ±20°
Width/Height Shift 20%
Zoom 20%
Horizontal Flip
Shear 15%
Brightness [0.8–1.2]