Вы находитесь на странице: 1из 15

BAB II

TINJAUAN PUSTAKA

2.1 Kelapa Sawit

Kelapa sawit merupakan tanaman famili Palmae yang berasal dari Afrika Barat.

Kelapa sawit menjadi salah satu tumbuhan industri penting penghasil minyak masak, minyak

industri, hingga bahan bakar atau biodiesel. Kelapa sawit yang memiliki peran penting dalam

industri menjadikan kelapa sawit sebagai peluang usaha, salah satunya dengan pembukaan

perkebunan kelapa sawit. Persebaran perkebunan kelapa sawit di Indonesia meliputi daerah

Aceh, Sumatera, Jawa, Kalimantan, dan Sulawesi. Hingga saat ini Indonesia menjadi

penghasil minyak kelapa sawit terbesar di dunia (Mutiara, n.d.)

Pohon kelapa sawit memiliki tinggi mencapai 24 meter dan memiliki akar serabut yang

mengarah ke bawah dan samping. Seperti jenis palma lainnya, daun pohon kelapa sawit

berwarna hijau tua dengan pelepak berwarna sedikir lebih muda dan tersusun secara majemuk

menyirip. Batang tanaman diselimuti bekas pelepah hingga umur 12 tahun. Pohon kelapa
sawit berkembang biak dengan cara generatif. Syarat hidup untuk pohon kelapa sawit berupa

daerah tropis (15° LU - 15° LS) di ketinggian 0-500 meter dari permukaan air laut dengan

kelembaban 80-90% serta curah hujan stabil 2000-2500 mm setahun (Handayani & Caeli,

2013).

2.2 Citra Digital

Citra adalah representasi, kemiripan, atau imitasi dari objek atau benda. Citra

dikatakan sebagai citra digital jika citra tersebut disimpan dalam format digital atau file.

Sebuah citra digital terdiri dari kumpulan nilai yang tersusun secara dua dimensi, yaitu baris

dan kolom. Setiap nilai dari kumpulan tersebut yang dinamakan piksel (Derisma, 2016). Pada

umumnya nilai-nilai dari piksel merupakan bilangan buat dan memiliki jangkauan nilai

minimal maupun maksimal, serta memiliki tingkat intensitas salah satu komponen warna pada

model warna tertentu, seperti RGB. Dimensi dari susunan nilai piksel disebut dengan lebar

dan tinggi dari citra sedangkan banyaknya bit untuk menyatakan sebuah nilai disebut

kedalaman citra (Sutoyo, Purnama, Si, & Sthevanie, 2015).

2.3 OpenCV

OpenCV merupakan open source library untuk computer vision. Library ini ditulis dalam

bahasa C dan C++ dan dapat dijalankan dengan berbagai operating system seperti Linux,

Windows, dan mac OS X (Suryadi & Sikumbang, n.d.). Computer vision adalah salah satu

cabang Ilmu Pengolahan Citra atau Image Processing yang memungkinkan komputer dapat

memiliki kemampuan melihat seperti manusia. Dengan kemampuan vision tersebut, komputer

dapat mengambil keputusan, melakukan aksi, serta mengenali objek. Tujuan dari OpenCV

adalah menyediakan infrastuktur computer vision yang dapat diguankan untuk membangun

aplikasi atau sistem visi secara cepat (Derisma, 2016).


2.4 Histogram of Oriented Gradient

Metode Histogram of Oriented Gradient (HOG) adalah sebuah metode dalam

pengolahan citra yang bertujuan untuk deteksi objek. Metode HOG menghitung nilai gradien

dalam daerah tertentu pada suatu citra. Tiap citra mempunyai karakteristik yang ditunjukkan

oleh distribusi gradient. Karakteristik tersebut diperoleh dengan membagi citra ke dalam

daerah yang lebih kecil, yaitu cell. Tiap cell disusun sebuah histogram dari sebuah gradien.

Kombinasi dari histogram ini dijadikan sebagai deskriptor yang mewakili sebuah objek (Ilmi,

Novianty, & Ahmad, 2015).

Teknik HOG dilakukan dengan menghitung nilai gradien dalam daerah tertentu pada

suatu image. Tiap image mempunyai karakteristik yang ditunjukkan oleh distribusi gradien.

Karakteristik ini diperoleh dengan membagi image kedalam daerah kecil yang disebut cell.

Tiap cell disusun sebuah histogram dari sebuah gradient. Kombinasi dari histogram ini

dijadikan sebagai deskriptor yang mewakili sebuah objek.


Tahap – tahap merubah citra gambar dengan menggunakan metode histogram of

oriented gradient :

a. Input Gambar : merupakan gambar asli

b. Koreksi Gamma : Merupakan gambar asli yang dikompresi menjadi gambar gamma

untuk menjadikan gambar menjadi gelap.

c. Menghitung Gradien Gambar : yakni untuk menghitung kemiringan pada sebuah

gambar. Dimana perhitungan ini menggunakan perhitungan operator sobel (Edge Detection)

seperti terlihat pada persamaan dibawah ini.

Maks Konvolusinya :

M (x) = [-1 1] (2.1)

M (y) = − (2.2)

Keterangan:

M (x) : Maks konvolusinya (kernel) pada (x)

M (y) : Maks konvolusinya (kernel) pada (y) dari hasil transpose maks (x)

Selanjutnya rumus menghitung gradient (x) dan gradient (y) kita membutuhkan maks

konvolusinya dengan menggunakan Persamaan (2.1) dan Persamaan (2.2).

G (x) = M (x) * I (2.3)

G (y) = M (y) * I (2.4)

Keterangan:

G (x): Gradient (x)

G (y): Gradient (y)

I: Image (gambar)
Contoh :

Sebuah contoh gambar dengan nilai 5x5 piksel yang telah ditentukan nilainya dalam

setiap cell yakni:

1 1 1 1 1

1 1 1 1 1

1 1 1 0 0

1 1 0 0 0

1 1 0 0 0

Dari contoh soal pada gambar diatas maka disini kita dapat menghitung nilai gradient

(x) dan gradient (y) pada setiap cell dengan menggunakan rumus yang telah ditentukan

dengan persamaan (2.3) untuk mencari nilai gradient t(x) dan persamaan (2.4) untuk mencari

nilai gradient (y). lebih lanjutnya kita membahas tentang perhitungan mencari gradient t(x)

pada persamaan (2.3)

1 1 1 1 1

1 1 1 1 1

1 1 1 0 0

1 1 0 0 0

1 1 0 0 0

Untuk perhitungannya kita membuat blok terlebih dahulu sesuai dengan jumlah maks

konvolusinya 1 x 2 dengan arah vertikal kemudian hitung dengan menggunakan rumus pada

persamaan (2.3) terlihat pada perhitungan dibawah ini.

Baris 1 Kolom 1 G (x) = [-1 1] * [1 1] = (-1)*1 + 1*(1) = 0


Baris 1 Kolom 2 G (x) = [-1 1] * [1 1] = (-1)*1 + 1*(1) = 0

Baris 1 Kolom 3 G (x) = [-1 1] * [1 1] = (-1)*1 + 1*(1) = 0

Baris 1 Kolom 4 G (x) = [-1 1] * [1 1] = (-1)*1 + 1*(1) = 0

Lakukan hingga sampai baris 5 dan kolom 4 dengan cara yang sama untuk

mendapatkan nilai gradient (x). Setelah menghitung nilai gradient (x) maka langkah

selanjutnya kita menghitung nilai gradient (y) dengan menggunakan Persamaan (2.4).

Untuk menghitung gradient (y) sama seperti menghitung gradient(x) hanya saja pada

perhitungan gradient (y) dengan arah horisontal terlihat pada gambar dibawah ini.

1 1 1 1 1

1 1 1 1 1

1 1 1 0 0

1 1 0 0 0

1 1 0 0 0

Kemudian kita dapat menghitung gradient (y) sesuai dengan rumus persamaan (2.4)

terlihat seperti perhitungan dibawah ini.

Baris 1 Kolom 1 G (y) = − 11* [1 1] = 1*(1) + 1*(-1) = 0

Baris 2 Kolom 2 G (y) = − 11* [1 1] = 1*(1) + 1*(-1) = 0

Baris 3 Kolom 3 G (y) = − 11* [1 1] = 1*(1) + 1*(-1) = 0

Baris 4 Kolom 4 G (y) = − 11* [1 1] = 1*(1) + 1*(-1) = 0


Lakukan hingga sampai baris 4 dan kolom 5 dengan cara yang sama sehingga

mendapatkan hasil seperti pada kolom dibawah ini.

Gradient (x) Gradient (y)

0 0 0 0 * 0 0 0 0 0

0 0 0 0 * 0 0 0 1 1

0 0 -1 0 * 0 0 1 0 0

0 -1 0 0 * 0 0 0 0 0

0 -1 0 0 * * * * * *

Setelah menemukan gradient (x), gradient (y), dan arah gradiennya maka langkah

selanjutnya menghitung kekuatan tepi (magnitude) dengan Persamaan (2.5) dan sudut gradien

dengan Persamaan (2.6).

[ ( , ) ] = | Gx| + |Gy| (2.5)

Keterangan:

G [f(x,y)]: Magnitude (kekuatan tepi)

Gx: Gradient (x)

Gy: Gradient (y)

Dengan rumus persamaan (2.5) maka kita dapat menghitung kekuatan tepi pada setiap

cell seperti pada perhitungan dibawah ini.

1 1|G x | + |Gy| = |0| + |0| = 0

1 2| G x | + |Gy| = |0| + |0| = 0

1 3| G x | + |Gy| = |0| + |0| = 0

1 4| G x| + |Gy| = |0| + |0| = 0

1 5| G x | + |Gy| = |0| + |0| = 0


Lanjutkan perhitungan hingga baris ke-4 kolom ke-5 untuk mendapatkan hasilnya

seperti pada kolom dibawah ini.

0 0 0 0 *

0 0 0 0 *

0 0 2 0 *

0 2 0 0 *

0 2 0 0 *

Setelah menghitung kekuatan tepi (magnitude) gradient maka kita dapat menghitung

sudut tepi gradient dengan menggunakan rumus pada persamaan (2.6).

(,)=- (2.6)

Keterangan

á(x,y) : Sudut (x) dan sudut (y)

: arctan

Gx : Gradient (x)

Gy : Gradient (y)

Kemudian lakukan perhitungan hingga baris ke-4 kolom ke-5 sampai mendapatkan

hasil seperti pada kolom dibawah ini.

0° 0° 0° 0° *

0° 0° 0° 0° *

0° 0° -45° 0° *

0° -45° 0° 0° *

0° -45° 0° 0° *
Langkah selanjutnya membuat keputusan apakah suatu piksel merupakan tepi atau bukan

tepi dinyatakan dengan operasi pengambangan sesuai dengan Persamaan (2.7)

(,)= ;[(,)]≥ (2.7)

Untuk menentukan apakah suatu piksel merupakan tepi atau bukan tepi maka kita dapat

mengetahuinya dengan perhitungan hasil kekuatan tepi.

0 0 0 0 *

0 0 0 0 *

0 0 2 (Titik Ambang) 0 *

0 2 0 0 *

0 2 0 0 *

Nilai 2 termasuk titik ambang yang digunakan untuk Threshold (T) dengan menggunakan

titik ambang ini maka dapat ditentukan jika nilai setiap cell lebih besar dari threshold (2) atau

sama maka tepi dinyatakan warna putih. Jika threshold kurang dari 2 maka tepi dinyatakan warna

hitam. Seperti halnya pada gambar dibawah ini.


d. Orientasi Binning : dimana terdiri dari cell, blok

Dimana bins itu sendiri adalah histogram , bins terjadi pada 1 sampai 9 bins yang di

dapat dari 0-180 yang dimana 180 : 20 = 9 bins seperti pada gambar dibawah ini.

e. Normalisasi Blok dan Cell : untuk menormalkan blok dan cell.

f. SVM (Support Vector Machine): mesin penentu yang berfungsi untuk menentukan

apakah gambar tersebut merupakan objek atau non objek.


2.5 Algoritma Connected Componen Labeling (CCL)

Algoritma Connected-components Labeling (CCL) adalah algoritma yang melakukan

pendeteksian objek dengan memanfaatkan struktur data Union-Find. Struktur data Union-Find

merupakan penerapan dari sebuah himpunan yang terdiri dari anggota himpunan-himpunan

terpisah (disjoint sets). Himpunan terpisah merupakan himpunan yang anggotanya saling lepas

(tidak memiliki anggota yang sama) antara satu himpunan dengan himpunan lainnya. Struktur

data Union-Find yang diimplementasikan pada algoritma CCL berupa sebuah himpunan yang

anggotanya adalah sub-himpunan (subset) komponen label. Komponen label adalah komponen

piksel gambar yang diberi label. Label ini umumnya berupa bilangan bulat positif.

Penjelasan tentang Union-Find secara umum adalah sebagai berikut:

Diasumsikan dengan label Li dengan 1 ≤ i ≤ N dengan N adalah jumlah komponen. Ketika

terdapat N komponen dengan label L1, L2, sampai LN, maka akan terdapat himpunan (set) H

= { S1,S2,…SN }. S1,S2,…SN adalah subset dari H dengan keterangan S1[0] = {L1},

S2={L2}, S3={L3},…SN={LN} dan nilai kepala subset (parent subset/parent label) awal R1

= L1 , R2 = L2 , R3 = L3 , … RN = LN . Ketika label L2, hingga L4 digabungkan dengan

label L1, maka anggota subset S1 akan bertambah dan kondisi subset menjadi S1[4] =

{L1,S2,S3,S4}. Setiap kali terjadi penggabungan komponen pada S1 akan dipilih sebuah label

representasi R1 dengan nilai label terkecil di antara label-label anggota subset S1. Jika L3

merupakan label dengan nilai terkecil, maka R1 = L3. Apabila terdapat L5 yang tergabung

dengan L6, maka akan terbentuk subset S6[2]={L6,S5} yang memiliki dua anggota subset.

Jumlah anggota di dalam subset dapat disebut sebagai kardinalitas dilambangkan n(subset).

Subset S6 merupakan subset terpisah dengan subset S5, karena tidak ada anggota subset yang

sama. Dengan ini maka baru terbentuk dua subset dengan kardinalitas lebih dari 1 dalam
himpunan H. Apabila terdapat label L7,L8,dan L9 yang digabungkan dengan L5, maka

S5[4]={L5,S7,S8,S9} dengan n(S5) = 4 dan n(S6) = 5. Terlihat bahwa L6 atau S6 sebagai

label tempat L5 tergabung kardinalitasnya bertambah. L6 atau S6 ini dapat disebut sebagai

parent subset/parent label. Penggabungan label-label dapat direpresentasikan ke dalam graf

pohon dengan cabang-cabang pohon yang saling tergabung pada sebuah pohon besar. Tiap-

tiap cabang pohon memiliki kepala (parent label/subset parent) yakni label itu sendiri (Ri=Li).

Ketika ada dua label digabungkan, maka akan terbentuk pohon besar. Kepala pohon besar

dipilih berdasarkan nilai label kepala cabang pohon terkecil. Tiap cabang pohon memiliki

kemungkinan kardinalitas subset yang beragam, sehingga terlihat cabang pohon besar dengan

kardinalitas besar (anggota lebih banyak) dengan cabang pohon kecil dengan kardinalitas kecil

(anggota lebih sedikit, minimal dua anggota : kepala dan badan). Kardinalitas sebagai data

dari subset/komponen label ini biasa disebut rank digunakan sebagai perbandingan dalam

menentukan pohon mana yang akan menjadi kepala dari pohon yang lain (root subset/root

label) dan yang akan menjadi anak dari pohon kepala (child subset/child label). Namun, dalam

struktur data union-find tidak disimpan data anak (child subset/child label), karena struktur

pohon berbentuk graf searah mengarah ke atas (upwards) hingga ditemukan akar pohon (root

subset/root label/root tree) sebagai representasi dari subset yang bersangkutan. Hal ini juga

guna menghemat biaya operasi tidak seperti pembentukan pohon menggunakan struktur larik

dinamis vector yang banyak melibatkan pointer cenderung boros pemakaian memori.
Berikut adalah ilustrasi pohon pada Union-Find.

Pada gambar terlihat adanya dua cabang pohon dengan kepala utama komponen label

(root subset/root label) A dan E. Komponen label B pada cabang pohon A berperan sebagai

kepala komponen label (parent subset/parent label) D. D adalah komponen anak (child

subset/child label) dari B, sedangkan C adalah komponen anak (child subset/child label) dari

A. D dan C keduanya anggota komponen anak (child subset/child label) dari kepala utama

komponen label (root subset/root label) A. Begitu juga untuk F dan G. Kepala utama

komponen label (root subset/root label) A digabungkan dengan E, maka A menjadi komponen

anak (child subset/child label) dari E, sehingga E menjadi kepala utama komponen label (root

subset/root label) dari A.

Ide inilah yang menjadi bagian dasar dari kelebihan algoritma connected-compoents

labeling secara umum, yang mana sebuah label dapat mewakili sebuah komponen terhubung

membentuk blob. Umumnya implementasi dari teknik Union-Find ini untuk membuat subset

digunakan struktur data larik dinamis bernama vector. Larik dinamis ini cenderung boros

memori, karena operasi yang dilakukan, seperti penambahan, pengurangan, atau pengaksesan

elemen didasarkan pada alamat memori menggunakan pointer


Struktur data Union-Find yang diterapkan pada algoritma CCL adalah dengan

membuat komponen subset dari piksel-piksel objek. Piksel objek dibentuk dari piksel-piksel

berdekatan saling terhubung satu sama lain dengan kesamaan ciri dan yang dapat disebut

sebagai connected-components atau blob (Cabaret et al., 2016). Beberapa metode

pendeteksian algoritma menyertakan proses penyaringan antara piksel objek dengan piksel

bukan objek, sehingga terbentuk gambar dwimatra bertipe biner dengan piksel objek diwakili

oleh nilai 1 dan piksel bukan objek diwakili oleh nilai 0 secara konvensional (Gupta et al.,

2014). Piksel dengan nilai 1 dapat dianggap sebagai komponen-komponen diskrit. Selanjutnya

tiap komponen dengan nilai 1 dapat dilakukan pemberian label (masking) berupa bilangan asli.

Umumnya komponen yang saling berdekatan akan memiliki nilai label yang sama, sedangkan

antar komponen yang saling berjauhan akan memiliki nilai label yang berbeda tergantung

bagaimana metode pemberian label (masking) yang digunakan. Proses masking tersebut

berdasarkan pengecekkan pada piksel tetangga dari piksel yang sedang diperiksa labelnya

berdasarkan konektivitas yang dipilih. Pemberian label baru terhadap suatu komponen, yakni

dengan cara menaikkan nilai bilangan dari label terakhir yang tercipta.

Terdapat berbagai macam teknik masking dengan variasi pertimbangan pemilihan label

berdasarkan jumlah piksel tetangga yang diperiksa. Hal ini biasa disebut dengan block-based

algorithm (Cabaret dan Lacassagne, 2016). Hasil gambar yang telah diberi label pada

connected-components selanjutnya perlu penggabungan antara satu label dengan label lainnya

yang berdekatan. Konteks berdekatan yang dimaksud adalah piksel satu dengan lainnya

terhubung oleh konektivitas seperti pada gambar 2.14. Penggabungan label-label (merging

label) tersebut membentuk sebuah komponen terhubung (connected-components) atau blob

diwakili oleh sebuah label tetap (resolving label). Komponen-komponen terhubung ini
selanjutnya dapat dianggap sebagai himpunan anggota objek-objek yang ditangkap oleh

kamera. Komponen yang saling terhubung menjadi satu ini memiliki properti jumlah piksel

dan koordinat-koordinat label pembentuk komponen. Dari properti ini kemudian dapat

dihitung mengenai hitungan geometris atau statistika momen, seperti ukuran (luasan) objek

ditandai jumlah pikselnya, titik tengah, atau keliling dari komponen terhubung (He et al.,

2012).

Gambar sumber berupa gambar digital yang tersegmentasi merupakan tahap pada level

pemrosesan rendah (low-level processing). Sedangkan, hasil analisis berupa statistika momen

merupakan bagian dari level pemrosesan tinggi (high-level processing). Algoritma connected-

components labeling menjadikan metode yang wajib dilakukan pada transisi kedua tahap

tersebut (Cabaret et al., 2014).

Вам также может понравиться