Associative Embedding: End-to-End Learning for Joint Detection and Grouping
会议:2017 NIPS
1、任务:multi-person pose estimation(多人人体关键点检测)
从一张有多个人的图片中检测出每个人的人体关节点
2、特点:
(1)先检测关键点,再对关键点进行分组,预测关键点属于哪一个人;
(2)不同于以往multi-stage,论文提出一种single-stage,end-to-end的关节点检测和分组方法;
(3)假定人体有N个关键点,使用stacked hourglass architecture生成2N个feature maps, N个feature maps用于检测关键点,N个feature maps用于associative embeddings;
(4)对于检测关键点的feature maps,同单人姿态关键点检测,每个feature map检测特定的一个关键点位置,不同的是,多人姿态检测时,一张feature map(设表示左脚)上存在多个峰值,如果有M个人,则存在M个峰值。
(5)对于associative embedding的N个feature maps,上面的值可以看作一个“tag”,作者希望属于同一个人的joint具有相同的tags,不论这个tag值为多少,只要同一个人的tag相同,不同人的tag不同即可。
3、基础网络:stacked hourglass architecture
可以看作多个encoder-decoder级联的网络,成一个堆叠的沙漏形状。
stacked hourglass architecture最初用来进行单人姿态检测,该网络由多个encoder-decoder级联的网络构成,encoder可以得到图片的全局上下文信息,decoder上采样到图像分辨率,堆叠多个可以提高准确率;
4、完整网络:
输入:图片
输出:2N个feature maps(N个feature maps用于检测关键点,N个feature maps用于associative embeddings),每一个feature map针对一个关节点的任务。
5、Loss
(1)detection loss : 典型的关键点检测Loss
ground truth: 由于数据集的监督信息是人体关键点的位置,是一个点,所以将这个点进行2D高斯扩散,成为圆域,作为关键点检测的监督信息。
pred location: 网络预测出图片中每个位置像素属于某一个特定人体关键点的可能性。
detection loss: 使用ground truth和pred location之间的均方误差作为loss.
(2)group loss: 目标使同一个人的关键点tag相同而不同人之间的tag不同。
因为这里不限制某个具体的人的tag是多少,只限制同一个人的tag相同,不同人的tag 不同,这里先计算一个reference embedding tag作为参考tag.
reference embedding:针对ground truth中的某一个人的所有关键点的位置,对应到预测group tag的feature maps上,获取对应位置上的tag,计算这些tags的均值作为reference embedding.
然后,根据同一个人的不同关键点的tag相同,不同人的tag不同,设计group loss。
6、应用
除了可以做multi-person pose estimation,还可以做instance segmentation, and multi-object tracking.
7、问题:
(1)为什么使用stacked hourglass architecture?
答:stacked hourglass architecture最初用来进行单人姿态检测,该网络由多个encoder-decoder级联的网络构成,encoder可以得到图片的全局上下文信息,decoder上采样到图像分辨率,堆叠多个可以提高准确率;
该网络输入图片,输出2N个feature map。
(2)这个文章主要创新点在哪里?
答:我觉得主要创新点在于group loss的设计,特别是没有gt数据,使用计算的平均值作为参考tag.
閱讀更多 AI深度學習求索 的文章
關鍵字: 关节点 architecture stacked