Kazalo:
- Zaloge
- 1. korak: 1. korak: Odsekajte glavo
- 2. korak: 2. korak: dodajte pametno
- 3. korak: 3. korak: Napolnite jo
- 4. korak: 4. korak: Nastavite Pi
- 5. korak: 5. korak: premikanje glave
- Korak 6: Korak 6: Ustvarjanje zagona
- 7. korak: 7. korak: pretočno predvajajte videoposnetek iz Pi
- 8. korak: 8. korak: Odkrivanje telesa
- 9. korak: 9. korak: pošiljanje obvestil o zombijih
- 10. korak: Kakšen hud udarček
Video: Zombie Detecting Smart Security Owl (poglobljeno učenje): 10 korakov (s slikami)
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:02
Pozdravljeni vsi, dobrodošli v T3chFlicks! V tej vadnici za noč čarovnic vam bomo pokazali, kako smo na mondeno gospodinjsko klasiko: varnostno kamero dali super sablastan preobrat.
Kako ?! Naredili smo sovo za nočno opazovanje, ki uporablja obdelavo slik za sledenje ljudem. Oh, in zavija, tako kot prava stvar!
Nad tem projektom smo bili zelo navdušeni in na to smo čakali, vse odkar je padla nova Raspberry Pi 4. Ima 4 GB RAM -a, ki odpira vrata množici resnično vznemirljivih možnosti, vključno z obdelavo slik z modeli globokega učenja v realnem času.
Če želite na noč čarovnic paziti na približevanje zombijev ali pa preostanek leta preverite samo svoj vrt, je to pravi za vas. Varnost ni nujno dolgčas, da bi bila učinkovita!
Zaloge
Za to gradnjo boste potrebovali:
- Raspberry Pi 4 (4 GB RAM) Amazon
- Kamera za nočno opazovanje Amazon
- Mikro servo Amazon
- Lažna sova Amazon
- Lepilo Amazon
- Slikajte Amazon
- Vijaki Amazon
- USB zvočnik Amazon
- Velik (5v+) prenosni napajalnik Amazon
- 3D tiskalnik Amazon
1. korak: 1. korak: Odsekajte glavo
a. Potegnite glavo sovi (včasih morate biti samo brutalni) tako, da jo močno povlečete za glavo, kjer se pritrdi na vzmet.
b. Sovina glava je povezana s telesom z valjem, ki sedi na vrhu velike vzmeti. Odstranite ta valj tako, da odstranite vijak.
c. Cilinder, ki ste ga pravkar odstranili, je sestavljen iz dveh delov, plastične skodelice in ležaja, ki sedi v njej. Odstranite ležaj iz valja z izvijačem (ali podobnim orodjem).
d. Z vijakom, ki je valj povezal z vzmetjo, servo pritrdite na valj.
e. Odstranite vzmet tako, da odvijete tri vijake, ki jo pritrdijo na ohišje.
f. Na vrhu telesa sove naredite luknjo, ki je dovolj velika, da se prilega nekaterim žicam in kablu kamere. Za to smo uporabili neelegantno kombinacijo vrtalnika in izvijača.
2. korak: 2. korak: dodajte pametno
a. 3D natisnite ohišje fotoaparata in ga pobarvajte, da se ujema s sovo - uporabili smo nekaj poceni akrilnih barv. Slikanje ni pomemben korak, vendar bistveno izboljša celoten videz!
b. Z glavo sove glave navzdol privijte zgornji del ohišja fotoaparata v notranjost njegove glave, kjer štrli kljun.
c. Kamero vstavite v ohišje in priključite kabel kamere.
d. Servo prilepite na zgornjo ploščo vzmeti.
e. Priključite dolge žice na servo zatiče (5V, Gnd, signal)
f. Kabel kamere in žice za servo napeljite skozi vzmet in skozi luknjo, ki ste jo naredili na vrhu telesa, tako da sta v votlem telesu sove.
3. korak: 3. korak: Napolnite jo
a. Odstranite čep z dna sove in povečajte velikost te luknje z rezanjem plastike. Še naprej povečujte velikost, dokler se Raspberry Pi in zvočnik ne moreta prilegati v telo sove.
b. Ko je luknja dovolj velika, da se vse komponente lahko namestijo v notranjost, izvlecite kabel kamere, ki ste ga napeljali skozi vrh sove, iz podstavka in ga priključite v Raspberry Pi.
c. Podobno povlecite servo žice in jih priključite v Raspberry Pi:
- +5v na servo => +5V na Pi
- Gnd servo => gnd Pi
- Signalni servo => pin 12 Pi
d. Zvočnik USB priključite v Pi.
e. Vstavite kartico SD v Pi.
f. Power Pi s prenosnim napajalnikom.
g. Pi, napajalnik in zvočnik vstavite v sovo skozi luknjo na dnu.
4. korak: 4. korak: Nastavite Pi
VSE KODO LAHKO NAJDETE NA
a. Prenesite Raspian in ga naložite na kartico SD z uporabo Balene Etcher.
b. Za daljinski dostop do pi
- Na zagonsko SD kartico dodajte datoteko ssh
-
Dodajte datoteko z imenom wpa_supplicant.conf in vnesite poverilnice za wifi
ctrl_interface = DIR =/var/run/wpa_supplicant GROUP = netdev update_config = 1
network = {ssid = "MySSID" psk = "Moja geslo"}
c. Vstavite kartico SD v pi in poskusite dostopati prek ssh.
5. korak: 5. korak: premikanje glave
Koda za premikanje glave (krmiljenje servomotorja z malinovim pi)
Za nadzor servo, ki deluje na Pi, bomo ustvarili skript, ki nadzoruje zatiče GPIO, na katere je servo povezan.
a. Servo priključite na Pi:
- +5v na servo => +5V na Pi
- Gnd servo => gnd na Pi
- Signalni servo => pin 12 na Pi
b. Najprej morate nastaviti zatiče gpio za uporabo PWM na signalnem zatiču servo.
c. Potem je tako preprosto, kot da izberete delovni cikel (razloženo tukaj) signalnega zatiča, da premaknete servo od 90 stopinj z obratovalnim ciklom od 7,5 do 0 stopinj, ko je obratovalni cikel 2,5 in do 180 stopinj z obratovalnim ciklom 12.5
uvozite RPi. GPIO kot GPIO
čas uvoza GPIO.setmode (GPIO. BOARD) GPIO.setwarnings (False) GPIO.setup (12, GPIO. OUT) p = GPIO. PWM (12, 50) p.start (7.5) try: while True: p. ChangeDutyCycle (7,5) # 90 stopinj časa. Spanje (1) str. ChangeDutyCycle (2,5) # 0 stopinj čas. Spanje (1) str. ChangeDutyCycle (12,5) # 180 stopinj čas. Spanje (1) razen KeyboardInterrupt: p.stop () GPIO.cleanup ()
Korak 6: Korak 6: Ustvarjanje zagona
Koda za ustvarjanje sove (predvajanje zvoka z malinovim pi)
a. Priključite zvočnik USB.
b. Prenesite zvok - izbrali smo grozljiv zvok.
c. Predvajajte zvok tako, da zaženete ta ukaz: omxplayer -o alsa: hw: 1, 0 owl_sound.mp3
[d. Če to ne deluje, preverite, kateri izhod uporablja vaš Pi in pri kateri glasnosti z ukazom alsamixer - pozdravil vas bo zaslon mešalnika, kjer lahko spremenite glasnost in izberete svojo medijsko napravo. Če želite povečati glasnost zvoka, naredite ta ukaz omxplayer -o alsa: hw: 1, 0 owl_sound.mp3 --vol 500 Če želite predvajati ta zvok s Pythonom, si oglejte naš testni skript.]
uvozni podproces
command = "omxplayer -o alsa: hw: 1, 0 owl_sound.mp3 --vol 500" player = podproces. Popen (command.split (''), stdin = podproces. PIPE, stdout = podproces. PIPE, stderr = podproces. PIPE)
7. korak: 7. korak: pretočno predvajajte videoposnetek iz Pi
Koda vadnica za ustvarjanje toka kamere maline pi
a. Zaženite python app.py in si oglejte v svojem lokalnem omrežju na naslovu https://raspberrypi.local: 5000
b. Ta koda je bila vzeta in rahlo prilagojena od Miguela Grinberga https://blog.miguelgrinberg.com/post/flask-video-… lepo razlaga, kako je to storjeno, in njegove vaje so odlične-deffo ga preverite! Osnovni koncept je, da uporabljamo navoje in generatorje za izboljšanje hitrosti pretakanja.
8. korak: 8. korak: Odkrivanje telesa
Koda za zaznavanje telesa (ImageNetSSD v video toku z malinovim pi)
a. Ker uporabljamo Raspberry Pi 4, se nam je zdelo najbolje, da namesto osnovne metode HaarCascade, na katero smo bili doslej omejeni, preizkusimo nekaj modelov poglobljenega učenja.
b. Ogledali smo si nekaj vnaprej usposobljenih modelov, kot je YOLOv3, ki izgleda super. Drobne uteži YOLOv3, ki bi bile kot nalašč za Pi, vendar nam tega ni uspelo:(c. Namesto tega smo se odločili za model MobileSSD, ki ga lahko zaženemo z modulom openCVs DNN (globoka nevronska mreža), kot smo izvedeli iz te kode: https://heartbeat.fritz.ai/real-time-object-detection-on-raspberry -pi-using-opencv-dnn-98827255fa60 in od junaka vadnic za obdelavo slik, Adriana Rosebrocka: https://www.pyimagesearch.com/2017/09/11/object-detection-with-deep-learning-and- opencv/
d. Ker pa poskušamo pretakati to vsebino in izvajati modele na vsakem kadru, to povzroči zaostanek, razdrobljen video. Ponovno smo se učili od Adriana Rosebrocka https://www.pyimagesearch.com/2017/10/16/raspberry-pi-deep-learning-object-detection-with-opencv/ in uporabili modul za več procesov Python, da smo naše slike postavili v čakalne vrste kjer jih je mogoče obdelati, ne da bi tako močno blokirali tok kamere.
e. Poskusite sami zagnati kodo:)
9. korak: 9. korak: pošiljanje obvestil o zombijih
Koda za pošiljanje obvestila (python na telefon)
a. Odločili smo se, da bomo uporabili https://pushed.co storitev obveščanja.
b. Lahko dobite brezplačen račun in naložite aplikacijo ter se zelo hitro nastavite na obvestila za mobilne naprave. Obvestila smo ustvarili s skriptom python, kot je ta.
uvozne zahteve
payload = {"app_key": "APP_KEY", "app_secret": "APP_SECRET", "target_type": "app", "content": "Sova je zaznala zombija." } r = requests.post ("https://api.pushed.co/1/push", podatki = koristna obremenitev)
To je zelo preprosto in ime obvestila lahko prilagodite!
10. korak: Kakšen hud udarček
Upamo, da ste uživali v našem projektu Smart Security Owl! To je bilo zelo zabavno in počutim se veliko bolj varno, saj vem, da mojo hišo varuje naša zaupanja vredna sova.
Če menite, da bi to bil čudovit dodatek za noč čarovnic v vašem pametnem domu, vas prosimo, da glasujete za nas na natečaju za noč čarovnic Instructables in kot običajno ne pozabite všečkati, komentirati in se naročiti!
Prijavite se na naš poštni seznam!
Priporočena:
Komplet za učenje Arduino (odprtokoden): 7 korakov (s slikami)
Komplet za učence Arduino (odprtokodni vir): Če ste začetnik v svetu Arduino in se boste naučili Arduina z nekaj praktičnimi izkušnjami, so ta navodila in ta komplet za vas. Ta komplet je tudi dobra izbira za učitelje, ki svoje učence radi na preprost način učijo Arduina.
Oblike: Učenje za vse z Makeyjem Makeyjem: 5 korakov (s slikami)
Oblike: Učenje za vse z Makeyjem Makeyjem: Učitelji poučujejo VSE študente. Včasih mora biti naše učenje odvisno od študenta drugače. Spodaj je primer enostavne lekcije, ki jo lahko ustvarite, da se prepričate, da vsi vaši učenci delajo na osnovnih veščinah. Ta projekt bi dobro deloval
HeadBot-samoizravnalni robot za učenje in doseganje STEM: 7 korakov (s slikami)
HeadBot-samoizravnalni robot za učenje in ozaveščanje o STEM: Headbot-dva metra visok, samo uravnotežujoč se robot-je zamisel ekipe South Eugene Robotics Team (SERT, FRC 2521), konkurenčne srednješolske robotske ekipe v PRVEM Robotics Competition, Eugene, Oregon. Ta priljubljeni robot za ozaveščanje
Owl Prowl: 5 korakov (s slikami)
Owl Prowl: Owl Prowl je tekmovalna igra za štiri igralce, ki se igra z alternativnimi krmilniki. Štirje igralci morajo igrati kot sova v igralnem prostoru. Njihov cilj je ujeti največ miši, preden zmanjka časa. Vsak igralec uporablja plišasto sovo za nadaljevanje
Circuit Learn NANO: eno tiskano vezje. Enostaven za učenje. Neskončne možnosti .: 12 korakov (s slikami)
Circuit Learn NANO: eno tiskano vezje. Enostaven za učenje. Neskončne možnosti. Začetek v svetu elektronike in robotike je lahko sprva precej zastrašujoč. Na začetku se morate naučiti veliko stvari (načrtovanje vezja, spajkanje, programiranje, izbira pravih elektronskih komponent itd.) In ko gre kaj narobe