Sabtu, 08 Oktober 2016

Menyortir Mentimun Menggunakan Deep Learning dan TensorFlow

   Kali ini saya akan membahas mengenai teknologi penyortir mentimun yang dilakukan oleh Makoto Koike  menggunakan deep learning dan tensorflow untuk kebun milik orang tuanya . Makoto sangat terkejut dengan banyaknya beban kerja yang harus dilakukan untuk menyortir timun berdasarkan ukuran, bentuk, warna dan atribut-atribut lainnya. 


Keluarga Petani Mentimun Asal Jepang Ini Menggunakan Deep Learning dan TensorFlow


Ayah Makoto sangat membanggakan mentimun "berduri" yang diproduksi kebunnya, Ia telah mendedikasikan hidupnya untuk memproduksi mentimun yang segar dan krispi yang masih memiliki "duri-duri" di badannya. Mentimun yang lurus dan gemuk dengan warna yang terang serta memiliki banyak "duri" merupakan mentimun yang berkualitas dan memiliki harga lebih tinggi di pasaran.
Akhirnya  Makoto dengan cepat menyadari bahwa proses menyortir mentimun merupakan pekerjaan yang sama sulitnya dengan menanam mentimun itu sendiri. "Tiap mentimun memiliki warna, bentuk, kualitas serta tingkat kesegaran yang berbeda", ujar Makoto.
Mentimun dari kebun MakotoDi Jepang, tiap kebun memiliki standar sendiri-sendiri dan tidak ada standar resmi. Kebun Makoto menyortir mentimunnya kedalam sembilan kelas, Ibu Makoto lah yang menyortir keseluruhan mentimun secara manual yang menghabiskan waktu sampai dengan delapan jam per hari saat waktu panen tiba.
"Proses penyortiran ini bukan sebuah pekerjaan yang mudah untuk dipelajari. Kita harus melihat tidak hanya berdasarkan ukuran dan tebalnya, namun juga warna, tekstur, goresan, apakah mereka bungkuk atau tidak dan apakah mereka memiliki "duri-duri. Butuh waktu berbulan-bulan untuk mempelajari sistemnya dan kita tidak dapat mempekerjakan karyawan part-time untuk bekerja di waktu-waktu paling sibuk. Saya sendiri baru memahami bagaimana menyortir timun dengan baik," terang Makoto lagi.
Mentimun yang bengkok diklasifikasi sebagai produk berkualitas rendah
Mesin penyortir otomatis telah tersedia di pasar, namun mesin tersebut memiliki keterbatasan dalam hal performa dan harga, selain itu kebun yang relatif kecil biasanya tidak menggunakan mesin ini.
Makoto tidak merasa bahwa penyortiran merupakan pekerjaan penting bagi petani mentimun. "Petani ingin fokus dan menghabiskan waktu mereka untuk menanam sayuran yang lezat. Saya ingin mengotomasi proses penyortiran sebelum mengambil alih bisnis perkebunan ini dari orangtua saya."

Makoto Koike, tengah, dengan kedua orangtuanya di kebun mentimun keluarga
Makoto pertama kali mendapatkan ide ngoprek machine learning untuk proses penyortiran mentimun dari studi kasus yang jauh berbeda: GoogleAlphaGo yang berhasil mengalahkan pemain Go profesional terbaik dunia.
"Saat melihat Google AlphaGo, Saya menyadari ada sesuatu yang sangat spektakuler terjadi di sini," ujar Makotor. "Berita itu telah memancing saya untuk memulai mengembangkan penyortir mentimun dengan teknologi deep learning".


Sortir, deep learning dan tensorflow  itu apa ?

Sortir/grading merupakan kegiatan dalam penanganan pasca panen yang bertujuan untuk memisahkan bahan utama berdasarkan mutu yang dimiliki bahan tersebut atau pemisahan bahan baku ke dalam kategori-kategori berdasarkan kualitasnya.

Deep Learning
 sendiri merupakan tumpukan/stack dari beberapa algoritma atau metode, sehingga berkembang berbagai pendekatan deep learning dengan berbagai arsitektur. Beberapa tujuan dari tumpukan metode/deep learning  ini adalah feature extraction, juga memanfaatkan seluruh resourceseoptimal mungkin.


Sedangkan Tensorflow merupakan  sebuah mesin belajar dengan sistem pengembangan open source. Tensor Flow digunakan untuk segala sesuatu dari pengenalan suara di aplikasi Google, Smart Reply di Inbox, atau untuk mencari sesuatu di Google Photo.
Menggunakan deep learning untuk pengenalan citra memungkinkan sebuah komputer untuk belajar dari kumpulan data mengenai fitur-fitur yang dimiliki oleh tiap gambar. Menggunakan neuron-neuron buatan, deep learning dapat secara otomatis mengklasifikasi gambar dengan tingkat akurasi yang tinggi. Dengan demikian, neural network dapat mengenal berbagai spesies kucing, atau model mobil atau bahkan pesawat hanya dari gambar. Terkadang neural network dapat bekerja lebih baik dari mata manusia untuk aplikasi tertentu.
Benarkah komputer dapat belajar seni menyortir mentimun sang Ibu? Makoto memutuskan untuk melihat apakah Ia dapat menggunakan teknologideep learning untuk menyortir mentimun menggunakan pustaka machine learning yang belum lama ini di open source kan oleh Google, TensorFlow.
"Google baru saja meng-open source-kan TensorFlow, jadi Saya ingin mulai mencobanya dengan gambar-gambar mentimun saya," jelas Makoto. "Ini merupakan pertama kalinya saya mencoba menggunakan teknologi machine learning atau deep learning, dan langsung mendapatkan akurasi yang lebih tinggi dari yang saya harapkan. Hasil tadi memompa kepercayaan diri bahwa teknologi ini dapat mengatasi permasalahan yang saya hadapi."
Dengan TensorFlow, kita tidak perlu menjadi ahli model matematika atau optimasi algoritma untuk mengimplementasi deep neural network. Cukup unduh contoh kode yang ada dan membaca tutorialnya, kita dapat langsung mulai menyelami samudra deep learning. Pustaka ini menurunkan tingkat kesulitan untuk menggunakan teknologi machine learning dan sejak Google meng-open source-kan TensorFlow November lalu, banyak orang yang bukan ahli machine learning memanfaatkan teknologi ini dengan aplikasi dan kumpulan data mereka sendiri.

Desain sistem penyortiran mentimun

Berikut ini diagram sistem untuk penyortir mentimun yang dibuat oleh Makoto. Sistem ini menggunakan Raspberry Pi 3 sebagai pengontrol utama untuk mengambil foto mentimun dengan sebuah kamera, dan melakukan analisis tahap awal menggunakan TensorFlow untuk menentukan apakah gambar yang diambil merupakan mentimun atau bukan. Apabila telah dipastikan bahwa gambar yang diambil adalah gambar mentimun, maka gambar ini akan dikirim ke program yang sesungguhnya di server Linux untuk menjalankan pendeteksian kualitas mentimun dengan lebih akurat.
Diagram sistem penyortir mentimun
Makoto menggunakan contoh kode TensorFlow Deep MNIST for Expertsdengan sedikit modifikasi. Berikut ini mesin penyortir buatan Makoto yang mulai beroperasi pada bulan Juli:

Berikut ini foto close-up dari tangan penyortir dan antarmuka kamera:


Dan berikut ini video mesin penyortir mentimun saat bekerja:

Apa Hambatan utama nya ?

Tantangan yang paling berat bagi deep learning adalah kita membutuhkantraining dataset yang banyak. Untuk melatih model penyortir mentimun ini, Makoto menghabiskan tiga bulan penuh untuk mengambil 7.000 gambar mentimun yang disortir oleh ibunya, namun jumlah ini mungkin tidak cukup.
"Saat saya melakukan validasi dengan sebuah contoh-contoh gambar, tingkat akurasinya melebihi 95%. Namun saat kita mengaplikasikan sistem dengan kondisi yang sebenarnya, tingkat akurasi menurun menjadi sekitar 70%. Saya mencurigai model neural network ini memiliki masalah overfitting (fenomenaneural network di mana model yang dilatih hanya sesuai pada dataset yang terbatas) karena jumlah gambar pelatih yang kurang banyak."
Tantangan yang kedua dari deep learning  itu adalah besarnya daya komputasi yang dibutuhkan. Penyortir yang telah bekerja berjalan di PC Windows untuk melatih neural network model. Meskipun ia mengubah ukuran gambar mentimun ke dalam resolusi yang lebih rendah berukuran 80 x 80 pixel, mesin penyortir ini masih membutuhkan dua hingga tiga hari untuk menyelesaikan proses pelatihan model dengan 7.000 gambar.
"Bahkan dengan gambar beresolusi rendah ini, sistem yang ada hanya dapat mengklasifikasinya berdasarkan bentuk, panjang dan tingkat pembelokan. Sistem ini tidak dapat mengenali gambar, tekstur, goresn dan durinya," Makoto menjelaskan. Meningkatkan resolusi gambar dengan melakukanzooming dapat menaikkan tingkat akurasi namun juga membuat waktu pelatihan menjadi lebih lama.
Untuk meningkatkan "deep learning", beberapa perusahaan besar melakukantraining terdistribusi dalam skala besar, namun tentu server tersebut meningkatkan besar biaya yang dibutuhkan. Google menawarkan Cloud Machine Learning (Cloud ML), sebuah platform cloud terjangkau yang dapat melakukan training dan prediksi menggunakan ratusan server cloud terdistribusi dengan TensorFlow. Dengan Cloud ML, Google akan menangani sistem cluster berskala besar untuk training terdistribusi, dan kita cukup membayar apa yang terpakai sehingga developer akan lebih mudah untuk mencoba teknologi deep learning tanpa melakukan investasi yang signifikan.
Server khusus yang digunakan saat pertandingan AlphaGo
Makoto begitu menantikan Cloud ML. "Saya dapat menggunakan Cloud ML untuk mencoba melatih model dengan resolusi gambar yang lebih tinggi dan jumlah data yang lebih besar. Selain itu, Saya juga dapat mencoba mengganti konfigurasi, parameter, serta algoritma dari neural network untuk melihat peningkatan akurasinya. Saya tak dapat menunggu untuk mencoba teknologi ini."



Menurut saya inovasi produk ini sangat berguna untuk petani yang hanya memiliki kebun kecil sendiri. Karena mesin sortir/ grading yang ada dipasaran harga yang ditawarkan cukup mahal  dan tidak sebanding dengan besarnya panen yang dihasilkan para petani kecil . Kita tahu baha proses penyortiran dengan tangan bukan sebuah pekerjaan yang mudah untuk dipelajari. Kita harus melihat tidak hanya berdasarkan ukuran dan tebalnya, namun juga warna, tekstur, goresan, apakah mereka bungkuk atau tidak dan apakah mereka memiliki "duri-duri" sehingga alat ini cukup membantu dalam hal penyortiran walupun belum sempurna. Sebab perlu dilatih lagi model dengan resolusi gambar yang lebih tinggi dan jumlah data yang lebih besar sehingga tingkat akurasi bisa bertambah .

Sumber :