İçindekiler:

Zombi Tespit Eden Akıllı Güvenlik Baykuşu (Derin Öğrenme): 10 Adım (Resimlerle)
Zombi Tespit Eden Akıllı Güvenlik Baykuşu (Derin Öğrenme): 10 Adım (Resimlerle)

Video: Zombi Tespit Eden Akıllı Güvenlik Baykuşu (Derin Öğrenme): 10 Adım (Resimlerle)

Video: Zombi Tespit Eden Akıllı Güvenlik Baykuşu (Derin Öğrenme): 10 Adım (Resimlerle)
Video: ChatGPT'yi Bitiren Rakip!!! 2024, Aralık
Anonim

Herkese merhaba, T3chFlicks'e hoş geldiniz! Bu Cadılar Bayramı eğitiminde, sıradan bir ev klasiğine nasıl süper ürkütücü bir dokunuş yaptığımızı göstereceğiz: güvenlik kamerası.

Nasıl?! İnsanları izlemek için görüntü işlemeyi kullanan bir gece görüşlü baykuş yaptık. Oh, ve ötüyor, tıpkı gerçek gibi!

Bu proje için çok heyecanlandık ve yeni Raspberry Pi 4 çıktığından beri bunu yapmayı bekliyorduk. Gerçek zamanlı olarak derin öğrenme modelleriyle bazı görüntü işleme yapmak da dahil olmak üzere birçok heyecan verici olasılığın kapısını açan 4 GB RAM'e sahiptir.

Cadılar Bayramı'nda yaklaşan zombilere dikkat etmek veya yılın geri kalanında bahçenizi kontrol etmek istiyorsanız, bu sizin için olanıdır. Güvenliğin etkili olması için sıkıcı olması gerekmez!

Gereçler

Bu yapı için ihtiyacınız olacak:

  • Ahududu Pi 4 (4GB Ram) Amazon
  • Gece Görüş Kamerası Amazon
  • Mikro Servo Amazon
  • Sahte Baykuş Amazon
  • Amazon'u yapıştırın
  • Amazon'u boya
  • vidalar amazon
  • USB hoparlör Amazon
  • Büyük (5v+) taşınabilir güç kaynağı Amazon
  • 3D yazıcı Amazon

1. Adım: 1. Adım: Başınızı Çıkarın

Adım 1: Başını Kes
Adım 1: Başını Kes
Adım 1: Başını Kes
Adım 1: Başını Kes
Adım 1: Başını Kes
Adım 1: Başını Kes

a. Baykuşun kafasını yaya tutunduğu yerden sertçe çekerek (bazen sadece acımasız olmanız gerekir) kafasından çekin.

B. Baykuşun başı, büyük bir yayın üzerine oturan bir silindir ile gövdeye bağlanır. Vidayı çıkararak bu silindiri çıkarın.

C. Az önce çıkardığınız silindir, plastik bir kap ve içine oturan bir yatak olmak üzere iki parçadan oluşuyor. Bir tornavida (veya benzer bir alet) kullanarak yatağı silindirden çıkarın.

NS. Silindiri yaya bağlayan vidayı kullanarak servoyu silindire takın.

e. Yayı gövdeye sabitleyen üç vidayı sökerek yayı çıkarın.

F. Baykuşun gövdesinin üst kısmında, bazı kabloları ve kamera kablosunu sığacak kadar büyük bir delik açın. Bunu yapmak için bir matkap ve bir tornavidanın kaba bir kombinasyonunu kullandık.

2. Adım: 2. Adım: Akıllı Ekle

2. Adım: Akıllı Ekle
2. Adım: Akıllı Ekle
2. Adım: Akıllı Ekle
2. Adım: Akıllı Ekle
2. Adım: Akıllı Ekle
2. Adım: Akıllı Ekle

a. Kamera kutusunu 3D olarak yazdırın ve baykuşa uyacak şekilde boyayın - bazı ucuz akrilik boyalar kullandık. Boyama hayati bir adım değildir, ancak genel görünümü önemli ölçüde iyileştirir!

B. Baykuşun başı baş aşağı olacak şekilde, kamera kasasının üst kısmını, gaganın çıkıntı yaptığı kafasının iç kısmına vidalayın.

C. Kamerayı kasaya koyun ve kamera kablosunu bağlayın.

NS. Servoyu yayın üst paneline yapıştırın.

e. Uzun kabloları servo pinlerine (5V, Gnd, sinyal) bağlayın

F. Servo için kamera kablosunu ve tellerini yaydan ve gövdenin üst kısmında yaptığınız delikten baykuşun içi boş gövdesinin içinde olacak şekilde besleyin.

Adım 3: Adım 3: Onu Doldurun

Adım 3: Onu Doldurun
Adım 3: Onu Doldurun
Adım 3: Onu Doldurun
Adım 3: Onu Doldurun
Adım 3: Onu Doldurun
Adım 3: Onu Doldurun
Adım 3: Onu Doldurun
Adım 3: Onu Doldurun

a. Baykuşun alt kısmındaki tapayı çıkarın ve plastiği keserek bu deliğin boyutunu büyütün. Raspberry Pi ve hoparlör baykuşun gövdesine oturuncaya kadar boyutu artırmaya devam edin.

B. Delik, tüm bileşenlerin içine sığabileceği kadar büyük olduğunda, baykuşun tepesinden beslediğiniz kamera kablosunu tabandan dışarı çekin ve Raspberry Pi'ye takın.

C. Benzer şekilde, servo kablolarını çekin ve Raspberry Pi'ye takın:

  • Servo'da +5v => Pi'de +5V
  • Gnd servo => gnd Pi
  • Sinyal servosu => pin 12 Pi

NS. USB hoparlörü Pi'ye takın.

e. SD kartı Pi'ye takın.

F. Taşınabilir güç kaynağı kullanan Power Pi.

G. Pi'yi, güç kaynağını ve hoparlörü tabandaki delikten baykuşun içine sokun.

Adım 4: Adım 4: Pi'yi kurun

Adım 4: Pi'yi kurun
Adım 4: Pi'yi kurun

TÜM KODLAR https://github.com/sk-t3ch/cctv-owl ADRESİNDE BULUNABİLİR!

a. Raspian'ı indirin ve Balena Etcher kullanarak SD kartınıza yükleyin.

B. Pi'nize uzaktan erişmek için

  • Önyükleme sd kartınıza ssh adlı bir dosya ekleyin
  • wpa_supplicant.conf adlı bir dosya ekleyin ve wifi kimlik bilgilerinizi girin

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

    ağ={ ssid="MySSID" psk="MyPassword" }

C. SD kartı pi'ye takın ve ssh ile erişmeyi deneyin.

Adım 5: Adım 5: Başı Hareket Ettirme

Adım 5: Kafayı Hareket Ettirmek
Adım 5: Kafayı Hareket Ettirmek

Kafayı hareket ettirmek için kod eğitimi (ahududu pi ile bir servoyu kontrol etme)

Pi üzerinde çalışan bir servoyu kontrol etmek için servonun bağlı olduğu GPIO pinlerini kontrol eden bir script oluşturacağız.

a. Servoyu Pi'ye bağlayın:

  • Servo'da +5v => Pi'de +5V
  • Gnd servo => Pi üzerinde gnd
  • Sinyal servosu => Pi'deki pin 12

B. Servonun sinyal pininde PWM kullanmak için öncelikle gpio pinlerini ayarlamalısınız.

C. Ardından, görev döngüsü 2,5 olduğunda servoyu 7,5 ila 0 derece ve görev döngüsü ile 180 derece arasında hareket ettirmek için sinyal piminin görev döngüsünü (burada açıklanmaktadır) seçmek kadar basittir. 12.5

RPi. GPIO'yu GPIO olarak içe aktar

alma zamanı 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 derece time.sleep(1) p. ChangeDutyCycle(2.5) # 0 derece time.sleep(1) p. ChangeDutyCycle(12.5) # 180 derece time.sleep(1) KeyboardInterrupt hariç: p.stop() GPIO.cleanup()

Adım 6: Adım 6: Hoot Yapmak

Adım 6: Hoot Yapmak
Adım 6: Hoot Yapmak
Adım 6: Hoot Yapmak
Adım 6: Hoot Yapmak

Baykuş ötmesi yapmak için kod eğitimi (ahududu pi ile ses çalma)

a. USB hoparlörü takın.

B. Bir ses indirin - ürkütücü bir yuh seçtik.

C. Bu komutu çalıştırarak sesi çalın: omxplayer -o alsa:hw:1, 0 owl_sound.mp3

[NS. Bu işe yaramazsa, alsamixer komutunu kullanarak Pi'nizin hangi çıkışı ve hangi ses seviyesinde kullandığını kontrol edin - ses seviyesini değiştirebileceğiniz ve medya cihazınızı seçebileceğiniz mikser ekranı ile karşılaşacaksınız. Sesinizin yüksekliğini artırmak için şu komutu uygulayın: omxplayer -o alsa:hw:1, 0 owl_sound.mp3 --vol 500 Bu sesi Python kullanarak çalmak için test komut dosyamıza bakın.]

alt işlemi içe aktarma

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

Adım 7: Adım 7: Videoyu Pi'den Aktarın

7. Adım: Videoyu Pi'den Aktarın
7. Adım: Videoyu Pi'den Aktarın
7. Adım: Videoyu Pi'den Aktarın
7. Adım: Videoyu Pi'den Aktarın

Ahududu pi kamera akışı oluşturan kod eğitimi

a. python app.py'yi çalıştırın ve yerel ağınızda https://raspberrypi.local:5000 adresinde görüntüleyin.

B. Bu kod Miguel Grinberg'den alınmış ve biraz uyarlanmıştır https://blog.miguelgrinberg.com/post/flask-video-… nasıl yapıldığını güzelce açıklıyor ve öğreticileri harika - kesinlikle ona bir bakın! Temel konsept, akış hızını artırmak için iş parçacığı oluşturma ve oluşturucular kullanmamızdır.

Adım 8: Adım 8: Vücut Algılama

Adım 8: Vücut Algılama
Adım 8: Vücut Algılama

Vücut algılama kodu (ahududu pi ile bir video akışında ImageNetSSD)

a. Raspberry Pi 4'ü kullandığımızdan, şimdiye kadar sınırlı kaldığımız temel HaarCascade yöntemi yerine bazı derin öğrenme modellerini denemenin en iyisi olduğunu düşündük.

B. Süper havalı görünen YOLOv3 gibi önceden eğitilmiş bazı modellere bir göz attık. Pi için mükemmel olan YOLOv3 küçük ağırlıklar, ancak çalıştıramadık:(C. Bunun yerine openCVs DNN (deep nöral net) modülünü kullanarak çalıştırabileceğimiz MobileSSD modelini şu koddan öğrendiğimize göre tercih ettik: https://heartbeat.fritz.ai/real-time-object-detection-on-raspberry -pi-using-opencv-dnn-98827255fa60 ve görüntü işleme eğitimlerinin kahramanı Adrian Rosebrock'tan: https://www.pyimagesearch.com/2017/09/11/object-detection-with-deep-learning-and- opencv/

NS. Ancak, bu içeriği akışa almaya ve modelleri her karede çalıştırmaya çalıştığımız için bu, gecikmeli, parçalanmış bir videoya neden oluyor. Adrian Rosebrock'tan tekrar öğrendik https://www.pyimagesearch.com/2017/10/16/raspberry-pi-deep-learning-object-detection-with-opencv/ ve resimlerimizi kuyruğa koymak için Python çoklu işlem modülünü kullandık kamera akışını çok fazla engellemeden işlenebilecekleri yer.

e. Kodu kendiniz çalıştırmayı deneyin:)

9. Adım: 9. Adım: Zombi Bildirimleri Gönderme

9. Adım: Zombi Bildirimleri Gönderme
9. Adım: Zombi Bildirimleri Gönderme
9. Adım: Zombi Bildirimleri Gönderme
9. Adım: Zombi Bildirimleri Gönderme

Bildirim gönderme kodu (python to telefon)

a. https://pused.co bildirim hizmetini kullanmaya karar verdik.

B. Ücretsiz bir hesap açıp uygulamayı indirebilir ve mobil bildirimler yapmak için gerçekten hızlı bir şekilde kurulum yapabilirsiniz. Bildirimleri şöyle bir python betiği kullanarak oluşturduk.

içe aktarma istekleri

payload = { "app_key": "APP_KEY", "app_secret": "APP_SECRET", "target_type": "app", "content": "Baykuş bir zombi algıladı." } r = request.post("https://api.pused.co/1/push", data=payload)

Çok basit ve bildirim adınızı özelleştirebilirsiniz!

Adım 10: Ne Güzel

Ne bir Hoot!
Ne bir Hoot!

Akıllı Güvenlik Baykuşu projemizi beğeneceğinizi umuyoruz! Bu süper eğlenceli bir yapım oldu ve evimin güvenilir baykuşumuz tarafından korunduğunu bilmek kendimi çok daha güvende hissediyorum.

Bunun akıllı evinize harika bir Cadılar Bayramı eki olacağını düşünüyorsanız, lütfen Instructables Cadılar Bayramı yarışmasında bize oy verin ve her zamanki gibi lütfen beğenmeyi, yorum yapmayı ve abone olmayı unutmayın!

Mail Listemize Kaydolun!

Önerilen: