Membangun Mata Buatan: Mengajari Komputer Memilah Sampah Menggunakan CNN
Masalah sampah bukan lagi sekadar isu lingkungan semata, melainkan sudah menjadi krisis global yang menuntut solusi cerdas dan cepat. Kita sering mendengar seruan bahwa kunci utama daur ulang adalah pemilahan, namun melakukan hal tersebut secara manual tentu melelahkan, lambat, dan rentan kesalahan manusia. Di sinilah teknologi berperan. Bagaimana jika kita bisa melatih komputer untuk membedakan antara botol plastik, pecahan kaca, dan kardus bekas hanya dengan "melihat" gambarnya?
Jawabannya ada pada teknologi Deep Learning, khususnya metode yang disebut Convolutional Neural Network atau CNN. Dalam artikel ini, saya akan mengajak Anda menyelami konsep di balik CNN dan bagaimana kita menuangkannya ke dalam barisan kode Python untuk menciptakan sistem klasifikasi sampah cerdas.
Memahami Cara Komputer "Melihat"
Sebelum kita menyentuh baris kode, ada baiknya kita pahami dulu logika di balik CNN. Bayangkan bagaimana seorang anak kecil belajar mengenali sebuah objek, misalnya kucing. Anak tersebut tidak menghafal setiap helai bulu kucing satu per satu. Sebaliknya, ia belajar mengenali fitur-fitur uniknya secara bertahap, seperti bentuk telinga yang lancip, adanya kumis, dan bentuk mata yang khas.
CNN bekerja dengan prinsip yang sangat mirip. Ia tidak menelan mentah-mentah sebuah gambar sebagai satu kesatuan. Alih-alih demikian, CNN memecah gambar tersebut menjadi fitur-fitur visual melalui proses yang disebut Konvolusi. Bayangkan Anda menyorotkan senter kecil ke sebuah gambar besar di ruang gelap. Anda menggeser senter itu perlahan dari kiri ke kanan, atas ke bawah, untuk menemukan pola-pola tertentu seperti garis lurus, lengkungan, atau tekstur kasar. Itulah tugas utama dari Convolutional Layer.
Setelah fitur-fitur tersebut ditemukan, komputer perlu menyederhanakannya agar tidak terlalu berat untuk diproses. Proses ini dinamakan Pooling. Ini mirip seperti ketika kita memicingkan mata untuk melihat garis besar sebuah objek tanpa perlu pusing dengan detail-detail kecil yang tidak penting.
Terakhir, setelah semua fitur penting terekstrak dan disederhanakan, data tersebut akan dikirim ke jaringan saraf tiruan biasa (Fully Connected Layer) yang bertindak sebagai "otak". Bagian inilah yang akhirnya membuat keputusan dan menyimpulkan, "Berdasarkan pola lengkungan dan transparansi ini, kemungkinan besar ini adalah botol plastik."
Persiapan Data dan Lingkungan Kerja
Sekarang saatnya kita menerjemahkan teori tersebut ke dalam praktik. Langkah pertama adalah menyiapkan lingkungan kerja kita. Kita akan menggunakan Python dengan bantuan library TensorFlow dan Keras yang sangat populer di kalangan pengembang AI.
Hal pertama yang perlu kita lakukan adalah mengimpor peralatan tempur kita. Kita butuh TensorFlow untuk kerangka kerja utamanya, ImageDataGenerator untuk mengurus gambar, dan beberapa lapisan atau layer untuk membangun modelnya nanti.
Setelah peralatan siap, tantangan berikutnya adalah data. Komputer itu makhluk yang sangat kaku, jadi kita harus memastikan data gambar yang masuk sudah seragam. Di sinilah proses Preprocessing memegang peranan vital.
Kita akan melakukan dua hal penting di sini. Pertama adalah normalisasi, yaitu mengubah nilai piksel gambar dari rentang 0-255 menjadi 0-1 agar proses hitungan matematikanya lebih ringan. Kedua adalah augmentasi data. Karena mengumpulkan ribuan foto sampah itu sulit, kita bisa mengakali komputer dengan memanipulasi gambar yang sudah ada—memutarnya sedikit, menggesernya, atau membaliknya. Tujuannya agar model kita tidak sekadar "menghafal" posisi sampah, tapi benar-benar mengenali bentuknya.
Merancang Arsitektur Otak Buatan
Inilah bagian paling menarik. Kita akan menyusun lapisan-lapisan neural network ibarat menyusun balok Lego. Kita memulainya dengan mendefinisikan model Sequential, yang artinya kita akan menumpuk lapisan satu per satu dari depan ke belakang.
Lapisan pertama adalah mata kita, yaitu Conv2D dan MaxPooling2D. Kita bisa menumpuk beberapa lapisan ini. Semakin dalam lapisannya, semakin kompleks fitur yang bisa dikenali. Awalnya mungkin hanya mengenali garis tepi botol, tapi di lapisan yang lebih dalam, ia bisa mengenali tekstur plastik atau label kemasan.
Setelah puas dengan ekstraksi fitur, kita gunakan perintah Flatten untuk mengubah data gambar 2 dimensi menjadi satu baris data panjang, agar bisa dimasukkan ke lapisan Dense (klasifikasi). Di ujung model, kita pasang lapisan output dengan fungsi aktivasi softmax karena kita ingin memilah sampah ke dalam beberapa kategori sekaligus.
Melatih Model Untuk Belajar
Model yang baru saja kita susun itu masih kosong, ibarat bayi yang baru lahir. Sekarang saatnya kita melatihnya. Kita perlu menentukan metode belajarnya menggunakan optimizer bernama Adam, dan kita menggunakan categorical_crossentropy sebagai tolak ukur kesalahannya karena kita berurusan dengan klasifikasi multi-kategori.
Kita akan membiarkan model ini "melihat" data sampah kita berulang-ulang sebanyak 25 kali putaran atau epochs. Harapannya, setiap kali putaran selesai, tingkat akurasinya akan semakin naik dan tingkat kesalahannya semakin turun secara bertahap.
Moment Pembuktian
Setelah proses pelatihan selesai yang mungkin memakan waktu beberapa menit, kita kini memiliki sebuah model yang cerdas. Namun seberapa cerdas? Kita bisa mengujinya dengan memberikannya gambar sampah baru yang belum pernah ia lihat sama sekali selama proses latihan.
Kode di bawah ini berfungsi untuk memuat gambar baru, memprosesnya agar sesuai dengan format yang dimengerti model, dan kemudian meminta model untuk menebaknya.
Jika semuanya berjalan lancar, komputer kini bisa memberi tahu Anda apakah gambar yang Anda unggah itu adalah Organik atau Anorganik .
Perjalanan membangun klasifikasi citra sampah ini menunjukkan bahwa teknologi Deep Learning bukan lagi sihir yang sulit dijangkau. Dengan pemahaman konsep yang tepat tentang bagaimana CNN mengekstrak fitur visual, kita bisa membangun solusi nyata untuk membantu mengatasi permasalahan lingkungan di sekitar kita.
Komentar
Posting Komentar