Table des matières:

Zombie Detecting Smart Security Owl (Deep Learning): 10 étapes (avec photos)
Zombie Detecting Smart Security Owl (Deep Learning): 10 étapes (avec photos)

Vidéo: Zombie Detecting Smart Security Owl (Deep Learning): 10 étapes (avec photos)

Vidéo: Zombie Detecting Smart Security Owl (Deep Learning): 10 étapes (avec photos)
Vidéo: Amazing Invention- This Drone Will Change Everything 2024, Décembre
Anonim

Salut à tous, bienvenue sur T3chFlicks ! Dans ce didacticiel d'Halloween, nous allons vous montrer comment nous avons donné une touche effrayante à un classique de la maison: la caméra de sécurité.

Comment?! Nous avons créé un hibou à vision nocturne qui utilise le traitement d'images pour suivre les gens. Oh, et ça hulule, tout comme la vraie chose !

Nous avons été très enthousiasmés par ce projet et nous attendons de le faire depuis la sortie du nouveau Raspberry Pi 4. Il est doté de 4 Go de RAM, ce qui ouvre la porte à de nombreuses possibilités vraiment passionnantes, notamment le traitement d'images avec des modèles d'apprentissage en profondeur en temps réel.

Si vous voulez garder un œil sur les zombies qui approchent à Halloween, ou simplement vérifier votre jardin le reste de l'année, c'est celui qu'il vous faut. La sécurité n'a pas besoin d'être ennuyeuse pour être efficace !

Fournitures

Pour cette construction, vous aurez besoin de:

  • Raspberry Pi 4 (4 Go de RAM) Amazon
  • Caméra de vision nocturne Amazon
  • Micro Servo Amazon
  • Faux Hibou Amazone
  • Colle Amazone
  • Peinture Amazone
  • Vis Amazon
  • Haut-parleur USB Amazon
  • Grande alimentation portable (5v+) Amazon
  • Imprimante 3D Amazon

Étape 1: Étape 1: Décapiter

Étape 1: décapiter
Étape 1: décapiter
Étape 1: décapiter
Étape 1: décapiter
Étape 1: décapiter
Étape 1: décapiter

une. Tirez la tête de la chouette (il suffit parfois d'être brutal) en tirant fort sur sa tête où elle s'attache au ressort.

b. La tête du hibou se connecte au corps par un cylindre qui repose sur un grand ressort. Retirez ce cylindre en enlevant la vis.

c. Le cylindre que vous venez de retirer est composé de deux parties, une coupelle en plastique et un roulement qui se trouve à l'intérieur. Retirez le roulement du cylindre à l'aide d'un tournevis (ou d'un outil similaire).

ré. A l'aide de la vis qui reliait le cylindre au ressort, fixez le servo au cylindre.

e. Retirez le ressort en dévissant les trois vis qui le fixent au corps.

F. Faites un trou dans le haut du corps du hibou qui est assez grand pour contenir des fils et le câble de la caméra. Pour ce faire, nous avons utilisé une combinaison inélégante d'une perceuse et d'un tournevis.

Étape 2: Étape 2: Ajouter Smart

Étape 2: Ajouter Smart
Étape 2: Ajouter Smart
Étape 2: Ajouter Smart
Étape 2: Ajouter Smart
Étape 2: Ajouter Smart
Étape 2: Ajouter Smart

une. Imprimez en 3D le boîtier de l'appareil photo et peignez-le pour qu'il corresponde au hibou - nous avons utilisé des peintures acryliques bon marché. La peinture n'est pas une étape vitale, mais elle améliore considérablement l'apparence générale !

b. Avec la tête du hibou à l'envers, vissez le haut du boîtier de l'appareil photo à l'intérieur de sa tête, là où le bec dépasse.

c. Mettez l'appareil photo dans le boîtier et connectez le câble de l'appareil photo.

ré. Collez le servo sur le panneau supérieur du ressort.

e. Connectez les fils longs aux broches du servo (5V, Gnd, signal)

F. Faites passer le câble de la caméra et les fils du servo à travers le ressort et à travers le trou que vous avez fait dans le haut du corps afin qu'ils soient à l'intérieur du corps creux du hibou.

Étape 3: Étape 3: Remplissez-la

Étape 3: Remplissez-la
Étape 3: Remplissez-la
Étape 3: Remplissez-la
Étape 3: Remplissez-la
Étape 3: Remplissez-la
Étape 3: Remplissez-la
Étape 3: Remplissez-la
Étape 3: Remplissez-la

une. Retirez le bouchon du bas de la chouette et augmentez la taille de ce trou en coupant le plastique. Continuez à augmenter la taille jusqu'à ce que le Raspberry Pi et le haut-parleur puissent s'insérer dans le corps du hibou.

b. Une fois que le trou est suffisamment grand pour que tous les composants s'insèrent à l'intérieur, tirez le câble de la caméra que vous avez fait passer par le haut du hibou hors de la base et branchez-le sur le Raspberry Pi.

c. De même, tirez les fils du servo et branchez-les sur le Raspberry Pi:

  • +5v sur servo => +5V sur Pi
  • Gnd servo => masse Pi
  • Signal servo => broche 12 Pi

ré. Branchez le haut-parleur USB sur le Pi.

e. Insérez la carte SD dans le Pi.

F. Power Pi à l'aide d'une alimentation portable.

g. Insérez le Pi, l'alimentation et le haut-parleur dans le hibou à travers le trou de la base.

Étape 4: Étape 4: Configurer le Pi

Étape 4: Configurer le Pi
Étape 4: Configurer le Pi

TOUT LE CODE PEUT ÊTRE TROUVÉ SUR https://github.com/sk-t3ch/cctv-owl !

une. Téléchargez Raspian et téléchargez-le sur votre carte SD à l'aide de Balena Etcher.

b. Pour accéder à votre pi à distance

  • Ajoutez un fichier appelé ssh à votre carte SD de démarrage
  • Ajoutez un fichier appelé wpa_supplicant.conf et placez vos identifiants wifi dans

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

    réseau={ ssid="MySSID" psk="MyPassword" }

c. Insérez la carte SD dans le pi et essayez un accès via ssh.

Étape 5: Étape 5: Déplacer la tête

Étape 5: Déplacer la tête
Étape 5: Déplacer la tête

Tutoriel de code pour déplacer la tête (contrôler un servo avec un raspberry pi)

Pour contrôler un servo fonctionnant sur le Pi, nous allons créer un script qui contrôle les broches GPIO auxquelles le servo est connecté.

une. Connectez le servo au Pi:

  • +5v sur servo => +5V sur Pi
  • Gnd servo => gnd sur Pi
  • Signal servo => broche 12 sur Pi

b. Vous devez d'abord configurer les broches gpio pour utiliser PWM sur la broche de signal du servo.

c. Ensuite, il suffit de sélectionner le cycle d'utilisation (expliqué ici) de la broche de signal pour déplacer le servo de 90 degrés avec un cycle d'utilisation de 7,5 à 0 degrés lorsque le cycle d'utilisation est de 2,5 et à 180 degrés avec un cycle d'utilisation de 12,5

importer RPi. GPIO en tant que GPIO

heure d'importation 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 degrés time.sleep(1) p. ChangeDutyCycle(2.5) # 0 degrés time.sleep(1) p. ChangeDutyCycle(12.5) # 180 degrés time.sleep(1) sauf KeyboardInterrupt: p.stop() GPIO.cleanup()

Étape 6: Étape 6: Faire Hoot

Étape 6: faire rugir
Étape 6: faire rugir
Étape 6: faire rugir
Étape 6: faire rugir

Tutoriel de code pour faire hurler le hibou (lecture audio avec un raspberry pi)

une. Branchez le haut-parleur USB.

b. Téléchargez un son - nous avons choisi une huée effrayante.

c. Jouez le son en exécutant cette commande: omxplayer -o alsa:hw:1, 0 owl_sound.mp3

[ré. Si cela ne fonctionne pas, vérifiez quelle sortie votre Pi utilise et à quel volume en utilisant la commande alsamixer - vous serez accueilli avec l'écran de mixage où vous pouvez modifier le volume et sélectionner votre périphérique multimédia. Pour augmenter le volume de votre son, exécutez la commande comme celle-ci omxplayer -o alsa:hw:1, 0 owl_sound.mp3 --vol 500 Pour jouer ce son en utilisant Python, jetez un œil à notre script de test.]

sous-processus d'importation

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

Étape 7: Étape 7: Diffusez la vidéo à partir du Pi

Étape 7: Diffusez la vidéo depuis le Pi
Étape 7: Diffusez la vidéo depuis le Pi
Étape 7: Diffusez la vidéo depuis le Pi
Étape 7: Diffusez la vidéo depuis le Pi

Tutoriel de code créant un flux de caméra raspberry pi

une. Exécutez python app.py et affichez-le sur votre réseau local à l'adresse

b. Ce code a été repris et légèrement adapté de Miguel Grinberg https://blog.miguelgrinberg.com/post/flask-video-… il explique bien comment c'est fait et ses tutoriels sont géniaux - deffo, regardez-le ! Le concept de base est que nous utilisons des threads et des générateurs pour améliorer la vitesse de streaming.

Étape 8: Étape 8: Détection du corps

Étape 8: Détection du corps
Étape 8: Détection du corps

Code pour la détection du corps (ImageNetSSD sur un flux vidéo avec raspberry pi)

une. Étant donné que nous utilisons le Raspberry Pi 4, nous avons pensé qu'il était préférable d'essayer des modèles d'apprentissage en profondeur dessus au lieu de la méthode de base HaarCascade à laquelle nous nous sommes limités jusqu'à présent.

b. Nous avons jeté un coup d'œil à certains des modèles pré-entraînés, comme YOLOv3 qui a l'air super cool. Des poids minuscules YOLOv3, ce qui aurait été parfait pour le Pi, mais nous n'avons pas pu le faire fonctionner:(c. Au lieu de cela, nous avons opté pour le modèle MobileSSD que nous pouvons exécuter à l'aide du module openCVs DNN (deep neural net), comme nous l'avons appris de ce code: https://heartbeat.fritz.ai/real-time-object-detection-on-raspberry -pi-using-opencv-dnn-98827255fa60 et du héros des tutoriels de traitement d'images, Adrian Rosebrock: https://www.pyimagesearch.com/2017/09/11/object-detection-with-deep-learning-and- opencv/

ré. Cependant, comme nous essayons de diffuser ce contenu et d'exécuter des modèles sur chaque image, cela se traduit par une vidéo lente et fragmentée. Nous avons encore appris d'Adrian Rosebrock https://www.pyimagesearch.com/2017/10/16/raspberry-pi-deep-learning-object-detection-with-opencv/ et avons utilisé le module de multitraitement Python pour mettre nos images dans des files d'attente où ils peuvent être traités sans bloquer autant le flux de la caméra.

e. Essayez d'exécuter le code vous-même:)

Étape 9: Étape 9: Envoi de notifications de zombies

Étape 9: Envoi de notifications de zombies
Étape 9: Envoi de notifications de zombies
Étape 9: Envoi de notifications de zombies
Étape 9: Envoi de notifications de zombies

Code pour envoyer une notification (python vers téléphone)

une. Nous avons décidé d'utiliser le service de notification

b. Vous pouvez obtenir un compte gratuit et télécharger l'application et vous configurer très rapidement en créant des notifications mobiles. Nous avons créé les notifications à l'aide d'un script python comme celui-ci.

demandes d'importation

payload = { "app_key": "APP_KEY", "app_secret": "APP_SECRET", "target_type": "app", "content": "Le hibou a détecté un zombie." } r = request.post ("https://api.pushed.co/1/push", data=payload)

C'est super simple et vous pouvez personnaliser le nom de votre notification !

Étape 10: Quelle huée

Quelle huée !
Quelle huée !

Nous espérons que vous avez apprécié notre projet Smart Security Owl ! Cela a été très amusant et je me sens beaucoup plus en sécurité en sachant que ma maison est gardée par notre fidèle chouette.

Si vous pensez que ce serait un fabuleux ajout d'Halloween à votre maison intelligente, veuillez voter pour nous dans le concours Instructables Halloween et comme d'habitude, n'oubliez pas d'aimer, de commenter et de vous abonner !

Inscrivez-vous à notre liste de diffusion !

Conseillé: