Sisällysluettelo:

Zombie havaitsee älykkään turvaköllön (syvä oppiminen): 10 vaihetta (kuvilla)
Zombie havaitsee älykkään turvaköllön (syvä oppiminen): 10 vaihetta (kuvilla)

Video: Zombie havaitsee älykkään turvaköllön (syvä oppiminen): 10 vaihetta (kuvilla)

Video: Zombie havaitsee älykkään turvaköllön (syvä oppiminen): 10 vaihetta (kuvilla)
Video: Zombit ja filosofia | Filosofian erityiskysymyksiä | Teoriaa ja käsitteitä 2024, Marraskuu
Anonim

Hei kaikki, tervetuloa T3chFlicksiin! Tässä Halloween -opetusohjelmassa näytämme sinulle, kuinka saimme aikaan pelottavan käänteen arkiseen kotitalousklassikkoon: turvakameraan.

Miten?! Olemme tehneet yönäköön, joka seuraa kuvankäsittelyä ihmisten seurantaan. Voi, ja se hurraa, aivan kuten todellinen asia!

Olemme olleet erittäin innoissamme tästä projektista ja odottaneet sen tekemistä siitä lähtien, kun uusi Raspberry Pi 4 lanseerattiin. Siinä on 4 Gt RAM -muistia, joka avaa oven lukuisille todella jännittäville mahdollisuuksille, mukaan lukien kuvankäsittely syväoppivilla malleilla reaaliajassa.

Jos haluat pitää silmällä lähestyviä zombeja Halloweenina tai vain tarkistaa puutarhan ympäri vuoden, tämä on sinulle. Turvallisuuden ei tarvitse olla tylsää ollakseen tehokasta!

Tarvikkeet

Tätä rakennetta varten tarvitset:

  • Raspberry Pi 4 (4 Gt Ram) Amazon
  • Pimeänäkökamera Amazon
  • Mikroservo Amazon
  • Fake Pöllö Amazon
  • Liimaa Amazon
  • Maalaa Amazon
  • Ruuvit Amazon
  • USB -kaiutin Amazon
  • Suuri (5v+) kannettava virtalähde Amazon
  • 3D -tulostin Amazon

Vaihe 1: Vaihe 1: Katkaise pää

Vaihe 1: Katkaise pää
Vaihe 1: Katkaise pää
Vaihe 1: Katkaise pää
Vaihe 1: Katkaise pää
Vaihe 1: Katkaise pää
Vaihe 1: Katkaise pää

a. Vedä pää pöllöltä (joskus sinun täytyy vain olla raaka) vetämällä voimakkaasti päänsä kohdasta, jossa se kiinnittyy jouseen.

b. Pöllön pää liittyy runkoon sylinterillä, joka istuu suuren jousen päällä. Irrota tämä sylinteri irrottamalla ruuvi.

c. Juuri poistamasi sylinteri koostuu kahdesta osasta, muovikupista ja sen sisällä olevasta laakerista. Irrota laakeri sylinteristä ruuvimeisselillä (tai vastaavalla työkalulla).

d. Kiinnitä servo sylinteriin ruuvilla, jolla sylinteri on liitetty jousiin.

e. Irrota jousi avaamalla kolme ruuvia, jotka kiinnittävät sen runkoon.

f. Tee pöllön rungon yläosaan reikä, joka on tarpeeksi suuri sopimaan johtoihin ja kameran kaapeliin. Käytimme tähän tyylikästä poran ja ruuvimeisselin yhdistelmää.

Vaihe 2: Vaihe 2: Lisää Smart

Vaihe 2: Lisää Smart
Vaihe 2: Lisää Smart
Vaihe 2: Lisää Smart
Vaihe 2: Lisää Smart
Vaihe 2: Lisää Smart
Vaihe 2: Lisää Smart

a. 3D -tulosta kamerakotelo ja maalaa se pöllön mukaan - käytimme halpoja akryylimaaleja. Maalaus ei ole tärkeä askel, mutta se parantaa dramaattisesti yleistä ulkoasua!

b. Pöllön pää ylösalaisin, ruuvaa kamerakotelon pää sen pään sisäpuolelle, jossa nokka ulkonee.

c. Aseta kamera koteloon ja kytke kameran kaapeli.

d. Liimaa servo jousen yläpaneeliin.

e. Liitä pitkät johdot servo -nastoihin (5V, Gnd, signaali)

f. Vie kameran kaapeli ja servojohdot jousen läpi ja rungon yläosaan tekemäsi reiän läpi niin, että ne ovat pöllön onton rungon sisällä.

Vaihe 3: Vaihe 3: Täytä hänet

Vaihe 3: Täytä hänet
Vaihe 3: Täytä hänet
Vaihe 3: Täytä hänet
Vaihe 3: Täytä hänet
Vaihe 3: Täytä hänet
Vaihe 3: Täytä hänet
Vaihe 3: Täytä hänet
Vaihe 3: Täytä hänet

a. Irrota pistoke pöllön pohjasta ja lisää tämän reiän kokoa leikkaamalla muovia. Jatka koon kasvattamista, kunnes Raspberry Pi ja kaiutin mahtuvat pöllön runkoon.

b. Kun reikä on tarpeeksi suuri, jotta kaikki komponentit mahtuvat sisälle, vedä kameran kaapeli, jonka syötit pöllön yläosan läpi, pois alustasta ja liitä se Raspberry Pi -laitteeseen.

c. Vedä myös servojohdot läpi ja liitä ne Raspberry Pi: hen:

  • +5v servolla => +5V Pi: llä
  • Gnd -servo => gnd Pi
  • Signaalipalvelu => nasta 12 Pi

d. Liitä USB -kaiutin Pi -laitteeseen.

e. Aseta SD -kortti Pi -laitteeseen.

f. Power Pi käyttämällä kannettavaa virtalähdettä.

g. Työnnä Pi, virtalähde ja kaiutin pöllöyn pohjan reiän kautta.

Vaihe 4: Vaihe 4: Asenna Pi

Vaihe 4: Asenna Pi
Vaihe 4: Asenna Pi

KAIKKI KOODI Löytyy osoitteesta

a. Lataa Raspian ja lataa se SD -kortillesi Balena Etcherin avulla.

b. Voit käyttää pi -laitettasi etänä

  • Lisää tiedosto nimeltä ssh käynnistys -SD -kortillesi
  • Lisää tiedosto nimeltä wpa_supplicant.conf ja aseta wifi -tunnuksesi

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

    verkko = {ssid = "MySSID" psk = "Oma salasana"}

c. Aseta SD -kortti pi: hen ja kokeile pääsyä ssh: n kautta.

Vaihe 5: Vaihe 5: Pään siirtäminen

Vaihe 5: Pään siirtäminen
Vaihe 5: Pään siirtäminen

Koodiohje pään siirtämiseksi (servon ohjaaminen vadelmapi: llä)

Pi: n käynnissä olevan servon ohjaamiseksi luomme komentosarjan, joka ohjaa GPIO -nastoja, joihin servo on kytketty.

a. Liitä servo Pi: hen:

  • +5v servolla => +5V Pi: llä
  • Gnd servo => gnd Pi: llä
  • Signaalipalvelu => nasta 12 Pi: llä

b. Sinun on ensin määritettävä gpio -nastat käyttääksesi PWM: ää servon signaalitapissa.

c. Sitten on yksinkertaista valita signaalitapin käyttöjakso (selitetty tässä) siirtää servo 90 asteesta 7,5 - 0 asteen käyttöjaksolla, kun käyttöjakso on 2,5 ja 180 asteeseen käyttöjaksolla 12.5

Tuo RPi. GPIO GPIO: ksi

tuontiaika GPIO.setmode (GPIO. BOARD) GPIO.setwarnings (False) GPIO.setup (12, GPIO. OUT) p = GPIO. PWM (12, 50) p.start (7.5) try: kun True: p. ChangeDutyCycle (7.5) # 90 asteen aika. Nukkuminen (1) p. ChangeDutyCycle (2.5) # 0 astetta aika.unen (1) p. ChangeDutyCycle (12.5) # 180 asteen aika. Nukkuminen (1) paitsi näppäimistöInterrupt: p.stop () GPIO.cleanup ()

Vaihe 6: Vaihe 6: Hooking

Vaihe 6: Tee se hoot
Vaihe 6: Tee se hoot
Vaihe 6: Houkuttele
Vaihe 6: Houkuttele

Koodin opetusohjelma pöllön hootin tekemiseen (äänen toistaminen vadelmapi: n kanssa)

a. Liitä USB -kaiutin.

b. Lataa ääni - valitsimme pelottavan huijauksen.

c. Toista ääni suorittamalla tämä komento: omxplayer -o alsa: hw: 1, 0 owl_sound.mp3

[d. Jos tämä ei toimi, tarkista, mitä Pi -lähtöäsi käyttää ja millä äänenvoimakkuudella käyttämällä komentoa alsamixer - sinua tervehditään mikserinäytöllä, jossa voit muuttaa äänenvoimakkuutta ja valita medialaitteesi. Jos haluat lisätä äänenvoimakkuuttasi, suorita komento kuten tämä omxplayer -o alsa: hw: 1, 0 owl_sound.mp3 --vol 500 Jos haluat toistaa tämän äänen Pythonilla, tutustu testikomentoomme.]

tuoda aliprosessi

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

Vaihe 7: Vaihe 7: Striimaa video Pi: stä

Vaihe 7: Striimaa video Pi: stä
Vaihe 7: Striimaa video Pi: stä
Vaihe 7: Striimaa video Pi: stä
Vaihe 7: Striimaa video Pi: stä

Koodi-opetusohjelma vadelmapi-kameravirran luomiseksi

a. Suorita python app.py ja katso paikallisessa verkossa osoitteessa https://raspberrypi.local: 5000

b. Tämä koodi on otettu ja hieman mukautettu Miguel Grinbergiltä https://blog.miguelgrinberg.com/post/flask-video-… hän selittää hienosti, miten se on tehty, ja hänen opetusohjelmansa ovat hienoja-deffo tarkista hänet! Perusajatuksena on, että käytämme kierteitystä ja generaattoreita suoratoiston nopeuden parantamiseksi.

Vaihe 8: Vaihe 8: Kehon tunnistus

Vaihe 8: Kehon tunnistus
Vaihe 8: Kehon tunnistus

Kehon tunnistuskoodi (ImageNetSSD videovirrassa, jossa on vadelma pi)

a. Koska käytämme Raspberry Pi 4: tä, ajattelimme, että on parasta kokeilla joitakin syviä oppimismalleja sen HaarCascade -perusmenetelmän sijasta, johon olemme tähän mennessä rajoittuneet.

b. Katselimme joitain esikoulutettuja malleja, kuten YOLOv3, joka näyttää erittäin siistiltä. YOLOv3 pieniä painoja, jotka olisivat olleet täydellisiä Pi: lle, mutta emme saaneet sitä toimimaan:(c. Valitsimme sen sijaan MobileSSD-mallin, jota voimme käyttää openCVs DNN (deep neurone net) -moduulilla, kuten opimme tästä koodista: https://heartbeat.fritz.ai/real-time-object-detection-on-raspberry -pi-using-opencv-dnn-98827255fa60 ja kuvankäsittelyoppaiden sankari Adrian Rosebrock: https://www.pyimagesearch.com/2017/09/11/object-detection-with-deep-learning-and- opencv/

d. Kuitenkin, kun yritämme suoratoistaa tätä sisältöä ja ajaa malleja jokaisessa kehyksessä, tuloksena on viivästynyt, pirstoutunut video. Opimme jälleen Adrian Rosebrockilta https://www.pyimagesearch.com/2017/10/16/raspberry-pi-deep-learning-object-detection-with-opencv/ ja käytimme Python-moniprosessointimoduulia kuvien jonottamiseen jossa niitä voidaan käsitellä estämättä kameran virtaa niin voimakkaasti.

e. Kokeile suorittaa koodi itse:)

Vaihe 9: Vaihe 9: Zombie -ilmoitusten lähettäminen

Vaihe 9: Zombie -ilmoitusten lähettäminen
Vaihe 9: Zombie -ilmoitusten lähettäminen
Vaihe 9: Zombie -ilmoitusten lähettäminen
Vaihe 9: Zombie -ilmoitusten lähettäminen

Ilmoituskoodi (python puhelimeen)

a. Päätimme käyttää https://pushed.co -ilmoituspalvelua.

b. Voit saada ilmaisen tilin ja ladata sovelluksen ja todella nopeasti perustaa mobiili -ilmoitusten tekemisen. Loimme ilmoitukset käyttämällä tällaista python -komentosarjaa.

tuontipyynnöt

payload = {"app_key": "APP_KEY", "app_secret": "APP_SECRET", "target_type": "app", "content": "Pöllö on havainnut zombin." } r = request.post ("https://api.pushed.co/1/push", data = hyötykuorma)

Se on erittäin yksinkertaista ja voit muokata ilmoituksen nimeä!

Vaihe 10: Mikä höpö

Mikä höpö!
Mikä höpö!

Toivomme, että pidit Smart Security Owl -projektistamme! Tämä on ollut erittäin hauska tehdä, ja minusta tuntuu paljon turvallisemmalta tietää, että kotini on vartioitu luotettavan pöllömme avulla.

Jos luulet, että tämä olisi upea Halloween -lisäys älykkääseen kotiisi, äänestä meitä Instructables Halloween -kilpailussa ja kuten tavallista, muista tykätä, kommentoida ja tilata!

Rekisteröidy postituslistallemme!

Suositeltava: