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

user: 1. 引言 传统无人机起飞方式受风向、地形、遥控器操作失误等问题影响极容易发生事故，而这些，都可以通过起飞优化来改善。且目前无人机起飞设计和优化多针对固定翼无人机，而多旋翼无人机本身就足够灵活、可靠，故起飞设计和优化较少。但多旋翼无人机起飞仍需要一定技巧，如何使多旋翼无人机起飞更加简单、安全，是众多新手的诉求。 在无人机起飞方面，前人已有一些实践。在模型方面，刘云平等人 [ 1 ] 给出了动力学模型及推导，改善了四旋翼无人机运动稳定性。何丽莎等人 [ 2 ] 研究并解决了环境风对固定翼无人机安全性影响，但仅针对了固定翼无人机建模。闫立安 [ 3 ] 给出了自主设计的软件控制，能够使无人机实现基础飞行控制，但其软件需要分步操作，还是比较麻烦。朱家远等人 [ 4 ] 设计了自抗扰飞行控制器，提高了飞行过程的抗扰动能力。宗意凯等人 [ 5 ] 和孙蓉等人 [ 6 ] 均对无人机自主起飞的硬件设计有所研究， [ 6 ] 中还给出了无人机自主起降的设计方案。 无人机通信多采用MAVLink协议，在此协议的研究上，吕强等人 [ 7 ] 已介绍很详细，并给出了一种硬件移植方案。赖七生保 [ 8 ] 设计了无人机系统，基于MAVLink提出了一套无人机通信组网方案。王楠 [ 9 ] 设计了支持MAVLink通信协议的微型无人机数传电路，依据此协议进行编码解码。呼云龙等人 [ 10 ] 通过MAVLink协议设计了一款植保无人机地面监测终端，具有一定实用性。本文基于MAVLink协议设计了无人机一键起飞算法，实现了无人机的一键起飞即鼠标点击即可使无人机起飞。
system: [SYSTEM]

user: 2. 研究设计解决的总体思路 2.1. 控制流程 该控制流程所需设备(见图1)包括无人机飞控、数传电台、电脑地面站，其中数传分为地面端和飞控端。选择对应的串口及波特率建立通信后，地面站将飞行指令转换成字节数据包发送给数传，飞控得到数传接收到的数据，执行相应的指令，并按原路径将执行结果返回给地面站，地面站根据Mavlink库解析数据包得到可读结果并根据需求显示出来。 图1. 控制流程所需设备 由于无人机的特殊性，需要实时监控无人机的飞行数据，因而地面站需要以较快的频率不停向飞控申请飞行数据，以确保无人机与地面联系的可靠性。 2.2. MAVLink协议设计 MAVLink是无人飞行器与地面站之间通讯，以及无人飞行器之间通讯最常用的协议，此协议已在PX4、APM、PIXHAWK和Parrot AR.Drone飞控平台上进行了大量测试验证。表1是MAVLink协议的数据帧结构，其数据包以FE开头，最后两字节为校验和，其协议数据结构既简短又具安全性。 Table 1 MAVLink data frame structur 序号 名称 描述 ０ Package start sign 数据包开始标志，为FE １ Playload length 表示有效载荷的长度 ２ Package sequence 发送序列，用于检测丢包 ３ System ID 发送系统的ID，区分不同的飞行器 ４ Component ID 发送组件的ID，区分不同的组件 ５ Message ID 定义Date的类型，决定解码方式 6~(n + 6) (n + 7) (n + 8) Data Checksum 数据内容，最大允许255字节 16位CRC校验码 表1. MAVLink协议数据帧结构 2.3. MAVLink通用消息集 MAVLink通用消息集包括MAVLink类型枚举(MAVLink Type Enumerations)和MAVLink消息包(MAVLink Messages)。 MAVLink Type Enumerations使飞控和地面站能够以统一的标准分析数据，让每一条参数都变成具有可读性的数据。 MAVLink Messages则是飞控与地面站通信的具体媒介，能够传递飞控与地面站之间的请求与回复信息。
system: [SYSTEM]

user: 3. 基于MAVLink实现无人机一键起飞算法控制 3.1. 起飞算法思路 无人机起飞需要无人机有正确的起飞状态，不正确的起飞状态会触发开发板中的安全保护，导致一段时间内，无人机无法再次接收指令或对指令无应答。所以，起飞前我们需要做如下的起飞准备(如图2所示)。 图2. 起飞准备 第一步，建立通信。此步主要为硬件及驱动支持，正确连接即可建立通信。 第二步，申请数据(参数)，并分析呈现。地面端可以根据需要向飞控端发出申请指令申请对应数据(参数)，待飞控端返回消息后根据MAVLink协议解析获得对应数值。 第三步，切换飞行模式。解锁飞控需要飞控处于安全的飞行模式，起飞多采用稳定模式，此处我们将飞控模式切换为稳定。 第四步，解锁飞控。飞控解锁后才可以接收各种指令并使其执行对应操作。 第五步，进入引导模式垂直上升。为保证起飞过程的安全，无人机起飞过程中不能接收飞行姿态改变的指令(即遥控器左右摇杆)，此时需要将飞控切换为引导模式，让无人机在此模式下完成自动垂直上升操作。 3.2. 算法模型 一键起飞算法流程图如图3所示，其中，我们需要使用到MAVLink提供的一些指令数据结构及数据字节流转换的函数。 图3. 一键起飞流程图 3.2.1. 指令数据结构 此处数据结构相对应2.3中所述通用消息集，即不同消息包对应的指令操作是不同的，因而消息包参数含义也会有所改变。指令数据通用模型mavlink_command_long_t如图4所示，param1~param7为7个基本参数，command为具体指令，target_system和target_component用来标识无人机，confirmation用来确认传输信息。 图4. 指令消息数据结构 3.2.2. 数据读取 接收数据的读取依靠public MAVLinkMessage ReadPacket(Stream BaseStream)函数。此函数简化了我们对串口数据流的操作，使我们无需对照MAVLink协议帧结构一位一位提取流中数据并合成为一个通用消息包类型。我们只需对这个通用消息包强制转换为需要的消息包(即转换成3.2.1中的数据结构)，即可获得可视数据。 3.2.3. 数据生成 数据生成依靠public byte[ ] GenerateMAVLinkPacket10(MAVLINK_MSG_ID messageType， object indata)函数。此函数与读取数据操作相对应，根据我们需要的操作指令，按照MAVLink协议帧结构一位一位的填入数组中，使其变为飞控端可读的数据。其中，数组最后两位为CRC (ITU X.25)生成的校验码，其生成多项式如下方 G ( x ) 所示。 G ( x ) = x 15 + x 12 + x 5 + x 1 3.3. 算法推导 3.3.1. 请求数据流 请求数据流需要使用66号消息包(见图5) 图5. 66号消息包参数 该消息包需要在串口开启时不断向飞控发送以获得返回数据。 target_system和target_component从消息包获得，req_message_rate设置请求频率，start_stop设置起止。 其中req_stream_id中，有12种不同的类型，可以在MAVLink Type Enumerations中的MAV_DATA_ STREAM找到。若需要申请全部数据，此处使用MAV_DATA_STREAM_ALL(枚举值为0)。 设置完这些参数后，就可以用MAVLink库中MavlinkParse类下的GenerateMAVLinkPacket (MAVLINK_MSG_ID messageType， object indata)方法生成对应的消息包发送给飞控。 3.3.2. 获取数据 本系统获取了高度、高度误差、升降速度、模式、GPS数量、地速、空速的参数，对应的获取这些参数，需要得到0号消息(心跳包)，24号，66号，74号消息。 以下以74号消息(图6)为例进行分析： 图6. 74消息包参数 属性含义如下：airspeed——当前空速，roundspeed——当前地速，heading——当前朝向，throttle——当前油门百分比，alt——当前高度，climb——当前垂直速度。 地面站从消息包中读取数据比较容易，首先需要定义一个MAVLink.MAVLinkMessage类型的变量来保存通用的消息类型，然后对获得的消息包进行强制转换到对应的消息包，例如此处74号消息包使用(MAVLink.mavlink_vfr_hud_t)进行强制转换。 3.3.3. 切换模式 切换模式主要需要设置以下三个参数： base_mode——当前模式 custom_mode——目标模式 target_system——系统id base_mode可由MAVLink.MAV_MODE_FLAG.CUSTOM_MODE_ENABLED并强制转换为byte类型得到。custom_mode中值为1表示为稳定模式，4表示为引导模式。target_system由收到的消息包的sysid决定。此处我们将custom_mode设为1，切换为稳定模式。 3.3.4. 飞控解锁 首先需要定义一个通用的指令类型MAVLink.mavlink_command_long_t，设置target_system、target_component为1，再将command设为(ushort) MAVLink.MAV_CMD.COMPONENT_ARM_DISARM，最后将第一个参数param1设置为1。(0表示上锁，1表示解锁) 3.3.5. 垂直起飞 首先，同3.3.3，我们将飞控切换为引导模式，然后执行起飞指令。 以下是官方给出的起飞参数(见图7)： 图7. 起飞指令参数 我们需要定义一个通用的指令类型MAVLink.mavlink_command_long_t，其中command设为(ushort) MAVLink.MAV_CMD.TAKEOFF。起飞指令中除2，3参数为空，其他参数都有对应的含义，若只是简单的原地垂直起飞，除7参数设为需要的起飞高度，其他参数可都设为0。
system: [SYSTEM]

user: 4. 验证 地面站主界面如图8所示，使用地面站首先需要选择对应的串口和比特率，然后点击连接串口，才能进行后续操作。如一键起飞，只需再点击飞机图标，无需点击解锁等按钮。 图8. 地面站主界面 第一阶段测试我们并未装上无人机的螺旋桨，点击一键起飞按钮后，无人机解锁并在设定时间后电机全速运转，因为没有螺旋桨，无人机无法上升，此时地面站高度误差慢慢增加，直至稳定在指定飞行高度。此时尝试举高无人机，至指定高度时，电机转速明显变慢，猜测无人机完成任务处于悬停状态。 第二阶段测试，我们装上螺旋桨，在空旷地段测试。测试结果显示无人机可以解锁并在规定时间后起飞，并悬停在指定高度。
system: [SYSTEM]

user: 5. 分析对比 基于MAVLink采用一键起飞算法后，无人机在起飞便捷性和稳定性上都有了较大提升。既能实时监控飞行数据，也能控制飞行高度的精准。相较于文献 [ 4 ] [ 7 ] [ 8 ] 等从硬件角度改善无人机性能及稳定性，本文从软件出发，以另一种角度对无人机起飞进行研究。 同时相比于文献 [ 10 ] 这些本就提供给专业人员使用的偏作业过程的控制软件，此无人机一键起飞地面站简化了起飞步骤，更加适用于非专业人员使用，使操控不熟练的新手也能直接起飞无人机。此设计调用MAVLink官方C#函数库中基本函数，通过上述五步算法设计，加以C#基本组件的按键触发，实现了无人机的一键起飞，可以说对飞行操作和飞行软件设计上的一个补充。
system: [SYSTEM]

user: 6. 结论 本文介绍了四旋翼无人机一键起飞的设计与实现。该软件基于MAVLink实现，能够实时显示无人机飞行状态，并能够实现无人机的解锁上锁，及一键起飞的功能。无人机的一键起飞，大大简化了无人机起飞的操作，降低了起飞过程中误操作的风险。 多次试验显示，地面站参数显示使无人机实时状态更加直观，且利用地面端一键起飞，降低了无人机操作的复杂性，使无人机在起飞时具有更高的安全性。
system: [SYSTEM]

user: 摘 要 针对OPNET网络仿真规模很大时系统资源消耗增加、仿真效率降低，严重时会导致仿真无法进行甚至自动退出等问题，本文以话音网络为例，从构建网络拓扑、提高仿真效率等两个方面对OPNET在仿真大规模网络性能时可能出现的问题及解决方法进行了举例验证。结果表明当网络规模很大且分布不规律时，可以利用EMA技术生成网络节点，根据实际需求可以择优选取混合式仿真、汇聚网络流量并简化网络模型、OPNET与其他编程软件相结合、分布式仿真等方法用于提高仿真效率，相关结论对利用OPNET仿真大规模网络性能具有一定的借鉴意义。 关键词 :OPNET，大规模网络，性能仿真，仿真效率 Copyright © 2019 by author(s) and Hans Publishers Inc. This work is licensed under the Creative Commons Attribution International License (CC BY). http://creativecommons.org/licenses/by/4.0/
system: [SYSTEM]

user: 1. 引言 目前OPNET是世界上最先进的网络仿真开发和应用平台。OPNET采用离散事件驱动的机理，通过模拟“事件”的推进过程描述网络状态的变化，与时间驱动相比，离散事件驱动的计算效率更高 [ 1 ] [ 2 ] [ 3 ] [ 4 ] 。但是当网络的规模和流量很大时，OPNET仿真会变慢，严重时会导致仿真无法继续，仿真效率大打折扣。 关于如何提高大规模条件下的OPNET仿真效率问题，文献 [ 5 ] [ 6 ] 尝试通过软件开发扩展OPNET功能使之在多台计算机上并行运行，将一个大规模网络分散到两台或者两台以上的计算机上运行，使得各台计算机进行协调联合仿真，通过多台计算机分担一台计算机的负荷从而提高仿真效率。这种方法工作量巨大，且耗时耗力，方法不具代表性；文献 [ 7 ] 以ATM和FDDI包变换网络下的OPNET仿真为例，从仿真参数设置方面探讨了提高大型网络仿真效率的两种方法；文献 [ 8 ] 以大规模无线Mesh网络为背景，设计并实现了网络安全协议仿真平台，对大规模网络条件下OPNET仿真效率的改进和提高问题并没有阐述。 综上所述，有必要对如何提高大规模网络条件下的OPNET仿真效率进行尝试，探讨并形成通用性或具有代表性的解决方案(以话音网络为例)。
system: [SYSTEM]

user: 2. 网络拓扑的构建 节点数多且网络分布比较复杂的情况下，手工绘制拓扑图的做法不可取。OPNET中的拓扑快速配置(Rapid Topology Configuration)功能只适用于有限种类的拓扑结构，且生成的模型节点可能重叠。针对这种情况，OPNET提供了网络拓扑导入功能。主要分为三种 [ 9 ] [ 10 ] [ 11 ] ： 2.1. Import Topology from Circuit Switch Text Files 该功能只适用于promina族节点，且需要对节点、链路分别编写文件，效率较低。 2.2. Import Topology from XML Files 图1. 某拓扑结构 通过XML编程(主要代码)实现图1中拓扑结构如下： 由此可见，当网络节点数很多且分布较复杂时，采用XML编程导入网络拓扑的工作量很繁琐。同时XML只是标记语言，不能通过循环语言实现网络模型的重复构造。 2.3. Import Topology from EMA Files EMA (外部模型访问)技术通过类C and C++语言使OPNET在没有图形编辑器的情况下实现网络模型的读写控制。 以下为实现一个具有100个交换节点的网络拓扑图的部分EMA代码： /*坐标x，y的值可通过MATLAB编程，即先生成一组随机数，然后利用K均值方法获取分布均匀的点坐标，剔除间隔太近的点*/ 拓扑构建的具体流程如下： 1) 打开OPNET控制台窗口，进入上述EMA代码文件(后缀名为*.em.c)所在目录，输入命令op_mkema -m文件名(本例为tele_circuit-EMA，不加后缀)； 2) 执行刚创建的可执行文件<文件名.i0.em.x>。具体如图2所示： 图2. OPNET后台运行 3) 点击菜单File->Model Files->Refresh Model Directories刷新模型目录，然后点击Scenarios→Scenario Components→import...即可。生成的网络节点如图3所示。 图3. 利用EMA技术建立的网络拓扑 由以上三种拓扑构建方法可以看出，在网络节点数多且分布不规律的情况下，利用EMA技术生成网络节点的做法是可取的，减少了仿真前期的工作量。
system: [SYSTEM]

user: 3. 仿真效率的提高 由于OPNET采用离散事件仿真机制，实现时必须要有一个时钟进程始终在运行，整个仿真过程贯穿着事件发生时刻的生成、存储和扫描，这将占用大量的机器内存和处理时间，尤其对大型网络，仿真运行速度很慢，达不到实时的要求 [ 12 ] [ 13 ] [ 14 ] 。以下为主要的解决方法。 3.1. 混合式仿真(Hybrid Simulation) OPNET中提供了两种流量模型 [ 15 ] ： 1) 前景流量模型——application traffic 主要收集IP层以上的性能参数，能够详细刻画每个包的发送与接收过程以及不同协议的影响，但耗时大且占用系统资源多。 2) 背景流量模型——background traffic 采用数学分析的方法，主要收集IP层及以下各层的性能参数，耗时小且占用系统资源少，但精度不高。由于OPNET10.5A中不支持在传统电路交换的环境下的background traffic flow import功能，即不能用flow analysis模块分析整个网络的链路流量利用情况。主要有两种解决方法： ①使用OPNET中的promina节点模块族 [ 16 ] ，代替普通的SSP节点(图4所示)。即在promina节点之间导入背景流量，然后利用flow analysis功能分析整个网络的运行情况，这样可节省运行时间。 图4. 利用promina节点充当电路交换机 ②通过编程，构造新的SSP节点，其相对于原有的SSP节点多了如下功能： 支持背景流量的设置，即可以配置相关参数，使其具有background utilization流量，同时也必须构造新的链路模型，使其具有可以设置background loads的功能。分别如图5、图6所示： 图5. 交换机节点背景流量的配置 图6. 链路背景流量的配置 实际中，利用OPNET中的混合仿真(Hybrid Simulation)机制，可根据要求配置explicit traffic与background traffic的比例，在保证仿真精度的同时也能提高仿真的效率。 3.2. 汇聚网络流量，简化网络模型 用一个子网节点(subnet)代表部分SSP节点，使得两者产生的流量均等，最后将各子网连接起来。如图7所示。 但该方法不能精确到每个SSP节点，精度降低。 3.3. OPNET与其他编程软件相结合 先借助编程软件(如MATLAB)，编程得到各局间链路的利用率，再利用OPNET中的color by link loads功能(如图8所示)，根据链路的利用率大小用不同的颜色标示(如75%以上标注为红色，50%~75%标注为黄色，50%以下标注为绿色)，如图9所示： 图7. 用子网虚拟节点代替部分SSP节点 图8. 链路利用率大小的颜色设置 图9. 各链路利用率的颜色标示 3.4. 分布式仿真 随着复杂大系统仿真应用的不断扩展以及仿真器的物理分布性的限制，分布式仿真技术应运而生 [ 17 ] [ 18 ] [ 19 ] 。高级体系架构(HLA，High-Level Architecture)以其强大的技术优势成为该领域的主要解决方案。作为新一代分布式仿真标准，目标是要提高不同仿真间的互操作性及仿真、组件的可重用性。 为促进仿真系统间的互操作，HLA采用对象模型描述联邦及联邦中的每个联邦成员，并借助对象模型模板OMT给出联邦在执行过程中需要交换的数据的规范化表达。HLA对象模型分为两类： 1) 联邦对象模型(Federation Object Model， FOM)：用来定义联邦成员间公用的数据交换；联邦成员需要公布和定购的数据(实例属性和交互实例)必须事先在FOM中规定，否则无法交互。 2) 仿真对象模型(Simulation Object Model， SOM)：用来描述单个仿真应用所能提供给联邦的功能。确定上述两种模型的主要工作是确定联邦中各个联邦成员订购与发布的对象类和交互类。HLA规范规定所有对象模型都应该包含在联邦成员中。 RTI (Run Time Interface)是HLA体系结构的运行支撑系统，是HLA的核心。在HLA框架中，联邦成员之间不能直接通信，必须通过RTI传递信息以实现两者之间的通信，即联邦成员必须向RTI“公布”自己所产生的数据，也必须向RTI“定购”自己所需要的数据。然后RTI根据“公布–定购”关系，对数据的发送方和接收方进行匹配，确保数据只传递给需要它的联邦成员。 联邦运行过程中，RTI根据FOM和SOM的定义传输数据。具体通过MAP文件映射将OPNET中的包映射为RTI总线能够识别的包。OPNET本身提供了与HLA的接口结点，使得OPNET仿真可以和HLA联合实现通信。 对于本例，map文件的部分代码如下： 同时需在fed文件中定义交互类，对于本例，共有两个交互类Order和Order_Reply，即： 但是基于HLA的分布式仿真也存在不足： 1) HLA结构虽然在许多方面改进了原有的体系结构(如DIS协议，ALSP等)，但分布式仿真标准由于其广泛适用性、可伸缩性及用户自定制性给数据收集与分析带来了很多新的挑战。比如基于HLA仿真数据的收集与分析、实时查询，态势显示，事后回顾，有效性分析等需求，同时需考虑到数据收集成员对网络带宽的影响，实时分析困难，软件重用性差等等，这也是仿真领域的研究热点。 2) 基于HLA的分布仿真应用中常常会有大量的数据需要通过RTI进行传输。通常在C++程序实现中，由于RTI并没有定义对象模型在编程语言中的具体的数据类型，所以联邦成员在通过RTI提供的服务更新对象类属性或发送交互参数时，由于没有统一的规范，在程序实现时容易造成混乱和大量的代码重复，特别是程序由不同的程序员实现时更容易出现这样的状况。如果传输的属性或交互参数是复杂数据类型且其数量是由程序动态决定时，如果使用C++标准容器存放，则由于标准容器有动态内存分配且隐藏实现细节而导致无法直接由RTI传递，这也使得程序员在发送数据时须经过复杂的处理来完成内存转移拷贝。 3) 分布仿真系统运行中的数据采集要以写文件的方式收集，不能通过OPNET中传统的统计量收集的方法。而写文件的方式中，目前的基于数据库、文本文件和简单二进制文件的存储方法存在空间利用率低、速度慢、难以支持复杂数据类型、读取困难等缺点。 4) 仿真的运行需要手工操作，比较繁琐。 ①推进仿真时间：t + 时间，如要将仿真推至5 s，则在HLA控制台中输入t 5即可，且 仿真时间只能向前不能向后，否则报错。 ②发送数据包：f + 数据，如f 3 4 9 2 7 0 20 8，表示隶属于子网结点3中的9号节点在4.7 s时向结点2发了一个数据包。用此命令可以方便的在调试中向各个网发送包。同时OPNET工程必须从OPNET控制台启动，不能直接从仿真软件中运行。 5) 利用OPNET软件仿真时，节点间的数据包传送存在时延和丢包，而HLA仿真中，数据包在两个工程间传送时，不存在时延和丢包，因此收集的结果欠准确。
system: [SYSTEM]

user: 4. 结束语 当网络规模增加、网络业务量提升时，利用OPNET仿真网络性能会增加系统资源消耗、降低仿真效率，严重时会导致仿真无法进行甚至自动退出。本文以话音网络性能仿真为背景，分析了大规模网络条件下利用OPNET仿真可能出现的问题，并从如何构建网络拓扑和提升网络仿真效率等两个方面对可能的解决方案进行了验证说明，给出了相应的解决过程，如可以利用EMA技术生成网络节点的方法构建规模较大且节点分布不规律的网络拓扑，可以根据实际需求择优选取混合式仿真、汇聚网络流量并简化网络模型、OPNET与其他编程软件相结合、分布式仿真等方法提高大规模网络条件下的OPNET仿真效率，相关结论具有一定的参考价值。
system: [SYSTEM]

user: 摘 要 目的：探讨医护合作健康教育在心脏介入手术中发挥的重要作用。方法选取2019年1月于我院择期进行心脏介入手术的200名患者为研究对象，将患者随机分为两组，分别为对照组和观察组，对照组采用常规健康教育，观察组进行术前、术中及术后三阶段医护合作健康教育。对两组患者的术前恐惧心理、术中配合度以及术后满意率进行对比分析。结果：观察组的术前恐惧心理明显少于对照组患者，手术配合度明显优于比对照组患者，对护理工作的满意度明显优于对照组患者(P < 0.05)。结论：医护合作健康教育在心脏介入手术中的运用能够明显提升护理效果，值得大力推广。 关键词 :医护合作，健康教育，心导管室 Copyright © 2019 by author(s) and Hans Publishers Inc. This work is licensed under the Creative Commons Attribution International License (CC BY). http://creativecommons.org/licenses/by/4.0/
system: [SYSTEM]

user: 1. 引言 心脏介入手术是一种广泛开展的心血管疾病诊断与治疗技术，无需开胸，在影像学方法的引导下，经过穿刺体表血管，借助某些器械，将导管送到病变部位，通过特定的心脏导管操作技术对心脏病进行诊断和治疗的诊治方法。它是一种有创的诊治方法，具体包括冠脉造影，冠心病的介入治疗，起搏器植入，电生理检查和射频消融等。这些手术都需要在心导管室内完成，而对于患者来说，心导管室是一个陌生又封闭的环境，心里不免有很多的担心和疑惑，因此患者希望能够得到细致周到的照顾以及良好的心理安慰。我们通过医护合作，共同对病人及家属进行全面、系统的健康教育，达到了健康教育的目标，使病人及家属满意。健康教育的目标即为增强患者对于各类健康知识的认知，并辅助其转变不够健康的生活方法，促使病症尽早获得康复 [ 1 ] 。
system: [SYSTEM]

user: 2. 资料与方法 2.1. 一般资料 选取2019年1月于我院择期进行心脏介入手术的200名患者为研究对象，采用放射号尾号奇偶数的方法将患者随机分为两组，分别为观察组和对照组，每组有100人，其中有高血压病史135例，糖尿病史124例，有吸烟史的112例。对照组患者的平均年龄72.35岁，男性患者有64名，女性患者36名，其中高血压病史70例，占比51.9%，糖尿病史60例，占比48.3%，有吸烟史的53例，占比47.3%。观察组患者的平均年龄为70.03岁，其中男性患者60名，女性患者40名，其中高血压病史65例，占比48.1%，糖尿病史64例，占比51.7%，有吸烟史的59例，占比52.7%。两组患者的年龄、性别等基本情况的比较差异无统计学意义，具有可比性。 2.2. 方法 对照组：由心导管室护士在术前给予患者常规健康指导和教育，将手术过程中的体位、手术的基本过程等常识性手术健康知识对患者进行告知。 观察组：施予医护合作健康教育三阶段模式，由医护人员共同协作开展。 2.2.1. 构建健康教育团队 一间心导管室进行介入手术配置人员：一位主任医师，一位主治医师，一位护士，一位技师。 2.2.2. 健康教育的相关内容 第一阶段(术前)：从患者进入心导管室开始，护士和技师双人共同主动热情的把患者的相关信息做好核对，并登记放射号。护士嘱咐患者家属在心导管室谈话间等候，然后协助患者安全的躺上手术床。主治医师开始为患者消毒手术部位，并简单询问患者病史，分散患者注意力。护士在与患者监测生命体征的同时也一起疏导患者，使其放松身心。遇到特别紧张的患者，护士可以用手轻拍患者的肩膀或抚摸患者的额头，让患者保持镇定，感觉到关心，缓解紧张情绪。 第二阶段(术中)：及时听取患者的主诉，由医师和护士共同用通俗易懂的语言告诉患者需配合手术的要领。与患者保持良好的沟通互动，给予精神上的支持和鼓励。若患者出现不适主诉，应及时给予处理，必要时遵医嘱用药对症处理。 第三阶段(术后)：由主任医师给患者家属简单汇报手术过程，并指导术后主要注意事项。主治医师和护士共同给病人交代术后的注意事项，及时接收患者的疑问及反馈，并给予充分的解释。为患者穿衣盖被做好保暖，并安排好轮椅或者平车护送患者出心导管室，做好患者术后的交接转运工作，如遇到重症患者则由护士和医生同时护送患者至CCU。 2.3. 判定指标 观察并记录患者对手术的焦虑情绪，手术中配合度及满意度。 2.4. 统计学分析 用Z.GraphpadPrism7.0软件对200例心脏介入手术患者的所有数据进行系统分析。数据呈现为P < 0.05，具有统计学意义。
system: [SYSTEM]

user: 3. 结果 3.1. 组间患者的术前恐惧心理对比分析 通过对照组和观察组心率、呼吸频率的比较分析，观察组的平均心率和呼吸都低于对照组。观察组患者的指标优于对照组，组间存在的差异化非常显著，表现为明显统计学意义，P < 0.05。见表1。 Table 1 Heart rate and respiratory contrast analysis of two groups of patient 组别 n 心率 呼吸 观察组 100 75.99 ± 0.833 16.99 ± 0.185 对照组 100 86.78 ± 0.877 19.07 ± 0.2422 t值 t = 8.921 t = 6.825 P值 P < 0.0001 P < 0.0001 表1. 两组患者心率，呼吸对比分析 3.2. 组间患者术中配合度比较分析 术后由主治医师对患者术中体位改变进行评估。在对照组和观察组完成对比后，观察组患者的指标优于对照组，其产生的差异化非常显著，表现为明显统计学意义，P < 0.05。见表2。 Table 2 Comparative analysis of intraoperative position changes in two groups of patient 组别 n 手术体位没改变 手术体位稍有改变 手术体位全不配合 观察组 100 93 6 1 对照组 100 63 34 3 z值 z = 5.121 P值 P < 0.0001 表2. 两组患者术中体位改变对比分析 3.3. 组间患者护理满意度评分 术后由患者对护理满意度进行评价。在对照组和观察组完成对比后，发现观察组患者的护理满意度评分高于对照组，差异化非常显著，表现为明显统计学意义，P < 0.05。见表3。 Table 3 Comparative analysis of satisfaction scores of interventional surgery between two groups of patient 组别 n 满意 一般 不满意 观察组 100 95 5 0 对照组 100 86 12 2 z值 z = 2.17 P值 P = 0.03 表3. 两组患者对介入手术满意度评分对比分析
system: [SYSTEM]

user: 4. 讨论 在介入手术过程中，由于介入材料或药品可能会对患者的血管产生强烈刺激 [ 2 ] ，给意识清醒的患者带来极大恐慌，在情绪不稳定的情况下，患者更加容易出现心率加快、血压上升、呼吸急促及血管痉挛的情况，这对于心血管介入手术操作都是不利因素。有专家表示，健康教育为护理工作的重要环节，且该方法贯穿整个护理流程 [ 3 ] 。就心脏介入手术而言，进入心导管室之前开展健康教育可使其不良情绪得以改善，使其陌生感消除，从而使患者手术顺应性显著提高 [ 4 ] 。通过医护合作的健康教育，既营造了一个充满人情味的医疗环境，又有利于增加介入手术患者的认知程度和对医生、护士的信任度。在短时间内及时地改善心态，减轻手术焦虑，从而增加了对介入手术的配合度。除此之外，通过对患者实施全方位健康教育可将术后依从性显著提高，在一定程度上对其康复起到促进作用 [ 5 ] 。 本文中开展的医护合作健康教育在心脏介入导管室健康教育体系中是一项创新，还需要在临床实践中不断地完善，结合实际内容不断进行调整和修改。 (该文已征求病人同意)
system: [SYSTEM]

user: 摘 要 宠物在人们的生活当中，已经变成了人们日常生活不可分割的一部分，越来越多的人会去饲养宠物，伴随着人们智能化的不断提升，智能家居的全面发展，也对于宠物的管理提出了更高的要求，所以对于宠物识别技术的研究也有着很高的实际意义。该文提出一种基于神经网络的实时宠物识别，技术路线，使用Opencv，Pycharm，Python，采用神经网络的宠物面部监测和分类功能。对实时采集到的宠物图片进行处理，与训练好的模型进行比对，克服了以前宠物识别效率低下，成功率低等问题。 关键词 :宠物识别，神经网络，智能家 Copyright © 2019 by author(s) and Hans Publishers Inc. This work is licensed under the Creative Commons Attribution International License (CC BY). http://creativecommons.org/licenses/by/4.0/
system: [SYSTEM]

user: 1. 引言 智能门禁系统已经被证明是智慧城市建设不可或缺的一部分，对于物体的识别技术在门禁系统中又扮演着极其重要的角色，例如：智能停车场系统中的车牌识别技术应用，火车站出入口人脸识别检测技术，并且已经在社区管理、学校考勤、科技园区等领域得到广泛的应用 [ 1 ] 。我们将其应用在对于宠物的智能管理上，提高对于宠物的管理效能。我们通过使用Opencv软件，对视频流进行截取，对截取图片当中的宠物，使用MobileNet-SSD神经网络进行对于宠物的识别，训练集采用Kaggle开源的猫狗数据集，大大提高了识别的准确率。
system: [SYSTEM]

user: 2. 宠物识别过程 2.1. 视频流截取宠物图片 对于动态视频流数据处理可以转化为静态图像帧的处理，这样就可以在不改变图像模型的情况下实现对视频流的处理工作 [ 2 ] 。这里我们用到opencv，使用Python语言开发具有高效性， 得益于其丰富的第三方库，Python能够将其他语言制作的模块快速轻松地连接在一起。本文所使用的OpenCV就是可以通过Python语言进行调用的一个第三方视觉库。Open CV于1999年由Intel创立至今经过多年的发展已经成为当今计算机视觉领域一款功能强大且通用的图像视觉处理库。使用opencv自带的videocapture()函数定义摄像头对象，本实验调用的是笔记本的内置摄像头，在while循环中，利用摄像头对象read()函数读取视频的每一帧。截取图像过程如图1所示： 图1. 截取图像过程 截取图片结果如图2所示。 2.2. MobileNet-SSD神经网络 Mobilenet主要是为了适用于移动端而提出的一种轻量级深度网络模型 [ 3 ] 。主要使用了深度可分离卷积将表捉卷积核进行分解计算，引入了两个超参数去减少计算量，这两个超参数是宽度乘数和分辨率乘数。 深度可分离卷积是将一个标准的卷积核分成深度卷积核和1*1的点卷积核，假设输入为M个通道的featuremap，卷积核大小为D k *D k ，输出通道为N，那么标准卷积核即为M*D K *D K *N。例如，输入feature map为m*n*16，想输出32通道，那么卷积核应为16*3*3*32，则可以分解为深度卷积：16*3*3得到的 图2. 截取图片结果 是16通道的特征图谱。点卷积为16*1*1*32，如果用标准卷积，则计算量为：m*n*16*3*3*32 = m*n*4608。用深度可分解卷积之后的计算量为m*n*16*3*3 + m*n*16*1*1*32 = m*n*656，一共有28层(深度卷积和点卷积单独算一层)，每层后面都跟有batchnorm层和relu层。深度可分解卷积操作示意图如下图3所示。 图3. 深度可分解卷积操作示意图 2.3. 宠物特征提取 神经网络每一层生成的新的神经节点作为新的特征输入下一层，从而能够处理较复杂的任务，但是处理图像分类的任务时，一副图像的每一个像素点都是输入层的一个特征，都需要一个独立的权重，如果使用多层的神经网络，由于权重过多，不仅训练花费时间极高，而且对内存一会产生加大的消耗 [ 4 ] 。 生物学家通过对动物大脑的研究发现动物识别物体时会从简单的线条开始逐步抽象出更高层次的物体，受此启发，计算机科学家发明了一种卷积神经网络的算法，对图像从最简单的线条开始识别，逐步识别出更复杂的目标物体 [ 5 ] 。例如要识别下图中的金毛，在眼睛鼻子首位先提取出一些曲线最为第一层的输出，第二层组合这些曲线继续提取特征，根据一条曲线和两个鼻孔提取出鼻子的特征输出到下一层，继续组合和提取特征，在最后一层组合眼睛，鼻子等特征识别出金毛。特征提取如图4所示。 卷积将相邻的像素当作一个集合进行处理，这就是卷积和非卷积神经网络的区别，卷积神经网络使用滤波器提取图像的局部特征，这更复合人们的认知，因为一副图像的局部像素的相关性更加紧密，例如上图提取鼻子的特征时，只需要整幅图像的中间的一部分像素，而其他像素都为干扰项，非卷积网络的每一层特征都会影响下一层特征的提取，于是增加了很多干扰项，降低了特征提取的准确度。 图4. 特征提取图 2.4. 训练数据集 MobileNet-SSD训练时候导入的图片大小是300 × 300 × 3，前面两个数据分别是图片呢的宽和高，第三个数据是图片的通道数，RGB，是三个维度。经过第一个卷积层得到的是150 × 150 × 32，也就是将原来的三个维度扩大成了32个维度，或者简单来说，将原来3个高扩大成了32个高 [ 6 ] 。具体看一下实现的过程。MobileNet-SSD网络结构图如图5所示： 图5. MobileNet-SSD网络结构图 这是第一个卷积层里面的参数，看主要的数据kernel size = 3，也就是使用了3 × 3的filter (滤波器) stride = 2每一个filter移动的步长是2，向右移动的时候一次移动两个像素，举例来说，filter的左上角的位置原来在从左向右数的第一个位置，移动之后，就变成了第三个位置，同理向下移动的时候也是这样的 [ 7 ] 。卷积层参数图如下图6所示： 图6. 卷积层参数图 下图7就是移动以后得到的stride = 2时候的图像，经过卷积之后再经过一个激活函数relu，经过这样一次的对图像的滤波，最后可以得到想要的高维度的数据，但这个神经网络和其他的有些不一样，这个detections得到6个高维度数据，不仅仅是对最后的高维度的数据处理，这样的好处是，使得整个网络更加准确，而且速度较快。和yolo进行比较，这个的准确度可能达不到yolo的探测水平，我在做实时行人检测的时候，yolo的识别效果会更好，但是yolo的缺点就是速度太慢，根据你项目的需要，如果是实时检测猫狗的话，必然要选择MobileNet-SSD，这个网路根据名称可以看出，是由MobileNet进化而来的。 图7. Stride = 2时候的图像
system: [SYSTEM]

user: 3. 实验结果及分析 根据现在中国的宠物饲养现状，大部分人饲养的都是猫狗类的宠物，所以训练集采用的是2013年kaggle公开的猫狗大战训练集，其中有猫类图片12，500张，有狗类图片12，500张大大满足了我们对于训练集的要求。为了防止过拟合现象的发生，我们采用了验证集的方法提高识别的准确率。验证集主要是测试当前网络采用的一些超参数是否合理，利用validation-based early stopping (提前停止训练)机制来防止过拟合。不要认为模型中有了验证集，它自己就会提早停止。测试集是在全部模型训练好之后拿来测试的，在模型的构建中不能用测试集的任何信息。而为了防止过拟合，我们需要选取一些数据验证下模型的泛化能力，因此验证集不能与训练集有重合。宠物识别结果如下图8所示： 图8. 宠物识别结果图
system: [SYSTEM]

user: 4. 结论与展望 本文介绍了一种基于卷积神经网络的宠物识别方法，通过对网络的训练来调整参数，实验验证了本文算法具有较高的识别率，为相关需求领域提供了一种简单易行的小成本宠物识别解决方案。由于实验设备与时间的限制，本文所提出的方法考虑到算法的实时性，利用MobileNet神经网络架构大大减少了识别的时间，尽管如此，识别所需的时间仍然无法与实时的要求相适应。在识别宠物的广度上也略有不足。希望在日后的学习中能够让这些问题得到解决。
system: [SYSTEM]

user: 摘 要 为实现在多楼层大面积的室内环境下获得精准定位信息，以芬兰Tampere大学的公开数据集为基础，建立基于Wi-Fi位置指纹算法模型。使用自动编码器模型和神经网络模型结合训练进行主动降维和主成分提取，进而采用分类训练构建改良后的楼层分类模型。使用改良后楼层分类模型楼层分类精确率达到92%，结果优于自动编码器模型和神经网络模型；神经网络模型结合加权KNN算法实现定位精度在4米左右，算法有效性高于传统Wi-Fi指纹室内定位算法。改良后楼层分类模型结合加权KNN算法，可作为大型室内定位最佳模型。 关键词 :室内定位，Wi-Fi指纹，KNN算法，机器学习，神经网络 Copyright © 2019 by author(s) and Hans Publishers Inc. This work is licensed under the Creative Commons Attribution International License (CC BY). http://creativecommons.org/licenses/by/4.0/
system: [SYSTEM]

user: 1. 引言 伴随着社会的进步和数据业务的快速发展，地理位置信息在人们日常生活中发挥着越来越重要的作用，因此人们对于定位与导航的需求不断增长。近年来，由于互联网和物联网技术的广泛应用，以及智能手机和其他无线设备在市场的广泛普及，各种基于位置的服务应用不断受到关注，其中高精度的定位技术是位置服务应用的核心技术。迄今为止全球定位系统(GPS)是世界上应用最多的导航和定位系统，它的使用让人们能在广阔的室外环境迅速获取可靠的、高精度的位置信息，但是当GPS信号遇到厚的障碍物时，信号会在障碍物表面反射，穿过障碍物的信号强度会大幅的衰减，所以GPS很难满足室内环境下精准定位的需求。特别对于大型室内导航需求已经成为亟待解决的问题。 当前基于Wi-Fi的定位是室内导航研究的热点 [ 1 ] [ 2 ] ，特性是不需要布设其余定位设备，使用成本低。针对基于Wi-Fi的定位算法，Bah1等 [ 3 ] 提出使用KNN算法进行精准定位，定位中使用最小二乘法找到相邻最优位置，取最优结果作为定位结果。但单独使用该算法进行大型室内精准定位有个缺陷，即取前k个位置进行位置估算，会累积增加定位误差；Brunato等 [ 4 ] 通过机器学习训练模型的方法解决室内定位，但该方法训练模型使用时间过长以及对样本数据要求较高。基于上述学者的研究思路及存在的问题，本文提出同样基于Wi-Fi信号RSS，首先对实验数据进行预处理，构建基础指纹库，然后对自动编码器和神经网络模型结合形成楼层分类模型进行训练，最后利用RSS相关性，使用加权KNN算法对单个楼层的坐标进行估计，结合楼层分类模型得到精准楼层分类的单个楼层定位。实验结果表明，使用加权KNN算法结合楼层分类模型相对于日常室内定位方法更能够获取到高精度的定位。
system: [SYSTEM]

user: 2. 数据来源 数据使用的是2017年1月至8月期间在芬兰Tampere大学 [ 5 ] 的一栋4层教学楼中采集，该楼总共部署了992个信号发射源，采集数据包括两组Wi-Fi数据。其中一组数据用于室内定位模型的训练，另一组数据用于模型的测试，总共包含了687个训练指纹和3951个测试指纹数据。因此，我们所用到的数据主要有四种： 1) 训练指纹RSS：一个697 × 992的矩阵； 2) 训练指纹坐标：一个697 × 3的矩阵(x，y，z的3D坐标)； 3) 测试指纹RSS：一个3951 × 992的矩阵； 4) 测试指纹坐标：一个3951 × 3的矩阵(x，y，z的3D坐标)。
system: [SYSTEM]

user: 3. 研究方法 3.1. 三角算法 在基于测距的定位算法中，三角算法 [ 6 ] [ 7 ] 是比较简单的算法，算法原理为：平面上有三个不共线的基站A，B，C，和一个未知终端D，并已测出三个基站到终端D的距离分别为R1，R2，R3，则以三个基站坐标为圆心，三基站到未知终端距离为半径可以画出三个相交的圆，如图1所示，未知节点坐标即为三圆相交点。 图1. 三角算法定位原理 然而，在实际测量中，往往由于测量的误差，使三个圆并不交于一点，而相交于一块区域，如图2所示。在此种情况下，便需用其他方法进行求解，如极大似然估计法，最小二乘法进行估计，或者使用三角形质心算法。 图2. 实际测量误差 本文仅讲述采用最小二乘法求近似解，并针对n个基站(n ≥ 3)，已知n个基站的坐标分别为(x 1 ，y 1 )，(x 2 ，y 2 )，...，(x n ， y n )，未知终端坐标为(X，Y)，由以下步骤求解： 1) 建立信标节点与未知节点距离方程组 { ( x 1 − x ) 2 + ( y 1 − y ) 2 = d 1 2 ⋮ ( x n − x ) 2 + ( y n − y ) 2 = d n 2 2) 上边方程组为非线性方程组，用方程组中前n − 1个方程减去第n个方程后，得到线性化的方程： A * X = b 其中： A = [ 2 ( x 1 − x n ) ⋯ 2 ( y 1 − y n ) ⋮ ⋱ ⋮ 2 ( x n − 1 − x n ) ⋯ 2 ( y n − 1 − y n ) ] ， b = [ x 1 2 − x n 2 + y 1 2 − y n 2 + d n 2 − d 1 2 ⋮ x n − 1 2 − x n 2 + y n − 1 2 − y n 2 + d n 2 − d n − 1 2 ] 3) 用最小二乘法求解上边方程得： X = ( A T A ) − 1 A T b X便是未知终端的坐标计算值。 3.2. 位置指纹算法 位置指纹法 [ 6 ] [ 8 ] 将环境的位置与特定的指纹联系起来，指纹中存储一种或多种特征，当实际定位中，通过实际获得的多个特征与指纹中的特征匹配，从而获得适配的指纹坐标从而定位，在室内定位中，用得最多的特征也就是RSSI定位。 指纹定位分为两个阶段：离线阶段和在线阶段。离线阶段将每个位置的坐标记录以及保存特征(RSSI)，最后收集完所有指纹得到指纹库。在线阶段则通过实际的特征查询指纹库获得定位，由图3所示。 图3. 位置指纹算法定位原理 然而，实际的特征中不可能刚好和指纹库中特征相同，这时就需要一定的算法得到最佳适配的指纹，常用得指纹匹配算法有近邻算法(NN)、KNN、WKNN和神经网络等，这里介绍简单的KNN算法。假设RSSI向量为r、指纹向量为ρ，位置指纹是N维的，也就是说有N个可见的信号发射源，M个网格点，这样指纹库里面有M组指纹数据，每组指纹数据有N个RSSI数据。r和ρ (ρ ∈ M)的欧氏距离定义为： D = ∑ i = 1 N | r i − ρ i | 2 在指纹库中的M个指纹向量中，通过计算指纹特征距离找到与观测向量差距最小的K (K为人为设置的参数)个指纹向量，然后将这些向量对应坐标位置的平均值作为定位点的位置。
system: [SYSTEM]

user: 4. 基于Wi-Fi指纹的室内定位算法实现 位置指纹算法中的KNN算法在机器学习中是懒散的学习方法，每次估算新的观测点坐标时都要在原有指纹数据库中找寻最邻近的指纹数据进行匹配从而估算出观测点的坐标值。小量的数据对于算法计算影响不大，但是如果遇到大范围的室内环境需要庞大的数据来支撑算法准确度，那么使用该算法就会产生较大的计算量和过高的运行时间成本，从而无法做到移动终端设备实时定位，因此本文提出了一种精准而快速的基于Wi-Fi指纹的室内定位算法。与目前常用的Wi-Fi指纹室内定位的算法比较，该研究算法具有如下特点： 1) 先进行楼层分类再进行每个楼层的具体定位，将三维的误差降低到二维误差，部分提高定位精度，大大降低了计算量。 2) 使用神经网络算法训练模型进行楼层定位，模型构成后只需要花费少量时间就可以得到分类的结果，减少了分类计算的时间，具有良好的时效性。 4.1. 楼层分类 4.1.1. 自动编码器模型 自动编码器 [ 9 ] 是深度学习的一种训练方法，它的实质其实是一种数据的压缩降维算法，其中数据的压缩和解压缩函数是数据相关的、有损的、从样本中自动学习并通过神经网络实现的一个过程。 自动编码器模型包括两个过程：编码和解码，编码主要作用是将高纬度的向量矩阵通过相互投影降低到一个低维的矩阵，但是主要的输入数据的典型特征仍然保持，只舍弃掉一些无关紧要的特征信息，相当于一个信息过滤器；解码过程是将低维的向量矩阵通过特征方程反向投影恢复到原始维度的矩阵数据，具体流程如图4所示。 图4. 自动编码器流程图 自动编码器的输入是训练指纹中每组测量值的信号强度，解码器的输出是重构的和输入保持相同维度的向量(和输入相比主成分部分的数值相同，其他的数值被置零)。HL代表隐层，括号中的数字代表层中神经元的数量。 4.1.2. 神经网络模型 神经网络 [ 10 ] 是一个利用多个隐含层和非线性激活函数构造模型，对多个输入数据进行不断加权求和迭代，从而达到单一输出的机器学习算法。该模型包含一个输入层，多个隐藏神经元层，和一个单一输出层(当神经网络做分类时输出为类别，当神经网络做回归时输出为一个预测的特征值)，模型如图5所示。 图5. 一个简单的神经网络模型 神经网络使用梯度下降等优化技术进行迭代训练，在每次训练之后，得到预测值和标准值之间的偏差，用该偏差来调整下次迭代的权重参数。每次调整权重之后训练得到的预测和标准偏差都会不断减小，重复该过程直到偏差下降到可接受的阈值以下，神经网络模型训练即完成。 4.1.3. 楼层分类模型 该发明的楼层分类模型组合了自动编码模型和神经网络分类模型，如图6所示，已经预先训练的编码器连接到分类器。 图6. 楼层分类模型构造 由于得到的每组Wi-Fi指纹数据中含有大量的无信号数据，仅含有少量有用信息(检测到Wi-Fi信号的数据)，因此该模型先将输入数据导入到编码器中进行降维和主成分提取，删除部分无用信息同时减少输入信息量，从而减少后面神经网络分类器模型训练量，然后将编码后的数据当作神经网络模型的输入进行分类训练，提高分类结果精度。 4.2. 单楼层定位 对于常见的KNN算法，根据指纹库中K个近似位置的坐标点取平均值的操作会带来一定的误差，因此该算法使用了加权KNN算法，使得每个距离更近的点能够获得更大的权重。该权重的形式与距离的倒数成正比，因此距离越小的点获得的权重越大，距离越大的点获得的权重也就相对小。计算过程如下：1) 获取经过排序的距离值，取距离最近的前K个元素组成一个向量D；2) 对于每加权系数W = 1/d， d ∈ D； 3) 根据权值估算测试指纹坐标 Y = ∑ i = 1 K X i * W i ∑ i = 1 K W i ，X为训练指纹坐标，Y为估算坐标。通过使用加权K近 邻算法得到较K近邻算法更精确的定位结果。
system: [SYSTEM]

user: 5. 实验结果 本文采用四种不同的算法对数据进行训练和预测，包括KNN算法、加权KNN算法、神经网络算法、神经网络和加权KNN的组合算法。从表1可以看出，KNN算法的楼层分类准确率在4种算法中最低，为87%，单楼层定位误差为8.09 m；加权KNN算法的准确率达到91%，单楼层定位较纯KNN算法误差要减少，为5.3 m；神经网络算法模型、神经网络和加权KNN的组合算法模型的楼层分类准确率都达到了92%，但是神经网络和加权KNN的组合算法在单楼层的定位误差最小，为4.4 m。这与刘喜梅 [ 10 ] 等研究表明的无线网络定位算法中加权KNN算法在室内定位精确度较高的结论具有相似性，可以作为一种高精度的组合算法进行应用。 Table 1 Comparisons of algorithm 算法 楼层分类准确率 单楼层定位误差(m) KNN 87% 8.09 加权KNN 91% 5.3 神经网络 92% 8.7 神经网络 + 加权KNN 92% 4.4 表1. 算法比较
system: [SYSTEM]

user: 6. 结论 本文基于传统Wi-Fi指纹室内定位算法，研究并实现了一种能够在多楼层大范围的室内环境快速定位的算法，结论如下： 1) 基于神经网络的楼层分类模型加上加权KNN算法在时效性上要优于各个传统Wi-Fi指纹室内定位算法。 2) 实验结果表明基于神经网络的楼层分类模型可以实现坐标与对应楼层的快速匹配，使用加权KNN算法对单个楼层坐标可以进行更高精度的具体定位，楼层分类准确率在四个算法中最高，达到92%，同时多次定位的实验精度在4米左右，效果较好，往后可以应用于大型室内导航。
system: [SYSTEM]

user: 摘 要 在网络安全领域中，跨站脚本攻击已经是最严重的安全问题之一。本文在深入研究跨站脚本攻击方式的基础上，提出了一种基于代理的跨站脚本防御框架。该框架部署在客户端和服务器端之间，利用算法对通信数据进行深度分析和过滤，从而对跨站脚本进行有效的防御。实验证明设计的框架不仅能对跨站脚本攻击进行有效的防御，而且可以对合法标签进行放行，为用户提供良好的访问体验。 关键词 :跨站脚本攻击，防御，Web安全 Copyright © 2019 by author(s) and Hans Publishers Inc. This work is licensed under the Creative Commons Attribution International License (CC BY). http://creativecommons.org/licenses/by/4.0/
system: [SYSTEM]

user: 1. 引言 跨站脚本攻击(Cross Site Scripting， XSS)是目前网络攻击中最流行的方法之一，它通过Web应用中的漏洞将恶意脚本注入到网页中 [ 1 ] 。针对跨站脚本攻击防御，国内外许多专家和学者都对其作了大量研究工作。 A. Guha等人 [ 2 ] 提出了一种静态方法，对JavaScript脚本的XMLHttpRequest请求建立请求图，在服务器端监视用户发送的XMLHttpRequest请求，若不符合请求图则视为攻击。该方法可以防止普通跨站脚本攻击以及跨站请求伪造攻击(Cross-Site Request Forgery， CDRF)，但是局限于分析XMLHttpRequest请求，不能防御那些不向Web程序所在服务器发送的XMLHttpRequest请求的攻击，而且此方法需要修改服务器端Web程序源代码。 Noxes [ 3 ] 通过制定一系列的规则，对用户的数据在客户端进行拦截或放行，从而对跨站脚本进行有效防御，但是随着近几年跨站脚本攻击技术的不断更新，基于编码的跨站脚本攻击已经能突破Noxes的拦截规则。 2011年中国科学计算机网络入侵防范中心王夏莉提出基于行为的跨站脚本攻击检测，通过分析JavaScript命令代码的特征行为，对于危险的HTTP请求数据包放入隔离区，将其中可疑的请求操作转发给用户，由用户自身进行判断。一般用户无法判断是否存在危险，不适合大面推广 [ 4 ] 。 Likarish [ 5 ] 使用网络爬虫工具去收集网络上的良性脚本和恶意脚本数据，提出了基于函数和代码的特征的机器学习算法。该算法通过深度的学习之后，可以对数据进行检测区分。但是，检测的准确度依靠机器学习的数据样本，对数据辨别的准确率还有待提高。 目前，对跨站脚本防御做的比较成功的是编码防御。其中，对编码技术总结的比较全面的是OWASP对跨站脚本攻击作出的一系列防御规则 [ 6 ] 。这种防御规则确保数据在前台展示的时候都经过了编码，有效预防了危险数据在HTML文件中被引用 [ 7 ] 。但是，这种规则在带来安全的同时，也限制了Web应用的部分功能，使得部分合法的标签缺少使用权限，从而降低客户端用户的体验。本着放开合法标签的目的，我们提出了一种基于代理的跨站防御方法。该方法通过对数据的深入拆分解析，准确识别出标签是否合法、数据中是否存在脚本以及数据安全。研究结果表明，该方法对于当前流行的跨站脚本攻击有良好的防御效果。