Obsah:

Zombie Detection Smart Security Owl (Deep Learning): 10 kroků (s obrázky)
Zombie Detection Smart Security Owl (Deep Learning): 10 kroků (s obrázky)

Video: Zombie Detection Smart Security Owl (Deep Learning): 10 kroků (s obrázky)

Video: Zombie Detection Smart Security Owl (Deep Learning): 10 kroků (s obrázky)
Video: TÝDENNÍ PODIVNÉ ZPRÁVY - UFO - Paranormální jevy - Vesmír - Okrajová Věda 2024, Listopad
Anonim

Ahoj všichni, vítejte na T3chFlicks! V tomto halloweenském tutoriálu vám ukážeme, jak jsme na světskou klasiku domácnosti: bezpečnostní kameru vložili super strašidelný zvrat.

Jak?! Vytvořili jsme sovu pro noční vidění, která ke zpracování lidí využívá zpracování obrazu. A hučí, stejně jako skutečná věc!

Z tohoto projektu jsme byli nadšení a čekali jsme na něj od chvíle, kdy nový Raspberry Pi 4 upustil. Má 4 GB RAM, což otevírá dveře spoustě opravdu vzrušujících možností, včetně zpracování obrazu pomocí modelů hlubokého učení v reálném čase.

Pokud si chcete dávat pozor na blížící se zombie na Halloween, nebo si jen po zbytek roku prohlížet zahradu, je to pro vás to pravé. Zabezpečení nemusí být nudné, aby bylo účinné!

Zásoby

Pro toto sestavení budete potřebovat:

  • Raspberry Pi 4 (4 GB RAM) Amazon
  • Kamera pro noční vidění Amazon
  • Micro Servo Amazon
  • Falešná sova Amazon
  • Lepidlo Amazon
  • Malovat Amazon
  • Šrouby Amazon
  • USB reproduktor Amazon
  • Velký (5v+) přenosný napájecí zdroj Amazon
  • 3D tiskárna Amazon

Krok 1: Krok 1: Dekapitujte

Krok 1: Dekapitujte
Krok 1: Dekapitujte
Krok 1: Dekapitujte
Krok 1: Dekapitujte
Krok 1: Dekapitujte
Krok 1: Dekapitujte

A. Vytáhněte hlavu ze sovy (někdy prostě musíte být brutální) silným zatažením za hlavu, kde se přichytí k prameni.

b. Hlava sovy je spojena s tělem pomocí válce, který sedí na vrcholu velké pružiny. Vyjměte tento válec vytažením šroubu.

C. Válec, který jste právě odstranili, je vyroben ze dvou částí, plastového kelímku a ložiska, které je uvnitř. Vyjměte ložisko z válce pomocí šroubováku (nebo podobného nástroje).

d. Pomocí šroubu, který spojoval válec s pružinou, připevněte servo k válci.

E. Vyjměte pružinu odšroubováním tří šroubů, které ji připevňují k tělu.

F. V horní části těla sovy vytvořte otvor, který je dostatečně velký, aby se do něj vešly dráty a kabel kamery. K tomu jsme použili neelegantní kombinaci vrtačky a šroubováku.

Krok 2: Krok 2: Přidejte Smart

Krok 2: Přidejte Smart
Krok 2: Přidejte Smart
Krok 2: Přidejte Smart
Krok 2: Přidejte Smart
Krok 2: Přidejte Smart
Krok 2: Přidejte Smart

A. 3D vytiskněte pouzdro na fotoaparát a namalujte jej tak, aby odpovídalo sovičce - použili jsme levné akrylové barvy. Malování není zásadní krok, ale dramaticky zlepšuje celkový vzhled!

b. Sovou hlavou vzhůru nohama zašroubujte horní část pouzdra fotoaparátu do vnitřní části hlavy, kde vyčnívá zobák.

C. Vložte kameru do pouzdra a připojte kabel kamery.

d. Přilepte servo k hornímu panelu pružiny.

E. Připojte dlouhé vodiče k pinům serv (5V, Gnd, signál)

F. Protáhněte kabel kamery a vodiče pro servo pružinou a otvorem, který jste vytvořili v horní části těla, aby byly uvnitř dutého těla sovy.

Krok 3: Krok 3: Naplňte ji

Krok 3: Naplňte ji
Krok 3: Naplňte ji
Krok 3: Naplňte ji
Krok 3: Naplňte ji
Krok 3: Naplňte ji
Krok 3: Naplňte ji
Krok 3: Naplňte ji
Krok 3: Naplňte ji

A. Vyjměte zátku ze spodní části sovy a zvětšte velikost tohoto otvoru řezáním plastu. Pokračujte ve zvětšování velikosti, dokud se Raspberry Pi a reproduktor nevejdou do těla sovy.

b. Jakmile je otvor dostatečně velký, aby se dovnitř vešly všechny součásti, vytáhněte kabel kamery, který jste přiváděli skrz horní část sovy, ze základny a zapojte jej do Raspberry Pi.

C. Podobně protáhněte vodiče serva a zapojte je do Raspberry Pi:

  • +5v na servo => +5V na Pi
  • Gnd servo => gnd Pi
  • Servo signálu => pin 12 Pi

d. Připojte reproduktor USB k Pi.

E. Vložte kartu SD do Pi.

F. Napájení Pi pomocí přenosného napájecího zdroje.

G. Vložte Pi, napájecí zdroj a reproduktor do sovy otvorem v základně.

Krok 4: Krok 4: Nastavte Pi

Krok 4: Nastavte Pi
Krok 4: Nastavte Pi

VŠECHNY KÓDY NAJDETE NA

A. Stáhněte si Raspian a nahrajte jej na SD kartu pomocí Balena Etcher.

b. Vzdálený přístup k pi

  • Přidejte soubor s názvem ssh na spouštěcí sd kartu
  • Přidejte soubor s názvem wpa_supplicant.conf a vložte své přihlašovací údaje pro wifi

    ctrl_interface = DIR =/var/run/wpa_supplicant GROUP = netdev update_config = 1

    network = {ssid = "MySSID" psk = "MyPassword"}

C. Vložte kartu SD do pí a zkuste přístup přes ssh.

Krok 5: Krok 5: Pohyb hlavy

Krok 5: Pohyb hlavy
Krok 5: Pohyb hlavy

Kurz kódu pro pohyb hlavy (ovládání serva s malinovým pi)

Abychom mohli ovládat servo běžící na Pi, vytvoříme skript, který ovládá piny GPIO, ke kterým je servo připojeno.

A. Připojte servo k Pi:

  • +5 V na servu => +5 V na Pi
  • Gnd servo => gnd na Pi
  • Servo signálu => pin 12 na Pi

b. Nejprve musíte nastavit piny gpio, aby používaly PWM na signálním pinu serva.

C. Pak je to tak jednoduché, jako vybrat pracovní cyklus (zde vysvětleno) signálního kolíku pro přesunutí serva z 90 stupňů s pracovním cyklem 7,5 až 0 stupňů, když je pracovní cyklus 2,5, a na 180 stupňů s pracovním cyklem 12.5

importujte RPi. GPIO jako GPIO

doba importu 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 stupňů čas.spánek (1) p. ChangeDutyCycle (2,5) # 0 stupňů čas.spánek (1) p. ChangeDutyCycle (12,5) # 180 stupňů čas.spánek (1) kromě KeyboardInterrupt: p.stop () GPIO.cleanup ()

Krok 6: Krok 6: Making It Hoot

Krok 6: Tvorba
Krok 6: Tvorba
Krok 6: Tvorba
Krok 6: Tvorba

Tutoriál kódu pro výrobu houkání sovy (přehrávání zvuku s malinovým pi)

A. Připojte reproduktor USB.

b. Stáhněte si zvuk - vybrali jsme strašidelný hukot.

C. Přehrajte zvuk spuštěním tohoto příkazu: omxplayer -o alsa: hw: 1, 0 owl_sound.mp3

[d. Pokud to nefunguje, zkontrolujte, jaký výstup váš Pi používá a na jaké hlasitosti pomocí příkazu alsamixer - přivítá vás obrazovka mixu, kde můžete změnit hlasitost a vybrat své mediální zařízení. Chcete -li zvýšit hlasitost zvuku, proveďte příkaz jako tento omxplayer -o alsa: hw: 1, 0 owl_sound.mp3 --vol 500 Chcete -li tento zvuk přehrát pomocí Pythonu, podívejte se na náš testovací skript.]

importní podproces

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. TRUBKA)

Krok 7: Krok 7: Streamujte video z Pi

Krok 7: Streamujte video z Pi
Krok 7: Streamujte video z Pi
Krok 7: Streamujte video z Pi
Krok 7: Streamujte video z Pi

Tutoriál k vytvoření streamu malinové pi kamery

A. Spusťte python app.py a zobrazte ve své místní síti na adrese https://raspberrypi.local: 5000

b. Tento kód byl převzat a mírně upraven od Miguela Grinberga https://blog.miguelgrinberg.com/post/flask-video-… pěkně vysvětluje, jak se to dělá, a jeho návody jsou skvělé-podívejte se na něj! Základní koncept spočívá v tom, že ke zvýšení rychlosti streamování používáme vlákna a generátory.

Krok 8: Krok 8: Detekce těla

Krok 8: Detekce těla
Krok 8: Detekce těla

Kód pro detekci těla (ImageNetSSD ve video streamu s malinovým pi)

A. Protože používáme Raspberry Pi 4, řekli jsme si, že je nejlepší vyzkoušet na něm některé modely hlubokého učení namísto základní metody HaarCascade, na kterou jsme byli dosud omezeni.

b. Podívali jsme se na některé z předem vycvičených modelů, jako je YOLOv3, který vypadá super. Malé váhy YOLOv3, které by byly pro Pi ideální, ale nemohli jsme je spustit:(C. Místo toho jsme se rozhodli pro model MobileSSD, který můžeme spustit pomocí modulu openCVs DNN (hluboká neurální síť), jak jsme se dozvěděli z tohoto kódu: https://heartbeat.fritz.ai/real-time-object-detection-on-raspberry -pi-using-opencv-dnn-98827255fa60 a od hrdiny tutoriálů pro zpracování obrázků, Adriana Rosebrocka: https://www.pyimagesearch.com/2017/09/11/object-detection-with-deep-learning-and- opencv/

d. Protože se však snažíme streamovat tento obsah a spouštět modely na každém snímku, výsledkem je zpožděné fragmentované video. Znovu jsme se naučili od Adriana Rosebrocka https://www.pyimagesearch.com/2017/10/16/raspberry-pi-deep-learning-object-detection-with-opencv/ a pomocí modulu Python multiprocessing jsme umístili naše obrázky do front kde je lze zpracovat, aniž by byl tak silně blokován stream kamery.

E. Zkuste spustit kód sami:)

Krok 9: Krok 9: Odesílání oznámení o zombie

Krok 9: Odesílání oznámení o zombie
Krok 9: Odesílání oznámení o zombie
Krok 9: Odesílání oznámení o zombie
Krok 9: Odesílání oznámení o zombie

Kód pro odeslání oznámení (python na telefon)

A. Rozhodli jsme se použít službu upozornění

b. Můžete získat bezplatný účet a stáhnout si aplikaci a opravdu rychle se připravit na vytváření mobilních oznámení. Oznámení jsme vytvořili pomocí skriptu pythonu takto.

importovat žádosti

payload = {"app_key": "APP_KEY", "app_secret": "APP_SECRET", "target_type": "app", "content": "Sova detekovala zombie." } r = requests.post ("https://api.pushed.co/1/push", data = užitečné zatížení)

Je to velmi jednoduché a název oznámení si můžete přizpůsobit!

Krok 10: What a Hoot

Co houkání!
Co houkání!

Doufáme, že se vám náš projekt Smart Security Owl líbil! Tohle byla super zábava a cítím se mnohem bezpečněji, když vím, že můj dům střeží naše důvěryhodná sova.

Pokud si myslíte, že by to byl báječný halloweenský doplněk vaší chytré domácnosti, hlasujte pro nás v halloweenské soutěži Instructables a jako obvykle nezapomeňte lajkovat, komentovat a odebírat!

Zaregistrujte se do našeho seznamu adresátů!

Doporučuje: