103
ISSN 1979-2867 (print) Electrical Engineering Journal Vol. 4 (2014) No. 2, pp. 103-111
Penerjemah Bahasa Isyarat Tangan Berbasis Raspberry Pi Eric Septian Hermawan dan Aan Darmawan Jurusan Teknik Elektro, Universitas Kristen Maranatha, Bandung Jl. Suria Sumantri 65, Bandung 40164, Indonesia
[email protected];
[email protected]
Abstrak: Bahasa Isyarat adalah bahasa yang digunakan penyandang tuna rungu untuk berkomunikasi. Namun tidak semua orang mengerti Bahasa isyarat. Sehingga dibuatlah penerjemah bahasa isyarat tangan berbasis Raspberry Pi. Bahasa isyarat yang diterjemahkan adalah sistem isyarat bahasa Indonesia (SIBI). Proses penerjemahan menggunakan pemrosesan gambar dari tangan yang sedang melakukan bahasa isyarat yang direkam melalui webcam dengan menggunakan metoda analisa kontur convex hull dan convexity defects. Sistem ini dapat menerjemahkan bahasa isyarat dengan keberhasilan rata-rata sebesar 83,08% dengan waktu rata-rata yang dibutuhkan sebesar 1,307 detik. Untuk orang yang berada di luar database tingkat keberhasilan hanya sebesar 7,69%. Sehingga sistem ini bersifat spesifik terhadap penggunanya Kata kunci: Bahasa Isyarat, Raspberry Pi, webcam, analisis kontur, convex hull, convexity defects Abstract: Deaf community use sign language as their main communication language. However, using language that not everybody understands, will cause a difficulty to communicate. Hence it is needed translator tool as communication media. Because of that, hand sign language translator based on Raspberry Pi is made. Translating process is using image of hand sign language (recorded by webcam) using contour analysis method, convex hull and convexity defects. The result is translator system successfully made and well-functioning. Average success rate of this system is 83.08% with average translate time is 1.307 second. For people that outside of the database average success rate is only 7.69%. So, this translator system is a system that specific to only one user. Keywords: Sign language, Raspberry Pi, webcam, contour analysis, convex hull, convexity defects.
I. PENDAHULUAN Masyarakat tuna rungu pada umumnya menggunakan bahasa isyarat sebagai alat komunikasi utamanya. Bahasa isyarat menggunakan orientasi, bentuk dan gerakan tangan, lengan, tubuh serta ekspresi wajah. Tetapi cara komunikasi ini sering menyulitkan karena tidak
104
ELECTRICAL ENGINEERING JOURNAL, VOL. 4, NO. 2, APRIL 2014
semua orang mengerti bahasa isyarat. Untuk mengatasi masalah ini, diperlukan upaya penerjemah yang mudah sehingga lebih dapat dimengerti oleh masyarakat umum. Penggunaan komputer pada penelitian ini adalah single board computer Raspberry Pi. Single board computer merupakan sebuah board yang memiliki microprocessor, memory, input/output (I/O), dan fitur lain yang layaknya sebuah komputer. Alasan penggunaan Raspberry Pi dalam penelitian ini adalah harganya relatif murah dan ukurannya yang lebih kecil dibandingkan komputer biasa, sehingga dapat diaplikasikan dimana saja dan dengan harga yang tidak terlalu tinggi. Sebagai alat bantu untuk mengenali juga digunakan kamera webcam sebagai penangkap gambar dari bahasa isyarat yang kemudian diproses dalam Raspberry Pi sehingga bahasa isyarat dapat terbaca. Metoda analisa yang digunakan adalah analisa kontur dengan menggunakan convex hull dan convexity defects.
II. PERANCANGAN II.1. Bahasa Isyarat[1] Bahasa isyarat merupakan bahasa yang memanfaatkan komunikasi visual, dalam hal ini adalah bahasa isyarat tangan, yang merepresentasikan setiap huruf atau frase. Setiap huruf atau frase dapat direpresentasikan dengan mengkombinasikan bentuk tangan, orientasi, dan gerak tangan, lengan atau tubuh, serta ekspresi wajah. Ada beberapa standar bahasa isyarat yang digunakan di berbagai belahan dunia, contohnya untuk Amerika memiliki bahasa isyarat American Sign Language (ASL) (Gambar 1.a), Inggris memiliki British Sign Language. Untuk Indonesia digunakan sistem isyarat sendiri, yang disebut dengan Sistem Isyarat Bahasa Indonesia (SIBI) (Gambar 1.b). Dalam penelitian ini digunakan Sistem Isyarat Bahasa Indonesia (SIBI).
(a) Gambar 1.a. American Sign Language (ASL)
(b) b. Sistem Isyarat Bahasa Indonesia (SIBI)
II.2. Raspberry Pi[2] Raspberry Pi (Gambar 2) merupakan sebuah single board computer; sebuah komputer yang sudah terintegrasi dalam satu buah papan dengan ukuran sebesar kartu kredit. Walaupun ukurannya kecil, fitur yang ada pada Raspberry Pi ini sudah seperti pada komputer. Keluaran untuk menampilkan gambar dari komputer ini sudah menggunakan High-Definition Media
ISSN: 1979-2867
PENERJEMAH BAHASA ISYARAT TANGAN BERBASIS RASPBERRY PI
105
Interface (HDMI), memiliki Video Graphic Array (VGA) untuk memproses gambar, dan banyak fitur lain layaknya sebuah komputer biasa hanya dengan ukuran yang jauh lebih kecil.
Gambar 2. Raspberry Pi
II.3. Bahasa Pemrograman Python[3] Python adalah bahasa pemrograman tingkat tinggi untuk segala kebutuhan yang didesain untuk menegaskan kode yang dapat dibaca. Syntax pada Python membuat programmer untuk mengekspresikan konsep dengan barisan kode yang lebih sedikit, yang lebih mudah dimengerti oleh programmer. Struktur dasar dalam pemrograman Python biasanya memuat tiga bagian, bagian pertama merupakan deklarasi dari library tambahan yang akan digunakan di dalam program, bagian kedua merupakan deklarasi function (dinyatakan dengan “def fungsi()”), dan bagian ketiga merupakan bagian program utama yang akan dijalankan ketika program dieksekusi. Beberapa hal penting mengenai Python:
1. Pengelompokan statement telah selesai dengan indentasi (memisahkan blok program dengan spasi) sebagai pengganti pengurungan mulai dan akhiran. 2. Tidak ada deklarasi argumentasi atau variabel yang diperlukan, tipe variabel otomatis akan menyesuaikan dengan isi dari variabel tersebut, misalnya jika x = „10‟ maka tipe variabel x adalah string, sedangkan bila x = 10.0 maka tipe variabel x adalah float. 3. Comment pada python menggunakan tanda „#‟ atau diapit dengan tanda kutip tiga kali. 4. Program bersifat indentation sensitive, artinya setiap baris memiliki indentation tertentu, bila tidak sesuai maka program akan menampilkan error. II.4. OpenCV[4] OpenCV (Open Source Computer Vision) adalah library dalam pemrograman yang ditujukan untuk computer vision, dikembangkan oleh Intel, dan saat ini didukung oleh Willow Garage dan Itseez. OpenCV ini dapat digunakan secara gratis menggunakan lisensi BSD. Library ini bersifat cross platform, dapat digunakan dalam beberapa bahasa pemrograman seperti C, C++ dan Python. Library ini terdiri dari fungsi-fungsi computer vision dari API (Application Programming Interface) untuk image processing baik high level maupun low level dan sebagai optimisasi aplikasi real time.
ISSN: 1979-2867
106
ELECTRICAL ENGINEERING JOURNAL, VOL. 4, NO. 2, APRIL 2014
II.5. Analisis Kontur[5][6] Kontur merupakan kurva yang menyatukan semua titik sepanjang batas yang memiliki intensitas atau warna yang sama. Kontur merupakan alat yang berguna untuk analisis bentuk dan deteksi dan pengenalan objek. Untuk menganalisa kontur dari gambar bahasa isyarat tangan, digunakan convex hull dan convexity defects.
A. Convex Hull Convex hull merupakan salah satu struktur geometri yang banyak digunakan dalam analisis geometri. Convex hull merupakan poligon konveks terkecil pada bidang yang mengandung semua bagian dari S, dan S (S = {p1, p2, …, pN}) merupakan titik yang berada pada bidang, ilustrasi seperti pada Gambar 3.
Gambar 3. Ilustrasi dari convex hull
B. Convexity Defects
Gambar 4. Ilustrasi convex hull (garis hitam) dan convexity defects (area kotak-kotak) pada gambar tangan
Setelah menentukan convex hull, maka convexity defects merupakan bagian dari “kekurangan” antara poligon yang dibentuk dengan titik atau kontur yang berada di dalamnya. Bentuk kontur tangan dapat dianalisa menggunakan metoda ini, untuk setiap convexity defects yang berada di dalam kontur tangan, terdapat titik mulai (ps), titik kedalaman (pd), titik akhir (pe), dan panjang (ld) dari kedalaman, seperti yang ditunjukkan dalam Gambar 4. Garis hitam
ISSN: 1979-2867
107
PENERJEMAH BAHASA ISYARAT TANGAN BERBASIS RASPBERRY PI
pada gambar tersebut merupakan convex hull dari tangan. Setiap bagian A sampai dengan H merupakan convexity defects relatif terhadap convex hull.
III. PERANCANGAN DAN REALISASI Sistem yang direalisasikan digambarkan pada Gambar 5 dalam diagram blok berikut.
Gambar 5. Diagram blok sistem
Sistem ini (menggunakan Raspberry Pi) menangkap posisi tangan suatu huruf bahasa isyarat melalui webcam dan disimpan dalam bentuk gambar, kemudian pada gambar dilakukan thresholding dalam bidang HSV untuk memisahkan objek tangan dengan objek yang lainnya, berikutnya noise gambar dikurangi dengan image morphology, selanjutnya dilakukan pencarian kontur dari gambar tersebut sehingga diperoleh titik convex hull dan convexity defects, selanjutnya data ini digunakan untuk mencari jumlah jari dan besar sudut antar jari yang akan dibandingkan dengan database yang telah dibuat sebelumnya. Hasil dari proses tersebut kemudian ditampilkan pada layar monitor. Bahasa isyarat yang digunakan adalah Sistem Isyarat Bahasa Indonesia (SIBI). Sistem ini tidak dapat mendeteksi huruf M dan N, namun untuk huruf tersebut dapat dideteksi apabila tanpa latar belakang tangan. Tampilan gambar dari keluaran proses sistem ini ditunjukkan pada Gambar 6 dan proses analisa yang digunakan adalah jumlah jari dan sudut antar jari, bagian dari gambar tersebut yang diberi kotak merah.
Gambar 6. Tampilan keluaran sistem
ISSN: 1979-2867
108
ELECTRICAL ENGINEERING JOURNAL, VOL. 4, NO. 2, APRIL 2014
Diagram alir dari sistem ini seperti yang ditunjukkan pada Gambar 7. Proses yang terjadi adalah sebagai berikut: 1. Video streaming mulai dijalankan sesuai resolusi video yang telah diset sebelumnya. 2. Program memeriksa apakah video ditampilkan atau tidak, kalau tidak maka program berakhir, bila ya maka dilanjutkan proses berikutnya. 3. Program menunggu masukan berupa tombol dari pengguna, untuk memproses satu frame dari video. 4. Saat pengguna menekan tombol, frame kemudian disimpan ke dalam sebuah variabel. 5. Proses yang selanjutnya adalah proses penerjemahan bahasa isyarat (subroutine HandTracking) 6. Apabila proses penerjemahan selesai maka program diakhiri Start
Video Capture; Set Video Height and Width
VideoCapture == True
N
Y N
Process image ? Y
Save image
HandTracking (image)
End
Gambar 7. Tampilan keluaran system
IV. DATA PENGAMATAN DAN ANALISIS Sebelum pengujian, dilakukan pencatatan database bahasa isyarat untuk huruf A-Z (huruf M dan N tanpa menggunakan latar belakang tangan) terhadap seseorang sebagai referensi (referensi hanya dilakukan terhadap seorang saja, karena dalam penelitian ini perancangan alat masih dirancang untuk perorangan). Pengujian dilakukan dengan orang yang dicatat datanya
ISSN: 1979-2867
109
PENERJEMAH BAHASA ISYARAT TANGAN BERBASIS RASPBERRY PI
sebagai database referensi melakukan lagi gerak bahasa isyarat untuk huruf A-Z (huruf M dan N tanpa menggunakan latar belakang tangan), masing-masing huruf diuji sebanyak lima kali percobaan dan hasilnya ditampilkan pada Tabel 1. Percobaan berikutnya bertujuan menguji daya adaptasi sistem terhadap gerakan tangan orang lain, sistem diujikan terhadap 5 orang lain (datanya di luar database referensi) melakukan gerak bahasa isyarat, masing-masing huruf sebanyak 5 kali dan hasilnya ditampilkan pada Tabel 2. TABEL 1. DATA PENGAMATAN GERAKAN BAHASA ISYARAT DARI ORANG DALAM DATABASE REFERENSI Hasil Percobaan ke 1
2
3
4
5
Rata-rata waktu pendeteksian
Persentase Keberhasilan
A
A
-
A
A
A
1.169 s
80%
B
B
B
B
B
B
1.070 s
100%
C
C
-
C
C
H
1.233 s
60%
D
D
D
D
-
D
1.397 s
80%
E
E
E
E
E
E
1.158 s
100%
F
F
F
F
F
F
1.368 s
100%
G
G
G
G
G
L
1.373 s
80%
H
H
H
H
H
H
1.526 s
100%
I
I
I
I
I
I
1.306 s
100%
J
J
J
J
-
J
2.200 s
80%
K
K
K
K
K
-
1.081 s
80%
L
L
L
L
L
L
1.576 s
100%
M
M
M
M
M
M
1.376 s
100%
N
N
N
N
N
N
1.091 s
100%
O
O
O
N
-
O
1.126 s
80%
P
P
P
P
P
-
1.077 s
80%
Q
Q
Q
L
-
Q
1.333 s
60%
R
R
-
R
R
R
2.214 s
80%
S
S
-
S
-
-
1.190 s
40%
T
T
T
T
-
T
1.353 s
80%
U
-
U
U
U
U
1.169 s
80%
V
V
V
V
V
V
1.071 s
100%
W
W
W
W
W
S
1.031 s
80%
X
X
X
X
X
X
1.146 s
100%
Y
-
Y
Y
Y
Y
1.090 s
80%
Z
Z
Z
Z
-
Z
1.243 s
80%
1.307 s
83.85%
Huruf
Rata-rata :
ISSN: 1979-2867
110
ELECTRICAL ENGINEERING JOURNAL, VOL. 4, NO. 2, APRIL 2014 TABEL 2. DATA PENGAMATAN GERAKAN BAHASA ISYARAT DARI ORANG DI LUAR DATABASE REFERENSI Hasil Percobaan (orang ke) (4)
(5)
Persentase Keberhasilan
G/L
-
-
20%
P
G
-
0%
C/U
Q/C
U
-
25%
P/G
-
B
-
-
0%
E
-
-
-
-
-
0%
F
-
-
-
-
-
0%
G
D/B
-
B
-
B
0%
H
-
H
-
-
H
0%
Huruf
(1)
(2)
(3)
A
-
A
B
-
-
C
S/Q
D
I
-
G
-
-
-
0%
J
-
-
-
-
-
0%
K
-
-
-
-
-
0%
L
S/Q
L/G
Q/L
Q
S
25%
M
-
-
-
-
-
0%
N
-
-
-
-
-
0%
O
O
G
-
N
O
40%
P
G
P
-
L
P
40%
Q
Q
-
-
L
Q
40%
R
R
-
-
-
-
20%
S
S
S
-
-
-
40%
T
T
-
-
-
-
20%
U
U
-
U
S
Q
40%
V
S
V
-
-
U
20%
W
-
W
K
Y
-
20%
X
-
-
-
-
-
0%
Y
Q/U
Q
S
-
-
0%
Z
-
-
-
-
-
0%
Rata-rata
13.46%
Sistem penerjemah bahasa isyarat tangan berbasis Raspberry Pi memiliki rata-rata waktu penerjemahan sebesar 1,307 detik. Proses penerjemahan ini memiliki tingkat keberhasilan ratarata untuk orang yang berada di dalam database sebesar 83,85%. Tingkat keberhasilan rata-rata untuk orang yang berada di luar database sebesar 13,46%. Hal ini disebabkan karena karakteristik tangan setiap orang berbeda, dari ketebalan tangan, panjang tangan dan perbedaan struktur tangan, seperti jari yang sedikit bengkok yang mempengaruhi data sudut jari tangan.
V. KESIMPULAN Berdasarkan hasil percobaan dan data yang didapatkan dapat disimpulkan: 1. Sistem penerjemah bahasa isyarat tangan berbasis Raspberry Pi dengan metode convex hull dan convexity defects memiliki tingkat keberhasilan sebesar 83,85% untuk orang ISSN: 1979-2867
111
PENERJEMAH BAHASA ISYARAT TANGAN BERBASIS RASPBERRY PI
yang datanya berada di dalam database, sedangkan untuk orang yang datanya di luar database sebesar 13,46% sehingga sistem penerjemah ini bersifat spesifik terhadap pengguna yang berada di dalam database. 2. Rata-rata waktu pemrosesan sebesar 1,307 detik sehingga sistem ini tidak dapat digunakan untuk sistem yang real time karena jika untuk satu frame waktu prosesnya 1,307 detik maka misalkan untuk frame rate 10 FPS saja akan mengakibatkan adanya lag sebesar 13,07 detik.
DAFTAR REFERENSI [1] http://id.wikipedia.org/wiki/Bahasa_isyarat [2] M. Richardson, S. Wallace, Getting Started with Raspberry Pi, USA: O‟Reilly Media, 2013 [3] M. Lutz, Learning Python 3th Ed., USA: O‟Reilly Media, Inc., 2007 [4] B. Bradski, A. Kaehler, Learning OpenCV, USA: O‟Reilly Media, 2008 [5] J. Sklanksy, “Measuring Concavity on a Rectangular Mosaic”, IEEE Transactions on computers, Vol. c-21:12, 1972 [6] S. Brahmbhatt, Practical OpenCV, New York: Springer Science + Business Media, 2013
ISSN: 1979-2867