VisionSkills Series: Memudahkan Integrasi ComputerVision dalam Aplikasimu

Hi Makers,

Gimana kemarin lebaran idul adha, semoga kolesterol dan gula tetap dikontrol ya.. ;D Oke kali ini kita mulai series baru tentang Windows Vision Skills. 

Nah, Windows Vision Skills ini adalah framework yang memudahkan rekan-rekan developer untuk menggunakan computer vision pada aplikasinya yang berjalan di windows, ini akan menjadi standar dalam menggunakan modul computer vision. Bayangkan, menambahkan fitur computer vision semudah menambahkan nuget package, tinggal install-package dan panggil beberapa method.. voila beres…  

Diagram of how Windows Vision Skills fits into the development stack; starts with the bottom layer (GPU, CPU, VPU, etc); on top of that are hardware acceleration frameworks (DirectX, DirectML, and others); the next layer is the Windows Vision Skills API, consisting of Windows APIs and third-party frameworks; and the top layer consists of UWP, .NET Core, and Win32 applications

Untuk menggunakan VisionSkills API ini rekan-rekan dapat menggunakan  jenis aplikasi UWP, .NET Core atau Win32. Untuk membangun vision skill sendiri, kita bisa mengimplementasikan interface dan base-class dari name space Microsoft.AI.Skills.SkillInterfacePreview, sedangkan packagenya dapat diperoleh dari nuget package ini

Nah, apa “Skill” yang dimaksud disini?

Skill ya bisa diartikan sebagai fitur tambahan yang ditambahkan pada aplikasi rekan-rekan. Fitur ini secara program berupa library yang menerima input, memrosesnya lalu mengembalikan outputnya. Sesuai dengan namanya “Vision”, saat ini dikhususkan untuk memproses fitur-fitur yang berhubungan dengan pemrosesan gambar (visual). Contoh konkritnya skill ini bisa berupa kemampuan mengekstraksi tulisan dari gambar, atau yang lebih kompleks lagi memproses gambar untuk ekstraksi tulisan lalu mendeteksi bahasanya dan terjemahannya. Tapi perlu digaris bawahi VisionSkills ini dikhususkan untuk memproses gambar secara lokal (edge computing). 

Bisa disimpulkan bahwa ada beberapa benefit jika menggunakan VisionSkills ini antara lain:

  1. Integrasi yang mudah, semudah menambahkan reference / nuget package ke aplikasi rekan-rekan. Tidak perlu keahlian khusus untuk menggunakan API ini. 
  2. Abstraksi Akselerasi Piranti Keras, API ini dapat melakukan query ke device yang digunakan sehingga bisa memberikan fleksibilitas dan optimasi dalam menjalankan fungsi computer vision. Misal, kalau rekan-rekan punya graphic card yang mumpuni, ya sudah tentu kita bisa menggunakan GPU-nya untuk memproses gambar / model ML.
  3. Interopabilitas, dengan framework ini berkomunikasi langsung dengan interface OS, sehingga kita bisa mengakses gambar langsung dari camera, photos folder, videos folder dan dapat diintegrasikan dengan WinML. Jika rekan-rekan belum tahu apa itu WinML silakan baca di artikel ini.
  4. Nuget package, nah kalau skill ini dapat dipaketkan menjadi nuget package tentunya memudahkan untuk versioning, tidak khawatir akan merusak aplikasi eksisting karena bisa upgrade/downgrade, dan bisa mengikat intelektual property pada visionskill buatan kita.
  5. Ekstensibilitas,  Framework dapat di-extend dengan external computer vision library lain seperti EmguCV, AForge, ImageMagick, dan lainnya.
  6. Modularitas,  karena bersifat modular, satu atau lebih skill dapat digunakan dalam satu aplikasi. Sebagai developer juga kita dapat menggabungkan beberapa skill ke dalam satu paket. 

Pasti ada yang bertanya.. Apakah skill ini hanya terbatas untuk computer vision ? Tentunya tidak, di masa yang akan datang memungkinkan kita juga memproses data audio, teks, gesture maupun hal lainnya.

Oke, sampai disini berarti rekan-rekan sudah paham secara teori tentang VisionSkills. Di artikel selanjutnya kita akan coba belajar bagaimana menggunakannya dalam aplikasi kita. Semoga bermanfaat, terus berkreasi.

Salam Makers ;D 

 

 

Loading

You May Also Like