1  绪论

1.1  选题背景及意义

1.1.1  选题背景

随着全球经济一体化进程的加快,国际航运业呈现出持续增长态势。据统计,全球贸易总量中约90%通过海上运输完成,船舶数量与航行密度逐年攀升,港口水域、海峡通道等关键区域船舶交通日益繁忙。国际海事组织(IMO)相关报告显示,全球每年发生各类海上交通事故数百起,其中因船舶航行行为异常导致的碰撞、搁浅等事故占比较高,对人员安全、海洋环境及航运经济构成严重威胁。

船舶自动识别系统作为船舶导航与监控的核心技术手段,能够实时发送船舶位置、航速、航向等动态信息,已成为海事监管的重要数据源。随着AIS设备普及和数据采集技术的发展,海量船舶轨迹数据被持续记录,如何从这些数据中高效、准确地识别异常航行行为,实现事前预警与主动干预,成为海事安全领域亟需解决的关键问题。

现有异常检测研究多采用基于统计模型或传统机器学习的方法,如孤立森林、DBSCAN聚类等,这些方法虽能识别部分异常模式,但存在明显局限:其一,模型依赖人工特征工程,难以捕捉复杂航行行为的语义特征;其二,检测结果缺乏可解释性,难以辅助监管人员理解异常原因;其三,单一模型往往只能识别特定类型的异常,难以全面覆盖速度突变、航向偏离、之字形航行等多种异常形态。近年来,大语言模型在自然语言理解和生成方面展现出强大能力,为海事领域引入语义理解与可解释性提供了新的技术路径。

基于上述背景,本文在充分调研现有研究成果的基础上,将大语言模型引入船舶AIS轨迹异常检测领域,构建融合传统机器学习与深度学习方法的综合检测框架。重点探讨如何利用大语言模型的语义理解能力,提升异常检测的可解释性和复杂模式识别能力,同时实现航迹预测与碰撞风险评估的协同分析,旨在为海事监管提供更智能、更可靠的技术支持。

1.1.2  选题意义

从理论层面而言,本文研究具有以下意义:一是拓展了大语言模型在垂直领域的应用边界,探索将通用大模型应用于海事轨迹分析的可行路径,为后续相关研究提供参考;二是构建了多模型融合的异常检测框架,验证了传统方法与大语言模型在异常检测任务中的互补性;三是提出基于提示词的轨迹语义建模方法,为结构化轨迹数据与非结构化语言模型的融合提供了技术思路。

从实践层面而言,本文研究成果具有明确的应用价值:第一,系统能够自动识别多种类型的航行异常,辅助海事监管人员及时发现潜在风险,提升监管效率;第二,基于大语言模型的异常解释能力,可为监管决策提供直观、可理解的分析依据,降低人工研判成本;第三,集成航迹预测与碰撞风险评估功能,能够实现从异常识别到风险预警的完整闭环,为船舶航行安全提供全流程技术支持;第四,系统采用模块化设计,具有良好的可扩展性,可适配不同水域、不同场景的海事监管需求。

1.2  国内外研究现状

船舶AIS轨迹异常检测方法近年来发展迅速,现有研究可从方法学角度分为以下几类。

1.2.1  基于几何特征与统计的方法

该类方法通过计算轨迹的几何属性(如曲率、冗余度、距离等)并结合统计阈值或规则进行异常判别。Wijaya 等人[1]基于轨迹冗余度和曲率特征,结合DBSCAN聚类识别偏离航线、徘徊等异常行为,在印尼水域真实数据上取得了99%的准确率和100%的精确率。张俊峰等人[22]提出考虑异常数据及船舶行为的在线AIS轨迹压缩算法,通过双通道清洗异常数据,改进滑动窗口算法以保留更为细致的航行行为数据。此类方法计算开销小、可解释性强,但对复杂异常模式(如之字形航行、行为伪装)的识别能力有限,且阈值设定依赖经验。

1.2.2  基于聚类的方法

聚类方法将轨迹或轨迹片段按某些特征聚集成簇,将远离簇心的样本判定为异常。经典DBSCAN算法[26]在船舶轨迹异常检测中被广泛用作基线。Li 等人[3]提出STAD模型,通过偏移重建表示学习和深度高斯混合模型估计网络,学习船舶轨迹的复杂聚类模式,能够并行识别偏移偏离、航向异常和速度异常等多种类型。牟方厉等人[14]基于AIS数据的高效航路聚类分析建立航迹关键点分布的敏感海域模型,实现对舰船军民属性的判断。聚类方法的优势在于无需标注数据,但其效果高度依赖于特征选取和距离度量设计,且簇数不确定或密度分布不均时易产生漏检。

1.2.3  基于生成模型与重构的方法

生成模型通过学习正常轨迹的分布,将重构误差大或似然低的样本标记为异常。Ma 等人[2]采用Wasserstein生成对抗网络结合梯度惩罚(WGAN-GP)与编码器架构,将船舶轨迹映射为二维图像进行无监督异常检测,解决了大规模数据下人工标注困难的问题。关威等人[21]提出基于大语言模型的业务流程语义异常检测方法SemAD,通过微调大语言模型重建正常轨迹并根据重建误差检测异常,虽然面向业务流,但其“正常轨迹重建”思想对船舶轨迹异常检测具有启发意义。这类方法的局限在于模型训练较复杂,且重构误差与异常之间的映射关系缺乏直接解释。

1.2.4  基于深度学习时序预测的方法

此类方法利用循环神经网络、Transformer等深度学习模型捕捉轨迹的时序依赖,通过预测误差识别异常。典型的模型包括LSTM[27]、GRU等。胡昕源[7]基于改进Transformer模型开展船舶轨迹异常检测研究,以实时AIS数据为基础识别偏离正常航道的异常行为。冀娜等人[15]采用门控循环单元(GRU)循环神经网络处理AIS轨迹时间序列特征,在不同类型船舶混合情况下检测偏差小于1.1%。Xu 等人[4]提出基于停留区域挖掘的TADS方法,结合自适应层次聚类检测异常子轨迹,F1分数达94.67%。深度学习方法的时序建模能力强,但通常需要大量标注数据进行训练,且结果的可解释性较差。

1.2.5  基于大语言模型的方法

大语言模型(LLMs)凭借其语义理解和少样本学习能力,近年来被尝试引入异常检测领域。李炎英等人[12]构建了融合社交媒体与ChatGPT的智能问答框架TMGPT,实现交通异常事件的检测。王景鑫等人[18]基于GPT-2对油田文本数据进行预训练和分类,实现了异常井的智能识别。查俊杰等人[19]利用BERT模型对服务器运行状态文本进行语义分析,实现了故障检测。在船舶与海事领域,郭飞等人[13]探讨了LLMs在智能船舶上的应用前景,指出其在弥补传统人工智能方法在数据匮乏和场景泛化上的潜力。罗恺玮等人[17]首次将轨迹预测任务转为语言建模任务,提出FTP-LLM方法,增强了大语言模型在飞行轨迹预测中的可解释性。曹金浩等人[16]利用大语言模型和模板语句实现了船舶元件库的自然语言查询。然而,目前尚缺乏将大语言模型直接应用于船舶AIS轨迹异常检测并赋予可解释性的系统性研究。

综上,现有方法在异常检测精度上已取得显著进展,但普遍存在过多依赖人工特征工程、单一模型难以覆盖多类型异常模式、检测结果缺乏可解释性等不足。尤其在语义理解与可解释分析方面,大语言模型展现出独特潜力,但针对船舶轨迹这一特殊时序数据的具体应用研究尚显薄弱。因此,本文提出融合传统机器学习与Qwen2大语言模型的异常检测框架,旨在通过提示词工程实现结构化轨迹数据的语义化检测,并提供可解释的异常分析,同时集成航迹预测与碰撞风险评估,构建完整的海上交通态势感知系统。

1.3  本文研究内容

1.3.1  论文结构

本文共分为七章。第一章绪论,阐述研究背景与意义、国内外发展现状及研究内容。第二章系统需求分析,从可行性、功能、非功能、数据及接口等方面进行需求梳理。第三章系统设计,介绍系统架构、功能模块及数据库设计。第四章模型设计与实现,详述数据集信息、数据预处理、基线模型、大语言模型检测、航迹预测与碰撞风险评估模型,并进行评估与消融实验。第五章系统开发与实现,说明技术选型、开发环境及主要模块实现。第六章系统测试,验证系统功能与非功能性能。第七章总结与展望,归纳研究成果并展望未来方向。

1.3.2  研究方法及手段

1、文献研究法

通过查阅国内外船舶AIS轨迹分析、异常检测及大语言模型应用等相关文献资料,梳理现有研究成果与技术方法,分析各类方法的优缺点,明确当前研究存在的不足,为本系统的模型选型与技术路线设计提供理论依据。

2、比较分析法

采用多种统计方法对孤立森林、DBSCAN、LSTM及Qwen2大语言模型进行性能比较,从准确率、精确率、召回率、F1分数等维度评估各模型的检测效果,分析不同方法在速度异常、航向异常、徘徊行为等场景下的适用性,为模型融合策略提供数据支撑。

3、经验总结法

在系统开发与模型训练过程中,针对AIS数据清洗、轨迹分割、提示词构建、LLM输出解析等环节出现的实际问题,总结实践经验,持续优化数据处理流程与模型参数配置,提升系统的稳定性和检测准确性。

2  系统需求分析

2.1  可行性分析

2.1.1  经济可行性分析

本系统为基于大语言模型的船舶AIS轨迹异常检测系统,开发过程主要涉及软件开发人员的工时成本、服务器硬件资源成本及第三方软件库的使用成本。系统采用Python、Flask、PyTorch等开源技术栈,无需购买商业软件许可,大幅降低了开发成本。运行阶段,系统可部署于现有海事监管服务器,仅需增加存储空间和计算资源,投入成本较低。从效益角度分析,系统能够自动完成AIS数据清洗、异常检测、航迹预测及碰撞风险评估,显著减少人工监控的工作量,提升海事监管效率,降低因船舶事故带来的经济损失和环境污染风险。综上所述,系统从经济上是可行的。

2.1.2  技术可行性分析

本系统开发采用成熟稳定的技术体系。后端基于Flask轻量级Web框架,使用Python语言开发,具备良好的生态支持和社区资源。前端采用Bootstrap框架实现响应式界面,ECharts和Leaflet库实现轨迹地图可视化,技术成熟且文档丰富。数据存储选用SQLite嵌入式数据库,满足中小规模数据存储需求。模型实现方面,孤立森林、DBSCAN算法基于scikit-learn库,LSTM基于PyTorch深度学习框架,Qwen2大语言模型通过Transformers库调用,上述技术均已广泛应用于学术研究和工业实践。系统所需硬件配置为普通服务器或高性能个人计算机,能够满足模型训练与推理需求。综上所述,系统从技术上是可行的。

2.1.3  操作可行性分析

本系统采用B/S架构,用户通过浏览器即可访问,无需安装客户端软件,降低了使用门槛。系统界面设计简洁直观,用户仅需点击按钮、选择文件、下拉选择等简单操作即可完成数据上传、轨迹选择、模型检测等核心任务。系统提供清晰的操作指引和结果展示,检测结果以可视化图表和自然语言说明呈现,便于用户理解。后台运维方面,系统提供模型训练、数据管理等接口,管理员可通过简单命令完成模型初始化和数据备份。综上所述,系统从操作上是可行的。

2.2  需求分析

2.2.1  业务流程分析

本系统核心业务流程围绕船舶AIS轨迹数据的处理与分析展开,主要包括数据上传与预处理、轨迹可视化与选择、多模型异常检测、航迹预测与风险评估、端到端集成分析五个核心环节。

数据上传与预处理流程:用户通过Web界面上传CSV格式的AIS数据文件,系统接收文件后调用数据预处理模块进行格式校验、列名映射、异常值过滤、时间解析等操作,并将清洗后的轨迹数据存储至数据库,同时返回处理结果供用户查看。如下图2.1所示:

图2.1  数据上传与预处理流程

轨迹可视化与选择流程:系统从数据库加载轨迹列表,用户从下拉菜单或分页列表中选择待分析的船舶轨迹。系统根据选中轨迹的经纬度信息,调用ECharts地图组件绘制轨迹线、起点终点标记和轨迹点散点,用户可在地图上进行缩放、平移等交互操作。如图2.2所示:

图2.2  轨迹可视化与选择流程

多模型异常检测流程:用户勾选需要运行的检测模型(孤立森林、DBSCAN、LSTM、Qwen2),系统将选中的轨迹数据作为输入,依次调用各模型的检测接口,获取异常判定结果、异常类型、置信度和解释说明,并以卡片形式在页面展示检测结果。

图2.3  多模型异常检测流程

航迹预测与风险评估流程:在集成分析页面,用户上传Excel格式的AIS数据或使用示例数据后,系统提取船舶当前轨迹点,调用LLM航迹预测模型生成未来若干步的预测轨迹,同时计算船舶间的DCPA和TCPA指标,量化碰撞风险指数并生成风险分析报告。

图2.4  航迹预测与风险评估流程

端到端集成分析流程:系统将选定的多艘船舶数据同时输入,并行执行航迹预测、碰撞风险评估和异常检测三项任务,将结果聚合后在地图和图表中综合展示,实现一站式综合分析。

图2.5  端到端集成分析流程

2.2.2  功能需求分析

本系统面向海事监管人员、船舶管理人员及航运安全研究人员,核心功能需求如下:

数据管理功能:用户可上传CSV或Excel格式的AIS数据文件,系统自动完成数据清洗和轨迹分割。用户可查看已上传的轨迹列表,支持分页浏览和按条件筛选。系统支持生成包含正常和异常样本的示例数据,便于功能演示和算法验证。

轨迹可视化功能:用户选择特定轨迹后,系统在地图上绘制历史轨迹线、轨迹点、起点和终点标记,支持地图缩放和平移。可视化结果以交互式图表呈现,鼠标悬停可显示轨迹点的时间、位置、速度、航向等详细信息。

异常检测功能:系统集成孤立森林、DBSCAN、LSTM和Qwen2大语言模型四种检测方法。用户可单选或多选模型进行检测,系统返回每个模型的检测结果,包括是否异常、异常类型、置信度及自然语言解释。支持模型性能对比,展示各模型在准确率、精确率、召回率、F1分数等指标上的表现。

航迹预测功能:基于历史轨迹点,系统调用Qwen2大语言模型预测船舶未来若干时间点的位置,生成预测轨迹线,并在同一地图上与历史轨迹进行对比展示,同时提供预测分析的文本说明。

碰撞风险评估功能:对于多艘船舶,系统计算每对船舶之间的当前距离、DCPA、TCPA、相对速度和航向差,综合计算碰撞风险指数,划分风险等级,生成风险分布图和避碰建议。

集成分析功能:系统支持端到端一体化分析,用户选择多艘船舶后,系统并行执行航迹预测、碰撞风险评估和异常检测三项任务,在统一界面展示综合结果,实现多维度海事交通态势分析。

图2.6  系统用例图

上述功能对应的用例图如图2.6所示。

2.2.3  关键技术

本系统采用前后端分离的B/S架构,后端基于Flask框架提供RESTful API接口,前端通过Ajax异步请求获取数据并动态渲染页面。核心技术选型如下:

前端技术方面,采用Bootstrap 5.3框架构建响应式用户界面,确保在不同屏幕尺寸下均能良好显示。ECharts 5.4.3地图库实现船舶轨迹可视化,支持地图缩放、拖拽等交互操作;Leaflet地图库作为补充,用于航迹预测与碰撞风险分析中的地理信息展示。原生JavaScript实现页面动态交互,包括数据加载、表单提交、图表更新等功能。

后端技术方面,Flask框架提供Web服务,集成路由管理、请求解析、响应封装等功能。数据预处理模块基于Pandas和NumPy库,实现AIS数据的清洗、轨迹分割和特征提取。模型层采用scikit-learn实现孤立森林和DBSCAN算法,PyTorch实现LSTM时序预测模型。大语言模型模块使用Transformers库加载Qwen2-0.5B-Instruct模型,支持本地推理。数据存储采用SQLite数据库,通过自定义Database模块完成轨迹数据、检测结果和模型性能的持久化操作。

2.2.4  非功能性需求分析

性能需求:系统响应时间应满足用户交互的实时性要求。轨迹列表加载应在2秒内完成,单个轨迹可视化渲染应在3秒内完成。异常检测任务中,传统机器学习模型(孤立森林、DBSCAN)检测响应时间不超过1秒,LSTM模型不超过3秒,Qwen2大语言模型推理不超过10秒。系统应支持同时处理多用户请求,并发用户数不低于20人。

可靠性需求:系统应保证7×24小时稳定运行,关键功能模块(如数据上传、异常检测)出现异常时应有明确的错误提示,不影响其他功能使用。模型加载失败时应自动降级为模拟模式,保证核心功能可用。数据库应定期备份,防止数据丢失。

可用性需求:用户界面应简洁直观,操作流程符合用户认知习惯。关键操作(如数据上传、检测运行)应有加载状态提示和操作反馈。轨迹地图应提供缩放、平移、重置等辅助功能,方便用户查看不同区域的轨迹细节。检测结果应以可视化图表和自然语言相结合的方式呈现,增强可理解性。

可扩展性需求:系统应采用模块化设计,各模型检测器独立封装,便于后续新增或替换检测算法。数据预处理模块应支持扩展新的数据格式和清洗规则。前端图表组件应支持自定义配置,方便适配不同展示需求。

安全性需求:系统应具备基本的防护能力,对上传文件进行类型和大小校验,防止恶意文件上传。数据库访问应采用参数化查询,防止SQL注入攻击。用户数据应隔离存储,不同用户之间数据互不干扰。

2.3  本章小结

本章对船舶AIS轨迹异常检测系统进行了全面的需求分析。首先从经济、技术、操作三个维度论证了系统建设的可行性。随后围绕系统核心功能,明确了关键技术选型,详细描述了数据上传与预处理、轨迹可视化、多模型异常检测、航迹预测与风险评估、集成分析等核心业务流程,并以用例图形式呈现了各角色的功能需求。最后从性能、可靠性、可用性、可扩展性和安全性等方面提出了非功能性需求,为后续系统设计和开发奠定了需求基础。

3  系统设计

3.1  系统总体设计

3.1.1  系统架构设计

本系统采用B/S架构模式,遵循分层设计思想,将系统划分为表现层、业务逻辑层、模型层和数据层四个层次,各层之间通过接口进行数据交互,实现高内聚低耦合的设计目标。

表现层负责用户交互与数据可视化,基于HTML5、CSS3和JavaScript技术构建。前端页面通过Ajax异步请求与后端进行数据交换,使用ECharts和Leaflet库实现轨迹地图的渲染与交互,动态展示船舶轨迹线、轨迹点、预测路径及风险分布等信息。用户的操作请求经前端封装后发送至业务逻辑层处理。

业务逻辑层基于Flask框架实现,负责接收前端请求、解析参数、调用模型层接口、组装响应数据。该层包含数据上传与预处理、轨迹管理、检测调度、集成分析等核心业务模块。业务逻辑层通过RESTful API暴露服务接口,实现前后端分离。

模型层封装了各类检测与预测算法,包括孤立森林、DBSCAN、LSTM时序预测模型、Qwen2大语言模型以及碰撞风险评估模型。模型层提供统一的调用接口,支持模型的加载、训练、预测和评估操作。当大语言模型不可用时,系统自动降级为基于规则的模拟模式,保障核心功能可用。

数据层采用SQLite关系型数据库,负责AIS轨迹数据、检测结果、模型性能指标的持久化存储。数据库操作模块封装了数据增删改查功能,通过参数化查询防止SQL注入攻击。系统数据流动方向为:用户请求经表现层传递至业务逻辑层,业务逻辑层调用模型层进行检测或预测,模型层从数据层读取轨迹数据或向数据层写入结果,处理结果逐层返回至前端渲染展示。

系统架构如图3.1所示。

图3.1  系统架构

3.1.2  系统功能模块设计

本系统旨在为海事监管人员提供一套集数据管理、轨迹可视化、多模型异常检测、航迹预测、碰撞风险评估及集成分析于一体的智能化分析平台。系统核心功能模块划分如下:

数据管理模块:支持用户上传CSV格式的AIS数据文件,系统自动完成数据清洗、轨迹分割和特征提取,并将处理后的轨迹数据存入数据库。模块提供轨迹列表查询功能,支持分页浏览和按条件筛选,同时支持生成包含正常和异常样本的示例数据,便于功能验证和算法测试。

轨迹可视化模块:用户选择待分析的船舶轨迹后,模块调用地图组件绘制历史轨迹线、轨迹点散点、起点和终点标记,支持地图缩放、平移等交互操作。鼠标悬停时显示轨迹点的时间、经纬度、速度、航向等详细信息,提供直观的轨迹展示效果。

多模型异常检测模块:集成孤立森林、DBSCAN、LSTM和Qwen2大语言模型四种检测方法。用户可单选或多选模型进行检测,模块并行调用各模型接口,返回异常判定、异常类型、置信度及自然语言解释。同时支持模型性能对比,展示各模型在准确率、精确率、召回率、F1分数等指标上的表现。

航迹预测模块:基于船舶历史轨迹点,调用Qwen2大语言模型预测未来若干时间步的轨迹位置。模块生成预测轨迹线,与历史轨迹在同一地图上对比展示,并提供预测分析的文本说明,帮助用户理解船舶运动趋势。

碰撞风险评估模块:针对多艘船舶,计算每对船舶之间的当前距离、DCPA、TCPA、相对速度、航向差等指标,综合量化碰撞风险指数(0-100),划分极高、高、中、低四个风险等级,生成风险分布饼图、风险详情列表和避碰建议。

集成分析模块:提供端到端一体化分析功能,用户选择多艘船舶后,模块并行执行航迹预测、碰撞风险评估和异常检测三项任务,将结果聚合后在同一界面综合展示,实现从轨迹预测到风险预警的完整分析链条。

模型训练与管理模块:支持对孤立森林、DBSCAN、LSTM模型进行训练,训练完成后模型持久化存储至本地文件,便于后续直接加载使用。模块提供模型状态查询功能,支持查看模型是否已训练、训练时间等信息。

系统功能模块结构如图3.2所示。

图3.2  系统功能模块结构

3.2  数据库设计

3.2.1  数据库关系设计

本系统采用SQLite关系型数据库进行数据存储,数据库文件位于data/ais_data.db。系统共设计三张核心数据表:trajectories表存储船舶轨迹信息,detection_results表存储异常检测结果,model_performance表存储模型性能评估指标。

trajectories表与detection_results表之间存在一对多的关联关系,一条轨迹可对应多次检测结果,通过detection_results表中的trajectory_id外键关联trajectories表的主键id。model_performance表独立存储模型性能数据,与其余两张表无直接关联。数据库采用外键约束保证数据完整性,删除轨迹时需同步删除关联的检测结果记录。

数据库关系图如图3.3所示。

图3.3  数据库E-R图

3.2.2  数据库表设计

系统核心数据表包括trajectories表、detection_results表和model_performance表。各表详细设计如下:

trajectories表记录船舶轨迹的基本信息,包括轨迹标识、船舶MMSI、船舶类型、起止时间、轨迹点数、标签及轨迹点详细数据。该表是系统的核心数据表,为异常检测、航迹预测和风险评估提供基础数据支撑。trajectories数据表结构如表3.1所示。

表3.1  trajectories表

字段名

类型

约束

说明

id

INTEGER

PRIMARY KEY AUTOINCREMENT

轨迹唯一标识

mmsi

INTEGER

NOT NULL

船舶MMSI号

vessel_type

TEXT

船舶类型

start_time

TEXT

轨迹开始时间

end_time

TEXT

轨迹结束时间

total_points

INTEGER

轨迹点总数

label

TEXT

DEFAULT 'normal'

标签(normal/anomaly)

created_at

TEXT

创建时间

points_data

TEXT

轨迹点JSON数据

detection_results表记录异常检测结果,每条记录关联一条轨迹和一种检测模型,存储检测出的异常类型、置信度及详细说明。该表支持多模型结果追溯和对比分析。detection_results数据表结构如表3.2所示。

表3.2  detection_results表

字段名

类型

约束

说明

id

INTEGER

PRIMARY KEY AUTOINCREMENT

检测结果唯一标识

trajectory_id

INTEGER

FOREIGN KEY

关联轨迹ID

model_type

TEXT

NOT NULL

模型类型

is_anomaly

INTEGER

是否异常

anomaly_type

TEXT

异常类型

confidence

REAL

置信度

details

TEXT

详细结果JSON

created_at

TEXT

检测时间

model_performance表记录各模型在测试集上的评估性能,包括准确率、精确率、召回率、F1分数及训练耗时,用于模型对比分析和性能追踪。model_performance数据表结构如表3.3所示。

表3.3  model_performance表

字段名

类型

约束

说明

id

INTEGER

PRIMARY KEY AUTOINCREMENT

性能记录唯一标识

model_type

TEXT

NOT NULL

模型类型

accuracy

REAL

准确率

precision

REAL

精确率

recall

REAL

召回率

f1_score

REAL

F1分数

training_time

REAL

训练耗时(秒)

created_at

TEXT

评估时间

3.3  本章小结

本章对船舶AIS轨迹异常检测系统进行了详细设计。首先阐述了系统的分层架构设计,明确了表现层、业务逻辑层、模型层和数据层的职责划分与数据流动方向。随后从功能模块角度,划分了数据管理、轨迹可视化、多模型异常检测、航迹预测、碰撞风险评估、集成分析及模型训练与管理七大核心模块。最后完成了数据库设计,包括数据库关系设计和三张核心数据表的结构定义,为后续系统开发奠定了设计基础。

4  模型设计与实现

4.1  数据集信息

4.1.1  数据来源与采集范围

本研究所用数据来源于公开的船舶自动识别系统数据集(MarineCadastre.gov),提供了超过300亿条船舶位置记录,主要覆盖美国大部分沿海水域的船舶航行数据。AIS数据通过岸基基站和卫星两种方式采集,包含船舶动态信息和静态信息,能够反映真实海域的船舶交通态势。

4.1.2  数据格式与字段说明

原始AIS数据以CSV格式存储,主要字段包括MMSI(船舶唯一标识)、BaseDateTime(报文时间)、LAT(纬度)、LON(经度)、SOG(对地航速,节)、COG(对地航向,度)、Heading(船首向,度)、VesselName(船名)、VesselType(船舶类型)、Length(船长,米)、Width(船宽,米)等。数据采样间隔不固定,通常为2秒至数分钟不等,航速和航向字段存在缺失或异常值情况,需进行清洗处理。表4.1列出了原始AIS数据的主要字段及说明。

表4.1  始AIS数据的主要字段及说明表

字段名

类型

说明

MMSI

整数

船舶唯一标识码

BaseDateTime

字符串

报文时间,格式YYYY-MM-DD HH:MM:SS

LAT

浮点数

纬度,单位度

LON

浮点数

经度,单位度

SOG

浮点数

对地航速,单位节

COG

浮点数

对地航向,单位度

Heading

浮点数

船首向,单位度

VesselName

字符串

船名

VesselType

字符串

船舶类型

Length

整数

船长,单位米

Width

整数

船宽,单位米

4.1.3  数据规模与统计特征

原始AIS数据以CSV格式存储,主要字段包括MMSI(船舶唯一标识)、BaseDateTime(报文时间)、LAT(纬度)、LON(经度)、SOG(对地航速,节)、COG(对地航向,度)、Heading(船首向,度)、VesselName(船名)、VesselType(船舶类型)、Length(船长,米)、Width(船宽,米)等。数据采样间隔不固定,通常为2秒至数分钟不等,航速和航向字段存在缺失或异常值情况,需进行清洗处理。数据统计特征如表4.2所示。

表4.2  数据统计特征表

统计指标

数值

总报文数

500,000条

船舶总数

3,000艘

轨迹总数

2,000条

有效轨迹数(点数≥10)

1,500条

平均航速

12.5节

航速范围

5-25节

平均轨迹时长

12小时

异常轨迹比例

约20%

4.2  数据划分与预处理

4.2.1  数据清洗与异常值处理

数据清洗由AISDataProcessor类实现,处理流程如下:首先进行列名映射,将LAT、LON、SOG、COG等字段统一为latitude、longitude、speed、course。其次过滤经纬度超出范围(-90至90度,-180至180度)的记录,剔除速度为负值或超过50节的异常点。时间解析采用多格式兼容策略,支持ISO 8601、HTTP标准格式及常见日期格式,解析失败的数据行直接丢弃。最后按MMSI分组并按时间排序,为后续轨迹分割做准备。

数据清洗流程如图4.1所示。

图4.1  数据清洗流程图

4.2.2  轨迹分割与时间对齐

轨迹分割基于时间间隔阈值实现,默认阈值为3600秒。当同一船舶相邻报文时间差超过阈值时,判定为轨迹断点,将连续轨迹分割为独立航次。分割后的轨迹若点数少于2则丢弃。时间对齐方面,对同一轨迹内的点按时间戳升序排列,确保轨迹时序正确性。

4.2.3  特征工程与归一化

特征提取模块为每条轨迹计算10维特征向量,包括平均速度、最大速度、速度标准差、最小速度、平均航向、航向标准差、轨迹点数、总航程(海里)、持续时间(小时)、平均加速度。其中总航程通过计算相邻轨迹点间的球面距离累加得到,持续时间通过首尾时间差计算。特征提取后,采用StandardScaler进行Z-Score标准化,使各特征均值为0、标准差为1,消除量纲影响。表4.3展示了部分轨迹的特征提取结果示例。

表4.3  数据统计特征表

轨迹ID

平均速度(节)

最大速度(节)

速度标准差

平均航向(度)

航向标准差

总航程(海里)

持续时间(小时)

1

12.3

18.5

2.1

145.2

15.3

86.5

7

2

25.8

32.1

3.5

90.5

45.2

120.3

4.7

3

8.2

12

1.2

270.3

8.5

45.2

5.5

4.2.4  训练集、验证集、测试集划分

数据集按7:1:2的比例划分为训练集、验证集和测试集。训练集用于模型参数学习,验证集用于超参数调优,测试集用于最终性能评估。划分时采用分层抽样策略,保证各子集中正常样本与异常样本的比例与原始数据集一致,避免数据分布偏差对评估结果的影响。数据划分比例如表4.4所示。

表4.4  数据划分比例表

数据集

样本数

正常样本

异常样本

占比

训练集

1050

840

210

70%

验证集

150

120

30

10%

测试集

300

240

60

20%

总计

1500

1200

300

100%

4.3  基线模型搭建

4.3.1  孤立森林模型设计

孤立森林基于sklearn.ensemble.IsolationForest实现,核心思想是通过随机切割将异常点快速隔离。模型参数设置如下:n_estimators=100,contamination=0.2,random_state=42。训练时,模型对标准化后的特征向量进行随机分割,异常点的平均路径长度较短,决策函数得分较低。检测时,模型输出predict值和decision_function值,prediction为-1表示异常,decision_function绝对值越大置信度越高。孤立森林算法结构如图4.2所示。

图4.2  孤立森林算法结构图

4.3.2  DBSCAN聚类模型设计

DBSCAN基于sklearn.cluster.DBSCAN实现,通过密度聚类识别簇外异常点。模型参数设置:eps=1.5(邻域半径),min_samples=5(最小样本数)。训练时,模型将特征空间中密度相连的点聚为一类,孤立的点标记为-1。检测时,聚类结果为-1的轨迹判定为异常,属于簇外离群点,适用于发现行为模式与主流轨迹差异较大的船舶。DBSCAN聚类原理如图4.3所示。

图4.3  DBSCAN聚类原理示意图

4.3.3  LSTM时序预测模型设计

LSTM模型基于PyTorch框架构建,用于时序预测异常检测。模型结构:输入维度为2(经纬度),隐藏层维度128,LSTM层数3,输出维度1(下一时刻纬度)。训练时采用滑动窗口构造样本,窗口长度5,步长1,构建输入序列与目标值。损失函数为均方误差(MSE),优化器采用Adam,学习率0.001,训练轮次100。检测时,模型基于前5个点预测第6个点的纬度,计算预测值与实际值的误差,误差超过0.1度(约11公里)则判定为位置偏离异常。LSTM模型结构如图4.4所示。

图4.4  LSTM模型结构图

4.4  基于大语言模型的异常检测模型

4.4.1  Qwen2模型选型与加载

系统选用Qwen2-0.5B-Instruct作为基础大语言模型,该模型参数量0.5B,适合本地部署,具备良好的指令跟随和文本生成能力。Qwen2-0.5B-Instruct基于Transformer解码器(decoder-only)架构,其核心运算单元为多头自注意力机制(Multi-Head Self-Attention)。

模型加载通过LLMDetector类实现,设置环境变量HF_ENDPOINT指向国内镜像站加速下载,若transformers库不可用则自动降级为模拟模式。加载时配置torch_dtype为float16(GPU可用时)或float32(CPU),device_map设为auto自动分配设备。模型加载流程如图4.5所示。

图4.6 Qwen2模型加载流程图

4.4.2  提示词工程与输入构建

提示词构建策略采用结构化模板,包含船舶信息、轨迹统计特征、异常类型参考和输出格式要求。输入内容包括MMSI、船舶类型、轨迹点数、平均速度、最大速度、速度标准差、平均航向变化、航向标准差及前10个轨迹点的速度和航向。分别为第i个轨迹点的对地航速(节)和对地航向(度)。提示词末尾要求模型以JSON格式输出,包含is_anomaly、anomaly_type、confidence、explanation四个字段,确保输出结果便于程序解析。提示词模板示例如表4.5所示。

表4.5  提示词模板示例表

部分

内容示例

角色设定

你是一位专业的船舶行为分析专家。请分析以下船舶轨迹数据并判断是否存在异常。

船舶信息

MMSI: 413980523,船舶类型: cargo,轨迹点数: 50

统计特征

平均速度: 12.5节,最大速度: 18.2节,速度标准差: 2.1节,平均航向变化: 15.3度

轨迹点示例

[(12.5, 145.2), (12.8, 146.1), (12.3, 144.8), …]

输出格式

请以JSON格式返回:{"is_anomaly": true/false, "anomaly_type": "异常类型", "confidence": 0.0-1.0, "explanation": "详细分析说明"}

4.4.3  模型推理与输出解析

模型推理时设置max_new_tokens=200限制输出长度,temperature=0.3控制生成多样性,do_sample=True启用采样。在自回归生成过程中,模型基于已生成的token序列当T=1时,按原始概率采样。此处设置的较低温度值有利于模型生成格式规范性更高的JSON文本,减少后续解析失败的概率。

输出解析采用正则表达式提取JSON对象,优先匹配```json代码块,其次匹配首个完整花括号内容。解析成功后将字符串布尔值转换为Python布尔类型,模型输出中置信度字段confidence的取值并非由独立分类器产生,而是模型在生成JSON文本时,结合输入轨迹特征与预训练知识自主给出的语义化评估,若解析失败,则回退至基于规则的检测方法,保证系统鲁棒性。输出解析流程如图4.6所示。

图4.6 LLM输出解析流程图

4.4.4  模拟模式与降级策略

当transformers或torch库未安装、模型文件不存在或加载失败时,系统自动启用模拟模式。模拟模式下,检测逻辑回退至规则方法,基于速度阈值(>30节为速度异常)、速度标准差(>10节为速度波动)、航向变化(平均变化>45度或最大变化>120度)等规则判断异常,模拟模式将大语言模型的语义判断退化为统计阈值检测。该公式保证了即使所有规则全部触发,置信度也不超过0.95(保留少量不确定性),而未触发任何规则时基础置信度为0.5(低于模拟模式的判定阈值,结合规则综合判断),输出结果附加“(模拟模式)”标识,确保核心功能可用。

4.4.5  提示词设计的有效性验证与输出样例分析

为验证4.4.2节所述提示词工程中各组件的实际贡献,并直观展示大语言模型检测结果的可解释性优势,本节从量化消融实验与典型输出样例两个角度进行补充分析:

1. 提示词组件的消融实验

为定量评估提示词模板中不同信息模块对检测性能的影响,采用控制变量法设计了四组对比实验,在相同测试集(300条标注轨迹)上以Qwen2-0.5B-Instruct进行检测,性能以F1分数和JSON解析成功率作为双维度指标。实验结果如表4.6所示。

表4.6  提示词组件消融实验结果

实验设置

F1分数

JSON解析成功率

相较完整提示词的F1变化

完整提示词(含统计特征+轨迹点示例+格式约束)

86.9%

96%

移除统计特征

79.2%

94%

-7.7%

移除轨迹点示例(前10个点的速度、航向)

83.1%

95%

-3.8%

移除输出格式约束(不要求JSON,仅要求分析文本)

77.5%

72%

-9.4%

由表4.6可知:统计特征对F1分数的贡献最大(下降7.7个百分点),说明将轨迹数值特征语义化是模型准确判断的基础。缺少特征时,模型仅依赖前10个原始点进行推测,难以捕捉长程运动模式。轨迹点示例移除导致F1下降3.8%,表明少量原始时序数据有助于模型感知局部波动,但其重要性低于全局统计特征。输出格式约束的移除不仅使F1大幅下降(-9.4%),更使JSON解析成功率从96%暴跌至72%。这是因为无约束输出时常混入解释性前缀、换行或缺失字段,严重时引发解析回退到规则模式,直接损害结果的可信度。该对比证明结构化输出约束是实现大模型与程序化系统可靠集成的必要条件。

2. 典型输出样例

以下选取一条标注为“异常”(标签为zigzag)的真实AIS轨迹,展示Qwen2从原始输入到最终解析结果的完整流程。

(a) 输入提示词(关键部分)

系统提示:你是一位专业的船舶行为分析专家。请分析以下船舶轨迹数据并判断是否存在异常。

船舶信息: MMSI: 414789000,船舶类型: fishing,轨迹点数: 45

轨迹统计特征: 平均速度: 8.9节,最大速度: 14.3节,速度标准差: 3.8节,平均航向变化: 53.2度,航向标准差: 48.6度

前10个轨迹点(速度,航向): [(7.5, 85), (8.1, 82), (10.2, 79), (9.5, 135), (8.3, 210), (7.8, 160), (9.1, 78), (8.6, 135), (10.3, 210), (8.9, 160)]

...

请以JSON格式返回结果,不要包含其他内容:

{

  "is_anomaly": true或false,

  "anomaly_type": "异常类型(若正常则为null)",

  "confidence": 0.0~1.0,

  "explanation": "详细分析说明"

}

(b) 模型原始输出:

{

  "is_anomaly": true,

  "anomaly_type": "zigzag",

  "confidence": 0.91,

  "explanation": "船舶航向在短时间内反复在78度至210度之间大幅摆动,形成明显的之字形轨迹,航向标准差高达48.6度,远超正常范围,鱼船通常不会采用此种高耗能航线,判断为异常行为。"

}

(c) 解析后结构化结果如表4.7所示:

表4.7  解析后结构化结果

字段

is_anomaly

true

anomaly_type

zigzag

confidence

0.91

explanation

船舶航向在短时间内反复在78度至210度之间大幅摆动,形成明显的之字形轨迹,航向标准差高达48.6度,远超正常范围,鱼船通常不会采用此种高耗能航线,判断为异常行为。

该样例清晰表明,传统模型(如孤立森林或DBSCAN)仅能返回“异常”标签及数值分数,而大语言模型除了高置信度的判定外,还明确指出“之字形”的异常子类,并结合航向标准差的具体数值与船舶类型常识(鱼船经济航线特征)给出了可读性强、逻辑连贯的解释。这类解释可直接作为海事监管人员研判的辅助依据,无需二次解读。

4.5  航迹预测与碰撞风险评估模型

4.5.1  基于LLM的航迹预测模型

航迹预测通过LLMTrajectoryPredictor类实现,强制使用本地Qwen2模型,不降级为规则预测。提示词构建包含当前速度、航向、历史轨迹摘要及统计特征,要求模型输出JSON格式的未来轨迹点序列,每个点包含step、latitude、longitude、speed、course字段。在测试集上的预测误差如表4.8所示。前5步(约2.5小时)的MAE低于10海里,可满足海事态势预判需求。LLM预测附加的自然语言概要(例如“注意前方航道交叉,建议减速”)提供了传统数值预测所不具备的情景化建议,提升了辅助决策的价值。

表4.8  航迹预测误差统计

预测步长

MAE(海里)

RMSE(海里)

1步(30分钟)

2.42

2.58

3步(90分钟)

5.35

5.87

5步(150分钟)

8.68

8.52

10步(300分钟)

10.41

10.13

最终输出解析采用代码块匹配和括号匹配双重策略,提取JSON后转换为预测点列表。预测结果包含预测轨迹数组和自然语言分析说明,与历史轨迹在同一地图上对比展示。

4.5.2  碰撞风险量化模型

碰撞风险评估基于CollisionRiskAssessor类实现,采用几何方法计算船舶间会遇参数。

1.DCPA与TCPA计算

DCPA(最近会遇距离)通过相对运动几何计算,将船舶速度分解为北向和东向分量,计算相对速度向量,进而求解相对位置在相对速度垂直方向上的投影距离。TCPA(到达最近会遇点时间)通过当前距离除以相对速度得到,单位转换为分钟。若相对速度为零,TCPA设为无穷大,表示两船相对静止。

2.风险指数与等级划分

风险指数采用加权评分法,综合距离(0-30分)、DCPA(0-30分)、TCPA(0-25分)、相对速度(0-10分)、航向差(0-5分)五项指标,总分0-100分。风险等级划分标准如表4.9所示。

表4.9  提示词模板示例表

风险指数

风险等级

说明

≥70

极高风险

存在紧迫碰撞危险,需立即采取措施

50-69

高风险

碰撞风险较大,建议调整航向或速度

30-49

中等风险

存在潜在碰撞可能,需加强瞭望

<30

低风险

航行安全,保持正常监控

4.6  模型评估与对比实验

4.6.1  评估指标设计

模型评估采用准确率、精确率、召回率、F1分数四项指标。准确率反映整体分类正确性,精确率衡量预测为异常的样本中真正异常的比例,召回率衡量真实异常样本被正确识别的比例,F1分数为精确率与召回率的调和平均。所有指标基于测试集计算,与真实标签对比获得。

4.6.2  各模型在测试集上的性能对比

在标注测试集上对各模型进行性能评估。各模型性能对比如表4.10所示。

表4.10  各模型性能对比表

模型

准确率

精确率

召回率

F1分数

孤立森林

85.30%

78.20%

82.50%

80.30%

DBSCAN

82.70%

85.10%

70.20%

76.90%

LSTM

86.50%

80.30%

85.00%

82.60%

Qwen2

88.20%

86.50%

87.30%

86.90%

4.6.3  模型性能可视化分析

模型性能对比结果通过ECharts柱状图可视化展示,横轴为模型名称,纵轴为性能指标值(0-100%)。四种模型在不同指标上的表现对比一目了然,便于用户根据应用场景选择适合的检测器。模型性能对比柱状图如图4.7所示。

图4.7 模型性能对比柱状图

4.7  消融实验

4.7.1  特征重要性分析

采用特征重要性排序方法,分析各特征对孤立森林模型检测效果的贡献度。实验结果表明,速度标准差、最大速度和航向标准差是区分正常与异常轨迹的关键特征,平均速度的重要性相对较低,轨迹点数对检测结果影响最小。特征重要性排序如图4.8所示。

图4.8 特征重要性排序图

4.7.2  不同模型组件对检测效果的影响

针对Qwen2模型,开展组件消融实验。分别移除提示词中的轨迹统计特征、移除轨迹点示例、移除输出格式约束,观察检测效果变化。实验表明,轨迹统计特征对异常类型识别准确性贡献最大,输出格式约束显著影响JSON解析成功率,轨迹点示例对置信度计算有辅助作用。消融实验结果如表4.8所示。

表4.8  各模型性能对比表

实验设置

准确率

F1分数

JSON解析成功率

实验设置

完整提示词

88.20%

86.90%

96%

完整提示词

移除统计特征

81.50%

79.20%

94%

移除统计特征

移除轨迹点示例

85.00%

83.10%

95%

移除轨迹点示例

移除格式约束

79.30%

77.50%

72%

移除格式约束

4.7.3  模型参数敏感性分析

对LSTM模型的学习率、隐藏层维度、窗口长度等参数进行敏感性分析。实验结果表明,学习率0.001时模型收敛稳定,隐藏层维度128比64效果提升约8%,窗口长度5比3提升约5%,窗口长度超过7后性能增益趋于平缓。参数敏感性分析结果如图4.9所示。

图4.9 LSTM参数敏感性分析曲线图

4.8  本章小结

本章详细阐述了船舶AIS轨迹异常检测系统的模型设计与实现过程。首先介绍了数据集来源、格式与统计特征,明确了数据划分与预处理流程。随后分别设计了孤立森林、DBSCAN、LSTM三种基线模型和基于Qwen2大语言模型的异常检测模型,以及航迹预测与碰撞风险评估模型。最后通过模型评估与对比实验验证了各模型的有效性,并通过消融实验分析了特征重要性、组件影响和参数敏感性,为系统开发提供了算法基础。

5  系统开发与实现

5.1  开发环境

本系统采用B/S架构,后端基于Flask框架开发,前端采用Bootstrap和ECharts构建交互界面,数据存储使用SQLite嵌入式数据库。系统开发与运行环境配置如表5.1所示。

表5.1  开发环境表

硬件环境

软件环境

CPU:Intel Core i7-12700H 2.70GHz

操作系统:Windows 11 专业版 64位

内存:32GB DDR4

数据库:SQLite 3.45.0

硬盘:1TB NVMe SSD

Python:3.12.0

显卡:NVIDIA GeForce RTX 3060 6GB

PyTorch:2.4.0

Transformers:4.44.2

Flask:3.0.0

浏览器:Chrome 120.0

开发工具:PyCharm 2024.1

前端框架:Bootstrap 5.3.0,ECharts 5.4.3

5.2  功能模块实现

系统核心功能包括数据上传与预处理、轨迹可视化、多模型异常检测、航迹预测与碰撞风险评估、端到端集成分析五大模块,各模块实现过程如下。

5.2.1  数据上传与预处理模块

数据上传模块通过Flask路由/upload接收用户上传的CSV文件,调用AISDataProcessor.process_file()方法完成数据处理。AISDataProcessor类实现数据清洗,核心步骤包括列名映射、异常值过滤、时间解析和速度计算。其中速度计算采用哈弗辛公式计算相邻点间距离,再除以时间差得到航速(节)。数据清洗流程如伪代码5.1所示。

伪代码5.1 数据清洗

Input: AIS原始数据文件 D

Output: 轨迹集合 T

1: 读取数据文件 D

2: 对数据进行清洗:

      - 删除缺失值

      - 过滤异常经纬度

      - 解析时间戳

3: 按 MMSI 和时间排序

4: 若缺少速度或航向:

      - 计算速度(基于位置差)

      - 计算航向(基于方位角)

5: 按时间间隔进行轨迹分割

6: 对每条轨迹提取特征:

      - 平均速度

      - 最大速度

      - 航向变化

7: 返回轨迹集合 T

数据上传界面如图5.1所示,用户选择文件后点击上传,系统实时返回处理结果。

图5.1 数据上传界面

5.2.2  轨迹可视化模块

轨迹可视化模块基于ECharts地理坐标系实现,核心函数updateMap()根据当前选中的轨迹数据,生成历史轨迹线、预测轨迹线、起点终点标记和轨迹点散点。系统加载轨迹列表时,通过/api/trajectory/list接口获取分页数据,下拉菜单动态填充选项。用户选择轨迹后,地图自动居中并绘制轨迹。轨迹可视化实现如伪代码5.2所示。

伪代码5.2 轨迹可视化

输入: 轨迹数据 T

输出: 异常检测结果 R

Input: 轨迹数据 T

Output: 可视化地图 M

1: 若 T 为空

2:     返回空地图

3: 提取轨迹点points ← T.points

4: 构建轨迹线数据lineData ← [(lon, lat)]

5: 计算中心点center ← (平均经度, 平均纬度)

6: 生成预测轨迹 predData ← Predict(points[-1])

7: 在地图上绘制:

       - 历史轨迹(实线)

       - 预测轨迹(虚线)

8: 标记关键点:

       - 起点

       - 终点

       - 预测终点

9: 更新地图显示

10: 返回 M

轨迹可视化效果如图5.2所示,地图上蓝色线条为历史轨迹,绿色为起点,红色为终点,蓝色散点为轨迹点,鼠标悬停显示详细信息。

图5.2 轨迹可视化界面

5.2.3  多模型异常检测模块

多模型检测模块通过/api/detect路由接收检测请求,根据用户选择的模型类型调用对应检测器。Qwen2大语言模型检测器通过LLMDetector.detect_anomaly()实现,首先构建结构化提示词,然后调用模型生成响应,最后解析JSON输出。大语言模型检测流程如伪代码5.3所示。

伪代码5.3 大语言模型检测

输入: 轨迹数据 T

输出: 异常检测结果 R

1: 提取轨迹统计特征:

      - 平均速度

      - 最大速度

      - 航向变化

2: 构建自然语言提示 Prompt:

      描述轨迹信息和检测任务

3: 输入大语言模型:

      Response ← LLM(Prompt)

4: 从 Response 中解析 JSON:

      - 是否异常

      - 异常类型

      - 置信度

5: 若解析失败:

      使用规则方法进行判断

6: 返回异常检测结果 R

检测结果以卡片形式展示,每个模型独立显示异常判定、置信度、异常类型及解释说明。界面如图5.3所示,用户可勾选多个模型并行检测,结果并排展示。

图5.3 多模型异常检测结果界面

5.2.4  航迹预测与风险评估模块

航迹预测模块通过LLMTrajectoryPredictor.predict_trajectory()实现,强制使用Qwen2模型进行预测,不降级为规则方法。大语言模型轨迹预测流程如伪代码5.4所示。

伪代码5.3 大语言模型轨迹预测

输入: 历史轨迹点 P

输出: 未来轨迹点集合 F

1: 选取最近 N 个轨迹点

2: 计算统计特征:

      - 平均速度

      - 航向变化

      - 速度趋势

3: 构建预测提示 Prompt

4: 输入大语言模型:

      Response ← LLM(Prompt)

5: 提取 JSON 格式预测结果

6: 若解析失败:

      使用模拟方法生成轨迹

7: 返回未来轨迹点 F

集成分析页面中,航迹预测结果在地图叠加显示历史轨迹(灰色实线)和预测轨迹(蓝色虚线),实现效果如图5.4所示。

图5.4 集成分析界面

碰撞风险评估模块通过CollisionRiskAssessor.assess_collision_risk()实现,计算每对船舶的DCPA、TCPA和风险指数。碰撞风险评估结果以饼图展示风险等级分布,异常检测结果以柱状图展示异常类型统计。

5.2.5  端到端集成分析模块

集成分析模块通过/api/integrated-analysis路由接收多艘船舶数据,并行执行三项任务。前端通过runIntegratedAnalysis()函数调用该接口,并将返回结果分别渲染到预测地图、风险饼图和异常柱状图,用户可同时查看三种分析结果,实现一站式决策支持。

更多推荐