最近宅在家,消遣时间之际,总会遇到一个让我困扰的事情。比如随手刷到的一个GIF,总想找到它的原片。

狗头
狗头

各位绅士可别想歪,我说的是动漫。

这个问题本质是一个相似度的检索问题。

说到视频找视频,其实可以分解为以图搜图。以图搜图这项技术,已经十分成熟,且已产品化。尤其在主流搜索引擎,很难找到一个不能搜图的引擎。连淘宝都有自己的时尚搜图功能。

谷歌搜图
谷歌搜图

但是当你满怀期待上传一张图时,你会发现,他返回的结果要么是同风格作品,要么是图片的描述。摔,我不是让你做抽象阅读理解哇。

谷歌搜图效果
谷歌搜图效果

这样的现象,实际是个性化需求与规模化需求的矛盾。对于公司,能规模化的,成本越低;定制带来存储成本,远高于能带来的回报。

这样的问题难不倒我们广大的人民群众,如果没有现成的,那我们就造一个。


以图搜图,可以理解为图像的检索,图像和其它信息一样,是可以被索引,被检索的。

于是乎,可以将整个工程抽象为3个部分。

  • 图像预处理
  • 图像特征表征
  • 图像检索

图像检索
图像检索

图像预处理,一般是尺寸、色调的调整、以及去除明显的噪声。

索引建立有很多种方法,其核心是构造图像的特征表征。

这里先用简单的,构建一个 MVP(最小可行性产品),就采用谷歌的 MobileNet 啦。

mobileNet2
mobileNet2

该模型尺寸仅数十M,放在服务器或是部署到手机移动端,完全绰绰有余。(实不相瞒,其实一开始上的VGG16,但是模型太大了,服务器放不下。)

最后,图像检索,当一张新图来到时,对其进行特征提取,然后去索引库中查询,返回特征表征最近的 TopN,一个简单的以图搜图就完成了。


迫不及待想尝试了,但是发现一个大问题,咱们的索引图从哪儿来?总不能凭空捏造噻。

嗯,这也不是什么大问题,之前浏览某P开头,哦不对是G开头的学习网站,发现了知乎问题的爬虫。

这可是个好东西,恰好知乎时间线上,总有一个问题干扰学习——#什么样的腿才叫好看的腿#

img-set
img-set

就拿这个问题为例,将图片在离线创建索引,随后通过服务端部署。(服务端部署也可以讲一集,但不在这里,别挡住我看腿。)

当当当,随着周末两天的操作,舍弃了俺在的 pubg mobile 战友,谷粒粒的第一个搜图app上线咯。喜大普奔。

叉腰
叉腰

让我们赶紧试试,

效果一
效果一

嗯,还不错

再来一张,

效果二
效果二

原图秒匹配好吗,还给配上了类似风格的照片。

到这里,咱们的以图搜图小应用,就算开发上线完毕啦。

效果三
效果三

学习效率上升N个档次有没有⬆

链接地址:以图搜图之#什么样的腿才叫好看的腿# http://img-search.kuhungio.cn/

相关文章:

谷粒:机器学习模型部署–打通前后端任督二脉

谷粒:机器学习落地需攻破的9个难题

声明:该应用仅供学习,禁止用于其它用途。