球体上的模式识别(基于HEALPY)

时间:2016-11-18 15:56:56

标签: tensorflow keras image-recognition pattern-recognition healpy

我正在使用Tensorflow和Keras。是否有可能对球体表面的图像进行适当的模式识别?我正在使用(Healpy framework)来创建模式识别应该起作用的天空图。问题是这些Healpy天空图是一维的numpy数组,因此,紧凑的子模式可能散布在这个1d数组上。对于基本的机器学习算法来说,这实际上很难学习(我正在考虑卷积深度网络)。

此上下文中的特定任务是计算球体表面上的blobbs(请参阅附件image)。对于这个特定的任务,正确的数字将是8.所以我创建了10000个天空图(Healpy设置:nside = 16,与npix = 3072相对应),每个都有0到9之间的随机数量的blobbs(因此有10种可能性)。我尝试使用1d Healpy数组和简单的前馈网络来解决这个问题:

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个天空图进行训练后,测试装置的准确度仅为38%。我想,当提供Healpy细胞的真实排列(因为它出现在球体上)而不是仅仅是1d阵列时,这将显着增加。在这种情况下,可以使用卷积网络(Convolution2d)并按照通常的图像识别进行操作。任何想法如何在2d阵列中正确映射healpy细胞或直接在球体上使用卷积网络?

谢谢!

1 个答案:

答案 0 :(得分:0)

这是一个解决一个相对简单的问题的难题,这个问题毫无顾忌地是2-D!

如果您要查找的对象与图中的对象一样突出,请为数据创建2_d映射,然后将其阈值设置为一系列阈值级别:最高阈值选择最亮的对象。像Aitoff或Hammmer这样的任何连续投影都可以,并且为了消除边缘问题,使用投影的旋转。像Healpix这样的分段投影适用于数据存储,但不一定适合数据分析。

如果地图的信噪比很差,那么你正在寻找噪声中的物体,那么就需要一些复杂性,甚至可能是一些神经网络算法。但是,您可以查看Sunyaev-Zeldovich星系团的普朗克数据分析,其中最早的可能是https://arxiv.org/abs/1101.2024(论文八)。随后的论文进一步完善并加入其中。

(这应该是评论,但我缺乏代表。)