飞桨官方网站: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
安装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预训练模型使用,也类似此操作。