利用openpose批量姿势检测并保存检测结果

最近需要用到openpose进行姿势检测,批量检测文件夹中的人物图像并批量保存检测到的关键点图、骨骼图,并把检测到的关节点坐标信息保存在txt文件中。

from __future__ import division
import cv2
import time
import numpy as np
import matplotlib.pyplot as plt
import os


if not os.path.exists("./bianli/input"):  # 创建文件夹
    os.makedirs("./bianli/input")
if not os.path.exists("./bianli/output"):
    os.makedirs("./bianli/output")

class general_pose_model(object):
    def __init__(self, modelpath, mode="MPI"):   # 选择指定模型:BODY25、COCO、MPI
        # 指定采用的模型
        #   Body25: 25 points
        #   COCO:   18 points
        #   MPI:    15 points
        self.inWidth = 368
        self.inHeight = 368
        self.threshold = 0.1
        if mode == "BODY25":
            self.pose_net = self.general_body25_model(modelpath)
        elif mode == "COCO":
            self.pose_net = self.general_coco_model(modelpath)
        elif mode == "MPI":
            self.pose_net = self.get_mpi_model(modelpath)


    def get_mpi_model(self, modelpath):
        self.points_name = {                           # 点号表示关节的名称
            "Head": 0, "Neck": 1, 
            "RShoulder": 2, "RElbow": 3, "RWrist": 4,
            "LShoulder": 5, "LElbow": 6, "LWrist": 
            7, "RHip": 8, "RKnee": 9, "RAnkle": 10, 
            "LHip": 11, "LKnee": 12, "LAnkle": 13, 
            "Chest": 14, "Background": 15 }
        self.num_points = 15                           # 识别关键点的个数
        self.point_pairs = [[0, 1], [1, 2], [2, 3],    # 关键点连接顺序
                            [3, 4], [1, 5], [5, 6], 
                            [6, 7], [1, 14],[14, 8], 
                            [8, 9], [9, 10], [14, 11], 
                            [11, 12], [12, 13]
                            ]
        prototxt = os.path.join(      # 加载训练好的模型
            modelpath,
            "D:/openpose/openpose-master/models/pose/mpi/pose_deploy_linevec.prototxt")
        caffemodel = os.path.join(
            modelp

Supongo que te gusta

Origin blog.csdn.net/weixin_47214888/article/details/124604592
Recomendado
Clasificación