Obsah:

Inteligentná bezpečnostná sova zisťujúca zombie (hlboké učenie): 10 krokov (s obrázkami)
Inteligentná bezpečnostná sova zisťujúca zombie (hlboké učenie): 10 krokov (s obrázkami)

Video: Inteligentná bezpečnostná sova zisťujúca zombie (hlboké učenie): 10 krokov (s obrázkami)

Video: Inteligentná bezpečnostná sova zisťujúca zombie (hlboké učenie): 10 krokov (s obrázkami)
Video: EZVIZ EB8 4G - Make 360° protection portable and reliable 2024, November
Anonim

Ahoj všetci, vitajte na T3chFlicks! V tomto halloweenskom tutoriáli vám ukážeme, ako sme super strašidelne skomplikovali svetskú klasiku pre domácnosť: bezpečnostnú kameru.

Ako ?! Vytvorili sme sovu nočného videnia, ktorá na spracovanie ľudí používa spracovanie obrazu. A hukot, rovnako ako skutočná vec!

Z tohto projektu sme boli nadšení a čakali sme na to od chvíle, keď nový Raspberry Pi 4 vypadol. Má 4 GB RAM, čo otvára dvere mnohým skutočne vzrušujúcim možnostiam, vrátane spracovania obrazu s modelmi hlbokého učenia v reálnom čase.

Ak chcete dávať pozor na blížiace sa zombie na Halloween alebo si len po zvyšok roka pozrieť svoju záhradu, je to pre vás to pravé. Zabezpečenie nemusí byť nudné, aby bolo účinné!

Zásoby

Na túto stavbu budete potrebovať:

  • Raspberry Pi 4 (4 GB RAM) Amazon
  • Kamera na nočné videnie Amazon
  • Micro Servo Amazon
  • Falošná sova Amazon
  • Lepidlo Amazon
  • Maľovať Amazon
  • Skrutky Amazon
  • USB reproduktor Amazon
  • Veľký (5v+) prenosný napájací zdroj Amazon
  • 3D tlačiareň 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. Vytiahnite hlavu zo sovy (niekedy musíte byť jednoducho brutálni) silným ťahaním za hlavu v mieste, kde sa prichytí k pružine.

b. Hlava sovy je spojená s telom pomocou valca, ktorý je umiestnený na vrchole veľkej pružiny. Odstráňte tento valec vytiahnutím skrutky.

c. Valec, ktorý ste práve vybrali, je vyrobený z dvoch častí, plastového pohára a ložiska, ktoré je vnútri. Odstráňte ložisko z valca pomocou skrutkovača (alebo podobného nástroja).

d. Pomocou skrutky, ktorá spájala valec s pružinou, pripevnite servo k valcu.

e. Odstráňte pružinu odskrutkovaním troch skrutiek, ktoré ju pripevňujú k telu.

f. V hornej časti tela sovy urobte otvor, ktorý je dostatočne veľký, aby sa do neho zmestili niektoré káble a kábel kamery. Na to sme použili neelegantnú kombináciu vŕtačky a skrutkovača.

Krok 2: Krok 2: Pridajte Smart

Krok 2: Pridajte Smart
Krok 2: Pridajte Smart
Krok 2: Pridajte Smart
Krok 2: Pridajte Smart
Krok 2: Pridajte Smart
Krok 2: Pridajte Smart

a. 3D vytlačte puzdro na fotoaparát a namaľujte ho tak, aby zodpovedalo sove - použili sme lacné akrylové farby. Maľovanie nie je zásadným krokom, ale dramaticky zlepšuje celkový vzhľad!

b. Hlavu sovy hore nohami zaskrutkujte hornú časť puzdra fotoaparátu do vnútornej časti hlavy, kde vyčnieva zobák.

c. Vložte kameru do puzdra a pripojte kábel kamery.

d. Prilepte servo k hornému panelu pružiny.

e. Pripojte dlhé vodiče k kolíkom serva (5 V, GND, signál)

f. Kábel a káble kamery k servu prevlečte pružinou a otvorom, ktorý ste urobili v hornej časti tela, aby boli v dutom tele sovy.

Krok 3: Krok 3: Naplňte ju

Krok 3: Naplňte ju
Krok 3: Naplňte ju
Krok 3: Naplňte ju
Krok 3: Naplňte ju
Krok 3: Naplňte ju
Krok 3: Naplňte ju
Krok 3: Naplňte ju
Krok 3: Naplňte ju

a. Odstráňte zátku zo spodnej časti sovy a rozrezaním plastu zväčšite veľkosť tohto otvoru. Pokračujte vo zvyšovaní veľkosti, kým sa Raspberry Pi a reproduktor nezmestia do tela sovy.

b. Akonáhle je otvor dostatočne veľký na to, aby sa do neho zmestili všetky súčiastky, vytiahnite kábel kamery, ktorý ste previedli vrchom sovy, zo základne a zapojte ho do Raspberry Pi.

c. Podobne prevlečte servo vodiče a zapojte ich do Raspberry Pi:

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

d. Pripojte USB reproduktor k Pi.

e. Vložte kartu SD do Pi.

f. Napájajte Pi pomocou prenosného napájania.

g. Cez otvor v základni vložte Pi, napájací zdroj a reproduktor do sovy.

Krok 4: Krok 4: Nastavte Pi

Krok 4: Nastavte Pi
Krok 4: Nastavte Pi

VŠETKÝ KÓD NALEZNETE NA

a. Stiahnite si Raspian a nahrajte ho na svoju SD kartu pomocou Balena Etcher.

b. Vzdialený prístup k vášmu pí

  • Pridajte súbor s názvom ssh na svoju boot SD kartu
  • Pridajte súbor s názvom wpa_supplicant.conf a zadajte svoje poverenia wifi

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

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

c. Vložte kartu SD do pí a vyskúšajte si prístup pomocou ssh.

Krok 5: Krok 5: Pohyb hlavy

Krok 5: Pohyb hlavy
Krok 5: Pohyb hlavy

Kurz kódu pre pohyb hlavy (ovládanie serva s malinovým pi)

Na ovládanie serva bežiaceho na Pi vytvoríme skript, ktorý ovláda piny GPIO, ku ktorým je servo pripojené.

a. Pripojte servo k Pi:

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

b. Najprv musíte nastaviť kolíky gpio, aby používali PWM na signálnom kolíku serva.

c. Potom je také jednoduché ako výber pracovného cyklu (vysvetlený tu) signálneho kolíka presunúť servo z 90 stupňov s pracovným cyklom 7,5 až 0 stupňov, keď je pracovný cyklus 2,5, a do 180 stupňov s pracovným cyklom 12.5

importujte RPi. GPIO ako GPIO

import time 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ňov času.spánok (1) p. ChangeDutyCycle (2,5) # 0 stupňov času.spánok (1) p. ChangeDutyCycle (12,5) # 180 stupňov času.spánok (1) okrem prerušenia klávesnice: p.stop () GPIO.cleanup ()

Krok 6: Krok 6: Rozbúrenie

Krok 6: Vytvorenie hukotu
Krok 6: Vytvorenie hukotu
Krok 6: Vytvorenie hukotu
Krok 6: Vytvorenie hukotu

Tutoriál o kóde na výrobu sovy (prehrávanie zvuku s malinovým pi)

a. Pripojte reproduktor USB.

b. Stiahnite si zvuk - vybrali sme strašidelné hukot.

c. Prehrajte zvuk spustením tohto príkazu: omxplayer -o alsa: hw: 1, 0 owl_sound.mp3

[d. Ak to nefunguje, skontrolujte, aký výstup používa váš Pi a pri akej hlasitosti pomocou príkazu alsamixer - privíta vás obrazovka mixéra, kde môžete zmeniť hlasitosť a vybrať svoje mediálne zariadenie. Ak chcete zvýšiť hlasitosť svojho zvuku, urobte to takto: omxplayer -o alsa: hw: 1, 0 owl_sound.mp3 --vol 500 Ak chcete tento zvuk prehrať pomocou jazyka Python, pozrite sa 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. RÚRA)

Krok 7: Krok 7: Streamujte video z počítača 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 kódu pri vytváraní streamu kamery Raspberry Pi

a. Spustite python app.py a zobrazte ho vo svojej miestnej sieti na adrese https://raspberrypi.local: 5000

b. Tento kód bol prevzatý a mierne upravený od Miguela Grinberga https://blog.miguelgrinberg.com/post/flask-video-… pekne vysvetľuje, ako sa to robí, a jeho návody sú skvelé-pozrite sa na neho! Základný koncept je, že na zvýšenie rýchlosti streamovania používame vlákna a generátory.

Krok 8: Krok 8: Detekcia tela

Krok 8: Detekcia tela
Krok 8: Detekcia tela

Kód na detekciu tela (ImageNetSSD vo video streame s malinou pi)

a. Pretože používame Raspberry Pi 4, mysleli sme si, že je najlepšie vyskúšať na ňom niektoré modely hlbokého učenia namiesto základnej metódy HaarCascade, na ktorú sme boli doteraz obmedzovaní.

b. Pozreli sme sa na niektoré z vopred vycvičených modelov, napríklad YOLOv3, ktorý vyzerá super. Malé závažia YOLOv3, ktoré by boli perfektné pre Pi, ale nemohli sme ho spustiť:(c. Namiesto toho sme sa rozhodli pre model MobileSSD, ktorý môžeme spustiť pomocou modulu openCVs DNN (hlboká neurálna sieť), ako sme sa dozvedeli z tohto kódu: https://heartbeat.fritz.ai/real-time-object-detection-on-raspberry -pi-using-opencv-dnn-98827255fa60 a od hrdinu návodov na spracovanie obrazu, Adriana Rosebrocka: https://www.pyimagesearch.com/2017/09/11/object-detection-with-deep-learning-and- opencv/

d. Keďže sa však pokúšame streamovať tento obsah a spúšťať modely na každom snímke, výsledkom je oneskorené fragmentované video. Opäť sme sa poučili od Adriana Rosebrocka https://www.pyimagesearch.com/2017/10/16/raspberry-pi-deep-learning-object-detection-with-opencv/ a na vloženie našich obrázkov do frontov sme použili multiprocesový modul Python kde ich možno spracovať bez toho, aby ste tak silno blokovali stream z kamery.

e. Skúste spustiť kód sami:)

Krok 9: Krok 9: Odosielanie upozornení na zombie

Krok 9: Odosielanie upozornení na zombie
Krok 9: Odosielanie upozornení na zombie
Krok 9: Odosielanie upozornení na zombie
Krok 9: Odosielanie upozornení na zombie

Kód na odoslanie oznámenia (python do telefónu)

a. Rozhodli sme sa použiť službu upozornení

b. Môžete získať bezplatný účet a stiahnuť si aplikáciu a naozaj rýchlo sa nastaviť tak, aby ste mohli robiť mobilné oznámenia. Oznámenia sme vytvorili pomocou tohto skriptu pythonu.

žiadosti o import

payload = {"app_key": "APP_KEY", "app_secret": "APP_SECRET", "target_type": "app", "content": "Sova zistila zombie." } r = requests.post ("https://api.pushed.co/1/push", data = užitočné zaťaženie)

Je to veľmi jednoduché a názov oznámenia si môžete prispôsobiť!

Krok 10: Aký hukot

Čo hukot!
Čo hukot!

Dúfame, že sa vám náš projekt Smart Security Owl páčil! Bola to super zábavná výroba a cítim sa oveľa bezpečnejšie, keď viem, že môj dom stráži naša verná sova.

Ak si myslíte, že by to bol báječný halloweensky doplnok do vašej inteligentnej domácnosti, hlasujte za nás v halloweenskej súťaži Instructables a ako obvykle nezabudnite lajkovať, komentovať a prihlásiť sa na odber!

Zaregistrujte sa do nášho zoznamu adries!

Odporúča: