Gesichtserkennung basierend auf Raspberry Pi opencv

Gesichtserkennung basierend auf Raspberry Pi opencv

Inhaltsverzeichnis

  • 1. Experimenteller Zweck
  • 2. Kamerakonfiguration
    • 1. Schritte zur Hardware-Installation
    • 2. Schritte zur Softwareinstallation
  • 3. OpenCV-Installation
    • 1. Einführung in OpenCV
    • 2. OpenCV-Installationsschritte auf Python3
  • 4. Führen Sie das Gesichtserkennungsprojekt aus
    • 1. Hardware-Vorbereitung
    • 2. Vorbereitung der Umgebung
    • 3. Programmcode
      • (1) Erfassung von Gesichtsdaten
      • (2)Schulung des Erkenners
      • (3) Gesichtserkennung
  • 5. Zusammenfassung

1. Experimenteller Zweck

Um eine Bilderkennung zu erreichen, besteht der erste Schritt darin, Bilder zu erhalten. Daher ist es sehr wichtig zu wissen, wie die Raspberry Pi CSI-Kamera installiert und verwendet wird.

  1. Verstehen Sie die grundlegenden Funktionsprinzipien, Installation und Verwendung von Kameras
  2. Verstehen Sie opencv und konfigurieren Sie die Gesichtserkennungsumgebung
  3. Sammeln Sie Gesichtsinformationen
  4. Während des Trainings gesammelte Gesichtsinformationen
  5. Nimmt als Parameter den erfassten Teil des Gesichts, der analysiert werden soll, und gibt seinen möglichen Besitzer zurück, unter Angabe seiner ID und wie sehr der Erkenner dieser Übereinstimmung vertraut.

2. Kamerakonfiguration

Abbildung. Raspberry Pi CSI-Kamera

1. Schritte zur Hardware-Installation

  1. Suchen Sie die CSI-Schnittstelle (die CSI-Schnittstelle befindet sich neben der Ethernet-Schnittstelle) und heben Sie das dunkle Klebeband ab.
  2. Ziehen Sie die CSI-Schnittstellenabdeckung hoch.
  3. Nehmen Sie das Kameramodul und ziehen Sie die am Objektiv angebrachte Kunststoffschutzfolie ab. Stellen Sie sicher, dass der gelbe Teil der Platine (die Seite mit den Worten) perfekt installiert ist (Sie können leicht auf den gelben Teil drücken, um sicherzustellen, dass die Installation perfekt ist).
  4. Stecken Sie das Kabel in die CSI-Schnittstelle. Denken Sie daran, dass die Seite mit dem blauen Klebeband zum Ethernet-Port zeigen sollte. Nachdem Sie sich vergewissert haben, dass das Kabel installiert ist, ziehen Sie ebenfalls die Schallwand nach unten.

2. Schritte zur Softwareinstallation

(1) Rufen Sie das Raspberry Pi-Terminalsystem auf und geben Sie die folgenden Befehle ein, um den neuesten Kernel, die neueste GPU-Firmware und die neuesten Anwendungen herunterzuladen und zu installieren

<span style="background-color:#f5f5f5"><span style="color:#333333"><code>sudo apt-get update
sudo apt-get upgrade
</code></span></span>

(2) Führen Sie den folgenden Befehl im Raspberry Pi-Konfigurationstool aus, um das Kameramodul zu aktivieren

<span style="background-color:#f5f5f5"><span style="color:#333333"><code>sudo raspi-config
</code></span></span>

 

Wählen Sie nacheinander Schnittstellenoptionen——>Kamera——>Aktivieren——>Registerkarte——>Fertig stellen

(3) Starten Sie Raspberry Pi neu

<span style="background-color:#f5f5f5"><span style="color:#333333"><code>sudo reboot
</code></span></span>

(4)Kamera testen

Geben Sie die Befehlszeile ein. Wenn Sie die folgenden Ergebnisse erhalten, beweist dies, dass die Kameraverbindung erfolgreich war.

<span style="background-color:#f5f5f5"><span style="color:#333333"><code>vcgencmd get_camera
</code></span></span>

 
Geben Sie den Befehl ein und ein Bild mit dem Namen image1.jpg wird auf dem Desktop angezeigt.

<span style="background-color:#f5f5f5"><span style="color:#333333"><code>raspistill -o Desktop/image1.jpg
</code></span></span>

 
(5) Zu diesem Zeitpunkt ist die Software- und Hardwarekonfiguration der Raspberry Pi-Kamera abgeschlossen.

3. OpenCV-Installation

1. Einführung in OpenCV

OpenCV ist eine Open-Source-Computer-Vision-Bibliothek mit leistungsstarken integrierten Funktionen und einer Open-Source-Community. OpenCV kann in Kombination mit dem tragbaren Open Source und günstigen Raspberry Pi das Video von der Raspberry Pi-Kamera PiCamera direkt lesen, um verschiedene Computer-Vision-Entwicklungen wie Gesichtserkennung, Kantenerkennung, semantische Segmentierung, autonomes Fahren und Bilderkennung durchzuführen.

2. OpenCV-Installationsschritte auf Python3

(1) Raspberry Pi aktualisieren

<span style="background-color:#f5f5f5"><span style="color:#333333"><code>sudo apt-get update
sudo apt-get upgrade
</code></span></span>

(2) Abhängigkeiten installieren

<span style="background-color:#f5f5f5"><span style="color:#333333"><code>sudo apt-get install build-essential cmake pkg-config
sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
sudo apt-get install libxvidcore-dev libx264-dev
sudo apt-get install libgtk2.0-dev libgtk-3-dev
sudo apt-get install libatlas-base-dev gfortran
</code></span></span>

(3)Installieren Sie Python3

<span style="background-color:#f5f5f5"><span style="color:#333333"><code>sudo apt-get install python3 python3-setuptools python3-dev
</code></span></span>

(4) Pip-Tool einrichten

<span style="background-color:#f5f5f5"><span style="color:#333333"><code>wget https://bootstrap.pypa.io/get-pip.py
sudo python3 get-pip.py
</code></span></span>

 

(5) Erhöhen Sie den Swap-Speicherplatz
. Suchen Sie die Variable CONF_SWAPSIZE und ändern Sie 100 auf 1024, was bedeutet, dass die Swap-Größe von 100 MB auf 1024 MB erhöht wird. Dies kann OpenCV die Verwendung von 4-Core-Kompilierung Strg + O zum Speichern und Strg + D erleichtern beenden.

<span style="background-color:#f5f5f5"><span style="color:#333333"><code>sudo nano /etc/dphys-swapfile
</code></span></span>

 

(6) Starten Sie die Auslagerungsdatei neu

<span style="background-color:#f5f5f5"><span style="color:#333333"><code>sudo /etc/init.d/dphys-swapfile stop
sudo /etc/init.d/dphys-swapfile start
</code></span></span>

(7) Laden Sie OpenCV3.4.1 und OpenCV-contrib herunter

<span style="background-color:#f5f5f5"><span style="color:#333333"><code>wget -O opencv.zip https://github.com/Itseez/opencv/archive/3.4.1.zip
wget -O opencv_contrib.zip https://github.com/Itseez/opencv_contrib/archive/3.4.1.zip
</code></span></span>

(8) Entpacken Sie das OpenCV-Installationspaket

<span style="background-color:#f5f5f5"><span style="color:#333333"><code>unzip opencv.zip
unzip opencv_contrib.zip
</code></span></span>

(9) Numpy installieren

<span style="background-color:#f5f5f5"><span style="color:#333333"><code>sudo pip3 install numpy
</code></span></span>

(10) Legen Sie die Cmake-Kompilierungsparameter fest. Beachten Sie, dass zwischen dem Parameternamen, dem Gleichheitszeichen und dem Parameterwert keine Leerzeichen stehen dürfen. Es gibt jedoch Leerzeichen vor dem „\“ am Ende jeder Zeile und dem Parameterwert endet mit zwei englischen Punkten.

<span style="background-color:#f5f5f5"><span style="color:#333333"><code>cd /home/pi
cd ~/opencv-3.4.1/
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE \
      -D CMAKE_INSTALL_PREFIX=/usr/local \
      -D INSTALL_C_EXAMPLES=ON \
      -D INSTALL_PYTHON_EXAMPLES=ON \
      -D OPENCV_EXTRA_MODULES_PATH=~/opencv/opencv_contrib-3.4.1/modules \
      -D ENABLE_PRECOMPILED_HEADERS=OFF \
      -D BUILD_EXAMPLES=ON ..
</code></span></span>

(11)Kompilieren und installieren Sie OpenCV

<span style="background-color:#f5f5f5"><span style="color:#333333"><code>sudo make install
</code></span></span>

(12)Dynamische Linkbibliothek aktualisieren

<span style="background-color:#f5f5f5"><span style="color:#333333"><code>sudo ldconfig
</code></span></span>

(13) Testen Sie nach der Installation die OpenCV-Version

<span style="background-color:#f5f5f5"><span style="color:#333333"><code>python3
import cv2
cv2.__version__
</code></span></span>

 
Das Erscheinen der opencv-Version 3.4.1 bedeutet, dass die Installation abgeschlossen ist!
(14) Swap-Speicherplatz wiederherstellen

<span style="background-color:#f5f5f5"><span style="color:#333333"><code>sudo nano /etc/dphys-swapfile
</code></span></span>

Ändern Sie die Variable CONF_SWAPSIZE von 1024 auf 100

(15) Starten Sie die Auslagerungsdatei neu

<span style="background-color:#f5f5f5"><span style="color:#333333"><code>sudo /etc/init.d/dphys-swapfile stop
sudo /etc/init.d/dphys-swapfile start
</code></span></span>

4. Führen Sie das Gesichtserkennungsprojekt aus

Einführung in die Verwendung von OpenCV und Python zum Abschließen eines Gesichtserkennungsprojekts auf Raspberry Pi

1. Hardware-Vorbereitung

  1. Raspberry Pi 4B
  2. Stellen Sie bei Raspberry Pi piCam
     
    bitte sicher, dass die Kamera gemäß den oben genannten Installationsschritten installiert wird, um zu verhindern, dass die Kamera später keine Erkennung durchführen kann.

2. Vorbereitung der Umgebung

1. Vorbereitung der OpenCV-Bibliothek
2. Vorbereitung der Python3-Sprache
3. Download des Gesichtserkennungscodes

(1) Rufen Sie die Website  https://github.com/Mjrovai/OpenCV-Face-Recognition
 
auf (2) Laden Sie das Postleitzahl-Komprimierungspaket herunter und speichern Sie die Datei im Verzeichnis Raspberry Pi/home/pi entpacken

3. Programmcode

OpenCV ist sehr recheneffizient und für Echtzeitanwendungen konzipiert. Es eignet sich sehr gut für die Echtzeit-Gesichtserkennung mithilfe von Kameras. Um ein vollständiges Gesichtserkennungsprojekt zu erstellen, müssen wir drei Phasen abschließen:
 

(1) Erfassung von Gesichtsdaten

Die grundlegendste Aufgabe der Gesichtserkennung ist die Gesichtserkennung . Sie müssen zunächst Gesichtsinformationen sammeln (Phase 1), um sie zu identifizieren, wenn Sie sie in Zukunft mit dem erfassten neuen Gesicht vergleichen (Phase 3). Die spezifischen Schritte sind wie folgt: a) Öffnen Sie das Terminal und geben Sie das Verzeichnis /home/pi/ ein. OpenCV-
Face-Recognition-master/FacialRecognition

<span style="background-color:#f5f5f5"><span style="color:#333333"><code>cd /home/pi/OpenCV-Face-Recognition-master/FacialRecognition
</code></span></span>

b) Erstellen Sie einen Datensatzordner zum Speichern von Gesichtsproben und einen Trainerordner zum Speichern von Trainingsdaten.

<span style="background-color:#f5f5f5"><span style="color:#333333"><code>mkdir dataset
mkdir trainer
</code></span></span>

c) Öffnen Sie 01_face_dataset.py.
 
d) Führen Sie den Code „Ausführen“ aus, geben Sie die Benutzer-ID ein (kann eine Ganzzahl wie 1, 2, 3, 4 usw. sein) und sehen Sie dann, wie das Bild-Video-Fenster angezeigt wird. Zu diesem Zeitpunkt Gesicht Informationen werden gesammelt, zielen Sie auf das Gesicht und warten Sie geduldig.

e) Öffnen Sie den Datensatzordner und Sie können die gesammelten Gesichtsbilder sehen. Lesen Sie die gesammelten Bilder, umso genauer wird die Gesichtserkennung sein.

Tipps:
Wenn das Gesicht auf dem Kopf steht , können Sie # hinzufügen, um den folgenden Code auszukommentieren.

(2) Schulung des Erkenners

In Stufe 2 müssen wir alle Benutzerdaten aus dem Datensatz extrahieren und den OpenCV-Erkenner trainieren, was direkt durch bestimmte OpenCV-Funktionen erfolgen kann. Dieser Schritt wird als .yml-Datei im Verzeichnis „trainer/“ gespeichert.
a) Stellen Sie sicher, dass die PIL-Bibliothek in Rpi installiert wurde. Wenn nicht, führen Sie den folgenden Befehl im Terminal aus:

<span style="background-color:#f5f5f5"><span style="color:#333333"><code>pip install pillow
</code></span></span>

b) Öffnen Sie 02_face_training.py  und führen Sie es aus.
c) Warten Sie, bis der Vorgang abgeschlossen ist
 

(3) Gesichtserkennung

b) Öffnen Sie 03_face_recognition.py  und führen Sie es aus. Sie können die folgenden Ergebnisse sehen: Die Gesichtserkennung ist erfolgreich und andere spezifische Funktionen können Sie selbst erkunden.

 

5. Zusammenfassung

Beim Abschluss des Gesichtserkennungsprojekts bin ich dieses Mal auf viele kleine Schwierigkeiten gestoßen. Die spezifischen Fehler und Gewinne sind wie folgt:

  1. Als ich die Kamera zum ersten Mal installierte, tauchte beim Testen der Kamera immer wieder eine Timeout-Fehlermeldung auf. Später, nach der Fehlerbehebung, wurde bestätigt, dass das Problem durch die Instabilität der Kamera verursacht wurde. Ich habe das Kamerakabel entfernt und es wieder installiert, damit es normal funktioniert .
  2. Bei der Installation von OpenCV dauerte der Kompilierungsprozess lange. Als ich es installierte, dauerte die Kompilierung allein vier oder fünf Stunden. Später suchte ich im Internet nach Informationen und stellte fest, dass es mit vier Kernen kompiliert werden konnte, also erweiterte ich das Swap-Speicherplatz des Raspberry Pi und beschleunigte die Kompilierungsgeschwindigkeit. Darüber hinaus gibt es einige Fehler während des Kompilierungsvorgangs:

<span style="background-color:#f5f5f5"><span style="color:#333333"><code>错误信息1:
fatal error: boostdesc_bgm.i: 没有那个文件或目录
           #include "boostdesc_bgm.i"
</code></span></span>

Lösung:
Dateien gehen bei der Installation von opencv auf Raspberry Pi verloren:
Link: Baidu Netdisk Bitte geben Sie den Extraktionscode ein. Extraktionscode
: mbsj

<span style="background-color:#f5f5f5"><span style="color:#333333"><code>将这些文件复制到/home/pi/opencv/opencv_contrib-3.4.1/modules/xfeatures2d/src目录即可继续编译。建议大家直接用xftp的方式将文件复制到该目录下即可。
</code></span></span>

<span style="background-color:#f5f5f5"><span style="color:#333333"><code>错误信息2:
 /home/pi/opencv/opencv-3.4.1/modules/stitching/include/opencv2/stitching/detail
 /matchers.hpp:52:12: fatal error: opencv2/xfeatures2d/cuda.hpp: 没有那个文件或目录
</code></span></span>

Lösung:

<span style="background-color:#f5f5f5"><span style="color:#333333"><code>错误的原因是缺少cuda.hpp文件,这些文件在opencv_contrib-3.4.1/modules/xfeatures2d/include/opencv2目录下,所以直接将这个目录下的文件拷贝到opencv-3.4.1/modules/stitching/include/opencv2/即可
</code></span></span>

Durch diese experimentelle Studie habe ich zunächst die spezifischen Schritte gemeistert, die zum Erkennen von Gesichtern erforderlich sind, und auch viel erweitertes Wissen gelernt. Der laufende Code ist hauptsächlich Open-Source-Python-Code. Python ist eine hochintegrierte Sprache. Was wir lernen Sie können' Wenn Sie es verwenden, wird die unterste Ebene nicht angezeigt. Wenn Sie es verwenden, können Sie die Funktion einfach direkt aufrufen. Dies kann ein Hauptgrund dafür sein, warum Python so beliebt ist. Dieses Experiment vermittelte unserer Gruppe auch ein gewisses Verständnis für den Raspberry Pi.

Gesichtserkennung basierend auf Raspberry Pi opencv

Inhaltsverzeichnis

  • 1. Experimenteller Zweck
  • 2. Kamerakonfiguration
    • 1. Schritte zur Hardware-Installation
    • 2. Schritte zur Softwareinstallation
  • 3. OpenCV-Installation
    • 1. Einführung in OpenCV
    • 2. OpenCV-Installationsschritte auf Python3
  • 4. Führen Sie das Gesichtserkennungsprojekt aus
    • 1. Hardware-Vorbereitung
    • 2. Vorbereitung der Umgebung
    • 3. Programmcode
      • (1) Erfassung von Gesichtsdaten
      • (2)Schulung des Erkenners
      • (3) Gesichtserkennung
  • 5. Zusammenfassung

1. Experimenteller Zweck

Um eine Bilderkennung zu erreichen, besteht der erste Schritt darin, Bilder zu erhalten. Daher ist es sehr wichtig zu wissen, wie die Raspberry Pi CSI-Kamera installiert und verwendet wird.

  1. Verstehen Sie die grundlegenden Funktionsprinzipien, Installation und Verwendung von Kameras
  2. Verstehen Sie opencv und konfigurieren Sie die Gesichtserkennungsumgebung
  3. Sammeln Sie Gesichtsinformationen
  4. Während des Trainings gesammelte Gesichtsinformationen
  5. Nimmt als Parameter den erfassten Teil des Gesichts, der analysiert werden soll, und gibt seinen möglichen Besitzer zurück, unter Angabe seiner ID und wie sehr der Erkenner dieser Übereinstimmung vertraut.

2. Kamerakonfiguration

Abbildung. Raspberry Pi CSI-Kamera

1. Schritte zur Hardware-Installation

  1. Suchen Sie die CSI-Schnittstelle (die CSI-Schnittstelle befindet sich neben der Ethernet-Schnittstelle) und heben Sie das dunkle Klebeband ab.
  2. Ziehen Sie die CSI-Schnittstellenabdeckung hoch.
  3. Nehmen Sie das Kameramodul und ziehen Sie die am Objektiv angebrachte Kunststoffschutzfolie ab. Stellen Sie sicher, dass der gelbe Teil der Platine (die Seite mit den Worten) perfekt installiert ist (Sie können leicht auf den gelben Teil drücken, um sicherzustellen, dass die Installation perfekt ist).
  4. Stecken Sie das Kabel in die CSI-Schnittstelle. Denken Sie daran, dass die Seite mit dem blauen Klebeband zum Ethernet-Port zeigen sollte. Nachdem Sie sich vergewissert haben, dass das Kabel installiert ist, ziehen Sie ebenfalls die Schallwand nach unten.

2. Schritte zur Softwareinstallation

(1) Rufen Sie das Raspberry Pi-Terminalsystem auf und geben Sie die folgenden Befehle ein, um den neuesten Kernel, die neueste GPU-Firmware und die neuesten Anwendungen herunterzuladen und zu installieren

<span style="background-color:#f5f5f5"><span style="color:#333333"><code>sudo apt-get update
sudo apt-get upgrade
</code></span></span>

(2) Führen Sie den folgenden Befehl im Raspberry Pi-Konfigurationstool aus, um das Kameramodul zu aktivieren

<span style="background-color:#f5f5f5"><span style="color:#333333"><code>sudo raspi-config
</code></span></span>

 

Wählen Sie nacheinander Schnittstellenoptionen——>Kamera——>Aktivieren——>Registerkarte——>Fertig stellen

(3) Starten Sie Raspberry Pi neu

<span style="background-color:#f5f5f5"><span style="color:#333333"><code>sudo reboot
</code></span></span>

(4)Kamera testen

Geben Sie die Befehlszeile ein. Wenn Sie die folgenden Ergebnisse erhalten, beweist dies, dass die Kameraverbindung erfolgreich war.

<span style="background-color:#f5f5f5"><span style="color:#333333"><code>vcgencmd get_camera
</code></span></span>

 
Geben Sie den Befehl ein und ein Bild mit dem Namen image1.jpg wird auf dem Desktop angezeigt.

<span style="background-color:#f5f5f5"><span style="color:#333333"><code>raspistill -o Desktop/image1.jpg
</code></span></span>

 
(5) Zu diesem Zeitpunkt ist die Software- und Hardwarekonfiguration der Raspberry Pi-Kamera abgeschlossen.

3. OpenCV-Installation

1. Einführung in OpenCV

OpenCV ist eine Open-Source-Computer-Vision-Bibliothek mit leistungsstarken integrierten Funktionen und einer Open-Source-Community. OpenCV kann in Kombination mit dem tragbaren Open Source und günstigen Raspberry Pi das Video von der Raspberry Pi-Kamera PiCamera direkt lesen, um verschiedene Computer-Vision-Entwicklungen wie Gesichtserkennung, Kantenerkennung, semantische Segmentierung, autonomes Fahren und Bilderkennung durchzuführen.

2. OpenCV-Installationsschritte auf Python3

(1) Raspberry Pi aktualisieren

<span style="background-color:#f5f5f5"><span style="color:#333333"><code>sudo apt-get update
sudo apt-get upgrade
</code></span></span>

(2) Abhängigkeiten installieren

<span style="background-color:#f5f5f5"><span style="color:#333333"><code>sudo apt-get install build-essential cmake pkg-config
sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
sudo apt-get install libxvidcore-dev libx264-dev
sudo apt-get install libgtk2.0-dev libgtk-3-dev
sudo apt-get install libatlas-base-dev gfortran
</code></span></span>

(3)Installieren Sie Python3

<span style="background-color:#f5f5f5"><span style="color:#333333"><code>sudo apt-get install python3 python3-setuptools python3-dev
</code></span></span>

(4) Pip-Tool einrichten

<span style="background-color:#f5f5f5"><span style="color:#333333"><code>wget https://bootstrap.pypa.io/get-pip.py
sudo python3 get-pip.py
</code></span></span>

 

(5) Erhöhen Sie den Swap-Speicherplatz
. Suchen Sie die Variable CONF_SWAPSIZE und ändern Sie 100 auf 1024, was bedeutet, dass die Swap-Größe von 100 MB auf 1024 MB erhöht wird. Dies kann OpenCV die Verwendung von 4-Core-Kompilierung Strg + O zum Speichern und Strg + D erleichtern beenden.

<span style="background-color:#f5f5f5"><span style="color:#333333"><code>sudo nano /etc/dphys-swapfile
</code></span></span>

 

(6) Starten Sie die Auslagerungsdatei neu

<span style="background-color:#f5f5f5"><span style="color:#333333"><code>sudo /etc/init.d/dphys-swapfile stop
sudo /etc/init.d/dphys-swapfile start
</code></span></span>

(7) Laden Sie OpenCV3.4.1 und OpenCV-contrib herunter

<span style="background-color:#f5f5f5"><span style="color:#333333"><code>wget -O opencv.zip https://github.com/Itseez/opencv/archive/3.4.1.zip
wget -O opencv_contrib.zip https://github.com/Itseez/opencv_contrib/archive/3.4.1.zip
</code></span></span>

(8) Entpacken Sie das OpenCV-Installationspaket

<span style="background-color:#f5f5f5"><span style="color:#333333"><code>unzip opencv.zip
unzip opencv_contrib.zip
</code></span></span>

(9) Numpy installieren

<span style="background-color:#f5f5f5"><span style="color:#333333"><code>sudo pip3 install numpy
</code></span></span>

(10) Legen Sie die Cmake-Kompilierungsparameter fest. Beachten Sie, dass zwischen dem Parameternamen, dem Gleichheitszeichen und dem Parameterwert keine Leerzeichen stehen dürfen. Es gibt jedoch Leerzeichen vor dem „\“ am Ende jeder Zeile und dem Parameterwert endet mit zwei englischen Punkten.

<span style="background-color:#f5f5f5"><span style="color:#333333"><code>cd /home/pi
cd ~/opencv-3.4.1/
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE \
      -D CMAKE_INSTALL_PREFIX=/usr/local \
      -D INSTALL_C_EXAMPLES=ON \
      -D INSTALL_PYTHON_EXAMPLES=ON \
      -D OPENCV_EXTRA_MODULES_PATH=~/opencv/opencv_contrib-3.4.1/modules \
      -D ENABLE_PRECOMPILED_HEADERS=OFF \
      -D BUILD_EXAMPLES=ON ..
</code></span></span>

(11)Kompilieren und installieren Sie OpenCV

<span style="background-color:#f5f5f5"><span style="color:#333333"><code>sudo make install
</code></span></span>

(12)Dynamische Linkbibliothek aktualisieren

<span style="background-color:#f5f5f5"><span style="color:#333333"><code>sudo ldconfig
</code></span></span>

(13) Testen Sie nach der Installation die OpenCV-Version

<span style="background-color:#f5f5f5"><span style="color:#333333"><code>python3
import cv2
cv2.__version__
</code></span></span>

 
Das Erscheinen der opencv-Version 3.4.1 bedeutet, dass die Installation abgeschlossen ist!
(14) Swap-Speicherplatz wiederherstellen

<span style="background-color:#f5f5f5"><span style="color:#333333"><code>sudo nano /etc/dphys-swapfile
</code></span></span>

Ändern Sie die Variable CONF_SWAPSIZE von 1024 auf 100

(15) Starten Sie die Auslagerungsdatei neu

<span style="background-color:#f5f5f5"><span style="color:#333333"><code>sudo /etc/init.d/dphys-swapfile stop
sudo /etc/init.d/dphys-swapfile start
</code></span></span>

4. Führen Sie das Gesichtserkennungsprojekt aus

Einführung in die Verwendung von OpenCV und Python zum Abschließen eines Gesichtserkennungsprojekts auf Raspberry Pi

1. Hardware-Vorbereitung

  1. Raspberry Pi 4B
  2. Stellen Sie bei Raspberry Pi piCam
     
    bitte sicher, dass die Kamera gemäß den oben genannten Installationsschritten installiert wird, um zu verhindern, dass die Kamera später keine Erkennung durchführen kann.

2. Vorbereitung der Umgebung

1. Vorbereitung der OpenCV-Bibliothek
2. Vorbereitung der Python3-Sprache
3. Download des Gesichtserkennungscodes

(1) Rufen Sie die Website  https://github.com/Mjrovai/OpenCV-Face-Recognition
 
auf (2) Laden Sie das Postleitzahl-Komprimierungspaket herunter und speichern Sie die Datei im Verzeichnis Raspberry Pi/home/pi entpacken

3. Programmcode

OpenCV ist sehr recheneffizient und für Echtzeitanwendungen konzipiert. Es eignet sich sehr gut für die Echtzeit-Gesichtserkennung mithilfe von Kameras. Um ein vollständiges Gesichtserkennungsprojekt zu erstellen, müssen wir drei Phasen abschließen:
 

(1) Erfassung von Gesichtsdaten

Die grundlegendste Aufgabe der Gesichtserkennung ist die Gesichtserkennung . Sie müssen zunächst Gesichtsinformationen sammeln (Phase 1), um sie zu identifizieren, wenn Sie sie in Zukunft mit dem erfassten neuen Gesicht vergleichen (Phase 3). Die spezifischen Schritte sind wie folgt: a) Öffnen Sie das Terminal und geben Sie das Verzeichnis /home/pi/ ein. OpenCV-
Face-Recognition-master/FacialRecognition

<span style="background-color:#f5f5f5"><span style="color:#333333"><code>cd /home/pi/OpenCV-Face-Recognition-master/FacialRecognition
</code></span></span>

b) Erstellen Sie einen Datensatzordner zum Speichern von Gesichtsproben und einen Trainerordner zum Speichern von Trainingsdaten.

<span style="background-color:#f5f5f5"><span style="color:#333333"><code>mkdir dataset
mkdir trainer
</code></span></span>

c) Öffnen Sie 01_face_dataset.py.
 
d) Führen Sie den Code „Ausführen“ aus, geben Sie die Benutzer-ID ein (kann eine Ganzzahl wie 1, 2, 3, 4 usw. sein) und sehen Sie dann, wie das Bild-Video-Fenster angezeigt wird. Zu diesem Zeitpunkt Gesicht Informationen werden gesammelt, zielen Sie auf das Gesicht und warten Sie geduldig.

e) Öffnen Sie den Datensatzordner und Sie können die gesammelten Gesichtsbilder sehen. Lesen Sie die gesammelten Bilder, umso genauer wird die Gesichtserkennung sein.

Tipps:
Wenn das Gesicht auf dem Kopf steht , können Sie # hinzufügen, um den folgenden Code auszukommentieren.

(2) Schulung des Erkenners

In Stufe 2 müssen wir alle Benutzerdaten aus dem Datensatz extrahieren und den OpenCV-Erkenner trainieren, was direkt durch bestimmte OpenCV-Funktionen erfolgen kann. Dieser Schritt wird als .yml-Datei im Verzeichnis „trainer/“ gespeichert.
a) Stellen Sie sicher, dass die PIL-Bibliothek in Rpi installiert wurde. Wenn nicht, führen Sie den folgenden Befehl im Terminal aus:

<span style="background-color:#f5f5f5"><span style="color:#333333"><code>pip install pillow
</code></span></span>

b) Öffnen Sie 02_face_training.py  und führen Sie es aus.
c) Warten Sie, bis der Vorgang abgeschlossen ist
 

(3) Gesichtserkennung

b) Öffnen Sie 03_face_recognition.py  und führen Sie es aus. Sie können die folgenden Ergebnisse sehen: Die Gesichtserkennung ist erfolgreich und andere spezifische Funktionen können Sie selbst erkunden.

 

5. Zusammenfassung

Beim Abschluss des Gesichtserkennungsprojekts bin ich dieses Mal auf viele kleine Schwierigkeiten gestoßen. Die spezifischen Fehler und Gewinne sind wie folgt:

  1. Als ich die Kamera zum ersten Mal installierte, tauchte beim Testen der Kamera immer wieder eine Timeout-Fehlermeldung auf. Später, nach der Fehlerbehebung, wurde bestätigt, dass das Problem durch die Instabilität der Kamera verursacht wurde. Ich habe das Kamerakabel entfernt und es wieder installiert, damit es normal funktioniert .
  2. Bei der Installation von OpenCV dauerte der Kompilierungsprozess lange. Als ich es installierte, dauerte die Kompilierung allein vier oder fünf Stunden. Später suchte ich im Internet nach Informationen und stellte fest, dass es mit vier Kernen kompiliert werden konnte, also erweiterte ich das Swap-Speicherplatz des Raspberry Pi und beschleunigte die Kompilierungsgeschwindigkeit. Darüber hinaus gibt es einige Fehler während des Kompilierungsvorgangs:

<span style="background-color:#f5f5f5"><span style="color:#333333"><code>错误信息1:
fatal error: boostdesc_bgm.i: 没有那个文件或目录
           #include "boostdesc_bgm.i"
</code></span></span>

Lösung:
Dateien gehen bei der Installation von opencv auf Raspberry Pi verloren:
Link: Baidu Netdisk Bitte geben Sie den Extraktionscode ein. Extraktionscode
: mbsj

<span style="background-color:#f5f5f5"><span style="color:#333333"><code>将这些文件复制到/home/pi/opencv/opencv_contrib-3.4.1/modules/xfeatures2d/src目录即可继续编译。建议大家直接用xftp的方式将文件复制到该目录下即可。
</code></span></span>

<span style="background-color:#f5f5f5"><span style="color:#333333"><code>错误信息2:
 /home/pi/opencv/opencv-3.4.1/modules/stitching/include/opencv2/stitching/detail
 /matchers.hpp:52:12: fatal error: opencv2/xfeatures2d/cuda.hpp: 没有那个文件或目录
</code></span></span>

Lösung:

<span style="background-color:#f5f5f5"><span style="color:#333333"><code>错误的原因是缺少cuda.hpp文件,这些文件在opencv_contrib-3.4.1/modules/xfeatures2d/include/opencv2目录下,所以直接将这个目录下的文件拷贝到opencv-3.4.1/modules/stitching/include/opencv2/即可
</code></span></span>

Durch diese experimentelle Studie habe ich zunächst die spezifischen Schritte gemeistert, die zum Erkennen von Gesichtern erforderlich sind, und auch viel erweitertes Wissen gelernt. Der laufende Code ist hauptsächlich Open-Source-Python-Code. Python ist eine hochintegrierte Sprache. Was wir lernen Sie können' Wenn Sie es verwenden, wird die unterste Ebene nicht angezeigt. Wenn Sie es verwenden, können Sie die Funktion einfach direkt aufrufen. Dies kann ein Hauptgrund dafür sein, warum Python so beliebt ist. Dieses Experiment vermittelte unserer Gruppe auch ein gewisses Verständnis für den Raspberry Pi.

Supongo que te gusta

Origin blog.csdn.net/weixin_42065767/article/details/121454919
Recomendado
Clasificación