JUDUL PROGRAM
PROTOTIPE : SISTEM PRESENSI BANDARA
Dikerjakan oleh:
Peminatan Instrumentasi
Jurusan Fisika
Fakultas Matermatika dan Ilmu Pengetahuan Alam
Universitas Indonesia
Nama
NPM
: 1306413832
Tanda Tangan
Tanggal
: 26 Agustus 2016
ii
Nama
Wisma Chaerul
NPM
1306413832
Program Studi
Fisika
Judul Laporan
Telah berhasil menyelesaikan program kerja praktek di Lab. Navigasi, Pusat Teknologi
Elektronika, BPPT serta dipresentasikan di hadapan anggota lab. Navigasi dan diterima
sebagai bagian persyaratan yang diperlukan untuk memenuhi mata kuliah kerja praktek pada
Program Studi Fisika, Fakultas Matematika dan Ilmu Pengetahuan Alam, Universitas
Indonesia.
Pembimbing,
Nama
NPM
1306365000
Program Studi
Fisika
Judul Laporan
Telah berhasil menyelesaikan program kerja praktek di Lab. Navigasi, Pusat Teknologi
Elektronika, BPPT serta dipresentasikan di hadapan anggota lab. Navigasi dan diterima
sebagai bagian persyaratan yang diperlukan untuk memenuhi mata kuliah kerja praktek pada
Program Studi Fisika, Fakultas Matematika dan Ilmu Pengetahuan Alam, Universitas
Indonesia.
Menyetujui
Ketua Program Studi Fisika Instrumentasi
iv
KATA PENGANTAR
Puji dan syukur kita panjatkan kehadirat Allah SWT atas segala kasih sayang dan
nikmatnya sehingga penulis berhasil menyelesaikan segala runtunan kegiatan Kerja Praktek
ini. Penulis bersyukur sudah berada dalam rasa hangat saling berbagi atas pengalaman dan
ilmu selama bekerja selama satu setengah bulan di Pusat Teknologi Elektronika BPPT.
Kerja Praktek merupakan satu mata kuliah yang wajib diambil oleh setiap mahasiswa
Fisika peminatan Instrumentasi. Mata kuliah ini menyediakan jembatan antara ilmu yang
telah mahasiswa pelajari dengan pengimplementasiannya. Nyatanya penulis benar-benar
belajar banyak hal baru dibanding menggunakan pengetahuan yang telah ada sebelumnya.
Hal ini seakan menggambarkan penulis berada di pinggir pantai duduk sembari menciduk air
dengan ember, air di lautan setelah diciduk tidak berkurang. Ilmu begitu luasnya untuk
ditimba. Begitulah hal yang penulis maknai mengenai kerja praktek pada kesempatan kali ini.
Penulis ingin mengucapkan terimakasih atas segala bantuan yang diterima dari orangorang yang berada di lingkungan penulis bekerja. Bantuan tersebut dapat berupa dukungan
moril maupun ilmu. Orang - orang tersebut adalah:
Bapak Dr. Fadjar Rahino Triputra selaku pembimbing topik pekerjaan di BPPT
Bapak Willy Dharma, ST selaku pemberi saran dan teman diskusi
Bapak Dr. Sastra Widjaya Kusuma sebagai ketua peminatan Sistem dan
Instrumentasi Fisika UI
Kedua orang tua yang telah membesarkan penulis sebaik-baiknya
Terakhir, penulis memohon maaf jika selama melakukan pekerjaan sering melakukan
kesalahan dan sering terjadi salah paham. Semoga kedepannya penulis dapat menjadi pribadi
yang lebih baik lagi.
Penulis
DAFTAR ISI
vi
BAB I
PENDAHULUAN
1.1 LATAR BELAKANG
Saat ini tren penggunaan pesawat sebagai moda transportasi untuk
berpergian semakin meningkat. Hal ini di dukung oleh penerbangan berbiaya
rendah yang ikut andil dalam menarik minat kalangan menengah kebawah untuk
menggunakan pesawat. Pengelola bandara selaku salah satu pemain utama dalam
bisnis penerbangan diharapkan dapat melakukan perbaikan infrastruktur dan
teknologi guna meningkatkan kualitas pelayanan kepada penumpang.
Salah satu topik yang menjadi perhatian pengelola bandara saat ini
berhubungan dengan sistem presensi penumpang di dalam pesawat. Selama ini
pengecekan presensi di dalam pesawat dilakukan secara manual oleh petugas
bandara. Metode ini terkesan lama dan memakan waktu serta sumber daya
manusia. Hal yang lebih baik jika kita bias mengalokasikan sumber daya manusia
untuk mengerjakan hal yang lain.
Oleh karena itu pengelola bandara memerlukan sebuah system presensi
yang bekerja secara otomatis, cepat dan tepat. Sistem ini haruslah berada pada
jalur perjalanan penumpang selama dibandara tanpa mempersulit laju
penumpang. Selain itu system ini dapat terintegrasi dengan system lainnya yang
terdapat di bandara sehingga perubahan yang dilakukan oleh pengelola bandara
tidak terlalu besar. Hal ini bertujuan untuk menekan biaya yang harus dikeluarkan
oleh pengelola bandara.
Pengolahan citra dipilih untuk memenuhi semua kriteria diatas.
Pengolahan citra pada dewasa ini telah memungkinkan pengaplikasian diberbagai
bidang yang begitu luas tidak terkecuali sistem presensi. Pengolahan citra dapat
digunakan untuk mengidentifikasi seseorang untuk kemudian mengeceknya di
daftar penumpang. Metode pengidentifikasian yang telah mapan seperti metode
pengenalan suatu objek yang dipopulerkan oleh Viola dan Jones serta metode
pengenalan objek seperti eigenface, fisherface, dan LBPH dapat pula digunakan
untuk mengembangkan system presensi.
1.2 TUJUAN
1.3 MANFAAT
BAB II
TENTANG INSTITUSI
2.1 SEJARAH INSTITUSI
Badan Pengkajian dan Penerapan Teknologi (BPPT) adalah lembaga
pemerintah non-departemen yang berada dibawah koordinasi Kementerian Negara
Riset dan Teknologi yang mempunyai tugas melaksanakan tugas pemerintahan di
bidang pengkajian dan penerapan teknologi. Proses pembentukan BPPT bermula dari
gagasan Mantan Presiden Soeharto kepada Prof Dr. Ing. B.J. Habibie pada tanggal 28Januari-1974. Dengan surat keputusan no. 76/M/1974 tanggal 5-Januari-1974, Prof
Dr. Ing. B.J. Habibie diangkat sebagai penasehat pemerintah dibidang advance
teknologi dan teknologi penerbangan yang bertanggung jawab langsung pada
presiden dengan membentuk Divisi Teknologi dan Teknologi Penerbangan (ATTP)
Pertamina. Melalui surat keputusan Dewan Komisaris Pemerintah Pertamina
No.04/Kpts/DR/DU/1975 tanggal 1 April 1976, ATTP diubah menjadi Divisi Advance
Teknologi Pertamina. Kemudian diubah menjadi Badan Pengkajian dan Penerapan
Teknologi melalui Keputusan Presiden Republik Indonesia No.25 tanggal 21 Agustus
1978. Diperbaharui dengan Surat Keputusan Presiden No.47 tahun 1991.
2.2 STRUKTUR ORGANISASI INSTITUSI
Memfasilitasi hubungan, keterkaitan, jejaring, kemitraan antara dua pihak atau lebih
dalam rangka pemanfaatan hasil perekayasaan teknologi.
Memberikan akses bagi industri, instansi pusat / pemda dan masyarakat untuk
memanfaatkan sumberdaya iptek dari BPPT atau lembaga iptek lainnya dari dalam
dan luar negeri.
BAB III
ISI
Citra Digital
Merupakan citra yang terdiri dari suatu elemen yang disebut pixel. Pixel
berupa kotak kecil yang berderet. Dimensi dari suatu citra ditentukan oleh besar
dimensi dari pixel. Kolom pada deret merepresentasikan lebar sedang baris
merepresentasikan panjang. Pixle kita dapat pandang sebagai matrkis denagn ukuran
panjang x lebar. Setiap pixel memiliki nilai intensitasnya sendiri yang rentang nilainya
tergantung pada alokasi memori yang digunakan.
Citra digital dibagi menjadi empat jenis macam yaitu [1], yaitu :
o Citra Biner
Masing-masing pixel hanya berwarna hitam dan putih. Oleh karena hanya
terdapat dua nilai kemungkinan yaitu hitam dan putih, maka hanya diperlukan
satu bit oer pixel
o Citra abu-abu (gray scale)
Masing-nasing pixel berisikan warna abu-abu dengan nilai normal antara 0
(hitam) sampai 255 (putih). Range tersebut beratii masing-masing pixel dapat
direpresenasikan oleh nilai 8 bit atau satu byte. Citra grayscale dengan range
nilai yang lain juga digunakan. Akan tetaoi pada umumnya citra tersebut
memiliki pangkat dua dari 8 bit.
o Citra RGB
Untuk citra RGB masing-masing pixel memmpunyai sebuah warna khusus.
Warna dideskripsikan oleh kombinasi merah (Red), hijau (Green), dan biru
(Blue). Jika masing-masing komponen mempunyai range nilai 0-255, maka
total range yang digunakan untuk citra RGB adalah 16.777.216 kemungkinan
warna.
o Indexed
Citra paling berwarna hanya memiliki sebagian kecil dari 16 juta kemungkinan
warna. Untuk efisiensi storage akan diasosiasikan dengan peta warna. Masing-
masing pixel tidak berisikan warna, akan tetapi nilai yang terdapat pada
gambar merupakan sebuah index yang mmerujuk pada warna pada peta.
PREPROCESSING
Preprocessing merupakan serangkaian langkah yang digunakan untuk
mengkondisikan keadaan citra asli sebelum diolah lebih lanjut. Tujuan dari
preprocessing diantaranya adalah
o Menghilangkan noise
o Memperjelas features (fitur) data
o Memperkecil / memperbesar ukuran data
o Mengkonversi data asli agar diperoleh data yg sesuai kebutuhan
Hasil citra yang telah melalui preprocessing dibutuhkan agar citra dapat diolah
serta memenuhi kriteria algoritma pada proses lebih lanjut, misal pada beberapa
proses feature extraction kita hanya memerlukan gray value dari setiap pixelnya saja
untuk nilai RGB-nya dapat kita kesampingkan. Tetapi disamping berbagai
kegunaannya preprocessing juga menimbulkan kerugian yaitu menambah waktu yag
digunakan dalam pengolahan citra dan algortima pada saat preprocessing kadang kala
menghilangkan informasi penting yang terkandung di data tersebut.
Preprocessing citra mempunyai beragam jenis atau metode yang dibedakan
berdasarkan kegunaannya. Contoh dari preprocessing yang sering digunakan adalah:
Binerisasi citra
Preprocessing yang mengubah nilai dari setiap blok pixel pada citra menjadi 0
atau 255. Citra yang telah melaui proses ini akan keluar sebagai citra hitam
putih.
Croping citra
Proses pemotongan citra berdasar batasan yang telah di tentukan.
Resize citra
Proses yang digunakan untuk merubah ukuran dari suatu citra.
10
Gambar 3.1. Setiap kotak putih dan hitam merepresentasikan feature yang
akan dicari oleh algoritma.
Metode ini berpegang pada tiga ide dasar yaitu integral image,
adaboost classifier, dan cascade classifier. Image Integral digunakan untuk
menghitung Haar feature dengan cepat pada berbagai skala hanya dengan
mengoperasikan beberapa pixel. Selain itu untuk mengurangi beban
perhitungan dikarenakan banyaknya kemungkinan yang berpotensial yang
mengandung feature dari wajah kita menggunakan Adaboost. Adaboost akan
memberi nilai beban feature yang sekiranya merepresentasikan wajah. Setelah
itu terdapat cascade classifier yaitu algoritma yang membuat perhitungan
dengan memfokuskan perhitungan feature pada daerah yang berpotensial
sebagai wajah tahap demi tahap ditunjukkan pada Gambar 3.2.
Secara ringkas metode Viola & Jones akan menghitung nilai feature
dari satu wilayah kotak hitam-putih. Jika nilai hasil operasi cocok dengan nilai
threshold maka perhitungan akan dilanjutkan ketahap berikutnya begitu
seterusnya dengan kenaikan kesulitan di setiap kenaikan tahap jika nilai tidak
sesuai maka daerah tersebut dapat diabaikan hingga kita mendeteksi wajah
secara penuh.
o Face Recognition
Face Recognition digunakan untuk mengenali wajah seorang individu.
Proses ini mengizinkan penggunanya untuk membedakan wajah indvidu satu
dengan lainnya. Seperti halnya face detection, face recognition memliki
berbagai macam metode. Beberapa metode tersebut adalah eigenface,
fisherface, dan LBPH (Linear Binary Pattern Histogram).
11
Kita mengerjakan metode LBPH pada proyek yang dikerjakan. Hal ini
dikarenakan LBPH memiliki beberapa keunggulan dibandingkan dengan
metode lainnya. Pertama metode ini cenderung lebih bagus pada berbagai
variasi pencahayaan wajah. Alasan kedua adalah kita dapat menambahkan
citra sewaktu-waktu untuk mengajarkan recognizer untuk menghasilkan model
yang baru untuk mengenali wajah seseorang.
Konsep utama dari LBPH yaitu dengan mengambil suatu pixel untuk
kemudian kita bandingkan seperti terllihat pada Gambar 3.3. Nilai pixel yang
diambil dijadikan nilai threshold untuk dibandingkan dengan nilai tetangga
pixel tersebut. Untuk nilai yang lebih besar daripada threshold akan
mempunyai nilai 1 dan nilai lebih kecil akan bernilai 0. Jumlah pixel tetangga
yang di bandingkan bervariasi mulai dari 8, 16 dan seterusnya.
Kita akan dapati nilai pixel-pixel kita berupa bilangan biner yang
diurutkan menurut pernjanjian tertentu. Kita dapat mengurutkan bilangan
biner searah jarum jam atau dapat pula berlawanan dengan arah jarum jam.
Setelah itu kita akan dapati suatu nilai bilangan biner yang dapat di konversi
menjadi nilai desimal. Nilai desimal ini sebagai bentuk pengcitraan karakter
dari setiap pixel.
Setelah kita selesai mengurutkan nilai biner. Langkah selanjutnya
adalah menentukan apakah nilai-nilai tersebut bersifat uniform pattern atau
tidak. Hal itu dapat diketahui dari jumlah transisi nilai 1 ke 0 atau 0 ke 1. Untuk
transisi yang berjumlah lebih dari 2 maka nilai tersebut dikategorikan sebagai
non uniform pattern. Sebaliknya untuk nilai yang memiliki jumlah transisi dari
kurang dari dua kita kategorikan sebagai nilai uniform pattern. Pada
penggunaan titik sampel 8 bit. Terdapat 58 jumlah nilai yang mungkin untuk
uniform pattern. Masing-masing nilai uniform pattern ini di simpan dalam 58
bin berbeda pada histogram sedangkan untuk nilai non-uniform dimasukkan
kedalam satu bin pada histogram.
12
Pada tahap selanjutnya citra dibagi menjadi bagian yang lebih kecil,
pada beberapa literature ada yang membagi menjadi 7x7 [3], untuk kemudian
di hitung bagaimana histogram dari bagian tersebut. Semua histogram dari
masing-masing bagian tadi kemudian disatukan untuk dihasilkan feature
vector dari citra tersebut.
Proses bagian pertama terdiri dari pegambilan wajah penumpang di area check in.
Pengambilan wajah dilakukan dengan kamera digital. Kamera yang telah terprogram
pendeteksi wajah akan menyimpan frame disaat wajah seseorang terdeteksi. Untuk setiap
orang kamera akan mengambil 10 frame. Disetiap frame yang teah ditangkap akan terjadi
preprocessing citra berupa perubahan format citra dari RGB menjadi grayscale dan
pemotongan citra sehingga yang tersisa hanya berupa citra wajah.
13
Hasil preprocessing tadi akan digunakan pada proses training untuk menghasilkan
model pengenal. Model pengenal yang telah jadi disimpan di database untuk kemudian
digunakan pada proses bagian kedua. Alur pengolahan citra dapat kita lihat pada Gambar 3.6.
14
Proses pada bagian dua terjadi pada saat penumpang hendak masuk kedalam
pesawat. Kamera yang terpasang pada lorong akan mendeteksi wajah seseorang dan akan di
ambil framenya untuk kemudian melalui tahap preprocessing. Tahap preprocessing yang
dilalui oleh frame pada bagian kedua ini sama dengan bagian pertama. Setelah selesai melalui
tahap preprocessing, citra akan diverifikasi dengan model yang berasal dari training set
sebelumnya. Jika cocok maka informasi berupa index yang menyatakan nama penumpang,
waktu dimana saat individu ini terdidentifikasi akan disimpan didalam database. Alur
pengidentifikasian citra dapat dilihat pada Gambar 3.5
15
BAB IV
HASIL DAN PEMBAHASAN
16
Hasil dari FAR dan FRR dari data diatas sebagai berikut
17
mampu mengidentifikasi wajah sesuai dengan training set yang telah dibuat akan tetapi untuk
beberapa wajah terjadi kesalah identifikasi, hal ini penulis pahami sebagai pengaruh dari keadaan
sampel yang digunakan seperti pencahayaan, pose, dan background yang berbeda pada setiap
individu yang digunakan sebagai training set selain itu pula pose wajah sebagai input banding
dengan model hasil training juga dapat mempengaruhi hasil identifikasi.
Berikut adalah hasil yang diperoleh dari menjalankan program 2 yang bertugas sebagai
pengidentifikasi individu, setelah individu terdeteksi mencapai nilai yang diinginkan maka informasi
mengenai label indivdu dan waktu saat individu terkait terekam akan disimpan didalam database.
Gambar 4.2. Pengidentifikasin indivdu yang terekam sebagai individu yang dikenali
18
BAB V
KESIMPULAN DAN SARAN
5.1 KESIMPULAN
Dari pengujian yang dilakukan, didapatkan kesimpulan bahwa:
1. Sistem presensi berbasis pengolahan citra dimungkinkan untuk dibuat.
2. Pendeteksian wajah berhasil dengan baik menggunakan classifier yang telah
disediakan oleh openCV yaitu Haar classifier.
3. Program pendeteksi berjalan dengan baik untuk beberapa individu tetapi masih
terjadi kesalahan pengidentfikasian.
5.2 SARAN
Hasil pengujian bekerja dengan baik tetapi tidak cukup memuaskan. Untuk beberapa
individu terdapat kesalahan pengidentifikasian. Hal ini penulis duga berkaitan dengan kondisi
sampel yang digunakan sebagai training set. Penyeragaman setiap sampel dari satu individu
dan indivdu lain diperlukan. Pada pengujian yang telah berlangsung, sampel pada setiap
individu diambil pada tempat yang berbeda dengan pencahayaan yang berbeda pula. Selain
itu penambahan metode preprocessing untuk meningkatkan hasil pengidentifikasian layak
untuk dicoba seperti penggunaan histogram equalization pada alur pengolahan citra.
Perbaikan perangkat keras untuk mengambil citra juga dapat digunakan sebagai cara untuk
meningkatkan hasil identifikasi.
19
DAFTAR PUSTAKA
[1] Wahana Komputer. 2013. Ragam Aplikasi Pengolahan Image dengan MATLAB. Indonesia: PT
Elex Media Komputindo.
[2] Viola, P., Jones, M.J. 2004. Robust Real-Time Face Detection. International Journal of Computer
Vision 57(2):137-154 .
[3] Lopz, L.S. 2010. Local Binary Patterns applied to Face Detection and Recognition.
[4] Budiman, G., Wibowo, S.A., Dharmawan, W. Implementasi Prototype Pengenalan Wajah Manusia
Berbasiskan Android untuk Sistem Presensi.
20
LAMPIRAN
Mulai
Menginisiasi kelas
face detector
Menginisiasi kelas
Face recognizer
Deteksi wajah
& tangkap Image
Preprocessor
Image
Jumlahnya 15
Tidak
Ya
Latih face
recognizer
Simpan Model
di database
Stop
21
Mulai
Menginisiasi kelas
face detector
Menginisiasi kelas
Face recognizer
Load Model di
database
Verifikasi
Prediksi Wajah
Sama setelah beberapa
frame
Tidak
Ya
Simpan Identitas
& Waktu di DB
Tidak
Semua id
teridentifikasi
Ya
Stop
22
23
#inisialiasi recognizer
#######################################################
recognizer = cv2.createLBPHFaceRecognizer(1,8,8,8,150)
24
camera = cv2.VideoCapture(args["video"])
# Menentukan path yang dibaca oleh fungsi get image & label
#######################################################
path = "./Gambar"
# Call the get_images_and_labels function and get the face images and the
# corresponding labels
#######################################################
images, labels = GamLab.Label_Gambar()
cv2.destroyAllWindows()
25
Datab.buatDatabase()
Datab.buatTabel()
queryz = ("insert into Result_Train (Path_Result) values('Documents/KP/Uji/Uji\ Beneran\
1/Result/Train_result.xml')")
Datab.insertData(queryz)
print("Lanjutkan ke Program2")
26
27
#######################################################
recognizer = cv2.createLBPHFaceRecognizer(1,8,8,8,150)
28
Datab.HubungDb()
model = Datab.tampilData()
A = model[0]
print(A)
recognizer.load("Result/Train_result.xml")
# Pendeklarasian class Data dan pembuatan database
#######################################################
Datac = Data.Database("127.0.0.1","root","sen")
Datac.Hubung()
Datac.buatDatabase()
Datac.buatTabel()
# inisialisasi variabel yang digunakan pada proses loop utama
Variabel_banding = 0
n=0
m=0
# Loop utama
#######################################################
while True:
29
30
if n == 10 :
waktu = current_time.isoformat()
nomer,m = nmrdt.nomer(m)
nilai = str(nbr_predicted)
A = ("insert into Info values('"+ nomer + "','" + nilai +"','"+ waktu + "')")
Datac.insertData(A)
print("data berhasil dimasukkan")
print(nomer)
31
n=0
cv2.imshow(nomer,frameClone2)
cv2.imshow("Face", frameClone)
# if the 'q' key is pressed, stop the loop
if cv2.waitKey(1) & 0xFF == ord("q"):
break