我理解如何处理分类问题,并且开始理解卷积网络,这在某种程度上我认为是答案。我对如何设置一个网络来输出位置感到有些困惑。
假设你有一个数据集,包含面部鼻子末端的位置。要找到这个末端,你是否只是做一个“分类”类型的问题,其中你的输出层类似于64×64 = 4096个点,但如果鼻子位于网格的第43行和第20列,你就将输出设置为全零,除了在元素43*64 + 20 = 2772处,你将其设置为1?然后再将它映射回你的图像尺寸。
我找不到关于这部分识别工作的太多信息,这是我最好的猜测。我目前正在进行一个使用这种方法的项目,但这将是一项巨大的工作,我想知道我是否至少走在正确的轨道上。这似乎是一个已解决的问题,但我就是找不到人们是如何做的。
回答:
虽然你描述的方法理论上可行,但通常神经网络(包括卷积神经网络和其他类型)并不用于确定图像中特征的位置。特别是,卷积神经网络(CNNs)被专门设计为平移不变的,以便它们能够检测到特征而不管这些特征在输入图像中的位置如何——这与你所寻找的恰恰相反。
对于你描述的那种问题,一个常见且有效的解决方案是级联分类器。它们有一些限制,但对于你描述的那种应用,应该会工作得很好。特别是,级联分类器由于采用分阶段方法而设计得性能优异,大多数输入图像的部分会在前几个阶段被迅速排除。
不要误会我的意思,尝试使用你描述的方法可能会很有趣;只是要注意,这可能会难以很好地扩展。