为什么80%的码农都做不了架构师?>>>   

import cv2
import time
import numpy as np
import matplotlib.pyplot as plt
import os# Load a Caffe Modelif not os.path.isdir('model'):os.mkdir("model")    protoFile = "datas/models/caffe/openpose/pose_deploy_linevec_faster_4_stages.prototxt"
weightsFile = "datas/models/caffe/openpose/pose_iter_160000.caffemodel"# Specify number of points in the model
nPoints = 15
POSE_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] ]
net = cv2.dnn.readNetFromCaffe(protoFile, weightsFile)# Read Image
im = cv2.imread("datas/images/man.jpg")
im = cv2.cvtColor(im, cv2.COLOR_BGR2RGB)
inWidth = im.shape[1]
inHeight = im.shape[0]# Convert image to blob
netInputSize = (368, 368)
inpBlob = cv2.dnn.blobFromImage(im, 1.0 / 255, netInputSize, (0, 0, 0), swapRB=True, crop=False)
net.setInput(inpBlob)# Run Inference (forward pass)
output = net.forward()# Display probability maps
plt.figure(figsize=(20,10))
plt.title('Probability Maps of Keypoints')
for i in range(nPoints):probMap = output[0, i, :, :]displayMap = cv2.resize(probMap, (inWidth, inHeight), cv2.INTER_LINEAR)plt.subplot(3, 5, i+1); plt.axis('off'); plt.imshow(displayMap, cmap='jet')# Extract points# X and Y Scale
scaleX = float(inWidth) / output.shape[3]
scaleY = float(inHeight) / output.shape[2]# Empty list to store the detected keypoints
points = []# Confidence treshold
threshold = 0.1for i in range(nPoints):# Obtain probability mapprobMap = output[0, i, :, :]# Find global maxima of the probMap.minVal, prob, minLoc, point = cv2.minMaxLoc(probMap)# Scale the point to fit on the original imagex = scaleX * point[0]y = scaleY * point[1]if prob > threshold : # Add the point to the list if the probability is greater than the thresholdpoints.append((int(x), int(y)))else :points.append(None)# Display Points & SkeletonimPoints = im.copy()
imSkeleton = im.copy()
# Draw points
for i, p in enumerate(points):cv2.circle(imPoints, p, 8, (255, 255,0), thickness=-1, lineType=cv2.FILLED)cv2.putText(imPoints, "{}".format(i), p, cv2.FONT_HERSHEY_SIMPLEX, 1, (255,0,0), 2, lineType=cv2.LINE_AA)# Draw skeleton
for pair in POSE_PAIRS:partA = pair[0]partB = pair[1]if points[partA] and points[partB]:cv2.line(imSkeleton, points[partA], points[partB], (255, 255,0), 2)cv2.circle(imSkeleton, points[partA], 8, (255, 0, 0), thickness=-1, lineType=cv2.FILLED)plt.figure(figsize=(20,10))
plt.subplot(121); plt.axis('off'); plt.imshow(imPoints);
#plt.title('Displaying Points')
plt.subplot(122); plt.axis('off'); plt.imshow(imSkeleton);
#plt.title('Displaying Skeleton')
plt.show()

转载于:https://my.oschina.net/wujux/blog/2050083

OpenCV3与深度学习实例-使用OpenPose进行人体姿态估算相关推荐

  1. 基于深度学习和传统算法的人体姿态估计,技术细节都讲清楚了

    作者 | 站长 pursueYfuture 来源 | AI专栏(ID: pursue-Y-future) 计算机视觉的一大研究热点是人体姿态估计,还有很多问题急需解决,比如遮挡,交互等等.在最近的CV ...

  2. 看完这篇AI算法和笔记,跟面试官扯皮没问题了 | 基于深度学习和传统算法的人体姿态估计

    点击蓝色"AI专栏"关注我哟 重磅干货,第一时间送达 这是站长的第 41 篇原创优质长文 前几天站长写的一篇的文章[基于深度学习算法和传统立体匹配算法的双目立体视觉]大受好评.这次 ...

  3. 看完这篇AI算法和笔记,跟面试官扯皮没问题了 | 基于深度学习和传统算法的人体姿态估计...

    点击蓝色"AI专栏"关注我哟 重磅干货,第一时间送达 这是站长的第 41 篇原创优质长文 前几天站长写的一篇的文章[基于深度学习算法和传统立体匹配算法的双目立体视觉]大受好评.这次 ...

  4. 看完这篇AI算法和笔记,让面试官刮目相看没问题了 | 基于深度学习和传统算法的人体姿态估计...

    点击蓝色"AI专栏"关注我哟 重磅干货,第一时间送达 这是站长的第 41 篇原创优质长文 前几天站长写的一篇的文章[基于深度学习算法和传统立体匹配算法的双目立体视觉]大受好评.这次 ...

  5. AI算法和笔记 | 基于深度学习和传统算法的人体姿态估计

    点击蓝色"AI专栏"关注我哟 选择"星标",重磅干货,第一时间送达 这是站长的第 41 篇原创优质长文, 前几天站长写的一篇的文章[基于深度学习算法和传统立体匹 ...

  6. Python深度学习实例--基于卷积神经网络的小型数据处理(猫狗分类)

    Python深度学习实例--基于卷积神经网络的小型数据处理(猫狗分类) 1.卷积神经网络 1.1卷积神经网络简介 1.2卷积运算 1.3 深度学习与小数据问题的相关性 2.下载数据 2.1下载原始数据 ...

  7. OpenPose实现人体姿态估计(人体关键点检测)

    转载:Python+OpenCV+OpenPose实现人体姿态估计(人体关键点检测)_不脱发的程序猿-CSDN博客_python人体姿态识别

  8. 深度学习|实例分割:3D-BoNet

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 一.摘要 本文提出了一个简单高效的新型3D点云实例分割框架3D-BoNet,核心思想是逐点多层感知(M ...

  9. Python+OpenCV+OpenPose实现人体姿态估计(人体关键点检测)

    目录 1.人体姿态估计简介 2.人体姿态估计数据集 3.OpenPose库 4.实现原理 5.实现神经网络 6.实现代码 1.人体姿态估计简介 人体姿态估计(Human Posture Estimat ...

最新文章

  1. mysqlpump 备份文件压缩对比
  2. 《JAVA核心技术》
  3. python--从入门到实践--chapter 15 16 17 生成数据/下载数据/web API
  4. 全网最新IDEA项目注释规范设置
  5. [Axios] axios的基础语法
  6. 计算机行政考试题库,2014香港特别行政区计算机等级考试试题 二级ACCESS考试题库...
  7. 一个星期学会python可能吗_学习python的一周
  8. win10虚拟机搭建Hadoop集群(已完结)
  9. REST服务中的异常处理
  10. 基本图像分类与目标检测网络要点总结
  11. Gesture-Recognition
  12. 拍照,选择照片并且剪裁
  13. css 文本超出2行就隐藏并且显示省略号
  14. 模型、数据分布稳定性
  15. 杭州一公司开20万月薪抢AIGC算法工程师;SpaceX「星舰」发射任务失败;华为宣布实现ERP自主可控,突破封锁|极客头条
  16. 译|深入理解Metaspace
  17. 微信小程序中weui的正确打开方式
  18. Java实现伪查询(全匹配+模糊匹配)
  19. GHOST双系统(XP和VISTA)详细图解教程
  20. android常见问题

热门文章

  1. 如何配置java环境变量
  2. 341. 扁平化嵌套列表迭代器
  3. 1323. 6 和 9 组成的最大数字
  4. linux 创建临时文件目录 mktemp 命令(创建随机名临时文件)
  5. golang日志输出
  6. 《论文笔记》Collaborative Monocular SLAM with Multiple Micro Aerial Vehicles
  7. 【强化学习】MOVE37-Introduction(导论)/马尔科夫链/马尔科夫决策过程
  8. bzoj4330:JSOI2012 爱之项链
  9. Java虚拟机10:类加载器
  10. Java容易搞错的知识点