Ich habe versucht, die Python-API von OpenPose zu berühren, daher werde ich ein Memorandum schreiben
Das Verfahren zum Installieren der Python-API wird im folgenden Artikel erläutert. https://qiita.com/hac-chi/items/0e6f910a9b463438fa81
Den offiziellen Python-API-Beispielcode finden Sie hier Ich erkläre nur den Beispielcode. Wenn Sie also die Quelle schneller lesen können, sollten Sie sich darauf beziehen. https://github.com/CMU-Perceptual-Computing-Lab/openpose/tree/master/examples/tutorial_api_python
# Starting OpenPose
opWrapper = op.WrapperPython()
opWrapper.configure(params)
opWrapper.start()
Um mit der Verwendung zu beginnen
Die hier übergebenen params
sind ein Wörterbuchtyp.
Übergeben Sie verschiedene Einstellungen in Params für die Verwendung von OpenPose.
Beispielsweise wird der Modellpfad wie folgt angegeben
params = dict()
params["model_folder"] = "../../../models/"
Unten finden Sie eine Liste der Modellparameter und Standardwerte. https://github.com/CMU-Perceptual-Computing-Lab/openpose/blob/master/include/openpose/flags.hpp
Wenn Sie etwas auswählen, das mit Ihrem eigenen Urteilsvermögen und Ihren Vorurteilen wichtig erscheint
DEFINE_int32(number_people_max, -1, "This parameter will limit the maximum number of people detected, by keeping the people with"
" top scores. The score is based in person area over the image, body part score, as well as"
" joint score (between each pair of connected body parts). Useful if you know the exact"
" number of people in the scene, so it can remove false positives (if all the people have"
" been detected. However, it might also include false negatives by removing very small or"
" highly occluded people. -1 will keep them all.");
DEFINE_string(model_pose, "BODY_25", "Model to be used. E.g., `BODY_25` (fastest for CUDA version, most accurate, and includes"
" foot keypoints), `COCO` (18 keypoints), `MPI` (15 keypoints, least accurate model but"
" fastest on CPU), `MPI_4_layers` (15 keypoints, even faster but less accurate).");
DEFINE_bool(3d, false, "Running OpenPose 3-D reconstruction demo: 1) Reading from a stereo camera system."
" 2) Performing 3-D reconstruction from the multiple views. 3) Displaying 3-D reconstruction"
" results. Note that it will only display 1 person. If multiple people is present, it will"
" fail.");
DEFINE_string(write_json, "", "Directory to write OpenPose output in JSON format. It includes body, hand, and face pose"
" keypoints (2-D and 3-D), as well as pose candidates (if `--part_candidates` enabled).");
DEFINE_string(udp_host, "", "Experimental, not available yet. IP for UDP communication. E.g., `192.168.0.1`.");
DEFINE_string(udp_port, "8051", "Experimental, not available yet. Port number for UDP communication.");
Laden Sie das Bild Bitte beachten Sie, dass ** PIL nicht verwendet werden kann, bitte verwenden Sie OpenCV **.
Offiziell gibt es eine Beschreibung wie folgt
Do not use PIL In order to read images in Python, make sure to use OpenCV (do not use PIL). We found that feeding a PIL image format to OpenPose results in the input image appearing in grey and duplicated 9 times (so the output skeleton appear 3 times smaller than they should be, and duplicated 9 times). Quelle: OpenPose Python Module and Demo
Wie man liest
Erstellen Sie zunächst ein Objekt für die Datenübertragung mit "op.Datum ()"
Speichern Sie das von OpenCV gelesene Bild in datum.cvInputData
Und lassen Sie es uns als Liste an opWrapper.emplaceAndPop
übergeben
Es gibt keinen Rückgabewert in opWrapper.emplaceAndPop
, aber das Analyseergebnis (Ausgabebild, Gelenkposition usw.) ist im übergebenen Datum enthalten.
datum = op.Datum()
imageToProcess = cv2.imread("image_path")
datum.cvInputData = imageToProcess
opWrapper.emplaceAndPop([datum])
#Gemeinsame Koordinaten
print("Body keypoints:" + str(datum.poseKeypoints))
#Bild zeigt Gelenke
cv2.imshow("Output Image", datum.cvOutputData
cv2.waitKey(0)
Außerdem im Datum
datum.faceKeypoints #Koordinaten jedes Teils des Gesichts
datum.handKeypoints[0]#Koordinaten jedes Teils auf der linken Seite
datum.handKeypoints[1]#Koordinaten jedes Teils auf der rechten Seite
Usw. sind auf verschiedene Arten enthalten
Weitere Informationen finden Sie weiter unten https://cmu-perceptual-computing-lab.github.io/openpose/html/structop_1_1_datum.html
Recommended Posts