Talaan ng mga Nilalaman:

Pagtuklas ng Zombie ng Smart Owl (Deep Learning): 10 Hakbang (na may Mga Larawan)
Pagtuklas ng Zombie ng Smart Owl (Deep Learning): 10 Hakbang (na may Mga Larawan)

Video: Pagtuklas ng Zombie ng Smart Owl (Deep Learning): 10 Hakbang (na may Mga Larawan)

Video: Pagtuklas ng Zombie ng Smart Owl (Deep Learning): 10 Hakbang (na may Mga Larawan)
Video: Part 5 - Dracula Audiobook by Bram Stoker (Chs 16-19) 2024, Setyembre
Anonim

Kumusta ang lahat, maligayang pagdating sa T3chFlicks! Sa tutorial sa Halloween na ito, ipapakita namin sa iyo kung paano kami naglalagay ng isang sobrang nakakatakot na pag-ikot sa isang pangkaraniwang klasikong sambahayan: ang security camera.

Pano ?! Gumawa kami ng isang night vision Owl na gumagamit ng pagproseso ng imahe upang subaybayan ang mga tao. Oh, at ito ay hoots, tulad ng totoong bagay!

Labis kaming nasasabik sa proyektong ito at naghihintay kami na gawin ito mula nang bumagsak ang bagong Raspberry Pi 4. Nakakuha ito ng 4GB RAM, na magbubukas sa pintuan ng maraming nakakaganyak na mga posibilidad, kabilang ang paggawa ng ilang pagproseso ng imahe sa mga malalim na modelo ng pag-aaral sa real time.

Kung nais mong bantayan ang mga papalapit na zombie sa Halloween, o suriin lamang ang iyong hardin sa natitirang taon, ito ang para sa iyo. Ang seguridad ay hindi kailangang maging mainip upang maging mabisa!

Mga gamit

Para sa pagbuo na ito, kakailanganin mo ang:

  • Raspberry Pi 4 (4GB Ram) Amazon
  • Night Vision Camera Amazon
  • Micro Servo Amazon
  • Pekeng Owl Amazon
  • Kola Amazon
  • Kulayan ang Amazon
  • Mga Screw ng Amazon
  • USB speaker Amazon
  • Malaking (5v +) portable power supply Amazon
  • 3D printer Amazon

Hakbang 1: Hakbang 1: Mapatay

Hakbang 1: Paikutin
Hakbang 1: Paikutin
Hakbang 1: Paikutin
Hakbang 1: Paikutin
Hakbang 1: Paikutin
Hakbang 1: Paikutin

a. Hilahin ang ulo ng kuwago (kung minsan kailangan mong maging brutal) sa pamamagitan ng paghila ng husto sa ulo nito kung saan nakakabit ito sa tagsibol.

b. Ang ulo ng kuwago ay kumokonekta sa katawan sa pamamagitan ng isang silindro na nakaupo sa tuktok ng isang malaking bukal. Alisin ang silindro na ito sa pamamagitan ng pagkuha ng tornilyo.

c. Ang silindro na naalis mo lang ay gawa sa dalawang bahagi, isang plastik na tasa at isang tindig na nakaupo sa loob nito. Alisin ang tindig mula sa silindro gamit ang isang distornilyador (o katulad na tool).

d. Gamit ang tornilyo kung saan nakakonekta ang silindro sa tagsibol, ikabit ang servo sa silindro.

e. Alisin ang tagsibol sa pamamagitan ng pag-unscrew ng tatlong mga turnilyo na na-secure ito sa katawan.

f. Gumawa ng isang butas sa tuktok ng katawan ng kuwago na kung saan ay sapat na malaki upang magkasya sa ilang mga wires at camera cable. Gumamit kami ng hindi matatag na kumbinasyon ng isang drill at isang distornilyador upang magawa ito.

Hakbang 2: Hakbang 2: Magdagdag ng Smart

Hakbang 2: Magdagdag ng Smart
Hakbang 2: Magdagdag ng Smart
Hakbang 2: Magdagdag ng Smart
Hakbang 2: Magdagdag ng Smart
Hakbang 2: Magdagdag ng Smart
Hakbang 2: Magdagdag ng Smart

a. 3D na naka-print ang case ng camera at pininturahan ito upang tumugma sa kuwago - gumamit kami ng ilang murang mga pinturang acrylic. Ang pagpipinta ay hindi isang mahalagang hakbang, ngunit napapabuti nito ang pangkalahatang hitsura!

b. Sa baligtad ng ulo ng kuwago, i-tornilyo ang tuktok ng kaso ng camera sa loob ng ulo nito, kung saan nakausli ang tuka.

c. Ilagay ang camera sa kaso at ikonekta ang cable ng camera.

d. Kola ang servo sa tuktok na panel ng tagsibol.

e. Ikonekta ang mga mahabang wires sa mga servo pin (5V, Gnd, signal)

f. Pakain ang camera cable at mga wire para sa servo sa pamamagitan ng tagsibol at sa butas na ginawa mo sa tuktok ng katawan upang nasa loob sila ng guwang na katawan ng kuwago.

Hakbang 3: Hakbang 3: Punan Siya

Hakbang 3: Punan Siya
Hakbang 3: Punan Siya
Hakbang 3: Punan Siya
Hakbang 3: Punan Siya
Hakbang 3: Punan Siya
Hakbang 3: Punan Siya
Hakbang 3: Punan Siya
Hakbang 3: Punan Siya

a. Alisin ang plug mula sa ilalim ng bahaw at dagdagan ang laki ng butas na ito sa pamamagitan ng paggupit ng plastik. Patuloy na dagdagan ang laki hanggang sa ang Raspberry Pi at speaker ay maaaring magkasya sa katawan ng kuwago.

b. Kapag ang butas ay sapat na malaki para sa lahat ng mga sangkap upang magkasya sa loob, hilahin ang camera cable na iyong pinakain sa tuktok ng kuwago palabas ng base at isaksak ito sa Raspberry Pi.

c. Katulad nito, hilahin ang mga servo wires at i-plug ang mga ito sa Raspberry Pi:

  • + 5v sa servo => + 5V sa Pi
  • Gnd servo => gnd Pi
  • Signal servo => pin 12 Pi

d. I-plug ang USB speaker sa Pi.

e. Ipasok ang SD card sa Pi.

f. Power Pi gamit ang portable power supply.

g. Ipasok ang Pi, power supply at speaker sa kuwago sa butas sa base.

Hakbang 4: Hakbang 4: I-setup ang Pi

Hakbang 4: I-setup ang Pi
Hakbang 4: I-setup ang Pi

ANG LAHAT NG CODE AY MAAARI SA

a. I-download ang Raspian at i-upload ito sa iyong SD card gamit ang Balena Etcher.

b. Upang mai-access ang iyong pi nang malayuan

  • Magdagdag ng isang file na tinatawag na ssh sa iyong boot sd card
  • Magdagdag ng isang file na tinatawag na wpa_supplicant.conf at ilagay ang iyong mga kredensyal sa wifi

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

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

c. Ipasok ang SD card sa pi at subukan ang isang pag-access sa pamamagitan ng ssh.

Hakbang 5: Hakbang 5: Paglipat ng Ulo

Hakbang 5: Paglipat ng Ulo
Hakbang 5: Paglipat ng Ulo

Tutorial sa code para sa paggalaw ng ulo (pagkontrol sa isang servo gamit ang isang raspberry pi)

Upang makontrol ang isang servo na tumatakbo sa Pi ay lilikha kami ng script na kumokontrol sa mga GPIO pin kung saan nakakonekta ang servo.

a. Ikonekta ang servo sa Pi:

  • + 5v sa servo => + 5V sa Pi
  • Gnd servo => gnd kay Pi
  • Signal servo => pin 12 sa Pi

b. Dapat mo munang i-set up ang mga gpio pin upang magamit ang PWM sa signal pin ng servo.

c. Pagkatapos, ito ay kasing simple ng pagpili ng cycle ng tungkulin (ipinaliwanag dito) ng signal pin upang ilipat ang servo mula sa 90 degree na may duty cycle na 7.5 hanggang 0 degree kapag ang duty cycle ay 2.5 at hanggang 180 degree na may duty cycle ng 12.5

i-import ang RPi. GPIO bilang GPIO

oras ng pag-import GPIO.setmode (GPIO. BOARD) GPIO.setwarnings (Mali) GPIO.setup (12, GPIO. OUT) p = GPIO. PWM (12, 50) p.start (7.5) subukan: habang Totoo: p. ChangeDutyCycle (7.5) # 90 degree time. Sleep (1) p. ChangeDutyCycle (2.5) # 0 degree time. Sleep (1) p. ChangeDutyCycle (12.5) # 180 degrees time. Sleep (1) maliban sa KeyboardInterrupt: p.stop () GPIO.cleanup ()

Hakbang 6: Hakbang 6: Ginagawa itong Hoot

Hakbang 6: Ginagawa itong Hoot
Hakbang 6: Ginagawa itong Hoot
Hakbang 6: Ginagawa itong Hoot
Hakbang 6: Ginagawa itong Hoot

Tutorial sa code para sa paggawa ng kuwago (pag-play ng audio gamit ang isang raspberry pi)

a. I-plug in ang USB speaker.

b. Mag-download ng tunog - pumili kami ng isang nakakatakot na hoot.

c. Patugtugin ang tunog sa pamamagitan ng pagpapatakbo ng utos na ito: omxplayer -o alsa: hw: 1, 0 owl_sound.mp3

[d. Kung hindi ito gumana, suriin kung anong output ang ginagamit ng iyong Pi at sa anong dami ng paggamit ng command alsamixer - sasalubungin ka ng mixer screen kung saan maaari mong baguhin ang dami at piliin ang iyong media device. Upang madagdagan ang dami ng iyong tunog, gawin ang utos tulad ng omxplayer -o alsa: hw: 1, 0 owl_sound.mp3 --vol 500 Upang patugtugin ang tunog na ito gamit ang Python, tingnan ang aming script ng pagsubok.]

i-import ang subprocess

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

Hakbang 7: Hakbang 7: I-stream ang Video Mula sa Pi

Hakbang 7: I-stream ang Video Mula sa Pi
Hakbang 7: I-stream ang Video Mula sa Pi
Hakbang 7: I-stream ang Video Mula sa Pi
Hakbang 7: I-stream ang Video Mula sa Pi

Code tutorial na lumilikha ng isang stream ng raspberry pi camera

a. Patakbuhin ang python app.py at tingnan ang iyong lokal na network sa https://raspberrypi.local: 5000

b. Ang code na ito ay kinuha at bahagyang inangkop mula kay Miguel Grinberg https://blog.miguelgrinberg.com/post/flask-video-… ipinaliwanag niya nang maayos kung paano ito tapos at ang kanyang mga tutorial ay mahusay - deffo suriin siya! Ang pangunahing konsepto ay gumagamit kami ng pag-thread at mga generator upang mapagbuti ang bilis ng streaming.

Hakbang 8: Hakbang 8: Pagtuklas ng Katawan

Hakbang 8: Pagtuklas ng Katawan
Hakbang 8: Pagtuklas ng Katawan

Code para sa pagtuklas ng katawan (ImageNetSSD sa isang video stream na may raspberry pi)

a. Dahil ginagamit namin ang Raspberry Pi 4, naisip namin na pinakamahusay na subukan ang mga ito sa malalim na mga modelo ng pag-aaral sa halip na ang pangunahing pamamaraan ng HaarCascade na nalimitahan kami hanggang ngayon.

b. Tiningnan namin ang ilan sa mga paunang sinanay na mga modelo doon, tulad ng YOLOv3 na mukhang sobrang cool. YOLOv3 maliliit na timbang, na kung saan ay perpekto para sa Pi, ngunit hindi namin ito napapatakbo:(c. Sa halip, pinili namin ang modelo ng MobileSSD na maaari naming patakbuhin gamit ang openCVs DNN (deep neural net) na module, tulad ng natutunan mula sa code na ito: https://heartbeat.fritz.ai/real-time-object-detection-on-raspberry -pi-using-opencv-dnn-98827255fa60 at mula sa bayani ng mga tutorial sa pagproseso ng imahe, Adrian Rosebrock: https://www.pyimagesearch.com/2017/09/11/object-detection-with-deep-learning-and- opencv /

d. Gayunpaman, habang sinusubukan naming i-stream ang nilalamang ito at magpatakbo ng mga modelo sa bawat frame, nagreresulta ito sa isang laggy, fragmented na video. Natutunan namin muli mula kay Adrian Rosebrock https://www.pyimagesearch.com/2017/10/16/raspberry-pi-deep-learning-object-detection-with-opencv/ at ginamit ang Python multiprocessing module upang mailagay ang aming mga imahe sa mga pila kung saan maaari silang maproseso nang hindi masyadong hinaharangan ang stream ng camera.

e. Subukang patakbuhin ang code mismo:)

Hakbang 9: Hakbang 9: Pagpapadala ng Mga Notification ng Zombie

Hakbang 9: Pagpapadala ng Mga Abiso sa Zombie
Hakbang 9: Pagpapadala ng Mga Abiso sa Zombie
Hakbang 9: Pagpapadala ng Mga Abiso sa Zombie
Hakbang 9: Pagpapadala ng Mga Abiso sa Zombie

Code para sa pagpapadala ng isang abiso (sawa sa telepono)

a. Nagpasya kaming gumamit ng serbisyo sa pag-abiso sa

b. Maaari kang makakuha ng isang libreng account at i-download ang app at talagang mabilis na mag-set up sa paggawa ng mga mobile na notification. Nilikha namin ang mga notification gamit ang isang python script na tulad nito.

mag-import ng mga kahilingan

payload = {"app_key": "APP_KEY", "app_secret": "APP_SECRET", "target_type": "app", "content": "Nakita ng kuwago ang isang zombie." } r = requests.post ("https://api.push.co/1/push", data = payload)

Napakasimple at maaari mong ipasadya ang iyong pangalan ng notification!

Hakbang 10: Ano ang Hoot

Anong Hoot!
Anong Hoot!

Inaasahan namin na nasiyahan ka sa aming proyekto sa Smart Security Owl! Ito ay naging isang sobrang kasiya-siya at sa palagay ko ay mas ligtas na alam ang aking bahay ay binabantayan ng aming mapagkakatiwalaang kuwago.

Kung sa tingin mo ito ay magiging isang kamangha-manghang karagdagan sa Halloween sa iyong matalinong tahanan, mangyaring bumoto para sa amin sa paligsahan ng Instructables Halloween at tulad ng dati, mangyaring tandaan na magustuhan, magkomento at mag-subscribe!

Mag-sign Up sa aming Mail List!

Inirerekumendang: