Apa itu computer vision? AI untuk gambar dan video

Visi komputer mengidentifikasi dan sering menempatkan objek dalam gambar dan video digital. Sejak organisme hidup memproses gambar dengan korteks visualnya, banyak peneliti telah menggunakan arsitektur korteks visual mamalia sebagai model jaringan saraf yang dirancang untuk melakukan pengenalan gambar. Penelitian biologi kembali ke tahun 1950-an.

Kemajuan dalam visi komputer selama 20 tahun terakhir benar-benar luar biasa. Meskipun belum sempurna, beberapa sistem visi komputer mencapai akurasi 99%, dan yang lainnya berjalan dengan baik di perangkat seluler.

Terobosan dalam bidang jaringan saraf untuk penglihatan adalah LeNet-5 1998 milik Yann LeCun, jaringan saraf konvolusional tujuh tingkat untuk pengenalan digit tulisan tangan yang didigitalkan dalam gambar 32x32 piksel. Untuk menganalisis gambar dengan resolusi lebih tinggi, jaringan LeNet-5 perlu diperluas ke lebih banyak neuron dan lebih banyak lapisan.

Model klasifikasi gambar terbaik saat ini dapat mengidentifikasi beragam katalog objek dengan resolusi HD dalam warna. Selain jaringan neural dalam murni (DNN), terkadang orang menggunakan model hybrid vision, yang menggabungkan pembelajaran mendalam dengan algoritme pembelajaran mesin klasik yang melakukan sub-tugas tertentu.

Masalah penglihatan lainnya selain klasifikasi citra dasar telah diselesaikan dengan deep learning, antara lain klasifikasi citra dengan lokalisasi, deteksi objek, segmentasi objek, transfer gaya citra, pewarnaan citra, rekonstruksi citra, resolusi super citra, dan sintesis citra.

Bagaimana cara kerja computer vision?

Algoritme visi komputer biasanya mengandalkan jaringan saraf konvolusional, atau CNN. CNN biasanya menggunakan convolutional, pooling, ReLU, fully connected, dan loss layers untuk mensimulasikan korteks visual.

Lapisan konvolusional pada dasarnya mengambil integral dari banyak daerah kecil yang tumpang tindih. Lapisan penggabungan melakukan bentuk pengambilan sampel ke bawah non-linier. Lapisan ULT menerapkan fungsi aktivasi non-saturasi f (x) = max (0, x) .

Dalam lapisan yang sepenuhnya terhubung, neuron memiliki koneksi ke semua aktivasi di lapisan sebelumnya. Lapisan kerugian menghitung bagaimana pelatihan jaringan menghukum penyimpangan antara label yang diprediksi dan label sebenarnya, menggunakan kerugian Softmax atau lintas entropi untuk klasifikasi.

Dataset pelatihan computer vision

Ada banyak set data citra publik yang berguna untuk melatih model vision. Yang paling sederhana, dan salah satu yang tertua, adalah MNIST, yang berisi 70.000 angka tulisan tangan dalam 10 kelas, 60K untuk pelatihan dan 10K untuk pengujian. MNIST adalah kumpulan data yang mudah untuk dimodelkan, bahkan menggunakan laptop tanpa perangkat keras akselerasi. CIFAR-10 dan Fashion-MNIST adalah kumpulan data 10 kelas yang serupa. SVHN (nomor rumah street view) adalah sekumpulan 600 ribu gambar nomor rumah dunia nyata yang diekstrak dari Google Street View.

COCO adalah kumpulan data skala besar untuk deteksi objek, segmentasi, dan pembuatan teks, dengan 330K gambar dalam 80 kategori objek. ImageNet berisi sekitar 1,5 juta gambar dengan kotak pembatas dan label, yang menggambarkan sekitar 100 ribu frase dari WordNet. Gambar Terbuka berisi sekitar sembilan juta URL ke gambar, dengan sekitar 5K label.

Google, Azure, dan AWS semuanya memiliki model visinya sendiri yang dilatih menggunakan database gambar yang sangat besar. Anda dapat menggunakan ini sebagaimana adanya, atau menjalankan pembelajaran transfer untuk menyesuaikan model ini dengan kumpulan data gambar Anda sendiri. Anda juga dapat melakukan pembelajaran transfer menggunakan model berdasarkan ImageNet dan Open Images. Keuntungan pembelajaran transfer dibandingkan membuat model dari awal adalah jauh lebih cepat (berjam-jam daripada berminggu-minggu) dan memberi Anda model yang lebih akurat. Anda masih membutuhkan 1.000 gambar per label untuk hasil terbaik, meskipun terkadang Anda bisa mendapatkan paling sedikit 10 gambar per label.

Aplikasi visi komputer

Meskipun penglihatan komputer tidak sempurna, seringkali cukup baik untuk menjadi praktis. Contoh yang baik adalah visi dalam mobil tanpa pengemudi.

Waymo, sebelumnya merupakan proyek mobil tanpa pengemudi Google, mengklaim pengujian di tujuh juta mil jalan umum dan kemampuan untuk menavigasi dengan aman dalam lalu lintas harian. Setidaknya ada satu kecelakaan yang melibatkan van Waymo; perangkat lunak itu diyakini tidak salah, menurut polisi.

Tesla memiliki tiga model mobil self-driving. Pada 2018 sebuah SUV Tesla dalam mode self-driving terlibat dalam kecelakaan fatal. Laporan kecelakaan itu mengatakan bahwa pengemudi (yang terbunuh) melepaskan tangannya dari roda kemudi meskipun ada banyak peringatan dari konsol, dan baik pengemudi maupun perangkat lunak tidak mencoba mengerem untuk menghindari menabrak penghalang beton. Sejak saat itu, peranti lunak tersebut telah ditingkatkan untuk mensyaratkan alih-alih menyarankan agar tangan pengemudi berada di roda kemudi.

Toko Amazon Go adalah toko ritel swalayan bebas pembayaran tempat sistem computer vision di dalam toko mendeteksi saat pembeli mengambil atau mengembalikan stok barang; pembeli diidentifikasi oleh dan ditagih melalui aplikasi Android atau iPhone. Jika perangkat lunak Amazon Go melewatkan suatu item, pembeli dapat menyimpannya secara gratis; ketika perangkat lunak salah mendaftarkan item yang diambil, pembeli dapat menandai item tersebut dan mendapatkan pengembalian uang untuk biaya tersebut.

Dalam perawatan kesehatan, ada aplikasi penglihatan untuk mengklasifikasikan fitur tertentu dalam slide patologi, rontgen dada, dan sistem pencitraan medis lainnya. Beberapa di antaranya telah menunjukkan nilai bila dibandingkan dengan praktisi manusia yang terampil, beberapa cukup untuk persetujuan peraturan. Ada juga sistem waktu nyata untuk memperkirakan kehilangan darah pasien di ruang operasi atau bersalin.

Ada aplikasi visi yang berguna untuk pertanian (robot pertanian, pemantauan tanaman dan tanah, dan analitik prediktif), perbankan (deteksi penipuan, otentikasi dokumen, dan deposit jarak jauh), dan pemantauan industri (sumur jauh, keamanan situs, dan aktivitas kerja).

Ada juga aplikasi computer vision yang kontroversial atau bahkan tidak digunakan lagi. Salah satunya adalah pengenalan wajah, yang bila digunakan oleh pemerintah dapat menjadi pelanggaran privasi, dan yang sering kali memiliki bias pelatihan yang cenderung salah mengidentifikasi wajah non-kulit putih. Lainnya adalah generasi deepfake, yang lebih dari sedikit menyeramkan jika digunakan untuk pornografi atau pembuatan hoax dan gambar penipuan lainnya.

Kerangka dan model computer vision

Sebagian besar kerangka kerja pembelajaran mendalam memiliki dukungan substansial untuk visi komputer, termasuk kerangka kerja berbasis Python TensorFlow (pilihan utama untuk produksi), PyTorch (pilihan utama untuk penelitian akademis), dan MXNet (kerangka kerja pilihan Amazon). OpenCV adalah pustaka khusus untuk computer vision yang condong ke arah aplikasi penglihatan waktu nyata dan memanfaatkan instruksi MMX dan SSE bila tersedia; itu juga memiliki dukungan untuk akselerasi menggunakan CUDA, OpenCL, OpenGL, dan Vulkan.

Amazon Rekognition adalah layanan analisis gambar dan video yang dapat mengidentifikasi objek, orang, teks, pemandangan, dan aktivitas, termasuk analisis wajah dan label khusus. Google Cloud Vision API adalah layanan analisis gambar terlatih yang dapat mendeteksi objek dan wajah, membaca teks yang dicetak dan teks tulisan tangan, serta membuat metadata ke dalam katalog gambar Anda. Google AutoML Vision memungkinkan Anda melatih model gambar kustom. Baik Amazon Rekognition Custom Labels dan Google AutoML Vision melakukan pembelajaran transfer.

Microsoft Computer Vision API dapat mengidentifikasi objek dari katalog 10.000, dengan label dalam 25 bahasa. Ini juga mengembalikan kotak pembatas untuk objek yang diidentifikasi. Azure Face API melakukan deteksi wajah yang mengenali wajah dan atribut dalam gambar, identifikasi orang yang cocok dengan individu dalam penyimpanan pribadi Anda hingga satu juta orang, dan pengenalan emosi. Face API dapat berjalan di cloud atau di edge dalam container.

IBM Watson Visual Recognition dapat mengklasifikasikan gambar dari model yang telah dilatih sebelumnya, memungkinkan Anda melatih model gambar kustom dengan pembelajaran transfer, melakukan deteksi objek dengan penghitungan objek, dan melatih untuk inspeksi visual. Pengenalan Visual Watson dapat berjalan di cloud, atau di perangkat iOS menggunakan Core ML.

Paket analisis data Matlab dapat melakukan pengenalan citra menggunakan machine learning dan deep learning. Ini memiliki Computer Vision Toolbox opsional dan dapat berintegrasi dengan OpenCV.

Model computer vision telah berkembang pesat sejak LeNet-5, dan kebanyakan adalah CNN. Contohnya termasuk AlexNet (2012), VGG16 / OxfordNet (2014), GoogLeNet / InceptionV1 (2014), Resnet50 (2015), InceptionV3 (2016), dan MobileNet (2017-2018). Keluarga jaringan saraf penglihatan MobileNet dirancang dengan mempertimbangkan perangkat seluler.

[Juga di: Kaggle: Tempat para ilmuwan data belajar dan bersaing]

Kerangka kerja Apple Vision melakukan deteksi landmark wajah dan wajah, deteksi teks, pengenalan kode batang, pendaftaran gambar, dan pelacakan fitur umum. Vision juga memungkinkan penggunaan model Core ML kustom untuk tugas-tugas seperti klasifikasi atau deteksi objek. Ini berjalan di iOS dan macOS. Google ML Kit SDK memiliki kemampuan serupa, dan berjalan di perangkat Android dan iOS. ML Kit juga mendukung API bahasa natural.

Seperti yang telah kita lihat, sistem visi komputer telah menjadi cukup baik untuk berguna, dan dalam beberapa kasus lebih akurat daripada penglihatan manusia. Menggunakan pembelajaran transfer, kustomisasi model vision telah menjadi praktis untuk manusia biasa: visi komputer tidak lagi menjadi domain eksklusif peneliti tingkat Ph.D.

Baca lebih lanjut tentang pembelajaran mesin dan pembelajaran mendalam:

  • Pembelajaran mendalam vs. pembelajaran mesin: Pahami perbedaannya
  • Apa itu pembelajaran mesin? Intelijen berasal dari data
  • Apa itu pembelajaran mendalam? Algoritma yang meniru otak manusia
  • Algoritme pembelajaran mesin menjelaskan
  • Apa itu pemrosesan bahasa alami? AI untuk pidato dan teks
  • Pembelajaran mesin otomatis atau penjelasan AutoML
  • Pembelajaran yang diawasi menjelaskan
  • Penjelasan semi-supervised learning
  • Pembelajaran tanpa pengawasan menjelaskan
  • Pembelajaran penguatan dijelaskan
  • Kaggle: Tempat para ilmuwan data belajar dan bersaing
  • Apa itu CUDA? Pemrosesan paralel untuk GPU

Baca ulasan pembelajaran mesin dan pembelajaran mendalam:

  • Cara memilih platform pembelajaran mesin cloud
  • Deeplearning4j: Pembelajaran mendalam dan ETL untuk JVM
  • Ulasan: Amazon SageMaker melakukan pengejaran
  • Ulasan TensorFlow 2: Pembelajaran mesin lebih mudah
  • Ulasan: Google Cloud AutoML benar-benar pembelajaran mesin otomatis
  • Ulasan: Pembelajaran mendalam MXNet bersinar dengan Gluon
  • Ulasan PyTorch: Kerangka pembelajaran mendalam yang dibuat untuk kecepatan
  • Review: Keras berlayar melalui pembelajaran mendalam