暹罗神经网络的图像相似性

时间:2019-04-09 20:52:49

标签: image neural-network deep-learning conv-neural-network similarity

我正在尝试完成以下任务:在衣服图像数据集上训练神经网络,然后为其提供新图像,以从训练集中预测该图像与该图像最相似。但是,我无法获得一个好的模型。有人对这样的任务有建议吗?

每个类只有一个图像,但是我尝试了数据扩充来创建更多数据。我已经尝试了许多不同的暹罗神经网络和预训练的神经网络,但是无法获得有意义的模型。

这是我尝试过的众多实现之一:

left_input = Input((132, 103, 3))

right_input = Input((132, 103, 3))


convnet = Sequential([

    Conv2D(filters=8, kernel_size = 10, activation='relu'),

    MaxPooling2D(),

    Conv2D(filters=16, kernel_size = 7, activation='relu'),

    MaxPooling2D(),

    Conv2D(filters=32, kernel_size = 4, activation='relu'),

    MaxPooling2D(),

    Conv2D(filters=64, kernel_size = 4, activation='relu'),

    Flatten(),

    Dense(units=128, activation='sigmoid')


])

encoded_l = convnet(left_input)

encoded_r = convnet(right_input)


L1_layer = Lambda(lambda tensor:K.abs(tensor[0] - tensor[1]))

L1_distance = L1_layer([encoded_l, encoded_r])

prediction = Dense(1,activation='sigmoid')(L1_distance)

siamese_net = Model(inputs=[left_input,right_input],outputs=prediction)


siamese_net.compile(loss="binary_crossentropy",optimizer='rmsprop',metrics=['accuracy'])

我希望一件红色的短袖连衣裙会产生类似的图像,即红色且短袖。但是目前,例如,我得到的蓝色牛仔裤连衣裙与带有花朵图案的黄色连衣裙的最相似。在其他方面或我可以尝试的来源方面的建议,将不胜感激!

0 个答案:

没有答案