Selective Search untuk optimasi object Detection merupakan algoritma yang dikembangkan oleh Uijlings dengan judul Selective Search for Object Recognition. yang telah diterapkan di opencv. cara Install
Algoritma Selective Search bekerja dengan superpixel algorithm yaitu dengan mencari persamaan gambar
Segmentation parameters: sigma = 0.5, K = 500, min = 50.
Segmentation parameters: sigma = 0.5, K = 1000, min = 100.
Kalau dilihat sih mirip-mirip hasil clustering color kalian bisa baca disini dan disini
Algoritma Selective Search menggunakan superpixel untuk melakukan grouping objek berdasarkan kriteria sebagai berikut, kalian artikan saja sendiri (saya ambil dari PyImageSearch)
- Color similarity: Computing a 25-bin histogram for each channel of an image, concatenating them together, and obtaining a final descriptor that is 25×3=75-d. Color similarity of any two regions is measured by the histogram intersection distance.
- Texture similarity: For texture, Selective Search extracts Gaussian derivatives at 8 orientations per channel (assuming a 3-channel image). These orientations are used to compute a 10-bin histogram per channel, generating a final texture descriptor that is 8x10x=240-d. To compute texture similarity between any two regions, histogram intersection is once again used.
- Size similarity: The size similarity metric that Selective Search uses prefers that smaller regions be grouped earlier rather than later. Anyone who has used Hierarchical Agglomerative Clustering (HAC) algorithms before knows that HACs are prone to clusters reaching a critical mass and then combining everything that they touch. By enforcing smaller regions to merge earlier, we can help prevent a large number of clusters from swallowing up all smaller regions.
- Shape similarity/compatibility: The idea behind shape similarity in Selective Search is that they should be compatible with each other. Two regions are considered “compatible” if they “fit” into each other (thereby filling gaps in our regional proposal generation). Furthermore, shapes that do not touch should not be merged.
- A final meta-similarity measure: A final meta-similarity acts as a linear combination of the color similarity, texture similarity, size similarity, and shape similarity/compatibility.
Dalam object detection penggunaan Selective Search untuk optimasi object Detection hasilnya sangat memuaskan, ketika kita punya dataset annotation seperti PASCAL VOC, maka selective search dapat digunakan untuk menambah variasi dari dataset. Perhatikan gambar image labeler berikut
Saya secara manual sudah melakukan annotasi dengan baik, namun ketika kita menggunakan Selective Search akan terdapat banyak sekali hasil didapat menurut algoritma tersebut ada banyak sekali annotasi yang didapat!
ada 18 variasi objek, tapi saya cukup ambil 16 saja, tentu dengan Selective Search memudahkan pembuatan dataset tanpa perlu repot-repot membuat variasi seperti dataset generator augmentation!
Biasanya untuk menambah variasi dataset, maka dibuatlah data augmentation seperti variasi rotasi, zooming, dan segala macamnya
aug = ImageDataGenerator( rotation_range=20, zoom_range=0.15, width_shift_range=0.2, height_shift_range=0.2, shear_range=0.15, horizontal_flip=True, fill_mode="nearest")
Melalui Selective Search untuk optimasi object Detection sudah saya coba dalam beberapa project (apalagi dengan sedikit dataset yang ada) maka Selective Search sangat diandalkan lho! layak kalian coba.
Opencv-Contrib
Oiya untuk mendapatkan Selective Search untuk optimasi object Detection didalam opencv, kalian harus menggunakan library khusus, biasanya kan kita pakai library opencv-python namun harus kita harus install opencv-contrib-python versi 4.5.1.48
Apa itu superpixel?
Superpixel melihat objek sebagai suatu entitas tertentu walaupun objek tersebut mempunyai beda warna dan bentuk.
Piksel gambar/pixel/picture element adalah unit dasar dalam sebagian besar tugas pemrosesan gambar. Namun, mereka adalah konsekuensi dari representasi gambar yang terpisah dan bukan entitas alam. Superpiksel adalah hasil dari pengelompokan piksel secara persepsi, atau dilihat sebaliknya, hasil dari oversegmentasi gambar. Segmentasi superpiksel dari suatu citra masukan diilustrasikan pada gambar berikut:
https://www.tu-chemnitz.de/etit/proaut/en/research/superpixel.html
Alih-alih memproses objek berdasar pixel by pixel, maka dalam superpixel akan melihat suatu objek sebagai entitas yaitu 2 kursi dan beberapa gunung
Contoh lain
https://medium.com/@darshita1405/superpixels-and-slic-6b2d8a6e4f08
Kesimpulan
Setelah saya mengenal selective search dan superpixel, maka beberapa project saya yang berkenaan dengan object detection kedepannya akan lebih banyak menggunakan teknik tersebut pada proses deep machine learning daripada hanya mengandalkan algoritma haar cascade-viola jones
ref