CD封面检索示例
设想这样一个场景:某天你遇到一只狗,很喜欢却没办法搞清楚是什么品种,怎么才能快速获得答案?通常这样的要求可以借助搜索引擎,但在这个场景下,找出正确形容这只狗的核心关键词,似乎成了一种更具难度的挑战。
然而搜索引擎并未失效,只是需要更换一种输入方式——变文字为图像。以多媒体的方式发起搜索,这也正是搜索引擎一贯的演进方向。
几天前机缘巧合,百度工程师李浩向我展示了尚未在iOS和Android平台发布的新产品——百度移动视觉搜索。这个技术将在百度移动平台客户端上实现:通过手机摄像头捕捉的图像,帮用户找到想要的那本书、那张CD甚至是那只狗。
我的第一反应是,移动视觉搜索和之前的PC端的以图搜图,有差么?
我得到的答案是:在选取特征表达方面,这两个产品没有根本性的差异;而不同之处体现在数据库和算法方面。几年前推出的百度识图(shitu.baidu.com),只是简单的寻找相同图片,实用价值坦白讲并不高(最近加强了人脸识别功能)。
而即将应用在手机端的视觉搜索,显然不想变成一种鸡肋。
书籍封面检索示例
不同之处首先是缩小了适用范围。这个产品将通过逐个小类目渗透的方式推进,首先是支持图书搜索、然后是支持音乐CD……这就是上面提到的数据库变化。新的方式所要处理的数据规模要小得多,这同时也给算法带来更多的灵活性。
数据库越大,对算法的要求就约高。搜索算法主要以两个纬度衡量:一是效果,二是效率。所谓效果就是准确率和召回率,这两项关系到搜索质量的好坏;而效率可以理解为单位时间的处理速度,这直接关系到一次查询所消耗的时间。
实际上更小的数据库,使得算法效率可以略作牺牲,换取效果的提升。
效果怎么提升?李浩解释说,一是抽取更多的特征表达,更多特征的好处显而易见;二是改进索引结构,变一级索引为多级索引,这可以形象的理解为先搜一遍,然后在这个结果上再搜一遍……最后才把结果返回给用户。
差异大抵如此。
电影海报检索示例
我看到的内部测试版本中,百度移动视觉搜索已经涉及了几个类目:图书、音乐CD、娱乐海报、文字识别、翻译以及开头提及的:狗。
以iOS平台为例,正式发布后用户打开“百度搜索”App,点击搜索框右侧的相机图标,就能弹出相应的视觉搜索功能菜单。比方想要寻找某一图书,只需要按照前述过程,对着一本书拍一下,就能获得这本书的相关信息:包括多个网店的售价。
CD和海报等也是如此。你不必拍全,只拍一部分也能找到想要的结果,甚至斜着拍、倒着拍也不影响搜索结果。这与特征识别的提取有关,机器和人的识别模式显然不同。产品经理会决定下一步扩展到哪个新的类目。
最容易的扩展方向还是“刚体”。也是说,搜索对象的外型和体积不会轻易发生变化。在这种类目上,就可以启动机器学习中“非监督”模式,即不需要人工干预、指导机器的学习过程,这种模式显得又快又轻松。
衣服就是一个刚体反例——很容易发生形变。通过“有监督”的模式,机器能够学习判断长袖短袖等衣服类型,然而形变过大必然会影响实际的效果。
其实,开头提到的狗也是反例。
对于机器怎么在“有监督”模式下学会识别狗,我非常好奇。而过程似乎也比想象中的简单:不需要人为事先给出狗的特征定义,只需要提供足够的相关图片,用以划上一个大致的识别边界,机器就会自己找到判定一只狗的方法。