Verwenden Sie Python-Code, um die Körperhaltung durch Öffnen des USB-Kamerabilds zu erkennen

Zweck

Es ist ein Memorandum, wenn die Haltungserkennung durch Openpose von einem USB-Kamerabild unter Verwendung von Python-Code durchgeführt wird.

Vorbereitung

Ubuntu16.04 PC Web-Kamera

Lesen Sie den Artikel Openpose PYTHON API und bereiten Sie sich vor, bis der Testcode (1_extract_pose.py) verschoben wird.

Die Version von CUDA / cuDNN verwendet Folgendes.  CUDA ver8.0,  cuDNN ver6.0 Ich habe versucht, OpenPose auszuführen. wurde als Referenz verwendet.

Code

test.py


# From Python
# It requires OpenCV installed for Python
import sys
import cv2
import os
from sys import platform
import cv2

# Remember to add your installation path here
# Option a
dir_path = os.path.dirname(os.path.realpath(__file__))
if platform == "win32": sys.path.append(dir_path + '/../../python/openpose/');
else: sys.path.append('../../python');
# Option b
# If you run `make install` (default path is `/usr/local/python` for Ubuntu), you can also access the OpenPose/python module from there. This will install OpenPose and the python library at your desired installation path. Ensure that this is in your python path in order to use it.
# sys.path.append('/usr/local/python')

# Parameters for OpenPose. Take a look at C++ OpenPose example for meaning of components. Ensure all below are filled
try:
    from openpose import *
except:
    raise Exception('Error: OpenPose library could not be found. Did you enable `BUILD_PYTHON` in CMake and have this Python script in the right folder?')
params = dict()
params["logging_level"] = 3
params["output_resolution"] = "-1x-1"
params["net_resolution"] = "-1x368"
params["model_pose"] = "BODY_25"
params["alpha_pose"] = 0.6
params["scale_gap"] = 0.3
params["scale_number"] = 1
params["render_threshold"] = 0.05
# If GPU version is built, and multiple GPUs are available, set the ID here
params["num_gpu_start"] = 0
params["disable_blending"] = False
# Ensure you point to the correct path where models are located
#params["default_model_folder"] = dir_path + "/../../../models/"
params["default_model_folder"] = "../../../models/"
# Construct OpenPose object allocates GPU memory
openpose = OpenPose(params)

cap = cv2.VideoCapture(0)

while 1:
    # Read new image

    ret, img = cap.read()
    # img = cv2.imread("../../../examples/media/COCO_val2014_000000000192.jpg ")

    # Output keypoints and the image with the human skeleton blended on it
    keypoints, output_image = openpose.forward(img, True)

    # Print the human pose keypoints, i.e., a [#people x #keypoints x 3]-dimensional numpy object with the keypoints of all the people on that image
    print(keypoints)
    # Display the image
    cv2.imshow("output", output_image)
    cv2.waitKey(15)

cap.release()
cv2.destroyAllWindows()

Prüfung

Es ist in Ordnung, wenn das Ergebnis der Haltungserkennung durch Openpose von der Bildeingabe der WEB-Kamera unten ausgegeben wird

/openpose/build/examples/tutorial_python$ python test.py 

Codierungsfehler Maßnahmen

Prototxt-Datei nicht gefunden: /usr/local/python/openpose/../../../models Fehler

$ python 1_extract_pose.py
Error:
Prototxt file not found: /usr/local/python/openpose/../../../models/pose/body_25/pose_deploy.prototxt.
Possible causes:
	1. Not downloading the OpenPose trained models.
	2. Not running OpenPose from the same directory where the `model` folder is located.
	3. Using paths with spaces.

Weil Modelle nicht aus dem Laufzeitverzeichnis referenziert werden können 1_extract_pose.py kann so geändert werden, dass openpose / models darauf verweisen kann.

#params["default_model_folder"] = dir_path + "/../../../models/"
params["default_model_folder"] = "../../../models/"

Referenz

Openpose PYTHON API

Recommended Posts

Verwenden Sie Python-Code, um die Körperhaltung durch Öffnen des USB-Kamerabilds zu erkennen
Suchen Sie mit Pythonista3 nach einem Bild von der Kamerarolle
Bildaufnahme von der Kamera mit Python + OpenCV
[Python] Geben Sie den Bereich des Bildes durch Ziehen der Maus an
Zeigen Sie Bilder in OpenCV von Python mit einer externen USB-Kamera auf Ihrem MacBook an
Lesen Sie den QR-Code aus der Bilddatei mit Python (Mac).
Rufen Sie die Bing Image Search API v5 von Python auf, um Bilder zu sammeln
Nehmen Sie Zeitraffer von einer PC-Kamera mit Python, OpenCV auf
Mit Python abflachen
Stoppen Sie Omxplayer vom Python-Code
Bildverarbeitung mit Python (Pillow)
[Bildverarbeitung] Poo-san ist durch Kantenerkennung mit Python und OpenCV nackt!
Verwenden von Rstan aus Python mit PypeR
[Python] Verwenden von OpenCV mit Python (Bildtransformation)
Hinweise zur Verwendung von MeCab aus Python
[Python] Verwenden von OpenCV mit Python (Kantenerkennung)
Betriebssystembestimmung durch Makefile mit Python
Verwenden von Cloud-Speicher aus Python3 (Einführung)
Führen Sie Python-Code über die C # -GUI aus
Python-Fehlererkennung von Powershell ausgeführt
Überprüfen Sie den Python-Codestil mit pep8
Führen Sie Ansible über Python mithilfe der API aus
Vorsichtsmaßnahmen bei der Verwendung von Phantomjs aus Python
Greifen Sie mit OAuth 2.0 von Python aus auf Tabellenkalkulationen zu
Versuchen Sie es mit Amazon DynamoDB von Python
[EV3 x Python] Streame Kamerabilder mit mjpg-streamer auf deinen PC.
Vermeiden Sie Laufzeitfehler ModuleNotFoundError für ausführbare Dateien, die mit Pyinstaller aus Python-Code generiert wurden
Vermeiden Sie Laufzeitfehler ModuleNotFoundError für ausführbare Dateien, die mit Pyinstaller aus Python-Code generiert wurden
[Python] für Anweisungsfehler