【人体姿态估计2】Real-time Multi-person 2d pose estimation using part affinity fields_2017

2023-11-14

作者视频讲解:https://www.bilibili.com/video/av40510835/

源码地址:https://github.com/ZheC/Realtime_Multi-Person_Pose_Estimation

论文地址:https://arxiv.org/abs/1611.08050

源码讲解博客地址

pytorch代码地址1:https://github.com/Hzzone/pytorch-openpose
pytorch代码地址2:https://github.com/tensorboy/pytorch_Realtime_Multi-Person_Pose_Estimation
pytorch2讲解博客:https://www.cnblogs.com/demian/p/8988396.html

亮点: 文章提出了一种可以高效的检测多人2D姿态的方法,使用bottom-up的方法,最图像中的目标数量不敏感,能够同时获得高的速度和精度。

方法: 使用无参数的表达方法—— Part Affinity Fields (PAFs) 关系亲和场,来学习图像中每个个体的关节之间的关系。

整体过程: bottom-up,将全局语义进行编码,大量的bottom-up分析过程保证率速度和精度的平衡。

学习过程: 利用两个相同的分支同时学习关键部位的位置和关系

1、Introduction

人体2D姿态估计是一个对人体关键部位或关键点的定位问题,主要研究如何寻找一个个体的关键部位。

估计一个图像中的多人姿态,尤其是复杂场景的时候,是非常有挑战性的。

  • 首先,每个图像中包含的人数量是未知的,且这些人可能以任何可能的姿态或尺度出现。
  • 其次,人体间有复杂的相互关系,比如接触、遮挡、关节连接等,导致关节之间的关系难以建立
  • 一般方法的运行速度和图像中的目标个数有很大的关系,难以做到实时

Top-down方法:

过程:使用人体检测器,并对每个检测使用单人姿态估计(single-person pose estimation)。

不足:

  • top-down方法借助已有的方法来实现单人姿态估计,但是对前期的检测依赖很大,如果一个人体检测器没有检测出人体,比如人体距离很近,则没有办法弥补。
  • 这种方法的运行时间和图像内的目标个数呈正比,计算量很大

Bottom-up方法:

不会直接使用从别的body或别的person来的全局语义信息。

前期的bottom-up方法并没有在效率上做提高,因为最后的全局推理需要很大的开销。

  • Pishchulin等人提出的种子工作,提出了一种联合了标签部分检测候选以及将它们联系到个体上的自底向上的方法。然而,在一个全连接图上解决整数线性规划问题是一个NP难问题,并且其平均处理时间大约需要几小时。
  • Insafutdinov等人结合基于ResNet的有效的部分检测器以及图像从属成对分数(image-dependent pairwise scores)构建模型,极大的提高了运行效率,但是这个方法对每张图片的处理时间仍然需要几分钟,这是受限于部分检测器的数量。
  • 成对表现(pairwise representations)在[11]中使用了,其很难做精确的回归,因此需要独立的逻辑回归

现有的bottom-up方法都是先检测身体部位的关键点,然后再连接这些关键点得到人的姿态骨架。

该文章为了快速的把这些点连到一起,提出的亲和关系场,来实现快速的关键点连接。

该文章提出了一种适合于多人姿态估计的高效的方法,且在多个公开数据集上取得了SOTA的效果。

贡献点:

  • 首次提出了利用亲和关系场(PAFs)得到关系得分的bottom-up表达方法,用一系列的2D向量场对图像域中的肢体的位置和方向进行编码。

文章证明了同时推导这些检测表示以及全局信息联系编码有效的允许了使用一个贪婪解析步骤去实现高质量的结果,而只需要少量的计算花销
在这里插入图片描述

2、Method

图2展示了该文章所提出方法的整体pipline:

  • 输入:大小为 wxh 的彩色图像(Fig2(a))
  • 输出:图像中每个人的结构关键点(Fig2(e))

在这里插入图片描述
第一步:前馈网络同时预测下面两者

  • ① 一系列的身体部件位置的2D置信响应图 S (2(b))

  • ② 一系列部件关系的 2D 向量场 L (2©),是对部件间的联系等级进行编码

    S = ( S 1 , S 2 , . . . , S J ) S=(S_1, S_2, ... ,S_J) S=(S1,S2,...,SJ),有 J 个置信响应图(confidence map),每个部件(part)一个

    L = ( L 1 , L 2 , . . . , L C ) L=(L_1, L_2, ... ,L_C) L=(L1,L2,...,LC),有C个向量场,每个肢体(limb)一个, L C L_C LC中的每个图像位置编码一个2D向量。如图1所示,在亲和场中的每个像素,都会用一个2D向量来对其进行编码,编码其位置和方向,也就是每个箭头就是一个向量。

备注:一个部件对儿构成一个limb

第二步:通过一系列的推理(Fig2(d)),解析置信响应图和affinity fields ,输出图像中每个人体的2D关键点。

2.1 Simultaneous Detection and Association

本文的方法如图3所示,同时预测两个东西,来实现关键点到关键点的编码:

  • 检测置信图,有米黄色的 top branch 来预测
  • 亲和场,由蓝色的 bottom branch 来预测

每个branch都是一个迭代预测的结构,是参考 CPMs 的结构的,这个结构利用连续的 stage来精细化预测结果,并且每个stage输出有中间监督,避免了梯度消失现象的发生。
在这里插入图片描述

处理过程:

  • 首先,用卷积网络对输入图像进行特征提取(文中用的VGG-19的前10层初始化并fine-tune),产生一系列特征图F,输入每个brach的第一个stage。
  • 第一个stage,网络产生一系列的检测置信图 S 1 = ρ 1 ( F ) S^1=\rho^1(F) S1=ρ1(F),和一系列亲和场 L 1 = ϕ 1 ( F ) L^1=\phi^1(F) L1=ϕ1(F)。其中, ρ 1 \rho^1 ρ1 ϕ 1 \phi^1 ϕ1分别是 stage=1推理阶段的CNN。
  • 之后的stage,这两个branch中的每一个分支的前一个stage的输出结合起来,再和 original image features F一起,被concat 起来,用来预测更精细的输出:
    在这里插入图片描述
    图4是不同stage预测输出的精细程度对比。

在这里插入图片描述
贯穿各个阶段的(第一行)右手腕的置信图以及右前臂PAFs(第二行)。虽然在早先阶段中有着左右身体部位和肢体的混淆,但是通过在后续的全局推理中,评估结果得到了改善,如上图圈出的区域。

为了引导网络迭代的在第一个branch预测关键点的置信图,在第二个branch预测PAFs。每个分支一个loss函数。

Loss函数: L2 损失

特别地: 文中动态的调整了 loss函数,来解决实际的问题,也就是考虑到一些数据集中没有完全的标注所有的人体。所以每个分支的loss函数如下:

在这里插入图片描述
其中 S j ∗ S_j^∗ Sj是真实的部位置信度图, L c ∗ L_c^* Lc是真实的部位联系向量域, W W W是一个二进制编码,当在图像的位置 p p p处缺少标注时, W ( p ) = 0 W(p)=0 W(p)=0。该编码用来避免惩罚在训练过程中的正确的积极预测。每一个阶段的中间监督通过定期补充梯度的方式而被用来解决梯度消失问题。整体的目标函数如下:

总体的loss函数:
在这里插入图片描述

2.2 Confidence Maps for part detection

为了在训练过程中评估上述 f S f_S fS,作者从标注的 2D 关键点中生成了真实的置信响应图 confidence maps S ∗ S^* S

每个置信图(confidence map)都代表一个关键点在每个像素位置上出现的置信度(belief)

  • 如果图中只有单个person出现,则每个可见的关键点对应的 confidence map 都只有一个峰值点。
  • 如果图中有多个person出现,对于每个 person k,都会有一个 peak 对应每个可见的关键点 j。

首先对每个 person k 都生成一个 confidence map S j , k ∗ S_{j,k}^* Sj,k x j , k x_{j,k} xj,k 代表图中第 k 个person 的第 j 个关键点。则在 S j , k ∗ S_{j,k}^* Sj,k 的位置 p 上的值定义为:

在这里插入图片描述
其中, δ \delta δ 标准差,能控制峰值的延展范围, x j , k x_{j,k} xj,k 是均值,

网络预测得到的真实的 confidence map 是对单个confidence map利用 max 操作之后得到的集合:
在这里插入图片描述
使用 max 操作而非均值操作,这样可以保留靠近 peak 附近值的不同性,如图所示,在测试时,预测 confidence map(如图4第一行所示),并且利用非极大值抑制操作得到候选部位(body parts candidates)。
在这里插入图片描述

2.3 Part Affinity Fields for Part Association

在这里插入图片描述
给定一系列检测到的身体部位(如图5a的红色点和蓝色点所示),如何在人数未知的情况下,将这些点联系起来得到姿态估计?

需要对每个部位对儿(pair of parts)关系的置信度量,也就是他们属于同一个人的置信。

如何做?

度量相关性的一个可能的方法是检测形成每个“肢体”的关键点的“midpoint”,并检查该midpoint在候选关键点中间的作用(incidence)。,如图5b所示。

这样做的问题:

当人很聚集的时候,这些 midpoints 可能会是是错误的关联(如图5b的绿色线)

这个问题出现的原因:这个表达方式有两个受限点

  • 仅仅编码了每个 limb 的位置,没有编码方向
  • 将肢体的支撑区域缩小到了一个点

为了解决这个问题,文中提出了一种新的特征表达方式:part affinity fields,同时保留肢体区域的位置的方向信息(Fig5c)

part affinity 是对每个 limb 的一个2D 向量场,如Fig1d,对每个特定肢体区域的每个点,该 2D 向量会对每个点从 limb 的一个 part 到另一个 part 的方向进行编码,如图所示,每个类别的 limb 都有对应的 affinity field 来连接着两个有关系的body parts。

在这里插入图片描述
单个 limb 如图所示,令 x j 1 , k x_{j_1,k} xj1,k x j 2 , k x_{j_2,k} xj2,k 分别表示第 k 个人的第 c 个limb 的 body parts j 1 j_1 j1 j 2 j_2 j2 的真实位置。如果一个点 p 在这个 limb 上,则在位置 L c , k ∗ ( p ) L_{c,k}^*(p) Lc,k(p) 上的值是一个从 j 1 j_1 j1 指向 j 2 j_2 j2 的单位向量,其他点的值都是0。

为了在训练的过程中评价公式(5)中的 f L f_L fL,定义在位置 p 上的实际(groundtruth)的 part affinity vector field 为 K c , k ∗ K_{c,k}^* Kc,k
在这里插入图片描述
此处,v 是 limb 方向上的单位向量,公式如下:
在这里插入图片描述
在 limb 上的点的集合被定义为在线段距离阈值内的点集,也就是这些点 p 都:
在这里插入图片描述
其中,limb 的宽度 ρ l \rho_l ρl 是像素上的距离,limb 的长度是 l c , k = ∣ ∣ x j 2 , k − x j 1 , k ∣ ∣ l_{c,k}=||x_{j_2,k}-x_{j_1,k}|| lc,k=xj2,kxj1,k v ⊥ v_{\perp} v 是垂直于 v v v 的向量。

实际的 part affinity field 是一个图像中的所有的 people 的 affinity filed 的均值。

在这里插入图片描述
其中, n p n_p np 是所有 k 个人在点 p 上的非零向量的个数,也就是在一个像素点上有相互遮挡的不同人的limb的均值。

测试阶段,作通过计算对应 PAF 的线段积分来度量所有候选部位的关系,沿着线段来将候选部位的位置结合起来。也就是说,作者度量预测的 PAF 和候选 limb 是否是一致的,这可以通过将检测的身体部位结合起来来形成。

评估两个关键点之间的相关性:

对应两个候选部位位置: d j 1 d_{j_1} dj1 d j 2 d_{j_2} dj2,简化预测位置的 affinity field, L c L_c Lc 沿着线段来度量置信度

计算两个关键点连线向量和两个关键点连线上各个像素的PAF向量之间的点积的积分作为两个关键点之间的相关性:

在这里插入图片描述
其中, p ( u ) p(u) p(u) 是插入两个身体部位 d j 1 d_{j_1} dj1 d j 2 d_{j_2} dj2 中的点的位置。
在这里插入图片描述
实际中,作者利用间距为 u 的等间距求和,来近似该积分

2.4 Multi-person parsing using PAFs

作者在检测得到的 confidence map 上使用非极大值抑制来得到一系列离散的候选部位位置。

对于每个位置,由于可能多人存在或误检,可能都会有多个候选者(如图6b)。

这些候选部位能够定义大量的可能 limbs

作者使用 PAF 上的线积分的方法来计算每个候选 limb 的得分,如公式10所示。

寻找最优解析的问题是一个已知为NP-Hard的k维匹配问题(fig6c),本文中,作者提出了一个贪婪的松弛方法,同一获得了高质量的匹配结果。

作者推测原因是:pair-wise 的关系得分隐藏的对全局语义信息进行了编码,由于 PFA 网络的大感受野。
在这里插入图片描述

图6:图匹配 (a)检测到part的原始图像 (b)k-分割图 (c)树形结构 (d)二分图

作者首先对多个人获得一系列的身体部位检测候选集合 D J D_J DJ,且 D J = d j m : j ∈ { 1... J } , m ∈ { 1... N j } D_J={d_j^m: j\in \{1...J\}, m \in \{1...N_j\}} DJ=djm:j{1...J},m{1...Nj} N j N_j Nj 是第 j 个part的候选数量, d j m d_j^m djm 是第 m 个检测的候选 part 的位置。

这些检测的候选part仍然需要和同一人体的其他 part 相联系,也就是说需要寻找到那些被检测出来的且实际上相连在一起的limb。

定义一个变量 Z = { z j 1 j 2 m n } Z=\{z_{j_1j_2}^{mn}\} Z={zj1j2mn},且 j 1 , j 2 ∈ { 1... J } , m ∈ { 1... N j 1 } , n ∈ { 1... N j 2 } j_1,j_2 \in \{1...J\},m\in \{1...N_{j_1}\}, n\in \{1...N_{j_2}\} j1,j2{1...J},m{1...Nj1},n{1...Nj2}

加上对于第c个limb的一个单独的 part 对儿 j 1 , j 2 j_1, j_2 j1,j2(如脖子和右臀),则找到它俩之间关系的问题就简化成了一个最大权值二分图匹配问题[32],如图5b所示,在这个图匹配问题中,图的节点就是检测得到的候选 part D j 1 D_{j_1} Dj1 D j 2 D_{j_2} Dj2,图的边是这两个 part 的可能的连接关系。此外,使用公式(10)为每个边赋权值。

二分图中的匹配是这样选择的边的子集,没有量过边共享一个节点。

作者的目标是为选择的那个边找到最大权值的匹配:
在这里插入图片描述
在这里插入图片描述
其中:

  • E c E_c Ec 是从 c 类的limb中匹配的整体权重。
  • Z c Z_c Zc Z Z Z 的针对 c 类 limb 的子集
  • E m n E_{mn} Emn 是 part d j 1 m d_{j_1}^m dj1m d j 2 m d_{j_2}^m dj2m 的 part affinity,公式10定义的

公式13、14强化了一件事:没有两个边能共享一个节点,也就是说,没有两个不同类别的 limb 能够共享一个 part。

作者使用Hungarian algorithm [14] 来得到最优匹配。

涉及到寻找多个人的全身姿态时,定义 Z Z Z 是一个 K − d i m e n s i o n a l K-dimensional Kdimensional 的匹配问题。

该问题是一个 NP-Hard 问题,存在许多松弛。

本文中,作者使用了两个松弛条件来进行优化:

  • 其一,作者选择最小数量的 edges 来得到人体姿态的生成树骨架,而不是使用完整的图,如图6c所示。
  • 其二,作者进一步将匹配问题分解成了一系列二分图匹配的子问题,并且发现了相邻的树节点间的匹配是独立的,如图6d所示。

经过试验发现,最小的贪婪的推理可以很好的近似全局解,原因在于,相邻节点的关系可以很明确的用 PAFs来解释, 但是在内部,非相邻的节点间的关系是在CNN中隐藏的,CNN中可以包含这些关系的原因在于 CNN 训练的时候有一个大的感受野,并且,从不相邻节点产生的 PAFs 同一会影响预测的 PAF。

利用这两个松弛,优化问题被简化为如下表达:

在这里插入图片描述
所以,对每个类别的 limb 得到其与 limb 的候选关系是独立的(使用公式12-14)

得到所有的limb 关系候选之后,可以将这些连接关系聚合起来,共享相同部位的检测候选结果。

文章的树结构优化策略比全连通图的优化策略快好感数量级。

二分图匹配问题:

当图中存在多个手肘和手腕时,如果确定是否属于同一个人?

文章中将关键点作为图的顶点,关键点之间的相关性PAF作为图的边,则将多人检测问题就可以转化为二分图匹配问题,并用匈牙利算法求得相连关键点最优匹配:
在这里插入图片描述
二分图匹配:

二分图:图的一种特例,包含两个点群 X,Y,同一个点群内无边,不同点群之间有边。
在这里插入图片描述
二分匹配:二分图上进行匹配,一个点群中的点只与另一个点群中的点进行唯一匹配,即任意两条边没有公共顶点
在这里插入图片描述
最大匹配:匹配边数最多
完美匹配:所有点都是匹配点
最大权重匹配:所有匹配边权重之和最大
求解最大匹配方法:匈牙利算法

3、 Results

测试数据集:

  • MPII human multi-person dataset
  • COCO 2016

3.1 MPII

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【人体姿态估计2】Real-time Multi-person 2d pose estimation using part affinity fields_2017 的相关文章

  • React项目开发常用API

    记录一下React项目开发常用API 作为后续开发的参考 路由配置 配置文件形式 router index js import React lazy Suspense from react Suspense配合lazy实现懒加载 const
  • Golang 微框架 Gin 简介

    框架一直是敏捷开发中的利器 能让开发者很快的上手并做出应用 甚至有的时候 脱离了框架 一些开发者都不会写程序了 成长总不会一蹴而就 从写出程序获取成就感 再到精通框架 快速构造应用 当这些方面都得心应手的时候 可以尝试改造一些框架 或是自己
  • element-ui的table动态渲染表头

  • ruoyi管理系统+微信小程序登录解决

    原料 ruoyi管理系统项目模板 基于springboot 微信小程序项目 阿里云服务器 有域名 有ssl证书 阿里云服务器的ssl证书可以买一个仅限一年免费的那个证书 注意事项 1 微信小程序调用云服务器接口需要https csdn ne
  • Android:usb转232串口通信

    准备工作 首先得adb进入盒子root模式 将 dev ttys1这个文件改为777 使得所有用户可操作 adb root adb remount adb shell 进入设备的root模式 执行 chmod 777 dev ttys1 执
  • 项目 谷粒学院Day16-18

    Day 16 07 13 统计分析模块 后台 准备工作 创建统计表 创建service statistics模块 使用代码生成器生成代码 创建启动类 SpringBootApplication ComponentScan basePacka
  • 《Hadoop权威指南》书摘-HDFS概述

    转载请注明出处 独立博客 http wangnan tech 简书 http www jianshu com u 244399b1d776 知乎 https zhuanlan zhihu com c 121958856 设计 超大文件 已经
  • pthread_cond_timedwait

    pthread cond timedwait pthread cond signal
  • Keepalived的权值问题(priority与weight)

    在Keepalived集群中 其实并没有严格意义上的主 备节点 虽然可以在Keepalived配置文件中设置 state 选项为 MASTER 状态 但是这并不意味着此节点一直就是Master角色 控制节点角色的是Keepalived配置文
  • 【深度解析→博文总结】李宏毅机器学习2023作业02Classification(Framewise Phoneme Prediction)

    文章目录 系列文章 简要说明 视频分享 作业详情 调参记录 Simple Baseline 0 49798 Medium Baseline 0 66440 Stong Baseline 0 74944 Boss Baseline 0 830
  • oracle rac 性能影响参数 - MTU

    在项目中遇到了数据导入特别缓慢的问题 或者是建立索引特别慢 在优化数据库无果之后 主机方面找到了问题的原因 root rac1 netstat nai Kernel Interface table Iface MTU Met RX OK R

随机推荐

  • R2dbc连接操作mysql

    R2dbc操作mysql 依赖
  • 公网IP查询方法

    1 我们平时在家用的网络就是公网 直接在命令行运行ipconfig查询即可 2 如果是公司内或者学校内的局域网 要查询公网IP有以下方式 1 查自己本机IP 打开http ip cn 显示的IP就是本机IP 2 打开 http site i
  • Java 构建 HashCode 相同的字符串

    在查看 hashcode 源码的时候 想模拟红黑树的生成 发现不知如何构建 HashCode 相同的值 从源码看HashCode 的生成 jdk1 8 为例 都知道 Object 有一个通用的 hashcode 方法 但该方法被 nativ
  • RabbitMQ重试机制

    1 RabbitMQ重试机制的简介 RabbitMQ 不会为未确认的消息设置过期时间 它判断此消息是否需要重新投递给消费者的唯一依据是消费该消息连接是否已经断开 这个设置的原因是 RabbitMQ 允许消费者消费一条消息的时间可以很久很久
  • C++基本类型

    目录 目录 C 基本类型分类 整型 整型 short int long和long long 其他整型类型 CONST限定符 浮点数 sizeof 部分问题 总结 C 基本类型分类 整型 符号整型 signed char short int
  • Windows defender怎么才能彻底关闭?

    据不久前的一项测试表明 Windows系统自带的Windows defender软件在所有参与测试的杀毒安全软件中对win10的运行速度影响最大 而Win10系统的Windows defender会在工作时不停的扫描计算机程序 使CPU负荷
  • 输入一个整数n,请你输出斐波那契数列的第n项

    题目 大家都知道斐波那契数列 现在要求输入一个整数n 请你输出斐波那契数列的第n项 从0开始 第0项为0 n lt 39 分析 方法 1 可以用数组将每个斐波那契数列值存起来 int Fibonacci int n int a 40 0 a
  • 修改powershell默认启动位置

    一 在用户所在的文档目录中创建一个名为 WindowsPowerShell 的目录 例如 C Users silence Documents WindowsPowerShell 二 在WindowsPowerShell的目录下创建一个名为
  • ASML逆袭史:人、资金、技术,缺一不可

    前言 近年来 由于众所周知的原因 荷兰ASML 阿斯麦 公司的先进半导体制造设备 光刻机 进入普通大众视野 成为人们茶余饭后谈论的焦点话题之一 1月底 美日荷三方谈判达成协议 可能进一步限制先进半导体设备出口 的消息 又一次将光刻机置于舆论
  • 关于定时情况下,大量数据进去SQL表中如何保存

    大量数据如何完成添加 一 多用于定时任务的情况 当大量数据进入时 没有保存完成 而新的一轮定时任务就已经重复进入的情况下 该如何进行处理呢 import com alibaba fastjson JSONObject import java
  • vue2中无法监听数组和对象的某些变化问题

    一 数组 1 不能监听的情况 1 直接通过下标赋值 arr i value 2 直接修改数组长度 arr length newLen 2 替代做法 1 修改值 1 2 3 Vue set arr index newvalue vm set
  • Proteus中ADC0808的使用注意事项

    之前在本科单片机课程设计中 使用Protues中的ADC0808做温度采集 数据协议完全按照手册编写 但是无论是轮询还是中断读数 数据始终胡乱变化 没有任何规律 排查好久也没找到原因 一度怀疑是仿真软件的BUG 现在想想自己脑洞真是大 没办
  • DeeplabV3Plus源码分析

    DeeplabV3Plus源码分析 数据读取和预处理 网络前向传播 ASPP层 模型训练 数据读取和预处理 定义了预处理函数 进入到VOCSegmentation函数 读取数据和标签并进行预处理 网络前向传播 modeling py根据传递
  • 深入解析Java中的==和equals方法:如何正确比较对象

    目录 一 概述 二 操作符 三 equals方法 四 字符串的特殊性 五 如何覆盖equals方法 5 1 覆盖equals方法遵循的原则 5 2 覆盖equals方法的步骤 六 和equals区别 七 应用场景 总结 一 概述 在介绍 和
  • 【Netty4】netty ByteBuf(三)如何释放ByteBuf

    相关文章 netty ByteBuf 一 如何创建ByteBuf对象 netty ByteBuf 二 引用计数对象 reference counted objects netty ByteBuf 三 如何释放ByteBuf 概述 经过前面2
  • 【论文复现】—— 基于最小平方中值的点云平面拟合算法

    目录 一 算法原理 1 论文概述 2 参考文献 二 代码实现 三 结果展示 一 算法原理 1 论文概述 三维扫描获取待测对象点云时 不可避免地会出现噪声点和异常值 严重影响点云平面参数估计和平面拟合精度 采用随机抽样一致性 RANSAC 和
  • 【Qt connect传参方式及lambda函数传参方式详解】

    Qt connect传参方式及lambda函数传参方式详解 一 一般connect用法 1 无参用法 设槽函数 void buttonClicked 1 1 信号 槽均无参数 connect myButton SIGNAL clicked
  • codeblocks 安装 MinGW-w64 和 安装 wxWidgets

    1 安装 MinGW w64 参考链接 Code Blocks mingw64 编译64位程序配置方法 下载链接 https sourceforge net projects mingw w64 files Toolchains targe
  • 鸿蒙ide使用

    隔2个月时间 发现新东西增加不少 还记得第一次收集各种资料 看产业前景 现在可以下定决心 启动鸿蒙专题学习 ios架构师学习路上 更加的艰苦了 这就是这个行业 来链接 HarmonyOS应用开发 服务开发 开发 UI Java UI框架 J
  • 【人体姿态估计2】Real-time Multi-person 2d pose estimation using part affinity fields_2017

    文章目录 1 Introduction 2 Method 2 1 Simultaneous Detection and Association 2 2 Confidence Maps for part detection 2 3 Part