与道路交通不同的是,航空器在地面运行时难以通过高架、隧道等方式将航班滑行路径分离,由于飞机起降架次的增多,加上恶劣天气的影响,跑道侵入事件已成为民航领域航空器地面安全运行的头等问题,跑道安全事故在民用航空事故中占有很大比例,因此对与在机场跑道和滑行道上运行的航空器、车辆等目标的身份、位置及其动态的掌控程度,很大程度上决定了跑道运行安全的系数。
机场地面运行的航空器和其他载具一般都经由塔台进行统一调度管理,塔台的核心职责是确保航班“安全、有序、高效”运行,塔台管制人员通过“看到-了解-判断-行动”这一决策过程对数量众多的航空器和地面载具进行统一指挥,而“看到”和“了解”这两个过程往往会对管制决策起到决定性作用。
随着机场规模增加,平面布局变得日益复杂化,对于大型机场的塔台而言,单点视野物理受限,以及数字化程度提升的同时,客观上造成屏幕变多、信息量变大,“看到”和“了解”形成了较大的挑战,人的主观能动性很强,但往往难以面面俱到。
基于上述背景,我们设计了跑道侵入防护系统,用于加强跑道侵入事件的防范。“光电盯防子系统”是该系统的重要实时核心,该子系统具备较完整的“基于视频流的航空器目标识别和跟踪”能力,主要工作是将机场平面各个关键点采集到的实时视频流送入基于华为云ModelArts框架的“航空器识别模型”进行处理,识别出画面中飞行器对象的像素坐标等一次参数后,对其进行空间位置换算,以及包括速度、运行方向等在内的二次参数的计算,并在系统运行数据中找到相匹配的航班信息对目标进行信息标记,以AR信息增强的形式呈现在监视器上,让管制员以“抬头显示”的形式在单一屏幕中直观了解到足够全面的动态信息。同时该系统会在后台对所有目标的轨迹和矢量动态数据进行监控和推算,让计算机能够代替或辅助管制人员在全局范围对每一个航班、每一个道口进行实时盯防,提前预知潜在运行风险,从而降低事故发生的概率。
本项目即为该系统的“航空器识别模型”子系统。基于YoloV3和ResNet18模型,能够实现较为准确的目标识别和坐标输出,依托ModelArts训练作业,可以实现的”航空器识别模型“服务,实现从“看到”到“了解”的关键一步。
使用华为云端云协同AI应用开发平台HiLens,将ModelArts训练好的模型下发到端侧设备HiLens Kit上,实现端侧实时检测。
本项目基于柚数据提供“ModelArts-Lab挖宝行动”项目,项目地址:youzidata-机坪跑道航空器识别。
首先请完成前置工作。
步骤1在对象存储服务OBS中完成;
步骤2/3在ModelArts中完成;
步骤4/5/6在HiLens中完成。
首先使用对象存储服务OBS,将数据集上传到OBS桶中。
数据集包括停机坪图像及标签文件,数据集要求见此处。
图像文件示例:
点击此链接,进入ModelArts数据集。
点击页面上的“创建数据集”按钮, 创建数据集页面填写示例如下:
-
数据集名称:自定义
-
数据集输入位置:训练数据所在的OBS路径
-
数据集输出位置:标注数据的输出OBS路径。需要在OBS中创建这个路径,可以使用OBS Browser+创建。
-
标注场景:物体
-
标注类型:物体检测
填写完毕上述字段后,点击创建按钮。
训练集中已经包含了标注文件,ModelArts数据集会自动加载标注文件。
创建成功后,点击“发布”按钮,发布数据集。
接下来将通过ModelArts训练作业训练AI模型,使用ModelArts的yolov3_resnet18
预置算法训练一个飞机检测模型。
进入ModelArts管理控制台,进入ModelArts“训练作业”页面。
单击“创建”按钮,进入“创建训练作业”页面。
在“创建训练作业”页面,按照如下指导填写训练作业相关参数。
“计费模式”和“版本”为系统自动生成,不需修改。
算法来源:单击“选择”,从“预置算法”列表中,选择“yolov3_resnet18”算法。
-
数据来源:数据集
-
选择数据集和选择版本:选择刚刚创建的数据集和版本。
-
训练输出位置:选择一个空的OBS路径,用来存储训练输出的模型。
-
运行参数:列表中会自动加载参数。
-
作业日志路径:可以选择一个空的OBS路径,用来存储作业训练日志。
完成信息填写,单击“下一步”。
在“规格确认”页面,确认填写信息无误后,单击“立即创建”。
在“训练作业”管理页面,可以查看新建训练作业的状态。
当状态变更为“运行成功”时,表示训练作业运行完成。
您可以单击训练作业的名称,可进入此作业详情页面,了解训练作业的“配置信息”、“日志”、“资源占用情况”和“评估结果”等信息。
进入ModelArts管理控制台,在左侧导航栏中选择“ 模型管理”> “压缩/转换”,进入模型转换列表页面。
单击左上角的“创建任务”,进入任务创建任务页面。
在“创建任务”页面,填写相关信息。
- 名称:输入“convert-plane”。
- 描述:自行填写。
- 转换模板:选择“TensorFlow frozen graph 转 Ascend”。就是将TensorFlow的frozen graph格式的模型转换成可在昇腾芯片上推理的格式。
- 转换输入目录:训练作业的训练输出目录下的
frozen_graph
OBS目录。 - 转换输出目录:训练作业的训练输出目录下的
om/model
OBS目录。 - 高级选项:“输入张量形状”为
images:1,352,640,3
。
任务信息填写完成后,单击右下角“立即创建”按钮。等待模型转换任务完成。
(1)登录Huawei HiLens管理控制台,在左侧导航栏中选择 “技能开发” > “模型管理”,进入“模型管理”页面。
(2)在“模型管理”页面,单击右上角的 “导入(转换)模型”。
(3)在“导入模型”页面,然后参考图3-1填写参数,信息确认无误后单击 **“确定”**完成导入。
- 名称:输入 “plane”。
- 版本:输入 “0.0.1”。
- 描述:一段简短的描述。
- 模型来源:单击 “从ModelArts导入”,在右侧下拉框中选择 “OM(从转换任务中获取)”,然后在下方转换任务列表中勾选之前ModelArts中的模型转换任务 “convert-plane”。
(4)模型导入后,将进入 “模型管理” 页面,您导入的模型可从列表中查看。
(1)在Huawei HiLens管理控制台的左侧导航栏中选择 “技能开发” → “技能管理”,进入技能列表。
(2)在“技能管理”页面,单击右上角 “新建技能”,进入“创建技能”页面。
(3)填写基本信息 在“创建技能”页面,在“技能模板”中选择“使用空模板”后,填写基本信息:
- 技能模板:选择 “使用空模板”。
- 名称(英文):自定义,本实践定义为“Plane_Detection”。
- 名称(中文):自定义,本实践定义为“停机坪飞机识别”。
- 版本:自定义,本实践定义为“1.0.0”。
- 适用芯片:默认为“Ascend310”。
- 检验值:自定义,本实践定义为“plane”。
- 应用场景:选择 “其他”,文本框中输入 “停机坪飞机识别”。
- 技能图标:上传技能图片。
- 技能图片:用来向用户介绍技能的使用或技能的效果。
- OS平台:选择“Linux”系统。
- 英文描述:输入技能的英文描述。
- 描述:输入技能的中文描述。
(4)填写技能内容 根据您的模型和逻辑代码情况,填写技能内容,详细参数说明如下:
- 模型:单击加号,选择上一步导入的模型。
- 运行时语言:选择“Python3.7”。
- 代码执行文件:输入“index.py ”。
- 代码上传方式:选择“在线编辑”,在代码编辑框中直接编辑代码。
(5)确认信息无误后,单击“确定”完成技能创建。
(1)部署技能
-
登录Huawei HiLens管理控制台,单击左侧导航栏“技能开发 → 技能管理”,进入“技能管理”页面。
-
选择需要部署的技能,单击右侧“部署”。
-
在弹出的部署对话框中,选择需要部署的设备,单击“部署”。
-
点击“确定”完成技能部署
(2)启动技能
-
登录Huawei HiLens管理控制台进入 “设备管理” → “技能管理”。
-
进入技能管理界面,可以看到自己所有技能。将HDMI线连接HiLens Kit和显示屏,点击右侧“启动”。
-
完成启动后,就可以开始使用此技能,即可以对停机坪的飞机进行识别。
(3)停止技能
- 为避免技能收费,请及时停止技能。单击左侧导航栏 “设备管理” → “技能管理”,进入“技能管理”页面。点击技能后面对应的 “停止”.