图片的快速对比

老秋先生 2016-01-19 01:35:24
需求:目前需要对比约10万张的图片
现在的方式:使用AForge
现在的问题:使用AForge后,内存占用太大。

现在我用的方式是,先将10万张图片分到10台服务器加载到内存,然后先处理灰度、重置大小为一致,当需要对比图片时,将图片分别发至这10台服务器,然后等待返回图片标识和匹配值(百分比),然后取出匹配值最高的图片确认为一张图片。
现在一台服务器要加载1万张图片都觉得有些吃力,偶尔会引发内存泄露问题。

乞求各路大侠探讨一下更好的方式,我希望将图片转为某种特征码,当需要对比图片时,用同样的算法将特征码得到,然后在数据库中进行相似度的对比,不知道有没这样的现成技术呢?或者其他更好的办法
...全文
205 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
老秋先生 2016-01-23
  • 打赏
  • 举报
回复
老秋先生 2016-01-23
  • 打赏
  • 举报
回复
图片大概是这样子的
532380_392049.jpg][/img]


用这两种图片对比他们的相似度 应该如何做到呢?
老秋先生 2016-01-23
  • 打赏
  • 举报
回复
crystal_lz 2016-01-19
  • 打赏
  • 举报
回复
谁知道 你想比对什么啊 宽度?还是高度? 还是啥的? 如果是要比对一模一样的图片 那么直接 比对 md5 就行了啊。。。
  • 打赏
  • 举报
回复
引用 1 楼 xuzuning 的回复:
处理灰度、重置大小为一致 这本身就是提取特征码了,你不会每次比较都做一遍吧?这个是要保存到数据库中的 你是既要做的是计算两个字符串的相似度
有些公司的有些人,学了一些开源的大数据框架,疯了。他们模仿人家简单的框架而设计的东西都是以滥用内存为基础(一旦接近物理内存限制,则系统立刻变慢几百倍、甚至崩溃)。 跟他们说“保存到数据库中”是没用的。
  • 打赏
  • 举报
回复
你的意思是你所谓的“大数据”就是全都放到内存中么?那么你的服务器上看来也不会放什么其他的应用服务了(因为如果你们将不同种类的上百个不同种类的服务放在同一个服务器上,那么你们这种设计就会随时突发崩溃),而且你们的物理内存肯定有钱升级到大大高于所需要的实际内存的水平的。如果没钱,就不要盲目照搬这类坑爹的所谓“大数据”概念。 你们应该把数据分布在数据库中,这些数据库占用多少内存,应该是动态的。而不是那所有数据都放到内存里。 基于此,那么每台服务器上能够部署的服务也就可以是多种类的,不会产生突发性的问题。
  • 打赏
  • 举报
回复
加载1万张感到吃力,为什么不仅仅加载 100张?
xuzuning 2016-01-19
  • 打赏
  • 举报
回复
处理灰度、重置大小为一致 这本身就是提取特征码了,你不会每次比较都做一遍吧?这个是要保存到数据库中的 你是既要做的是计算两个字符串的相似度

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧