Apakah penglihatan komputer? AI untuk gambar dan video

Penglihatan komputer mengenal pasti dan sering mencari objek dalam gambar dan video digital. Sejak organisma hidup memproses gambar dengan korteks visualnya, banyak penyelidik telah mengambil seni bina korteks visual mamalia sebagai model untuk rangkaian saraf yang dirancang untuk melakukan pengecaman gambar. Penyelidikan biologi bermula pada tahun 1950-an.

Kemajuan dalam penglihatan komputer selama 20 tahun terakhir sungguh luar biasa. Walaupun belum sempurna, beberapa sistem penglihatan komputer mencapai ketepatan 99%, dan yang lain berjalan dengan baik pada peranti mudah alih.

Terobosan dalam bidang rangkaian neural untuk penglihatan adalah Leannet-5 Yann LeCun pada tahun 1998, rangkaian saraf konvolusional tujuh peringkat untuk pengiktirafan digit tulisan tangan yang didigitalkan dalam gambar piksel 32x32. Untuk menganalisis gambar dengan resolusi lebih tinggi, rangkaian LeNet-5 perlu dikembangkan ke lebih banyak neuron dan lebih banyak lapisan.

Model klasifikasi gambar terbaik hari ini dapat mengenal pasti pelbagai katalog objek pada resolusi HD berwarna. Sebagai tambahan kepada rangkaian neural mendalam tulen (DNN), orang kadang-kadang menggunakan model penglihatan hibrid, yang menggabungkan pembelajaran mendalam dengan algoritma pembelajaran mesin klasik yang melakukan sub-tugas tertentu.

Masalah penglihatan lain selain klasifikasi gambar asas telah diselesaikan dengan pembelajaran mendalam, termasuk klasifikasi gambar dengan penyetempatan, pengesanan objek, segmentasi objek, pemindahan gaya gambar, pewarnaan gambar, pembinaan semula gambar, resolusi super gambar, dan sintesis gambar.

Bagaimana penglihatan komputer berfungsi?

Algoritma penglihatan komputer biasanya bergantung pada rangkaian saraf konvensional, atau CNN. CNN biasanya menggunakan lapisan konvolusional, penyatuan, ReLU, terhubung sepenuhnya, dan kehilangan untuk mensimulasikan korteks visual.

Lapisan konvolusional pada dasarnya mengambil gabungan banyak kawasan bertindih kecil. Lapisan penyatuan melakukan bentuk pensampelan bawah tidak linear. Lapisan ReLU menerapkan fungsi pengaktifan tidak tepu f (x) = max (0, x) .

Dalam lapisan yang terhubung sepenuhnya, neuron mempunyai hubungan dengan semua pengaktifan pada lapisan sebelumnya. Lapisan kerugian menghitung bagaimana latihan rangkaian menghukum penyimpangan antara label yang diramalkan dan benar, menggunakan kerugian Softmax atau cross-entropy untuk klasifikasi.

Set data latihan penglihatan komputer

Terdapat banyak set data imej awam yang berguna untuk melatih model visi. Yang paling mudah, dan yang paling tua, adalah MNIST, yang mengandungi 70,000 digit tulisan tangan dalam 10 kelas, 60K untuk latihan dan 10K untuk ujian. MNIST adalah set data yang mudah dimodelkan, walaupun menggunakan komputer riba tanpa perkakasan pecutan. CIFAR-10 dan Fashion-MNIST adalah set data 10 kelas yang serupa. SVHN (nombor rumah pandangan jalan) adalah sekumpulan 600 ribu gambar nombor rumah dunia nyata yang diekstrak dari Google Street View.

COCO adalah set data skala lebih besar untuk pengesanan, segmentasi, dan kapsyen objek, dengan 330K gambar dalam 80 kategori objek. ImageNet mengandungi kira-kira 1.5 juta gambar dengan kotak dan label pengikat, menggambarkan sekitar 100K frasa dari WordNet. Open Images mengandungi kira-kira sembilan juta URL untuk gambar, dengan kira-kira 5K label.

Google, Azure, dan AWS semuanya mempunyai model penglihatan mereka sendiri yang dilatih terhadap pangkalan data gambar yang sangat besar. Anda boleh menggunakan ini sebagaimana adanya, atau menjalankan pembelajaran transfer untuk menyesuaikan model ini ke set data gambar anda sendiri. Anda juga boleh melakukan pembelajaran pemindahan menggunakan model berdasarkan ImageNet dan Open Images. Kelebihan memindahkan pembelajaran daripada membina model dari awal adalah bahawa ia jauh lebih pantas (jam dan bukannya minggu) dan ia memberi anda model yang lebih tepat. Anda masih memerlukan 1.000 gambar setiap label untuk hasil terbaik, walaupun kadangkala anda boleh mendapatkan hanya 10 gambar setiap label.

Aplikasi penglihatan komputer

Walaupun penglihatan komputer tidak sempurna, seringkali cukup baik untuk praktikal. Contoh yang baik adalah visi dalam kenderaan memandu sendiri.

Waymo, yang dahulunya merupakan projek kereta memandu sendiri Google, menuntut ujian di jalan awam sejauh tujuh juta batu dan kemampuan untuk menavigasi dengan selamat dalam lalu lintas harian. Terdapat sekurang-kurangnya satu kemalangan yang melibatkan van Waymo; perisian itu tidak dipercayai salah, menurut polis.

Tesla mempunyai tiga model kereta memandu sendiri. Pada 2018 SUV Tesla dalam mod memandu sendiri terlibat dalam kemalangan maut. Laporan mengenai kemalangan itu mengatakan bahawa pemandu (yang terbunuh) melepaskan tangannya dari stereng walaupun terdapat banyak amaran dari konsol, dan bahawa kedua-dua pemandu dan perisian tidak mahu melakukan brek untuk mengelakkan dari terkena penghalang konkrit. Perisian ini telah dinaik taraf sehingga memerlukan dan bukannya menyarankan agar tangan pemandu berada di stereng.

Kedai Amazon Go adalah kedai runcit layan diri percuma di mana sistem penglihatan komputer di kedai mengesan ketika pembeli mengambil atau mengembalikan barang stok; pembeli dikenal pasti dan dikenakan melalui aplikasi Android atau iPhone. Apabila perisian Amazon Go melewatkan item, pembeli dapat menyimpannya secara percuma; apabila perisian mendaftarkan item yang diambil secara palsu, pembeli dapat menandakan item tersebut dan mendapatkan bayaran balik untuk caj tersebut.

Dalam penjagaan kesihatan, terdapat aplikasi penglihatan untuk mengklasifikasikan ciri-ciri tertentu dalam slaid patologi, sinar-X dada, dan sistem pengimejan perubatan lain. Sebilangan ini menunjukkan nilai jika dibandingkan dengan pengamal manusia yang mahir, ada yang cukup untuk kelulusan peraturan. Terdapat juga sistem masa nyata untuk menganggarkan kehilangan darah pesakit di bilik operasi atau bersalin.

Terdapat aplikasi penglihatan yang berguna untuk pertanian (robot pertanian, pemantauan tanaman dan tanah, dan analisis ramalan), perbankan (pengesanan penipuan, pengesahan dokumen, dan simpanan jarak jauh), dan pemantauan industri (sumur terpencil, keselamatan lokasi, dan kegiatan kerja).

Terdapat juga aplikasi penglihatan komputer yang kontroversial atau bahkan tidak digunakan lagi. Salah satunya adalah pengenalan wajah, yang ketika digunakan oleh pemerintah dapat menjadi pencerobohan privasi, dan yang sering memiliki kecenderungan latihan yang cenderung salah mengidentifikasi wajah yang tidak putih. Yang lain adalah pembuatan deepfake, yang lebih menyeramkan ketika digunakan untuk pornografi atau penciptaan tipuan dan gambar palsu lainnya.

Rangka kerja dan model visi komputer

Sebilangan besar kerangka pembelajaran mendalam mempunyai sokongan yang besar untuk penglihatan komputer, termasuk kerangka kerja berasaskan Python TensorFlow (pilihan utama untuk pengeluaran), PyTorch (pilihan utama untuk penyelidikan akademik), dan MXNet (kerangka pilihan Amazon). OpenCV adalah perpustakaan khusus untuk visi komputer yang menggunakan aplikasi penglihatan masa nyata dan memanfaatkan arahan MMX dan SSE apabila tersedia; ia juga memiliki dukungan untuk percepatan menggunakan CUDA, OpenCL, OpenGL, dan Vulkan.

Amazon Recognition adalah perkhidmatan analisis gambar dan video yang dapat mengenal pasti objek, orang, teks, pemandangan, dan aktiviti, termasuk analisis wajah dan label khusus. Google Cloud Vision API adalah perkhidmatan analisis gambar pra-latihan yang dapat mengesan objek dan wajah, membaca teks bercetak dan tulisan tangan, dan membina metadata ke dalam katalog gambar anda. Google AutoML Vision membolehkan anda melatih model gambar tersuai. Kedua-dua Label Custom Amazon Recognition dan Google AutoML Vision melakukan pembelajaran pemindahan

Microsoft Computer Vision API dapat mengenal pasti objek dari katalog 10,000, dengan label dalam 25 bahasa. Ia juga mengembalikan kotak pengikat untuk objek yang dikenal pasti. Azure Face API melakukan pengesanan wajah yang melihat wajah dan atribut dalam gambar, pengenalan orang yang sesuai dengan individu di repositori peribadi anda sehingga satu juta orang, dan pengiktirafan emosi yang dirasakan. Face API boleh berjalan di awan atau di tepi dalam bekas.

Pengiktirafan Visual IBM Watson dapat mengklasifikasikan gambar dari model yang sudah dilatih, membolehkan anda melatih model gambar khusus dengan pembelajaran pemindahan, melakukan pengesanan objek dengan pengiraan objek, dan melatih pemeriksaan visual. Pengenalan Visual Watson boleh dijalankan di awan, atau pada peranti iOS menggunakan Core ML.

Pakej analisis data Matlab dapat melakukan pengecaman gambar menggunakan pembelajaran mesin dan pembelajaran mendalam. Ia mempunyai Kotak Alat Penglihatan Komputer pilihan dan dapat disatukan dengan OpenCV.

Model penglihatan komputer telah lama wujud sejak LeNet-5, dan kebanyakannya adalah CNN. Contohnya termasuk AlexNet (2012), VGG16 / OxfordNet (2014), GoogLeNet / InceptionV1 (2014), Resnet50 (2015), InceptionV3 (2016), dan MobileNet (2017-2018). Rangkaian saraf visi keluarga MobileNet dirancang dengan mempertimbangkan peranti mudah alih.

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

Kerangka Apple Vision melakukan pengesanan mercu tanda muka dan muka, pengesanan teks, pengenalan kod bar, pendaftaran gambar, dan penjejakan ciri umum. Vision juga membenarkan penggunaan model Core ML khusus untuk tugas seperti klasifikasi atau pengesanan objek. Ia berjalan pada iOS dan macOS. SDK Kit ML Google mempunyai keupayaan yang serupa, dan berjalan pada peranti Android dan iOS. ML Kit juga menyokong API bahasa semula jadi.

Seperti yang kita lihat, sistem penglihatan komputer telah menjadi cukup baik untuk berguna, dan dalam beberapa kes lebih tepat daripada penglihatan manusia. Dengan menggunakan pembelajaran transfer, penyesuaian model penglihatan telah menjadi praktikal untuk manusia biasa: penglihatan komputer bukan lagi domain eksklusif penyelidik peringkat Ph.D.

Baca lebih lanjut mengenai pembelajaran mesin dan pembelajaran mendalam:

  • Pembelajaran mendalam berbanding pembelajaran mesin: Memahami perbezaan
  • Apa itu pembelajaran mesin? Kecerdasan yang diperoleh daripada data
  • Apa itu pembelajaran mendalam? Algoritma yang meniru otak manusia
  • Algoritma pembelajaran mesin dijelaskan
  • Apakah pemprosesan bahasa semula jadi? AI untuk ucapan dan teks
  • Pembelajaran mesin automatik atau AutoML dijelaskan
  • Pembelajaran yang diselia dijelaskan
  • Pembelajaran separa penyeliaan dijelaskan
  • Pembelajaran tanpa pengawasan dijelaskan
  • Pembelajaran pengukuhan dijelaskan
  • Kaggle: Tempat para saintis data belajar dan bersaing
  • Apa itu CUDA? Pemprosesan selari untuk GPU

Baca ulasan pembelajaran mesin dan pembelajaran mendalam:

  • Cara memilih platform pembelajaran mesin awan
  • Deeplearning4j: Pembelajaran mendalam dan ETL untuk JVM
  • Ulasan: Amazon SageMaker bermain mengejar ketinggalan
  • Ulasan TensorFlow 2: Pembelajaran mesin yang lebih mudah
  • Ulasan: Google Cloud AutoML adalah pembelajaran mesin yang benar-benar automatik
  • Ulasan: Pembelajaran mendalam MXNet bersinar dengan Gluon
  • Ulasan PyTorch: Kerangka pembelajaran mendalam yang dibina untuk kepantasan
  • Ulasan: Keras melalui pembelajaran mendalam