| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> Associative Embedding论文笔记 -> 正文阅读 |
|
[人工智能]Associative Embedding论文笔记 |
论文全称《Associative Embedding: End-to-End Learning for Joint Detection and Grouping》,是由密歇根大学和清华大学实验室共同发表。 目录 1.摘要本文介绍了联合嵌入,一种监督卷积神经网络进行检测和分组的新方法。本文展示了如何将此方法应用于计算机视觉领域的多人姿势估计和实例分割中,并在MPII和MS-COCO数据集的多人姿势检测任务中达到了state-of-the-art标准。 2.简介本文认为许多计算机视觉任务可以看作是关键点检测和分组问题:检测较小的视觉单元并将其分组为较大的结构。例如,多人姿势估计可以看作是检测身体关节并将其分组为单个人;实例分割可以看作是检测相关像素并将其分组为目标实例;多对象跟踪可以看作是检测目标实例并将它们分组到轨迹中。 Associative Embedding是一种表示关节检测和分组任务的输出的新方法,其基本思想是为每次检测引入一个实数,用作识别对象所属组的“标签”,换句话说,标签将每个检测与同一组中的其他检测相关联。作者使用一个损失函数使得如果相应的检测属于ground truth中的相同组,则促使这一对标签具有相似的值。需要注意的是,这里标签具体的值并不重要,重要的是不同标签之间的差异。 与单人姿势估计不同,多人姿势检测必须扫描整个图像,检测所有人及其对应的关节点。对于这项任务,本文将联合嵌入与堆叠沙漏网络结合,该网络为每个身体关节点生成检测heatmap和标记heatmap,然后再将带有相似标签的关节点分组作为单个人的关节点集合。 3.相关工作向量嵌入本文使用向量嵌入作为关节点检测和分组中区分的标签。 知觉组织本文的方法使用一个通用网络在同一个阶段执行检测和分组,该网络没有对分组进行特别设计。 值得注意的是,本文的方法与使用光谱聚类的方法之间有着密切的联系,但本文的方法不同于光谱聚类,因为本文没有亲和力的中间表示,也没有解决任何特征问题。相反,本文的网络直接输出最终嵌入。 本文的方法还与Harley等人关于学习密集卷积嵌入的工作有关,该工作训练了一个深层网络,以产生用于语义分割任务的像素级嵌入。本文的工作与其不同之处在于,本文的网络不仅产生像素级嵌入,而且产生像素级检测分数。 多人姿势估计本文的方法更类似于自底向上的方法,但不同之处在于检测和分组阶段没有分离。整个预测由一个单一阶段的通用网络一次完成。 实例分割本文的方法十分简单:对于每个目标类别,本文在每个像素位置只输出两个值,一个表示前景与背景的分数,一个表示目标实例的标签。 4.方法网络结构作者将Stacked Hourglass Networks与Associative Embedding结合,总体的结构如下图所示: 网络执行重复的自下而上、自上而下的推理,产生一系列中间预测(蓝色标记),直到最后一个沙漏产生最终结果(绿色标记)。 Stacked Hourglass模型最初是用在单人目标检测上面,模型输出目标人物的人体关节点的heatmap,heatmap中最高激活值将作为关节点的定位像素。这种网络结构的设计是为了兼顾全局与局部的信息,使得在获取整个人体结构的同时又能够进行精准的定位。 作者对原来的网络结构进行了细微的调整,在每次分辨率下降时增加输出的特征的数量(256-386-512-768),另外,每一层使用3×3的卷积而不是之前的残差块了。 对于多人姿势检测任务,在训练的时候使用了4个hourglass模块,输入大小为512×512,输出大小为128×128,batch size为32,学习速率为2e-4(100K次迭代后降为1e-5)。 多人姿势检测多人姿势检测与单人姿势检测的区别在于多人的heatmap应具有多个峰值(例如,属于不同人的多个左手腕),而不是单人的单个峰值。为了实现多人姿势检测,网络需要对每个关节点的每个像素位置产生一个标签,也就是说,每个关节点的heatmap对应一个标签heatmap,因此,如果一张图片中待检测的关节点有m个,则网络理想状态下会输出2m个通道,m个通道用于定位,m个通道用于分组。 为了将检测结果对应到个人,作者使用非极大值抑制(non-maximum?suppression)来取得每个关节heatmap峰值,然后检索其对应位置的标签,再比较所有身体位置的标签,找到足够接近的标签分为一组,这样就将关节点匹配单个人身上,整个过程如下图所示: 下面介绍一下检测过程用到的损失函数-detection loss、grouping loss. Detection lossdetection loss使用均方误差,即计算预测的detection heatmap与在关键点加入2D高斯激活的ground truth的heatmap之间的均方误差。 Grouping lossgrouping loss衡量的是预测的标签和ground truth分组的标签匹配得有多好,具体说,就是检索图片中所有人的所有身体节点的在相应的ground truth位置的标签,然后比较每个人和人之间的标签,同一个人的标签应该相同,反之,不同人的标签应该不同。 为了减少运算量,我们应该避免直接计算每一对关节点之间的损失,相应的,我们对每个人都产生一个reference embedding,reference embedding的生成方法就是对人的关节点的embedding值取平均。有了reference embedding后,对于单个人来说,我们计算每个关节点预测的embedding和reference embedding的平方距离;对于两个不同的人来说,我们比较他们之间的reference embedding,随着它们之间距离的增加,惩罚将以指数方式降为0。接下来,我们对这一过程进行形式化。 ?是预测的第k个身体关节点的标签heatmap,?是像素位置x对应的标签值,给定N个人,ground truth的身体关节点集合为 其中是第n个人第k个关节点的ground truth像素位置。 假定所有的K个关节点位置都是指定的,则第n个人的reference embedding为 grouping loss?定义为 总的loss为 下图展示了网络产生的embedding的一个样例 图片中不同大小的个体的影响图片中的小个体在pooling之后的分辨率会变得很低,这样将会影响精度,为了解决这个问题,在测试的时候使用多尺寸测试,然后将得到的heatmap相加取平均,然后,为了跨尺寸组合标签,作者将像素位置的标签组成一个向量(假设有m个尺寸),然后计算向量之间的距离。 多人姿势检测评估结果多人姿势检测在两个数据集上进行评估-MS-COCO、MPII Human Pose,测试采用多尺度测试。 在MPII上的测试结果如下图所示: 在MS-COCO上的测试结果如下所示: 效果如本文所说都很state-of-the-art。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/27 15:45:20- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |