Smart fahrendes Auto | So verbinden Sie das Kameramodul mit dem Raspberry Pi-System

Ich bin Li Slowly.

Füllen Sie das Loch weiter aus.

Dieses Ching-Ming-Festival war aufgrund der Epidemie zu Hause beschränkt, daher musste ich weiterhin mein Raspberry Pi-Auto ausziehen und weiterhin Schwierigkeiten überwinden: Bilderkennung. Allerdings bin ich in den letzten Tagen nicht in den Bilderkennungsprozess eingestiegen. Ich stecke seit langem rein auf dem Hardware-(Kamera-)Zugriffssystem (Raspberry Pi) fest. Wenn das System abstürzt, muss ich das System neu installieren und konfigurieren Sie die Umgebung. Ich zeichne es nicht auf. Ein Artikel, der mir wirklich leid tut.

In diesem Artikel wird beschrieben, wie Sie mit dem Raspberry Pi-System auf das Kameramodul zugreifen und Bilder erhalten. Details unten.

Inhaltsverzeichnis:

1. Hardwarekonfiguration

2. Systemkonfiguration

3. Einfacher Test

4. OpenCV-Test

1. Hardwarekonfiguration

1 Raspberry Pi-Board: 4B

1 Kameramodul: USB-Kamera

1 kabelloses Tastatur- und Mausset

1 x 5-Zoll-Monitor

folgendermaßen:

 

Nach dem Anschließen der Drähte sieht es so aus:

Der Protagonist ist dieses Mal das Folgende (USB-Kameramodul).

2. Systemkonfiguration

Das Raspberry Pi-System wird mit dem offiziell heruntergeladenen Image installiert und die Version lautet wie folgt.

Wie kann man beurteilen, ob das Kameramodul mit dem Raspberry Pi verbunden ist?

Geben Sie vor und nach dem Anschließen des Kameramoduls den folgenden Inhalt in die Befehlszeile ein, um zu beurteilen, ob das System das Gerät erkannt hat. Wenn mehr vorhanden ist, handelt es sich um die USB-Kamera.

lsusb

Wenn es nicht erkannt wird, müssen Sie zur Systemkonfiguration gehen, um die Kamerafunktion zu aktivieren, und dann das System neu starten.

sudo raspi-config

Welches ist das Kameraaufnahmeprogramm im System?

Wenn das System die Kamera-Hardware erkennt, können Sie ein Foto machen und es ausprobieren, aber welche Kamera soll ich verwenden? Ebenso müssen Sie die Kamera ein- und ausstecken, um Folgendes zu sehen:

ll /dev/video*

Ich weiß nicht, warum ich hier zwei zusätzliche Kameras erkannt habe, Video0 und Video1, das ist mir egal, ich verwende einfach Video0.

An dieser Stelle muss erwähnt werden, dass video0 manchmal verschwindet, nachdem das Kamerabild mit der später beschriebenen Methode erfasst wurde, was eine weitere Aufnahme unmöglich macht. Nur ein Neustart kann das Problem lösen. Daher muss hier die folgende Konfiguration durchgeführt werden, um es zu festigen. Lösung: Öffnen Sie /etc/modules mit Root-Rechten und fügen Sie eine Zeile hinzu: bcm2835-v4l2 (beachten Sie, dass hier 4l2 und nicht 412 steht), und starten Sie dann den Raspberry Pi neu.

3. Wirkungstest – einfacher Test

Wie mache ich ein Foto mit einer Kamera?

Wenn es sich um eine offizielle CSI-Schnittstellenkamera handelt, verwenden Sie den folgenden Befehl:

raspistill -o image_name.jpg

Ich verwende hier eine Kamera mit USB-Schnittstelle und verwende den folgenden Befehl:

fswebcam /dev/video0 ./img1.jpg

Bevor Sie dies jedoch verwenden, verfügt das System möglicherweise nicht über dieses Programm. Sie müssen es installieren.

sudo apt-get install fswebcam

Hier ist der glückliche Test:

Suchen Sie das Bild unter diesem Pfad und doppelklicken Sie, um es wie folgt zu öffnen:

Endlich kann ich Bilder machen, was meinem Ziel der Bilderkennung einen großen Schritt näher kommt.

Wie nimmt man Videos mit der Kamera auf?

Das Obige besteht darin, die Kamera durch das Programm zu steuern, um Bilder aufzunehmen und zu speichern. Aber wenn die Bilderkennung tatsächlich durchgeführt wird, sollten die von der Kamera erfassten Daten Videodaten sein? Oder im Videoformat zur bequemen Wiedergabe. Wie erhält man hier den Effekt des Videos?

Methode: Sie können ein Programm installieren [luvcview]

sudo apt-get install luvcview

Wenn Sie dieses Programm dann direkt ausführen, können Sie ein Fenster auf dem Desktop öffnen und die Eingaben von der Kamera in Echtzeit abrufen. Hey, glücklich.

luvcview

Der obige Inhalt ist nur ein einfacher Kamerafunktionstest. Zu diesem Zeitpunkt gibt es tatsächlich viele Möglichkeiten, im Nachhinein zu spielen, z. B. die Verwendung von Fernzugriffskameras zur Erfassung von Inhalten, um Überwachungseffekte zu erzielen. Aber mein Ziel hier ist es, die Bilderkennungsfunktion des selbstfahrenden Autos zu studieren, sodass ich mir darüber keine Sorgen machen muss.

4. OpenCV-Test

Verwenden Sie Python, um Kamerainhalte abzurufen:

Um eine Bilderkennung durchzuführen, besteht die herkömmliche Methode darin, opencv zum Erfassen von Bildern zu verwenden und dann eine weitere Erkennung durchzuführen. Darauf aufbauend werden im Folgenden einige einfache Bildaufnahmetests durchgeführt.

Zuerst müssen Sie die Pakete opencv und numpy auf dem System installieren. (Das Numpy-Paket wird im Allgemeinen mit dem System geliefert. Der Rest besteht darin, die folgenden beiden Pakete zu installieren.)

sudo apt-get install libopencv-devsudo apt-get install python-opencv

Führen Sie nach der Installation Python in der Befehlszeile aus, importieren Sie CV2 und überprüfen Sie übrigens die Version von CV2. Wenn die folgende Schnittstelle angezeigt wird, bedeutet dies Erfolg.

​​​​​​​

pythonimport cv2cv2.__version__

Hinweis: Warum heißt es cv2 statt opencv? Dies liegt daran, dass OpenCV auf Basis von C/C++ entwickelt wurde und es zwei Versionen gibt: Die „CV“-Versions-API wurde in der C-Sprache entwickelt und die „CV2“-Versions-API wurde auf Basis der C++-Sprache entwickelt Beibehaltung der Abwärtskompatibilität Sex heißt „cv2“, aber wir alle wissen, dass cv2 das ursprüngliche OpenCV ist.

Der nächste Schritt besteht darin, dieses Paket zum Testen der Bilderfassung zu verwenden.

Schreiben Sie den folgenden Code:​​​​​​​​

#-*- coding:UTF-8 -*-import cv2
img_count = 0
cap = cv2.VideoCapture(0)print("Is the camera opened?",cap.isOpened())
# set the size of image.cap.set(cv2.CAP_PROP_FRAME_WIDTH,500)cap.set(cv2.CAP_PROP_FRAME_HEIGHT,500)# create a window.cv2.namedWindow('image_win',flags=cv2.WINDOW_NORMAL | cv2.WINDOW_KEEPRATIO | cv2.WINDOW_GUI_EXPANDED)
while(True):    ret,frame = cap.read()# ret is the status,frame is the image.if not ret:        print("can not take a image, exit...")break    cv2.imshow('image_win',frame)#print("frame: ",frame)    key = cv2.waitKey(1)#get the input from keyboardif key == ord('q'):        print("exit the program normally...")breakelif key == ord('c'):        cv2.imwrite("{}.png".format(img_count),frame)# save the image.        print("a png is saved as: {}.png".format(img_count))        img_count += 1cap.release()cv2.destroyAllWindows()#

Speichern Sie den obigen Code als [cv2_get_camera_frame.py] und führen Sie das Skript in der Befehlszeile aus.

python cv2_get_camera_frame.py

Nach einer Weile öffnet sich ein Fenster zur Wiedergabe des von der Kamera aufgenommenen Echtzeitmaterials. Folgendermaßen:

Drücken Sie die Tastenkombination „c“ auf der Tastatur, um einige Bilder zum Speichern aufzunehmen, wie unten gezeigt:

Über die Einstellungen im Code können Sie mit c Bilder aufnehmen und mit q das aktuelle Programm starten.

Übrigens habe ich ein Testeffektvideo vorbereitet: (veröffentlicht auf dem öffentlichen WeChat-Konto [Car Road Slowly])

In Ordnung. Der Systemintegrationstest von Soft- und Hardware ist oben abgeschlossen, dann kann der Bilderkennungstest richtig losgehen. Bis zum nächsten Mal.

Dieser Artikel ist beendet.

Supongo que te gusta

Origin blog.csdn.net/weixin_50262060/article/details/123977015
Recomendado
Clasificación