我目前正在 Tensorflow( ver:1.8 os:Ubuntu MATE16.04) 平台上构建模型。该模型的目的是检测/匹配人体的关键点。训练时,出现错误“没有任何变量的梯度”,我很难修复它。他们展示了根据卷积网络生成的哈希码匹配图像是可能的。两张图片的相似度由它们对应的哈希码之间的汉明距离决定。我认为可以开发一个极轻的模型来对具有“恒定人体主体”和“固定背景”的视频进行实时人体姿态估计。模型结构01.数据来源:来自一个视频的 3 幅图像,具有相同的人物主题和相似的背景。每个图像中的每个人类关键点都被很好地标记。其中 2 张图像将用作“提示源”,最后一张图像将作为关键点检测/匹配的目标。02.提示:将根据人体关键点的位置从“提示源”图像中裁剪 23x23 像素的 ROI。这些 ROI 的中心是关键点。03.卷积网络“提示”:简单的三层结构。前两层使用 3x3 过滤器按 [2,2] 步幅进行卷积。最后一层是在 5x5 输入上的 5x5 卷积,没有 padding(相当于一个全连接层)这会将 23x23pixel Hint ROI 转换为一个 32 位哈希码。一个提示源图像将生成一组 16 个哈希码。04.“用于目标图像”的卷积网络: 网络与提示网络共享smae权重。但在这种情况下,每个卷积层都有填充。301x301pixel的图片会变成76x76的“Hash map”05.Hash匹配:我创建了一个名为“locateMin_and_get_loss”的函数来计算“提示哈希”和哈希图每个点上的哈希码之间的汉明距离。此函数将创建一个“距离图”。具有最小距离值的点的位置将被视为关键点的位置。06.损耗计算:我做了一个函数“get_total_loss_and_result”来计算16个关键点的总损失。损失是地面实况标签点与模型定位的点之间的归一化欧几里德距离。07.建议工作流程:在初始化该模型之前,用户将从不同角度拍摄目标人物主体的两张照片。图片将由 OpenPose 或 DeepPose 等最先进的模型标记,并使用 03 中提到的卷积网络从它们生成 Hint Hash。最后视频流将被模型启动和处理。08.为什么有“两套”提示?从不同角度观察的一个人体关节/关键点会有非常不同的外观。我不想增加神经网络的维度,而是想通过收集两个提示而不是一个提示来“欺骗游戏”。我想知道它是否可以提高模型的精度和泛化能力。我遇到的问题:01.“没有任何变量的梯度”错误 (我这篇文章的主要问题):02.“批量”问题:由于其独特的结构,很难使用传统的占位符来包含多个批次的输入数据。我通过将批号设置为 3 并手动组合损失函数的值来修复它。
添加回答
举报
0/150
提交
取消