Belajar OpenCV di Java KMean Bagian 3

2,330 Views

Yuk kita bahas mengenai cara penggunaan KMeans Clustering di OpenCV-Java yang sangat mudah digunakan untuk membantu kalian daripada harus membuat kode sendiri. Adapun pembahasan mengenai KMeans Clustering dapat kalian pelajari disini. Saya asumsikan kalian sudah melakukan setup library OpenCV yang telah dibahas sebelumnya. Saya akan jelaskan tahapan dalam menggunakan KMeans Clustering OpenCV-Java yaitu

Mengenal Prosedur

Beberapa function OpenCV-Java menggunakan teknik Pass by Value untuk mendapatkan return nilai, contohnya adalah ketika akan menggunakan function untuk mengubah color RGB ke Grayscale, maka perlu dibuatkan dulu variabel destination nya

Read more

Numenta Mendemonstrasikan Peningkatan Kecepatan 50x pada Jaringan Deep Machine Learning

1,416 Views

Numenta Mendemonstrasikan Peningkatan Kecepatan 50x pada Jaringan Deep Machine learning dengan meniru cara kerja Otak manusia. Jaringan sparse Numenta membuat dua modifikasi pada lapisan pembelajaran dalam standar, memanfaatkan sparse bobot dan sparse aktivasi renggang.

Jaringan renggang Numenta membuat dua modifikasi pada lapisan pembelajaran dalam standar, memanfaatkan sparse bobot dan sparse  aktivasi. Hasil akhirnya adalah jaringan yang lebih jarang yang meniru otak. (Grafik: Business Wire), kalian bisa melihat ilustrasi dibawah ini.

Read more

Google AI Merilis ‘Objectron Dataset’ Yang Terdiri Dari 15.000 Video Beranotasi Dan 4 Juta Gambar Beranotasi

1,532 Views

Tugas computer vision telah mencapai akurasi luar biasa dengan kemajuan baru dalam model pembelajaran mesin yang dilatih dengan foto. Selain kemajuan ini, pemahaman objek 3D menawarkan potensi besar untuk mendukung berbagai aplikasi yang lebih komprehensif, seperti robotika, augmented reality, otonomi, dan pengambilan gambar.

Pada awal tahun 2020, Google merilis MediaPipe Objectron. Model ini dirancang untuk deteksi objek 3D real-time untuk perangkat seluler. Model ini dilatih pada set data 3D dunia nyata yang dianotasi sepenuhnya dan dapat memprediksi kotak pembatas objek 3D .

Read more

Linear Regression dengan Konsep Gradient Descent

4,917 Views

Belajar konsep machine learning tidak terlepas dari gradient descent dengan penjabaran fungsi turunan/derivatif. Konsep turunan pernah kita pelajari setidaknya di SMA yaitu matematika kalkulus. Saya akan mencoba menjabarkan sedikit aturan mengenai turunan dari sebuah fungsi berikut . Oiya saya pakai octave untuk menulis kodenya biar ringkas, kalian bisa beli buku saya disini . Kalau belum paham pembahasan sebelumnya, bisa kalian pelajari disini mengenai konsep gradient descent.

Read more

Belajar OpenCV di Java Bagian 2

3,348 Views

Kita akan lanjutkan pembahasan OpenCV di Java dibagian sebelumnya yaitu menggunakan JFrame untuk menampilkan gambar serta diberikan feature untuk resize gambar. Editor yang kita gunakan berupa Netbeans agar mudah dalam drag and drop component SWING/AWT. Pembuatan aplikasi OpenCV di java  sangat mudah koq, apalagi kalau menggunakan Netbeans.

Tampilan Aplikasi

Tampilan aplikasi OpenCV di Java untuk menampilkan gambar seperti berikut

Read more

Penerapan watershed

4,533 Views

Metode watershed merupakan salah satu metode dalam segmentasi citra yang membagi citra menjadi region yang berbeda dengan menggambarkan citra sebagai relief topografi. Metode watershed menghasilkan terlalu banyak region yang menyebabkan bagian penting objek terpisah atau disebut oversegmentasi, sehingga perlu dilakukan pengembangan metode. Cara mengurangi oversegmentasi pada metode watershed dapat meliputi watershed dengan memanfaatkan perbedaan gradien untuk menentukan arah dari kemiringan topografi, penambahan marker yang dapat digunakan untuk mensegmentasi sebagian objek yang dipilih, serta dengan menggunakan multiresolusi yang mengurangi oversegmentasi dengan skala ruang.

Watershed biasa digunakan untuk memisahkan objek yang saling berhimpitan, biasanya bisa disiasati menggunakan teknik morfologi seperti erotion, dilation, close, open tapi terkadang teknik tersebut kurang efektif, sehingga perlu menggunakan teknik watershed. Berikut disajikan contoh gambar yang saling berhimpitan terdiri dari 2 objek yang saling berhimpitan.

Morphological Watershed adalah salah satu pendekatan untuk segmentasi. Konsep dari Morphological Watershed adalah menggambarkan sebuah gambar dalam bentuk 3 dimensi. Prinsip dari Morphological Watershed adalah mencari garis watershed ( batas air ) yaitu garis dimana titik-titiknya merupakan titik tertinggi dari penggambaran sebuah gambar ke dalam bentuk 3 dimensi yaitu posisi x dan y.

Posisi x dan y merupakan bidang dasar dan tingkat warna pixel, yang dalam hal ini adalah gray level merupakan ketinggian dengan anggapan nilai yang makin mendekati warna putih mempunyai ketinggian yang semakin tinggi. Dengan anggapan bentuk topografi tersebut, maka didapat tiga macam titik yaitu :

  • titik yang merupakan minimum regional
  • titik yang merupakan tempat dimana jika setetes air dijatuhkan, maka air tersebut akan jatuh hingga ke sebuah posisi minimum tertentu
  • titik yang merupakan tempat dimana jika air dijatuhkan, maka air tersebut mempunyai kemungkinan untuk jatuh ke salah satu posisi minimum (tidak pasti jatuh ke sebuah titik minimum, tetapi dapat jatuh ke titik minimum tertentu atau titik minimum yang lain). Untuk sebuah minimum regional tertentu, sekumpulan titik yang memenuhi kondisi (b) disebut sebagai catchment basin, sedangkan sekumpulan titik yang memenuhi kondisi (c) disebut sebagai garis Watershed (Gonzalez, 2002; Pratt, 2007).

Ide dasar untuk cara kerja segmentasi ini adalah diasumsikan terdapat sebuah lubang yang dibuat pada minimum regional dan kemudian seluruh topography dialiri air yang berasal dari lubang tersebut dengan kecepatan konstan. Ketika air yang naik dari dua catchment basin hendak bergabung, maka dibangun sebuah dam untuk mencegah penggabungan tersebut. Aliran air akan mencapai tingkat yang diinginkan dan berhenti mengalir ketika hanya bagian atas dari dam yang terlihat. Tepi dam yang terlihat inilah yang disebut dengan garis Watershed. Dan garis Watershed inilah yang merupakan hasil dari segmentasi, dengan anggapan bahwa garis Watershed tersebut merupakan tepi dari obyek yang hendak disegmentasi.

Ide dasar untuk cara kerja segmentasi ini adalah diasumsikan terdapat sebuah lubang yang dibuat pada minimum regional dan kemudian seluruh topography dialiri air yang berasal dari lubang tersebut dengan kecepatan konstan. Ketika air yang naik dari dua catchment basin hendak bergabung, maka dibangun sebuah dam untuk mencegah penggabungan tersebut. Aliran air akan mencapai tingkat yang diinginkan dan berhenti mengalir ketika hanya bagian atas dari dam yang terlihat. Tepi dam yang terlihat inilah yang disebut dengan garis Watershed. Dan garis Watershed inilah yang merupakan hasil dari segmentasi, dengan anggapan bahwa garis Watershed tersebut merupakan tepi dari obyek yang hendak disegmentasi

Berikut contoh Penerapan watershed menggunakan  OpenCV

Read more

Belajar Java – Perbedaan dari JDK – JRE – JVM

8,752 Views

Setidaknya ada beberapa term teknologi yang perlu kalian tahu mengenai cara kerja bahasa Java yaitu tentang JDK (java development kit), JRE (java runtime environment), dan JVM (java virtual machine).

Apa itu JDK?

JDK adalah lingkungan pengembangan perangkat lunak yang digunakan untuk membuat applet dan aplikasi Java. Kepanjangan dari JDK adalah Java Development Kit. Pengembang Java dapat menggunakannya di Windows, macOS, Solaris, dan Linux. JDK membantu mereka membuat kode dan menjalankan program Java. Dimungkinkan untuk menginstal lebih dari satu versi JDK di komputer yang sama karena perbedaan versi yang digunakan. Kalian bisa download JDK disini

Read more

Belajar Java – Teknologi JVM-Java Virtual Machine

4,584 Views

Jika kalian telah belajar mengenai bahasa java, tentu ingin tahu donk, bagaimana Java bisa bekerja dibanyak sistem operasi. Nah didalam tulisan sebelumnya pasti kalian sudah install donk JRE – java runtime environment yang didalamnya ada teknologi JVM. Apa itu JVM? Java Virtual Machine (JVM) adalah mesin yang menyediakan lingkungan runtime untuk menjalankan Kode atau aplikasi Java dengan cara mengubah bytecode Java menjadi bahasa mesin. JVM adalah bagian dari Java Run Environment (JRE). Dalam bahasa pemrograman lain, kompilator menghasilkan kode mesin untuk sistem tertentu. Namun, compiler Java menghasilkan kode untuk Mesin Virtual yang dikenal sebagai Java Virtual Machine.

Read more

Belajar OpenCV bagian 1 – Setting OpenCV di Java

4,194 Views

Setting OpenCV di Java – Yup OpenCV 4.5.0 telah direlease, saya lebih suka menggunakan library OpenCV sebagai library digital image processing sejak dulu sampai sekarang karena dukungan yang sangat luas serta banyak tersedia wrapper untuk bahasa Python, Java, android bahkan Julia!

Pada postingan kali ini saya sengaja tidak membahas python ataupun julia, tapi lebih kepada penggunaan bahasa Java. Topik nya mulai dari instalasi serta menggunakan OpenCV di Java.

Read more