Talaan ng mga Nilalaman:
2025 May -akda: John Day | [email protected]. Huling binago: 2025-01-13 06:58
Ang Nain 1.0 ay magkakaroon ng karaniwang 5 nababakas na mga module-
1) Arm - na maaaring makontrol sa pamamagitan ng servos.
2) Mga Gulong - na maaaring makontrol ng mga dc motor.
3) Leg - Si Nain ay maaaring lumipat sa pagitan ng mga gulong o binti para sa paggalaw.
4) Ulo - Ang ulo nito ay maaaring makontrol para sa iba't ibang mga tango.
5) module ng Camera- na maaaring i-interface para sa Pag-access sa Pagkilala sa Mukha.
Kasabay ng NAIN na ito ay magagawang makipag-usap at makipag-ugnay sa mga gumagamit at maaaring ipakita sa iyo ang oras sa pamamagitan ng nakapaloob na orasan. Magkakaroon ito ng isang wireless control gamit ang Wi-fi / Bluetooth.
Hakbang 1: Kailangan ng Mga Bahagi
- Servo Motors -4
- Arduino Mega - 1
- Raspberry Pi - 1
- Usb Camera -1
- Tagapagsalita -1
- DC Motors -2
- L293D -1
- Battery Pack - 1
- Gulong -2
- Castor Wheels - 2
Kasama ng mga ito kakailanganin mo ang mga square square strip upang gawin ang katawan at mga srew at mga mani upang magkasya nang maayos.
Hakbang 2: Istraktura ng Katawan
Ang istraktura ng katawan ay gagawin ng magaan na aluminyo parisukat na tungkod na makakatulong sa pag-assemble nito nang madali.
Tulad ng ngayon tipunin ang mga ito tulad ng ipinakita sa pigura at gupitin din ang tamang mga puwang para sa mga motor na servo na ikakabit sa mga bisig.
Maglakip ng isang hexagonal na kahoy na base sa ilalim.
Sa ibaba ng baseng kahoy, ilakip ang mga DC motor at gulong tulad ng ginagawa namin sa anumang robot na tagasunod sa linya.
Kapansin-pansin, Magdagdag ng dalawang castor wheel- isa sa harap at isa pa sa likuran ng robot.
Hakbang 3: Mga kable at Coding
Upang mai-wire ang iba't ibang mga module ay sumangguni sa mga code na naka-attach sa bahaging ito.
Una sinubukan namin ang bawat module na gumagamit ng mga standalone code at pagkatapos ay pinagsama namin ang lahat sa isa at kinokontrol ang paggalaw ng mga gulong at Arms gamit ang isang module na Bluetooth.
Hakbang 4: Raspberry Pi at Pagkilala sa Imahe
Ginagawa ang Pagkilala sa Imahe gamit ang isang USB Camera at Raspberry Pi.
Para doon, kakailanganin mong i-install ang OPEN CV library sa iyong Pi.
Maaari mong gawin iyon mula dito -
Pagkatapos ay kakailanganin mong magsagawa ng pagkilala sa imahe gamit ang haar cascade.
Maaari mong gawin iyon mula dito -https://thecodacus.com/category/opencv/#. WvsNC4iFPDc
Matapos pag-aralan ang nasa itaas na link at sundin iyon, gumawa ako ng ilang mga pagbabago sa pangwakas na code na ginamit ko na inilalagay ko sa ibaba -
DATASET GENERATOR:
importcv2
cam = cv2. VideoCapture (0)
detector = cv2. CascadeClassifier ('Classifiers / face.xml')
ako = 0
offset = 50
pangalan = raw_input ('ipasok ang iyong id')
habang Totoo:
ret, im = cam.read ()
grey = cv2.cvtColor (im, cv2. COLOR_BGR2GRAY)
mukha = detector.detectMultiScale (grey, scaleFactor = 1.2, minNeighbours = 5, minSize = (100, 100), flag = cv2. CASCADE_SCALE_IMAGE)
para sa (x, y, w, h) sa mga mukha:
i = i + 1
cv2.imwrite ("dataSet / face." + name + '.' + str (i) + ".jpg", grey [y-offset: y + h + offset, x-offset: x + w + offset])
cv2.rectangle (im, (x-50, y-50), (x + w + 50, y + h + 50), (225, 0, 0), 2)
cv2.imshow ('im', im [y-offset: y + h + offset, x-offset: x + w + offset])
kung cv2.waitKey (100) & 0xFF == ord ('q'):
pahinga
# masira kung ang sample na numero ay morethan 20
elif (i> 20):
pahinga
cam.release ()
cv2.destroyAllWindows ()
Lilikha ito ng isang datset ng iyong mga larawan na magagamit para sa pagpapatotoo.
TRAINER:
importcv2, os
i-import ang numpy bilang np
mula sa PIL import Image
kinikilala = cv2.face.createLBPHFaceRecognizer ()
cascadePath = "Classifiers / face.xml"
faceCascade = cv2. CascadeClassifier (cascadePath);
path = 'dataSet'
def get_images_and_labels (path):
image_paths = [os.path.join (path, f) para sa f in os.listdir (path)]
Naglalaman ang # na mga imahe ng mukha
mga imahe =
Naglalaman ang # na mga label ng label na nakatalaga sa imahe
mga label =
para sa image_path sa image_paths:
# Basahin ang imahe at i-convert sa grayscale
image_pil = Image.open (image_path).convert ('L')
# I-convert ang format ng imahe sa numpy array
imahe = np.array (image_pil, 'uint8')
# Kunin ang label ng imahe
nbr = int (os.path.split (image_path) [- 1].split (".") [1].palit ("mukha-", ""))
# nbr = int ( . sumali (str (ord (c)) para sa c in nbr))
print nbr
# Tuklasin ang mukha sa imahe
mukha = faceCascade.detectMultiScale (imahe)
# Kung nakita ang mukha, idagdag ang mukha sa mga imahe at ang label sa mga label
para sa (x, y, w, h) sa mga mukha:
mga imahe.append (imahe [y: y + h, x: x + w])
mga label.append (nbr)
cv2.imshow ("Pagdaragdag ng mga mukha sa itinakdang set …", imahe [y: y + h, x: x + w])
cv2.waitKey (10)
# ibalik ang listahan ng mga imahe at listahan ng mga label
ibalik ang mga imahe, label
mga imahe, label = get_images_and_labels (path)
cv2.imshow ('pagsubok', mga imahe [0])
cv2.waitKey (1)
kinikilala.train (mga imahe, np.array (mga label))
nakikilala.save ('trainer / trainer.yml')
cv2.destroyAllWindows ()
DETECTOR
importcv2
i-import ang numpy bilang np
import os
c = 0
kinikilala = cv2.face.createLBPHFaceRecognizer ()
pagkilala.load ('trainer / trainer.yml')
cascadePath = "Classifiers / face.xml"
faceCascade = cv2. CascadeClassifier (cascadePath);
cam = cv2. VideoCapture (0)
fontface = cv2. FONT_HERSHEY_SIMPLEX
fonttscale = 1
fontcolor = (255, 255, 255)
habang Totoo:
ret, im = cam.read ()
grey = cv2.cvtColor (im, cv2. COLOR_BGR2GRAY)
mukha = faceCascade.detectMultiScale (grey, 1.2, 5)
para sa (x, y, w, h) sa mga mukha:
cv2.rectangle (im, (x-50, y-50), (x + w + 50, y + h + 50), (225, 0, 0), 2)
Id = kinikilala.predict (grey [y: y + h, x: x + w])
kung (Id <70):
kung (Id == 1):
Id = "Shashank"
elif (Id == 2):
kung (c == 0):
Id = "Shivam"
c = c + 1
os.system ("espeak 'Welcome Shivam Access Granted'")
iba pa:
Id = "Shivam"
iba pa:
Id = "Hindi kilalang"
cv2.putText (im, str (Id), (x, y + h), fontface, fontscale, fontcolor)
cv2.imshow ('im', im)
kung cv2.waitKey (10) & 0xFF == ord ('q'):
pahinga
cam.release ()
cv2.destroyAllWindows ()
Hakbang 5: LCD at Speaker
Gumamit din ako ng I2C LED Display at isang speaker.
Ang LED ay kinokontrol sa pamamagitan ng Arduino Mega at ang code nito ay ibinibigay sa huling code.
Para sa Speaker, ito ay konektado sa Raspberry Pi at gumagamit ng eSpeak Utility.
Mahahanap mo ang sanggunian dito -
Hakbang 6: Pangwakas na Mga Hakbang
Ipunin ang lahat at maghanda para sa putok.