Ini adalah proyek klasifikasi gambar untuk mengidentifikasi 5 bentuk wajah wanita menggunakan Convolutional Neural Networks (CNN) . Saya menyelesaikan ini sebagai Proyek Capstone saya untuk Kursus Immersive Ilmu Data dengan Majelis Umum (Oktober 2020).
Proyek ini juga digunakan sebagai aplikasi web menggunakan Stremlit di Heroku. Jika Anda tertarik, periksa bentuk wajah Anda di myfaceshape.herokuapp.com
Berdasarkan Tinjauan Konsumen Deloitte, konsumen menuntut pengalaman yang lebih personal, namun uji coba tetap rendah. Dalam industri kecantikan dan mode, lebih dari 40%orang dewasa berusia 16-39 tertarik pada penawaran yang dipersonalisasi, sementara uji coba hanya 10%-14%. Di antara mereka yang tertarik, ~ 80% bersedia membayar setidaknya 10% lebih tinggi.
Dengan dapat mengklasifikasikan bentuk wajah akan memungkinkan merek untuk menawarkan solusi yang lebih personal untuk meningkatkan kepuasan pelanggan, sambil meningkatkan margin dari posisi premium. Contoh penggunaan kasus adalah:
Untuk proyek ini, saya akan menggunakan pendekatan pembelajaran yang mendalam dengan Convolutional Neural Networks (CNN) untuk mengklasifikasikan 5 bentuk wajah wanita yang berbeda (jantung, lonjong, oval, bulat, persegi). Model yang merupakan skor akurasi tertinggi akan dipilih.
Saya telah menjelajahi 2 pendekatan CNN dengan membangun dari awal vs. Trasfer Learning dengan arsitektur VGG-16 dan bobot terlatih dari VGGFACE. Pendekatan pembelajaran transfer membantu meningkatkan akurasi, sedangkan bentuk wajah yang paling salah diklasifikasikan adalah 'oval'.
Pra-pemrosesan gambar juga memainkan peran penting dalam mengurangi overfitting dan meningkatkan akurasi validasi. Driver utama adalah:
Dataset bentuk wajah adalah dataset dari Kaggle oleh Niten Lama.
Dataset ini terdiri dari total 5000 gambar selebriti wanita dari seluruh dunia yang dikategorikan menurut bentuk wajah mereka yaitu:
Setiap kategori terdiri dari 1000 gambar (800 untuk pelatihan: 200 untuk pengujian)
Pra-pemrosesan gambar adalah faktor penting dalam mengurangi overfitting model ke dataset pelatihan, dan meningkatkan akurasi validasi. Langkah -langkah berikut telah dieksplorasi:
Model CNN yang dibangun dari awal dengan data pelatihan terbatas dari 4000 gambar (800 gambar x 5 kelas), saya membangun model dengan 4 lapisan convolutional + max-pooling, dan 2 lapisan padat (detail di bawah).
Model CNN dengan Transfer Learning memungkinkan saya untuk menggunakan arsitektur VGG-16 yang lebih kompleks, dengan menggunakan bobot terlatih dari VGGFACE yang telah dilatih pada lebih dari 2,6 juta gambar.
Pembelajaran transfer membantu meningkatkan akurasi secara signifikan, dari 76,9% menjadi 92,7%, dengan bantuan bobot pra-terlatih pada dataset yang lebih besar.
Dari model yang dibangun dari awal, semua model berkinerja lebih baik daripada baseline 20% (5 kelas seimbang dengan masing -masing 20%).
Ringkasan semua model di bawah ini.
Kedua model memiliki kesalahan klasifikasi tertinggi pada bentuk wajah oval . Meskipun model pembelajaran transfer meningkatkan keakuratan model yang dibangun dari awal, namun Oval masih yang paling salah diklasifikasikan, dengan mayoritas diklasifikasikan oval sebagai putaran. Menariknya, wajah bundar juga sebagian besar salah diklasifikasikan sebagai oval, meskipun kesalahan klasifikasi keseluruhan untuk bentuk wajah bundar rendah. Kebingungan antara oval dan bulat sebagian besar adalah wajah Asia, dan terlebih lagi dengan pembelajaran transfer. Ini kemungkinan karena bobot pretrained memiliki lebih sedikit gambar Asia.