图片识别——需求篇 - 高飞网
318 人阅读

图片识别——需求篇

2017-07-28 02:09:46

    最近由于工作的关系,学习一些关于图片识别的知识,并将之成功用于解决实际问题当中,在此一一记录下来,以备后用,同时希望对大家有用。

场景

    企业端用户在注册时,会上传一下公司的Logo。上传的步骤是:选择本地Logo图片,点上传,图片被上传至公司图片服务器(此时这张图片有了一个id:id_a);由于用户的图片尺寸不一定适合网页的展示,因此要用户做一下截取并保存(此时这张图片有了新的id:id_b),图片服务器会根据这张图片,缩略为大中小等多个长图以适用不同场景的页面展示使用。数据为中将id_b保存下来。但企业Logo还有一个方图,不知当时怎么想的,是让运营人员随意在网上找的图片上传的。

    下图是QQ上传头像的场景,非常类似。

生产缺陷

    从上面的介绍中,我们知道数据库中只保存了id_b,id_a(用户上传的源图)丢失了(虽然在图片服务器中,但没有id就等于丢失了)。现在发现,由运营人员上传的某些方图,效果非常差,总不能让10几万用户再上传一遍Logo吧?于是有了下面的需求。

    希望能在庞大的图片服务器中,根据保存的id_a,找到id_b。

分析

    之前从来没有接触过图片识别的课题,如何在短时间内找到解决方案呢?

    试想一下,用户上传logo,会不会像上图QQ头像一样,把一张完整的图片,截去一半字呢?当然不会!这是一个非常有用的前提,后面学习算法以后,会知道很多图片比较算法,都是对整张图的,有了这个假设以后,就可以通过将图片的留白截去,转变为整图的对比,从而简化问题。要知道业界顶级的以图搜图公司,谷歌、百度也不能100%找到你想要的图片。

    其次,在数以千万计图片中,找到某一张图片,顺序查找肯定是不行的,举个例子,假如有1千万张图片,需要查找的Logo有10万,就需要10^12次比较,假设每次比较需要10^13ms,这是多久呢?不直观,317年。天啊,那时早就见佛祖了。这肯定是不行的,比须想办法减少比较次数,虽然到目前为止,我还没有学习任何图片比较算法,但是必须要有这个心理准备。

    接下来就从这两方面来解决问题吧!

调研

    接下来我们从两方面来调研方案,分别在图片比较和提高查询速度两方面:

    会涉及到3种哈希算法:均值哈希算法感知哈希算法差异哈希算法

    哈希值比较:汉明距离

    海量数据查询:提高汉明距离海量查询性能的方法


还没有评论!
54.196.145.24