我是一位对ML以及使用Tensorflow真正感兴趣的开发人员,尽管我已经完成了所有教程,但我确实很努力地开始建立自己的模型,并希望你们可以帮助回答一些可能很漂亮的问题。简单。
我正在尝试构建一种算法,该算法将从图像中检测出身体上的特定点(肩膀,手腕等),但是我不确定模型的输出应该是什么,我的训练数据是一组图片以及这些点的x,y值列表,我希望返回对图片上这些点的位置的预测(类似于面部识别)。
但是在构建它时我有几个问题:
1-我的应用程序的输出应该是什么?我想让算法为每个点返回最可能的x,y位置,但不确定如何在张量流中表示它,我的输出中每个像素是否需要大量张量并且正确的像素值为1?
2-如何处理不同尺寸的图像,因为输入张量将具有预定数量的特征,我的算法如何接受任何尺寸的图像?
3-如何确定图像上是否没有有效点?仅仅是在我的训练集中加入空白图片吗?
我希望这些问题都有意义,并且感谢任何愿意花时间阅读的人!这对我理解Tensorflow以及对激发我对ML的兴趣方面取得良好进展将是非常重要的帮助!
答案 0 :(得分:1)
这可以通过各种不同的方式完成,并且取决于您要如何编码数据的语义。我尝试给出一个可能没有最佳结果的非常简单的示例:
1-您可以将人体姿势表示为矢量的顶点列表。例如,这可能是
[left_shoulder,
right_shoulder,
torso,
...]
每个顶点是一个x,y元组,因此您的输出尺寸将为[vertex_count, 2]
或vertex_count * 2
(展平版本)。因此,输出将是每个顶点的这些x,y位置。这是一个回归问题,因为您的输出尝试达到generate continuous values。您也可以添加已识别身体姿势的置信度值。这样的优点是,如果无法识别/显示姿势,则不会显示/处理姿势,并且在解释模型的输出时可以使用简单的截止值进行操作。
2-处理不同大小的图像的最简单方法是添加的预处理步骤:只需调整图像的大小以适合您的训练模型即可。
3-是的,这可能是一个很好的起点。也许还有那些不适合贴标签的框架。
@EighteenthVariable分享的有关Medium的文章也是获得更好理解的一个很好的开始。