2.3 多媒体数据分析实例
2.3.1 项目背景和需求分析
在图像识别领域,不仅能检测到图像中的物体,由图像生成完整的语义描述语句也已经成为现实。2016 年9 月 23 日,Google Brain 在 TensorFlow 上发布了最新版的自动图像描述系统“Show and Tell”,可以通过 NIC(Neural Image Caption)模型由图像生成准确的语义描述语句。受此启发,将该技术应用于基于图像语义的大型图像集可视化上,或许能得到更为理想的图像分析手段。
面对日益增多的图像信息,针对大型图像集的可视化分析系统是必要的。以往的研究既有可取之处,也存在很多限制。借由机器学习和人工智能领域的新成果,希望能设计开发出一个基于图像语义的大型图像集可视化系统来辅助图像集的特征分析。该系统需要完成以下任务。
①给出图像及语义概览,以展现图像集的基本语义特征,并通过语义的概览引导分析。
②提供平滑的交互方式,使得用户能逐步从整体图像集定位到局部图像集,直到更详细地浏览单张图片及其语义描述。
③提供有效的搜索功能,方便用户多方位快速了解感兴趣的图像。
2.3.2 项目架构流程
设计实现基于图像语义的大型图像集可视化系统所面临的挑战主要有两个方面:一是如何有效地提取图像的语义信息;二是如何根据图像语义设计出有效的可视化布局。针对第一个挑战,借助 Google“Show and Tell”的 NIC 模型完成。针对第二个挑战,在对比了不同降维投影算法后决定采用 t-SNE 为基本投影算法,并采用原创的图像-关键词布局算法得到最终的图像集布局。
如图2-13 所示,项目的技术方案主要由两部分构成:一是图像语义信息提取,二是可视化布局的生成及实现。在 NIC 模型[图2-13(a)]的基础上,图像语义提取器可以将大量图像转换为语义描述语句[图2-13(b)]。进一步地,我们将这些语义描述语句拆分成词,经过一定的过滤筛选后得到语义关键词[图2-13(c)]。为了充分利用图像语义提取器中的信息,我们为可视化布局设计了一种新的图像-关键词相嵌的投影布局算法[图2-13(d)]。该算法以语义关键词、图向量、词向量为输入,生成图像-关键词相嵌的语义布局[图2-13(e)],达到揭示图像集中有价值的语义内容的目的。最后,设计并实现了星系隐喻的交互式可视分析系统[图2-13(f)],使用图像的语义布局来辅助大型图像集的分析探索。
图2-13 项目架构流程图
2.3.3 可视化布局算法
为了使图像的语义布局足够有意义,我们期望最后图像和关键词的投影结果具备以下三个特征:一是关键词应该在相关图像附近,从而为这些图像提供注释;二是语义相似的图像应该彼此接近,从而能更方便地理解图像的语义内容;三是语义相似的关键词应该彼此接近,从而使整体布局能表达出一定的语义分布特征。
针对这三个需求,我们设计了图像-关键词相嵌的可视化布局算法。该算法主要由两个步骤构成:第一步获得图像的局部语义结构,保证关键词靠近相关图像;第二步根据关键词的语义空间重构图像的局部集合,使得图像在整体布局中表现出语义聚类。
处理流程如图2-14所示。在此之前,我们先利用 t-SNE 投影方法将图向量和词向量分别投影[图2-14(a)]。以 I 代表图像,W 代表关键词,C 代表图像的语义描述语句,且 W 由 C 拆分得到。d(Ij,Ik)代表图像之间的距离,d(Wj,Wk)代表关键词之间的距离。根据以前图像处理方法的先例,使用欧式距离(euclidean distance)计算d(Ij,Ik)。对于d(Wj,Wk),由于词向量计算中使用了余弦距离(cosine distance),我们也同样使用余弦距离计算词与词的距离关系。
①图像局部语义结构构建:该步骤完成图2-14的(b)~(d)部分,通过在图像投影空间中嵌入关键词并获得图像的局部语义结构来产生初步的布局结果。图像的局部语义结构指的是一组具有相似视觉和语义特征的图像集合。
首先,构建图像与关键词的双向绑定。然后,将关键词嵌入到图像投影空间中。最后,提取树结构表征图像的局部语义结构[图2-14(d)]。
图2-14 图像-关键词相嵌布局算法流程图
②图像与关键词的双向绑定:我们希望先得到图像与关键词的双向关系,通过这个关系,对于每张图像可以找到相关的词,对于每个词也可以找到相关的图像。
如图2-14(b)所示,每个圆圈代表一张图片。圆圈呈现饼图的形式,饼图内的不同颜色代表不同的关键词,某颜色区域较大,代表该颜色对应的关键词与该图片有着较高的相似性,反之亦然。例如,图2-14(b)中由三种颜色组成的饼图意味着该图片与“dog”“walk”关键词有着较高的相似性,而与“happy”关键词的相似性较低。为了描述这种图像与词之间的相似性度量,我们定义Simi(Wi,Ij):
式中,Cj表示Ij的语义描述语句;Wk为Cj内的词。以图像的语义描述语句中的词与关键词的关系来代表图像与关键词的关系。
对于某个关键词Wi,定义与其相关的图像集合φWi为:
式中,MiniSimi是最小相似度的阈值。最简单地,选取MiniSimi=1.0,这意味着φWi中只包含语义描述语句中含有关键词Wi的相应图像。相似地,对于某张图像Ij,定义与其相关的关键词集合为:
式中,W为总的关键词集合。由此我们使用φWi和来代表相互关联的图像和关键词,建立了图像与关键词的多对多关系。
③图像投影中嵌入关键词:在得到图像与关键词的多对多关系之后,我们期望将每个关键词嵌入到尽可能靠近相关图像的地方,得到图像-关键词相嵌布局的初步结果[图2-14(c)]。将关键词Wi以位置P嵌入图像投影空间的过程描述为使得关键词Wi到相关图像加权距离和最小的过程,用公式表达如下:
式中,P表示二维空间中的任意位置。问题的求解过程类似于寻找一组点的几何中值,可以通过梯度下降算法(Gradient descent)找到近似解。但是求解的结果可能导致φWi中的一些图像远离Wi。于是我们根据阈值MaxDist,从φWi中迭代地去除这些图像并重新计算Wi的位置,得到最终的优化位置。如图2-14(d)中的蓝色圆圈和黄色圆圈,由于它们距离各自的关键词太远,我们认为这样的图片在我们的算法中存在较高的不可靠性,故将其删除。
④提取图像的局部语义结构:在上述过程中我们已经简化了图像与关键词的关系,然而,若是保持图像与多个关键词之间的关系,会使相似的图像被分到不同的组,这是我们不希望看到的。我们有必要找到与每一张图像关系最为密切的代表关键词。为了描述代表关键词的寻找规则,构造对值(Si,Di),其中Si=Simi(Wi,Ij),Di=‖Wi-Ij‖。也就是说,代表关键词的选取与词和图像间的相似度和距离有关。选择Si越大、Di越小的关键词为代表关键词,作为图像的父节点[图2-14(d)]。
⑤语义空间中重构图像:该步骤完成图2-14的(e)~(f)部分,在图2-14(d)的基础上根据关键词的关系重构图像布局。如图2-14(e)所示,确定关键词在树结构中的父子关系。重构过程中,根据树结构,图像的位置与关键词父节点的相对位置不变,保持关键词的位置与父关键词(如存在)的相对位置不变,若不存在父关键词,则关键词的位置为词向量最初投影结果的位置[图2-14(f)]。下面简要介绍关键词在树结构中的父子关系如何确定。
首先,我们通过以下方式计算关键词的频率:
两个关键词同时出现的频率为:
然后,定义关键词Wi相对于关键词Wj的置信度为:
根据置信度,我们定义允许作为Wi父节点的Wj满足:
其中MinConf为最小置信度阈值。对于一个关键词Wi,可能存在多个满足条件的关键词Wj,这些关键词构成Wi的父节点候选集合。为了描述该集合中最终父节点关键词的寻找规则,构造对值(CFji,‖Wj-Wi‖),也就是说,最终父节点关键词的选取与词与词之间的置信度和距离有关。CFji越小,则‖Wj-Wi‖越小的词被选取为关键词的父节点[图2-14(e)]。
2.3.4 可视化设计
根据需求分析的讨论,并受到星系的启发,我们为系统设计了三部分模块视图实现上述功能需求(图2-15)。主视图为星系隐喻的散点图(图2-15中的A),利用可视化布局算法得到的计算结果,率先展示图像和关键词的投影概览,并承担进一步探索子集合的缩放交互。右上角为展示单张图片及其语义描述的图片浏览窗(图2-15中的B),配合另外两个模块视图展现指定图片的细节。左侧边栏为控制台(图2-15中的C),承担语义搜索、语义结构展示、布局重构等交互功能。
图2-15 系统界面总览图
①星系投影主视图:主视图采用星系隐喻的表达来展示图像和语义关键词的投影。由于该视图呈现了布局算法的主体,同时也是语义引导分析的关键视图,故而该视图默认占据屏幕的主体部分。
前文已经有过讨论,根据图像之间的相似性和图像与关键词的语义相关性来组织大型图像集是十分必要的。投影是一种简明直观地展现相似性的方法,由于数据量较为庞大,以散点图的方式进行可视化更为合理。散点图被视为基本的可视化工具,它能在二维平面中以距离方式高效地呈现两个定量值之间的相似性。因此,我们使用散点图将图像和关键词同时呈现在一个二维平面中。
得益于先前的布局算法,利用示例图像集(10000张图像),我们得到了初步的散点图投影。由于散点众多且呈现出一定的聚集,图像与其关键词之间又存在附属关系,这些特征与星系十分相似。因此,在该视图中,背景为黑色,散点通过调整透明度的方式模拟发光效果。进一步地,还需要提供向下探索子集合的交互手段。最自然地,可以通过滚轮缩放的方式放大视图,以展现某个聚集更多关键词和更清晰的图像分布。此外,还有必要根据不同的关键词展现与其关系最密切的图像缩略(图2-15A中的环绕缩略图),以此来初步验证关键词与图像的关系是否正确。受到太阳系中八颗行星环绕太阳的启发,我们希望能在此缩略图的展现上延续星系的隐喻,即以八张缩略图(如存在八张及以上相关图像)环绕关键词的方式展现该层级视图。
②图片浏览窗视图:我们分析的对象是图像,且图像集合非常庞大,可能不需要展示每张图片的细节,但展示特定图片的细节仍然是必要的。浏览窗视图的设计相对基本,展现原图像的同时在下方显示该图像由NIC模型得到的语义描述语句,即展现了该图像是以怎样的语义存在于布局模型中的。在展现一组图像时,浏览窗还提供前后翻页浏览按钮,以供用户快速在浏览窗中切换图像。
由于单张细节的展现只会在探索分析到特定图像时才被需要,且原图像的展现往往占据较大空间,因此图片浏览窗视图在大多数情况下都处于收起状态,只有当选择图片展现时才从主视图界面右上角展开(图2-15中的B)。在满足分析需求的同时极大地减少了空间的浪费。
③控制台视图:星系投影主视图和图片浏览窗视图为数据集的展现提供了良好支持。但是,根据需求分析,为了完成查询、布局重构等功能,不可避免地需要表单输入、列表选择等操作,所以设计位于左侧的控制台视图承担这部分功能。
对于查询机制,主要提供两种查询方式:一是关键词的定位查询,在图2-16搜索条内键入查询;二是针对图像的语义查询,可以在图2-17中添加关键词和相关图片,查找符合语义筛选条件的相关图像。进一步的功能使用说明在之后介绍。
图2-16 关键词搜索条
图2-17 图像语义搜索
为了支持布局重构,我们允许用户调整语义结构树,并将调整后的树作为输入重构主视图布局。语义结构树的调整包括关键词或图像的父节点调整。设计图2-18所示的展示视图,并在该视图中提供父节点选择/删除操作,然后可以点击“开始”按钮进行布局重构。由于这两个视图在未选择某图像/关键词时是无意义的,因此只有当选择特定图像/关键词时才会激活展现,其他时间都处于隐藏状态。
图2-18 关键词/图像结构
2.3.5 使用说明
①多尺度探索分析:在星系投影主视图中,用户可以通过鼠标滚轮上下滚动来缩放查看更多细节,在放大过程中会显示更详细的关键词,并给出更清晰的图像关系视图(图2-19)。用户还可以点击视图的空白处,拖拽平移主视图,以避免遮挡或使关注的部分位于视图中心。此外,用户可以利用鼠标悬停在某个关键词上的方式,看到太阳系缩略图级别的可视化展现(图2-20),由此验证布局的正确性并进一步了解图像集。点击关键词可以锁定太阳系缩略图,此时将鼠标悬浮在缩略图上,将在太阳系布局中显现放大的当前图片效果。点击该图片缩略图,右上角的图片浏览窗将弹出,展现完整的图片并配以图像语义描述语句。
图2-19 放大投影前后对比图
图2-20 太阳系缩略图
对于主视图,在任何一个缩放维度下都可以通过点击图像点的方式在图片浏览窗中展现该图片。只是在视图范围较大的情况下,点与点之间距离较密,选取点的操作容易出现误差且无意义,所以建议在较细化的图像子集中采用分类操作。
②布局重构:为了帮助用户有效地分析图像,我们设计了布局重构功能,允许用户不断地改进布局并根据分析需求加入自身的领域知识。
当点击投影主视图中代表图像的点时,相关关键词列表会被展现在左侧控制台作为候选。这些关键词中只有一个是当前布局中该图像的构造器,它被深色圆点标记突出显示。如2.3.3节所述,图像的位置受到其构造器的高度影响。在默认的布局中,采用与图像最相似且距离最近的关键词作为该图像的构造器。然而这个选择未必准确,或者未必符合任意分析场景。根据自身的分析需求,用户可以点击其他相关的关键词,选择它作为图像的父节点构造器,改进布局[图2-18(b)]。
当点击投影主视图中的关键词时,与该关键词相关联的父节点和子节点会在左侧控制台列出,同时,这些父节点和子节点关键词在投影主视图中被高亮显示(黄色代表父节点,蓝色代表子节点,如图2-21所示)。与修改图像构造器类似,用户可以在父节点列表中点击选择其他关键词作为父节点构造器来重构布局。如2.3.3节所述,之所以设定关键词的父节点构造器,是因为该过程可以帮助防止在图像与关键词共同加入二维平面时分离语义相似的图像,改变关键词的父节点意味着改变在图像集语义结构树中这两个关键词的从属关系[图2-18(a)]。例如,默认布局中“train”作为“river”的父节点约束了“river”的位置[图2-22(a)],当用户从“river”的父节点构造器中移除原构造器“train”时,“river”及其相关图像会从“train”关键词的树中删除。重构布局后,关键词“river”及其相关图像的位置只能根据“river”关键词本身和其他关键词之间的语义相似性确定。因此,如图2-22(b)所示,“river”及其相关图像在重构后位于“lake”关键词附近。
图2-21 词结构高亮
图2-22 词重构过程