DreamBlooms/HansPub-15000-to-45000 huggingface dataset:
system: [SYSTEM]

user: 1. 引言 文本信息处理技术是信息检索研究特别是基于Web的信息挖掘研究领域的重要研究方向，而文本自动分类技术是文本信息处理的重要研究内容。文本自动分类(Text Categorization，TC)是指根据待分类文本的具体内容将其自动划分到相应的一个或几个文本类别里。通常使用向量模型用于文本表示，使用文本中的单词或词组作为文本特征项。高维的文本向量不仅使得计算开销加大，而且相应的数据稀疏性问题严重影响着分类算法性能，降低了分类的效率。因此有效的文本特征降维方法成为提高文本分类效率的重要途径。 在文本特征降维方面，特征抽取及特征选择是两种主要途径。相比较于特征抽取模式来说，特征选择模式以其目标函数构造相对简单、具有语义解释、易于理解以及应用方便等优点而得到更加广泛的应用。目前常用的文本特征选择方法有互信息(MI)、信息增益(IG)、特征–倒文本频率(TF-IDF)、 (CHI)统计以及相关系数(CC)等经典方法。研究表明[ 1 ] CHI和IG方法的分类效果相对较好。但是两者相比较来说IG的计算量较大，因此CHI方法成为最常用的文本特征选择方法之一。 对CHI方法的设计原理进行理论研究，探讨该模型的特点、存在的主要问题以及寻找有效的改进途径具有重要的现实需求和应用前景。目前针对CHI方法的改进研究得到了越来越多的关注。本文在对相关研究进行梳理的前提下，针对目前的研究途径在文本与特征项之间的正负相关性、特征项的类内基于文本的频数分布、类内词频数目分布、类间词频数目分布等方面信息挖掘的不足之处，对经典CHI模型进行优化，提出了一种改进的CHI方法。随后的文本分类实验证明了本文提出的模型的有效性。
system: [SYSTEM]

user: 2. 相关问题的研究进展及问题 统计(CHI)方法以其易于理解、计算量小以及算法复杂度低等优点成为文本特征选择最常用的方法之一。一些学者针对CHI方法的不足进行了改进研究 [ 2 ] - [ 6 ] 。文 [ 2 ] 通过引入类内频数以及类间频数差值两个调节因子，将卡方统计和信息增益两种特征选择方法相结合优化CHI性能，改善了CHI方法对低频词效率较差问题，但是对于CHI模型的不足之处没有进行优化 [ 2 ] ；文 [ 3 ] 提出一种组合型特征选择方法 [ 3 ] ，借助信息增益及文本频率两种方法的长处改善CHI缺少特征类内分布信息的欠缺，但是特征项的类间分布信息没有利用；文 [ 4 ] 通过分析特征项的类内词频数、类间词频数的差异性信息引入三个参数调节模型中特征项的CHI值，提出一种基于方差的CHI优化模型，使得新的特加权模型的特征项体现了特征项的词频分布信息 [ 4 ] 。但是三个参数的设计没有反映出不同类别之间特征项词频信息分布上的差异性，而经典的CHI模型设计涉及的特征项频数信息包括类内和类间两个层面；文 [ 5 ] 从特征的分散度、频度以及集中度等三个角度对模型进行改进，改善了CHI方法倾向于选择那些在特定类内频数较小、而在其他类内普遍存在的特征项的不足 [ 5 ] 。但是模型是以三个参数的算术平均值为权重对CHI进行加权，在类别分布相对均匀时性能较好，而在类偏斜条件下小类别特征项被淹没问题没有涉及，使得分类性能在出现类别分布不均时性能降低。文 [ 6 ] 从特征与类别相关性角度出发对模型优化，通过引入正相关因子以及强相关因子对模型加权，降低了负相关特征项对CHI算法的干扰程度 [ 6 ] ，但是文本的类别之间词频分布信息没有利用。 本文着眼于特征项与文本的正负相关性、特征项的类内基于文本的频数以及词频数、类间词频数等方面的信息对特征项的类别表示能力进行分析，逐步修正CHI在理论设计方面的不足之处，提出一种基于词频信息的优化CHI模型，随后的文本分类试验验证了该模型的有效性。
system: [SYSTEM]

user: 4. 一种基于位置及词频信息的优化CHI文本特征选择 将本文提出的一种基于位置及词频分布信息的优化CHI特征选择方法描述如下： 1) 对训练集根据3.3.4节方法分成三个“伪训练集” ； 2) 在 内分别进行分词、去除特高频词及特低频词及过滤掉禁用词等预处理，将剩余特征项合并得到文本特征集 ； 3) 对于特征集T中的特征项 ，在三个分别“伪训练集” 内分别基于(8)式、(10)式及(13)式计算权重因子 、 、 ， ； 4) 使用(14)式在 内分别计算特征项 与类别 之间的CHI值 ； 5) 根据(15)式计算 与 之间的 值 ； 6) 根据(16)式计算 对应的 值 ， 。按照 的大小顺序选择前 个特征项构成文本特征集 用于文本表示； 7) 对于选定的特征集 ，以文本分类中常用的 公式 [ 11 ] 对特征项赋权，构造文本向量； 8) 以类内文本向量算术平均值构造类别向量，使用向量夹角余弦公式计算测试文本与类别文本相似度； 9) 将测试文本归入与其相似度最大的类别文本向量所属的类别内。 本文实验中相应参数取值q = 150， r = 6，这是由于一篇2000字左右的文本用约150个左右的特征项即可较为有效的表示。
system: [SYSTEM]

user: 5. 实验结果及分析 试验数据使用复旦大学提供的中文文本分类语料库 [ 12 ] ，从中选取6类文本共计2530篇，包括计算机(230篇)、艺术(740篇)、经济(180篇)、环境(620篇)、教育(310篇)以及军事(450篇)进行模型实验。使用东北大学的自然语言处理实验室分词软件分词，剔除停用词、虚词、代词等预处理后得到特征集共含3726个特征项。试验采用4分交叉试验法循环测试4次取平均值为最终结果。使用文本分类中常用的查全率(recall)、查准率(precision)及 测试值作为效率评估指标。其中：查全率 = 分类正确文本数/测试文本总数；查准率 = 分类正确文本数/分类器识别为该类文本数； 值 = 2 × 查准率 × 查全率/(查准率 + 查全率)。 为了考查本文提出的改进模型分类效果，将其与常用的 统计方法(即公式(3))以及文 [ 6 ] 提出的方法的分类效率进行了比较，将上述两个方法的实验数据分别以后缀1、2标注，分别记为CHI-1及CHI-1，将本文提出的优化模型数据以后缀new标注。实验结果相关数据统计如表1所示。 将本文提出的优化模型与前两种方法在三个指标方面的增长程度分别进行了比较，相应的增长率以后缀1-new及2-new表示，数据统计结果如表2所示。 分析表1发现本文的优化CHI模型的特征选择性能较高。综合指标F1值介于0.8947至0.9635之间， Table 1 The statistics results of the three indexes of three methods in text classification experimen 类别 查准率 查全率 F1值 CHI-1 CHI-2 CHInew CHI-1 CHI-2 CHInew CHI-1 CHI-2 CHInew 计算机 0.8865 0.9127 0.9542 0.9137 0.9316 0.9721 0.8999 0.9221 0.9635 艺术 0.9121 0.9146 0.9219 0.9011 0.9224 0.9418 0.9066 0.9185 0.9317 经济 0.8227 0.8761 0.8879 0.8347 0.8764 0.9016 0.8287 0.8762 0.8947 环境 0.8625 0.8867 0.9138 0.8713 0.9003 0.9172 0.8669 0.8934 0.9155 教育 0.9218 0.9121 0.9348 0.8792 0.9027 0.9416 0.8999 0.9074 0.9382 军事 0.9135 0.9128 0.9427 0.9043 0.9019 0.9220 0.9089 0.9073 0.9322 平均值 0.8896 0.9036 0.9307 0.8914 0.9110 0.9375 0.8904 0.9072 0.9346 表1. 三种方法在文本分类实验的三个指标结果统计 Table 2 The data statistics of new method’s growth in the classification experimen 计算机 艺术 经济 环境 教育 军事 平均值 查准率1-new 7.64% 1.07% 7.93% 5.95% 1.41% 3.20% 4.53% 查全率1-new 6.39% 4.52% 8.01% 5.27% 7.08% 1.96% 5.54% F1值1-new 7.02% 2.77% 7.96% 5.61% 4.26% 2.56% 5.03% 查准率2-new 4.55% 0.80% 1.35% 3.06% 2.49% 3.28% 2.59% 查全率2-new 4.35% 2.10% 2.88% 1.88% 4.31% 2.23% 2.96% F1值2-new 4.49% 1.44% 2.11% 2.47% 3.39% 2.76% 2.78% 表2. 新方法在分类实验指标增长率方面的数据统计 平均F1值达到93.46%。分析表2可以看出，相比较于经典的CHI方法，本文优化模型的查准率指标平均提高4.53%，最大提高率为经济类文本的7.93%，最低提高率为艺术类的1.07%；在查全率方面效果更好平均增长率5.54%。相比较于文[ 6 ] 提出的CHI改进方法，本文的优化模型效率仍然较好。查全率增长值接近3%，综合评估指标F1值提高2.78%。整体上看本文提出的改进CHI特征选择方法具有较强的特征选择效果。
system: [SYSTEM]

user: 6. 结语 特征选择是文本分类中必须面对的主要问题。好的特征选择方法对特征项选择的质量以及随后的文本分类效率影响甚大。对于经典的特征选择方法进行深入研究，改进其方法设计上的不足，对于文本信息挖掘研究具有重要意义及现实需求。本文针对CHI模型的欠缺，从四个不同角度逐步对其优化，使之具有更强的特征选择能力。 作为文本特征降维的两种主要模式，特征选择和特征抽取各有其优点，同时也各自存在不足之处。特征抽取方法具有坚实的数学理论支撑，但是其算法复杂度较高，很难适应于大规模文本分类，特别是应用于网络的实时在线分类需求；而特征选择模式以其语义性及计算量较低而广为应用，但是特征项之间隐含的相关性难以量化。探讨这两种主流特征降维方法的结合应该是一个文本特征降维的可行途径，这也是我们下一步要进行的工作。
system: [SYSTEM]

user: 摘 要 随着物联网快速发展，人们对社会生产发展信息化、物联网化提出了新要求。目前还有许多传统大棚种植还停留在人工管理，或者使用上世纪西方国家的淘汰设备。现在嵌入式设备已经取得了长足的发展，许多模块已经标准化[ 1 ] 。本文结合基于ARM的Raspberry pi开发板和基于Atmega328的Arduino Uno开发板、传感器模块、Web技术实现了B/S模式的大棚环境监控系统。本文采用常见的嵌入式设备和模块快速搭建一个大棚管理系统模型，该系统实现了温湿度监测，浇水，通风，视频监控等功能。 关键词 :温室，温湿度，远程监控，大棚控制
system: [SYSTEM]

user: 1. 引言 21世纪科学技术飞速发展，生产生活设备逐步信息化，大棚也获得了长足的发展，大棚科技含量和规模化程度不断提高，近年来我国大棚控制系统自动化取得了较大进步，但是我国农业现代化还处于初级阶段，技术水平与规模化程序距发达国家还有较大差距，控制系统稳定性，配套设施的完善程度及产业化水平还有待提高，大棚投入产出比较大。 随着大规模集成电路技术的发展，嵌入式设备集成度越来越高，设备性能越来超强，功耗越来越低，体积越来越小，模块化程序越来越高，可扩展性越来越强。嵌入式系统在物联网行业中起来越重要。假如把物联网拟人化，那么物联网中传感器就是人的感觉器官如肌肤、眼睛等，网络就类似于人的神经，嵌入式系统则是人的大脑，负责从传感器接收信息并对接收到的信息进行加工处理 [ 2 ] 。近年来物联网技术在我们生活领域几不可缺，嵌入式系统已成为物联网行业的基础。总体看来，嵌入式系统具有性价比高、性能稳定、实时性高、功耗低、体积小、嵌入性强、可靠性高等特点，在目前的家电、工业控制系统甚至生活用品中广泛使用。
system: [SYSTEM]

user: 2. 系统方案设计 2.1. 系统层次结构 本系统采用分层的方案，系统分层结构如图1所示，各部分完成不同的功能。最低层由Arduino Uno控制，Arduino Uno完成最低层最基础的功能，如温湿度采集、光照强度获取、步进机控制、施水、通风。中间层由Raspberry Pi完成，Raspberry Pi获取Arduino Uno上传的数据，然后将这些数据存储至数据库服务器，Raspberry Pi根据接收的各项数据进行分析和处理，然后做出相应的反馈，向Arduino Uno发送对应的指令，进而再对底层设备进行对应的操控，完成施水、通风等相应的操作。另一方面，用户也可以获取传感器收集的各项数据和抓取的视频流，也可以主动的去发送指令人工控制设备进行大棚的相应管理工作。其中Raspberry Pi和Arduino Uno通过串口连接 [ 3 ] 。 2.2. 服务层控制 Raspberry Pi通过串口获取温度、湿度数据，将数据存储在数据库中以备用户查询，Raspberry Pi监 图1. 系统分层结构图 控大棚数据，可以通过给定的阈值来触发步进电机控制遮光板，控制水泵施水，控制风机通风 [ 4 ] 。 Raspberry Pi的工作流程如图2所示，Raspberry Pi定期扫描串口接收温度、湿度数据和光敏模块数据，将读取的数据存入数据库以备用户查看，同时检查读取数据是否在设定的阈值内，若超过了阈值则启动相应的设备，如温度超过35度则启动风机降温。另一方面，Raspberry Pi处理Web终端请求，将实时图片和视频展示给用户，并接受Web终端发来的命令，将命令发送给Arduino Uno。Raspberry Pi和Arduino Uno通过Socket 通信。 2.3. 底层设计 Arduino Uno工作在低层，通过串口和Raspberry Pi通信，负责温度、湿度数据获取和校验，将正确的DHT11数据上传给Raspberry Pi，控制步进机转动和停止，微型水泵的启动和停止，风机启动和停止。 Arduino Uno工作流程如图3所示，Arduino Uno定时读取DHT11传感器数据，获得温度、湿度数据和光线强度状态，验证获得的数据是否正确，若正确，将数据发送至串口待Raspberry Pi读取。定时读取光敏电阻模块状态，将状态发送至Raspberry Pi。循环读取串口数据，若有数据，根据不同的数据控制不同的设备，如关闭遮光板，打开通风设备等。
system: [SYSTEM]

user: 3. 系统设计 3.1. 温湿度获取流程图 Arduino Uno采集温度、湿度流程图4所示，Arduino Uno启动后定期激活DHT11模块，读取DHT11模块40位数字数据，取前第一个8位转换为整形湿度数据，第三个8位转换为整形温度数据，最后一个8位为校验数据，另外两个8位为保留数据，校验正确后将温度、湿度数据发送给Raspberry Pi [ 5 ] 。 3.2. 步进电机的控制 步进电机通过Arduino驱动控制，步进电机除电源接线外，通过四根信号线驱动转动。将步进电机ULN2003驱动板上的1N1、2N2、3N3、4N4分别接入Arduino上digital列的11、10、9、8接口，在Arduino 1.6.1环境中编写步进电机正向驱动函数如下以备调用，反向函数时序与此函数相反 [ 6 ] 。 步进电机部分封装了两个控制步进函数，以上代码为正向转动，反向转动与此时序相反。步进电动机的步进角是5.625度，因为这个是带减速齿轮的，所以最后在输出轴上的步进角是5.625/64 = 0.08789 图2. Raspberry Pi工作流程图 图3. Arduino Uno工作流程图 度，减速比是1/64。对于电机，是64个脉冲为一圈。对于输出轴，是4096个脉冲为一圈(64 × 64)。电机转64圈，输出轴转1圈 [ 7 ] 。
system: [SYSTEM]

user: 4. 系统实现 4.1. 数据库的设计 sudo apt-get install apache2 mysql-server php5 php5-mysql 安装好数据库后创建数据库dht，然后运行如下命令即可创建温度、湿度表如图5所示。 图4. Arduino Uno采集温度、湿度流程图 图5. 温度、湿度图 4.2. 获取温湿度数据 在Raspberry Pi上调用该脚本一次即可获得调用该函数时的时间、温度、湿度数据，并将据写入到mysql数据库中，Raspberry Pi上读取数据如图6所示。 4.3. 数据显示 Web页面是最终呈现给用户的友好界面，无论用户使用手机、平板还是电脑，只要用户可以连接互联网用户就可以使用浏览器查看Web管理终端。本文Web管理终端使用LAMP模式。其中Linux为Debian 7.0，Apache为Apache/2.2.22，Mysql为5.5.41，PHP为PHP5.4.39。Web页面如图7所示。 图6. 获取温度湿度数据图 图7. Web终端图
system: [SYSTEM]

user: 5. 系统测试 图8这个页面是个测试页面，Web服务器需要查看图片时只需访问地址： http://raspberry_pi_ip:8080/?action=snapshot即可获取一张实时的静态图片，若要查看实时视频只需调用http:///raspberry_pi_ip:8080/?action=stream即可获得实时的视频。 Arduino Uno编程语言是以C/C++基础的，用户可以使用C语言为Arduino Uno编写库文件。官方库文件代码修改后为两个文件dht.cpp和dht.h，将此两个文件放入Arduino库文件目录中，在Arduino开发环境中包含dht.h文件即可使用编写好的类和库函数。再将其封装到函数中，以备调用。Arduino定期读取DHT11数据并将数据写出到串口线上，Raspberry Pi只要定期读取与Arduino连接的串口线上的数据即可定期获得温度和湿度数据 [ 8 ] 。 Arduino集成开发环境自带串口调试工具，程序编译后烧录到Arduino调试模式下即可显示出串口传送的数据，烧录的时候要将Arduino的数字线拔下，否则不能烧录成功。如图9所示，可以看到已经可以在Arduino上正常的获取温度和湿度数据了。通过这里测试获取的数据可以看出，我们的系统正常的大棚的温度、湿度等传感器信息了。 图8. Mjpg-streamer测试页面图 图9. 温度、湿度获取图
system: [SYSTEM]

user: 6. 结束语 本文结合嵌入式设备和常见传感器及反馈设备设计了一种基于嵌入式设备和Web技术的模拟大棚实时监测与管理系统。系统使用目前国外比较流行的嵌入式设备Raspberry Pi和Arduino Uno，Raspberry Pi是性能较强的嵌入式设备，具有较强的计算能力和扩展能力，她支持Linux系统，可以做为微型嵌入式计算机使用，Raspberry Pi作为大棚中央控制服务器，负责与互联网的通信、采样存储Arduino上报的状态数据、Arduino Uno价格比Raspberry Pi低得多，但是拥有较多的接口，可以把处理计算交给Raspberry Pi而把传感器数据获取及外部设备的控制交给Arduino Uno [ 9 ] 。 本系统实现了大棚控制系统的设计，本系统使用了温湿度等传感器，Raspberry Pi等智能控制设备，系统能够自动采集大棚环境参数，如温度、湿度等数据，系统可以稳定有效的工作，实时性高，系统成本较低，在实际应用中有广阔前景。
system: [SYSTEM]

user: 摘 要 对Windows API中的GDI绘图函数进行分析研究，发现了GDI绘图函数将世界坐标系(笛卡尔坐标系)原点(0，0)映射到设备坐标系(屏幕坐标系)的原点(0，0)到(1，1)之间的像素中心处。指出了为了保持图形的几何特征不变和避免叠印，GDI绘图函数会对端点和边界像素进行折衷处理，从而出现一些很多程序员没有发现的难以理解的奇怪现象。针对这些现象给出了解释，指出了其对应用程序的影响，并提出了解决方法。 关键词 :图形设备接口，绘图函数，图元输出，几何特征
system: [SYSTEM]

user: 1. 引言 GDI (Graphical Device Interface)是Windows操作系统的子系统，负责在显示设备上显示图形。GDI可以完成Windows操作系统从屏幕窗口显示(GUI)、图形图像渲染到打印机、绘图仪输出等一系列显示工作[ 1 ] 。目前，大多数图形系统的开发仍然使用GDI绘图函数，但是Windows API将绘图函数封装起来，程序员在调用GDI绘图函数绘制图形时，不了解GDI具体的绘制机制，对于一些特殊的应用程序，细心的程序员会发现GDI绘图函数及有关的判断函数并不能得到满意的结果 [ 2 ] 。因此有需要深刻理解GDI绘图函数的图元输出的方法、存在的一些缺陷和GDI绘图函数使用的折衷处理方法，以便程序员在进行几何图元相交、图元距离等相关计算时，清楚其中的误差甚至错误，从而重新设计程序得到更精确的答案。笔者在李青元对Windows绘图函数所做的研究 [ 2 ] 的基础上，深入研究GDI绘图的机制，从算法上找出GDI绘图函数不能得到满意结果的根本原因，并给出相应的解决方法。
system: [SYSTEM]

user: 2. GDI屏幕绘图的实质 首先应该清楚，为了描述图形，必须先确定一个合适的二维或三维笛卡尔坐标系(世界坐标系)，然后用世界坐标系中图形的几何描述(坐标位置等)来定义图形中的对象。然后通过将场景信息传送给观察函数、由观察函数识别可见面、将对象映射到视频监视器上来实现对象的显示 [ 3 ] 。在世界坐标系中指定一个图形的几何要素后，输出图元投影到与该输出设备的显示区域相对应的二维平面上，并扫描转换到帧缓存的整数像素位置。 应用程序使用GDI绘图函数，通常在计算机屏幕窗口进行显示。计算机屏幕窗口(视屏监视器)上的位置使用与帧缓存中的像素位置相对应的整数屏幕坐标进行描述，称为屏幕坐标系。像素的坐标值由x值和y值组成，y代表扫描行号x代表列号(扫描行的x值)。屏幕刷新等硬件处理一般从屏幕的左上角开始对像素进行编址 [ 3 ] 。从屏幕最上面的扫描行到最下面的扫描行，依次编号为0，1，2，…，ymax，每一行中从左到右的像素位置从0到xmax进行编号。如图1所示。GDI绘图函数绘制的图形最终是用离散的整数像素点来表示的。 阅读本文首先应该对常用的画线算法(直线方程、DDA算法、Bresenham画线算法)和常用的区域填充算法(逐点判断算法、通用扫描线填充算法、边界填充算法、泛滥填充算法)有所了解。 首先需要清楚GDI绘图函数使用的都是逻辑坐标。常用的GDI绘图函数有：线段LineTo，折线Polyline， 图1. 屏幕坐标系 多边形区域Polygon，矩形RECT及相应的填充函数FillRect，椭圆Ellipse，矩形区域RGN::CreateRectRgn、多边形区域RGN::CreatePolygonRgn及相应的填充函数FillRgn。本文将在Windows7操作系统下，在Visual Studio 2010中采用默认的MM_TEXT坐标映射方式 [ 4 ] ，依次使用这几种绘图函数绘制几何图形并对线段端点、区域顶点和边界像素的输出显示进行分析。
system: [SYSTEM]

user: 3. GDI绘线函数 GDI提供绘制直线段的函数BOOL CDC::LineTo (POINT point)和绘制折线段的函数CDC::Polyline (const POINT *lpPoints， int nCount)。 3.1. LineTo对端点像素的处理 绘线函数BOOL CDC::LineTo(POINT point)在MSDN中的注释为“The LineTo function draws a line from the current position up to， but not including， the specified point. [ 5 ] ”(从当前位置到指定点绘制一条线段，但不包括指定点)。 直线段用其两端点坐标位置定义，要在计算机屏幕上显示一条线段，图形系统首先把两端点投影到整数屏幕坐标位置，并用某种方法画线算法(直线方程、DDA算法、Bresenham画线算法，使用不同的画线算法两端点间的像素位置可能不完全一致)确定离两端点间的直线路径最近的像素位置。这一过程将一条线段数字化为一组相邻的离散的整数屏幕像素位置(屏幕坐标)。除了水平线段和垂直线段，一般情况下，这些位置是实际线路经(逻辑坐标)的近似。例如，计算出的线位置(7.39， 9.64)转换为像素位置(7， 10)。另外，由于在世界坐标系中，一个点代表数学上一个没有大小的位置，同样一条线在数学上表示抽象的无宽度的线，它的面积为零，但是在屏幕上显示点和线时，至少要占据一个像素的大小或宽度，因此如果图形要保持其几何特性，扫描转换算法必须考虑像素的有限大小 [ 6 ] 。 在View类的OnDraw (CDC* pDC)函数中对同一条线段进行正、反两个方向的绘制，放大8倍后结果如图2，图3所示。(注：以下各图均是复制到Windows的画图软件后放大8倍并选择网格显示的效果。放大8倍后能清楚的看到图形在计算机屏幕上显示的实质(像素)。对显示结果进行分析，可见线段的起点像素位置正确，终点像素没有显示。Windows这么处理有两个好处：一方面保持了线段的几何长度，例如(0，0)到(10，0)的线段，几何长度是10个逻辑单位，扫描转换到屏幕上时也是10个像素单位；另一方面在同方向绘制首尾相邻的线段时，前一条线段的终点也即后一线段的起点不会重复绘制 [ 7 ] [ 8 ] ，提高了效率。这样在笛卡尔坐标系中的同一条线段，线段的两个端点在设备坐标系中的显示结果不一致，这种不一致取决于哪个端点是起点(显示)，哪个端点是终点(不显示) [ 9 ] 。但是这样处理有一个缺陷，就是如果图形系统中有些线段是正方向绘制，有些是反方向绘制，就是使得相邻线段不相邻，如图3所示。这个缺陷可以通过都使用相同方向绘制图元避免。 图2. 正方向(左)和反方向(右)绘制的直线段(注：图中灰色像素点实际上没有) 图3. 相反方向绘制的相邻直线段 //正方向绘制四条线段，绘制结果如图2 pDC->MoveTo(0，0); pDC->LineTo(10，0); pDC->MoveTo(1，2); pDC->LineTo(1，10); pDC->MoveTo(5，10); pDC->LineTo(15，3); pDC->MoveTo(25，10); pDC->LineTo(18，1); //反方向绘制相同的四条线段，绘制结果如图2 pDC->MoveTo(10，0); pDC->LineTo(0，0); pDC->MoveTo(1，10); pDC->LineTo(1，2); pDC->MoveTo(15，3); pDC->LineTo(5，10); pDC->MoveTo(18，1); pDC->LineTo(25，10); //正方向(图3) pDC->MoveTo(0，5); pDC->LineTo(10，5); //反方向(图3) pDC->MoveTo(20，5); pDC->LineTo(10，5); 图3中几何意义上两条线段在(10，5)处相邻，但是绘制的结果在像素(10，5)处没有邻接。 在应用程序中，如果需要线段在反方向绘制时的结果和正方向绘制的结果相同，并且保持线段的几何特征不变，可以在反方向绘制时用CDC::SetPixel(POINT startPoint， COLORREF backColor)使起点像素不显示(背景颜色)，用CDC::SetPixel(POINT endPoint， COLORREF penColor)使终点像素显示(画笔颜色) (图4左)。如果不考虑线段的几何特征，单纯地需要线段的端点都显示在正确的屏幕坐标位置，可以在图形显示时用CDC::SetPixel(POINT endPoint， COLORREF penColor)使终点像素显示出来(图4右)。 从图2和图4可以看出，采用这种方法，线段上所有像素点屏幕位置都一样。在应用程序中，用像素算法判断点到线段的距离时，应考虑画线算法和画线方向的影响。如果要判断点是否在线段上，建议最好不要使用像素算法。实际上，画线算法是将线段数字化为一组离散的整数位置，除了水平和垂直线段外，这些位置是实际线路经的近似 [ 3 ] 。 3.2. Polyline对端点像素的处理 绘制折线函数CDC::Polyline (const POINT *lpPoints， int nCount)在MSDN中的注释：The Polyline function draws a series of line segments by connecting the points in the specified array [ 10 ] 。 根据MSDN中的注释，折线段通过连接一组点形成一系列相连的直线段而成，预期的结果应该显示所有的点，包括端点(起点和终点)。但是用Polyline绘制折线，将正方向和反方向的结果(图5)进行对比，发现Polyline绘制的折线除了最后一个端点之外，起点和中间折点都经过其坐标对应的像素点，并且正反方向绘制的折线，除端点外中间像素屏幕位置一样，但是绘制的折线不符合笛卡尔坐标系中的图形的几何特征。事实上，Polyline相当于循环调用LineTo [ 2 ] ，而且折点像素没有叠印，同时同方向绘制的首尾相邻的折线也不会叠印。 //正方向绘制折线，图5左 CPoint ps[ 4 ]; ps[ 0 ].x = 1;ps[ 0 ].y = 10; ps[ 1 ].x = 6;ps[ 1 ].y = 3; ps[ 2 ].x = 20;ps[ 2 ].y = 10; ps[ 3 ].x = 24;ps[ 3 ].y = 5; pDC->Polyline(ps，4); //反方向绘制同一折线，图5右 ps[ 0 ].x = 24; ps[ 0 ].y = 5; ps[ 1 ].x = 20; ps[ 1 ].y = 10; ps[ 2 ].x = 6;ps[ 2 ].y = 3; ps[ 3 ].x = 1;ps[ 3 ].y = 10; pDC->Polyline(ps，4); 在应用程序中，如果需要将折线终点坐标的像素显示出来，可以使用CDC::SetPixel(POINT lastPoint， COLORREF penColor)将终点像素着色(图6)。并且正方向和反方向绘制的折线经过的像素点位置完全一致。
system: [SYSTEM]

user: 5. 结束语 总结上文的实验可以发现，Windows的GDI绘图函数的图元输出遵循以下准则： 1) 整数屏幕位置代表像素区域的中心； 2) GDI绘线函数LineTo起点像素屏幕位置正确，为了保持线段的长度不变，在末尾少一个像素，因此导致正、反方向绘制的线段首尾像素位置不一致； 3) GDI绘制折线函数PolyLine实质上是循环调用LineTo，因此，同样会在折线末尾少一个像素，从而导致正、反方向绘制的折线首尾像素位置不一致； 4) GDI填充区域函数Polygon相当于先用PolyLine绘制边界像素，然后再填充边界内部像素集合，因此绘制出的区域经过所有指定的像素点； 图11. FillRgn填充的相邻矩形 5) GDI绘制椭圆函数Ellipse能够保持椭圆的长半轴和短半轴不变，但是边界像素不合理； 6) GDI矩形类CRect和区域类CRgn及各自的填充函数，根据上文中的边界点取整规则，决定整数边界点是否显示，以及小数边界点如何显示，因此在调用PtInRect和PtInRegion时边界上的点会得到不一致的结果。 在一般的可视化应用程序中，不需要考虑GDI绘图函数是如何处理图形边界的，但是在一些特殊的图形系统中，例如在需要测量图形几何特性，判断点是否在图形上，或者判断点到图形的精确距离等的应用系统中，必须得到正确的判断结果和尽可能精确的栅格化结果，因为屏幕上一个像素的误差可能对应实际地面上几千米的错误，这时候图形软件开发人员和应用人员有必要清楚GDI绘图函数的实质和机制，尽量避免得到错误的结果。
system: [SYSTEM]

user: 摘 要 本研究利用泡沫萃取法处理含铊工业废水，分离泡沫相和水相，通过火焰原子吸收分光光度法测定水相中铊浓度。采用泡沫萃取法能够有效的去除含铊重金属废水，尤其对基质较复杂，盐基度高废水有良好的去除效果。实验结果表明：当废水与萃取剂体积比125:1和50:1，铊去除率达80%和95%。该方法污染小、效果稳定、操作简便。 关键词 :泡沫萃取法，铊，工业废水
system: [SYSTEM]

user: 1. 引言 铊是一种剧毒的重金属元素，广泛分布在地表环境中，陆地层中铊的平均含量为0.49 mg/L，海洋中的平均含量为0.013 mg/L [ 1 ] 。但由于人为开采富铊矿床以及不合理利用，使铊通过水体、土壤等途径迁移和富集，造成铊区域性污染。冶炼矿厂、钢铁厂等需要消耗大量富铊矿产，因而造成大量含铊废水的超标排放，如黔西南地区由于金汞矿资源开发利用造成环境铊污染 [ 2 ] 。目前常用的处理方法是使用铁盐、矿渣和氧化剂等将一价铊氧化为三价铊，投加石灰或者液碱，使铊和其它重金属一同沉降 [ 3 ] [ 4 ] 。在工业应用中，常规混凝沉降法需要大量消耗氧化剂、底泥多、污水废渣难以回收利用等缺点，而其它报导的处理方法难以适应大规模的工业废水处理量。Sebba [ 5 ] 于1959年首次提出利用离子萃取技术从稀水溶液中回收和除去金属离子 [ 6 ] ，其萃取分离过程一般具有效率高、能耗低的特点 [ 7 ] 。近年来，泡沫萃取作为处理含低浓度重金属离子废水的引起人们的关注。本研究利用泡沫萃取法处理含铊重金属废水，是一种高效、简便的方法，受废水基质影响小，对铊有良好的去除效果。
system: [SYSTEM]

user: 2. 实验部分 2.1. 仪器和试验试剂 TAS-990火焰原子吸收分光光度计(北京普析通用仪器有限责任公司)，SB-5200DTS双频超声波清洗机，BT124S电子天平(北京赛多利斯仪器有限公司)，DHG-9053A电热恒温鼓风干燥箱(上海一恒科学仪器有限公司)。其它常规玻璃仪器。 硝酸亚铊，优级纯(上海化学试剂采购供应试剂厂)。用1% (体积分数) HNO 3 配置成100 mg∙L −1 铊储备液。实验中所用试剂均为优级纯，水为超纯水。实验所用玻璃仪器均用2%稀硝酸浸泡12 h，并超声清洗30 min后使用。 废水样品采自广东省某炼钢厂脱硫废水，模拟废水为稀硝酸介质下的硝酸亚铊纯溶液。 2.2. 泡沫萃取的作用原理 本次实验所用的泡沫萃取剂是主要活性基团为R-S异极性分子，结构用符号“ ”表示，前端表示非极性基，疏水性；后圆端表示极性，易溶于水。该萃取剂因其高分子特性兼有捕捉剂和起泡剂的作用效果。泡沫萃取的作用原理如图1所示：该反应发生在气、液的相界面，当萃取剂与含铊废水在界面接触后，通过起泡充分接触，含S的极性基与Tl + 发生反应形成絮状大分子(即絮粒)，而R作为非极性基即疏水基在界面定向排列，形成了比重小于水的浮体，在起泡的过程中附着在气泡上，通过气泡和絮状大分子的碰撞粘附、网补和共聚作用 [ 8 ] 以及浮力作用上浮至水面，达到分离固、液的目的。 2.3. 试验方法 2.3.1. 标准曲线的测定 分析参数：火焰原子吸收分光光度计，Tl空心阴极灯及其必要的附件。Tl波长：276.8 nm，光谱带宽：0.4 nm，工作灯电流：3.0 mA。燃气流量：1500 mL/min。 标准溶液的配置：用移液管分别量取1 mg/L、2 mg/L、4 mg/L、6 mg/L、8 mg/L、10 mg/L的铊标准储备液于6个100 ml容量瓶，用1%的稀硝酸定容至刻度，摇匀。用火焰原子吸收分光光度计测定溶液吸光度值，绘制标准曲线。在此工作参数下和测定样品得出的相关系数为0.9995，说明该工作曲线有良好的相关性。 2.3.2. 泡沫萃取剂处理模拟含铊废水的用量比 本研究模拟工业浮选柱的工作原理，以分液漏斗代替浮选柱，采用静态浮选的方式，初步研究浮选剂对含铊废水的处理效果。用储备液配置4 mg/L的Tl标准溶液(稀硝酸介质)作为模拟含铊模拟废水备用。准备6支60 ml分液漏斗，各加入10 ml 4 mg/L的Tl模拟废水，分别滴加0.05 ml、0.1 ml、0.2 ml、0.3 ml、0.4 ml、0.5 ml泡沫萃取剂，摇振直至泡沫不在增加，静置30 min。取下层清液测铊浓度，用Tl去除率评价萃取效果。 2.3.3. 泡沫萃取剂与废水的用量比 为使泡沫萃取剂能广泛应用，本实验采用小样与中样的对比试验，所用水样均为某钢铁厂废水。第1组分别取10 ml废水约含铊4 mg/L于5支60 ml分液漏斗，分别加入0.05 ml、0.1 ml、0.2 ml、0.3 ml、0.4 ml泡沫萃取剂，充分摇振5~8 min，观察到分液漏斗内起泡充分，摇振直至泡沫不在增加，静置30 min，取下层清液测铊浓度。第2组取500 ml约含铊4 mg/L废水至1000 ml分液漏斗中，依次分开加入0.25、0.50、0.75、1.00、1.25、1.50、1.75、2.00、2.50、2.75、3.25、3.75、4.25、4.75、5.00 ml，每次加样后需摇振萃取5~8 min，摇振直至泡沫不在增加，静置30 min，检测下层液中铊浓度，去除率评价萃取效果。 将这2组试验处理后的样品静置24 h，72 h，分别测铊浓度，以观测泡沫萃取法的稳定性。 2.3.4. 萃取时间对铊去除率的影响 取约含铊4 mg/L废水30 ml，按照实验2.3.1中确定的最佳用量比10:1加入泡沫萃取剂。记录萃取时间10 min、20 min、30 min、40 min、60 min、90 min时铊去除率。 2.3.5. 氧化剂、酸碱度对萃取效率的影响 工业废水处理常用的酸碱试剂以及双氧水对泡沫萃取剂的影响。现做以下试验：取4支60 ml分液 图1. 泡沫萃取的作用原理 漏斗，各加入30 ml钢铁厂废水，并滴加1 ml泡沫萃取剂，按以下4种条件：3 ml 30% H 2 O 2 、氢氧化钠调pH = 8.5、碳酸钠调pH = 8.5、1:1稀硝酸调pH = 3.0，依次加入上述反应液中，摇振直至泡沫不在增加，静置30 min，测定不同条件下的铊浓度。
system: [SYSTEM]

user: 3. 结果和讨论 本研究利用萃取前后废水中的Tl含量来评价分离效果的优劣。Tl去除率(也可用回收率)定义如下： (1) 公式(1)中，C为Tl在废水中的初始浓度，C 0 为Tl在处理后废水中的浓度。 从分析化学角度来讲，本研究属于沉淀吸附分离。泡沫萃取剂包括起泡剂和捕捉剂。在处理废水的过程中加入泡沫萃取剂，使溶液成为由沉淀–泡沫萃取剂–空气组成的体系，达到吸附分离的目的 [ 9 ] 。 3.1. 泡沫萃取剂与模拟废水的用量比 由表1看出：以4 mg/L含铊模拟废水为研究对象，按一定体积比加入泡沫萃取剂后，模拟铊废水与泡沫萃取剂体积比为50:1时，铊去除率可达到86.7%，且用量比越大，铊去除效果越明显。说明该萃取剂对铊具有一定的效果。因泡沫萃取剂为含S有机沉淀剂，所以只针对含铊(I)废水进行研究。当用量比大于50:1，处理效果没有显著性增加，铊去除率仅增加3.3%，考虑实际效益、经济成本等因素，本实验中泡沫萃取剂与废水的最佳用量比为50:1。 3.2. 泡沫萃取剂处理含铊废水的最佳用量比 对比图2和图3可知：第1组试验中，当泡沫萃取剂用量为0.15 ml时，铊去除率可达80%，继续加入，铊去除率可达94%，并趋于稳定。第2组试验中，当泡沫萃取剂用量为4 ml时，铊去除率也达到80%。当铊达到最大去除率时，小样和中样废液：萃取剂的最佳萃取比分别为50:1和125:1。当处理废水量较大时，可按照废水与萃取剂体积比125:1，此时铊去除率达80%，增大萃取剂用量可以提高铊去除率至95%，但萃取剂用量较多，铊去除率不呈线性增长关系。将1组和2组的处理液静置24 h，72 h，铊浓度不回升，说明该萃取剂处理效果稳定。对于突发性铊污染事件，泡沫萃取剂与废水用量比为125:1时，可基本控制污染扩散，这对以后铊污染治理具有实际应用的价值。 3.3. 萃取时间对泡沫萃取剂的影响 本试验水样为某钢铁厂废水。根据试验2.3.2.中研究结果，当泡沫萃取剂与模拟废水的用量比为10:1时，铊的去除率达到最大，即90.3%。以此为最佳实验条件，准备若干组30 ml废水，研究时间对铊去除效果的影响。结果如图4所示：反应刚开始10~30 min内，铊的去除率迅速增加，而30~60 min内铊去除率达到80%~90%，大于60 min后铊浓度降到最低且不再增加。这说明在处理废水过程中，萃取时间在30~40 min为最佳条件。 3.4. 泡沫萃取剂的干扰因素 工业废水的污染物复杂，单一处理方法不能有效地一次性根本解决废水污染。针对含铊工业废水，加入泡沫萃取剂是一种较好的方法，通过以下试验结果显示，可与其它的废水处理方法联合使用。如表2所示：当废水中加入双氧水，部分一价铊氧化成三价，铊去除下降，表明该萃取剂只与一价铊作用，pH = 8.5，NaOH和Na 2 CO 3 等常用的碱液不显著影响处理效果。若废液在酸性/氧化的条件下，铊去除率降低，说明H + /H 2 O 2 存在时，铊(Ⅲ)含量增加，降低了S 2− 反应进程。一般情况下，泡沫萃取是在可动的 Table 1 Ratio of foam-extraction agent to Tl-simulation wastewate V 废水 :V 泡沫萃取剂 平衡浓度/(mg∙L −1 ) 去除率/(%) 2000:1 100:1 50:1 33:1 25:1 10:1 1.921 1.191 0.533 0.483 0.402 0.386 52.0 70.2 86.7 87.9 90.0 90.3 表1. 泡沫萃取剂与模拟废水的用量比 图2. 第1组试验的铊去除率 图3. 第1组试验的铊去除率 图4. 萃取时间对铊去除率的影响 Table 2 System resulting data of standard experiment influence factor 萃取剂 萃取剂 + 30% H 2 O 2 萃取剂 + NaOH pH = 8.5 萃取剂 + Na 2 CO 3 pH = 8.5 萃取剂 + 1:1 HCl pH = 3 铊去除率% 82.1 60.2 81.1 80.8 58.4 表2. 标准试验系统结果数据 液/气界面上进行的 [ 9 ] ，铊进入泡沫相，鼓风分离泡沫相，干燥后得到含铊沉淀物，达到铊的回收和利用的目的。
system: [SYSTEM]

user: 4. 结论 1) 泡沫萃取法处理含铊废水，可以取得良好的处理效果，受水体盐度干扰小，工艺简单，操作方便的优点。泡沫萃取法可以弥补常规化学氧化混凝法处理深度不够的缺陷，对于稀有贵金属的处理和回收利用是很好的选择。 2) 含铊废水的处理一直也是水污染控制的目标之一，如何在处理铊污染时做好资源的回收利用也是要考虑的因素。泡沫萃取是一个研究方向，但这种技术在理论和实践中存在的问题还需更多研究。
system: [SYSTEM]

user: 摘 要 由于壁画拼接在图像拼接应用场景的特殊性，采用传统的单应性投射矩阵配准算法无法满足。通过SFM流程对壁画三维重建，预定位全景图的框架图片，调整非框架图片的投射顺序，采用滑动窗口直接线性变换算法进行投射。通过全景图的主观评价，误差数值的客观评价以及与商业拼接软件作实验对比验证了本课题算法的可行性。 关键词 :壁画拼接，图像配准，SFM，预定位框架
system: [SYSTEM]

user: 1. 引言 图像拼接是计算机视觉领域的一个重要分支。近年来为了解决大视野全景图和高分辨图片两种需求的矛盾，国内外对全景图拼接的研究上升到了一个新高度。但是，分析对壁画等数字保存的要求，无论是传统的图像拼接流程还是单应性投射模型，已经不适用壁画拼接的情况。 传统的单应性投射模型不考虑相机的视差，而为了获取壁画的每个细节，必须移动相机。由于壁画表面凹凸不平，幅面之大，分辨率之高都无法用传统的图像拼接流程来解决。 本课题根据基于特征值图像配准算法理论，按照图像拼接的一般流程，在图像预处理，图像特征值提取，全局调整等基础上进行多视点的全景图像拼接算法的研究。对如何获得相机内外参数的方法进行深入研究，探讨如何制定最佳全局约束，通过调整相机内外参数，三维重建特征点云拟合出最佳平面，创建合理的图片数量为框架以及调整非框架图片的投射顺序等多渠道来减小拼接过程中的累积误差，并借助图像处理平台设计实验，对拼接图像实验结果的准确性、实时性和有效性进行研究。 本文提出敦煌壁画全景图的新拼接流程，拟解决当前图像拼接的研究领域中存在的不足，在高精度，大幅面的全景图拼接配准流程方面进行创新。
system: [SYSTEM]

user: 2. 图像拼接相关工作 2.1. 基于特征值的图像配准技术 图像配准技术是全景图拼接成功的关键之一，目前主要的图像配准方法有直接匹配和基于特征值的匹配。前者又叫基于空间像素灰度值拼接技术。基于特征的配准方法能够容忍更大的图像差异，有助于获取稳定的配准结果[ 1 ] 。由于所提取的特征点个数一般远小于图像中的像素数，在快配准过程的运算速度具有计算量小、速度快的特点，同时对于图像的畸变、噪声、遮挡等具有一定的鲁棒性等优点。 这些特征提取算法的优异性能，使得基于特征的图像配准成为当前的主流选择。Lowe [ 2 ] 提出的SIFT特征子与Bay [ 3 ] 提出的SURF特征子是现今最常用的特征子。 本文所采用的特征子配准方法是基于Lowe提出SIFT (Scale-invariant feature transform)算法得到的特征点，该算法实质是在不同的尺度空间上查找特征点及其方向。由于SIFT特征具有尺度不变性，即使同一物体处于两个不同的尺度的图像中或者图像经过投射，光照等变化后，我们仍可以通过提取图像的SIFT特征而匹配成功。课题下文所描述的特征点特指SIFT特征子经过RANSAC算法后所得内点 [ 4 ] 。 2.2. 基于SFM流程的三维重建 传统的图像拼接投射矩阵仅仅考虑相机的纯旋转运动 [ 4 ] ，其基本假设为相机之间不存在视差。图像配准过程中，人们一直优化单应性投射矩阵，得到相对准确的投射矩阵来消除相机的移动所带来的误差。当相机发生位移变化时，传统的拼接算法并不能很好地达成预期目标。Agarwala等提出利用三维重建恢复拍摄物体的三维位置信息运用到图像拼接中 [ 5 ] 。 SFM，全称为structure from motion [ 4 ] ，从运动中恢复结构，现广泛应用于三维结构的重建以及获得相机位置姿态方面。 (1) 表示预测的二维点坐标， 表示测量得到的二维点坐标。在优化到两者之间最小误差代价时，我们可以得到特征点的三维信息以及相机的内外参数。多视图的三维重建是先对摄像机进行标定，计算出摄像机的图像坐标系与世界坐标系的关系。利用多个二维图像中的信息重建出三维信息。采用BA (Bundle Adjustment) [ 6 ] 技术，减少观测图像的点和参考图像(预测图像)的点之间位置投影变换(重投影)误差e。三维重建的结果并不能直接改善图像拼接的效果，尽管如此，仍有不少将其使用于图像拼接领域的成功尝试。 沈武魁 [ 7 ] 采用SFM算法，利用图片之间的二维点估算出特征点的三维坐标，拟合出一个代价最小的最佳投影平面，将所有图片正射投影到该平面，构建全景图，并在后续工作中尽可能的减少了由于三角剖分导致的边缘内容损失。 徐玉华分别对于已知和未知相机位姿的情况，提出拼接策略 [ 8 ] 。对于相机位姿未知的情况，先采用 SFM方法恢复相机姿态和场景稀疏结构信息，再进行全局稀疏优化图像变换参数，进行近似平面场景的多视图图像拼接研究。 2.3. 多重单应模型APAP投射 为了优化单应性投射模型，现今已有多重单应模型被提出以减少由单应投射产生的拼接误差。Gao [ 9 ] 等提出双单应性模型，用以投射具有两个主要平面的场景。这一模型由两个单应模型的加权线性组合构成，其中的权重随着空间位置变化而不同。Lin等 [ 10 ] 提出了smoothly varying affine模型，用以投射全局仿射变化的场景，同时允许局部形变。Julio Zaragoza等 [ 11 ] 提出的APAP (As-Projective-As-Possible)拼接，在保存了被摄体的整体单应性假设的前提下，假设被摄体的细节部分满足不同的局部单应性，并通过一个新的滑动窗口方法，被称为Moving DLT (Moving Direct Linear Transformation)，对其进行加权估计，其拓展了之前Gao等 [ 9 ] 对一张图像计算两个单应性矩阵的尝试，在很大程度上解决了单应性拼接方法中，噪音和视差带来的图像错位和鬼影。 在直接线性变换(DLT)算法基础上确定投射矩阵H，记 ，h矩阵只有前两行线性相关，记 为前两行。 优化目标是 (2) 约束 。 (3) 像素点 与第i个特征点呈几何距离相关。对 进行规格化得到 (4) 其中 (5) 对每一个像素点进行APAP投射，计算成本较高，且没有必要。将图片分成若干块，每一块的中心像素点采用APAP算法进行投射，能降低时间复杂度。
system: [SYSTEM]

user: 3. 基于预定位图片框架策略的算法 为了避免累积误差带来的全景图变形，消除在拍摄壁画时，平移相机所带来的影响位置变化，这里采用SFM算法恢复相对准确的壁画场景。模拟三维重建后，用最小二乘法拟合最佳平面，将所有的特征点进行正射投影到该平面。从中选取部分图片作为初始位置，作为全景图的全局约束，不再参与全局调整。其他非框架图片根据预定位的图片进行APAP单应性投射。图片的配准流程如图1所示。 3.1. 特征点的三维重建 本课题采用Visual SFM软件经过SFM流程得到稀疏的特征点云，根据最小二乘法，我们拟合一个最佳平面，将所有的特征点正射投影到该平面，这个过程中完成将三维点到平面二维点的转化。 3.2. 拼接系统的框架图片确定 在经过SFM流程处理后，我们将每一幅图片映射到三维场景中，除了得到粗略的相机位置信息，同时也得到每一幅图片的特征点信息。由于所有图片都处在一幅全景图中，图片与图片之间存在重合信息，由这些重合信息来确定匹配的特征点。通过SFM流程，我们观察到一些特征点同时出现在若干张图片中，同一对匹配特征点出现在不同图片中的数量也尽不同。 3.3. 非框架图片进行全景图投射的顺序 如图2所示，当一张图片B投射到位置准确的图片A (预定位的图片)时，与之有重合部分的A特征点P ab1 位置是准确的，而另一些没有重合的像素点P b2 (黄色框)的投射矩阵H是根据重合部分P ab1 计算得来，并非实际的投射计算的H进行变换，由此可知，这些像素点投射后的在全景图中的位置与实际的位置有偏差，反映在全景图中P b2 是不确定的，当另一张图片C与B图片的P b2 有匹配点P b2c ，将C的进行单应性投射时，由于投射的基础P b2 是不确定的，那么图片C的位置反映在全景图的是不准确的。 图1. 基于特征点配准流程示意图 图2. 不确定的图片引起的配准错误示意图 尽管APAP投射的方法能提高局部投射的准确性，但是若投射的基础不对，也只是在投射基础不正确的前提下，配准出错的更少一点而已。以此类推，误差累积更甚。非框架图片的即使并没有与周围框架图片有匹配点，为了尽量准确的投射到全景图中，放入框架图片投射的顺序也至关重要，拟定的策略按照SFM重建后与框架图片匹配的特征子的数量从大到小以此投射至全景图中。 综上问题所在，拼接算法的策略： 1) 选取三维重建的特征点，在重构中，给定其中两幅视图的一组点对应，该点在第三幅视图上的位置就可以确定，三视图比两视图的3个自由度点多提供2个测量，而且景物直线的解是超定的，可以通过对测量误差适当的最小化来估计 [ 12 ] 。 2) 为了尽量重现真实三维情况，框架图片选取包含重建特征点最多的图片，计算每一张图片在三维重建中包含的特征点，从高到低进行排序。 3) 选取框架图片策略：尽量减少框架图片之间重叠，尽量包含更多的重建的可靠的三维点。 4) 建立框架后，按照图片顺序放入框架内，为了尽量将非框架图片植入准确的位置，计算每一张图与周围的框架图片有重叠张数的数量，按照其数量从高到低进行排列，依次与框架进行拼接。若出现非框架图片与接壤的框架图片数量一致时，则比较匹配点的对数取大者。 判断框架选取的策略评判定为粗拼接阶段为三维重建特征点数量，和拼接完成后全景图的均方误差作为评价拼接质量的定量指标。 具体算法思路如表1所示。
system: [SYSTEM]

user: 4. 实验结果 拼接之后的图像质量评价(IQA)主要分为主观和客观两种评价方法 [ 13 ] ，主观评价基于人的视觉主观评判，达到视觉可接受的范围即可，由于人的主观带有不确定性以及工作量巨大而往往导致评判不准确。对于图像的客观质量评价，从参考源的角度可分为全参考FR (Full-reference)，无参考NR (No-reference)，弱参考RR (Reduced-reference)。目前主流的评价方法是全参考方法 [ 14 ] ，拼接模型普遍使用RMSE，即均方误差作为评价拼接质量的定量指标。 对于估计变化矩阵f和对于匹配的特征点 ，均方误差RMSE计算经过f投射变化后平均像素差 [ 11 ] 。 (6) 主流商业图像拼接软件如AutoPano Giga，Photoscan等，RMSE < 3即被认为是拼接质量优异。用敦煌壁画56样张进行实验，本课题算法结果如下(只考虑图像配准，未进行全局BA调整，图像只进行简单的线性融合)。 根据设计的框架图片选取策略，实验生成的框架图如图3所示。 不考虑图像放入顺序的实验结果如图4所示。 可以很明显观察到中间一排最右侧的佛像畸变严重，分析原因可发现该图像进行投射时，与之匹配的特征点均为非框架图像，不确定的匹配点位置导致匹配信息不够。同理，左下侧红色框框内佛像拼接处出现断裂。 改进非框架图片的投射顺序，考虑图像放入顺序的实验结果如图5所示。 很明显，从主观视觉上判定，实验一中的佛像畸变和出现的鬼影都消失了，最底下一排的佛像也未出现断裂的情况。拼接效果大幅度提高。 客观定量分析，三维重建后框架中包含的特征点数量54，605，框架中图片张数13。总误差e由公式(1)计算所得，两组实验结果数据包括总误差，内点数量以及重要评判指标RMSE，如表2所示。 为了得到更清楚的对比效果，选择主流商用软件拼接结果作比较，可以看出，本实验课题算法在大幅面，高精度的壁画拼接上更为出色。图6为Photoscan所拼接的56张敦煌佛像全景图，由于该软件良好的融合算法弥足了图像拼接过程中匹配不准，从整体来看，佛像畸变严重，长宽像素比失调。图7为AutoPano Giga同一资源拼接的全景图，拼接结果透视效果严重，导致整个投射面严重畸形。 Table 1 Algorithm step 1) SFM算法恢复特征点的三维信息，计算出每张图的在三维重建中的特征点数量。 2) 根据策略1)，2)，按照特征点的数量对图的顺序进行从大到小排序生成列表list，确定框架图片。 3) 按照列表list中图片顺序，进行框架的预选。找到放入最大特征点的起始图片下标，以及需要的骨架数量。 4) 根据策略4)，计算非框架图片的投射顺序，采用APAP算法进行全景图投射。 5) 非框架图片参与全局优化调整。 表1. 算法步骤表 Table 2 Evaluation for two simulation 总误差e = total_err 内点数total_inliers (个) 均方误差rmse 实验一 5.4537e+05 402，092 1.3563 实验二 5.1837e+05 402，294 1.2885 表2. 两组实验定量分析结果表 图3. 预定位图片的框架示意图 图4. 随机选取非框架图片进行投射实验结果图 图5. 考虑非框架图片投射顺序实验结果图 图6. Photoscan软件拼接效果图 图7. KolorAutopano Giga软件拼接效果图
system: [SYSTEM]

user: 5. 结束语 本文在图像拼接的配准流程中进行研究分析和优化，采用SFM三维建模模拟壁画的场景，恢复特征点云，拟合投射到一个最佳平面，合理选出部分图像作为框架，自动化完成框架图片的选取，生成最优框架，其他图片进行多重单应性投射。既保证了壁画的全局约束，同时在保证了非框架图片在投射过程中全局调整的灵活，最后，与主流的商业全景图拼接软件作对比，效果更为出色。 尽管本文算法效果与之前相比，有了较大的提升，但由于壁画精度较高，在细节方面还有待提升。改进策略如下： 1) 对非框架图片进行全局Bundle Adjustment调整，进一步优化匹配误差。 2) 改进本课题图像拼接融合过程中简单的线性融合方法，利用图像融合技术正确消除拼接缝，图像扭曲，重影模糊等，对光照增益补偿。能正确完成基于“预定位图像”策略的多视图全景图的拼接。