• Tidak ada hasil yang ditemukan

Percepatan Motion Estimation Berbasis Fase Dengan Teknik Hierarchical Search Menggunakan Graphical Processing Unit (GPU)

N/A
N/A
Protected

Academic year: 2021

Membagikan "Percepatan Motion Estimation Berbasis Fase Dengan Teknik Hierarchical Search Menggunakan Graphical Processing Unit (GPU)"

Copied!
5
0
0

Teks penuh

(1)

B1-60

Percepatan Motion Estimation Berbasis Fase Dengan

Teknik Hierarchical Search Menggunakan Graphical

Processing Unit (GPU)

Rosa A. Asmara dan M. Hariadi

Jurusan Elektro Bidang Keahlian Jaringan Cerdas Multimedia Institut Teknologi 10 Nopember Surabaya

60111, Indonesia Email : ra@elect-eng.its.ac.id

Abstrak

Pada paper ini menyajikan penggunaan metode Phase Only Correlation (POC) pada motion estimation dengan teknik hierarchical search menggunakan Graphical Processing Unit (GPU). Menggunakan fungsi POC, seseorang dapat melakukan estimasi translasi motion antara dua blok citra referensi dan citra yang diproses. Motion Estimation adalah proses untuk menentukan pergerakan suatu objek pada sekuens video digital. Pergerakannya umumnya diwakili dalam bentuk vector gerakan pada titik yang dipilih dalam frame sekarang dibandingkan dengan frame lain yang disebut sebagai frame referensi. Motion Estimation adalah hal mendasar pada beberapa bidang seperti image processing, image analysis, video coding, dan computer vision.

Hierarchical Search berbasis POC adalah algoritma yang membutuhkan waktu proses lama, sehingga system yang dicoba pada tesis ini memproses fungsi POC pada Graphical Processing Unit (GPU), dimana GPU memiliki kelebihan dalam menyelesaikan perhitungan bilangan floating point dibandingkan CPU. Evaluasi dilakukan dengan menghitung kecepatan waktu proses menggunakan GPU pada video resolusi tinggi dengan resolusi 1280 x 720 pixel. Hasil percobaan menunjukkan bahwa metode yang diajukan jika diselesaikan menggunakan GPU akan meningkatkan akselerasi proses hingga lebih dari dua kali lebih cepat dibandingkan jika diselesaikan menggunakan CPU.

Kata kunci : Motion Estimation, computer vision, image processing, POC, GPU, CUDA,

coarse-to-fine search technique.

1. Pendahuluan

Estimasi gerakan adalah suatu proses untuk menentukan pergerakan suatu objek pada sekuens video. Umumnya pergerakan tersebut diwujudkan dengan vektor gerakan pada titik yang dipilih didalam frame sekarang dihubungkan dengan frame lain yang disebut dengan frame referensi. Vektor gerakan adalah representasi perpindahan dari suatu titik antara frame sekarang dengan frame referensi [1].

Diantara berbagai macam metode estimasi gerakan, algoritma pencocokan blok adalah yang paling banyak digunakan dan populer karena kesederhanaan dalam aplikasinya. Pada algoritma pencocokan blok, suatu blok citra yang berpusat pada satu titik ditengahnya diframe sekarang dibandingkan dengan blok kandidat diframe referensi berdasarkan perbedaan atau persamaan tertentu untuk menemukan blok cocok yang terbaik pada area yang dicari. Salah satu contoh pengukuran dari perbedaan adalah Sum of Absolute Differences (SAD). Vektor gerakan dari titik didapat dari perpindahan blok.

Saat ini, teknik pencocokan citra akurasi tinggi menggunakan fungsi Phase Only Correlation (POC) telah dibuat dan diaplikasikan [1]-[4]. Menggunakan fungsi POC, kita dapat mengestimasi perpindahan translasional sebagai suatu derajat kesamaan

diantara dua blok citra dari lokasi dan tinggi puncak korelasi, secara berturut-turut. Telah ditunjukkan bahwa teknik pencocokan ini dapat mengestimasi perpindahan diantara dua citra dengan 1/100 akurasi pixel pada ukuran citra 100x100 pixel [3].

Salah satu permasalahan umum dari teknik POC ini adalah waktu komputasinya yang lama. Untuk mengatasi hal tersebut, maka proses komputasi dapat dilakukan oleh GPU (Graphical Processing Unit). GPU adalah suatu prosessor khusus yang dibuat untuk melakukan perhitungan rumit. Umumnya GPU digunakan dalam bidang komputer grafis untuk mengolah gambar-gambar dengan tingkat kompleksitas tinggi. Seiring perkembangannya, GPU saat ini telah dapat juga digunakan untuk proses komputasi untuk tujuan umum (General Purpose GPU - GPGPU). Dimulai dengan GPGPU, menggunakan CG-Toolkit. Akan tetapi proses menggunakan CG-Toolkit masih dirasa terlalu merepotkan bagi developer program, karena proses komputasi yang akan diolah GPU harus diubah terlebih dahulu menjadi data citra (Texture mapping). Untuk mengatasi hal tersebut, beberapa manufaktur GPU dunia telah mengembangkan bahasa tingkat tinggi untuk melakukan proses komputasi menggunakan GPU.

Penelitian ini mengusulkan perancangan dan pembuatan estimasi gerakan berbasis POC pada

(2)

sekuens video dan memanfaatkan GPU sebagai proses komputasinya, diharapkan dari penelitian ini akan didapat suatu aplikasi estimasi gerakan akurasi tinggi dengan proses yang lebih cepat karena komputasinya menggunakan GPU.

2. Phase Only Correlation

Phase Only Correlation adalah suatu metode untuk membandingkan fase block pada frame yang dianalisa dengan fase block pada frame referensi. Komponen fase didapat dari hasil transformasi diskrit 2D pada frame.

Jika dua buah citra resolusi N1 x N2, f(n1,n2)

dan g(n1,n2), dimana kita asumsikan range indexnya

adalah n1= -M1,...,M1 dan n2= -M2,...,M2 agar lebih

sederhana dalam perhitungan, sehingga N1 = 2M1 +

1 dan N2 = 2M2 + 1. Jika F(k1,k2) dan G(k1,k2) adalah

diskrit transformasi fourier 2D (2D DFTs) dari dua buah citra, maka F(k1,k2) dan G(k1,k2) didapat dari,

) , ( 2 1 2 1 2 1 1 2 2 1 2 2 2 1 1 1

(

,

)

)

,

(

)

,

(

F j k k n n n k N n k N F

e

k

k

A

W

W

n

n

f

k

k

F

=

=

θ (1) ) , ( 2 1 2 1 2 1 1 2 2 1 2 2 2 1 1 1

(

,

)

)

,

(

)

,

(

G j k k n n n k N n k N G

e

k

k

A

W

W

n

n

g

k

k

G

=

=

θ (2) Dimana k1 = -M1,...,M1, k2 = -M2,...,M2, 1 1 2 N j N

e

W

π −

=

, 2 2 2 N j N

e

W

π −

=

, dan operator

n1n2 dinyatakan dengan

1=1− 1

22=− 2 M M n M M n ,

AF(k1,k2) dan AG(k1,k2) adalah komponen amplitudo,

dan

e

jθF(k1,k2) dan

e

jθG(k1,k2) adalah komponen

fase.

Spektrum Cross-phase (atau cross spectrum ternormalisasi)

R

ˆ

(

k

1

,

k

2

)

didapat dari,

) , ( 2 1 2 1 2 1 2 1 2 1 1 2

)

,

(

)

,

(

)

,

(

)

,

(

)

,

(

ˆ

j k k

e

k

k

G

k

k

F

k

k

G

k

k

F

k

k

R

=

=

θ (3)

Dimana

G

(

k

1

,

k

2

)

menyatakan konjugasi kompleks dari G(k1,k2) dan θ(k1,k2) = θF(k1,k2) –

θG(k1,k2). Fungsi Phase Only Correlation

ˆ

(

,

)

2 1

n

n

r

adalah inverse diskrit transformasi fourier 2D (2D IDFT) dari

R

ˆ

(

k

1

,

k

2

)

dan didapat dari

− −

=

2 1 2 2 2 1 1 1

)

,

(

ˆ

1

)

,

(

ˆ

1 2 2 1 2 1 k k n k N n k N

W

W

k

k

R

N

N

n

n

r

(4) Dimana

2 1k k menyatakan

= =2 2 2 1 1 1 M M k M M k .

Dianggap fc(x1,x2) adalah citra 2D dalam ruang

temporal dengan bilangan real disimbolkan sebagai x1 dan x2. δ1 dan δ2 mewakili perpindahan subpixel

fc(x1,x2) pada arah x1 dan x2. Maka citra yang

berpindah dapat disimbolkan fc(x1- δ1,x2- δ2).

Anggap bahwa f(n1,n2) dan g(n1,n2) adalah citra

yang tersampling secara spasial dari fc(x1,x2) dan

fc(x1- δ1,x2- δ2), dan didefinisikan dengan,

2 2 2 1 1 1 , 2 1 2 1

,

)

(

,

)

|

(

n

n

f

c

x

x

x nT x nT

f

=

= = , 2 2 2 1 1 1 , 2 2 1 1 2 1

,

)

(

,

)

|

(

n

n

f

c

x

x

x nT x nT

g

=

δ

δ

= =

Dimana T1 dan T2 adalah interval sampling secara

spasial, dan range index didapat dari n1 = -M1,...,M1

dan n2 = -M2,...,M2. Fungsi POC

r

ˆ

(

n

1

,

n

2

)

antara

f(n1,n2) dan g(n1,n2) didapat dari,

{

}

{

}

+

+

+

+

)

(

sin

(

sin

)

(

sin

)

(

sin

)

,

(

ˆ

2 2 2 2 2 1 1 1 1 1 2 1 2 1

δ

π

δ

π

δ

π

δ

π

α

n

N

n

n

N

n

N

N

n

n

r

, (5)

Dimana α < 1. Posisi puncak dari fungsi POC menyatakan perpindahan antara dua citra, dan nilai puncak α menyatakan derajat kemiripan antara dua

citra.

Gambar 1. Fungsi Fitting untuk estimasi posisi puncak

3. Metode Pencarian Hierarki

Pada metode estimasi gerakan dengan pencarian hierarki berbasis POC (POC-Hierarchical Search), beberapa versi coarse (halus) dari citra masukan awal dibuat. Metode ini juga dikenal dengan nama coarse-to-fine correspondence search technique [4]. Pencocokan blok berbasis POC dimulai dari layer citra terkasar dan operasinya berlanjut ke layer yang lebih halus. Motion vector yang terdeteksi pada tiap layer di periksa pada layer berikutnya. Untuk lebih jelasnya dapat dilihat pada gambar berikut.

(3)

Gambar 2. Metode Pencarian Hierarki Jika po adalah titik yang diberikan pada citra yang

dianalisa, dan qo adalah titik korespondensi pada

citra referensi, pl dan ql adalah titik yang cocok pada

layer ke-l. Tujuan dari pencarian korespondensi adalah mencari titik korespondensi qo dari titik po

dan dengan demikian, akan didapatkan motion vector po sebagai qo – po.

Berikut adalah prosedur dari POC-HS : Masukan :

Citra yang dianalisa Io(n1,n2)(=I(n1,n2)),

Citra referensi Jo(n1,n2)(=J(n1,n2)),

Titik po (= p) pada Io(n1,n2)

Keluaran :

Titik korespondensi qo dari titik po pada

Jo(n1,n2), motion vector

HS po

v

dari titik po.

Langkah 1: Untuk layer l = 1,2,...,lmax, buat layer ke-l

pada citra Il(n1,n2) dan Jl(n1,n2), sebagai contoh versi

kasar dari Io(n1,n2) dan Jo(n1,n2) adalah:

= − =

+

+

=

l i l l i l

n

n

I

n

i

n

i

I

0 2 2 1 1 1 0 2 1 2 1

)

2

,

2

(

4

1

)

,

(

,

= − =

+

+

=

l i l l i l

n

n

J

n

i

n

i

J

0 2 2 1 1 1 0 2 1 2 1

)

2

,

2

(

4

1

)

,

(

.

Pada percobaan yang telah dilakukan [4] telah diset nilai untuk lmax pada 2 atau 3 tergantung pada range

gerakan yang diinginkan.

Langkah 2: Pada tiap layer l = 1,2,...,lmax, hitung

koordinat pl = (pl1,pl2) yang berkorespondensi

dengan titik asal po :









=





=

1 11 12

2

1

,

2

1

2

1

l l l l

p

p

p

p

Langkah 3: Diasumsikan bahwa qlmax = plmax pada

layer terkasar, dengan l = lmax – 1.

Langkah 4: Dari citra layer ke-l Il(n1,n2) dan Jl(n1,n2),

diambil dua blok citra (dengan ukuran W x W) yaitu fl(n1,n2) dan gl(n1,n2) dengan titik pusatnya secara

berturut-turut pada pl dan 2ql+1. Untuk keakurasian

pencocokan, ukuran dari blok citra selayaknya besar. Pada penelitian sebelumnya, digunakan 32 x 32 blok citra.

Langkah 5: Hitung jarak perpindahan antara fl(n1,n2)

dan gl(n1,n2) dengan akurasi pixel menggunakan

fungsi POC yang telah disederhanakan. Jika vector jarak perpindahannya adalah δl, maka korespondensi layer ke-l ql didapatkan dengan :

ql = 2ql+1 + δl.

Langkah 6: Kurangi counter dengan 1 untuk l = l – 1

dan ulangi dari langkah 4 sampai langkah 6 jika l>=0.

Langkah 7: Didapatkan nilai motion vector o o HS po

q

p

v

=

. Citra Referensi (Frame 100)

Citra yang diproses (Frame 105)

Gambar 3. Hasil motion vector Mobile Calendar 320x240 dengan 8 macroblock dan 4 search

parameter

4. Phase Only Correlation menggunakan GPU

Beberapa langkah yang harus dilakukan untuk melakukan proses di GPU adalah:

1. Alokasi Memori ke GPU.

2. Perpindahan data dari RAM CPU ke RAM GPU. Pada Matlab, tipe data yang dipakai adalah Double precision, sedangkan perangkat CUDA yang dipakai pada sistem ini hanya mendukung Single Precision. Sehingga sebelum data ditransfer ke RAM GPU, jika data yang akan diproses bertipe Double precision, maka data harus dikonversi ke Single precision.

3. Data pada RAM CPU perlu dialokasikan. 4. Saat data sudah berada di GPU, maka data

sudah siap diproses menggunakan CUDA (membuat fungsi sendiri atau library yang ada seperti CUBLAS/CUFFT).

5. Perpindahan data hasil proses dari GPU ke CPU. Jika diperlukan, data dapat dikonversi lagi ke Double precision.

6. Bersihkan alokasi memori pada GPU. Berikut adalah diagram proses dari POC menggunakan GPU:

(4)

Gambar 4. Diagram Alir POC GPU

5. Hasil Pengujian dan Analisa

Sistem yang diusulkan diimplementasikan dan diuji pada PC dengan sistem operasi Windows XP profesional SP2 dengan prosessor Intel Pentium Core2Duo, memori DDR2 512MB, Kartu grafis yang mendukung CUDA dengan spesifikasi Albatron NVIDIA GeForce 9600GT PCIExpress 512MB DDR3. File video yang diproses adalah video dataset dengan format .AVI dengan kecepatan 30 frame per second. Citra yang diproses adalah setiap 5 frame. Perangkat lunak yang digunakan adalah MATLAB 2007ª, untuk editing video menggunakan Ulead Video Studio, sedangkan compiler yang digunakan untuk mengcompile tool MEX CUDA adalah Microsoft Visual C++ 2005.

Diagram berikut berturut-turut adalah hasil pengujian yang didapatkan:

Full Search POC CPU vs GPU

0 5 10 15 20 25 30 35 40 32 64 128 256 POC Block ti m e ( s e c o n d s ) FS POC CPU FS POC GPU

Gambar 5. Selisih rata-rata waktu proses antara Full Search CPU dan GPU (semakin kecil bar, hasilnya

semakin baik)

3 Layer HS POC CPU vs GPU

0 100 200 300 400 500 600 32 64 128 256 POC Block ti m e ( s e c o n d s ) HS POC CPU HS POC GPU

Gambar 6. Selisih rata-rata waktu proses antara Hierarchical Search CPU dan GPU 3 layer

(semakin kecil bar, hasilnya semakin baik)

2 Layer HS POC CPU vs GPU

0 20 40 60 80 100 120 140 160 32 64 128 256 POC Block ti m e ( s e c o n d s ) HS POC CPU HS POC GPU

Gambar 7. Selisih rata-rata waktu proses antara Hierarchical Search CPU dan GPU 2 layer

(semakin kecil bar, hasilnya semakin baik)

Time Process Ratio GPU/CPU

0 0.5 1 1.5 2 2.5 32 64 128 256 POC Block R a ti o FS POC 3 Layer HS POC 2 Layer HS POC

Gambar 8. Perbandingan kecepatan proses pada Full Search, 3 layer Hierarchical Search, 2 layer Hierarchical Search POC antara GPU dan CPU

6. Kesimpulan

Dari hasil percobaan, terlihat perbandingan kecepatan optimal didapat dari POC Hierarchical Search 2 layer pada POC block 256, yaitu bernilai sekitar 2,1. Atau dengan kata lain, dengan POC Hierarchical Search 2 layer pada 256 POC block, diproses menggunakan GPU akan lebih cepat 2,1 kali daripada diproses menggunakan CPU. Tidak menutup kemungkinan, jika teknologi dimasa mendatang lebih maju dan ukuran resolusi video menjadi lebih tinggi, maka sistem ini juga akan

(5)

dapat menyelesaikan permasalahan dengan lebih cepat tingkat rasionya.

7. Daftar Pustaka

[1] Loy Hui Chien and Takafumi Aoki, ”Robust Motion Estimation for Video Sequences Based on Phase-Only Correlation,” 6th IASTED International Conference Signal and Image Processing, pp. 441-446, August 2004.

[2] C.D. Kuglin and D.C. Hines, “The phase correlation image alignment method,” Proc. Int. Conf. on Cybernetics and Society, pp. 163-165, 1975.

[3] K. Takita, M.A. Muquit, T. Aoki, and T. Higuchi, “High-Accuracy subpixel image registration based on phase-only correlation,” IEICE Trans. Fundamentals, Vol. E86-A, No. 8, pp. 1925-1934, August 2003.

[4] K. Takita, M. A. Muquit, T. Aoki, and T. Higuchi,“A sub-pixel correspondence search technique for computer vision applications,” IEICE Trans. Fundamentals, 2004.

[5] Ensiklopedia online, http://www.en.wikipedia.org [6] GPGPU Vis Course, Minneapolis, USA, 2005. [7] Nuno Vasconcelos, “Coarse-to-Fine Least

Squares Motion Estimator”, October 23, 1993.

[8] Sudipta N. Sinha, Jan-Michael Frahm, Marc Pollefeys, Yakup Genc, “GPU-based Video Feature Tracking and Matching”, 2004

[9] Eero P. Simoncelli, “Coarse-to-Fine Estimation of Visual Motion”, 8th Workshop on Image and Multidimensional Signal Processing in Cannes France, IEEE Signal Processing Society, September 1993.

[10] NVidia Cuda Team, “SC-07 Cuda Tutorial”, 2007

[11] GPGPU VISCOURSE05, International

conference on GPGPU, Minneapolis USA, April 20, 2005.

[12] Matlab R2007a Documentation, 2007. [13] Nvidia Developer Team, “NVIDIA CUDA

Programming Guide Version 2.0”, 6/7/2008.

[14] Nvidia Developer Team, “CUDA Reference Manual Version 2.0”, June 2008.

[15] Nvidia Developer Team, “CUDA CUFFT Library Manual Version 2.0”, April 2008.

[16] Nvidia Developer Team, “CUDA nvcc Manual Version 2.0”, January 04 2008.

[17] Nvidia Developer Team, “Nvidia White Paper, Accelerating MATLAB with CUDA using MEX Files”, September 2007.

[18] Nvidia CUDA Forums,

http://forums.nvidia.com/index.php?showforum=62

Gambar

Gambar 1. Fungsi Fitting untuk estimasi posisi  puncak
Gambar 2. Metode Pencarian Hierarki  Jika  p o   adalah  titik  yang  diberikan  pada  citra  yang  dianalisa,  dan  q o   adalah  titik  korespondensi  pada  citra referensi, p l  dan q l  adalah titik yang cocok pada  layer  ke-l
Gambar 4. Diagram Alir POC GPU  5.  Hasil Pengujian dan Analisa

Referensi

Dokumen terkait

Dalam proses penyimpanan dan edit data pada sistem informasi perundangan peraturan daerah provinsi jateng ini maka proses yang dilakukan adalah menyusun data-data

• Start state atau initial state merupakan state dimana sistem berada • Start state atau initial state merupakan state dimana sistem berada1. dalam

Perbandingan kenaikan atau penurunan kontribusi terhadap pendapatan usaha periode 2015- 2016, terjadi pada peningkatan penjualan koran sebesar 0,03%, dan sebaliknya

Pertumbuhan tenaga kerja, pertumbuhan total produksi industri dan pertumbuhan jumlah usaha industri usaha kecil menengah (UKM) secara bersama-sama (simultan) memiliki pengaruh

Kemudian ayat (4) menyebutkan bahwa pemekaran dari satu daerah menjadi dua daerah atau lebih sebagaimana dimaksud pada ayat (3) dapat dilakukan setelah mencapai

Berawal dari peranan Telkom tersebut, dapat dijelaskan bahwa peranan Telkom sebagai perusahaan yang bergerak di bidang jasa telekomunikasi di Indonesia begitu strategis guna

Angka ini menggambarkan perkiraan kondisi ekonomi konsumen selama satu triwulan mendatang yang masih berada pada taraf optimis dengan level optimismenya yang lebih rendah

Belajar adalah proses usaha yang dilakukan seseorang untuk memperoleh perubahan tingkah laku yang baru secara keselutuhan sebagai hasil pengalamannya sendiri dalam