Anda di halaman 1dari 7

Development of a visual aid tool for blind people based on

Convolutional Neural Network Using Rasberry Pi.


Iswahyudi*, Khairul Anam, Bambang Sujanarko

Electrical Engineering University of Jember


yudiokyes@gmail.com

Abstract
The technology used to help blind people has been developed using various technologies such as an ultrasonic
sensor in the form of sonar system in the form of belts and watches. The sonar vision works based on the principle of
reflecting a wave with a frequency of 20,000 Hz so that it can be used to determine the distance of an object in a
range of up to 3 meters. However, the sonar system cannot identify the object. Computer Vision emerges as one
of the most promising solutions. This article focused on developing blind visual aid using a convolutional neural
network (CNN) to identify an object. The CNN is instilled on the raspberry pi equipped with a camera. The output
is an audio signal about the object and its position refer to the users

Keywoard : Image Processing, Python, Convolutional Neural Network, Raspberry Pi

I. INTRODUCTION
Selama ini teknologi untuk membantu para tunanetra telah dikembangkan, diantara berbagai teknologi yang
digunakan yaitu teknologi sensor ultrasonik. Penelitian mengenai sensor ultrasonik sebagai alat bantu tunanetra
ini telah dikembangkan yaitu diantaranya adalah dibuat sebuah alat yang bernama sonar vision dalam bentuk sabuk
dan jam tangan . Teknologi sonar vision ini bekerja berdasarkan prinsip pantulan suatu gelombang dengan
frekuensi sebesar 20.000 Hz sehingga dapat digunakan untuk mengetahui jarak suatu benda dalam kisaran hingga
jarak 3 meter. Kelemahan metode ini masih mengalami kendala dalam mengidentifikasi suatu benda. Solusi
berbasis Computer Vision muncul sebagai salah satunya opsi yang paling menjanjikan. Computer Vision adalah
bidang ilmiah interdisipliner yang membahas bagaimana komputer dapat dibuat untuk memperoleh pemahaman
tingkat tinggi dari gambar atau video digital. Pada penelitian sebelumnya telah dikembangkan juga penggunaan
computer vision sebagai alat bantu visual tunanetra yaitu “Visual Assistance for Blind using Image Processing”
Pada penelitian tersebut lebih difokuskan pada pendeteksian objek menggunakan raspberry pi sebagai kontroller
yang menerima gambar dari kamera pi, pengguna perlu menggunakan perintah bicara ketika dia membutuhkan
objek dan dipandu oleh ouput audio untuk memandu pengguna apakah posisi objek berada disebelah kanan, kiri
dan tengah. Kelemahan dari penelitian tersebut kita tidak dapat mengetahui secara tepat posisi dari objek yang
dicari. Berdasarkan pada permasalahan diatas kami melakukan penelitian ini, yaitu dibuat alat bantu visual untuk
tunanetra yang dapat mendeteksi halangan dan mengidentifikasi objek serta mengetahui dengan tepat posisi dari
objek yang dicari. Pada penelitian ini kami akan memadukan teknologi pengolahan citra digital dan jaringan syaraf
tiruan menggunakan metode Convolutional Neural Network dengan memanfaatkan Raspberry Pi sebagai
kontroller. Metode Jaringan Syaraf Tiruan dipilih karena memiliki kemampuan untuk menciptakan suatu pola
pengetahuan melalui pengaturan diri atau kemampuan belajar (self organizing). Diharapkan dengan memadukan
teknologi pengolahan citra digital dan jaringan syaraf tiruan dengan pengolah data mini pc Raspberry pi dapat
dibuat alat bantu visual yang dapat membantu tunanetra untuk mengidentifikasi benda lebih cepat dan akurat,
sehingga mengurangi ketergantungan para tunanetra terhadap orang disekitarnya.

II. OVERVIEW OF SYSTEM


A. Raspberry Pi 3
Raspberry Pi 3 Model B+ adalah sebuah komputer mini yang bisa digunakan untuk perangkat komputer maupun
proyek-proyek menarik lainnya. Raspberry Pi Model B+ ini menggunakan chipset yaitu Broadcom BCM2873B0
Cortex A53 64-bit berkecepatan 1,4GHz. Chipset ini memiliki manajemen suhu yang lebih baik sehingga dapat
berjalan pada kecepatan penuh dengan lebih lama sebelum mengalami throttling akibat panas. Perangkat ini
menggunakan koneksi wireless dual band yang mendukung 802.11ac yang lebih kencang dibanding generasi
sebelumnya serta dilengkapi juga dengan Bluetooth. Konektivitas lain adalah port USB 2.0 yang juga mendukung
LAN 1 gigabit dengan menggunakan adapter. Konektor-konektor lain seperti GPIO juga tetap tersedia untuk
menghubungkannya ke perangkat lain.
Gambar 1. Raspberry Pi B+

B. Python
Bahasa pemrograman python adalah bahasa pemrograman tinggi yang dapat melakukan eksekusi sejumlah
instruksi multi guna secara langsung (interpretatif) dengan metode orientasi objek (Object Oriented Programming)
serta menggunakan semantik dinamis untuk memberikan tingkat keterbacaan syntax. Sebagai bahasa
pemrograman tinggi, python dapat dipelajari dengan mudah karena sudah dilengkapi dengan manajemen memori
otomatis (pointer). Syntax python dapat dijalankan dan ditulis untuk membangun aplikasi di berbagai sistem
operasi diantaranya yaitu Linux/Unix, Microsoft Windows, Mac OS, and Android. Python diklaim mampu
memberikan kecepatan dan kualitas untuk membangun aplikasi bertingkat (Rapid Application Development). Hal
ini didukung oleh adanya library dengan modul-modul baik standar maupun tambahan misalnya NumPy, SciPy,
dan lain-lain. Python juga mempunyai komunitas yang besar sebagai tempat tanya jawab Python digunakan di
berbagai bidang pengembangan, diantaranya digunakan sebagai media pembelajaran pemograman karena sangat
mudah dan hemat untuk dipelajari sebagai Object Oriented Programming dibandingkan bahasa lainnya seperti
MATLAB, C++, dan C#. Kedua Python dapat digunakan untuk membangun interface sebuah aplikasi. Tersedia
library untuk membuat GUI menggunakan python, misalnya Qt, win32extension, dan GTK+.

C. Convolutional Neural Network


CNN adalah sebuah teknik yang terinspirasi dari cara mamalia — manusia, menghasilkan persepsi visual seperti
contoh diatas. Penelitian oleh Hubel dan Wiesel [1] menunjukkan bahwa neuron dalam korteks visual pada otak
mamalia tersusun menjadi sebuah topographical map, yang setiap level nya fokus pada karakteristik tertentu. Atau
dengan kata lain, sebuah gambar direpresentasikan ke dalam level ektraksi fitur (featural hierarchy) yang
membentuk gambar tersebut secara keseluruhan. Sesuai dengan namanya, CNN memanfaatkan proses konvolusi.
Dengan menggerakan sebuah kernel konvolusi (filter) berukuran tertentu ke sebuah gambar, komputer
mendapatkan informasi representatif baru dari hasil perkalian bagian gambar tersebut dengan filter yang
digunakan. Cara kerja dari CNN dibagi menjadi tiga tahapan yaitu
1. Break the image into overlapping image tiles
Awalnya gambar dipecah menjadi beberapakotak gambar yang tumpang tindih. Mengambil contoh gambar
seorang anak kecil di bawah ini, hasil dari proses konvolusi pada gambar tersebut dapat diilustrasikan seperti
berikut ini:

Gambar 2 Gambar 2 Gambar-gambar yang lebih kecil hasil konvolusi


Image by Adam Geitgey via Medium
2. Feed each image tile into a small neural network,
Setiap gambar kecil dari hasil konvolusi tersebut kemudian dijadikan input untuk menghasilkan sebuah
representasi fitur. Hal ini memberikan CNN kemampuan mengenali sebuah objek, dimanapun posisi objek
tersebut muncul pada sebuah gambar   atau biasa disebut translation invariance.

Gambar 4. Repeat this 77 times, once for each tile.

Proses ini dilakukan untuk semua bagian dari gambar, dengan menggunakan filter yang sama. Dengan kata
lain, setiap bagian gambar akan memiliki faktor pengali yang sama, atau dalam konteks neural network disebut
sebagai weights sharing. Hasil yang didapat dari proses diatas adalah sebuah activation map. Untuk mendapat
representasi gambar yang lebih baik, proses konvolusi diulang dengan filter yang berbeda untuk
menghasilkan activation map lain.

3. Save the results from each tile into a new array


We don’t want to lose track of the arrangement of the original tiles. So we save the result from processing
each tile into a grid in the same arrangement as the original image. It looks like this:

Gambar 5. Ouput gambar berupa array

Dengan kata lain, kami mulai dengan gambar besar dan kami berakhir dengan array yang sedikit lebih kecil
yang merekam bagian mana dari gambar asli kami yang paling menarik.

4. Downsampling
The result of Step 3 was an array that maps out which parts of the original image are the most interesting. But
that array is still pretty big:

Gambar 6 Gambar Hasil Konvolusi step 3


To reduce the size of the array, we downsample it using an algorithm called max pooling. It sounds fancy, but
it isn’t at all! We’ll just look at each 2x2 square of the array and keep the biggest number: Tentunya tidak
semua bagian dari gambar adalah object of interest yang kita cari — beberapa bagian dari gambar
merupakan background. Untuk mengurangi jumlah parameter yang perlu diperhitungkan, dilakukan
proses pooling. Pada umumnya, pooling yang dilakukan adalah max pooling, atau mengambil
nilai pixel terbesar di setiap pooling kernel. Dengan begitu, sekalipun mengurangi jumlah parameter, informasi
terpenting dari bagian tersebut tetap diambil. Metode pooling lain yang umum digunakan diantaranya average
pooling, L2-norm pooling [2].

Gambar 7 Ilustrasi Max Pooling

Proses konvolusi dan pooling dapat diulang beberapa kali hingga menghasilkan sebuah Convolutional Neural
Network. Diantara convolutional layer dan pooling layer umumnya terdapat activation layer (e.g. ReLU,
tanH, etc.) yang banyak ditemukan pada artificial neural network.

5. Final step: Make a prediction


So far, we’ve reduced a giant image down into a fairly small array. Guess what? That array is just a bunch of
numbers, so we can use that small array as input into another neural network. This final neural network will
decide if the image is or isn’t a match. To differentiate it from the convolution step, we call it a “fully
connected” network. So from start to finish, our whole five-step pipeline looks like this:

Gambar 8. Proses convolutional neural network mulai dari awal hingga akhir
III. RESEARCH METHODS
Desain Pengembangan Alat Bantu Visual Untuk Orang Buta Berdasarkan Convolutional Neural Network terdiri
dari perancangan perangkat keras (hardware) dan perancangan perangkat lunak (sofware). Pada penelitian ini,
metode yang digunakan yaitu Convolutional Neural Network ( CNN) adalah salah satu model dari deep learning,.
Kamera sebagai sensor gambar yang berfungsi menangkap gambar, microphone sebagai input berupa perintah
suara, sound speaker sebagai output audio untuk memandu pengguna, power bank berfungsi sebagai catu daya,
dan Raspberry pi 3 sebagai controller utama mengolah data gambar dan perintah suara serta mengeluarkan ouput
berupa audio. Gambar di bawah ini adalah blok diagram dari Desain Pengembangan Alat Bantu Visual Untuk
Orang Buta Berdasarkan Convolutional Neural Network .

Mini camera
usb

Headset

Microphone

Power Bank

Gambar 3.1 Blok Diagram Sistem Secara Keseluruhan

IV. EXPERIMENT AND RESULT ANALYSIS


The Raspberry pi performs the task of taking video input, converting it to frames, does suitable image processing
using Python language. Mini camera module is used to take high resolution video, as well as still images. The
output from the camera is fed to Raspberry Pi for further processing. To do image recognition, we will first need
a dataset and the labels of what is contained in the image. Thankfully, we don’t have to manually scrape the web
for images and label them ourselves, as there are a few standard datasets that we can play around with. In this
paper, we will use the CIFAR-10 dataset. The details of the dataset are as follows:
1. Images to be recognized: Tiny images of 32 * 32 pixels
2. Labels: 10 possible labels (airplane, automobile, bird, cat, deer, dog, frog, horse, ship, and truck)
3. Dataset size: 60000 images, split into 50000 for training and 10000 for testing
Here is an example of the images and their labels:
Figure 8. Images and their labels from the CIFAR-10 dataset

START

Take Speech
Input from
user

Reset

Video To Frame

Image Pre Processing

Object
Detection
Base on CNN

Algorithma For
posisition of object

Audio Output
Cent Object is in
er center

Audio Output
Right Object is in right

Audio Output
Left Object is in left
Sistem yang dibuat fokus pada deteksi objek dan posisi objek . Sistem ini dibuat seperti
kacamata. Kamera Pi yang terhubung ke Raspberry Pi menangkap video dan ini dikonversi
menjadi bingkai oleh prosesor. Pemakai perlu memberikan perintah bicara ketika ia
membutuhkan objek. Input ucapan dikenali dan sistem memandu pengguna ke objek
melalui output audio

Anda mungkin juga menyukai