Web图片搜索引擎设计 ——基于文本的图片信息提取
大纲 图片检索技术简介 我们设计的系统总体结构 图片文字信息提取 无用图片过滤 一些统计规律 结合文本与内容的方法(后期打算)
图片检索技术分类 基于文本 基于内容 基于语义 利用某种提取方法获得与图片内容相关的文本信息,利用传统文本检索方法提供检索。 提取图片中的可视化特征,比如颜色,形状,纹理等,对特征建索引,提供相似查询。 基于语义 理解可是特征的语义信息,可以利用文字查询可视特征。
基于文本 优点 缺点 符合用户查询习惯(关键字查询) 适合复杂语义查询(比如查“奥运会”) 利用已有的技术积累(文本检索) 性能好 提取的信息不够准确 文字描述不能保证全面性 不能基于内容相似查询
基于内容 优点 可以查询相似图片 对图片来源要求低(不需要额外文字信息) 缺点 技术不成熟 效率低 复杂语义无法表示
基于语义 通过理解图片中的可视特征来建立低层特征到高层语义的映射(比如:能够理解大海是蓝色的) 。符合人类理解图片的自然方式。 开始大量的研究,在未来会有很大的发展。
我们的选择——基于文字 理由 目前的大型图片搜索引擎基本上都是以基于文字的检索为主体。 性能良好 已有大量的网页资源可供使用。 开发周期较短。
我们设计的系统的结构
系统工作过程 抓取网页和图片 从网页中提取图片相关的文字信息 利用图片生成缩略图 对提取到的文字信息建倒排索引 提供查询
核心——图片信息提取(Extractor) 信息来源 HTML文档用于组织文字和图片等 通过分析HTML文档找到图片和相关的文字 提取方法 不能确知网页作者组织信息的方法,所以利用启发式规则 将最可能与某图片相关的位置的文字作为图片的文字描述信息
常用提取模式 <img>标记 从src获取图片来源 从alt获取相关文字信息(注意可能为文件名) 获得width和height,用于以后的过滤
常用提取模式(续) <a>标记 从href获得URL,判断是否为图片(简单的根据扩展名,不处理动态内容) 从title获得相关文字信息 从anchor_text获得图片的文字信息(通常最准确)
常用提取模式(续) 网页的标题 图片与所在网页相关,因此和网页的标题相关 提取<title>下的文字。有时<title>下还会嵌套标记,需要去除。有时<title>使用缺省的名字(比如new page或者Untitled Document),需要过滤
常用提取模式(续) 链接到图片所在网页的文本 和网页的标题一样,这是对网页的描述,所以Some_info可能和xxx.jpg相关 需要跨页面的信息提取 a.html <a href=“a.htm”>Some_info</a> xxx.jpg
常用提取模式(续) 网页的meta标记 也是对网页内容的描述 可以提取其中的keywords和description的值
常用提取模式(续) 图片的URL 图片的URL可能含有相关信息(path和file_name) 不考虑站点的domain_name,太泛
常用提取模式(续) 关联的<a>和<img> 嵌套 并列 <a href=”foo.html”><img src=”xxx.jpg”></a> 则xxx.jpg和foo.html的内容相关,可以使用foo.html的标题作为文字信息 并列 <a href=”foo”>anchor_text</a>…… <a href=”foo”><img src=”xxx.jpg”></a> 则xxx.jpg和anchor_text相关,可以用anchor_text作为文字信息
常用提取模式(续) <table>结构 组织结果比较多样化 提取时需要判断使用的是哪一种组织方式 相关的文字和图片放到同一个<td>中; 相关的文字和图片放在同一个<tr>下的两个<td>里; 相关的文字和图片放在两个相邻的<tr>内; 以某种其他的规律出现在<table>里 提取时需要判断使用的是哪一种组织方式
Hello, world<img src=“xxx.jpg”>你好,世界 常用提取模式(续) 图片周围文字 比较难于界定“周围”的含义。 基于流的方式,图片所在HTML流中位置前后一段固定的距离 Hello, world<img src=“xxx.jpg”>你好,世界
常用提取模式(续) 图片周围文字(续) 基于DOM的方式 与图片具有共同最低祖先的文字节点 <form> <div><img src=“xxx.jpg”></div> <font>some_text</font> </form> <form> <font> <div> Some_text <img>
目前系统中使用的模式 <img>标记信息 网页meta信息 <a>标记信息 链接到图片所在网页的文本 网页标题 图片的URL <table>结构 图片周围文字(DOM) 网页meta信息 链接到图片所在网页的文本 关联的<a>和<img>
信息提取方法 基于DOM的方法 将HTML文档解析为DOM树,遍历所有的节点,利用DOM接口的方法获取相关信息。 优点 缺点 实现简单,有开放的DOM解析工具可用(HTMLTidy) 利用部分结构信息,提取信息准确度稍高 缺点 需要解析DOM,效率较低
信息提取方法(续) 基于流的方法 直接通过字符串查找来定位所要提取的信息 优点 缺点 只关注几个tag,不需要解析DOM,速度快
信息提取方法(续) 基于wrapper的方法 利用HTML的半结构特点来准确的获得文字与图片的对应关系 优点 缺点 对于固定的结构模式,可以准确的提取到信息 缺点 效率较低 实现稍复杂
无用图片过滤 初衷 Web上提取到的图片有很大部分是意义不大的图片,用于装饰页面和做广告 去除这些图片可以有效的减小系统数据规模,提高图片质量和检索效率
无用图片过滤(续) 依然使用启发式规则 过滤模式 文件尺寸比较小(包括长宽和大小) 长宽比例比较大 利用HTML提取到width和height,以及实际图片的width和height 长宽比例比较大 同一网页内有多个<img>引用它 重要的图片不会在一页内出现多次 出现多次的通常是装饰图片
发现的一些统计规律 GIF和JPG图片的区别 GIF只有256色,但可动态,通常用于装饰性图片和广告 JPG压缩比高,常用于存储大尺寸文件
发现的一些统计规律(续) GIF和JPG图片的区别(续) 统计结果 人工评价样本,得到: GIF中12%有意义,JPG中49%有意义
发现的一些统计规律(续) <a>和<img>引用图片的区别
发现的一些统计规律(续) <a>和<img>引用图片的区别(续) 统计结果 人工评价样本,得到: 来自<a>的有意义图片比例为:74%,来自<img>的有意义比例为:37%
发现的一些统计规律(续) 图片引用次数的区别 引用次数的多少可以在一定程度上反映图片的重要性 通常<a>引用的图片引用次数越高则图片越重要 <img>引用的图片因为受到装饰性和广告图片的影响,引用次数规律性不强
发现的一些统计规律(续) 图片引用次数的区别(续) 统计图
发现的一些统计规律(续) 以上的这些规律对于改进无用图片过滤和查询结果图片排序有重要的价值。
结合文本和内容的方法 利用基于内容的提取方法,可以得到图片的可视特征组成的向量 考虑如何与得到的文本向量相结合来改进信息的相关性,从而改进图片搜索引擎的查询效果(作为未来系统改进方向)
结合文本和内容的方法(续) 先文本后内容的方法 拼接两个向量 先用文本查询,得到初始图片集,用户挑选相近的图片,进行内容相似查询,最终得到想要的图片 拼接两个向量 在查询时同时提供关键字和相似图片,利用类似VSM的方法进行匹配
结合文本和内容的方法(续) 利用LSI整合两个向量 将文字和内容向量拼接,然后利用LSI算法来得到整合的语义空间。 我做了一个试验:
结合文本和内容的方法(续) 整合的意义 可以得到文档和文字内容特征之间的关系 可以用于构建语义库 从文字可视特征,比如“天空” 蓝色 用于基于语义的查询 查询可以基于文本或内容,能够将一个向量中的相似关系引入另一个向量
谢谢!