基于SunOriNet 模型的指定光照背景检索系统设计与实现*
2020-10-12邓蓬月李晓东
邓蓬月 孙 星 金 鑫 李晓东
北京电子科技学院,北京市 100070
引言
随着大数据时代的来临,多媒体信息来源不断扩大,也同样带来了图像大量堆砌和信息爆炸的困扰,因此,需要对各种图像资源进行智能化管理。 图像检索技术近年来受到广泛关注。 图像检索技术的基本方法[2]是分析图像的本质的属性,再从图像数据库中寻找相似或者相近的图像。
在上述的研究中完成了精确度很高的太阳位置估计的研究工作,光照信息对于将虚拟对象插入到真实场景中的效果图像的真实性至关重要。 能够从单张场景图像自动估计太阳位置是将三维模型插入到场景中的前提条件。 传统的室外太阳方位估计方法通常使用手工标注特征或线索。 这些标注很大程度上依赖于人类的经验和使用其它图像理解技术(如阴影和天空检测、几何恢复和图像的本征分解)进行的预处理过程,在性能和准确率方面有很大局限性。 与之不同的是,系统中使用的图像标签并不采用人工标注的方式,而是利用深度学习[5]训练得到的效果较好的深度学习模型,使用该模型估计图像的天顶角和方位角作为图像的标签,从而使标签更具客观性。
那么本文应该怎样将这项研究应用于实际生活中呢? 论文中提到的太阳位置估计方法主要用于影视后期制作,制作中有时需要找到两张相似光照背景的场景图像,此处可以使用太阳位置估计方法对图像进行光照背景的计算,为了减小图像检索和处理中的工作量,在本文中需要设计实现一个指定光照背景检索系统,利用该系统就可以快速有效的对庞杂的图像场景信息进行图像检索,筛选出需要的具有相似光照背景信息的场景图像,并对检索出图像的进行后期制作。
本文使用的方法是图像检索领域较为普遍的基于文本的图像检索,系统的设计尽可能地减少对图像整体的处理操作,通过计算图像的太阳位置特征数据的数据库中的特征数据匹配程度进行检索。 首先,对指定光照背景检索系统的各个功能模块进行分析,建立图像数据库。 系统中的图像数据库包含webcam[13]、kitti 和从timelapse 数据集上的图像,将图像路径和图像信息录入到数据库中。 其次,进行界面的详细设计和代码的具体的系统实现。 系统设计对输入的图像进行太阳位置的估计,并将估计的结果与数据库中相似的图像数据信息进行匹配计算,最后输出一组排列有序的图像。
1 相关工作
本文所设计的光照背景检索系统的核心是光照分析和太阳位置估计。 国内外许多研究学者都太阳位置估计对这一研究课题进行了探索,并且取得了不错的成果。 根据使用方法的不同,基于图像的光照分析方法可以分为两大类:基于传统的方法和基于深度学习的方法。
1.1 传统方法
Hošek 等人[10]在Preetham 模型[15]的基础上进行改进并提出了一种天空亮度模型,该模型能够比Preetham 模型更加精确地表示天空的亮度分布,并且在随后的工作中,该模型又被扩展为包括太阳辐射函数[10]。 Lalonde 等人[16]也对Preetham 模型进行了扩展,在其基础上又添加了一种新的经验太阳模型,并将室外环境光照表示为Preetham 天空模型与太阳模型的和。 Lalonde等人[13]提出采用概率分布的方法从单张室外图片中恢复出光照信息。 该方法将图片中的天空区域,地面上的阴影区域以及垂直物体表面上的阴影区域等特征信息组合在一起以生成更加健全、可靠、准确的信息。 然后,这些信息与有关光照参数的一些先验知识相结合并采用概率分布函数的方法计算出太阳方位和太阳可见度等光照参数。
一些方法利用关于场景布局,反射率和场景光照的先验知识[17]来恢复光照参数,这些先验知识被用于创建优化模型或贝叶斯模型。 由于这些先验知识只适用于特定的场景并不能用于其他的场景,所以这些方法在现实场景中的应用具有较大的局限性。 Xing 等人[18]提出了一种基于在线视频序列的动态光照估计方法,该方法适用于不存在阴影区域、天空亮度分布不均匀的室外场景。
1.2 深度学习方法
Ma 等人[14]提出利用深度学习的方法直接从一张图片中预测其对应的太阳方位,该方法采用了Alexnet 网络结构并比较了采用不同损失函数的预测结果,实验结果表明采用余弦距离训练出的模型预测准确度最高。 Jin 等人[4]提出在深度神经网络结构中加入short-cuts 结构以实现低层特征与高层特征的融合,这种融合可以增强网络提取的图像特征。
Hold-Geoffroy 等人[12]提出一种基于CNN 的从单张室外低动态范围图片中估计其对应的高动态范围光照信息的方法。 该方法首先将基于物理的Hošek-Wilkie[10]天空模型应用于全景图中的天空区域以获取太阳方位,大气浑浊度,照相机参数等光照参数。 然后利用从全景图中截取的部分图片(训练图片)和已获取的光照参数(标签数据)对深度神经网络进行训练。
Cheng 等人[19]提出一种从成对图片中恢复场景光照的方法,其中两张图片分别由相机设备的前置摄像头和后置摄像头拍摄。 该方法不使用光照参数而是使用球谐光照[19][20]对场景光照进行表示。 该方法首先需要计算出每张图片所对应的球谐系数并将其作为标签数据,之后利用成对的图片和其对应的标签数据对深度神经网络进行训练。 该方法不仅适用于室外场景的光照分析同时也适用于室内场景的光照分析。Gardner 等人[21]提出一种基于深度学习的室内光照分析方法。 该方法首先利用一个光源分类器对低动态范围图像中的光源位置进行自动标注,这些标注信息作为标签数据用于训练一个光源位置预测网络,之后再利用一个小的高动态范围图像数据集对已训练好的网络进行微调以实现图像中光强信息的预测。
Zhang 等人[20]提出一种从低动态范围室外全景图中预测高动态范围光照信息的端到端的方法。 该方法利用卷积和反卷积的操作来实现从低动态范围到高动态范围的逆色调映射过程[22],为了训练网络,作者合成了大量的高动态范围图片和对应的低动态范围图片。 同时,该数据集也为以后的研究工作提供了方便。
1.3 本文研究内容
本文主要开展指定光照背景检索和太阳位置估计的应用研究,主要研究内容包括:基于深度学习的太阳位置估计、将基于深度学习的太阳位置估计方法应用于指定光照背景检索系统。第一节主要简要介绍了一些太阳位置的传统方法和基于深度学习的方法,简要阐述各种方法的原理以及优缺点。 第二节中主要介绍光照背景设计,描述系统的用例图,根据需求设计系统功能模块和系统流程。 描述选择图像检索路径用例、太阳位置计算用例和检索数据库中相似背景图像用例。 第三节主要介绍几种室外场景图像数据库。 第四节简单介绍了SunOriNet 的实现。第五节将SunOriNet 方法估计的太阳位置于其他类似方法对比,对比结果明显优于其他方法。第六节主要描述了主要光照背景系统的实现,并且对于整个系统进行测试。 第七节总结全文。
2 光照背景设计
本节对于指定光照背景系统设计做出用例分析,并且根据需求设计划分功能模块,设计系统流程。
2.1 用例分析
系统用户用例如图1 所示,主要分为三个大的模块:选择图像检索路径、计算太阳位置、检索数据库中相似背景。 选择检索路径主要为了便利用户,当用户只需要某一类图像时,可以选择相同或者不同的存储位置的室外场景图像进行检索。 而计算太阳位置主要包含两个方面:计算太阳方位角与计算太阳天顶角。 第三部分主要是通过比较太阳方位角和天顶角检索相似背景图像。 更详细的内容在下文的几张表中做了更详细的补充。 系统[6]主要是针对用户输入的图像进行相似光照背景信息的检索,以选择图像的检索路径,太阳位置计算和检索数据库中相似背景图像给出相应的用例描述。
选择图像检索路径用例描述如表1 所示。选择图像的检索路径是为了减少用户的工作量,当用户只需要某一类图像时,可以选择对某个场景进行光照背景检索的路径,也可以同时对不同的存储位置的室外场景图像进行检索。 太阳位置计算是根据输入图像选择图像测试得到输入图像的太阳位置信息。 将太阳的天顶角和方位角显示在用户界面上,方便进行后续的检索操作。 太阳位置计算用例描述如表2 所示:
表1 选择图像检索路径用例描述
表2 太阳位置计算用例描述
表3 检索数据库中相似背景图像用例描述
检索数据库中相似背景图像用例描述如表3 所示。 该系统无需用户注册登录环节,系统用户可以得到指定的光照背景图像和场景图像的具体天顶角方位角信息。
2.2 系统功能模块设计
系统功能模块主要功能模块介绍:1)数据采集:从数据集中获取图像数据,并对没有太阳位置标签的场景图像进行计算得到太阳位置信息。 2)数据检索:用户向系统提交一幅待查询的图像,然后对用户提交的场景图像调用接口进行太阳位置估计,并将得到的结果与本地的图像库进行相似比较,检索出符合用户要求的场景图像和太阳位置信息。 3)数据显示:检索后系统将满足一定相似要求的图像和它与输入图像太阳位置的相差角度反馈给用户。 搜索结果可以采用图标和列表两种显示方式,并按照相似度进行排序。
2.3 系统流程设计
指定光照背景检索的主要思路是:通过用户提交一张室外场景图像,系统通过调用使用SunOriNet[4]网络训练得到的Caffe 模型[7]对输入图像进行太阳位置估计,求出场景图像的天顶角和方位角参数,用得到的参数信息和图像数据库中的图像参数信息进行误差角度计算,获得光照背景信息相似度较高场景图像。 在进行结果的输出时,根据图像之间相似度大小升序排列输出与场景图像光照背景最相似的十张图像。 系统的指定光照背景检索功能模块的具体设计如图2 所示。 系统的主要工作流程有:
(1)输入一张室外场景图像;
(2)调用第二章训练好的Caffe 模型[7]计算输入图像的天顶角和方位角;
(3)通过误差角度计算进行相似度的衡量;
(4)检索相似的光照背景图像,从图像库中找出十幅与输入图像光照背景相似的图像;
(5)将图像按与输入图像相差度数从小到大排列。
3 室外场景图像数据库
本文阐述了三种数据集和数据库储存方式。系统设计的目的是实现为影视后期制作提供一个可以根据输入的场景图像检索出和它的光照背景相似的图像的功能。 指定光照背景检索系统使用了60 万张有标签的图像组成图像数据库。 数据库的组成有webcam 数据集[13]、Kitti 数据集、time-lapse 数据集、Sun360 数据库。
Webcam 数据集
本文使用webcam 数据集[1]作为太阳位置估计[8]的训练集。 Webcam 数据集是一个包含太阳位置信息的数据集。 其中包含了从54 个不同网络摄像头序列中拍摄的不同图像,这样长时间和多地域跨度的拍摄,使每个拍摄摄像头大量获取太阳位置,具有详细的图像信息。 从这些参数中可以直接得到每张图像的太阳位置。
Kitti 数据集
KITTI[3]是目前国际上最大的自动驾驶场景下的计算机视觉算法评测数据集。 KITTI 包含市区、乡村和高速公路等场景采集的真实图像数据,每张图像中最多达15 辆车和30 个行人,还有各种程度的遮挡与截断。 整个数据集由389对立体图像和光流图,39.2 km 视觉测距序列以及超过200k 3D 标注物体的图像组成,以10Hz的频率采样及同步。 从KITTI 上得GPS 和IMU获得图像的时间戳和位置信息从而计算出图像的太阳位置。
time-lapse 数据集
time-lapse 数据集是一个包含多个室外场景延时视频的数据集,数据库的图像时使用自写程序对其进行逐帧截图,获得场景图像数据。 但是,这个数据集中图像并没有包含它的光照信息,所以需要通过调用SunOriNet[4]训练的出的Caffe 模型对数据集中截取出来的图像进行太阳位置估计[8],得到图像的太阳位置信息。
SUN360 数据集
SUN360 数据集[22]全面收集了带标签的全景图,涵盖了360x180 的全景,可用于各种环境场景,地点和其中的物体。 SUN360 数据集[22]大致可分为室外场景和室内场景的360 度全景图,而下文使用的测试图片为室外场景图片。 对于每张全景图,分别从七个不同的方位角度截取7张图片,下文中测试图片对应的就是某全景图的一个方位角的图片。
本系统的数据库语言采用SQL Sever2016,数据库名称为SceneRetrieval。 系统中尽量不使用直接处理图像的方法,因为图像阵列很大,具有计算复杂和不方便传输的缺点。 数据库在进行数据存储之前先计算出图像的特征值并且将其路径信息和特征值进行存储。 数据库的数据表中存储的信息为图像编号即对应存储图像的名称、图像的路径、图像的天顶角方位角信息等光照信息。 具体的存储格式如表4 所示。
表4 数据库存储表
4 SunOriNet 的实现
本节介绍SunOriNet 实现,本文提出了一种新的太阳方位估计的深卷积神经网络,称为SunOriNet,如图3 所示。 太阳位置估计应同时考虑到图像的低层特征和高层特征。 因此,该网络使用一个接触层来直接连接中间特征映射到高级特征映射。 这样可以将浅层特征直接传递到后面,通过加法操作将浅层特征与高层特征相结合,这样可以解决了深层网络的梯度消失问题,它的优点在于增加了梯度的传递,加强了特征的传播,减少了模型参数的运算,加快网络的收敛速度并提高了准确率。 这个网络有两个输出,它可以同时预测出方位角和天顶角。
5 SunOriNet 与其他方法对比
在这一部分中,展示了本文中提出的方法的实验结果,并让其与最先进的方法进行了比较。并在表格中给出了与基于其它深度卷积神经网络(DCNN)方法的比较结果[14]。 结果如表5 所示。 表5 比较的数据集来自SUN360 数据集[22]。 下表为了便于比较,将综合误差单位由弧度转化为度。 从下表对比综合误差来看,本文所提出的SunOriNet 对于太阳方位的明显优于欧几里得方法。
6 指定光照背景检索系统的实现与测试
本节主要对指定光照背景检索[12]系统进行设计和实现,主要设计包括:场景图像的光照信息提取,场景图像的光照背景的光照特征信息匹配等。 本章实现了图像的预处理,MATLAB 调用SunOriNet[4]训练好的Caffe 模型对图像进行太阳位置估计[8],待查询图像与数据库中的图像的光照背景的相似度匹配。 为查询接口提供一个完整的用户界面,本文采用MATLAB GUI(Graphical User Interface)设计[11]实现了指定光照背景的检索,对图像库中的图像进行了检索实验。 实验结果表明,本章中的检索系统能够简单、有效,迅速的检索出有相似光照背景的场景图像。
6.1 光照背景计算
通过设计一个深度卷积神经网络[4](DCNN)完成了对室外光照进行端到端的估计的方法,在本节中在MATLAB 中调用Caffe 中的MATLAB 接口,用经过SunOriNet[4]训练得到的估计太阳位置的Caffe 模型来计算输入图像的太阳位置特征参数,即输入图像的天顶角和方位角。
如图4 所示,当打开一张图像后,会显示图像的路径信息。 当点击“太阳位置计算”按钮后,调用Caffe 模型对输入的图像进行太阳位置估计[8]得到天顶角和方位角的大小(zenith angle=-4.2237 azimuth angle =1.178)。
6.2 指定光照背景检索
图像的检索的重点是图像的特征匹配算法,首先通过调用Caffe 模型得到场景图像的太阳位置的天顶角和方位角参数。 接下来通过将场景图像的太阳位置参数与图像库中的参数进行相似度计算。 计算过程如下,根据取得的天顶角(zenith)和方位角( azimuth)计算出太阳位置的坐标如公式:
根据求出的太阳位置x、y、z 坐标,要与库中图像的特征数据zenithi和azimuthi求出库中图像的xi、yi、zi进行误差角度计算。 相似度误差角度为θ,有如下公式:
如图5 所示,通过计算可以得出数据库中的图像与输入场景图像中太阳位置的相差角度,并从中筛选出与它光照方向最接近的从小到大排列的十张图像。 当输入设置检索路径为F:\77W-image,按下“光照背景检索”按钮,可以得到该路径下与输入图像光照背景相似的十张图像,并在系统的界面中显示十张相似光照背景的场景图像名称信息和小图标。 当点击图像后可以看到场景图像具体的太阳位置信息。
7 总结
本文中将太阳位置估计的方法应用于实现影视后期制作过程中的指定光照背景检索系统。该系统主要实现了输入一张室外场景图像,通过计算检索出与该图像具有相似光照背景的图像。首先本章对数据库的组成元素进行了简单的介绍,经过构建训练模型计算得出输入图像的太阳的天顶角和方位角信息,根据输入图像的太阳位置信息与数据库中其它图像的太阳位置信息进行相似度计算,检索出与输入的图像太阳位置相近的十张图像并显示图像的具体信息和与输入图像相差的角度。 本文设计提出了的SunOriNet网络结构,用一个接触层将中间特征与高级特征相连接,解决了一般网络中出现的梯度消失等问题,增加了梯度的传递,用简单的方法让两层之间进行恒等映射,加强了特征的传播和网络的收敛速度并提高了准确率,该网络结构有良好的图像特征提取能力。