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, Novembar
Anonim

Zdravo svima, dobrodošli u T3chFlicks! U ovom tutorijalu za Noć vještica pokazat ćemo vam kako smo stavili super sablasni zaokret na svakodnevni klasik u domaćinstvu: sigurnosnu kameru.

Kako ?! Napravili smo sovu za noćno osmatranje koja koristi obradu slike za praćenje ljudi. Oh, i huči, 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 da se približite zombijima na Noć vještica, ili samo provjerite svoj vrt ostatak godine, ovo je za vas. Zaštita ne mora biti dosadna da bi bila efikasna!

Supplies

Za ovu konstrukciju trebat će vam:

  • Raspberry Pi 4 (4 GB RAM -a) Amazon
  • Kamera za noćno osmatranje Amazon
  • Mikro servo Amazon
  • Lažna sova Amazon
  • Ljepilo Amazon
  • Obojite Amazon
  • Vijci Amazon
  • USB zvučnik Amazon
  • Veliko (5v+) prijenosno napajanje Amazon
  • 3D štampač 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. Izvucite glavu sovi (ponekad samo morate biti brutalni) snažno je povući za glavu gdje se pričvršćuje za oprugu.

b. Glava sove 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. Skinite 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 Smart

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 kamere 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. Sa glavom sove naopako, zavrnite vrh kućišta kamere u unutrašnjost njegove 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 kamere i žice 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. Uklonite utikač s dna sove i povećajte veličinu ove rupe rezanjem plastike. Nastavite povećavati veličinu sve dok Raspberry Pi i zvučnik ne stanu u tijelo sove.

b. Kad rupa postane dovoljno velika da sve komponente mogu stati 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 priključite ih u Raspberry Pi:

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

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

e. Umetnite SD karticu u Pi.

f. Power Pi pomoću prijenosnog napajanja.

g. Umetnite Pi, napajanje 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

    mreža = {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

Vodič za kôd za pomicanje glave (upravljanje servo upravljačem pomoću maline pi)

Da 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 pomjeriti servo sa 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 time.sleep (1) p. ChangeDutyCycle (2.5) # 0 stupnjeva time.sleep (1) p. ChangeDutyCycle (12.5) # 180 stupnjeva time.sleep (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

Kodeks 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 ovo ne uspije, provjerite koji izlaz koristi vaš Pi i na kojoj glasnoći pomoću naredbe alsamixer - dočekat će vas zaslon miksera na kojem možete promijeniti glasnoću i odabrati svoj medijski uređaj. Da biste povećali jačinu zvuka, učinite ovu naredbu omxplayer -o alsa: hw: 1, 0 owl_sound.mp3 --vol 500 Da biste pustili ovaj zvuk koristeći Python, pogledajte našu test skriptu.]

uvozni potproces

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

Korak 7: Korak 7: Prenesite video zapis sa Pi -a

Korak 7: Prenesite video zapis sa Pi -a
Korak 7: Prenesite video zapis sa Pi -a
Korak 7: Prenesite video zapis sa Pi -a
Korak 7: Prenesite video zapis sa Pi -a

Vodič za kodiranje stvaranja raspberry pi stream kamere

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 vodiči su odlični-deffo provjerite ga! Osnovni koncept je 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 sa raspberry 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 MobileSSD model koji možemo pokrenuti koristeći openCVs DNN (duboka neuronska mreža) modul, 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 kadru, to rezultira zaostalim, fragmentiranim videom. Ponovno smo nauč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 da toliko blokiraju tok kamere.

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

Korak 9: Korak 9: Slanje Zombie obavijesti

Korak 9: Slanje Zombie obavijesti
Korak 9: Slanje Zombie obavijesti
Korak 9: Slanje Zombie obavijesti
Korak 9: Slanje Zombie obavijesti

Kôd za slanje obavještenja (python na telefon)

a. Odlučili smo koristiti https://pushed.co uslugu obavještavanja.

b. Možete dobiti besplatan račun i preuzeti aplikaciju te se vrlo brzo postaviti za postavljanje mobilnih obavijesti. Obavijesti smo kreirali pomoću python skripte poput ove.

uvozni zahtevi

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 = nosivost)

Izuzetno je jednostavno i možete prilagoditi ime 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 i osjećam se puno sigurnije znajući da moju kuću čuva naša pouzdana sova.

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

Prijavite se na našu mailing listu!

Preporučuje se: