我正在使用Tensorflow和Keras。是否有可能对球体表面的图像进行适当的模式识别?我正在使用(Healpy framework)创建我的skymaps,模式识别应该在上面工作。问题是这些Healpy skymaps是一维numpy数组,因此,紧凑子模式可能分散在这个一维数组上。对于基本的机器学习算法(我正在考虑卷积深度网络)来说,这实际上很难学习。
此上下文中的特定任务是对球体曲面上的水滴进行计数(请参见附加的image)。对于这个特定的任务,正确的数字应该是8。所以我创建了10000个skymaps (Healpy设置:与npix=3072对应的nside=16 ),每个都有0到9之间的随机数量的水滴(因此有10种可能性)。我试图用1d Healpy数组和一个简单的Feed Forward网络来解决这个问题:
model = Sequential()
model.add(Dense(npix, input_dim=npix, init='uniform', activation='relu'))
model.add(Dropout(0.25))
model.add(Dense(10, init='uniform', activation='softmax'))
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
model.fit(skymaps, number_of_correct_sources, batch=100, epochs=10, validation_split=1.-train)然而,在用10,000个skymaps进行训练后,测试集的准确率仅为38%。我猜,当提供Healpy单元的真实排列(就像它在球体上显示的那样)而不是只提供一维阵列时,这将显着增加。在这种情况下,可以使用卷积网络(Convolution2d)并像通常的图像识别一样操作。你知道如何在二维阵列中正确地映射健康细胞,或者直接在球体上使用卷积网络吗?
谢谢!
发布于 2016-12-17 07:54:01
这是解决一个相对简单的问题的一种艰难的方法,这是厚颜无耻的2-D!
如果您要查找的对象与图中的对象一样突出,请为数据创建2_d图,然后为其设置一系列阈值级别的阈值:最高的阈值将挑选出最亮的对象。任何像Aitoff或Hammmer这样的连续投影都可以,为了消除边缘问题,可以使用投影的旋转。分段投影,如Healpix,对于数据存储是很好的,但不一定是数据分析的理想选择。
如果地图的信噪比很差,所以你要在噪声的黑暗中寻找目标,那么就需要一些复杂的东西,甚至可能是一些神经网络算法。然而,你可以看看普朗克对Sunyaev-Zeldovich星系团的数据分析,其中最早的可能是https://arxiv.org/abs/1101.2024 (论文八)。随后的论文对此进行了改进和补充。
(这应该是一个评论,但我缺乏代表。)
https://stackoverflow.com/questions/40681296
复制相似问题