Keras 完全卷积网络的直接热图回归

Keras 完全卷积网络的直接热图回归,keras,deep-learning,computer-vision,conv-neural-network,keypoint,Keras,Deep Learning,Computer Vision,Conv Neural Network,Keypoint,我正试图开发一个完全卷积的神经网络来估计包含已知3D模型渲染的图像中关键点的2D位置。我已经阅读了大量关于这一主题的文献(人体姿势估计、基于模型的估计、具有已知结构的遮挡对象的图形网络),但到目前为止,我所看到的任何方法都不允许估计图像中不同类别的任意数量的关键点。我见过的每个方法都经过训练,可以为k个关键点类输出k个热图,每个热图有一个关键点。在我的例子中,我想回归k个关键点类的k个热图,每个热图有任意数量的(非重叠)点 在这个玩具示例中,网络将围绕每个形状的上顶点的每个可见位置输出热图。立方

我正试图开发一个完全卷积的神经网络来估计包含已知3D模型渲染的图像中关键点的2D位置。我已经阅读了大量关于这一主题的文献(人体姿势估计、基于模型的估计、具有已知结构的遮挡对象的图形网络),但到目前为止,我所看到的任何方法都不允许估计图像中不同类别的任意数量的关键点。我见过的每个方法都经过训练,可以为k个关键点类输出k个热图,每个热图有一个关键点。在我的例子中,我想回归k个关键点类的k个热图,每个热图有任意数量的(非重叠)点

在这个玩具示例中,网络将围绕每个形状的上顶点的每个可见位置输出热图。立方体的顶部有4个顶点,拉伸的五边形有2个,而金字塔只有1个。有时点在屏幕外或被遮挡,我不希望输出遮挡点的热图


该体系结构是一个6-6层的Unet(如本文所述)。地面真实热图是围绕每个关键点的正态分布。当训练批量大小为5且l2丢失的网络时,网络学习从不进行任何估算,只输出空白图像。正确转换数据类型,并将输入数据类型从0规范化为1,输出数据类型从0规范化为255。我不知道如何解决这个问题,我的一般方法是否有危险信号?如果总体上没有明显问题,我将发布代码…

您如何将
0
255
之间的输出标准化?如果您正在执行类似于
sigmoid(x)*255
的操作,则可能会陷入零梯度区域(不确定这是否正确,但由于输出中的大多数值必须为
0
,我假设梯度将由这些值控制,当优化达到正输出梯度(关键点周围的高斯)变得显著的点时,它将被s形图消除)在阅读了更多的基础知识后,我明白了你的意思。在切换到tanh激活并降低图像中的零权重后,我得到了我想要的性能。精确的权重仍然是一个问题,但我认为sigmoid零梯度问题是罪魁祸首。感谢这么多人!这就是你需要的:,它允许“同一类关键点的多个实例。@WillSnyder我也在尝试实现完全相同的论文。你能做到吗?@sreagm不,我认为不适合那篇论文,在放弃了整件事之后,我放弃了尝试让更简单的例子工作。更不用说,作为一个相对的例子,我有点不知所措了。”为了深入学习,我随意拼凑了两种不同的方法……你如何将
0
255
之间的输出标准化?如果你在做类似
sigmoid(x)*255
的事情,你可能会陷入零梯度区域(不确定这是否正确,但由于输出中的大多数值必须为
0
,我假设梯度将由这些值控制,当优化达到正输出梯度(关键点周围的高斯)变得显著的点时,它将被s形图消除)在阅读了更多的基础知识后,我明白了你的意思。在切换到tanh激活并降低图像中的零权重后,我得到了我想要的性能。精确的权重仍然是一个问题,但我认为sigmoid零梯度问题是罪魁祸首。感谢这么多人!这就是你需要的:,它允许“同一类关键点的多个实例。@WillSnyder我也在尝试实现完全相同的论文。你能做到吗?@sreagm不,我认为不适合那篇论文,在放弃了整件事之后,我放弃了尝试让更简单的例子工作。更不用说,作为一个相对的例子,我有点不知所措了。”我偶然拼凑出了两种不同的方法,这证明了我更愿意深入学习。。。