Index of /Windischgarsten/2020.9/Bilderkennung/Lösung_von_Wolfgang-Zukrigl

Icon  Name                                     Last modified      Size  Description
[PARENTDIR] Parent Directory - [TXT] README.txt 2020-03-03 11:41 4.0K [DIR] face-recognition-programm/ 2020-03-07 16:32 - [DIR] opencv_Grundlegendes-Videos-und-drawing/ 2020-03-07 16:32 -
OpenCV am Raspi installieren:
==============================

Mit raspi-config: Camera aktivieren



https://www.pyimagesearch.com/2019/09/16/install-opencv-4-on-raspberry-pi-4-and-raspbian-buster/

sudo raspi-config >> Advanced options >> Expand file-system (falls nicht schon passiert)

sudo apt-get update && sudo apt-get upgrade

Dependencies:
sudo apt-get install \
build-essential cmake pkg-config \
libjpeg-dev libtiff5-dev libjasper-dev libpng-dev \
libavcodec-dev libavformat-dev libswscale-dev libv4l-dev \
libxvidcore-dev libx264-dev \
libfontconfig1-dev libcairo2-dev \
libgdk-pixbuf2.0-dev libpango1.0-dev \
libgtk2.0-dev libgtk-3-dev \
libatlas-base-dev gfortran \
libhdf5-dev libhdf5-serial-dev libhdf5-103 \
libqtgui4 libqtwebkit4 libqt4-test python3-pyqt5 \
python3-dev

sudo pip3 install "picamera[array]"

Preapare Virtual Python evironment:
--------------------------
...EDIT: Die virtual Environments funktionieren nicht gut, enfach alles per sudo pip3 installieren

pip ist bereits installiert
sudo pip3 install virtualenv virtualenvwrapper

Datei ~/.bashrc editieren: folgendes anhängen (unten)
# virtualenv and virtualenvwrapper
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
source /usr/local/bin/virtualenvwrapper.sh

source .bashrc

Create virtual environment:
mkvirtualenv cv -p python3

Install opencv:
pip3 install opencv-contrib-python==4.1.0.25

Opencv-python auf Fedora-Computer installieren:
===============================================
sudo dnf install gcc-c++
...CXX compiler (c++)
sudo dnf install opencv*

...
 opencv                 x86_64 3.4.8-1.fc31                       updates 1.4 M
 opencv-devel           x86_64 3.4.8-1.fc31                       updates 917 k
 opencv-doc             noarch 3.4.8-1.fc31                       updates  31 M
 opencv-java  

sudo dnf install python3-matplotlib
sudo dnf install python3-opencv

Jedes python-Skript beginnt mit 
import cv2 ac cv



Face-Recognition and -detection:
################################
https://circuitdigest.com/microcontroller-projects/raspberry-pi-and-opencv-based-face-recognition-system

Datei haarcascade_frontalface_default.xml aus https://circuitdigest.com/sites/default/files/Rpi-face-recognition-Cascade.zip

sudo pip3 install dlib     
...Fedora: dauert ewig, möglicherweise wird das nach ca. 1h fertig, aber so lange habe ich nicht gewartet. Daher Installation aus source-code (dauert auch ca. 45 Minuten)
Fedora:
sudo dnf install gcc-c++
sudo pip3 install scipy
sudo pip3 install scikit-image
sudo dnf install gtk3-devel
sudo dnf install boost-devel
Download https://github.com/davisking/dlib als zip. Entpakcen und
sudo python3 setup.py install


sudo pip3 install pillow
sudo pip3 install face_recognition

DAS IST NOCH WICHTIG!!!!
sudo pip3 install opencv-contrib-python

Programme:
==========
Das Programm Face_Trainer.py liest recursiv die Fotos im Ordner Face_Images ein (die Fotos müssen in Unterordnern mit dem Namen der Person) organisiert sein. Es erkennt die Position der Gesichter (5 Fotos pro Person sind mindestens nötig) und schneidet diese aus. Sie werden in einer Liste zwischengespeichert und parallel in einer anderen Liste wird eine id (Zahl von 0 aufwärts) gespeichert. In den letzten beiden Zeilen des Programms wird das Training durchgeführt und einer Datei face-trainner.yml abgespeichert.

Das Programm Face_Recog.py macht die Kamera auf (erste Kamera im System), erkennt wieder Gesichts-Positionen, markiert diese mit Rechteck, lässt das ausgeschnittene Gesicht über den Erkenner laufen und schreibt einen Text mit dem Namen darüber.


Issues:
-------
Parameter conf (confidence): Im Ordiginal-python-script war dieser auf 80 (vermutlich Prozent). Diesen musste ich auf 50 reduzieren. Vermutlich benötigt man bessere Traininsgbilder.

Beim Face_Trainer werden Bilder verzerrt (auf 550x550 resizt). Das wurde geändert, dass die Bilder auf 550x733 (Seitenverhältnis 3:4 wie von Handy-Kammeras) . Hier wäre noch
eine automatische Skalierung ohne Verzerrung erforderlich (resize bestehend auf original-Seitenverhältnis).