[PYTHON] Connectez deux caméras USB au Raspberry Pi 4

Lancez Raspberry Pi 4

Préparez une carte micro SD de 32 Go

SD32GB.jpg

Acheter la classe 10 C'était 1480 yens pour un ensemble de 2 Gigastones (11 août 2020) Plancher de vente Amazon Votre achat est déjà au format FAT32 et sera reconnu comme un disque sur votre PC Windows 10. Disc32GB.png

Télécharger NOOBS

Page de téléchargement

NOOBS1.png Cliquez sur l'icône NOOBS et l'écran changera comme suit NOOBS2.png

Cliquez sur l'étiquette "Télécharger ZIP" sous "NOOBS" pour télécharger le fichier ZIP.

Décompressez le fichier téléchargé "NOOBS_v3_4_0.zip (2,379,232KB)" et déplacez les fichiers et les détenteurs à l'intérieur vers le disque de retrait de la carte SD.

Paramètres du Raspberry Pi 4

    1. Insérez la carte SD
  1. Connectez l'écran avec un petit câble de connecteur HDMI
    1. Insérez le dongle USB de la souris et du clavier sans fil dans le port USB Connectez l'alimentation 4,5 V au connecteur micro USB (allumez l'interrupteur)

Sélectionnez "Japonais", sélectionnez "Raspbian" comme système d'exploitation et procédez à l'installation pour démarrer Rasbian.

raspbian.png

Paramètres SSH et VNC

Page de référence J'ai essayé de me connecter à Raspberry Pi 4 avec SSH et VNC

Veuillez consulter l'e-book pour plus de détails Book_Raspi.jpg Espace de vente de livres Amazon

Via WiFi sur PC Windows 10

    1. Comment utiliser les commandes avec SSH
  1. Comment afficher sur l'écran sans connecter l'écran avec VNC S'explique doucement avec des chiffres.

OpenCV intégré

Qiita publié le 11 décembre 2019 Facile à mettre OpenCV dans Raspberry Pi4 Dans la rue.

Je l'ai installé le 15 août 2020, mais la version préparée était la même que Qiita ci-dessus. J'ai installé la version 4.1.0.25.

pip3 install opencv-contrib-python==4.1.0.25

Exécuter le programme python

La dernière version de Raspbian a un éditeur Mu intégré, vous pouvez donc exécuter des programmes python avec cet éditeur. Mu_icon.png Mu_Editor.png Cliquez sur l'icône mu pour lancer l'éditeur Mu1.png

Veuillez consulter le HP suivant pour la méthode de fonctionnement de l'éditeur Mu https://codewith.mu/

Connectez deux caméras USB

Connecté 2 types de 2 types de caméras USB à portée de main au connecteur USB IMG1.jpg

Simplement deux captures ont échoué. J'ai donc décidé de changer la taille de l'écran et le FPS. Voici le HP que j'ai utilisé comme référence https://dev.classmethod.jp/articles/opencv-webcam-setting/

Réglez la taille de l'écran sur 800 x 600 pixels 15FPS semble dépasser la capacité de RasPi4 en raison d'une erreur ou de la souris ne bouge pas. Le fonctionnement continu de Cascus est possible à 10 Fps À 5FPS, l'affichage à l'écran des deux caméras n'a pas causé d'erreur même après 10 heures.

C'est un code qui peut être affiché à l'écran pendant longtemps à la fin

#===============================
# Raspi4 conect to two USBCam
#
# Ver1 2020/08/16    T.F.
#===============================
# -*- coding: utf-8 -*-
import cv2

#-------------------------------
#webcam
#-------------------------------
WIDTH = 800
HEIGHT = 600
#ID:0  FPS:5,7.5,10,15  //20
#ID:2  FPS:5    ,10,15      //20
FPS = 5

#-------------------------------
#
#-------------------------------
def cam_set(DEVICE_ID,WIDTH,HEIGHT,FPS):
    # video capture
    cap = cv2.VideoCapture(DEVICE_ID)

    #Paramètres de format / résolution / FPS
    #cap.set(cv2.CAP_PROP_FOURCC, cv2.VideoWriter_fourcc('M','J','P','G'))
    cap.set(cv2.CAP_PROP_FOURCC, cv2.VideoWriter_fourcc('Y','U','Y','V'))
    cap.set(cv2.CAP_PROP_FRAME_WIDTH, WIDTH)
    cap.set(cv2.CAP_PROP_FRAME_HEIGHT, HEIGHT)
    cap.set(cv2.CAP_PROP_FPS, FPS)

    #Acquisition de format / résolution / FPS
    fourcc = decode_fourcc(cap.get(cv2.CAP_PROP_FOURCC))
    width = cap.get(cv2.CAP_PROP_FRAME_WIDTH)
    height = cap.get(cv2.CAP_PROP_FRAME_HEIGHT)
    fps = cap.get(cv2.CAP_PROP_FPS)
    print("ID:{} fourcc:{} fps:{} width:{} height:{}".format(DEVICE_ID, fourcc, fps, width, height))

    return cap

#-------------------------------
#
#-------------------------------
def decode_fourcc(v):
        v = int(v)
        return "".join([chr((v >> 8 * i) & 0xFF) for i in range(4)])

#-------------------------------
#
#-------------------------------
def main():
    #--------------------------------------
    DEVICE_ID = 0
    cap1=cam_set(DEVICE_ID,WIDTH,HEIGHT,FPS)

    #--------------------------------------
    DEVICE_ID = 2
    cap2=cam_set(DEVICE_ID,WIDTH,HEIGHT,FPS)

    #--------------------------------------
    while True:
        #-----------------------
        #Acquisition d'image de la caméra
        ret1, frame1 = cap1.read()
        if(frame1 is None):
            continue

        #-----------------------
        #Acquisition d'image de la caméra
        ret2, frame2 = cap2.read()
        if(frame2 is None):
            continue

        #---------------------------
        im_h=cv2.hconcat([frame1,frame2])

        #---------------------------
        #Affichage de l'image
        cv2.imshow('frame1', im_h)

        #--------------------------------------
        #Jugement d'entrée de file d'attente(1ms d'attente)
        #sans attendreKey, imshow()Ne peut pas être affiché
        # 'q'Quitter la boucle une fois tapé
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
    #------------------------------
    #Détruire l'objet VideoCapture
    cap1.release()
    cap2.release()
    cv2.destroyAllWindows()

#-------------------------------
if __name__ == '__main__':
	main()

Écran affiché

cam1.png

Avec le code suivant, les images de la caméra ont été disposées horizontalement et combinées et affichées dans un cadre.

im_h=cv2.hconcat([frame1,frame2])

Développement futur

Une caméra stéréo est construite à l'aide de deux caméras USB bon marché, et la distance entre le décalage de position «objet détecté» et l'objet est calculée et utilisée comme œil de commande du bras du robot.

Ensuite, considérons un programme léger de "détection d'objet" sur RasPi4.

Recommended Posts

Connectez deux caméras USB au Raspberry Pi 4
Connectez votre Raspberry Pi à votre smartphone en utilisant Blynk
Connectez-vous à MySQL avec Python sur Raspberry Pi
J'ai parlé à Raspberry Pi
Présentation de PyMySQL à Raspberry pi3
[Raspberry PI & Garmin GLO] Jusqu'à ce que le GPS Bluetooth soit connecté à Raspberry PI & Garmin GLO
Connectez Raspberry Pi à Alibaba Cloud IoT Platform avec «Python»
Portez FreeRTOS vers Raspberry Pi 4B
USB sur Ethernet avec Raspberry pi
Sortie du Raspberry Pi vers la ligne
[Raspberry Pi] Changement par défaut de Python en Python3
Raspberry Pi --1 --Première fois (Connectez un capteur de température pour afficher la température)
Démarrage USB sur Raspberry Pi 4 modèle B
Comment installer NumPy sur Raspeye
Connectez-vous à la console Raspberry PI et affichez les informations IP et SD locales
Comment utiliser Raspeye Pie Camera Python
Connectez-vous à mysql
De la configuration du Raspberry Pi à l'installation de l'environnement Python
Apprentissage automatique avec Raspberry Pi 4 et Coral USB Accelerator
IoT facile pour démarrer avec Raspeye et MESH
Visualisons la pièce avec tarte aux râpes, partie 1
Comment utiliser Raspeye Relay Module Python
Démarrage USB avec Raspberry Pi 4 modèle B (3) édition LVM
Contrôler la mise sous / hors tension du port USB du Raspberry Pi
Sortie sur "LED 7 segments" en utilisant python avec Raspberry Pi 3!
Afficher l'image de la caméra USB avec OpenCV de Python avec Raspeye
Qu'est-ce que Raspberry Pi?
GPGPU avec Raspberry Pi
pigpio sur Raspberry pi
Caméra vidéo Raspberry Pi
Mauvaise connaissance Raspberry Pi
Faisons Raspberry Pi?
Connectez python à mysql
DigitalSignage avec Raspberry Pi
Notes de configuration du Raspberry Pi 4
Cython sur Raspberry Pi
Introduction facile au piratage domestique avec Raspberry Pi et discord.py
Mettre à jour Raspberry Pi Python vers 3.7 ou version ultérieure avec pyenv
Je souhaite désactiver les interruptions sur le Raspberry Pi (≒ DI / EI)
J'ai essayé d'automatiser [une certaine tâche] à l'aide d'une tarte à la râpe
Changer le message affiché lors de la connexion à Raspberry Pi
Comment obtenir la température du thermo-hygromètre SwitchBot à l'aide de Raspberry Pi
[Raspberry Pi] Mémo de création de pilote de périphérique minimal pour la sortie GPIO
J'ai envoyé les données de Raspberry Pi à GCP (gratuit)
[Mémo] Connectez Raspberry Pi Zero à Internet avec un seul câble USB! (Utilisez nfs, pas de carte SD, clavier, souris, moniteur requis)