Klasifikasi Jenis Bunga Menggunakan Convolutional Neural Netwrok | CNN
TweetPendahuluan
Kemajuan teknologi dalam bidang kecerdasan buatan telah membuka peluang baru dalam berbagai aspek kehidupan, termasuk dalam bidang botani dan pengenalan pola. Salah satu aplikasi yang menarik adalah klasifikasi jenis bunga menggunakan teknik deep learning, khususnya Convolutional Neural Network (CNN). Dalam proyek ini, kami akan mengeksplorasi penggunaan CNN untuk mengklasifikasikan lima jenis bunga yang berbeda: Lilly, Lotus, Orchid, Sunflower, dan Tulip.
Convolutional Neural Network (CNN) adalah jenis jaringan saraf tiruan yang sangat efektif dalam tugas pengenalan gambar dan klasifikasi. CNN memiliki kemampuan untuk mempelajari fitur-fitur penting dari gambar secara hierarkis, mulai dari fitur-fitur sederhana seperti tepi dan tekstur hingga fitur-fitur yang lebih kompleks seperti bentuk dan pola. Hal ini membuat CNN sangat cocok untuk tugas klasifikasi bunga, di mana perbedaan antar spesies seringkali terletak pada detail-detail halus seperti bentuk kelopak, susunan bunga, atau pola warna.

Metodologi
Dataset Untuk proyek ini, kami menggunakan dataset yang terdiri dari gambar-gambar lima jenis bunga: Lilly, Lotus, Orchid, Sunflower, dan Tulip. Dataset ini mencakup berbagai variasi dari setiap jenis bunga, termasuk perbedaan sudut pengambilan gambar, pencahayaan, dan tahap pertumbuhan bunga. Hal ini penting untuk memastikan model yang dihasilkan dapat mengenali bunga-bunga tersebut dalam berbagai kondisi.
Preprocessing Data Sebelum dimasukkan ke dalam model CNN, gambar-gambar bunga perlu melalui tahap preprocessing. Langkah-langkah preprocessing meliputi:
- Resize gambar: Menyeragamkan ukuran semua gambar, misalnya menjadi 224x224 piksel.
- Normalisasi: Mengubah nilai piksel menjadi rentang 0-1 untuk mempercepat proses pembelajaran.
- Augmentasi data: Menerapkan transformasi seperti rotasi, flipping, dan perubahan brightness untuk meningkatkan variasi dataset dan mencegah overfitting.

Arsitektur Model CNN Kami menggunakan arsitektur CNN yang terdiri dari beberapa layer konvolusi, diikuti oleh layer pooling, dan diakhiri dengan fully connected layers. Arsitektur dasar model adalah sebagai berikut:
- Convolutional Layer 1: 32 filter, ukuran kernel 3x3, aktivasi ReLU
- Max Pooling Layer 1: ukuran pool 2x2
- Convolutional Layer 2: 64 filter, ukuran kernel 3x3, aktivasi ReLU
- Max Pooling Layer 2: ukuran pool 2x2
- Convolutional Layer 3: 128 filter, ukuran kernel 3x3, aktivasi ReLU
- Max Pooling Layer 3: ukuran pool 2x2
- Flatten Layer
- Fully Connected Layer 1: 512 neuron, aktivasi ReLU
- Dropout Layer: rate 0.5
- Fully Connected Layer 2 (Output): 5 neuron (sesuai jumlah kelas), aktivasi softmax
Implementasi
Untuk implementasi proyek ini, kami menggunakan Python dan Google Colab sebagai lingkungan pengembangan. Google Colab dipilih karena menyediakan akses gratis ke GPU, yang sangat membantu dalam mempercepat proses pelatihan model CNN.
Berikut adalah langkah-langkah utama dalam implementasi:
- Import library yang diperlukan (TensorFlow, Keras, NumPy, Matplotlib, dll.)
- Load dan preprocessing dataset
- Membagi dataset menjadi training set dan validation set
- Membangun model CNN
- Melatih model
- Evaluasi model
- Melakukan prediksi pada data baru

Pelatihan Model
Model dilatih menggunakan optimizer Adam dengan learning rate yang disesuaikan. Kami menggunakan categorical crossentropy sebagai fungsi loss, yang sesuai untuk masalah klasifikasi multi-kelas. Pelatihan dilakukan selama beberapa epoch, dengan early stopping untuk mencegah overfitting.
Selama proses pelatihan, kami memantau akurasi dan loss pada training set dan validation set. Grafik performa model selama pelatihan dapat memberikan wawasan tentang bagaimana model belajar dan apakah ada tanda-tanda overfitting atau underfitting.
Evaluasi Model
Setelah pelatihan selesai, model dievaluasi menggunakan metriks seperti akurasi, presisi, recall, dan F1-score. Confusion matrix juga digunakan untuk melihat performa model secara lebih detail, terutama untuk mengidentifikasi jenis bunga mana yang sering tertukar dalam klasifikasi.
Hasil dan Diskusi
Hasil eksperimen menunjukkan bahwa model CNN yang dikembangkan mampu mengklasifikasikan kelima jenis bunga dengan akurasi yang cukup tinggi. Beberapa observasi penting:
- Akurasi tertinggi dicapai untuk bunga Sunflower, kemungkinan karena karakteristiknya yang sangat khas.
- Bunga Orchid dan Lilly terkadang tertukar dalam klasifikasi, mungkin karena kesamaan dalam bentuk kelopak pada beberapa varietas.
- Augmentasi data terbukti efektif dalam meningkatkan performa model, terutama untuk jenis bunga dengan jumlah sampel yang lebih sedikit.
Tantangan dan Solusi
Selama pengembangan proyek, kami menghadapi beberapa tantangan:
- Imbalance dataset: Beberapa jenis bunga memiliki jumlah sampel yang lebih sedikit. Hal ini diatasi dengan augmentasi data yang lebih intensif untuk kelas-kelas tersebut.
- Overfitting: Pada awalnya, model cenderung overfitting pada training data. Penambahan regularisasi seperti dropout dan data augmentasi membantu mengatasi masalah ini.
- Variasi dalam kondisi pengambilan gambar: Perbedaan pencahayaan dan sudut pengambilan gambar dapat mempengaruhi akurasi. Solusinya adalah dengan memperbanyak variasi dalam dataset dan menggunakan teknik augmentasi yang lebih beragam.
Kesimpulan dan Pekerjaan Masa Depan
Proyek ini mendemonstrasikan efektivitas Convolutional Neural Network dalam klasifikasi jenis bunga. Model yang dikembangkan mampu membedakan lima jenis bunga (Lilly, Lotus, Orchid, Sunflower, dan Tulip) dengan tingkat akurasi yang memuaskan. Keberhasilan ini menunjukkan potensi penggunaan deep learning dalam bidang botani dan pertanian.
Untuk pengembangan lebih lanjut, beberapa area yang dapat dieksplorasi antara lain:
- Menambah jumlah dan variasi jenis bunga dalam dataset.
- Menggunakan teknik transfer learning dengan model pre-trained seperti VGG16 atau ResNet untuk meningkatkan performa.
- Mengimplementasikan model dalam aplikasi mobile untuk identifikasi bunga secara real-time.
- Mengeksplorasi teknik visualisasi untuk memahami fitur-fitur yang dipelajari oleh model.
Dengan terus berkembangnya teknologi deep learning dan ketersediaan data yang semakin besar, klasifikasi jenis bunga menggunakan CNN memiliki potensi besar untuk aplikasi praktis dalam berbagai bidang, mulai dari edukasi botani hingga pertanian presisi.
Portofolio
Berikut kami tampilkan beberapa portofolio yang pernah kami kerjakan. Lihat Selengkapnya
Oleh : Firda
Tanggal Publikasi :
Bebas DP bagi Skripsi dengan Judul dan Konsep yang Jelas
Sisa Kuota 2