失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > halcon 相似度_怎样用深度学习判断两张图片的相似度?

halcon 相似度_怎样用深度学习判断两张图片的相似度?

时间:2018-11-09 10:34:33

相关推荐

halcon 相似度_怎样用深度学习判断两张图片的相似度?

最直接的,训练数据以“图片对”(image pair)为单位,标签是相似度,把这样的数据输入神经网络,最终网络模型能够回归出输入图片对的相似度;

于是第二个步骤来了,怎么样给训练数据打上相似度?手工标注。有没有更准确的、更快的呢?有,用深度学习模型来标注两张图像的相似度,怎么做的?看问题描述加上步骤1就行。流程递归,卡死了,无解。

既然步骤1里面“最直接的”不可以,那就间接来解决。转入步骤4

间接来说,我们既然不知道如何准确标注具体的、取值区间在0~1的连续的相似度,那么粗糙一些,标注离散的相似度:0表示不像,1表示很像。比如把英短猫和美短猫组成的图片对标注成1,英短猫和哈士奇组成的图片对标注成0,损失函数使用逻辑回归这种soft的概率回归形式,就可以了。只要图片对的标注足够充分,效果就会很好。前面有答主回答的Siamese Network就是这样的。这样子做,我们有了一个基于二分类的网络、输出相似度的模型。

但是问题又来了,如果构造一个充分的训练集,要给一千种、每种有好多张图片的数据两两之间标注0和1,这是一件很可怕的事情:如果你每种图有100张,总共有10万张图片,那么可以构成

这么多的图片对,显然这根本很难训练完成,更何况10万的数据集已经是一个很小的数据集了。

那么再间接一些,不用0和1表示像与不像了,用0, 1, 2, 3, 4...999,表示一千种不同的类,把只有两种分类的逻辑回归损失函数,换成有n种分类的softmax损失函数。这样子,理论上softmax给每个类一个“中心”,每个中心都是一个高维向量,每个类的中心都和其他的类中心尽量的“不像”,用数学来说就是余弦越小。然后呢,我们让同一类的图像,尽量往自己的中心上去靠,靠的越近、越紧,就越好。这样子,美短猫都紧密团结在美短猫的中心上去了,哈士奇都紧密团结再哈士奇的中心上去了。训练结束,“最美短猫”的美短猫离自己的中心靠的最近,“不那么美短猫”的美短猫距离美短猫中心靠的比较远,而哈士奇离美短猫中心靠的就很远很远了,离自己的中心比较近。这样的就比较好能解决我们的问题了。输入了图像,我们能得到图像的一个特征向量,输入另一个图像得到另一个特征向量,用余弦函数比比他们的距离,相似度就有了。前面有答主说的用imagenet上pretrain模型,使用两张图的最后隐层的向量输出,求余弦做相似度就是这个道理。

然后就得到了用深度学习判断两张图片相似度的方法。更高级的知识,请深入学习metric learning和深度学习结合的相关知识。

如果觉得《halcon 相似度_怎样用深度学习判断两张图片的相似度?》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。