Cov txheej txheem:

Nkawm khau Hawk: Tes Tes Taw Tswj Cov Neeg Hlau Siv Duab Ua Raws Li Kev Sib Tham: 13 Cov Kauj Ruam (nrog Duab)
Nkawm khau Hawk: Tes Tes Taw Tswj Cov Neeg Hlau Siv Duab Ua Raws Li Kev Sib Tham: 13 Cov Kauj Ruam (nrog Duab)

Video: Nkawm khau Hawk: Tes Tes Taw Tswj Cov Neeg Hlau Siv Duab Ua Raws Li Kev Sib Tham: 13 Cov Kauj Ruam (nrog Duab)

Video: Nkawm khau Hawk: Tes Tes Taw Tswj Cov Neeg Hlau Siv Duab Ua Raws Li Kev Sib Tham: 13 Cov Kauj Ruam (nrog Duab)
Video: Yog Rov Tig Tau Qub Kev By Nkauj noog Hawj 2024, Kaum ib hlis
Anonim
Nkawm khau Hawk: Tes Tes Taw Tswj Cov Neeg Hlau Siv Duab Ua Raws Li Kev Sib Tham
Nkawm khau Hawk: Tes Tes Taw Tswj Cov Neeg Hlau Siv Duab Ua Raws Li Kev Sib Tham

Gesture Hawk tau nthuav tawm hauv TechEvince 4.0 raws li cov duab yooj yim ua raws tib neeg-tshuab sib cuam tshuam. Nws qhov muaj txiaj ntsig nyob hauv qhov tseeb tias tsis muaj lub ntsuas ntsuas ntxiv lossis hnav tau tshwj tsis yog lub hnab looj tes yuav tsum tau tswj lub tsheb neeg hlau uas khiav ntawm txoj cai sib txawv tsav. Hauv cov lus qhia no, peb yuav coj koj mus rau txoj cai ua haujlwm tom qab ntsuas cov khoom thiab piav tes piav taw pom hauv lub kaw lus. Qhov chaws ntawm txoj haujlwm no tuaj yeem rub tawm los ntawm Github ntawm qhov txuas:

Kauj Ruam 1: YUAV TSUM YUAV TSUM:

YUAV TSUM PAUB
YUAV TSUM PAUB
YUAV TSUM PAUB
YUAV TSUM PAUB
YUAV TSUM PAUB
YUAV TSUM PAUB
YUAV TSUM PAUB
YUAV TSUM PAUB
  1. L298N Tsav Tsav Tsheb
  2. DC Tsav
  3. Neeg hlau tsheb chassis
  4. Arduino Ib
  5. Roj teeb LiPo
  6. Arduino USB Cable (ntev)
  7. OpenCV Library nrog Python

Kauj Ruam 2: Txoj Haujlwm Ua Haujlwm:

UA HAUJ LWM UA HAUJ LWM
UA HAUJ LWM UA HAUJ LWM

Gesture Hawk yog peb theem ua haujlwm raws li koj tuaj yeem pom hauv daim duab saum toj no.

Kauj Ruam 3: RAWS LI QHOV TSEEB thiab UA NTEJ:

ZOO TSHAJ PLAWS THIAB UA NTEJ
ZOO TSHAJ PLAWS THIAB UA NTEJ

Kev ntes cov tswv yim tuaj yeem nkag siab hauv pawg dav dav uas tau muab hauv daim duab saum toj no.

Txhawm rau tshem tawm cov txhais tes los ntawm ib puag ncig, peb yuav tsum siv daim npog ntsej muag lossis lim cov xim tseeb (qhov no - xiav xiav '). Txhawm rau ua qhov ntawd koj yuav tsum hloov daim duab los ntawm BGR rau HSV hom uas tuaj yeem ua tiav los ntawm kev siv cov lej hauv qab no.

hsv = cv2.cvtColor (thav duab, cv2. COLOR_BGR2HSV)

Tam sim no, cov kauj ruam tom ntej yog txhawm rau nrhiav qhov xav tau ntau yam ntawm HSV qhov ntsuas kom tshem tawm txhais tes ntawm daim npog ntsej muag lossis lim. Txog qhov no, txoj hauv kev zoo tshaj plaws yog siv kab tuav txhawm rau nrhiav qhov tsim nyog. Nov yog qhov screenshot ntawm kab kab uas siv rau txoj haujlwm no.

Kauj ruam 4:

Duab
Duab

Kauj ruam 5:

Ntawm no, muaj cov lej kab lus muab hauv qab no txhawm rau ua lub trackbar rau kev tsim daim npog ntsej muag:

ua cv2

import numpy as npdef nothing (x): pass cv2.namedWindow ('image') img = cv2. VideoCapture (0) cv2.createTrackbar ('l_H', 'duab', 110, 255, tsis muaj dab tsi) cv2.createTrackbar ('l_S ',' duab ', 50, 255, tsis muaj dab tsi) cv2.createTrackbar (' l_V ',' duab ', 50, 255, tsis muaj dab tsi) cv2.createTrackbar (' h_H ',' duab ', 130, 255, tsis muaj dab tsi) cv2. createTrackbar ('h_S', 'duab', 255, 255, tsis muaj dab tsi) cv2.createTrackbar ('h_V', 'duab', 255, 255, tsis muaj dab tsi) thaum (1): _, thav duab = img.read ()

hsv = cv2.cvtColor (frame, cv2. COLOR_BGR2HSV) lH = cv2.getTrackbarPos ('l_H', 'image') lS = cv2.getTrackbarPos ('l_S', 'image') lV = cv2.getTrackbarPos ('l_V', 'image') hH = cv2.getTrackbarPos ('h_H', 'image') hS = cv2.getTrackbarPos ('h_S', 'image') hV = cv2.getTrackbarPos ('h_V', 'image') lower_R = np. array ([lH, lS, lV]) higher_R = np.array ([hH, hS, hV]) mask = cv2.inRange (hsv, lower_R, higher_R) res = cv2. cv2.imshow ('duab', res) k = cv2.waitKey (1) & 0xFF yog k == 27: so cv2.destroyAllWindows ()

Kauj Ruam 6: TUS NEEG UA NTEJ:

UA NTEJ
UA NTEJ

Zoo, peb tau txais lub ntsej muag duab ntawm txhais tes, tam sim no nws yog lub sijhawm los siv nws thiab siv nws los xam tawm ntawm tes tes.

Huv convex:

Los ntawm lub khauj khaum khaus, peb sim ua kom kwv yees ntau lub ntsej muag ntawm cov ntsiab lus tseem ceeb tam sim no hauv cov duab. Cov duab tam sim no ntawm sab laug qhia qhov kwv yees ntau lub duab plaub uas tau muab rau lub cev nrog cov ntsiab lus ntawm lub ntsej muag cim nrog liab.

Cov ntsiab lus Convex yog cov ntsiab lus hauv cov duab uas nyob deb tshaj ntawm ib sab ntawm cov duab no kwv yees. Tab sis, qhov teeb meem nrog lub plhaub taub hau yog tias thaum lub sijhawm nws suav, peb yuav tau txais ib qho array ntawm txhua lub ntsiab lus convex tab sis peb xav tau dab tsi yog lub ntsiab lus xiav lub ntsej muag convex. Peb yuav qhia koj tias vim li cas thiaj yuav tsum tau ua.

Txhawm rau nrhiav pom lub ntsiab lus no, peb yuav tsum siv tus lej sib npaug sib npaug kom pom qhov deb ntawm lub ntsiab lus convex nrog sab ze tshaj plaws. Peb pom tias qhov taw qhia xiav muaj qhov deb tshaj plaws ntawm sab thiab yog li peb tau txais cov ntsiab lus no.

Kauj ruam 7:

Duab
Duab

Kauj ruam 8:

Duab
Duab

Tom ntej no peb yuav tsum pom qhov kev nyiam ntawm txoj kab koom nrog qhov taub ntawm tus ntiv tes xoo (lossis cov ntsiab lus hnyav) mus rau lub ntsiab lus no nrog kab rov tav.

Kauj ruam 9:

Duab
Duab

Hauv qhov xwm txheej saum toj no, Lub kaum sab xis α yuav tsum nyob nruab nrab ntawm 0 txog 90 degrees yog hais tias tes taw yog rau sab laug. Qhov ntawd yog ziab (α) yuav tsum yog qhov zoo.

Kauj ruam 10:

Duab
Duab

Hauv qhov xwm txheej saum toj no, Lub kaum sab xis α yuav tsum nyob nruab nrab ntawm 180 txog 90 degrees yog hais tias tes taw yog rau sab xis. Qhov ntawd yog ziab (α) yuav tsum tsis zoo.

Yog li, Yog tias Tan α yog qhov zoo, tom qab ntawd tig sab laug. Yog tias Tan α yog qhov tsis zoo, ces yog sab xis. Tam sim no, nws yog lub sijhawm los saib yuav ua li cas txhawm rau txheeb xyuas qhov kev txiav txim tseem ceeb tshaj plaws.

Ntawm no, qhov piv txwv tshwj xeeb (pom los ntawm kev ntaus thiab sim) raug tshuaj xyuas thiab hauv qhov xwm txheej siab tshaj plaws qhov sib piv ntawm kev ncua nyob hauv qhov tshwj xeeb no.

Kauj ruam 11:

Duab
Duab

Thaum kawg, taw tes taw ua ntej tau tshuaj xyuas los ntawm matchShape () ua haujlwm hauv OpenCV. Txoj haujlwm no sib piv cov duab ntawm ob tus neeg suav, hauv qhov no, ntawm kev qhia piv txwv ntawm kev zoo siab hauv daim duab saum toj no mus rau qhov sib luag ntawm sab laug ntawm daim duab saum toj no. Nws rov qab tus nqi txij li 0 txog 2 lossis 3, raws li qhov kev hloov pauv tam sim no hauv cov duab ntawm ob daim duab. Rau qhov zoo ib yam contour, nws rov qab 0.

ret = cv2.matchShapes (cnt1, cnt2, 1, 0.0)

Ntawm no, cn1 thiab cnt2 yog ob txoj kab uas yuav tsum tau muab piv.

Kauj Ruam 12: TSHUAJ TIV THAIV:

TSWV YIM TSHUAJ
TSWV YIM TSHUAJ

PySerial:

Peb siv PySerial lub tsev qiv ntawv ntawm nab nab los hloov cov ntaub ntawv ua tiav rau hauv cov ntaub ntawv txuas mus rau Arduino Uno ntawm Arduino USB Cable. Thaum ib qho kev taw qhia tshwj xeeb tau pom los ntawm opencv peb tau tsim qhov hloov pauv ib ntus hais tias 'x' thiab muab rau nws qee qhov tshwj xeeb tus nqi thiab hloov nws mus rau cov lej nkag uas siv cov kab lus hauv qab no:-

ntshuam serial #ntshuam Pyserial tsev qiv ntawv

serial. Serial ('', baudrate = '9600', timeout = '0') # teeb tsa cov ntawv tso tawm.. PORT NAME yog lub npe chaw nres nkoj uas cov ntaub ntawv xa tawm yuav tshwm sim.

serial.write (b'x ') # x yog cov tsiaj ntawv xa mus rau chaw nres nkoj … b yog los hloov cov hlua no rau bytes.

Arduino Ua:

Tam sim no arduino tau teev nyob rau hauv ib txoj hauv kev uas txhua qhov sib txawv x tau teeb tsa ncaj qha rau qee qhov kev nqis tes ua lub luag haujlwm ntawm cov neeg hlau (hais tias kev tshawb pom ntawm sab laug tes yuav ua rau lub zog ntawm sab xis tig sab laug). Peb tuaj yeem tswj cov lus tsa suab ntawm txhua lub log txhais lus raws li kev hloov pauv los ntawm kev hloov pauv txoj cai kom raug.

L298N Tsav tsheb:

Tsav Tsheb tau siv los ua tus neeg nruab nrab nruab nrab ntawm lub cev muaj zog thiab lub zog siv txij li lub cav tsis tuaj yeem siv ncaj qha vim qhov ntsuas hluav taws xob qis. Li-Po Roj teeb txuas nrog nws lub 12V input davhlau ya nyob twg thiab peb txuas arduino lub 5V lub qhov (socket) rau lub cav tsav tsheb 5V lub qhov (socket) thaum kawg txuas hauv av ntawm Li-Po nrog rau arduino nyob rau hauv ib qho av hauv qhov av ntawm tus tsav tsheb.

Tam sim no lub davhlau ya nyob twg ntawm lub cav tau txuas nrog ntawm cov qhov muab. Thaum kawg peb txuas cov tswv yim txuas rau lub cav rau PWM tso zis ntawm arduino tso cai rau peb dawb los txiav txim siab qhov kev hloov pauv thiab txhais lus ntawm cov lus tsa suab kom raug.

Pom zoo: