Erstellen Sie eine Umgebung (Docker-Image), in der OpenFace unter Python3 + Ubuntu16.04 ausgeführt werden kann, und führen Sie den Beispielcode für die OpenFace-Gesichtserkennung (Vergleich des Abstands zwischen zwei Gesichtern) auf dem Container aus.
Erstellt von Brandon Amos von der Carnegie Mellon University. Es ist eine Open Source, die sich auf die Gesichtserkennung mithilfe eines tiefen neuronalen Netzwerks spezialisiert hat. Es ist eine Python and Torch-Implementierung und basiert auf CVPR 2015. Unten finden Sie eine Zusammenfassung des Algorithmus und der Versionshinweise. https://cmusatyalab.github.io/openface/
OpenFace-Algorithmus, (1) Erkennen Sie das Gesicht mit einem vorab trainierten Modell mit dlib oder OpenCV (2) Konvertieren Sie so, dass die Positionen der Augen und der Unterlippe im Gesicht gleich sind, indem Sie die Affin-Konvertierung von OpenCV und die Echtzeit-Posenschätzung von dlib verwenden. (3) Drücken (oder Einbetten) eines Gesichts auf einer Hypersphäre mit 128 Dimensionen unter Verwendung eines tiefen neuronalen Netzwerks aus und führen Sie eine Gesichtserkennung durch Clustering, Ähnlichkeitserkennung und Klassifizierungsaufgaben durch. ... anscheinend ...
-Docker muss auf dem PC installiert sein
Erstellen Sie die folgende Docker-Datei in Ihrem Arbeitsverzeichnis.
Ich habe es vorerst erstellt, daher kann es zusätzliche Befehle geben.
Dockerfile
FROM ubuntu:16.04
#Apt-Paket aktualisieren
#Installation der erforderlichen apt-Pakete
RUN apt-get update && apt-get upgrade -y && apt-get install -y wget sudo python-setuptools python-pip liblapack-dev libatlas-base-dev gfortran g++ build-essential libgtk2.0-dev libjpeg-dev libtiff5-dev libjasper-dev libopenexr-dev cmake python-dev python-numpy python-tk libtbb-dev libeigen3-dev yasm libfaac-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev libx264-dev libqt4-dev libqt4-opengl-dev sphinx-common texlive-latex-extra libv4l-dev libdc1394-22-dev libavcodec-dev libavformat-dev libswscale-dev default-jdk ant libvtk5-qt4-dev unzip cmake git python-dev python-numpy libboost-dev libboost-python-dev libboost-system-dev
#Installation der erforderlichen Pip-Pakete
RUN sudo pip install -U pip && sudo pip install numpy==1.12.0 scipy matplotlib cython scikit-image dlib pandas txaio
#Installation der Taschenlampe
WORKDIR /root
RUN git clone https://github.com/torch/distro.git ~/torch --recursive
WORKDIR /root/torch
RUN sudo dpkg --configure -a
RUN bash install-deps
RUN ./install.sh -y
RUN . /root/.bashrc
#Gehen Sie den Pfad des Befehls durch
RUN export PATH=/root/torch/bin:$PATH;
RUN export LD_LIBRARY_PATH=/root/torch/lib:$LD_LIBRARY_PATH;
#Installieren Sie das LUA-Paket für Torch
#lua luarocks bauen**Bei Bedarf vorinstalliert.
RUN sudo apt-get install lua5.3
RUN sudo apt-get install -y lua5.3-dev
#Installieren Sie Luarocks
RUN mkdir luarocks
WORKDIR /root/torch/luarocks
RUN wget https://luarocks.org/releases/luarocks-3.3.1.tar.gz
RUN tar -xf luarocks-3.3.1.tar.gz
WORKDIR /root/torch/luarocks/luarocks-3.3.1
RUN ./configure
RUN make
RUN make install
#Installation des LUA-Pakets
RUN for NAME in dpnn nn optim optnet csvigo cutorch cunn fblualib torchx tds image nngraph; do sudo /root/torch/install/bin/luarocks install $NAME; done
#Installieren Sie OpenFace
RUN git clone https://github.com/cmusatyalab/openface ~/openface --recursive
WORKDIR /root/openface
RUN sudo python setup.py install
RUN sudo python3 setup.py install
#Installieren Sie zusätzliche erforderliche Elemente
RUN ./models/get-models.sh
RUN ./demos/web/install-deps.sh
RUN sudo pip install -r demos/web/requirements.txt
#Installieren Sie alles, was Sie zum Ausführen von OpenFace auf Python3 benötigen
WORKDIR /root
RUN curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
RUN sudo python3 get-pip.py && python3 -m pip install -U pip
RUN sudo apt-get install -y python3-dev
# OpenCV,dlib Installation
RUN python3 -m pip install opencv_python dlib
terminal
usermac:~ user$ ls {Arbeitsverzeichnis}
Dockerfile #Dockerfile erstellt
terminal
docker build -t openface_ubuntu16_python3:1.0 {Relativer oder absoluter Pfad zum Arbeitsverzeichnis, in dem sich die Docker-Datei befindet}
terminal
docker run -it -v {Absoluter Pfad des Arbeitsverzeichnisses}:/home/ openface_ubuntu16_python3:1.0 /bin/bash .
Das Arbeitsverzeichnis des Hosts und das Home-Verzeichnis des Containers werden gemeinsam genutzt (Volume).
terminal
usermac:work user$ pwd
/Users/{username}/openface_sample/work
Überprüfen Sie den OpenFace-Quell- und Demo-Code in ~ / openface
.
container
root@bb9464b46285:~# ls openface/
CONTRIBUTING.md LICENSE api-docs build data docs images models openface run-tests.sh tests util
Dockerfile README.md batch-represent cloc.sh demos evaluation mkdocs.yml opencv-dlib-torch.Dockerfile requirements.txt setup.py training
Führen Sie dieses Mal den Demo-Code compare.py aus, um festzustellen, ob die Gesichter auf den beiden Fotos dieselbe Person sind.
container
root@bb9464b46285:~# python3 openface/demos/compare.py openface/images/examples/lennon-1.jpg openface/images/examples/lennon-2.jpg
Comparing images/examples/lennon-1.jpg with images/examples/lennon-2.jpg.
+ Squared l2 distance between representations: 0.782 #Ausführungsergebnis
Ich möchte die Teile von openface / images / examples / lennon-1.jpg
und openface / images / examples / lennon-2.jpg
vergleichen, die nach python3 openface / demos / compare.py
2 angegeben sind Geben Sie die Anzahl der Bilder an.
Dieses Mal habe ich das Beispielbild unter openface verwendet. Wenn das Gesicht anhand des angegebenen Bildes nicht erkannt werden kann, tritt ein Fehler auf.
Der Abstand zwischen den beiden Flächen, der mit "0,782" verglichen wurde. Je näher es an "0" liegt, desto wahrscheinlicher ist es, dass es sich um dieselbe Person handelt. Es scheint, dass der Standardwert beurteilt werden muss, indem er anhand der tatsächlich verwendeten Fotos überprüft wird.
Recommended Posts