COMPUTER VISION VIRTUAL BUTTON

 PRAKTIKUM COMPUTER VISION – VIRTUAL BUTTON CALCULATOR

Halo semuanya…

perkenalkan nama saya Zulva Fauziah, dari prodi Teknik Informatika Semester 6 Universitas Nahdlatul Ulama Cirebon.

pada kesempatan kali ini saya akan berbagi, tentang bagaimana membuat virtual button calculator menggunakan computer vision. Dalam tugas ini, kita akan membuat kalkulator virtual yang menggunakan gerakan jari untuk beroperasi. disini saya menggunakan aplikasi “Visual Studio Code”

1. Pengertian Kecerdasan Buatan

Kecerdasan Buatan, atau Artificial Intelligence (AI), adalah cabang ilmu komputer yang berfokus pada pengembangan sistem yang dapat melakukan tugas-tugas yang biasanya memerlukan kecerdasan manusia. Ini termasuk, tetapi tidak terbatas pada, kemampuan untuk belajar dari pengalaman, memahami bahasa alami, mengenali pola, menyelesaikan masalah, dan membuat keputusan. AI dapat dibagi menjadi beberapa sub-bidang, di antaranya adalah:

1.   Pembelajaran Mesin (Machine Learning) : Sub-bidang AI yang berkaitan dengan pengembangan algoritma dan teknik yang memungkinkan komputer untuk belajar dari dan membuat prediksi atau keputusan berdasarkan data.

2.    Pembelajaran Mendalam (Deep Learning) : Bagian dari pembelajaran mesin yang menggunakan jaringan saraf tiruan dengan banyak lapisan (deep neural networks) untuk memodelkan dan memahami data yang kompleks.

3. Pemrosesan Bahasa Alami (Natural Language Processing/NLP): Bidang yang berfokus pada interaksi antara komputer dan bahasa manusia, termasuk pemahaman, interpretasi, dan produksi bahasa alami oleh mesin.

4.    Visi Komputer (Computer Vision) : Bidang yang memungkinkan komputer untuk memperoleh, memproses, dan memahami data visual dari dunia fisik, seperti gambar dan video.

5. Sistem Pakar (Expert Systems) : Sistem komputer yang meniru kemampuan pengambilan keputusan dari seorang ahli manusia dalam domain tertentu.

6. Robotika : Bidang yang berkaitan dengan desain, konstruksi, operasi, dan penggunaan robot yang dapat melakukan tugas-tugas tertentu secara otomatis. digunakan dalam berbagai aplikasi, mulai dari asisten virtual seperti Siri dan Google Assistant, sistem rekomendasi seperti yang digunakan oleh Netflix dan Amazon, hingga kendaraan otonom seperti mobil tanpa pengemudi. Dengan perkembangan teknologi yang pesat, AI terus menjadi bagian integral dalam kehidupan sehari-hari dan berbagai industri.

2. Praktikum Computer Vision ( Virtual Button Calculator)

 

pastikan sudah menginstal aplikasi Visual Studio Code. jika sudah selesai menginstall selanjutnya buka aplikasi nya.

1. Pertama kita buka VsCode , karna disini saya menggunakan Visual Studio Code

2. Di Virtual button Calculator ini terlebih dahulu kita harus menginstall library-library yang dibutuhkan, dengan cara menginstall di cmd yaitu :

·      Pip install opencv-python

·      Pip install cv2

·      Pip install cvzone

·      Pip install mediapipe


 3.    Lalu kita klik Open folder pada VsCode

 


4. Dan akan menampilkan Source Code seperti ini






5. jika module sudah diinstall silahkan masukkan source code dibawah ini pada Visual Studio Code, kemudian Klik RUN. Berikut contoh Source Code nya :


import cv2
from cvzone.HandTrackingModule import HandDetector

class Button:
    def __init__(self, pos, width, height, value):
        self.pos = pos
        self.width = width
        self.height = height
        self.value = value
   
    def draw(self, img):
        cv2.rectangle(img, self.pos, (self.pos[0]+self.width, self.pos[1]+self.height),
                      (225, 225, 225), cv2.FILLED)
        cv2.rectangle(img, self.pos, (self.pos[0]+self.width, self.pos[1]+self.height),
                      (50, 50, 50), 3)
        cv2.putText(img, self.value, (self.pos[0]+25, self.pos[1]+46), cv2.FONT_HERSHEY_PLAIN,
                    2, (50, 50, 50), 2)
   
    def checkClick(self, x, y):
        if self.pos[0] < x < self.pos[0]+self.width and self.pos[1] < y < self.pos[1]+self.height :
            cv2.rectangle(img, self.pos, (self.pos[0]+self.width, self.pos[1]+self.height),
                          (255, 255, 255), cv2.FILLED)
            cv2.rectangle(img, self.pos, (self.pos[0]+self.width, self.pos[1]+self.height),
                          (50, 50, 50), 3)
            cv2.putText(img, self.value, (self.pos[0]+15, self.pos[1]+58), cv2.FONT_HERSHEY_PLAIN,
                        4, (0, 0, 0), 4)
            return True
        else:
            return False
           

cam = cv2.VideoCapture(0)
cam.set(3, 1280)
cam.set(4, 720)
detector = HandDetector(detectionCon=0.8, maxHands=1)

buttonListValues = [
    ['1', '2', '3', '+'],
    ['4', '5', '6', '-'],
    ['7', '8', '9', '/'],
    ['0', '.', '*', '=']
]

buttonList = []
for y in range(4):
    for x in range(4):
        xpos = x*80 + 320
        ypos = y*80 + 90
        buttonList.append(Button((xpos, ypos), 70, 70, buttonListValues[y][x]))

myEquation = ''
delayCounter = 0

while True:
    success, img = cam.read()
    img = cv2.flip(img, 1)
   
    hands, img = detector.findHands(img, flipType=False)
   
    cv2.rectangle(img, (320, 10), (320+310, 10+70),
                  (225, 225, 225), cv2.FILLED)
    cv2.rectangle(img, (320, 10), (320+310, 10+70),
                  (50, 50, 50), 3)
   
    for button in buttonList:
        button.draw(img)
   
    if hands:
        lmList = hands[0]['lmList']
        length, info, img = detector.findDistance(lmList[8][:2], lmList[12][:2], img)
        x, y = lmList[8][:2]
        if length < 50:
            for i, button in enumerate(buttonList):
                if button.checkClick(x, y) and delayCounter == 0:
                    myValue = buttonListValues[int(i/4)][int(i%4)]
                    if myValue == '=':
                        if len(myEquation) > 0:
                            if myEquation[0] != '+' and myEquation[0] != '-' and myEquation[0] != '*' and myEquation[0] != '/':
                                myEquation = str(eval(myEquation))
                    else:
                        myEquation += myValue
                    delayCounter = 1
 
    if delayCounter != 0:
        delayCounter += 1
        if delayCounter > 10:
            delayCounter = 0
   
    cv2.putText(img, myEquation, (320+10, 10+50), cv2.FONT_HERSHEY_PLAIN,
                3, (50, 50, 50), 3)
    cv2.imshow("Camera", img)
    key = cv2.waitKey(1)

    if key == ord('c') :
        myEquation = ''


  berikut outputnya :



  6. Hasil Output Youtube



 Link Youtube

      https://youtu.be/ZOOnyTYPzfs


Cukup Sekian dan Terimakasih




Lebih baru Lebih lama

Formulir Kontak