基于嵌入式人工智能设备的流星光学监测系统*
2024-03-26李广伟王艾元
贺 田 贾 鹏 李广伟 王艾元
1 太原理工大学电子信息与光学工程学院 太原030012
2 中国科学院国家天文台 北京 100101
3 张璧古堡 介休 032000
1 引言
流星体是一种来自彗星、小行星,或者来自大行星的卫星与火星、月球撞击所产生的天体.当这些天体距离地球比较近时,就会被地球引力吸引.当它们穿过地球大气层发生摩擦会产生高温导致电子跃迁,进而产生可见的光迹,这种光迹叫做流星[1].如果流星体未燃尽,落到地球表面后就成为陨石.及时回收的陨石能够很大程度地减少地球中有机物质对陨石的污染,可以为后续科学研究提供重要材料.例如2011年发现的Tissint陨石,它被当地目击者发现并被科研工作者快速回收,为研究生命起源提供了重要依据[2].除用于科研外,火流星的监测和预警也有重要意义,例如2013年在俄罗斯车里雅宾斯克发生的火流星爆炸事件就导致了严重的生命财产损失.及时广泛地监测流星,能够提前做出相关预警,避免重大灾害事件的发生[3].综上,不论是陨石回收还是对火流星做出预警,及时且高效地发现流星是观测的首要要求.
由于流星体体积比较小且在天空任意位置偶发,使用单台地基望远镜监测效率较低.因此,光学流星监测网成为了一种可能的有效探测手段.光学流星监测网由分布于不同位置的低成本光学相机和相关处理单元组成,每个光学相机数据处理单元通过互联网连接至数据中心,通过数据处理可以实现流星计数、陨石落点预测和火流星预警.许多国家和组织基于不同的科学研究及民用预警目的,建立了各类光学流星监测网,例如捷克的火流星监测网[4]和加拿大的全天候视频流星网络[5].基于流星监测网获得的数据,科学家开展了流星的光谱分析、轨道定位以及其他相关科学研究[6-8].
随着大范围流星监测网的建立,不同的流星监测设备以及流星监测方法被陆续提出.在实际使用中,为了扩大监测范围,需要广泛地在光污染少的郊外部署观测设备和后端数据处理设备.基于成本与部署环境考虑,流星监测网一般选择低成本、低能耗的嵌入式计算处理设备和针对低能耗计算处理设备的监测方法.早期流星监测工作如1999年Molau[9]发布的流星监测软件Meteor Recognizer通过筛出移动目标,再对筛出的区域分别从8个方向上,以与移动目标相邻的5个像素数的总和作为阈值判断是否存在流星.0个像素设定为没有流星,大于1个像素小于5个像素设定为流星,大于5个像素设定为非流星.这种方法误检率较高,但提供了从移动目标来着手设计流星监测算法的思路.1997年Gural[10]从流星的形态特征出发,研究了Meteor Scan流星监测算法.这种方法一定程度上降低了流星监测的误检率,但是为了排除飞禽的轮廓边缘等假阳性目标设置了更严格的直线段阈值,导致不能监测更暗弱的流星目标.Gural等[11]于2009年进一步针对克罗地亚流星监测网设计了流星监测算法,此算法在之前方法思路的基础上增加了后处理算法,通过将部分蝙蝠与流星分离进一步降低了误检率.2016年Gural[12]基于机器学习方法提出通过实时跟踪聚类后的像素值最高的前4个像素以及它们的最大帧数来监测流星.这种聚类压缩的方式使得算法可实时处理观测数据,但在云层边缘轮廓表现出较高的误检率.针对云层边缘轮廓导致的高误检率,科研工作者需要在观测站点对算法的参数进行反复测试调整,对批量部署流星监测设备带来挑战.2020年Colas等[13]提出了全球流星监测网络,其中使用的流星监测软件Free True同样是基于流星形态特征研制的.但是在日常运行中,Free True表现出惊人的误检率.
综上,当前的流星监测算法具有以下问题: 首先,算法针对线条特征,对一些碎片化且不规则形状的火流星并不适用;其次,为了提升算法的召回率,往往设计较低阈值,导致因飞行昆虫的轨迹产生大量误报,给硬盘空间、人工检查以及后续其他研究带来困难.
卷积神经网络是近年来计算机视觉方向的研究热点,可以以监督学习、非监督学习及半监督学习的方式调整网络权重以实现不同功能.通过监督学习训练卷积神经网络是一种常用的做法:数据从网络输入层前向传播,在输出层计算输出与标签的误差,再将误差反向传入网络中进行训练.通过反复训练,网络的误差将降低到平稳阶段,此时网络训练结束,得到解决相应任务的端到端模型.卷积神经网络在图像分类、检测以及视频分析等各领域中都取得了优异的效果[14].以卷积神经网络用于空间目标分类和探测的任务为例:2019年Jia等[15]提出对空间目标分类的卷积神经网络达到了较高的准确率;2019年邓秋群[16]提出的基于卷积神经网络对空间红外目标识别也有不错的效果.前述研究启示我们可以采用神经网络提升流星监测算法的精度和效率,进而实现高效率的光学流星监测系统.但是,由于神经网络模型的高算力要求,使得其难以部署于低能耗计算设备上.同时,受限于处理终端性能,部分部署后的卷积神经网络的数据处理效率受到了极大限制,不能满足流星监测对于实时性的需求.
为了拓展以卷积神经网络为代表的人工智能算法的应用场景,近年来包括NVIDIA、华为、算能等国内外企业提出了专门用于神经网络部署的嵌入式人工智能设备.这类设备一般包括一个通用数据处理芯片组和一个人工智能芯片组,特殊设计的人工智能芯片组能够高效率地运行神经网络.基于这一技术发展趋势,本文提出将深度可分离卷积神经网络与传统移动目标检测算法(帧间差分法)以及直线段检测算法(霍夫变换)结合,组成一套高效的流星目标监测算法,并将算法部署于嵌入式人工智能设备中,最终实现高速且低误检率的流星光学监测系统.
2 流星光学监测系统软件模块
如图1所示,流星光学监测系统软件模块主要包括: 流星监测模块、控制界面模块以及数据管理模块.控制界面模块主要用于流星监测系统校准和流星监测算法参数输入,模块采用Qt Toolkit应用程序开发框架设计.流星监测模块包括获取移动目标、直线段筛选和分类器3部分.流星监测模块作用是实时处理图像并将处理后包含流星的视频、图片存储在硬盘中.流星监测模块主要通过C和Python代码实现.数据管理模块的作用是把流星监测模块存储的数据按时间命名归类并传输到中心服务器,为后续的其他科学研究提供基础,数据管理模块采用Linux环境下的C-shell代码实现.下面将分别介绍各模块的主要功能和特点.
图1 流星光学监测系统软件模块结构图Fig.1 The diagram of the software module of meteor optical monitoring system
2.1 控制界面模块
图2展示的是参数调节界面,其中包含相机索引参数、存储文件地址参数、筛选移动目标轮廓大小参数以及霍夫变换筛选的相关参数.控制界面模块包括参数设置部分和相机实时画面显示部分.为了便于部署和参数调整,本文将流星监测模块中需要调整的参数整合到控制界面模块中的参数设置部分,具体包括相机索引、存储文件路径、轮廓大小、霍夫变换线段长度、霍夫变换线段间隔距离等.相机索引参数是为了针对不同相机协议及数据特点设计的通用式参数设置接口,本文采用的商用网络摄像头是通过用户名、IP地址以及密码的设置来读取Real-Time Stream Protocol (RTSP)流从而获取相机的实时数据.相机索引参数读入前述相应的格式参数,并按照格式参数进行数据操作.存储文件地址参数是指流星监测模块在嵌入式人工智能设备上流星数据的存储位置.轮廓大小参数是指流星监测模块中帧间差分算法的轮廓面积,其作用是通过设置移动目标轮廓的最小面积来过滤一些异常点和环境中的微小变化.霍夫变换共线点、霍夫变换线段长度、霍夫变换线段间隔距离是流星监测模块中设置直线段筛选的条件.其中共线点、线段长度、线段间隔距离共同决定了最终要筛选的线段标准.
图2 控制界面模块图Fig.2 The diagram of control interface
相机实时画面显示部分是为了方便安装观测设备时调整相机朝向所设置的视频显示窗口,该窗口实时显示相机获取的图像.在调整相机朝向位置时,需要先根据相机曝光时间和天光背景亮度来初步调整控制界面模块中的参数设置.如相机曝光时间较长,最终流星目标的轮廓面积就会较大,流星目标长度也会变长.在这种情况下就要将轮廓大小、霍夫变换共线点、霍夫变换线段长度参数调大,以便初步区分流星目标与其他假阳性目标.在调整相机朝向时需要尽量避开强光照射、大树等容易造成误检的方位.当干扰无法避免时,需要根据干扰特性等来调整部分参数.如部署的环境中有树叶摆动等环境的干扰,可以将轮廓大小参数适当调大,通过移动目标轮廓的最小面积来过滤干扰.同时也可将霍夫变换共线点、霍夫变换线段长度参数调大,使得直线段筛选更加严格,进而过滤干扰.参数调整的过程是平衡环境干扰与暗弱流星筛出的过程.因为在过滤环境干扰的同时,很可能将暗弱流星也一起过滤掉.在实际使用中,为了保证流星目标的召回率,一般优先以暗弱流星通过筛选为原则来调整参数设置.
2.2 流星监测模块
流星监测模块包括获取移动目标、直线段筛选和分类器.流星监测模块首先通过获取移动目标部分将有移动目标的图像区域提取出来,然后进一步将提取出的图像区域进行线段筛选,最后将直线段筛选后的图像区域进行二分类来判断是否为流星目标.
对于获取移动目标部分,由于流星监测系统更关注流星探测而非流星的颜色信息(光谱由同站点的流星光谱相机专门负责后随观测),因此本文首先将目标图像转为灰度图.将图像从三通道彩色图变为单通道灰度图像,从而可减少内存占用空间与计算量,而且由于获取移动目标部分与直线段筛选部分的后续数据操作都只计算一个通道的数据量,因此可显著降低人工智能芯片对于显存的需求.
流星监测模块使用帧间差分法[17]计算上一帧与当前帧灰度图的差值,进而获得差值图.为了去除差值图中的点噪声的影响,采用中值滤波处理差值图像[18].随后,对中值滤波后的差值图进行二值化、膨胀、腐蚀操作,突出像素灰度变化显著区域在差值图中的轮廓.为了避免具有几个像素异常值的图像块对后续数据处理带来的算力浪费,流星监测模块进一步计算像素变化区域面积的大小并过滤变化区域面积小的图像区域.
流星监测模块根据差值图中的像素灰度变化区域获取帧间变化的图像区域,同时用非极大值抑制算法NMS (Non-Maximum Suppression)消除重合的帧间变化区域[19],确保潜在流星候选目标位置的唯一性,最终获得差值图中所有的帧间像素变化区域的集合.这些集合就是移动目标的轮廓区域也是流星目标的候选集合.如图3所示为获取移动目标主要步骤的效果图,第1行图片为前后帧的灰度图,第2行图片为前后帧的差值图,第3行图片为差值图二值化后的膨胀腐蚀图,最后一行图片为最终获取移动目标的图像区域.由图3可知获取移动目标部分可以有效地提取出移动目标区域并减少后续图像处理的计算量.
图3 获取移动目标时处理过程的效果图.如图所示,经过处理后图像中的流星变得更加明显.Fig.3 One frame of images before and after being processed.As shown in this figure,the images of meteors become more clear after being processed with our method.
在获取移动目标图像后,流星监测模块进一步在直线段筛选部分使用传统霍夫变换算法提取直线段用于流星监测[20].霍夫变换检测直线段的方法是寻找共线点以及设置共线点个数、线段最短长度、线段之间的间隔距离等参数来综合判断图像中是否有直线段,其原理是穿过图像上的某个点有无数条直线,在霍夫空间中,这些直线都有如下表达式:
x、y为图像上目标点的直角坐标,ρ和θ分别为原点到这条线的距离以及直角坐标系下根据直线斜率所计算出的角度.如果图像中有点共线,那么对应点在霍夫空间中表达式的曲线有交点.最终根据统计交点上曲线的个数以及根据共线点组成线段的最短长度、线段之间的间隔距离来判断图像中是否有直线段.
经过霍夫变换后,流星监测模块基本可以获得移动轨迹为直线的移动目标图像.为了进一步提升监测效率、减小误检率,本文基于深度可分离卷积模块,构建了轻量的分类网络.如图4所示为二分类分类器的网络结构图,包含前后2个标准卷积模块、1个全局平均池化模块、6个倒残差(Inverted residuals)结构[21]和1个全连接层.其中ConvBNRelu6表示普通卷积加批量归一化,并将输出结果使用Relu6函数进行激活,DwiseRelu6表示深度卷积后使用Relu6函数进行激活,ConvBN表示普通卷积加批量归一化.
图4 分类网络结构图.该图显示了流星分类网络的结构,其中添加了深度可分离卷积模块,大大减少了参数的数量,确保了分类的实时性.Fig.4 The diagram of the classification neural network.This diagram shows the structure of the meteor classification network,in which a depthwise separable convolution module is added to reduce the number of parameters,ensuring the real-time performance of classification.
表1所示为6个倒残差结构的具体参数,包括扩张的倍数、输出通道数、深度可分离卷积的步长(stride).其中倒残差结构是由扩张层(利用1×1卷积升维)、深度可分离卷积块和残差结构组成的.深度可分离卷积由深度卷积和逐点卷积组成.深度卷积的过程是把卷积核拆分成单通道与输入特征图的对应通道进行卷积操作,最后输出一个与输入特征图通道数相同的特征图.逐点卷积是将深度卷积后的特征图与1×1卷积核进行卷积.逐点卷积弥补了深度卷积操作没有融合多通道信息的缺点,用1×1逐点卷积融合了多通道信息,提取了更丰富更深层的特征信息.深度可分离卷积相比于标准卷积参数量、计算量大大下降,例如: 对于N个k×k×C大小的卷积核(其中k为卷积核的高和宽,C为卷积核的通道数),标准卷积的参数量为N×k×k×C,深度可分离卷积的参数量分为两个部分,深度卷积的参数量为k×k×C,逐点卷积的参数量为输出通道数与卷积核通道数相乘N×C,总和为k×k×C+N×C.由此可知深度可分离卷积是标准卷积参数量的(1/N)+1/k×k,所以在参数量方面,深度神经网络中通道数量越多,深度可分离卷积的优势就体现得越明显.此外,残差结构加入网络也使得网络不易退化[22].由于深度可分离卷积模块特别适用于流星图像这种小尺寸图像的分类任务,因此本文选取该网络结构用于流星分类,并将卷积核尺寸设置为3×3.
表1 倒残差结构参数表Table 1 Parameter table of the inverted residuals structure
2.3 数据管理模块
流星监测设备一般部署在光污染较少的郊外,获取的数据将传回数据中心节点进行进一步研究.由于流星监测设备数量极多且每天数据量较大,因此我们构造了数据管理模块用于存储和管理不同观测站的数据.数据管理模块是将获取的流星数据按设计好的储存目录、存储格式来存储并将数据同步到位于太原理工大学的中心服务器.数据管理模块以不同流星监测站点的经纬度、站点的设备编号、数据获取日期逐级归类存储并传输到中心服务器,且定时执行文件归集和清理以防止磁盘存储空间不足.以山西省为例,存储结构为山西省文件夹-介休经纬度文件夹-介休设备编号文件夹-年-月-日文件夹,文件夹名称形式为(SX-N-E-No-20xx-xx-xx).其中,SX指山西省、N指北纬、E指东经、No表示设备编号、20xx-xx-xx为拍摄日期.
数据管理模块具体工作流程为: 当流星监测模块的分类器将图像判别为流星时,数据管理模块开始截取有流星目标的数据,并以目录同步的模式进行存储.远程同步采用Linux系统中的开源软件Rsync,本地目录下把上述存储数据存在一个hdf5文件中以便传输,然后Rsync将进行数据对比并把新增数据实时远程同步至中心服务器.在中心服务器部署Rsync服务端的配置文件,包括传输的最大设备数、服务器的同步地址、密钥等.数据管理模块具有两大优点: 首先,Rsync增量传输的特性能够及时快速地传输实时获取的流星数据;其次,hdf5文件可以不断扩展文件大小且能够支持多种数据处理算法框架,有利于后期科学研究.
3 流星光学监测系统硬件模块
为测试流星监测系统性能,本文构建了流星监测系统测试样机.如图5所示,测试样机硬件模块主要包括观测设备和数据处理设备.观测设备采用海康威视DS-2CD3 T86WD-PW摄像头,它具有55°的垂直视场和104.2°的水平视场.如图6所示为观测设备的部署实物图,摄像头通过以太网线供电,并将数据传输给数据处理设备.数据处理设备采用嵌入式人工智能设备Nvidia jetson nano,它具有4 GB内存、一个4核ARM CortexA57的Jetson Nano MP Core处理器和一个NVIDIA Maxwell架构的包含128个Nvidia CUDA内核的GPU处理单元.
图5 流星光学监测系统测试样机Fig.5 The prototype of the meteor optical monitoring system
如图7所示为流星光学监测系统硬件模块连接图,为了方便部署观测设备,摄像头通过Power Over Ethernet供电模块供电,并与路由器相连,使得Nvidia jetson nano与摄像头处于同一局域网下.然后Nvidia jetson nano通过摄像头的IP地址、用户名与密码以RTSP流的方式获得摄像头拍摄的数据并进行数据处理.
图7 硬件模块连接图Fig.7 The diagram of the hardware module connection
4 实验研究与结果分析
为了测试流星光学监测系统性能,本文开展了一系列试验,具体包括:
1.在图片数据集上对流星监测模块中构建的分类器进行训练、验证、测试并与当前常见的部署于终端的轻量级图像识别分类神经网络Mobilenetv2进行对比.
2.结合全国流星监测网(China Meteor Monitoring Organization,CMMO)提供的视频数据和实地部署的流星光学监测系统对流星监测模块进行测试并与霍夫变换方法性能进行对比.
下面结合试验评价指标及试验结果,对论文提出的系统性能进行分析.
4.1 评价指标
本文采用准确率(A)、召回率(R)、误检率(F)3个指标来对分类器以及流星监测模块的结果进行评价.本文中将误检率定义为非流星数量占整个检出流星数量的百分比.
将流星当作正样本,式子中Tp为真正例(正确分类出流星)数量、Tn为真负例(正确分类出非流星)、Fp为假正例(错误分类出流星)数量、Fn为假负例(错误分类出非流星)数量.
4.2 分类器实验及结果分析
我们首先采用山东青岛艾山天文台2020年的流星数据共605张作为基础正样本,样本主要包含形状不规则且较亮的火流星和呈直线段状的暗弱流星.图8展示的是艾山天文台2020年捕获的所有不同形态类型的流星,主要有火流星、火流星爆炸形态、火流星呈非直线状态、线型状流星、微弱的线型状流星.由于神经网络是一种基于数据驱动的方法,所以需要大量训练数据,本文将605张基础正样本先进行水平翻转,然后将所有样本逆时针旋转15°,分别增加了高斯噪声、椒盐噪声,并通过灰度升降10%、横纵向拉升、缩小放大10%等手段达到数据扩充的目的.最终得到17693张正样本数据.
图8 具有典型形态的流星正样本类型图,包含艾山天文台2020年拍摄的所有类型流星.Fig.8 Images of several positive samples with particular shapes,includes all types of meteors from the Aishan Observatory in 2020.
基于本文流星监测模块的处理流程,将直线段筛选部分误判的目标图像作为主要的负样本,将2244张基础负样本数据以同样的方式进行数据增强,合计得到18012张负样本数据.如图9所示为所有不同类型的负样本,主要包含云层轮廓、飞机飞过留下的尾迹云、飞禽的翅膀、月亮、飞虫的轨迹等.
图9 具有典型形态的流星负样本类型图,包含艾山天文台误检的所有类型的非流星.Fig.9 Images of several negative samples with particular shapes,includes all non-meteors that are mistakenly detected by the Aishan Observatory.
在打乱后的正负样本数据集上划分训练集、验证集和测试集,图片数量比例为8:1:1.本文利用划分好的数据对提出的深度可分离卷积网络进行训练.网络输入图片大小为100×100像素,输出为分类结果(流星或其他目标).采取Adam优化器,初始学习率(Learning Rate)为0.001,学习率衰减的乘法因子为0.9,批量大小(Batch Size)为32,总训练轮次为100轮,损失函数采用交叉熵损失函数:
其中z为标签值,ˆz为预测值.本文分类网络训练的硬件平台是显存为24 GB的RTX3090 GPU,软件环境为ubuntu18.04系统,CUDA版本为11.0以及python3.8、pytorch1.7的深度学习框架.网络训练后进行测试,表2、表3分别为本文分类网络和Mobilenetv2在测试集与验证集数据上的混淆矩阵.由表2的混淆矩阵可知本文分类网络在非流星真实值中流星的预测值占比为0.27%,由表3的混淆矩阵可知Mobilenetv2在非流星真实值中,流星的预测值占比为0.19%,两者十分接近.
表2 本文分类网络在测试集和验证集的混淆矩阵Table 2 The confusion matrix of the proposed classification network in the test set and the validation set
表3 浍浯浢浩浬浥浮浥浴浶洲在测试集和验证集的混淆矩阵Table 3 The confusion matrix of the Mobilenetv2 in the test set and the validation set
表4为本文分类网络和Mobilenetv2的性能对比,包括A、R、F、分类网络参数量(Paras)、分类时间(T).其中分类时间为分类网络在嵌入式人工智能设备Nvidia jetson nano对测试集和验证集分类的总时间.其中分类网络推理过程采用单精度(float32)进行.
表4 本文分类网络与浍浯浢浩浬浥浮浥浴浶洲的性能对比Table 4 The performance of the proposed classification network and the Mobilenetv2
由表4结果可知在准确率方面,本文分类网络比Mobilenetv2网络低0.05%,但也达到了99.85%的准确率;在召回率方面,本文分类网络与Mobilenetv2持平,达到100%召回率;在误检率方面,本文网络比Mobilenetv2高0.08%,达到了0.28%的低误检率;参数量方面,本文网络比Mobilenetv2网络少2186400个参数;数据处理速度方面,本文网络比Mobilenetv2网络少8倍的时间,处理速度可达每秒62帧.
综合以上实验结果,本文分类网络在误检率和准确率方面与Mobilenetv2相近.在召回率方面,本文网络虽参数更少、更加轻量也同样能达到100%的召回率.由于本文分类网络采用深度可分离卷积且减少了扩张的倍数与输出通道数,使得网络整体参数量更少,且因6个扩张层的加入弥补了深度可分离卷积的缺点,使得网络在较少参数量下也能达到较高的准确率.同时在参数量减少的情况下,本文网络的召回率没有下降,说明了本文提出的分类网络非常适用于显存及性能非常有限的嵌入式人工智能设备.
4.3 流星监测模块实验及结果分析
在流星监测中,科学研究与统计任务不希望漏检任何一个流星.基于这个原因,在流星监测任务中首先要保证流星的召回率.在保证召回率的情况下,尽可能提高准确率并降低误检率.因此在获取移动目标部分以及直线段筛选部分中,以暗弱流星能够通过筛选为底线来设置移动目标的面积大小以及霍夫变换参数,从而提高对中等或低亮度流星的监测效率.基于上述考虑,此次实验在控制界面模块中设置的参数如下: 霍夫变换共线点数量(Hp)为15个像素、霍夫变换线段长度(H-l)为15个像素、霍夫变换线段间隔距离(H-d)为5个像素、轮廓大小(Outline size)为30个像素,具体如表5所示.
为了测试直线段筛选部分霍夫变换的有效性,本文根据目前典型的流星图像特征使用SkyMaker生成模拟图像数据,图10 (a)展示的是清晰的直线型流星形态、微弱的直线型流星形态、非线型火流星形态、线型火流星形态、非线型爆炸火流星形态,使用表5中设置的霍夫变换参数对生成的模拟图像数据进行线型判别.图10 (b)为判别结果图,由图可知各类型模拟数据均能通过线型判别.因为实际流星图像一般由广角鱼眼镜头拍摄,所以图像具有一定畸变.为此,将模拟图像数据进行一定的畸变弯曲,并再次进行霍夫变换识别线型目标,结果如图11所示.图11 (a)展示的是模拟弯曲后的直线型流星形态、微弱的直线型流星形态、非线型火流星形态、线型火流星形态、非线型爆炸火流星形态,图11 (b)为畸变后模拟图像数据的判别结果图,畸变的模拟图像数据同样能够进行线型判别.
图10 (a)模拟图像,(b)模拟图像的线型判别Fig.10 (a) Simulated images,(b) Linear discrimination of simulated images
图11 (a)模拟的畸变图像,(b)模拟的畸变图像的线型判别Fig.11 (a) Simulated distortion images,(b) Linear discrimination of simulated distortion images
将前述的流星监测系统部署到太原理工大学-张壁古堡远程天文台,进行为期1个月的性能测试.实验设置海康威视摄像头的帧率为每秒25帧,每天晚上开机5 h,每晚获取450000帧的观测图像,1个月总共13500000帧图像.在这些图像中,经过获取移动目标处理后得到12849帧有运动目标且轮廓大于30个像素的图像,包括大量的飞虫和飞禽、远处灯光,一部分云层、月亮和少数的流星.进一步通过直线段筛选部分排除了大部分飞禽的轮廓和远处的灯光,但仍然有一些飞禽、云层、飞虫、月亮等非流星目标未被排除,通过这些非线型的非流星目标未被排除的情况可知设置的霍夫变换参数是比较宽容的,能够让非线型(如飞禽的边缘轮廓、云层的边缘轮廓等)较短小的线段通过筛选,增加了误检率但也增加了暗弱流星检测能力.直线段筛选这一过程得到1696帧流星候选目标,经过本文分类器分类最终获取10个流星候选目标.通过人工检查12849帧含移动目标与1696帧含线型候选目标的图像,10个流星候选目标中没有丢失真实流星目标,且10个流星候选目标中有7个为真实流星目标如图12所示.表6、表7分别为流星监测模块、霍夫变换在实际观测数据中的混淆矩阵.
表6 流星监测模块在实际观测数据处理中的混淆矩阵Table 6 Confusion matrix of the meteor monitoring module in processing of real observation data
表7 霍夫变换在实际观测数据处理中的混淆矩阵Table 7 Confusion matrix of the Hough transform in processing of real observation data
图12 实际观测数据结果图Fig.12 Results of actual observation data
图12中第1行为实际观测数据中捕获到的暗弱流星,第2行为火流星,第3行为误检数据.根据误检数据来看,第1个误检数据将月光的变化误判为流星,第2、3个误检数据将飞虫轨迹误判为流星.为进一步提升系统性能可以将环境中出现频率高的误检目标加入训练集进行迁移训练,进一步降低分类器的误检率.从获取的暗弱流星和火流星来看,此流星监测系统能够捕获差异较大、类型不同的流星.
根据在实际观测数据上的混淆矩阵可以得出霍夫变换与流星监测模块的性能对比,结果如表8所示,由于实际测试中正负样本极不平衡,故只采用R、F来评价.
表8 实际观测数据中霍夫变换与流星监测模块的性能对比Table 8 Performance comparison between the Hough transform and the meteor monitoring module in processing of real observation data
由表8可知在召回率方面,流星监测模块与霍夫变换持平为100%.在误检率方面流星监测模块比霍夫变换低69.59%.由于无法获得天空中真实的流星数量,因此本文所提出的真实流星的数量是查看获取移动目标和直线段筛选部分的1696帧流星候选目标获得的,所以无法获得系统的绝对召回率.但是从结果上看,流星监测模块误检率可以达到实际应用需求.结合实际观测数据的混淆矩阵和性能对比表6-8,能够发现流星监测模块的误检率低于霍夫变换方法,在实际使用中大大减轻了人工检查的难度.流星监测模块中获取移动目标部分与直线段筛选部分虽然有较高的误检率,但它的效率较高,排除了大量的非流星目标,为后续的分类网络提供质量较高且位置明确的流星候选目标.
为了进一步测试流星监测模块的性能,本文使用了CMMO提供的数据来进行测试.数据包括117条真实流星视频数据和72条非流星视频数据.表9、表10所示分别为流星监测模块与霍夫变换在CMMO数据测试后的混淆矩阵.由表9可知流星监测模块将真实流星分类为非流星的值为0,真实流星没有漏检,极大保护了流星目标的召回率.
表9 流星监测模块在CMMO数据的混淆矩阵Table 9 Confusion matrix of the meteor monitoring module in processing data from the CMMO
表10 霍夫变换在CMMO数据的混淆矩阵Table 10 Confusion matrix of the Hough transform in processing data from the CMMO
根据在CMMO数据上的混淆矩阵可以得出霍夫变换与流星监测模块的性能对比如表11所示,包括R、F.
表11 CMMO数据中霍夫变换与流星监测模块的性能对比Table 11 Performance comparison between Hough transform and meteor monitoring module in CMMO data
由表11可知流星监测模块与霍夫变换都可以达到100%的召回率.在误检率方面,流星监测模块相比霍夫变换低26.98%,能够达到1.68%的低误检率.由此可以证明本文流星监测模块在其他数据上的迁移泛化能力较强,便于批量部署.同时100%的召回率与1.68%的误检率验证了本文流星监测模块的实用性.
5 结论
本文从读取数据、处理数据、传输数据的角度,构建了流星光学监测系统的软件部分,并与嵌入式人工智能设备(Nvidia jetson nano)和商用观测设备(海康威视摄像头)组成一整套流星监测系统.其中流星监测软件系统中的流星监测模块通过3个步骤的处理,逐级缩减了流星候选区域.这种逐级缩减的策略,避免了不必要的计算,提高了流星监测的实时性,与基于霍夫变换的直线段筛选的方法相比有效地降低了流星监测的误检率,减少了数据存储压力.在实际使用中,本文流星监测系统以单精度(float32)计算分类既能达到实时性计算的要求,又具有较低的误检率.对于流星监测模块中的分类器,在准确率方面相比Mobilenetv2还略有不足,但在分类速度方面本文分类器能够满足实时处理的要求.在未来的研究中,将通过融合多帧图像的信息来解决分类器准确性不足的问题,实现流星监测系统高准确率的实时监测.
致谢感谢青岛艾山天文台所提供的数据和张壁古堡提供的支持.感谢国家自然科学基金提供的资助.感谢审稿人对文章提出的宝贵建议,使得文章的质量有了显著的提高.