Innholdsfortegnelse:
- Rekvisita
- Trinn 1: Trinn 1: Halshugger
- Trinn 2: Trinn 2: Legg til Smart
- Trinn 3: Trinn 3: Fyll henne opp
- Trinn 4: Trinn 4: Sett opp Pi
- Trinn 5: Trinn 5: Beveg hodet
- Trinn 6: Trinn 6: Making It Hoot
- Trinn 7: Trinn 7: Stream videoen fra Pi
- Trinn 8: Trinn 8: Kroppsdeteksjon
- Trinn 9: Trinn 9: Sende Zombie -varsler
- Trinn 10: Hva en Hoot
Video: Zombie Detecting Smart Security Owl (Deep Learning): 10 trinn (med bilder)
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:20
Hei alle sammen, velkommen til T3chFlicks! I denne Halloween -opplæringen viser vi deg hvordan vi setter en superhyggelig vri på en dagligdagsk klassiker: sikkerhetskameraet.
Hvordan?! Vi har laget en nattsynugle som bruker bildebehandling for å spore mennesker. Åh, og det tuller, akkurat som den virkelige tingen!
Vi har vært veldig begeistret for dette prosjektet, og vi har ventet på å gjøre det helt siden den nye Raspberry Pi 4 droppet. Den har 4 GB RAM, som åpner døren for mange virkelig spennende muligheter, inkludert bildebehandling med dype læringsmodeller i sanntid.
Hvis du vil holde et øye med kommende zombier på Halloween, eller bare sjekke hagen din resten av året, er dette den for deg. Sikkerhet trenger ikke å være kjedelig for å være effektiv!
Rekvisita
For denne bygningen trenger du:
- Raspberry Pi 4 (4 GB Ram) Amazon
- Nattvisjonskamera Amazon
- Micro Servo Amazon
- Falske ugle Amazon
- Lim Amazon
- Mal Amazon
- Skruer Amazon
- USB -høyttaler Amazon
- Stor (5v+) bærbar strømforsyning Amazon
- 3D -skriver Amazon
Trinn 1: Trinn 1: Halshugger
en. Trekk hodet av uglen (noen ganger må du bare være brutal) ved å trekke hardt i hodet der det festes til fjæren.
b. Uglens hode kobles til kroppen med en sylinder som sitter på toppen av en stor fjær. Fjern denne sylinderen ved å ta ut skruen.
c. Sylinderen du nettopp fjernet er laget av to deler, en plastkopp og et lager som sitter inne i den. Fjern lageret fra sylinderen ved hjelp av en skrutrekker (eller lignende verktøy).
d. Bruk skruen som koblet sylinderen til fjæren, fest servoen til sylinderen.
e. Fjern fjæren ved å skru ut de tre skruene som fester den til kroppen.
f. Lag et hull i toppen av uglens kropp som er stort nok til å passe noen ledninger og kamerakabelen. Vi brukte en uelegant kombinasjon av et bor og en skrutrekker for å gjøre dette.
Trinn 2: Trinn 2: Legg til Smart
en. 3D -utskrift av kamerahuset og male det for å passe til uglen - vi brukte noen billige akrylmaling. Maling er ikke et viktig skritt, men det forbedrer det generelle utseendet dramatisk!
b. Med uglehodet opp ned, skru toppen av kamerahuset inn i hodet, der nebbet stikker ut.
c. Sett kameraet inn i etuiet og koble til kamerakabelen.
d. Lim servoen til topplaten på fjæren.
e. Koble lange ledninger til servostiftene (5V, Gnd, signal)
f. Før kamerakabelen og ledningene til servoen gjennom fjæren og gjennom hullet du laget i toppen av kroppen slik at de er inne i uglens hule kropp.
Trinn 3: Trinn 3: Fyll henne opp
en. Fjern pluggen fra bunnen av uglen og øk størrelsen på dette hullet ved å kutte plasten. Fortsett å øke størrelsen til Raspberry Pi og høyttaleren kan passe inn i uglens kropp.
b. Når hullet er stort nok til at alle komponentene får plass inni, trekker du kamerakabelen som du førte gjennom toppen av uglen ut av basen og kobler den til Raspberry Pi.
c. På samme måte trekker du servoledningene gjennom og kobler dem til Raspberry Pi:
- +5v på servo => +5V på Pi
- Gnd servo => gnd Pi
- Signalservo => pin 12 Pi
d. Koble USB -høyttaleren til Pi.
e. Sett inn SD -kortet i Pi.
f. Strøm Pi ved hjelp av bærbar strømforsyning.
g. Sett Pi, strømforsyning og høyttaler inn i uglen gjennom hullet i basen.
Trinn 4: Trinn 4: Sett opp Pi
ALLE KODEN KAN FINNES PÅ
en. Last ned Raspian og last det opp til SD -kortet ditt ved hjelp av Balena Etcher.
b. For å få tilgang til pi eksternt
- Legg til en fil som heter ssh på boot -SD -kortet
-
Legg til en fil som heter wpa_supplicant.conf og legg inn wifi -legitimasjonen din
ctrl_interface = DIR =/var/run/wpa_supplicant GROUP = netdev update_config = 1
network = {ssid = "MySSID" psk = "MyPassword"}
c. Sett inn SD -kortet i pi og prøv en tilgang via ssh.
Trinn 5: Trinn 5: Beveg hodet
Kodeopplæring for å flytte hodet (kontrollere en servo med en bringebær pi)
For å kontrollere en servo som kjører på Pi, skal vi lage et script som styrer GPIO -pinnene som servoen er koblet til.
en. Koble servoen til Pi:
- +5v på servo => +5V på Pi
- Gnd servo => gnd på Pi
- Signalservo => pin 12 på Pi
b. Du må først sette opp gpio -pinnene for å bruke PWM på signalpinnen til servoen.
c. Deretter er det så enkelt som å velge driftssyklusen (forklart her) for signalpinnen for å flytte servoen fra 90 grader med en driftssyklus på 7,5 til 0 grader når driftssyklusen er 2,5 og til 180 grader med en driftssyklus på 12.5
importer RPi. GPIO som GPIO
importtid GPIO.setmode (GPIO. BOARD) GPIO.setwarnings (False) GPIO.setup (12, GPIO. OUT) p = GPIO. PWM (12, 50) s. start (7.5) prøv: mens True: p. ChangeDutyCycle (7,5) # 90 grader tid. Søvn (1) s. Endring av driftssyklus (2,5) # 0 grader tid. Søvn (1) s. Endring av driftssyklus (12,5) # 180 grader tid. Søvn (1) unntatt tastaturavbrudd: s. Stopp () GPIO.cleanup ()
Trinn 6: Trinn 6: Making It Hoot
Kodeopplæring for å lage uglehodet (spille av lyd med en bringebærpi)
en. Koble til USB -høyttaleren.
b. Last ned en lyd - vi valgte et skummelt tull.
c. Spill lyden ved å kjøre denne kommandoen: omxplayer -o alsa: hw: 1, 0 owl_sound.mp3
[d. Hvis dette ikke fungerer, sjekk hvilken utgang Pi bruker og på hvilket volum ved å bruke kommandoen alsamixer - du vil bli møtt med mikserskjermen hvor du kan endre volumet og velge din medieenhet. For å øke lydstyrken, gjør kommandoen som denne omxplayer -o alsa: hw: 1, 0 owl_sound.mp3 --vol 500 For å spille denne lyden ved hjelp av Python, ta en titt på testskriptet vårt.]
importere delprosessen
command = "omxplayer -o alsa: hw: 1, 0 owl_sound.mp3 --vol 500" player = subprocess. Popen (command.split (''), stdin = subprocess. PIPE, stdout = subprocess. PIPE, stderr = subprocess. RØR)
Trinn 7: Trinn 7: Stream videoen fra Pi
Kodeopplæring for å lage en bringebær pi-kamerastrøm
en. Kjør python app.py og vis på ditt lokale nettverk på https://raspberrypi.local: 5000
b. Denne koden ble tatt og litt tilpasset fra Miguel Grinberg https://blog.miguelgrinberg.com/post/flask-video-… han forklarer pent hvordan det er gjort og opplæringen hans er flott-sjekk ham definitivt! Det grunnleggende konseptet er at vi bruker threading og generatorer for å forbedre strømningshastigheten.
Trinn 8: Trinn 8: Kroppsdeteksjon
Kode for kroppsdeteksjon (ImageNetSSD på en videostrøm med bringebær pi)
en. Siden vi bruker Raspberry Pi 4, tenkte vi at det var best å prøve noen dype læringsmodeller på den i stedet for den grunnleggende HaarCascade -metoden vi har vært begrenset til så langt.
b. Vi så på noen av de forhåndsutdannede modellene der ute, som YOLOv3 som ser superkul ut. YOLOv3 små vekter, som hadde vært perfekt for Pi, men vi kunne ikke få det til å gå:(c. I stedet valgte vi MobileSSD-modellen som vi kan kjøre ved hjelp av openCVs DNN-modul (dype nevrale nett), slik vi lærte av denne koden: https://heartbeat.fritz.ai/real-time-object-detection-on-raspberry -pi-using-opencv-dnn-98827255fa60 og fra helten i opplæringsprogrammer for bildebehandling, Adrian Rosebrock: https://www.pyimagesearch.com/2017/09/11/object-detection-with-deep-learning-and- opencv/
d. Imidlertid, som vi prøver å streame dette innholdet og kjøre modeller på hver ramme, resulterer dette i en forsinket, fragmentert video. Vi lærte igjen av Adrian Rosebrock https://www.pyimagesearch.com/2017/10/16/raspberry-pi-deep-learning-object-detection-with-opencv/ og brukte Python-multiprosesseringsmodulen for å sette bildene våre i køer der de kan behandles uten å blokkere kamerastrømmen så tungt.
e. Prøv å kjøre koden selv:)
Trinn 9: Trinn 9: Sende Zombie -varsler
Kode for å sende et varsel (python til telefon)
en. Vi bestemte oss for å bruke https://pushed.co varslingstjeneste.
b. Du kan få en gratis konto og laste ned appen og veldig raskt bli satt opp med mobilvarsler. Vi opprettet varslene ved hjelp av et python -skript som dette.
importforespørsler
payload = {"app_key": "APP_KEY", "app_secret": "APP_SECRET", "target_type": "app", "content": "Ugle har oppdaget en zombie." } r = requests.post ("https://api.pushed.co/1/push", data = nyttelast)
Det er superenkelt, og du kan tilpasse varselnavnet ditt!
Trinn 10: Hva en Hoot
Vi håper du likte vårt Smart Security Owl -prosjekt! Dette har vært et veldig morsomt merke, og jeg føler meg mye tryggere når jeg vet at huset mitt blir voktet av vår trofaste ugle.
Hvis du tror dette ville være et fantastisk Halloween -tillegg til ditt smarte hjem, kan du stemme på oss i Instructables Halloween -konkurransen, og som vanlig, husk å like, kommentere og abonnere!
Registrer deg på vår adresseliste!
Anbefalt:
Shake Detecting Talking Hat With Circuit Playground Express: 12 trinn (med bilder)
Shake Detecting Talking Hat With Circuit Playground Express: Denne enkle og raske opplæringen lærer deg hvordan du lager en snakkehatt! Det ville svare med et nøye behandlet svar når du 'stiller' et spørsmål, og kanskje kan det hjelpe deg å avgjøre om du har bekymringer eller problemer. I min Wearable Tech -klasse
Pimp Zombie med glødende øyne: 5 trinn (med bilder)
Pimp Zombie med glødende øyne: Lær hvordan du legger LEDer med glødende øyneeffekt til en eksisterende figur. I mitt tilfelle brukte jeg en zombiefigur til Halloween. Dette er ganske enkelt å gjøre og krever ingen avanserte ferdigheter
Owl Prowl: 5 trinn (med bilder)
Owl Prowl: Owl Prowl er et konkurransespill med fire spillere som spilles med alternative kontrollere. De fire spillerne må spille som en uglefigur i spillerommet. Målet deres er å fange flest mus før tiden renner ut. Hver spiller bruker en plysjugle for å kontrollere
Easy Crawling Zombie Hand .: 15 trinn (med bilder)
Easy Crawling Zombie Hand .: Denne instruksjonen trenger ikke sveisepistol. Er trygt for barna å øve på for å lage en enkel krets. Men pass på små gjenstander som kan svelges ved et uhell.Materiell behov: -Vibrasjonsmotor (1,5 ~ 3V, med ledning) -Ledende tape (10 mm, enkeltside, alun
Cyborg Zombie Evolution: 9 trinn (med bilder)
Cyborg Zombie Evolution: Det er velkjent fra dampens alder til steampunkens alder … enten det er kult, skummelt, søtt eller alle tre på samme tid, for å bringe en skapning til liv tar strøm. I tilfelle av denne cyborg -zombien som en enkelt galvanisk celle, kjent som en & q