Computer Vision 101: Apa itu Computer Vision, dan Bagaimana Mengimplementasikan CV dengan Perangkat Edge?

Seeed Studio AIoT Marketing and Partnership Diterjemahkan oleh : Digiware

1/10/202510 min baca

Computer Vision adalah teknologi yang memungkinkan komputer dan sistem untuk mendapatkan informasi bermakna dari gambar digital, video, dan input visual lainnya. Anda bisa menganggap AI sebagai otak komputer, sedangkan Computer Vision adalah mata komputer. Teknologi ini akan mengambil tindakan atau memberikan rekomendasi berdasarkan informasi yang diterima, dan telah berkembang pesat hingga melampaui manusia dalam menyelesaikan tugas-tugas visual. Saat ini, teknologi ini sangat penting di banyak industri, seperti diagnosis medis, pengemudian otonom, pemantauan video, dan sebagainya.

Apa yang Dimaksud dengan Computer Vision?

Mari Kita Jelajahi Konsep-Konsep Berikut dalam Artikel Ini:

  1. Definisi Computer Vision

  2. Bagaimana Cara Kerja Computer Vision

  3. Tugas-Tugas Computer Vision: Hello World of CV

  4. Framework, Library, dan Platform Pengembangan Computer Vision yang Populer

  5. Aplikasi dan Alat Computer Vision

  6. Implementasi Computer Vision di Perangkat Edge

Semoga, di akhir artikel ini, Anda akan memahami apa itu Computer Vision dan bahkan mencoba membuat beberapa proyek sendiri!

Apa yang Dimaksud dengan Computer Vision?

Computer Vision membutuhkan banyak data untuk berfungsi secara efektif. Ia menganalisis data berulang kali hingga dapat membedakan perbedaan dan mengenali gambar. Model algoritmik memungkinkan mesin untuk belajar secara mandiri, tanpa perlu diprogram secara manual untuk mengenali gambar.

Gambar di bawah ini adalah ilustrasi sederhana dari buffer gambar grayscale Abraham Lincoln. Setiap piksel diwakili oleh satu angka 8-bit, yang berkisar antara 0 (hitam) hingga 255 (putih). Di sebelah kanan adalah apa yang akan dibaca perangkat lunak saat Anda memasukkan sebuah gambar.

Apa yang Dimaksud dengan Computer Vision?

Dataset MNIST berasal dari National Institute of Standards and Technology (NIST) di Amerika Serikat dan merupakan versi yang lebih kecil dari dataset NIST (National Institute of Standards and Technology). Set pelatihan terdiri dari angka yang ditulis tangan oleh 250 orang berbeda, 50% di antaranya adalah siswa sekolah menengah, dan 50% lainnya berasal dari staf Biro Sensus. Set uji memiliki proporsi data angka yang ditulis tangan yang sama.

Dataset angka tulisan tangan MNIST memiliki set pelatihan dengan 60.000 contoh dan set uji dengan 10.000 contoh. Ini adalah subset dari set yang lebih besar yang disediakan oleh NIST. Angka-angka tersebut telah dinormalisasi ukuran dan dipusatkan dalam gambar berukuran tetap. Pencipta asli MNIST menyimpan daftar beberapa metode yang diuji pada dataset ini. Dalam makalah asli mereka, mereka menggunakan support-vector machines (SVM) untuk mendapatkan tingkat kesalahan sebesar 0,8%.

Computer Vision Tasks

Image Localization

Image Localization adalah tugas dasar dalam Computer Vision yang bertujuan menemukan objek dalam gambar dan menggambar kotak pembatas di sekelilingnya. Gambar berikut menunjukkan perbedaan antara klasifikasi dan lokalisasi.

Source: Medium

Object Detection

Object Detection mengklasifikasikan dan mendeteksi semua objek dalam gambar. Teknologi ini memberikan kelas pada setiap objek individu dan menggambar kotak pembatas di sekelilingnya. Object Detection berbeda dari klasifikasi dan lokalisasi, seperti yang terlihat pada gambar di bawah ini.

Semantic Segmentation

Semantic Segmentation adalah tingkat lanjut dari Object Detection. Namun, alih-alih menggambar kotak pembatas di sekitar objek, teknik ini mengidentifikasi piksel tertentu dalam gambar dan mengelompokkannya. Setiap kelas akan diberikan warna yang berbeda, misalnya, rumput = hijau dan domba = cokelat. Teknologi ini sering digunakan dalam aplikasi seperti pengemudian otonom.

Instance Segmentation

Instance Segmentation adalah versi lanjutan dari Semantic Segmentation. Alih-alih memberikan nilai piksel yang sama untuk semua objek dalam kelas yang sama, teknik ini membagi dan menampilkan instance berbeda dari kelas yang sama. Jika terdapat lebih dari satu objek yang sama terdeteksi dalam gambar, masing-masing akan diberi label secara terpisah, seperti yang terlihat di bawah ini: Domba 1, Domba 2, dan Domba 3. Teknologi ini sering digunakan untuk menghitung jumlah orang dalam kerumunan.

Pose Estimation

Pose Estimation adalah metode untuk memperkirakan posisi dan orientasi sendi-sendi tubuh manusia. Teknik ini memprediksi dan melacak pergerakan objek dengan menemukan lokasi titik-titik kunci. Berdasarkan informasi tersebut, teknologi ini dapat membandingkan berbagai gerakan dan postur untuk mendapatkan wawasan. Pose Estimation sering digunakan dalam game AR/VR dan bidang olahraga.

Popular Computer Vision Libraries and  frameworks

PyTorch

PyTorch adalah library pembelajaran mesin open-source yang menggunakan komputasi dinamis, sehingga memberikan fleksibilitas lebih besar dalam membangun arsitektur yang kompleks. Dari namanya, dapat diketahui bahwa PyTorch sangat mendukung Python. Meskipun optimasi dasarnya masih menggunakan C, hampir semua framework-nya ditulis dalam Python, membuat kode sumbernya lebih ringkas. PyTorch mendukung komputasi baik pada CPU maupun GPU.

PyTorch NGC Container dioptimalkan untuk akselerasi GPU dan berisi serangkaian library yang telah divalidasi untuk mengoptimalkan kinerja GPU. Container ini juga mencakup perangkat lunak untuk mempercepat proses ETL (DALI, RAPIDS), pelatihan (cuDNN, NCCL), dan inferensi (TensorRT).

NVIDIA Jetson adalah salah satu platform terbaik untuk bekerja dengan model PyTorch, terutama karena dukungan inferensinya. Platform ini memungkinkan menjalankan sebagian besar model computer vision umum yang dapat ditransfer-belajar menggunakan PyTorch. Dikombinasikan dengan teknologi TensorRT dan API PyTorch, Anda dapat menjalankan model PyTorch secara mulus di NVIDIA Jetson dan juga Raspberry Pi. Pelajari lebih lanjut cara melakukannya melalui blog post dari PyTorch.

Jika Anda baru memulai, jangan lewatkan tutorial fine-tuning object detection Torchvision. Paket torchvision terdiri dari dataset populer, arsitektur model, dan transformasi gambar umum untuk computer vision.

Paket torchvision mencakup hal-hal berikut:

  • vision.datasets: Berisi berbagai dataset vision yang umum digunakan, yang dapat diunduh dan dimuat. Penggunaan lanjutan utamanya adalah untuk melihat bagaimana kode sumber menulis subclass Dataset Anda sendiri.

  • vision.models: Menyediakan model seperti AlexNet, VGG, ResNet, dan Densenet dengan parameter yang sudah terlatih.

YOLOv5

YOLOv5 adalah keluarga arsitektur dan model deteksi objek yang telah dilatih sebelumnya pada dataset COCO. Model ini merupakan hasil penelitian open-source dari Ultralytics dalam pengembangan metode AI vision masa depan, dengan mengintegrasikan pembelajaran dan praktik terbaik dari ribuan jam penelitian dan pengembangan.

YOLOv5 diimplementasikan menggunakan PyTorch, sehingga memanfaatkan ekosistem PyTorch yang matang: implementasi yang lebih sederhana dan proses deployment yang lebih mudah. YOLOv5 mempermudah deployment ke perangkat mobile karena modelnya dapat dengan mudah dikompilasi menjadi format ONNX dan CoreML.

Lihat wiki kami untuk mempelajari cara membangun model kustom dengan dataset yang lebih kecil menggunakan YOLOv5, serta mendistribusikannya ke perangkat NVIDIA Jetson Nano dan Xavier NX.

MMDetection

MMDetection adalah toolbox deteksi objek open-source yang berbasis pada PyTorch yang telah disebutkan sebelumnya. Toolbox ini mencakup resep pelatihan, model yang telah dilatih sebelumnya, dan dukungan dataset. MMDetection dapat dijalankan di sistem operasi Linux, Windows, dan macOS, dengan persyaratan Python 3.6+, CUDA 9.2+, dan PyTorch 1.5+.

Selain itu, mereka juga merilis library mmcv untuk penelitian computer vision. Melalui metode pemanggilan modul, kita dapat mengimplementasikan algoritma baru dengan hanya menulis sejumlah kecil kode, sehingga secara signifikan meningkatkan tingkat penggunaan ulang kode.

MMDeploy merupakan toolset open-source untuk deployment model deep learning, yang merupakan bagian dari proyek OpenMMLab. Anda dapat melihat panduan ini untuk mempelajari cara menginstal MMDeploy pada platform edge NVIDIA Jetson, seperti reComputer dari Seeed.

OpenCV

OpenCV adalah salah satu library perangkat lunak open-source yang paling populer untuk computer vision dan machine learning. Library ini dibangun untuk menyediakan infrastruktur umum bagi aplikasi computer vision. OpenCV dapat dijalankan di Windows, Linux, Android, dan macOS, serta dapat digunakan dalam bahasa pemrograman Python, Java, C++, dan MATLAB.

Beberapa contoh penggunaan OpenCV meliputi:

  • Toolkit Fitur 2D dan 3D

  • Aplikasi Pengenalan Wajah

  • Pengenalan Gerakan

  • Pemahaman Gerakan

  • Interaksi Manusia-Komputer

  • Deteksi Objek

  • Segmentasi dan Pengenalan

Pelajari cara menggunakan OpenCV dari kursus kilat di YouTube ini! Anda akan mempelajari topik seperti Deteksi dan Pelacakan Objek, Deteksi Tepi dan Wajah, Peningkatan Gambar, dan banyak lagi.

OpenCV mencakup modul GPU, yang berisi semua fitur yang dipercepat dengan GPU. Dengan dukungan dari NVIDIA, pekerjaan pada modul ini dimulai pada tahun 2010, sebelum rilis awalnya pada Musim Semi 2011. Modul ini mencakup kode yang dipercepat untuk bagian-bagian penting dari library, masih terus berkembang, dan beradaptasi dengan teknologi komputasi baru serta arsitektur GPU.

Mitra kami, alwaysAI, juga membangun OpenCV sebagai bagian inti dari lingkungan runtime edge kami. Itu berarti dalam setiap aplikasi alwaysAI, Anda dapat menggunakan OpenCV dalam aplikasi Anda. alwaysAI membangun serangkaian alat di sekitar OpenCV untuk membuat proses end-to-end menjadi mulus dan membantu mengatasi beberapa tantangan umum yang unik dalam bekerja dengan perangkat edge.

Keras

Keras adalah sebuah library jaringan saraf buatan open-source yang ditulis dalam Python. Keras dapat digunakan sebagai antarmuka pemrograman aplikasi tingkat tinggi untuk TensorFlow, Microsoft-CNTK, dan Theano dalam desain, debugging, evaluasi, aplikasi, dan visualisasi model deep learning.

Embedded vision melibatkan penerapan pemrosesan gambar pada sistem embedded, terutama perangkat. Aspek utama dari alur kerja pengembangan embedded vision mencakup desain algoritma, pemodelan sistem, kolaborasi, dan penerapan algoritma vision. Insinyur dapat menggunakan MATLAB® dan Simulink® untuk mengembangkan dan menerapkan sistem pemrosesan gambar dan computer vision ke perangkat keras target embedded.

Dengan MATLAB dan Simulink, Anda dapat mengembangkan algoritma dan memodelkan sistem, mengintegrasikan kerangka perangkat lunak pihak ketiga, serta menghasilkan kode untuk platform perangkat keras target. Lihat panduan ini untuk mengetahui cara menghubungkan MATLAB dengan NVIDIA Jetson.

NVIDIA VPI

NVIDIA® Vision Programming Interface (VPI) adalah sebuah library perangkat lunak yang mengimplementasikan algoritma computer vision dan pemrosesan gambar pada berbagai platform perangkat keras komputasi yang tersedia di perangkat embedded dan diskrit NVIDIA. VPI menyediakan API yang terintegrasi untuk implementasi algoritma pada CPU dan NVIDIA CUDA, serta interoperabilitas antara VPI, OpenCV, dan CUDA.

TensorFlow

Kanade-Lucas-Tomasi (KLT) Feature Tracker, NVIDIA

TensorFlow adalah platform open-source ML (machine learning) yang komprehensif dan dapat melakukan berbagai tugas, termasuk computer vision. TensorFlow Lite memungkinkan Anda menjalankan model pada perangkat mobile dan edge, sementara TensorFlow JS dirancang untuk aplikasi web. TensorFlow dapat dijalankan di Windows, macOS, dan WSL2, serta mendukung berbagai bahasa pemrograman seperti Python, C, C++, Java, dan lainnya.

Penggunaan utama TensorFlow meliputi:

  • Klasifikasi Gambar

  • Deteksi dan Segmentasi Objek

  • Stilisasi Gambar

  • Jaringan Adversarial Generatif (Generative Adversarial Networks - GAN)

Mulai dengan mudah:

  • Model TensorFlow yang Dipercepat untuk NVIDIA Jetson

  • ML Dunia Nyata dengan Coral: Manufaktur

Cek Coral dev board di Seeed dan nikmati diskon edukasi eksklusif!

Untuk machine learning di perangkat, cek TensorFlow Lite.

Fitur utama TensorFlow Lite dioptimalkan untuk machine learning di perangkat, dengan fokus pada latensi, privasi, konektivitas, ukuran, dan konsumsi daya. Mulai dengan cepat menggunakan reTerminal (ditenagai oleh Raspberry Pi CM4) dari Seeed.

Computer Vision Use Case

Retail – Zenus

Zenus menawarkan solusi terintegrasi penuh untuk merek ritel dengan menggunakan computer vision. Zenus Smart Camera menangkap data seperti lalu lintas pengunjung secara real-time, demografi, dan analisis sentimen.

Informasi lalu lintas pengunjung digunakan untuk menghitung tingkat konversi dan memprediksi penjualan. Peta panas seperti ini membantu memahami lokasi strategis untuk menempatkan produk dengan margin keuntungan tinggi.

Zenus menawarkan solusi terintegrasi penuh untuk merek ritel dengan menggunakan computer vision. Zenus Smart Camera menangkap data seperti lalu lintas pengunjung secara real-time, demografi, dan analisis sentimen.

Informasi lalu lintas pengunjung digunakan untuk menghitung tingkat konversi dan memprediksi penjualan. Peta panas seperti ini membantu memahami lokasi strategis untuk menempatkan produk dengan margin keuntungan tinggi.

Dengan semua ini, toko ritel dapat meningkatkan penjualan lebih lanjut dan meningkatkan keterlibatan pelanggan. Baca lebih lanjut tentang bagaimana Zenus membantu industri ritel menggunakan computer vision di blog Seeed.

Agriculture – Intflow

EdgeFarm dari Intflow adalah solusi AI yang mendeteksi cedera dan penyakit ternak untuk membantu peternak mengelola dan mengoptimalkan produktivitas ternak. EdgeFarm mengumpulkan data biometrik ternak dan menggunakan computer vision untuk menangkap data real-time seperti kebiasaan makan dan peningkatan berat badan harian. Berdasarkan data ini, daftar tindakan akan diberikan untuk meningkatkan produktivitas dan efisiensi dalam beternak di abad ke-21.

Smart Home-Frigate

Frigate adalah perekam video jaringan open-source yang dapat diintegrasikan ke dalam sistem Home Assistant Anda. Frigate menggunakan OpenCV dan TensorFlow untuk melakukan deteksi objek secara real-time. Dengan Frigate, Anda dapat melihat rekaman visual langsung tentang apa yang terjadi di luar pintu rumah Anda.

Hardware for Computer Vision

reComputer Nano/NX: real world AI at the Edge

Seri reComputer untuk Jetson adalah komputer edge ringkas yang dirancang dengan sistem tertanam AI canggih dari NVIDIA: J10 (Nano 4GB) dan J20 (Jetson Xavier NX 8GB dan Jetson Xavier 16GB). Dengan modul ekstensi yang kaya, periferal industri, dan manajemen termal yang optimal, reComputer untuk Jetson siap membantu mempercepat dan mengembangkan produk AI generasi berikutnya dengan menerapkan model DNN populer dan kerangka kerja ML ke edge serta melakukan inferensi dengan performa tinggi.

  • Kotak Edge AI yang cocok di mana saja

  • Modul Jetson Nano/NX Tertanam

  • Jetpack Pra-instal untuk Kemudahan Penggunaan

  • Faktor bentuk hampir sama dengan Jetson Developer Kits, dilengkapi dengan berbagai I/O yang kaya

  • Dapat ditumpuk dan diperluas

Jetson Benchmark: Jetson Xavier NX and Jetson AGX Orin MLPerf v2.0 Results
Mulai dengan Computer Vision menggunakan alat pengembang yang mudah digunakan:
  • Edge AI No Code Vision Tool: Proyek open-source terbaru dari Seeed untuk menerapkan aplikasi AI dengan mudah dalam 3 node.

  • NVIDIA DeepStream SDK: Toolkit analitik streaming lengkap untuk pemrosesan multi-sensor berbasis AI dan pemahaman video serta gambar di Jetson.

  • NVIDIA TAO Tool Kit: Versi low-code dari framework NVIDIA TAO yang dibangun di atas TensorFlow dan PyTorch, mempercepat pelatihan model.

  • alwaysAI: Bangun, latih, dan terapkan aplikasi computer vision langsung di edge reComputer. Akses gratis ke 100+ model Computer Vision yang telah dilatih dan latih model AI kustom di cloud dengan mudah melalui langganan enterprise. Lihat panduan wiki kami untuk memulai dengan alwaysAI.

  • Edge Impulse: Pipeline pembelajaran mesin tersemudah untuk menerapkan aplikasi audio, klasifikasi, dan deteksi objek di edge tanpa ketergantungan cloud.

  • Roboflow: Alat untuk mengonversi gambar mentah menjadi model computer vision kustom untuk deteksi objek dan klasifikasi. Lihat dokumentasi lengkap untuk menerapkan di NVIDIA Jetson dengan Roboflow.

  • YOLOv5 by Ultralytics: Gunakan transfer learning untuk mendeteksi objek dengan hanya sedikit sampel pelatihan. Ikuti tutorial wiki langkah-demi-langkah kami.

  • Deci: Optimalkan model Anda di NVIDIA Jetson Nano. Tonton webinar Deci tentang "Benchmark dan Optimalkan Kinerja Runtime Secara Otomatis di Perangkat NVIDIA Jetson Nano dan Xavier NX."

MATLAB