专栏名称: 狗厂
目录
相关文章推荐
51好读  ›  专栏  ›  狗厂

博士们竟然玩起了涂鸦:基于手绘草图的图像检索技术研究

狗厂  · 掘金  ·  · 2018-06-14 02:50

正文

5 月 26 日下午,在第二十八期七牛云架构师实践日,金城教授进行了《基于手绘草图的图像检索技术研究》为题的演讲。本文是对演讲内容的整理。

作者介绍:

金城,复旦大学计算机科学技术学院教授、博士生导师金城。上海视频技术与系统工程研究中心执行副主任,上海市优秀技术带头人,主要研究方向为图像视频信息处理、分析与检索,围绕视频监控、多媒体内容挖掘与检索,互动辨识等开展相关研究。

相信各位一直以来都用过非常多的图像检索方法,比如我们在百度里输入一个关键词或一张照片就可以找到一张图。在这样的使用过程中,大家都会面临一个问题,那就是得到的结果可能乱七八糟,不一定是你想要的图片。

而我们的图像检索和这样的方式稍有区别,举个例子,现在我想找张素材图,这边是座山,那边是太阳,只能输入太阳、山,不能输入左边是山、右边是太阳,而且内容可能比较乱。另一种情况就是用照片搜图,通常是为了找到完全一样的或更高精度的图片时使用的,但要找到一张比较类似的就比较难,例如上传小猫的图片,出来的结果基本都是不同尺寸的图片。或者是我家女儿画画,比如画一只鞋子,然后就可以找到跟鞋子长得像的图片,从而在淘宝上找到相应的商品。也就是说,根据我女儿画的草图,可以在一个非常大的图像库里找到相应的图。

其实草图很早以来就有非常多应用了。比如上图丰子恺大师的画,很简单的几笔就能描述一个场景或一个故事。但我拿这个图去百度图像检索,搜出来的肯定不会有月亮和茶壶、一个人坐在那里。于是我们就考虑,怎么解决这个问题。

上图是最古老的古埃及象形文字,跟我们古代的经文、甲骨文非常相似,同属象形文字。这是我们做这个事情的一个有趣出发点。

上图是在印度尼西亚某个山洞里拍摄的,是一副我们先人在岩洞里画的画。左边是 3.5 万多年前的一只猪,右上角是一个人把自己的手放上去画了一张图片。这两张图虽然出现在一起,但隔了大概 4 千年。这个猪现在还能找到。

由照片可见他们写实水平还是可以的,画的样子非常像猪。那么我们不禁畅想:有没有可能找到岩画的考古现场,就能直接通过图形找到网上的照片?这是很有趣的事情。

如果说刚才的图画得还不够好,那么上图就已经很清楚了,这个动物有角,身上有很多毛,感觉绘画水平有提升。但其实这张图更早,大概距今 4 万年前,和上图一样的是,这张图现实里也有相应的动物。

而在绘画水平不够好的情况下,我们掏出手机画个画,能不能找到跟这个画相似的东西?比如小朋友到博物馆,一定非常无聊。所以我们想,有没有可能搞一个大屏幕,让孩子可以画画,画出来一个碗,然后告诉他,这个博物馆有这样的碗,这就是一个比较好玩比较酷的事情。

以上这些想法,就是我们当时做这件事情的动机。

我们看这个问题具体是什么样的?

我们自己手画的图,一看就知道,第一个是埃菲尔铁塔,中间是金字塔,最右边是有很多柱子的古罗马建筑。那能不能从库里把类似的图片找到?我们跟以前的检索有着不一样的输入方式,从而是可以找到的。在网上抓图的时候,有很多图像标签文字,而事实上百度、Google,任何搜索引擎的大部分方式,就有这张图以及文字、标签。以前在百度里做图像检索,输入标签,事实上是这张图里出现过的或者语义上相似的。通过这些文字才可以找到,但它并不知道这是一个金字塔还是什么。

我们要做的事情,就是输入图以后,找到一系列的图,里面有些是 Relevance 相关性的。然后下面打个分,1 表示是相关的,0.8 可能不是那么相关。输入这个图,正确的 Relevance 应该是 0.96 是最像的。后面的金字塔可能因为只是两边的样子比较像,所以是 0.82。我们希望输入一个草图,从一个库里找到一系列这样的图,然后按相关性排序,这是我们的任务。

我们做了一个方法,如下图所示:



它分成线上线下两个部分。离线部分有数量庞大的图像库,我们首先把其中的图片转化为类似草图一样的图,这样的图才能做有效的对比。然后我们对它提取特征,画出来的图也会在同样的网络里提取特征,两相比较就能得到一个排序。但有的时候我们觉得,这个排序不一定完全靠谱,所以我们会重新做一次排序,把真正相关的排在前面。

这里面有三个核心问题:

第一,怎么把彩图变成草图?

第二,特征怎么提取?

第三,怎么做重新排序?

我们用搜索引擎会发现,很多图像检索的结果很差。我们希望输入这个“埃菲尔铁塔”,别出来奇怪的结果,或者至少奇怪的结果排在后面。为了达到这样的目的我们是这么做的:

首先就是做到类似草图的样子,比较简单的思路就是边缘特征。目标是从照片变成像手绘一样的图。当然边缘有很多不同的方法,这是一种提取的方法,但里面还是有很多的杂质以及噪声。我们用这个方法,加强了外轮廓的概念,把相应的背景噪声和细节噪声去掉。类似于草图的生成,这是我们的第一步工作。

有了刚才的图,然后开始对它提一些特征。我们可以这么理解特征:有两张图片看上去差异非常大,但我们如果希望这两张图片是某一张图片,它一定在某个特征上是一样的,或者说把它们从一个很高维度的空间转化到一个维度空间的时候,是一个点。比如二十个幼儿园小朋友,可以分成男生、女生,虽然男生之间长得不一样,但他们的共同特征是男性。这样就从人的高位空间,直接映射到了一个一维空间。所以我们要找到一个有效特征来证明这两个东西是一样的。同时另外重要的是,如果是不一样的,在新的空间里应该尽可能远离。

接下来我们提取草图图像里的很多局部的小块,输入网络。这是里面的细节,同时整张图也很重要,我们用了一个专门的网络,把两部分得到的相应的小特征再进行整合。这个网络的特点,就是希望所有的输入经过某个网络变换以后,能得到被压缩或提取过的新特征,这个特征值通过完全相同的逆向操作能还原回来。好比一个加密和解密的过程。这样如果能做到加密以及解密,我们就认为这个特征很好地保留了原来的信息,同时又能做到一定程度的压缩。这就是一个比较好的特征。

然后我们需要做 Re-ranking optimization 重排序的优化。



传统的工作,我们可能得到这样的排序结果,有什么办法把排序做得更好?一个比较简单的方法,这几张图本身长得就很相似,可以把所有的图根据表面相似性进行聚类。这个方法如果靠谱,排在前面的图中,大部分应该确实是这个图的内容,这是我们一个假设。如果这样,就可以进行聚类。聚类以后数个数或是计算某个值,就可以判定某类比较相似,这样就可以把这类的图片权重进行调整,然后得到最终结果,有的排在前面,有的被排在后面。

比如说搜“埃菲尔铁塔”,旁边可能站着某个美女,你进行聚类,就会知道长得像埃菲尔铁塔的图会往前排,而有美女的应该会往后排,这是一个 Re-ranking 的方式。







请到「今天看啥」查看全文


推荐文章
练瑜伽  ·  一节60分钟的阴瑜伽课程
8 年前
每日健康生活  ·  这12种人最长寿,有你吗?
7 年前
健康界  ·  5·12国际护士节献花活动
7 年前