Cov txheej txheem:

Raspberry Pi 4 Daim Ntawv Cuam Tshuam Paub Txog Neeg Hlau: 6 Kauj Ruam
Raspberry Pi 4 Daim Ntawv Cuam Tshuam Paub Txog Neeg Hlau: 6 Kauj Ruam

Video: Raspberry Pi 4 Daim Ntawv Cuam Tshuam Paub Txog Neeg Hlau: 6 Kauj Ruam

Video: Raspberry Pi 4 Daim Ntawv Cuam Tshuam Paub Txog Neeg Hlau: 6 Kauj Ruam
Video: Saib Mis paub Poj niam (hluas nkauj) tus yam ntxwv lub siab 2024, Kaum ib hlis
Anonim
Raspberry Pi 4 Kev Kos Npe Kev Pom Zoo Neeg Hlau
Raspberry Pi 4 Kev Kos Npe Kev Pom Zoo Neeg Hlau

Cov lus qhia no yog ua los ntawm kuv txoj haujlwm hauv tsev kawm qib siab. Lub hom phiaj yog los tsim cov kab ke uas cov neural network txheeb xyuas cov duab thiab tom qab ntawd raws qhov kev lees paub yuav qhia rau tus neeg hlau arduino txav ntawm Ros.

Piv txwv tias yog lub npe tig sab xis raug lees paub ces tus neeg hlau yuav tig sab xis, yog tias lub npe tig sab laug tau lees paub ces tus neeg hlau yuav tig sab laug, yog tias tsis lees paub ces tus neeg hlau yuav txuas ntxiv mus. Cov ntaub ntawv uas yuav siv yog daim ntawv hla tebchaws raug lees paub los ntawm INI (2019) (Institut Fur Neuroinformatik), cov ntaub ntawv no muaj 43 chav kawm tab sis tsuas yog ob qho xav tau; 00033 thiab 00034 cov ntawv tais ceev tseg hauv cov ntaub ntawv yog sab laug thiab sab xis tig cov paib.

Kauj ruam 1: Yuav tsum tau ua

Yuav tsum muaj
Yuav tsum muaj
Yuav tsum muaj
Yuav tsum muaj
Yuav tsum muaj
Yuav tsum muaj

Qhov xav tau rau txoj haujlwm no yog cov hauv qab no:

Ib tus neeg hlau arduino. (feem ntau yog arduino uno, tus tsav tsheb thiab lub cev muaj zog) (tsis xav tau yog tias koj tsis siv neeg hlau)

Raspberry pib 4.

Pi lub koob yees duab.

Software yuav tsum tau:

Nab hab sej 3.

OpenCV 4.

Tensorflow.

arduino IDE (tsis xav tau yog tias koj tsis siv neeg hlau)

Ros (tsis xav tau yog tias koj tsis siv neeg hlau)

Xijpeem koj txoj kev xav nab nab yog (Ntawm raspberry pi, Kuv siv Thonny).

Txhawm rau teeb tsa OpenCV thiab Tensorflow, ua raws cov lus qhia los ntawm Adrian. Txuas:

Kuv pom zoo kom saib ntau ntawm nws cov kev qhia ntau li ntau tau, lawv yog qhov txaus nyiam tiag tiag thiab ob qho tib si muaj txiaj ntsig zoo rau cov pib tshiab nrog rau nruab nrab.

Kauj Ruam 2: Kev Kawm Txog Cov Ntaub Ntawv

Cov ntawv qhia tsheb ciav hlau tau tsim los txhawm rau nkag mus rau cov ntaub ntawv khaws tseg uas nyob ib puag ncig ntawm 50, 000 cov duab los ntawm 43 chav kawm. Tsab ntawv tau sau ua nab nab, siv ntau lub tsev qiv ntawv: os - qhov no yog txhawm rau txuas cov ntawv nab nab mus rau cov npe uas raug qhov twg cov ntaub ntawv nyob. Matplotlib - qhov no yog rau tso saib cov ntaub ntawv los ntawm cov qauv kev qhia. Tensorflow thiab keras - cov no yog cov tsev qiv ntawv uas siv los tsim cov qauv siv dag zog neural network, lawv tau siv los tsim cov qauv. Numpy - lub tsev qiv ntawv no yog rau xa cov duab rau hauv ib qho array uas tom qab ntawd tuaj yeem muab tso los ntawm tus qauv kom rov qab tau txais kev twv ua ntej.

Cov ntawv txuas nrog yog tus nab npawb nab npawb rau ua tus qauv los ntawm cov ntaub ntawv khaws tseg. Qhov no suav nrog kev sib dhos 2D nrog (5, 5) cov tswv yim thiab kev ua kom rov ua dua tom qab sib koom ua ke, thaum qhov no ua tiav cov tswv yim mus dhau lwm qhov kev sib cav nrog (3, 3) cov tswv yim nrog rau kev ua kom zoo ib yam thiab ua ke. Qhov no tshwm sim ib zaug zaum kawg ua ntej yuav pluav thiab tom qab ntawd ntom ntom ntom ntom ntom ntom ntom ntom ntom ntom ntom ntom ntab ntab ntab ntus rau hauv chav kawm 43.

Cov kauj ruam tom ntej yog los ua ke cov qauv. Qhov no yog ib feem uas teeb tsa qhov ua kom zoo tshaj plaws, sgd yog qhov haum tshaj vim tias qhov no zoo ib yam li qhov ua kom zoo siv hauv kev ua haujlwm 1. Sgd sawv rau Stochastic gradient descent. Tsis tas li hauv tus neeg sau cov ntaub ntawv poob yuav tsum tau teeb tsa, xaiv sparse_categorical_crossentropy poob yog qhov zoo tshaj plaws txij li cov pawg yog cov lej thiab tus qauv yuav tso tawm qhov twv ua ntej rau txhua chav kawm raws li ntab ntawm 0 thiab 1. 1 yog 100% raug.

Thaum cov ntaub ntawv ua tiav, lub tshuab hluav taws xob xav tau los thov rau tus qauv kom pib ua cov duab nkag. Lub tshuab hluav taws xob suav nrog ntau ntu: kev cob qhia _set - qhov no yog qhov txuas rau cov ntaub ntawv siv rau kev qhia, step_per_epoch - qhov no yog tus lej cov kauj ruam hauv ib lub sijhawm uas xav tau, lub sijhawm - cov no yog pes tsawg lub sijhawm uas txoj haujlwm yuav rov ua dua los ntawm cov ntaub ntawv tag nrho, validation_data - qhov no yog qhov txuas rau cov ntaub ntawv siv rau kev lees paub, kev lees paub_steps - tus lej ntawm cov kauj ruam siv rau kev lees paub, kev siv tau tshwm sim thaum kawg ntawm txhua lub sijhawm.

Feem ntau, ua tiav so ntawm tag nrho cov ntaub ntawv xav tau kom ua tiav ib ntu twg. Yog li piv txwv li cov ntaub ntawv ntawm 1024 cov duab yuav xav tau: Batch size = 32, Cov kauj ruam ib lub sijhawm = 32, epochs = 1. Txhua kauj ruam suav nrog tag nrho cov pawg loj, yog li nrog ib pawg loj ntawm 32 cov kauj ruam yuav yog 32. Ntawm lwm qhov tes, nws yog qhov zoo tshaj kom muaj cov pawg loj dua li cov chav kawm, qhov no yog vim tias yog tias pawg me me me dua ntawd txhua qib tsis suav nrog cov duab los ntawm txhua chav kawm.

Thaum tus qauv tau kawm tiav, siv matplotlib qhov kev zov me nyuam yuav ua daim duab ntawm cov txiaj ntsig, qhov no qhia txog keeb kwm ntawm kev kawm txij thaum pib mus txog thaum kawg. Cov kab ntawv suav nrog qhov raug, qhov tseeb raug, poob thiab poob qhov pov thawj, qhov no tau muab faib ua ntu zuj zus los qhia qhov kev kawm tau zoo li cas. Kauj ruam kawg yog khaws cov qauv ua.h5 cov ntaub ntawv uas tuaj yeem nkag mus rau tom qab rau txheej txheem kev twv ua ntej. Txuag tus qauv txhais tau tias txhua lub sijhawm txoj haujlwm kwv yees tau ua tiav txoj haujlwm kev qhia tsis tas yuav tsum tau rov ua dua. Qhov kev qhia ua haujlwm tuaj yeem siv sijhawm txog 10 feeb rau ib lub sijhawm ntawm raspberry pi.

Txuas nrog yog Tsab Ntawv Qhia Kev Kawm:

Kauj Ruam 3: Ua Raws Li Pi Lub Koob Yees Duab Ua Ntej

Cov haujlwm tom ntej yog qhov twv ua ntej thiab tshaj tawm tsab ntawv.

Thawj theem yog txhawm rau thauj tus qauv siv qauv.load (). Theem thib ob yog rov ua dua los ntawm cov thav duab los ntawm pi lub koob yees duab siv opencv thiab tom qab ntawd hloov qhov thav duab mus rau qhov loj ib yam li qhov ntau thiab tsawg siv hauv theem kev qhia, 32 x 32 pixels. Thaum qhov no tau ua tiav qhov kev hloov pauv tshiab tau muab tso los ntawm tus qauv siv qauv.predict () uas tso tawm cov lej, txhua lub ntsiab lus ntawm matrix yog ntab los ntawm 0 txog 1, lub hauv paus ntsiab lus zoo ib yam li chav kawm nws sawv cev, yog li thawj ntu yog chav kawm ib thiab tus lej yog qhov twv ua ntej ntawm qhov tseeb ntawm cov duab los ntawm chav kawm ntawd. Piv txwv li

NCO TSEG: Yog tias koj tsis siv neeg hlau sab. Tsuas yog tshem cov kab:

"ntshuam rospy"

def tham tham (kev taw qhia):

lus = String ()

pub = rospy. Publisher ('neeg hlau', Txoj hlua, queue_size = 10)

rospy.init_node ('tham lus', tsis qhia npe = Muaj tseeb)

lus = kev taw qhia

rospy.loginfo (lus)

pub.publish (message)"

"tham (kev taw qhia)"

Txuas nrog yog Pi lub koob yees duab tsab ntawv.

Kauj ruam 4: Arduino Neeg Hlau

Kauj ruam kawg yog tsab ntawv khoos phis tawj neeg hlau.

Qhov no tau sau hauv C ++ thiab yog.ino cov ntaub ntawv rau arduino uno. Qhov kev zov me nyuam xav tau lub tsev qiv ntawv ros uas tuaj yeem pom hauv tus thawj tswj tsev qiv ntawv hauv lub tswv yim. Thaum qhov no tau xa tawm muaj cov piv txwv cov ntaub ntawv, Kuv tau xaiv los nthuav dav ntawm cov ntawv coj ntsais vim tias qhov no yuav ua lub hom phiaj zoo ib yam rau qhov kuv xav tau. Txoj haujlwm tseem txuas ntxiv mus kom txog thaum lub zog raug txiav tawm, ua ntej nws mloog cov ncauj lus neeg hlau, thaum nws ntes cov lus txib los ntawm lub ncauj lus nws yuav muaj daim ntawv yog tias pom dab tsi cov lus txib hais. Yog hais tias cov lus txib sab laug ces tsab ntawv sau txoj kev tig mus rau sab laug, yog tias cov lus txib yog txoj cai ces nws yuav ua txoj haujlwm tig txoj cai thiab lwm qhov nws yuav ua txoj hauv kev tom ntej. Peb txoj hauv kev no zoo ib yam rau ib leeg, lawv qhia cov koob digital kom yog LOW (hauv av) lossis 100 (PWM) qhov no yog txhawm rau kom tus neeg hlau tsis nrawm dua los ntawm kev qhia tus tsav tsheb kom tsuas yog tso me ntsis ntawm zog tawm. Qhov kev txiav txim ntawm cov txiaj ntsig no yog dab tsi ua rau tus neeg hlau tig mus rau sab laug thiab sab xis lossis mus rau tom ntej, qhov no yog vim kev taw qhia ntawm qhov hluav taws xob mus rau lub cav.

Txuas nrog yog.ino tsab ntawv rau arduino.

Kauj ruam 5: Xeem

Kev Xeem
Kev Xeem
Kev Xeem
Kev Xeem
Kev Xeem
Kev Xeem

Cov Duab txuas nrog yog li qhov haujlwm txij thaum pib kom tiav. Thawj daim duab qhia txog kev qhia ua haujlwm. Thaum uas ua tiav qhov luam tawm ntawm tus qauv ua tau qhia. Daim duab thib peb qhia txog kev twv ua ntej los ntawm tsab ntawv qhia. qhov no yog theem kawg ntawm tsab ntawv qhia. Yog tias koj saib hauv daim nplaub tshev tsab ntawv qhia kev nyob hauv, kab ntawv thiab tus qauv tau ua. Daim duab yuav tsum zoo li daim duab 4 ntawm no, qhov no qhia txog keeb kwm ntawm kev qhia txij thaum pib mus txog thaum kawg.

Cov duab kawg yog thaum khiav cov ntawv pi lub koob yees duab, yog cov kwj tawm los ntawm pi lub koob yees duab. kev twv ua ntej yog ua rau ntawm txhua tus ncej thiab kev twv ua ntej yog luam tawm hauv lub davhlau ya nyob twg. Cov duab qhia pom lub koob yees duab pom dab tsi.

Txuas nrog yog kuv Tsev Kawm Ntawv tsab ntawv ceeb toom rau txoj haujlwm no. Thov nyeem kom paub meej ntxiv ntawm txoj haujlwm.

Kauj Ruam 6: Txhua Cov Ntaub Ntawv Ntxiv

Txhua Cov Ntaub Ntawv Ntxiv
Txhua Cov Ntaub Ntawv Ntxiv

Qee qhov no tau sim cov ntaub ntawv kuv ua raws txoj kev.

Pom zoo: