Sadržaj:

Zombi otkrivanje pametne sigurnosne sove (duboko učenje): 10 koraka (sa slikama)
Zombi otkrivanje pametne sigurnosne sove (duboko učenje): 10 koraka (sa slikama)

Video: Zombi otkrivanje pametne sigurnosne sove (duboko učenje): 10 koraka (sa slikama)

Video: Zombi otkrivanje pametne sigurnosne sove (duboko učenje): 10 koraka (sa slikama)
Video: DEEPEST DIVE into the MM Finance ecosystem [CRYPTO ANALYSIS] 2024, Studeni
Anonim

Pozdrav svima, dobrodošli u T3chFlicks! U ovom vodiču za Noć vještica pokazat ćemo vam kako stavljamo super sablasni obrat na mondenski klasik u kućanstvu: sigurnosnu kameru.

Kako?! Napravili smo sovu za noćno gledanje koja koristi obradu slike za praćenje ljudi. Oh, i huji, baš kao prava stvar!

Bili smo jako uzbuđeni zbog ovog projekta i čekali smo da to učinimo otkad je nova Raspberry Pi 4 pala. Ima 4 GB RAM -a, što otvara vrata hrpi zaista uzbudljivih mogućnosti, uključujući i obradu slike s modelima dubokog učenja u stvarnom vremenu.

Ako želite pripaziti na približavanje zombija na Noć vještica, ili samo provjerite svoj vrt tijekom cijele godine, ovo je onaj za vas. Zaštita ne mora biti dosadna da bi bila učinkovita!

Pribor

Za ovu izgradnju trebat će vam:

  • Raspberry Pi 4 (4 GB RAM -a) Amazon
  • Kamera za noćni vid Amazon
  • Mikro servo Amazon
  • Lažna sova Amazon
  • Ljepilo Amazon
  • Obojite Amazon
  • Vijci Amazon
  • USB zvučnik Amazon
  • Veliko (5v+) prijenosno napajanje Amazon
  • 3D pisač Amazon

Korak 1: Korak 1: Odsecite glavu

Korak 1: Odsecite glavu
Korak 1: Odsecite glavu
Korak 1: Odsecite glavu
Korak 1: Odsecite glavu
Korak 1: Odsecite glavu
Korak 1: Odsecite glavu

a. Odvucite glavu od sove (ponekad samo morate biti brutalni) snažno je povući za glavu gdje se pričvršćuje za oprugu.

b. Sovina glava povezana je s tijelom pomoću cilindra koji se nalazi na vrhu velike opruge. Uklonite ovaj cilindar izvlačenjem vijka.

c. Cilindar koji ste upravo uklonili sastoji se od dva dijela, plastične čaše i ležaja koji se nalazi unutar njega. Uklonite ležaj s cilindra odvijačem (ili sličnim alatom).

d. Pomoću vijka koji je spojio cilindar s oprugom pričvrstite servo na cilindar.

e. Uklonite oprugu odvrtanjem tri vijka koji je pričvršćuju za tijelo.

f. Napravite rupu na vrhu tijela sove koja je dovoljno velika da stane na neke žice i kabel kamere. Za to smo upotrijebili neelegantnu kombinaciju bušilice i odvijača.

Korak 2: Korak 2: Dodajte pametno

Korak 2: Dodajte Smart
Korak 2: Dodajte Smart
Korak 2: Dodajte Smart
Korak 2: Dodajte Smart
Korak 2: Dodajte Smart
Korak 2: Dodajte Smart

a. 3D ispišite kućište fotoaparata i obojite ga tako da odgovara sovi - koristili smo neke jeftine akrilne boje. Slikanje nije bitan korak, ali dramatično poboljšava cjelokupni izgled!

b. S glavom sove naopako, zavrnite vrh kućišta kamere u unutarnju stranu glave, gdje kljun strši.

c. Stavite kameru u kućište i spojite kabel kamere.

d. Zalijepite servo na gornju ploču opruge.

e. Spojite duge žice na servo pinove (5V, Gnd, signal)

f. Provucite kabel i žice kamere za servo kroz oprugu i kroz rupu koju ste napravili na vrhu tijela tako da se nalaze unutar šupljeg tijela sove.

Korak 3: Korak 3: Napunite je

Korak 3: Napunite je
Korak 3: Napunite je
Korak 3: Napunite je
Korak 3: Napunite je
Korak 3: Napunite je
Korak 3: Napunite je
Korak 3: Napunite je
Korak 3: Napunite je

a. Izvadite utikač s dna sove i povećajte veličinu ove rupe rezanjem plastike. Nastavite povećavati veličinu dok Raspberry Pi i zvučnik ne stanu u tijelo sove.

b. Kad rupa postane dovoljno velika da sve komponente stanu unutra, izvucite kabel kamere koji ste provukli kroz vrh sove iz baze i priključite ga u Raspberry Pi.

c. Slično, provucite servo žice i uključite ih u Raspberry Pi:

  • +5v na servo => +5V na Pi
  • Gnd servo => gnd Pi
  • Servo signala => pin 12 Pi

d. Priključite USB zvučnik u Pi.

e. Umetnite SD karticu u Pi.

f. Power Pi pomoću prijenosnog napajanja.

g. Umetnite Pi, izvor napajanja i zvučnik u sovu kroz otvor na bazi.

Korak 4: Korak 4: Postavite Pi

Korak 4: Postavite Pi
Korak 4: Postavite Pi

SVI KOD MOŽETE NAĆI NA

a. Preuzmite Raspian i prenesite ga na svoju SD karticu koristeći Balena Etcher.

b. Za daljinski pristup vašem pi

  • Dodajte datoteku ssh na boot sd karticu
  • Dodajte datoteku pod nazivom wpa_supplicant.conf i unesite svoje vjerodajnice za WiFi

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

    network = {ssid = "MySSID" psk = "Moja lozinka"}

c. Umetnite SD karticu u pi i pokušajte pristupiti putem ssh -a.

Korak 5: Korak 5: Pomicanje glave

Korak 5: Pomicanje glave
Korak 5: Pomicanje glave

Kodirani vodič za pomicanje glave (upravljanje servo pogonom s malinom pi)

Kako bismo kontrolirali servo koji radi na Pi, stvorit ćemo skriptu koja kontrolira GPIO pinove na koje je servo povezan.

a. Spojite servo na Pi:

  • +5v na servo => +5V na Pi
  • Gnd servo => gnd na Pi
  • Servo signala => pin 12 na Pi

b. Najprije morate postaviti gpio pinove za upotrebu PWM -a na signalnom pinu servo -a.

c. Zatim je jednostavno poput odabira radnog ciklusa (objašnjeno ovdje) signalnog pina pomaknuti servo s 90 stupnjeva s radnim ciklusom od 7,5 do 0 stupnjeva kada je radni ciklus 2,5 i na 180 stupnjeva s radnim ciklusom od 12.5

uvezite RPi. GPIO kao GPIO

vrijeme uvoza 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 stupnjeva vrijeme.spavanje (1) p. ChangeDutyCycle (2.5) # 0 stupnjeva vrijeme.spavanje (1) p. ChangeDutyCycle (12.5) # 180 stupnjeva vrijeme.spavanje (1) osim KeyboardInterrupt: p.stop () GPIO.cleanup ()

Korak 6: Korak 6: Učinite to učvršćenim

Korak 6: Učinite to učvršćenim
Korak 6: Učinite to učvršćenim
Korak 6: Učinite to učvršćenim
Korak 6: Učinite to učvršćenim

Kodirani vodič za stvaranje sove hoot (reprodukcija zvuka s malinom pi)

a. Priključite USB zvučnik.

b. Preuzmite zvuk - odabrali smo sablasni zvuk.

c. Reproducirajte zvuk pokretanjem ove naredbe: omxplayer -o alsa: hw: 1, 0 owl_sound.mp3

[d. Ako to ne uspije, pomoću naredbe alsamixer provjerite koji izlaz koristi vaš Pi i na kojoj glasnoći - dočekat će vas zaslon miksera na kojem možete promijeniti glasnoću i odabrati svoj medijski uređaj. Da biste povećali glasnoću zvuka, učinite ovu naredbu omxplayer -o alsa: hw: 1, 0 owl_sound.mp3 --vol 500 Za reprodukciju ovog zvuka pomoću Pythona, pogledajte našu testnu skriptu.]

uvozni potproces

command = "omxplayer -o alsa: hw: 1, 0 owl_sound.mp3 --vol 500" player = podproces. Popen (command.split (''), stdin = podproces. PIPE, stdout = podproces. PIPE, stderr = podproces. CIJEV)

Korak 7: Korak 7: Streamajte video zapis s Pi -a

Korak 7: Strujite videozapis s Pi -a
Korak 7: Strujite videozapis s Pi -a
Korak 7: Strujite videozapis s Pi -a
Korak 7: Strujite videozapis s Pi -a

Kodirani vodič za stvaranje toka kamere s malinom pi

a. Pokrenite python app.py i pogledajte na svojoj lokalnoj mreži na adresi https://raspberrypi.local: 5000

b. Ovaj kôd je preuzet i malo prilagođen od Miguela Grinberga https://blog.miguelgrinberg.com/post/flask-video-… lijepo objašnjava kako se to radi i njegovi su vodiči izvrsni-deffo provjerite ga! Temeljni je koncept da koristimo threading i generatore za poboljšanje brzine streaminga.

Korak 8: Korak 8: Otkrivanje tijela

Korak 8: Otkrivanje tijela
Korak 8: Otkrivanje tijela

Kôd za otkrivanje tijela (ImageNetSSD na video streamu s malinom pi)

a. Budući da koristimo Raspberry Pi 4, mislili smo da je najbolje isprobati neke modele dubokog učenja na njemu umjesto osnovne HaarCascade metode na koju smo dosad bili ograničeni.

b. Pogledali smo neke unaprijed obučene modele, poput YOLOv3 koji izgleda super. Mali utezi YOLOv3, koji bi bili savršeni za Pi, ali nismo ga uspjeli pokrenuti:(c. Umjesto toga, odlučili smo se za model MobileSSD koji možemo pokrenuti pomoću openCVs DNN (duboke neuronske mreže) modula, kako smo saznali iz ovog koda: https://heartbeat.fritz.ai/real-time-object-detection-on-raspberry -pi-using-opencv-dnn-98827255fa60 i od junaka vodiča za obradu slika, Adriana Rosebrocka: https://www.pyimagesearch.com/2017/09/11/object-detection-with-deep-learning-and- opencv/

d. Međutim, budući da pokušavamo prenijeti ovaj sadržaj i pokrenuti modele na svakom okviru, to rezultira zaostalim, fragmentiranim videom. Ponovno smo učili od Adriana Rosebrocka https://www.pyimagesearch.com/2017/10/16/raspberry-pi-deep-learning-object-detection-with-opencv/ i koristili Python multiprocesorski modul da naše slike stavimo u redove gdje se mogu obraditi bez tolikog blokiranja toka kamere.

e. Pokušajte sami pokrenuti kôd:)

Korak 9: Korak 9: Slanje obavijesti o zombijima

Korak 9: Slanje obavijesti o zombijima
Korak 9: Slanje obavijesti o zombijima
Korak 9: Slanje obavijesti o zombijima
Korak 9: Slanje obavijesti o zombijima

Kôd za slanje obavijesti (python na telefon)

a. Odlučili smo koristiti https://pushed.co uslugu obavijesti.

b. Možete dobiti besplatan račun i preuzeti aplikaciju te se vrlo brzo postaviti za postavljanje obavijesti na mobilnom uređaju. Obavijesti smo stvorili pomoću python skripte poput ove.

zahtjevi za uvoz

payload = {"app_key": "APP_KEY", "app_secret": "APP_SECRET", "target_type": "app", "content": "Sova je otkrila zombija." } r = requests.post ("https://api.pushed.co/1/push", data = korisni teret)

Vrlo je jednostavno i možete prilagoditi naziv obavijesti!

Korak 10: Kakva buka

Kakav huk!
Kakav huk!

Nadamo se da ste uživali u našem projektu Smart Security Owl! Ovo je bilo super zabavno napraviti i osjećam se puno sigurnije znajući da moju kuću čuva naša pouzdana sova.

Ako mislite da bi ovo bio nevjerojatan dodatak za Noć vještica vašem pametnom domu, glasajte za nas na natjecanju Instructables Halloween i, kao i obično, ne zaboravite lajkati, komentirati i pretplatiti se!

Prijavite se na našu mailing listu!

Preporučeni: