paddlehub 安装 及 使用 预训练模型 检测人体骨骼关键点

飞桨官方网站:https://www.paddlepaddle.org.cn/

使用过程记录:

用conda创建虚拟环境:

conda create -n paddle python=3.6 

激活:

conda activate paddle

paddle安装: 官网:https://www.paddlepaddle.org.cn/install/quick?docurl=/documentation/docs/zh/2.0/install/pip/windows-pip.html

python -m pip install paddlepaddle==2.0.0 -i https://mirror.baidu.com/pypi/simple

测试安装成功:

paddlehub文档:https://paddlehub.readthedocs.io/zh_CN/develop/index.html

paddlehub安装:

pip install paddlehub -i https://pypi.doubanio.com/simple

安装成功测试:

PaddleHub支持修改预训练模型存放路径:

  • 如已设置${HUB_HOME}环境变量,则预训练模型、配置等文件都存放在${HUB_HOME}指示的路径下

  • 如未设置${HUB_HOME}环境变量,则存放在$HOME指示的路径下

human_pose_estimation_resnet50_mpii

飞桨地址:https://www.paddlepaddle.org.cn/hubdetail?name=human_pose_estimation_resnet50_mpii&en_category=KeyPointDetection

安装opencv:

pip install opencv-python -i https://pypi.doubanio.com/simple

matplotlib安装:

pip install matplotlib -i https://pypi.doubanio.com/simple

测试代码:

import cv2
import paddlehub as hub

pose_estimation = hub.Module(name="human_pose_estimation_resnet50_mpii")

result = pose_estimation.keypoint_detection(images=[cv2.imread('./James.jpg')])
print(result)

运行测试代码:(其中预训练模型已经下载到HUB_HOME环境变量所在的位置了)

输出可视化:增加visualization=True

import cv2
import paddlehub as hub

pose_estimation = hub.Module(name="human_pose_estimation_resnet50_mpii")

result = pose_estimation.keypoint_detection(images=[cv2.imread('./James.jpg')],visualization=True)
print(result)

结果如图:

PaddleHub Serving可以部署一个在线人脸关键点检测服务。

服务启动命令:

hub serving start -m human_pose_estimation_resnet50_mpii

测试代码:

import requests
import json
import cv2
import base64


def cv2_to_base64(image):
    data = cv2.imencode('.jpg', image)[1]
    return base64.b64encode(data.tostring()).decode('utf8')


# 发送HTTP请求
data = {'images':[cv2_to_base64(cv2.imread("./James.jpg"))]}
headers = {"Content-type": "application/json"}
url = "http://127.0.0.1:8866/predict/human_pose_estimation_resnet50_mpii"
r = requests.post(url=url, headers=headers, data=json.dumps(data))

# 打印预测结果
print(r.json()["results"])

运行结果:

其他PaddleHub预训练模型使用,也类似此操作。

官方网站:https://www.paddlepaddle.org.cn/

猜你喜欢

转载自blog.csdn.net/qq_41251963/article/details/113665364
今日推荐