Mencoba Custom Model AutoML Vision Edge di Coral Edge TPU

Pada artikel kali ini, kami akan mencoba membuat custom model dari gambar yang diidentifikasi dan dipelajari menggunakan AutoML Vision untuk “Coral Edge TPU”, suatu TPU yang berorientasi pada tepi khusus untuk inferensi, dan menganalisis secara real time menggunakan kamera Raspberry pi.


Penjelasan Terkait AutoML dan Edge TPU

Kami akan mulai menjelaskan tentang Edge TPU dan AutoML.

Apakah yang Dimaksud dengan TPU?

Deep learning sangat akurat dalam tugas mengidentifikasi gambar. Namun, di sisi lain, pengoperasian deep learning ini mahal sekali, dan biasanya CPU tidak menyediakan processing speed yang cukup. Dalam kondisi seperti ini, beberapa perusahaan menciptakan bermacam-macam device supaya bisa mempercepat penghitungan.

NVIDIA Graphics Processing Unit dan FPGA memang cukup terkenal, tapi Google memiliki suatu processor unik yang disebut TPU (Tensor Processing Unit) yang memang dirancang khusus untuk deep learning. CPU dan GPU merupakan processor yang dirancang untuk tujuan-tujuan umum yang menjalankan semua tasks di komputer, tetapi saat proses pembacaan dan penulisan memori yang terjadi, seketika menjadi bottleneck atau transmisi datanya macet saat operasi matriks dilakukan dalam deep learning.

TPU meningkatkan efisiensi processing dengan cara langsung memberikan hasil penghitungan (tanpa melalui memori) ke bagian lain (bisa dikatakan bahwa prosesor dioptimalkan untuk deep learning). Perangkatnya memang murah, hemat daya, dan cukup kompatibel dengan software (nanti akan dijelaskan kemudian mengenai dukungan penuh TensorFlow Lite), menjadikannya sebuah perangkat yang sangat hemat biaya dan cepat.

Edge TPU dan Coral

TPU dan GPU di satu sisi mempercepat pembelajaran deep learning, tetapi di sisi lain jika suatu model dibuat dan pengguna mencoba untuk mengeksekusi model tersebut, tidak peduli seberapa cepat prosesor itu (di luar internet sekalipun). Tujuannya adalah untuk meletakkan prosesor di tepi (terminal) dan membuat inferensi di sisi terminal tanpa melalui internet.

Supaya memudahkan pengguna umum untuk menggunakan teknologi embedded AI, Google mendukung lingkungan pengembangan terintegrasi (hardware + software) yang menghubungkan Edge TPU, TensorFlow, dan cloud di bawah naungan merk Coral. Saat ini produk yang dijual antara lain adalah:

1. Dev Board

Dev board merupakan perangkat dengan Edge TPU yang dipasang pada SBC (Single Board Computer). Karena Edge TPU terhubung langsung ke SBC, latensi yang berasal dari antarmuka (penundaan pemrosesan) tidak terjadi dan kinerja asli Edge TPU bisa diperlihatkan. OS mendukung Mendel Linux (Debian), dan kerangka kerja dan bahasa mendukung TensorFlow Lite, Python, dan C ++. Model AutoML Vision Edge bisa diekspor.

2. USB Accelerator

Ini adalah versi aksesori dari USB Edge TPU. USB Accelerator adalah USB3.0, tetapi karena Raspberry pi yang direkomendasikan sebagai SBC adalah USB2.0 (versi terbaru 3B +), terjadi overhead (secara teoritis USB2.0 itu 480Mbps, USB3.0 adalah 5Gbps, berarti ada perbedaan 10 kali lipat). OS mendukung Debian Linux dan kerangka kerja mendukung TensorFlow Lite. Inferensi model AutoML Vision Edge dimungkinkan dengan menghubungkan dengan SBC.

3. Camera

Modul kamera 5 megapiksel yang dapat dihubungkan ke Dev Board. Sayangnya tidak bisa diimpor di Jepang.

4. Environmental Sensor Board

Papan aksesori yang menyediakan sensor suhu, cahaya, dan kelembaban untuk aplikasi IoT. Dapat dihubungkan ke Dev Board dan Raspberry pi. Bisa dihubungkan juga dengan Cloud IoT Core tetapi tidak dapat diimpor di Jepang.

Apakah AutoML Vision Edge itu?

AutoML adalah custom model machine learning non-pemrograman, dengan tingkat akurasi tinggi yang dapat dibuat di cloud GCP. Baru-baru ini, telah diumumkan di Google Cloud Next 2019, "AutoML Vision Edge", sebuah fungsi yang dapat mengekspor model klasifikasi gambar yang dibuat ke perangkat Edge.

Dalam artikel ini, selain menampilkan Edge TPU, Anda juga bisa mengekspor ke perangkat seluler seperti perangkat Android dan iPhone.

Langkah-langkah Validasi

Nah, sekarang mari mulai menjalankan percobaannya. Apabila dijabarkan, langkah-langkah validasinya adalah seperti berikut ini

  1. Mempersiapkan data berupa gambar ‘kacang’
  2. Membuat model klasifikasi khusus dengan mempelajari gambar dengan AutoML Vision Edge
  3. Men-deploy model yang dibuat ke environment TPU Raspberry pi dan Coral Edge
  4. Mencoba mengidentifikasi ‘kacang’ secara real time dengan kamera Raspberry pi.

Membuat model klasifikasi khusus dengan mempelajari gambar dengan AutoML Vision Edge

Tema: Klasifikasi 6 Jenis Kacang

Data yang digunakan untuk pembelajaran adalah 6 jenis makanan ringan berupa kacang yang dibeli di supermarket.

  • Almonds:kacang almond
  • Walnuts:kacang walnut
  • Tiger nuts:kacang tigernuts
  • Goji berries:goji berry
  • Banana chips:keripik pisang
  • Cashews:kacang mete

Kacang yang digunakan dalam pembelajaran AutoML ini berbeda dengan kacang yang digunakan untuk mengklasifikasi gambar real-time di Edge TPU.

Menyiapkan Dataset

Ambil video dari atas piring seperti dijelaskan di atas dengan film kamera smartphone.

Kemudian bagi video menjadi gambar diam dan unggah untuk dataset AutoML. Total 2858 gambar dimuat seperti yang ditunjukkan di bawah ini. Dalam video smartphone, gambar diambil berulang kali pada jarak dan sudut yang berbeda, sehingga gambar yang serupa disertakan. Latar belakang (meja) dan piringan standar dalam warna putih, dan kumpulan data dibuat sehingga AutoML tidak akan fokus pada latar belakang sebagai target klasifikasi.

Belajar dengan AutoML Vision

Ada sekitar kurang dari 500 dataset yang direkomendasikan untuk AutoML di setiap kelas, tetapi dari setiap kelas tersebut tidak ada deviasi, dan dengan begitu data yang bagus bisa dibuat dalam waktu yang cepat.

Baik, sekarang mari kita mulai. Buatlah pilihan seperti di bawah ini:

  • Model type:”Edge”
  • Optimize model for:”Lowest latency”
  • Show latency estimates for:”Edge TPU”
  • Set a node hour budget:”4 node hours(recommended)”

Kali ini, kami ingin memverifikasi kecepatan Coral Edge TPU, jadi kami memilih setting seperti ini, namun jika Anda lebih memprioritaskan keakuratan, Anda bisa memilih mode “Higher accuracy”. Ukuran model pun bisa bervariasi tergantung dari perangkat dan bagaimana Anda mengoptimalkannya. Hanya perlu diperhatikan bahwa pada umumnya tingkat keakuratan akan menurun saat ukuran model juga mengecil.

Anda akan menerima email notifikasi setelah pelatihan ini, jadi silakan tutup laman ini.

Evaluasi Model dan Keakuratan

Pelatihan sudah selesai dalam waktu kira-kira 2 jam, kemudian mari kita lihat tingkat keakuratannya.

Sebuah model dengan presisi AVG 1.0 dan tingkat keakuratan 100% sudah selesai dibuat. Selanjutnya, mari kita lihat tabel matriks di bawah ini. Semuanya 100%.

Biaya Terkait Pelatihan

Pelatihan dengan durasi sekitar 2 jam ini membutuhkan biaya sebesar 1000 Yen.

Pertimbangan Tentang Evaluasi Model

Dari dataset yang sudah disiapkan kali ini, video kacang tersebut dibagi menjadi beberapa gambar diam dan dibaca secara acak ke dalam AutoML terlepas apakah itu untuk pembelajaran, untuk verifikasi atau untuk pengujian, sehingga gambar yang sangat mirip dimasukkan untuk pembelajaran dan pengujian. Anda bisa melihat bahwa dari komposisi kumpulan data ini, AutoML memberikan skor sebesar 100%, tetapi sebenarnya tidak ada model machine learning yang memberikan “tingkat akurasi 100%''.

Mengekspor Model

Pilihlah ”PREDICT” → ”EDGE DEVICES” → ”Edge TPU”

Setelah itu, path ke GCS (Google Cloud Storage) akan ditampilkan sebagai tujuan ekspor dari model Edge TPU. Klik tombol “EXPORT” kemudian cek kembali apakah file model sudah ditempatkan.

Berdasarkan gambar di bawah ini, sudah ada 3 file yang diekspor ke GCS.

Modifikasi Konten Model File dan Eksekusi Program Prediksi

Fungsi dari masing-masing model file dijelaskan seperti berikut ini.

  • dict.txt

File dengan nama label model. Nampaknya, ini adalah struktur kamus karena nama file-nya “dict”, tetapi hanya nama label yang digambarkan seperti yang ditunjukkan pada gambar kiri ↓. Dalam kode sampel Coral yang akan digunakan nanti, coba tambahkan kolom indeks (spasi tunggal).

  • edgetpu_model.tflite

File ini merupakan model dalam format tflite. Model TensorFlow yang dikompilasi untuk Edge TPU.

  • tfile_metadata.json

File ini berisi informasi meta model. Anda bisa melihat batch size, jumlah channel gambar, dan juga ukuran gambar.

Eksekusi Analisa Real Time (Coral Edge TPU + Raspberry pi + AutoML Vision Edge)

Persiapan Kamera dan Raspberry pi

Selain referensi resmi Coral, silakan merujuk pada artikel-artikel berikut untuk pemilihan Raspberry Pi, cara memasang kamera Raspberry Pi, dan cara mengoperasikan model pembelajaran mesin dengan Raspberry Pi + Coral Edge TPU.

Menyambungkan SSH ke Raspberry pi dari komputer Anda

Setelah selesai dengan pengaturan Raspberry pi, sambungkan dan operasikan ke Raspberry pi dengan SSH dari Mac Anda. Akan lebih mudah mengaturnya apabila Anda menggunakan "VNC (Virtual Network Computing)".

Anda dapat menyimpan pengaturan koneksi SSH dan cukup klik dari GUI jika Anda ingin terhubung kembali. Dari gambar di bawah ini, maka Raspberry pi sudah bisa diakses dari desktop Mac Anda.

Cara Mengeksekusi Program dan Persiapan Environment dimana Model Dieksekusi

Silakan merujuk ke tutorial “Get started with the USB Accelerator” dan “Phython API overview & demos” yang terdapat di website Coral.

Beberapa model di bawah ini akan dieksekusi di console Raspber pi.

1. Edge TPU run time dan Install Phython Library

2. Salin file model dari GCS ke Raspberry pi

Dalam sampel Coral, biasanya menempatkan file model di bawah "~ / Downloads", sehingga model yang dibuat kali ini juga ditempatkan di sini. Mula-mula instal perintah gsutil di rasp pi.

3. Jalankan program Python untuk klasifikasi real-time

Coral mempunyai banyak kode sampel. Tentukan dan jalankan path model dan path kamus label yang dimodifikasi sebelumnya di “classify_capture.py”.

Sebelum menjalankan "classify_capture.py", harap modifikasi file "dict.txt" ke konten dalam "Modifikasi grup file model dan eksekusi program prediksi". Penulis mengedit langsung di Menu RaspberryPi > Accessories > Text Editor karena kalau menggunakan pengaturan vim untuk default Raspberry Pi cukup sulit.

Kalau proses eksekusi berhasil tanpa hambatan, mulai operasikan kamera di Raspberry pi. Dalam pengaturan default, apabila Anda tidak bisa melihat gambar kamera dari remote desktop, langsung periksa dengan menghubungkan display ke Raspberry pi.

Mengatur Peralatan dan Kacang untuk Inferensi

Untuk pengklasifikasian real-time, cobalah menggunakan produk yang berbeda dari kacang yang Anda gunakan pada saat pembelajaran.

Kemudian tata seperti gambar di bawah ini

Raspberry pi, Coral Edge TPU, dan display akan terhubung sebagai berikut. Sebuah kamera disematkan di bagian utama Raspberry pi, dan hasil tampilan langsung dan klasifikasi ditampilkan di layar. (Langit-langit terlihat, tetapi harus diklasifikasikan ke dalam salah satu dari enam jenis, sehingga "tiger nuts". "0,89" adalah probabilitas yang diprediksi, dan "10,50 ms (milidetik)" adalah waktu yang diperlukan untuk klasifikasi).

Melihat Hasil

Kita akan melihat hasil dari analisa real-time yang sudah dijalankan.

Bagaimana menurut Anda? Nampaknya semua bisa diklasifikasikan secara rasional, kecuali keripik pisang yang ada di sebelah kanan atas. Selain itu, kecepatan klasifikasi tidak akan muncul karena sisi Raspberry pi adalah USB 2.0, tetapi kami mendapat kesan bahwa itu lebih cepat dari yang diperkirakan.

Penutup

Alasan mengapa keripik pisang tidak bisa diklasifikasikan dengan baik adalah karena dianggap bentuk inferensi dan dilihat dari pembelajaran sangat berbeda dari yang lain seperti yang ditunjukkan di bawah ini. Untuk 5 jenis kacang lainnya, mereka berbeda inferensi dan pembelajaran, tetapi bentuknya serupa. Karena data yang sama dengan lingkungan produksi tidak selalu tersedia pada saat pembelajaran, tampaknya perlu untuk memperkuat data pembelajaran dan membuat kembali model (jika memungkinkan).

Kesimpulan

Kami mencoba klasifikasi gambar real-time dengan kombinasi "AutoML Vision Edge + Coral Edge TPU + Pie Rasp". Sepertinya fungsi Edge AI bisa diwujudkan dengan prosedur yang sangat sederhana. Meskipun kinerja penuh Coral Edge TPU belum diverifikasi kali ini, dapat dikatakan bahwa hasilnya masuk akal berkaitan dengan akurasi dan kecepatan.

Selain itu, AutoML Vision hanya men-support fungsi Edge pada saat ini (20 Juni 2019), namun sepertinya di masa mendatang "deteksi objek" akan bisa disupport. Silakan dicoba.