Innehållsförteckning:

Zombie Detecting Smart Security Owl (Deep Learning): 10 steg (med bilder)
Zombie Detecting Smart Security Owl (Deep Learning): 10 steg (med bilder)

Video: Zombie Detecting Smart Security Owl (Deep Learning): 10 steg (med bilder)

Video: Zombie Detecting Smart Security Owl (Deep Learning): 10 steg (med bilder)
Video: seeing wife face for first time #shorts 2024, November
Anonim

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

Steg 1: Halshuggning
Steg 1: Halshuggning
Steg 1: Halshuggning
Steg 1: Halshuggning
Steg 1: Halshuggning
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

Steg 2: Lägg till Smart
Steg 2: Lägg till Smart
Steg 2: Lägg till Smart
Steg 2: Lägg till Smart
Steg 2: Lägg till Smart
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

Steg 3: Fyll henne
Steg 3: Fyll henne
Steg 3: Fyll henne
Steg 3: Fyll henne
Steg 3: Fyll henne
Steg 3: Fyll henne
Steg 3: Fyll henne
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

Steg 4: Konfigurera Pi
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

Steg 5: Flytta huvudet
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

Steg 6: Making It Hoot
Steg 6: Making It Hoot
Steg 6: Making It Hoot
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

Steg 7: Strömma videon från Pi
Steg 7: Strömma videon från Pi
Steg 7: Strömma videon från Pi
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

Steg 8: Kroppsdetektering
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

Steg 9: Skicka Zombie -aviseringar
Steg 9: Skicka Zombie -aviseringar
Steg 9: Skicka Zombie -aviseringar
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

Vilket fniss!
Vilket fniss!

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: