[PYTHON] Schließen Sie zwei USB-Kameras an Raspberry Pi 4 an

Starten Sie Raspberry Pi 4

Bereiten Sie eine Micro-SD-Karte mit 32 GB vor

SD32GB.jpg

Klasse 10 kaufen Es war 1480 Yen für einen Satz von 2 Gigastones (11. August 2020) Amazon Sales Floor Ihr Kauf ist bereits FAT32-formatiert und wird auf Ihrem Windows 10-PC als Datenträger erkannt. Disc32GB.png

Laden Sie NOOBS herunter

Download-Seite

NOOBS1.png Klicken Sie auf das NOOBS-Symbol. Der Bildschirm ändert sich wie folgt NOOBS2.png

Klicken Sie auf das Label "Download ZIP" von "NOOBS", um die ZIP-Datei herunterzuladen.

Entpacken Sie die heruntergeladene Datei "NOOBS_v3_4_0.zip (2.379.232 KB)" und verschieben Sie die Dateien und Halter auf die SD-Kartenentfernungsdiskette.

Raspberry Pi 4 Einstellungen

    1. Legen Sie die SD-Karte ein
  1. Schließen Sie das Display mit einem kleinen HDMI-Anschlusskabel an
    1. Stecken Sie den USB-Dongle der drahtlosen Maus und Tastatur in den USB-Anschluss Schließen Sie das 4,5-V-Netzteil an den Micro-USB-Anschluss an (schalten Sie den Schalter ein).

Wählen Sie "Japanisch", wählen Sie "Raspbian" als Betriebssystem und fahren Sie mit der Installation fort, um Rasbian zu starten.

raspbian.png

SSH- und VNC-Einstellungen

Referenzseite Ich habe versucht, mit SSH und VNC eine Verbindung zu Raspberry Pi 4 herzustellen

Weitere Informationen finden Sie im E-Book Book_Raspi.jpg Amazon-Verkaufsfläche für Bücher

Über WiFi auf Windows 10 PC

    1. So bedienen Sie Befehle mit SSH
  1. So zeigen Sie auf dem Bildschirm an, ohne das Display mit VNC zu verbinden Wird sanft mit Zahlen erklärt.

Eingebautes OpenCV

Qiita veröffentlicht am 11. Dezember 2019 OpenCV einfach in Raspberry Pi4 einfügen Zur Straße.

Ich habe es am 15. August 2020 installiert, aber die vorbereitete Version war die gleiche wie oben bei Qiita. Ich habe Ver 4.1.0.25 installiert.

pip3 install opencv-contrib-python==4.1.0.25

Führen Sie das Python-Programm aus

Die neueste Version von Raspbian verfügt über einen integrierten Mu-Editor, sodass Sie mit diesem Editor Python-Programme ausführen können. Mu_icon.png Mu_Editor.png Klicken Sie auf das mu-Symbol, um den Editor zu starten Mu1.png

Informationen zur Funktionsweise des Mu-Editors finden Sie in den folgenden HP https://codewith.mu/

Schließen Sie zwei USB-Kameras an

2 Arten von 2 Arten von USB-Kameras an den USB-Anschluss angeschlossen IMG1.jpg

Einfach zwei Aufnahmen fehlgeschlagen. Also habe ich beschlossen, die Bildschirmgröße und die FPS zu ändern. Hier ist die HP, die ich als Referenz verwendet habe https://dev.classmethod.jp/articles/opencv-webcam-setting/

Stellen Sie die Bildschirmgröße auf 800 x 600 Pixel ein 15FPS scheinen die Fähigkeit von RasPi4 aufgrund eines Fehlers oder einer sich nicht bewegenden Maus zu übertreffen. Ein Kaskus-Dauerbetrieb ist mit 10 Fps möglich Bei 5 fps verursachte die Bildschirmanzeige der beiden Kameras auch nach 10 Stunden keinen Fehler.

Es ist ein Code, der am Ende für eine lange Zeit auf dem Bildschirm angezeigt werden kann

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

#-------------------------------
#Web-Kamera
#-------------------------------
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)

    #Format / Auflösung / FPS-Einstellungen
    #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)

    #Erfassung von Format / Auflösung / 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:
        #-----------------------
        #Kamerabilderfassung
        ret1, frame1 = cap1.read()
        if(frame1 is None):
            continue

        #-----------------------
        #Kamerabilderfassung
        ret2, frame2 = cap2.read()
        if(frame2 is None):
            continue

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

        #---------------------------
        #Bildschirm
        cv2.imshow('frame1', im_h)

        #--------------------------------------
        #Beurteilung der Warteschlangeneingabe(1ms warten)
        #ohne waitKey, imshow()Kann nicht angezeigt werden
        # 'q'Verlassen Sie die Schleife, wenn Sie tippen
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
    #------------------------------
    #VideoCapture-Objekt zerstören
    cap1.release()
    cap2.release()
    cv2.destroyAllWindows()

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

Angezeigter Bildschirm

cam1.png

Mit dem folgenden Code wurden die Kamerabilder horizontal angeordnet und kombiniert und in einem Bild angezeigt.

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

Zukünftige Entwicklung

Eine Stereokamera wird unter Verwendung von zwei kostengünstigen USB-Kameras konstruiert, und der Abstand zum Objekt wird aus der Positionsabweichung der "Objekterkennung" berechnet und als Steuerauge des Roboterarms verwendet.

Betrachten Sie als nächstes ein leichtes "Objekterkennungs" -Programm auf RasPi4.

Recommended Posts

Schließen Sie zwei USB-Kameras an Raspberry Pi 4 an
Verbinden Sie Ihren Raspberry Pi mit Blynk mit Ihrem Smartphone
Stellen Sie mit Python auf Raspberry Pi eine Verbindung zu MySQL her
Ich habe mit Raspberry Pi gesprochen
Einführung von PyMySQL in Himbeer-Pi3
[Raspberry PI & Garmin GLO] Bis Bluetooth GPS mit Raspberry PI & Garmin GLO verbunden ist
Verbinden Sie Raspberry Pi mit "Python" mit der Alibaba Cloud IoT Platform
Port FreeRTOS auf Raspberry Pi 4B
USB über Ethernet mit Raspberry pi
Ausgabe von Raspberry Pi an Line
[Raspberry Pi] Python wurde standardmäßig in Python3 geändert
Raspberry Pi --1 - Zum ersten Mal (Schließen Sie einen Temperatursensor an, um die Temperatur anzuzeigen)
USB-Boot auf Raspberry Pi 4 Model B.
So installieren Sie NumPy auf Raspeye
Stellen Sie eine Verbindung zur Raspberry PI-Konsole her und zeigen Sie lokale IP- und SD-Informationen an
Verwendung von Raspeye Pie Camera Python
Stellen Sie eine Verbindung zu MySQL her
Vom Einrichten des Raspberry Pi bis zur Installation der Python-Umgebung
Maschinelles Lernen mit Raspberry Pi 4 und Coral USB Accelerator
Einfaches IoT, um mit Raspeye und MESH zu beginnen
Stellen wir uns den Raum mit Raspeltorte vor, Teil 1
Verwendung von Raspeye Relay Module Python
USB-Boot mit Raspberry Pi 4 Modell B (3) LVM Edition
Steuern Sie das Ein- und Ausschalten des USB-Anschlusses des Raspberry Pi
Ausgabe auf "7 Segment LED" mit Python mit Raspberry Pi 3!
Zeigen Sie das Bild der USB-Kamera mit OpenCV von Python mit Raspeye an
Was ist Raspberry Pi?
GPGPU mit Raspberry Pi
Pigpio auf Himbeer-Pi
Raspberry Pi Videokamera
Raspberry Pi Schlechtes Wissen
Lass uns Raspberry Pi machen?
Verbinden Sie Python mit MySQL
DigitalSignage mit Raspberry Pi
Raspberry Pi 4 Setup-Hinweise
Cython auf Raspberry Pi
Einfache Einführung in Home Hack mit Raspberry Pi und discord.py
Aktualisieren Sie Raspberry Pi Python mit pyenv auf 3.7 oder höher
Ich möchte Interrupts auf dem Raspberry Pi deaktivieren (≒ DI / EI)
Ich habe versucht, [eine bestimmte Aufgabe] mit einem Raspeltorte zu automatisieren
Ändern Sie die Meldung, die beim Anmelden bei Raspberry Pi angezeigt wird
So erhalten Sie die Temperatur vom SwitchBot-Thermo-Hygrometer mit Himbeer-Pi
[Raspberry Pi] Minimales Memo zur Erstellung von Gerätetreibern zur Ausgabe von GPIO
Ich habe die Daten von Raspberry Pi an GCP gesendet (kostenlos)
[Memo] Verbinden Sie Raspberry Pi Zero mit einem einzigen USB-Kabel mit dem Internet! (Verwenden Sie NFS, keine SD-Karte, Tastatur, Maus, Monitor erforderlich)