PERANCANGAN SISTEM
3.1 Metodologi Perancangan
Metode perancangan yang digunakan adalah metode perancangan sistem berjalan melalui tahap pembuatan flowchart yang dirancang sesuai alat yang yang akan dibuat. Perancangan alat menggunakan konsep diagram blok. Metode ini dimaksudkan untuk mengetahui bagaimana melakukan pembuatan dan perancangan alat yang saling terhubung.
3.1.1 Tahap Perancangan Alat
Dalam perancangan ini, komponenya berupa IP Camera dan PC/Laptop. Keduanya dihubungkan secara wireless. IP Camera berada di pasang pada ketinggian 247 cm dari permukaan tanah dan 732 cm dari objek yang dideteksi.
3.1.2 Tahap Perancangan Pemrograman Alat
Dalam perancangan pemrograman ini, program yang digunakan adalah python. Python akan menghubungkan IP Camera dan PC/Laptop secara wireless dan python akan digunakan untuk mengolah citra sehingga didapatkan pengukuran yang diinginkan.
3.1.3 Tahap pengukuran, Analis dan Kesimpulan 1. Tahap Pengukuran
- Pengukuran ketinggian IP Camera terhadap permukaan tanah - Pengukran jarak IP Camera terhadap kendaraan yang diukur
kelajuannya
- Pengukuran jarak objek yang dilewati - Pengukuran intensitas cahaya
2. Tahap Analisis
Melakukan perbandingan hasil pengukuran dengan hasil perhitungan. Kemudian dihitung persentase kesalahan dari pengukuran alat tersebut.
3. Kesimpulan
20
3.2 Perancangan Sistem
3.2.1 Diagram Blok Sistem
Untuk mempermudah perancangan sistem diperlukan sebuah diagram blok sistem yang mana tiap blok mempunyai fungsi dan cara kerja tertentu. Adapun diagram blok dari sistem yang dirancang adalah sebagai berikut.
Gambar 3. 1 Diagram Blok Adaptor IP Cam Tampilkan video Membuat garis vertikal sebagai jarak Deteksi kendaraan Menghitung kelajuan kendaran Menampilkan kelajuan kendaraan Wi-Fi PC/Laptop
21
3.2.2 Perancangan Setiap Blok Diagram 1. Perancangan Adaptor dengan IP Cam
Perancangan ini melalui Adaptor sebagai sumber tegangan DC yang akan memberikan tegangan bagi IP Camera. Sebuah rangkaian yang berguna untuk mmengubahtegangan AC yang tinggi menjadi DC yang rendah.
Gambar 3. 2 Hubungan antara adaptor dengan IP Cam
2. Perancangan IP Cam dengan Wi-Fi
Perancangan ini menggunakan Wi-Fi sebagai jaringan nirkabel yang akan menghubungkan IP Cam dengan komponen lainnya dalam satu jaringan.
Gambar 3. 3 Hubungan antara IP Cam dengan Wi-fi
3. Perancangan Wi-Fi dengan laptop
Perancangan ini menggunkan laptop untuk menghubungkan Wi-Fi dengan IP Cam.
Gambar 3. 4 Hubungan antara laptop dan Wi-Fi
220V
Adaptor 5V, 1A
22
4. Hubungan IP Cam dengan tampilan video
Perancangan ini akan mengolah video hasil rekaman IP Cam dengan metode Haar untuk mendeteksi kelajuan kendaraan yang akan ditampilkan di excel.
Gambar 3. 5 Hubungan antara IP Cam dengan tampilan video
5. Hubungan Laptop dengan tampilan video
Perancangan ini menentuan jarak dan waktu dihitung ketika kendaraan melewati garis pembatas pertama dan kedua. Jarak dan waktu adalah variabel yang digunakan untuk menghitung kelajuan kendaraan. Selanjutnya, kelajuan akan ditampilkan di dalam program dan microsoft excel.
Gambar 3. 6 Hubungan antara laptop dengsn tampilan video
860 cm Kelajuan : km/jam Waktu : detik 860 cm Kelajuan : km/jam Waktu : detik
23
3.2.3 Perancangan Perangkat Lunak Sistem
Mulai Nyalakan IP Camera Streaming IP Camera Streaming IP Camera sudah tampil? Tetapkan 2 garis vertikal sebagai jarak
Deteksi kendaraan
Kendaraan terdeteksi?
Simpan waktu saat kendaraan melewati garis vertikal pertama
Simpan waktu saat kendaraan melewati garis vertikal kedua
Selisihkan kedua waktu
Hitung kelajuan kendaraan Tampilkan kelajuan kendaraan dalam Excel
Selesai Tidak
Ya
Tidak
Ya
24
Mulai menyalakan ip camera di tandai dengan berkedipnya led warna biru, kemudian ip camera akan melakukan streaming. Streaming dilakukan untuk mengetahui apakah video stream sudah tampil di laptop atau belum. Jika hasil video stream belum tampil maka akan dilakukan streaming ulang, dan jika hasil stream sudah tampil selanjutnya di dalam program python dibuat dua garis vertikal sebagai jarak. Untuk mendeteksi kendaraan dengan cara mengubah citra menjadi grayscale, kemudian citra akan dihaluskan menggunakan metode Gaussian. Kemudian Haar like features akan menandai kendaraan dengan cara memberi pola rectangular (persegi) features, yang memberikan indikasi secara spesifik pada sebuah gambar atau image. Kemudian dilakukan Integral image untuk menentukan reperesentasi citra baru yang digunakan untuk untuk menentukan ada atau tidaknya dari fitur haar pada sebuah gambar secara efisien. Setelah itu Adaboost machine learning akan digunakan untuk menentukan fitur-fitur yang spesifik yang akan digunakan untuk mengatur nilai ambang (threshold), Dalam proses pembentukan classifier kuat dilakukan penambahan bobot terhadap classifier lemah dan digabungkan untuk mengevaluasi bagian citra mengandung objek atau tidak. Kemudian Cascade classifier digunakan untuk menentukan metode klasifikasi bertingkat dengan menggunakan fitur yang diseleksi dengan menggunakan algoritma Adaboost, cascade classifier memiliki beberapa tingkatan dalam melakukan klasifikasi, pada setiap tingkatan dipisahkan antara subcitra yang mengandung gambar positif (gambar yang memiliki objek yang diinginkan) dengan gambar negatif (gambar yang tidak memiliki objek yang diinginkan), dimana bagian subcitra yang tidak mengandung objek positif akan ditolak sedangkan subcitra yang mengandung objek akan dijadikan input pada tingkatan klasifikasi berikutnya dengan kriteria penyaringan yang lebih spesifik hingga didapatkan subcitra yang merupakan objek yang terdeteksi. Jika kendaraan tidak terdeteksi maka akan dilakukan pendeteksian kendaraan lagi tapi jika kendaran terdeteksi maka waktu saat kendaraan melewati garis vertikal pertama yang dibuat akan disimpan. Lalu waktu saat kendaraan melewati garis vertikal kedua juga akan disimpan. Setelah itu selisih kedua waktu akan diproses dan kelajuan kendaraan akan dihitung kemudian hasil dari kelajuan kendaraan akan ditampilkan dalam excel. Selesai.
25
3.3 Pengujian Komponen
3.3.1 Pengujian IP Camera EZVIZ C1C
Pengujian IP Camera EZVIZ C1C bertujuan untuk mengetahui apakah IP Camera EZVIZ C1C sudah dapat digunakan sebagai input video atau belum dapat digunakan. Jika indikator LED IP Camera EZVIZ C1C bewarna merah, artinya IP Camera EZVIZ C1C belum dapat digunakan. Tetapi jika indikator LED IP Camera EZVIZ C1C bewarna biru, artinya IP Camera EZVIZ C1C sudah dapat digunakan.
Gambar 3. 8 IP Camera EZVIZ C1C Siap Digunakan
3.3.2 Pengujian Video Stream IP Camera EZVIZ C1C di laptop
Pengujian video stream dari IP Camera EZVIZ C1C di laptop dilakukan untuk mengetahui apakah video stream sudah tampil di laptop atau belum. Video stream IP Camera EZVIZ C1C dapat diakses dengan terlebih dahulu mengetahui URL stream pada IP Camera EZVIZ C1C tersebut.
Kemudian python akan membaca video stream yang ada pada alamat cam tersebut. Untuk mengindari kesalahan ataupun lag saat menampilkan video stream, ukuran layar kan disesuaikan dalam hal ini akan diperkecil sebesar 0,5 kalinya.
Gambar 3. 9 Tampilan Video Stream dari IP Camera EZVIZ C1C di Laptop cam=cv2.VideoCapture("rtsp://admin:[email protected]/h264_ stream")
ret,img=cam.read()
26
3.3.3 Pengujian 2 Garis Vertikal sebagai Jarak pada IP Camera EZVIZ C1C
Setelah menampilkan video stream IP Camera EZVIZ C1C di laptop yang dapat diakses dengan mengetahui URL stream pada IP Camera EZVIZ C1C tersebut, langkah selanjutnya adalah memberi program pada python untuk membuat dua garis vertikal sebagai jarak dengan perintah:
Dengan bx1=200, by=2000, by2=10, ax1=1000, ay=1000, dan ay2=10.
Gambar 3. 10 Tampilan 2 Garis Vertikal sebagai Jarak pada IP Camera EZVIZ C1C di Laptop
3.3.4 Pengujian Pendeteksian Kendaraan pada IP Camera EZVIZ C1C Setelah menampilkan video stream IP Camera EZVIZ C1C dan menampilkan 2 garis vertikal sebagai jarak, langkah selanjutnya adalah memberi program pada python agar dapat mendeteksi kendaraan yang melewati area IP Camera EZVIZ C1C dengan perintah:
Selanjutnya, menjadikannya hitam dan putih (gray).
Mendeteksi kendaraan, dengan menghasilkan nilai x dan y (koordinat titik pojok kiri atas wajah), nilai w (width = lebar kotak) dan h (height = tinggi kotak).
Menggambar ROI (Region Of Interest) dalam bentuk kotak warna biru tua sesuai dengan koordinat dan dimensinya (nilai x,y,w,h):
cv2.line(img,(bx1,by),(bx1,by2),(255,0,0),2) cv2.line(img,(ax1,ay),(ax1,ay2),(255,255,0),2)
car_cascade = cv2.CascadeClassifier(‘haar.html’)
gray = cv2.cvtColor(blurred, cv2.COLOR_BGR2GRAY)
27
Gambar 3. 11 Tampilan Pendeteksian Kendaraan pada IP Camera EZVIZ C1C di Laptop
3.3.5 Pengujian Waktu pada IP Camera EZVIZ C1C
Pengujian waktu adalah waktu dimana program akan mengurangkan ketika kendaraan yang terdeteksi melewati garis biru tua dengan ketika kendaraan yang terdeteksi melewati garis biru muda. Untuk kendaraan yang terdeteksi melewati garis biru tua, catat waktu:
Untuk kendaraan yang terdeteksi melewati garis biru muda, catat waktu lalu kurangkan kedua waktu tersebut:
Lalu tampilkan waktu dalam satuan detik: cv2.rectangle(img,(x,y),(x+w,y+h),(0,0,255),2)
cv2.circle(img,(int((x+x+w)/2),int((y+y+h)/2)),1,(0,255,0),-1)
cv2.line(img,(bx1,by),(bx1,by2),(255,0,0),2) tim1= time.time()
cv2.line(img,(ax1,ay),(ax1,ay2),(255,255,0),2) total_time= time.time() - tim1
cv2.putText(frame1, "Waktu: " + str(total_waktu)+"detik", (10, 100), cv2.FONT_HERSHEY_SIMPLEX, 1,(0, 0, 0), 2)
28
Gambar 3. 12 Tampilan Waktu ketika Kendaraan Melewati 2 Garis Verikal (Jarak) pada IP Camera EZVIZ C1C di Laptop
3.3.6 Pengujian Kelajuan Kendaraan pada IP Camera EZVIZ C1C
Pengujian kelajuan kendaraan dapat dilakukan setelah proses pengujian waktu.
Dengan speed_cal adalah:
Kelajuan akan diolah ke dalam persamaan (8.600*3600)/(time*1000) yang sudah dikonversikan ke dalam km/jam (jarak 8,6 meter). Kemudian “Kelajuan” di tampilkan dalam km/jam.
Gambar 3. 13 Tampilan Kelajuan Kendaraan pada IP Camera EZVIZ C1C di Laptop cv2.line(img,(ax1,ay),(ax1,ay2),(255,255,0),2) kelajuan=speed_cal((datetime.datetime.now()-tim1).total_seconds()) kelajuan=speed_cal((datetime.datetime.now()-tim1).total_seconds()) def speed_cal(time): try: kelajuan = (8.600*3600)/(time*1000)
cv2.putText(frame1, "Kelajuan: " + str(kelajuan)+"km/jam", (10, 100), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 0, 0), 2)
print(kelajuan) return kelajuan
29
3.3.7 Pengujian Kelajuan Kendaraan pada Excel
Pengujian kelajuan kendaraan pada Excel dapat dilakukan setelah semua pengujian sebelumnya berhasil dilakukan.
Tabel 3. 2 Kelajuan dan Waktu Kendaraan pada Excel
Diperlukan perintah melalui python untuk membuat tabel kelajuan kendaraan seperti pada Tabel 3.1 terlebih dahulu.
thin_border = Border(left=Side(border_style='dashed',color='FF000000'), right=Side(border_style='dashed',color='FF000000'), top=Side(border_style='thin',color='FF000000'), bottom=Side(border_style='thin',color='FF000000') ) thick_border = Border(left=Side(border_style='thin',color='FF000000'), right=Side(border_style='thin',color='FF000000'), top=Side(border_style='thin',color='FF000000'), bottom=Side(border_style='medium',color='FF000000') ) Double_border = Border(left=Side(border_style='dashed',color='FF000000'), right=Side(border_style='dashed',color='FF000000'), top=Side(border_style='double',color='FF000000'), bottom=Side(border_style='double',color='FF000000') ) fill_cell PatternFill(fill_type=fills.FILL_SOLID,start_color='FFFFFF',end_color='00FFFF00'
Waktu Kelajuan Kendaraan (km/jam) Sun Apr 18 17:55:09 2021 24,97828855
30 ) row_num=50 col_num=2 row_loc=0 col_loc=0 Table_num=1 dis=2 for _ in range(Table_num):
for i in range (row_loc,row_loc+row_num): for j in range (col_loc,col_num+col_loc):
ws.cell(row=i+1, column=j+1).border=thin_border if i ==row_loc: ws.cell(row=i+1, column=j+1).border=Double_border ws.cell(row=i+1, column=j+1).fill=fill_cell if i == row_loc+row_num-1: ws.cell(row=i+1, column=j+1).border=thick_border row_loc= row_loc+row_num+dis
Untuk ”Waktu” dan ”Kelajuan Kendaraan (km/jam)” sudah diisi terlebih dahulu kemudian di save dengan nama “Kelajuan Kemdaraan.xlsx”.
ws[“A1”]=”Waktu”
ws[“B1”]=”Kelajuan Kendaraan (km/jam)” wb.save("Kelajuan Kendaraan.xlsx”)
31