Innehållsförteckning:
- Tillbehör
- Steg 1: Steg 1: Halshuggning
- Steg 2: Steg 2: Lägg till Smart
- Steg 3: Steg 3: Fyll henne
- Steg 4: Steg 4: Konfigurera Pi
- Steg 5: Steg 5: Flytta huvudet
- Steg 6: Steg 6: Making It Hoot
- Steg 7: Steg 7: Strömma videon från Pi
- Steg 8: Steg 8: Kroppsdetektering
- Steg 9: Steg 9: Skicka Zombie -aviseringar
- Steg 10: Vilken jubel
Video: Zombie Detecting Smart Security Owl (Deep Learning): 10 steg (med bilder)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:37
Hej alla, välkommen till T3chFlicks! I denna Halloween -handledning kommer vi att visa dig hur vi sätter en superhygglig twist på en vardaglig hushållsklassiker: säkerhetskameran.
Hur?! Vi har gjort en mörkerseende som använder bildbehandling för att spåra människor. Åh, och det skrattar, precis som den riktiga saken!
Vi har varit superglada över det här projektet och vi har väntat på att göra det sedan den nya Raspberry Pi 4 släpptes. Den har 4 GB RAM, vilket öppnar dörren för massor av riktigt spännande möjligheter, inklusive bildbehandling med djupa inlärningsmodeller i realtid.
Om du vill hålla utkik efter närmande zombies på Halloween, eller bara kolla din trädgård resten av året, är detta den för dig. Säkerhet behöver inte vara tråkigt för att vara effektivt!
Tillbehör
För detta bygge behöver du:
- Raspberry Pi 4 (4 GB Ram) Amazon
- Night Vision Camera Amazon
- Micro Servo Amazon
- Fake Owl Amazon
- Limma Amazon
- Måla Amazon
- Skruvar Amazon
- USB -högtalare Amazon
- Stor (5v+) bärbar strömförsörjning Amazon
- 3D -skrivare Amazon
Steg 1: Steg 1: Halshuggning
a. Dra av huvudet från ugglan (ibland måste du bara vara brutal) genom att dra hårt i huvudet där det fäster vid fjädern.
b. Ugglans huvud ansluter till kroppen med en cylinder som sitter ovanpå en stor fjäder. Ta bort denna cylinder genom att dra ut skruven.
c. Cylindern du just tog bort är gjord av två delar, en plastkopp och ett lager som sitter inuti den. Ta bort lagret från cylindern med en skruvmejsel (eller liknande verktyg).
d. Använd skruven som kopplade cylindern till fjädern och fäst servon på cylindern.
e. Ta bort fjädern genom att skruva loss de tre skruvarna som håller fast den på kroppen.
f. Gör ett hål i toppen av ugglans kropp som är tillräckligt stort för att passa några ledningar och kamerakabeln. Vi använde en oelegant kombination av en borr och en skruvmejsel för att göra detta.
Steg 2: Steg 2: Lägg till Smart
a. 3D -skriv ut kamerafodralet och måla det för att matcha ugglan - vi använde några billiga akrylfärger. Målning är inte ett viktigt steg, men det förbättrar det övergripande utseendet dramatiskt!
b. Med ugglans huvud upp och ner, skruva fast kamerahöljet på insidan av huvudet, där näbben sticker ut.
c. Sätt i kameran i fodralet och anslut kamerakabeln.
d. Limma servon på den övre panelen på våren.
e. Anslut långa ledningar till servostiften (5V, Gnd, signal)
f. Mata kamerakabeln och kablarna för servon genom fjädern och genom hålet du gjorde i kroppens ovansida så att de är inuti ugglans ihåliga kropp.
Steg 3: Steg 3: Fyll henne
a. Ta bort pluggen från ugglens botten och öka storleken på detta hål genom att klippa av plasten. Fortsätt att öka storleken tills Raspberry Pi och högtalaren kan passa in i ugglans kropp.
b. När hålet är tillräckligt stort för att alla komponenter ska få plats inuti, dra kamerakabeln som du matade genom toppen av ugglan ur basen och anslut den till Raspberry Pi.
c. Dra på samma sätt servotrådarna och anslut dem till Raspberry Pi:
- +5v på servo => +5V på Pi
- Gnd servo => gnd Pi
- Signalservo => stift 12 Pi
d. Anslut USB -högtalaren till Pi.
e. Sätt i SD -kortet i Pi.
f. Power Pi med bärbar strömförsörjning.
g. Sätt in Pi, strömförsörjning och högtalare i ugglan genom hålet i basen.
Steg 4: Steg 4: Konfigurera Pi
ALL KOD KAN FINNAS PÅ
a. Ladda ner Raspian och ladda upp det till ditt SD -kort med Balena Etcher.
b. För att komma åt din pi på distans
- Lägg till en fil som heter ssh till ditt start -SD -kort
-
Lägg till en fil som heter wpa_supplicant.conf och lägg in dina wifi -uppgifter
ctrl_interface = DIR =/var/run/wpa_supplicant GROUP = netdev update_config = 1
nätverk = {ssid = "MySSID" psk = "MyPassword"}
c. Sätt i SD -kortet i pi och försök att komma åt via ssh.
Steg 5: Steg 5: Flytta huvudet
Kodhandledning för att flytta huvudet (styra en servo med en hallon pi)
För att styra en servo som körs på Pi kommer vi att skapa script som styr GPIO -stiften som servon är ansluten till.
a. Anslut servon till Pi:
- +5v på servo => +5V på Pi
- Gnd servo => gnd på Pi
- Signalservo => stift 12 på Pi
b. Du måste först ställa in gpio -stiften för att använda PWM på signalstiften på servon.
c. Sedan är det lika enkelt som att välja driftscykeln (förklarad här) för signalstiftet för att flytta servon från 90 grader med en arbetscykel på 7,5 till 0 grader när arbetscykeln är 2,5 och till 180 grader med en arbetscykel på 12.5
importera 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) försök: medan True: p. ChangeDutyCycle (7,5) # 90 graders tid. Sömn (1) s. ChangeDutyCycle (2,5) # 0 grader tid. Sömn (1) s. Förändringsklass (12,5) # 180 grader tid. Sömn (1) utom tangentbordet Avbrott: s. Stopp () GPIO.cleanup ()
Steg 6: Steg 6: Making It Hoot
Kodhandledning för att göra ugglahoten (spela ljud med en hallon pi)
a. Anslut USB -högtalaren.
b. Ladda ner ett ljud - vi valde en spöklik hoot.
c. Spela ljudet genom att köra detta kommando: omxplayer -o alsa: hw: 1, 0 owl_sound.mp3
[d. Om detta inte fungerar, kontrollera vilken utmatning din Pi använder och på vilken volym med kommandot alsamixer - du kommer att hälsas med mixerskärmen där du kan ändra volymen och välja din medieenhet. För att öka volymen på ditt ljud, gör kommandot så här omxplayer -o alsa: hw: 1, 0 owl_sound.mp3 --vol 500 För att spela detta ljud med Python, ta en titt på vårt testskript.]
importera delprocess
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)
Steg 7: Steg 7: Strömma videon från Pi
Kodhandledning för att skapa en hallon pi-kameraström
a. Kör python app.py och visa på ditt lokala nätverk på https://raspberrypi.local: 5000
b. Den här koden togs och anpassades något från Miguel Grinberg https://blog.miguelgrinberg.com/post/flask-video-… han förklarar fint hur det är gjort och hans självstudier är fantastiska-deffo kolla in honom! Grundkonceptet är att vi använder trådning och generatorer för att förbättra strömningshastigheten.
Steg 8: Steg 8: Kroppsdetektering
Kod för kroppsdetektering (ImageNetSSD på en videoström med hallon pi)
a. Eftersom vi använder Raspberry Pi 4 tyckte vi att det var bäst att testa några djupa inlärningsmodeller på den istället för den grundläggande HaarCascade -metoden som vi hittills har begränsat oss till.
b. Vi tittade på några av de förutbildade modellerna där ute, som YOLOv3 som ser superkul ut. YOLOv3 små vikter, vilket hade varit perfekt för Pi, men vi kunde inte få det att köra:(c. Istället valde vi MobileSSD-modellen som vi kan köra med openCVs DNN (deep neural net) -modul, som vi lärde oss av den här koden: https://heartbeat.fritz.ai/real-time-object-detection-on-raspberry -pi-using-opencv-dnn-98827255fa60 och från hjälten i bildbehandlingshandledning, Adrian Rosebrock: https://www.pyimagesearch.com/2017/09/11/object-detection-with-deep-learning-and- opencv/
d. Men när vi försöker strömma det här innehållet och köra modeller på varje bildram, resulterar detta i en långsam, fragmenterad video. Vi lärde oss igen av Adrian Rosebrock https://www.pyimagesearch.com/2017/10/16/raspberry-pi-deep-learning-object-detection-with-opencv/ och använde Python-multiprocessingsmodulen för att sätta våra bilder i köer där de kan bearbetas utan att blockera kameraströmmen så tungt.
e. Prova att köra koden själv:)
Steg 9: Steg 9: Skicka Zombie -aviseringar
Kod för att skicka ett meddelande (python till telefon)
a. Vi bestämde oss för att använda https://pushed.co aviseringstjänst.
b. Du kan få ett gratis konto och ladda ner appen och snabbt konfigurera mobilaviseringar. Vi skapade aviseringarna med ett python -skript som detta.
importförfrågningar
payload = {"app_key": "APP_KEY", "app_secret": "APP_SECRET", "target_type": "app", "content": "Uggla har upptäckt en zombie." } r = request.post ("https://api.pushed.co/1/push", data = nyttolast)
Det är superenkelt och du kan anpassa ditt aviseringsnamn!
Steg 10: Vilken jubel
Vi hoppas att du gillade vårt Smart Security Owl -projekt! Det här har varit ett superkul märke och jag känner mig mycket säkrare när jag vet att mitt hus skyddas av vår pålitliga uggla.
Om du tycker att detta skulle vara ett fantastiskt Halloween -tillägg till ditt smarta hem, vänligen rösta på oss i Instructables Halloween -tävlingen och kom som vanligt ihåg att gilla, kommentera och prenumerera!
Anmäl dig till vår e -postlista!
Rekommenderad:
DIY WiFi Smart Security Light With Shelly 1: 6 Steg (med bilder)
DIY WiFi Smart Security Light With Shelly 1: Denna instruerbara kommer att titta på att skapa en DIY smart säkerhetsljus med Shelly 1 smart relä från Shelly. Genom att göra ett säkerhetsljus smart kan du ha mycket mer kontroll över när det aktiveras och hur länge det lyser. Det kan vara verkligt
Shake Detecting Talking Hat With Circuit Playground Express: 12 steg (med bilder)
Shake Detecting Talking Hat With Circuit Playground Express: Denna enkla och snabba handledning lär dig hur man gör en talande hatt! Det skulle svara med ett noggrant bearbetat svar när du "ställer" en fråga, och kanske kan det hjälpa dig att avgöra om du har några bekymmer eller problem. I min Wearable Tech -klass har jag
Pimp Zombie med glödande ögon: 5 steg (med bilder)
Pimp Zombie med glödande ögon: Lär dig hur du lägger till lysdioder med glödande ögoneffekt till en befintlig figur. I mitt fall använde jag en zombiefigur för Halloween. Detta är ganska enkelt att göra och kräver inga avancerade färdigheter
Owl Prowl: 5 steg (med bilder)
Owl Prowl: Owl Prowl är ett tävlingsspel med fyra spelare som spelas med alternativa kontroller. De fyra spelarna måste spela som en ugglkaraktär i spelutrymmet. Deras mål är att fånga flest möss innan tiden tar slut. Varje spelare använder en plyschuggla för att bekämpa
Obstacle Detecting Smartphone Operated RoboCar Med Arduino: 5 steg
Obstacle Detecting Smartphone Operated RoboCar Using Arduino: I detta projekt har vi gjort en Robocar där två ultraljudssensorer, en bluetooth -modul har varit ansluten till Arduino