Pemrosesan Citra · Convolutional Neural Network
Mendeteksi jalan berlubang
dengan CNN yang ditulis dari nol.
Sebuah model LeNet-5 yang seluruh matematikanya — konvolusi, pooling, ReLU, softmax, cross-entropy, hingga backpropagation — dikodekan tangan dengan NumPy. Tanpa PyTorch, tanpa TensorFlow, tanpa autograd. Setiap gradien dibuktikan benar.
↓ coba modelnya di bawah
01 · coba modelnya
Beri model sebuah foto jalan.
Ensembel 3 model LeNet-5 (NumPy murni) — tiga model menebak bersama lalu suaranya dirata-rata, seperti panel juri agar lebih akurat — berjalan langsung di server dan menebak apakah permukaan jalan berlubang atau normal.
Dilatih pada dataset terbatas (712 citra, RGB 48×48). Prediksi bersifat ilustratif untuk memperlihatkan cara kerja CNN — bukan untuk penggunaan kritis.
02 · pengujian
Hasil pada 107 citra uji.
Data uji tak pernah dilihat model saat pelatihan. Metrik dihitung manual dari confusion matrix.
03 · arsitektur
Aliran data melewati tiap hidden layer.
Tiap kali gambar melewati sebuah lapisan, ukurannya menyusut bertahap — dari 48×48 titik jadi 9×9. Rumus (W − N + 2P)/S + 1 hanya menghitung ukuran yang tersisa di tiap tahap. Istilah asing? Lihat Kamus Istilah.
Conv = penyaring pola · Pool = memperkecil · FC = pengambil keputusan · Softmax = ubah skor jadi persen keyakinan.
3×48×48"] --> B["Conv1 6@5×5 · ReLU
6×44×44"] B --> C["MaxPool
6×22×22"] C --> D["Conv2 16@5×5 · ReLU
16×18×18"] D --> E["MaxPool
16×9×9"] E --> F["Flatten
1296"] F --> G["FC-120"] --> H["FC-84"] --> I["Softmax
normal / pothole"]
↑ setiap kotak = satu lapisan; angka = ukuran data (kanal × tinggi × lebar) yang mengalir
04 · cara kerja
Dokumentasi teknis, langkah demi langkah.
Tiap dokumen memuat penurunan matematis dan diagram Mermaid yang memvisualkan aliran data & gradien antar lapisan.
Baca makalah lengkap (±20 halaman) →