The Design of Compensation Mechanism at Low Temperature of -213℃
-
摘要: 为了满足光学平台在低温下(-213℃)的光学设计稳定性要求,本文设计了一种温度补偿结构,基于材料热膨胀系数随温度变化的原理对该结构进行了理论计算和实验验证。该结构通过控制螺栓的预紧力保证连接件可靠,并使殷钢板在低温下处于自由伸缩状态;并利用在低温下因瓦合金变形极小补偿不锈钢变形带来的误差。其光学系统的在低温下的指标 RMS≤l/10,l=632.8 nm。理论表明,在低温下因瓦合金的最大变形量为0.24884 mm,不锈钢的最大变形量为2.910 mm;实验结果表明:在常温和低温下用干涉仪测得的光学系统的面形精度分别为 RMS=l/13、RMS=l/12,l=632.8 nm。在低温下能较好满足光学设计稳定性要求。
-
0. 引言
背景提取是一种目标检测算法,其准确性、实时性和鲁棒性较好[1]。ViBe算法[2]是背景提取算法中的一种像素级的前景检测算法,这种算法检测迅速、检测精度优异。虽然这种算法的性能十分优异,但其仍具有不足之处。比如,算法所存在的鬼影问题就是影响算法性能的最主要原因之一。所谓鬼影,是指在没有运动目标的区域中被错误检测出的前景区域,也就是不真实的前景[3]。
对于如何解决鬼影的问题,许多学者提出的解决措施中,主要包含两种处理方式:一是对背景模型初始化作出改进。比如,文献[4]使用多帧图像进行背景模型的初始化。文献[5]将最大类间方差法(OTSU)[6]引入到帧间差分法中,把前面几帧图片加以适当的处理,组成一张背景样本图像,以这幅图片为依据来创建初始的背景模型。文献[7]用视频的前25帧图像中的像素点及其它邻域的像素点中的像素值来初始化背景模型。此方法的背景模型初始化需要通过多帧图像来建立,而这会大大降低背景模型的初始化速度。但同时,此方法无法处理因背景突变而产生的鬼影现象。第二种处理方式是在前景检测的过程中对鬼影进行识别,若识别出鬼影,则将其视为背景。比如,文献[8]比较了前景目标与相邻背景像素的直方图,根据直方图的不同来辨别鬼影区域。文献[9]通过分析前景的像素值来进行鬼影的消除。然而这种算法对速度慢并且颜色单调的目标的检测敏感性不高,容易将其误判为鬼影,并且算法较为复杂,无法确保实时性。
综上所述,当前消除鬼影的方法都具有一定的不足。为了解决鬼影问题,本文提出了一种基于改进的ViBe和YOLO v3算法的行人检测方法。算法采用YOLO v3-SPP对首帧中的行人进行检测,将检测出的行人消除后,将输出的图像作为ViBe算法的首帧,从而解决鬼影问题。
1. 算法原理
1.1 ViBe算法原理
ViBe算法为每一个像素点都创建了一个背景样本模型,通过比较当前帧与背景模型中相对应位置的像素值,并由预设的阈值将其定为背景点或前景点。一旦像素被确认为背景点,则随机更新其背景模型里的一个样本值。同时基于空间一致性原则,将其邻域像素背景模型中的一个样本值进行随机更新。ViBe算法主要由3部分组成,即背景建模、前景检测和背景模型的更新。
1)背景建模
背景模型是背景样本的集合。在背景模型的初始化过程中,从一帧图像每个像素的八邻域中随机选择N个像素的灰度值存放到背景模型样本中。背景模型也可以描述为:
$$ M(x) = \left\{ {{v_1}{\text{,}}{{\text{v}}_2}{\text{,}} \cdots {\text{,}}{{\text{v}}_N}} \right\} $$ (1) 式中:M(x)为背景样本;vi表示背景模型样本中的像素值;N表示样本的大小。
2)前景检测
将当前的像素值与背景模型中同一位置像素的样本作比较来判定当前像素点是否为前景。如图 1所示,v(x)为当前帧图像中的像素x的像素值;C1与C2组成了二维的色彩空间(C1, C2);SR(v(x))是以v(x)作为圆心的圆形区域,R是此区域的半径;v(x)与背景样本模型之间的相似程度由SR(v(x))所包含的M(x)的样本数M来描述。当M大于或者等于设定的阈值时,判定v(x)为背景;当M小于设定的阈值时,判定v(x)为前景。
3)背景模型的更新
本文中,ViBe算法的背景模型更新方法使用了随机更新策略。设定抽样因子为λ。假设第二步前景检测过程后,算法判定当前像素点为背景像素点,那么它会有1/λ的概率更新其在背景模型中的样本值,并将随机替换样本模型中的一个样本。每一个样本经过时间Δt仍被保存的概率可以描述为:
$$ p(t,t + \Delta t) = {\text{e}^{ - \ln (\frac{N}{{N - 1}})\Delta t}} $$ (2) 该过程将有助于确保样本生命周期的平滑。基于图像空间的一致性原则,该算法可以通过相同的方式与概率随机选取八邻域中的一个像素来更新其背景模型。
1.2 YOLO v3-SPP介绍
YOLO v3借鉴了在Faster R-CNN中提到的锚框(Anchor box)机制[10]。为了增强检测的精度,采用K均值聚类算法得出边框的尺寸,从而获得合适的锚框[11]。同时,采用特征金字塔网络(feature pyramid networks,FPN)来实现多尺度预测[12],检测时可以应对不同尺寸的物体,因此能够大大提高对精细物体的识别能力。YOLO v3结合了锚框和特征金字塔网络的思想,每个网格可以预测3个预测框,并选择具有最优交并比(IoU)的锚框作处理后作为输出的预测框。
YOLO v3使用Darknet53网络为主干,舍弃了最大池化层,采用步长为2的卷积层作为代替。
由于YOLO v3算法在行人遮挡检测上的漏检率较高,不利于对图像进行特定的处理,所以对网络结构进行改进以增加算法的准确率与检测精度。
YOLO v3-SPP是提出的YOLO v3算法的增强网络。与YOLO v3不同的是,它在网络的YOLO层前增加了一个SPP层,并为了避免过拟合而进行多尺度训练,从而能够增加检测精度(在COCO公共数据集上)。
SPP层的基本构造如图 2所示。利用5×5,9×9与13×13这3个最大池化层对特征图进行池化,再连接起池化后的特征图,并将其传输到下一层网络中[13]。
加入SPP层的YOLO v3算法(YOLO v3-SPP)的结构如图 3所示。
2. 基于YOLO v3 SPP的改进ViBe算法
2.1 鬼影问题
ViBe算法为了提升初始化的速度,通过只处理视频图像的首帧来对背景样本模型作初始化。但是这种措施存在着不足,当待检测的运动前景存在于首帧时,会使后续检测中出现鬼影。如图 4所示。
2.2 提出的改进措施
因为鬼影产生的原因是第一帧中出现了运动目标,所以利用YOLO v3-SPP算法本身对静止行人目标的检测优势,在进行背景初始化之前,对首帧图像进行行人检测。检测出行人后,将检测出的行人进行消除,从而避免鬼影的产生。
基于YOLO v3 SPP的改进ViBe算法框图如图 5所示。
本文使用PASCAL VOC2012数据集对YOLO v3-SPP网络进行训练后得到权重文件。在输入待检测的视频后,对首帧作处理。利用训练好的权重文件进行行人检测。整幅首帧图像可以分为两部分,即前景部分与背景部分。针对背景部分的像素点,与传统算法的背景初始化步骤一致。针对前景部分的像素点,采用以下的行人消除方法对行人进行消除。具体步骤如下:
1)将每个检测出的行人,分为6个部分。如图 6所示。
2)如果检测出的行人不在图像的边界处,则用行人周围的像素来代替图 6中各方框内的像素值。代替规则如下:
① 和②分别用各自上方的像素值来代替。
③ 和④用各自两边的像素值来代替。
⑤ 和⑥分别用各自下方的像素值来代替。
3)如果检测出的行人在图像的边界处,则基于2)中的规则,做出适当的调整。具体调整如图 7所示。
像素代替方法的总流程图如图 7所示。
用这种方法可以将首帧中的行人进行消除。行人消除的效果如图 8所示。
用处理好的首帧图像进行初始化背景建模,再用ViBe检测行人,对鬼影的消除效果如图 9所示。
可见,本文算法可以有效地解决鬼影问题,并改善算法的检测性能。
3. 实验结果分析与评价
3.1 实验结果分析
根据以上的算法描述,选择PETS2006[14]测试视频来进行实验验证。实验环境和参数如下:Windows 10系统,AMD Ryzen 5 2600X Six-Core Processor CPU,3.60 GHz主频,16.0 G RAM,Python 3.7。背景模型建立参数N=20,R=20。N为背景样本的容量,R为颜色距离判定阈值。
本文将提出的算法和ViBe算法、三帧差分法[15](three-frame differential method, TFDM)、高斯混合模型[16](Gaussian mixture model, GMM)算法进行对比测试。三帧差分法是一种对视频中连续3帧图像进行差分运算来检测运动目标的方法,这种方法的优点是计算量小,实时性较好。GMM算法是有限个单一高斯分布的加权和,能反映各个像素点不同的分布情况。
测试视频的检测效果如图 10所示,第1行分别是测试视频中第534帧、第564帧和第583帧的原始图像。第2行是传统ViBe算法对这3帧原始图像的检测效果,可以清楚地看到用这种方法检测后所产生的鬼影;第3行是使用三帧差分法(TFDM)对这3帧原始图像的检测效果,能够看出这种方法只能检测出运动物体的轮廓信息,而当物体运动比较快时,轮廓的部分信息也会丢失。第4行是高斯混合模型(GMM)算法对3帧原始图像的检测效果,可以看到,这种方法检测出的前景会出现部分缺失和空洞的现象。第5行是本文所提出的算法,可以看出,本文所提出的算法可以有效地解决鬼影问题,并且检测出的运动目标完整无空洞。
图 10 PETS2006视频检测效果:(a)(b)(c)原始图像;(d)(e)(f)ViBe算法;(g)(h)(i)三帧差分法;(j)(k)(l)高斯混合模型算法;(m)(n)(o)本文算法Figure 10. PETS2006 video detection effect: (a)(b)(c) Original image; (d)(e)(f) ViBe algorithm; (g)(h)(i) Three-frame difference method; (j)(k)(l) Gaussian mixture model algorithm; (m)(n)(o) The algorithm in our paper3.2 实验结果评价
采用文献[17]中提出的方法对本文提出的算法进行定量评价。使用精确率(Precision)、召回率(Recall)以及F1分数(F1-score)等指标,可以描述为:
$$ \text { Precision }=\frac{\mathrm{TP}}{\mathrm{TP}+\mathrm{FP}}$$ (3) $$ \mathrm{Pecall}=\frac{\mathrm{TP}}{\mathrm{TP}+\mathrm{FN}} $$ (4) $$ \text{F} 1-\text { score }=\frac{2 \cdot \text { Precision } \cdot \text { Recall }}{\text { Precision }+\text { Recall }} $$ (5) 式中:TP与TN分别为检测正确的前景像素与背景像素的数量;FP与FN分别检测错误的前景像素与背景像素的数量。一般来说,精确率与召回率越高,查准率和查全率就越高,算法性能就越好;F1分数则为前两者的调和平均,F1分数的值越大,算法的综合性能越强。表 1为对实验结果做出的对比评价,其中frame per second指的是每秒处理的帧数,每秒处理的帧数越多,算法的实时性能就越强。可见,虽然三帧差分法的实时性较强,但其精确率明显低于本文提出的算法,而本文提出的算法在精确率、召回率和F1分数上均高于其他3种算法,综合性能最强。
表 1 实验结果评价Table 1. Evaluation of experimental resultsAlgorithm Precision Recall F1-score Frame per second ViBe algorithm 0.7186 0.4535 0.5560 5.2629 Three-frame differential method 0.5354 0.6422 0.5839 9.9624 Gaussian mixture model algorithm 0.6552 0.3554 0.4617 4.1905 Proposed algorithm 0.8056 0.7070 0.7531 5.3419 4. 总结
本文首先对背景提取技术和ViBe算法的优点与缺点做了总体上的描述,并对一些当前的改进ViBe算法作出了介绍,然后详细介绍了ViBe算法的原理与YOLO v3-SPP的结构,并在此基础上提出了一种基于YOLO v3-SPP的改进ViBe算法以解决传统ViBe算法中的鬼影问题。改进算法利用YOLO v3-SPP对静止行人的检测能力来改进ViBe算法本身的背景初始化策略,对检测出的行人进行了消除,从而解决了传统ViBe算法由于首帧出现行人而产生的鬼影问题。本文选择在PETS2006数据集下对所提出算法的性能与传统算法、三帧差分法和高斯混合模型算法进行比较测试。经比较后的实验测试结果表明,本文算法能够有效地解决传统ViBe算法的鬼影问题,且检测效果得到提升。
-
期刊类型引用(1)
1. 施全伟,赵子建. 视频图像运动目标鬼影校正算法研究. 计算机仿真. 2024(08): 315-319+393 . 百度学术
其他类型引用(3)
计量
- 文章访问数: 163
- HTML全文浏览量: 24
- PDF下载量: 14
- 被引次数: 4