删除或更新信息,请邮件至freekaoyan#163.com(#换成@)

基于3D-Winograd的快速卷积算法设计及FPGA实现*

本站小编 Free考研考试/2021-12-25

近年来,卷积神经网络(CNN)已经在视频监控、图像识别等计算机视觉任务中取得了出色的应用和研究成果,而随着计算机视觉任务中CNN的网络层数和卷积核深度的加深,通过优化三维卷积运算过程,能够更加有效加速CNN在FPGA的运算性能。为了实现遥感目标检测等任务中嵌入式设备性价比的最大化,近年来的研究重点是将多维卷积运算部分部署到FPGA,这是因为FPGA相对于传统的CPU平台和目前主要在使用的GPU平台包含了大量的计算单元,具有较低的功耗和较低的价格,所以研究CNN在FPGA的部署和计算方法拥有很大的研究价值。
目前,卷积运算方法在FPGA部署的方法主要有以下3种。①传统滑窗卷积算法在FPGA的应用。由于实现比较简单,应用比较广泛。例如,Zhang[1]和Guan[2]等使用传统滑窗卷积算法实现了基于FPGA的深度学习加速器设计。②FFT算法在FPGA的应用。2017年,George等[3]使用FFT和卷积定理减少了卷积层的算术复杂性,Ordó?ez等[4]完善了这部分的算法,Suita等[5]于2015年在NVIDIA cuDNN库中实现了FFT算法,Zhang和Prasanna[6]于2017年也在CPU-FPGA异构平台上实现了这个算法。2014年,Cong和Xiao[7]使用Strassen算法进行了快速矩阵乘法,以减少卷积层中卷积的数量,从而降低其总算术复杂度。③基于通用矩阵乘法(GEMM)的方法应用于FPGA卷积算法的加速。Suda[8]和Zhang[9]等基于GEMM和重排图像块为矩阵列(Image to Column, im2col)的思想进一步完善了快速卷积算法。Lavin和Gray[10]提出的Winograd算法, 由于其良好的硬件适用性,被广泛应用于嵌入式智能硬件设备的AI任务中,对Winograd算法的优化研究工作非常重要。
本文基于Zynq设备(硬件环境),Vivado HLS 2018.2及Vivado 2018.2(软件环境),应用改进后的Winograd算法对CNN在FPGA的运行效率、资源性能进行测试和对比,并在实验中将CNN在GPU平台上的吞吐率和功耗等方面性能与CNN在FPGA平台上运行的性能进行测试和对比。
1 相关工作 1.1 CNN及常用卷积计算方法 CNN是一类包含卷积计算且具有深度结构的前馈神经网络,在近年来的视频监控、图像识别等计算机视觉任务中广泛应用并取得了出色的成果,是深度学习的代表算法之一。通常,CNN由一系列图层组成,每个图层又由输入特征图、滤波器和输出特征图组成。在这些图层中,卷积层占主要的计算量。由于CNN是离线训练的,FPGA主要用于加速推理阶段。2015年,Zhang等[11]设计了一款基于FPGA平台开发的深层CNN加速器,解决了计算吞吐量无法很好地匹配FPGA平台提供的内存带宽问题。2016年,Qiu等[12]使用动态精度数据量化方法,提出一个对CNN中所有层有效的通用卷积器,提高了各个网络层的算力。2018年,Yu等[13]通过内存访问优化等方法在实时低功耗系统FPGA上更加高效地部署了检测算法。2019年,Ahmad和Pasha[14]设计了流水线和并行卷积计算引擎,提高了卷积计算的吞吐量,同时降低了整个系统的计算复杂性和功耗。
目前,滑窗卷积是典型的卷积运算使用的算法[15]。使用常规的滑窗卷积算法,可以通过使用滤波器乘以滑动窗口区域的输入特征数据,并对不同通道的特征结果进行累加来分别计算输出特征图中的每个元素,但实际应用中效率不高。FFT算法可以把待卷积的2个数组进行快速傅里叶变换,再在频域做乘法,最终进行一次傅里叶反变换即可得到卷积结果,但由于计算复杂度过高,不适合在嵌入式设备上部署。Strassen算法也可以用来优化矩阵乘法的过程并降低复杂度,但Strassen算法只有在对维数比较大的矩阵(维数>300)相乘时性能才有提高,因此在小维度矩阵相乘时的应用不佳。
1.2 Winograd及其优化方法 由于CNN正在朝着带有小型过滤器的更深拓扑结构的趋势发展,而传统滑窗卷积算法虽然是通用的,但是效率较低,在卷积层数逐渐加深的CNN中表现不佳,作为传统滑窗卷积算法在FPGA应用的替代方案,可以使用Winograd快速卷积算法来更有效地实现卷积。
Winograd能够通过减少乘法次数来降低算法的复杂度,对于一维卷积过程F(mr)(其中,m为输出矩阵尺寸,r为滤波器尺寸),每次调用Winograd算法时,都会同时生成大小为m×1的图块,此时计算输出矩阵Y的公式为
(1)

式中:G为卷积核变换矩阵;AB为输入变换矩阵;g为卷积核;d为输入向量;Y为输出变换矩阵。
对于二维卷积过程F(m×mr×r)来说,每次调用Winograd算法时,都会同时生成大小为m×m的图块,此时计算输出矩阵Y的公式为
(2)

在二维卷积过程中,为了计算输出特征图中的m×m切片,Winograd算法需要n2乘法,而传统滑窗卷积算法需要m2×r2乘法。因此,Winograd算法需要更少的乘法运算,可以降低计算复杂度,这对片上资源有限的FPGA等嵌入式设备非常友好。
2017年,Lu等[16]在FPGA平台上面应用了Winograd算法,可以大幅降低算法复杂度,改善FPGA上的CNN性能。2018年,Lu和Liang[17]提出了Winograd算法的稀疏化训练方法,通过将ReLU激活函数移至Winograd域,以及对Winograd变换之后的权重进行剪枝,来减少乘法操作数。2019年,Zhao等[18]提出了一种基于Strassen和Winograd融合的算法,能够有效降低卷积过程的功耗,进一步优化了Winograd算法在FPGA部署的能力。
但其实在实际应用到三维卷积中时,如果直接采用传统的Winograd算法,可能会增加多余的乘法运算,因此需要对这方面进行改进。本文提出的一维展开方法将减少Winograd算法所需的乘法运算次数,降低算法复杂度,提高算法并行度。
2 改进方法 本文提出了一种基于一维展开方法和tile扩展的3D-Winograd算法,能够对传统Winograd算法进行改进,同时结合硬件资源特性,采用低比特量化、使用移位代替部分除法等方法提高CNN在FPGA的卷积运算速度,相对传统的二维Winograd算法能有效提高CNN效率。
2.1 3D-Winograd
2.1.1 一维展开方法 如图 1所示,使用传统的2D-Winograd算法进行三维卷积时,会使CNN的运行速度大大提高,但这主要得益于循环层数的减少,滑窗卷积算法需要使用6层循环,而二维的Winograd算法可以降低到4层循环,大大减少了算法运算次数,从而提高了算法的并行度。
图 1 传统滑窗卷积算法与2D-Winograd算法 Fig. 1 Conventional sliding window convolution algorithm and 2D-WINOGRAD algorithm
图选项




从计算复杂度上来看,滑窗卷积算法的乘法运算次数为H×W×M×N×r×r,而2D-Winograd算法的乘法次数为(H/2)×(W/2)×M×N×(2×n×n×n+r×r×n+r×n×n+n×n+2×m×n×n),给计算复杂度带来了一定程度上的增加,而计算复杂度的增加又会带来占用更多片上计算资源的问题,同时还会带来计算时延增加的问题,因此需要通过一些方法减少乘法次数,从而降低计算复杂度。
本文提出了一种将二维平面的Winograd卷积过程扩展到三维上来的一维展开方法,通过一维展开过程能够有效减少二维卷积过程中多余的乘法次数。
当输入特征矩阵为4×1向量[d0d1d2d3]T、卷积核尺寸为3×1向量[g0g1g2]、输出矩阵为2×1向量[ab]T时,Winograd一维卷积时计算原理如图 2所示。
图 2 基于Winograd原理的一维卷积过程 Fig. 2 One-dimensional convolution process based on Winograd principle
图选项




此时,矩阵尺寸大小为2×1向量的输出矩阵[ab]可以利用式(3)和式(4)进行计算:
(3)

(4)

可见,通过Winograd算法计算这次卷积只需要4次乘法,而通过传统滑窗卷积算法则需要6次乘法。因此,Winograd算法需要更少的乘法运算,而在嵌入式环境中,乘法运算的计算复杂度要高于加法运算,Winograd算法更加适合CNN的部署。考虑到所有三维和二维的卷积过程都可以拆分成上述一维卷积过程,当输入特征为4×4×c(c为通道数)、卷积核尺寸为3×3×n(n为卷积核数量)、输出特征为2×2×n时,将上述一维卷积过程应用到Winograd三维卷积时的计算方法如图 3所示。
图 3 基于一维扩展的Winograd三维卷积过程 Fig. 3 Three-dimensional convolution process of Winograd based on one-dimensional expansion
图选项




图 3的输出图块为例,输出图块的每个元素都可以根据一维展开的公式原理,表示为输入图块前n(n为卷积核数量)行某相邻m列的元素和权重之间的代数和,通过这种方法能够将复杂的矩阵乘法计算转换为简单的代数计算,更好地降低计算复杂度。
这个过程可以用一个伪代码来表示,当输入特征为H×H×M(H为输入特征图尺寸、M为通道数)、卷积核尺寸为r×r×N(r为卷积核尺寸、N为卷积核数量)、输出特征为(H+1-r)×(H+1-rN(H+1-r)时,基于1D-Winograd、2D-Winograd和3D-Winogrod卷积过程的伪代码如图 4所示。
图 4 3种Winograd卷积过程伪代码 Fig. 4 Three kinds pseudo code of Winograd convolution process
图选项




通过伪代码可以发现,基于3D-Winograd算法的乘法运算次数为(H/2)×(W/2)×M×N×(m×m×r×(r-1)),而2D-Winograd算法的乘法次数为(H/2)×(W/2)×M×N×(2×n×n×n+r×r×n+r×n×n+n×n+2×m×n×n),可见3D-Winograd算法能够更好地降低卷积时的乘法次数,从而降低计算复杂度。

2.1.2 tile扩展 Winograd算法在实际应用中比传统滑窗卷积算法效率高,主要是通过增加窗口滑动步长的方式来减少卷积运算时所需的循环层数,从而提高算法效率。在计算单个卷积层时,Winograd算法相较滑窗卷积算法,循环层数有所降低,同时时间复杂度也由H×W×M×N×R×R降低到H×W×M×N/S/S(H为输入特征图尺寸、M为通道数、r为卷积核尺寸、N为卷积核数量、S为步长)。
从上述卷积算法时间复杂度的计算方法可以看出,若要进一步降低时间复杂度和循环次数,可以通过进一步增大步长stride的方式来改进。如果需要增大步长S,则一定要增加输入tile的尺寸H,这个过程中会增加单个时钟周期内计算的复杂度,因此需要更多的硬件上计算资源。在实际应用中,考虑到硬件资源的情况,对于CNN内输入tile尺寸较大的卷积层应该采用尺寸较小的分tile方案,对于CNN内输入tile尺寸较小的卷积层应该采用尺寸较大的分tile方案。
2.2 量化和移位
2.2.1 量化 通过3D-Winograd来加速CNN在FPGA的运算过程,会增加存储资源的利用率。为进一步提高存储资源利用率,常见方法为:对权重数据、输入数据进行低比特量化,不但能提高CNN在FPGA运算效率,同时能够抵消tile扩展时带来计算资源占用率过高的问题。因此,在本实验中采用int8代替fp32的量化方法,可以在精度损失较小的情况下,大幅减少计算时延。

2.2.2 移位 通过3D-Winograd来加速CNN在FPGA的运算过程时,考虑到卷积计算时有许多增加计算复杂度的乘法和除法操作,为降低计算复杂度,在设计运算时,将与2的n次幂有关的乘法和除法操作都转换为计算复杂度更低的移位操作,通过这种方法来进一步加速卷积运算过程。
3 实验结果评估 本文先在单个卷积层上验证3D-Winograd算法的实验结果,并与滑窗卷积算法和2D-Winograd算法的实验结果进行比较,来验证方案的可行性。再以yolov2为主干网络测试3D-Winograd的优化效果。实验的硬件环境为:Zynq UltraScale+XCZU9EG-2FFVB1156 MPSoC,软件环境为:Vivado HLS 2018.2及Vivado 2018.2。
在与GPU的性能对比实验中,CNN在GPU平台上实验的硬件环境为NVIDIA Jetson TX2,操作系统环境为Ubuntu 16.04。
3.1 在单个卷积层上性能测试 在输入tile尺寸为26×26×5、卷积核尺寸为3×3×5×10、且输出tile尺寸为24×24×10的卷积层上分别对3D-Winograd算法和分tile尺寸扩展的方法进行性能测试。
3D-Winograd算法性能测试结果如表 1所示,可以看到,通过对2D-Winograd进行一维展开,使得计算时延降低7%左右,同时在计算资源占用上,DSP资源减少17%左右,触发器(Flip Flop,FF)、查找表(Look-Up-Table,LUT)等计算资源占用率降低了2倍左右。
表 1 3D-Winograd和2D-Winograd性能对比 Table 1 Performance comparison of 3D-Winograd and 2D-Winograd
性能指标 2D-Winograd[16] 3D-Winograd 结果
时钟周期 Latency 561 635 518 435 提高7%
资源占用 DSP/个 36 30 计算复杂度降低;计算资源减少
FF/个 10 264 5 670
LUT/个 11 399 6 275
乘法器/个 947 1 060 基本不变
注:2D-Winograd和3D-Winograd的tile尺寸为4×4,Fp32。


表选项






对分tile尺寸进行扩展的性能测试结果如表 2所示。可以发现,通过对一维展开的Winograd的输入tile尺寸大小进行适当的扩展得到的3D-Winograd,计算时延能够进一步降低2倍左右,但DSP、LUT计算资源会有3~4倍左右的增加。因此为了保证足够的硬件资源,一方面通过采用低比特量化的方法来降低计算资源占用率,另一方面对输入特征图尺寸较大的卷积层采用较小尺寸tile的划分方案、而对输入特征图尺寸较大的卷积层采用较大尺寸tile的划分方案效果会更好。
表 2 tile扩展前后性能对比 Table 2 Performance comparison before and after tile expansion
性能指标 3D-Winograd 3D-Winograd 结果
时钟周期 Latency 518 435 235 871 提高2.198倍
资源占用DSP/个 30 77计算资源增加
FF/个 5 670 21 492
LUT/个 6 275 20 965
乘法器/个 1 060 1 633 增加54%
注:3D-Winograd的tile尺寸分别为4×4,Fp32;6×6,Fp32。


表选项






通过低比特量化和运算过程优化的方法来优化3D-Winograd的效果,量化前后性能对比的实验结果如表 3所示。可以看到,通过将输入特征图数据和权重数据进行int8量化,使得计算时延降低7倍左右,同时DSP等计算资源占用率也降低了2倍左右,能够抵消tile扩展时带来计算资源占用率过高的问题,同时进行将与2的n次幂有关的乘除法操作都转换为移位操作的优化后,时钟周期数有一定程度的下降,乘法器资源也有2倍左右的减少。
表 3 量化前后性能对比 Table 3 Performance comparison before and after quantization
性能指标 3D-Winograd 3D-Winograd 结果
时钟周期 Latency 235 871 32 747, 30 633 提高7.20, 7.70倍
资源占用DSP/个 77 59, 47DSP资源降低1.31, 1.64倍
FF/个 21 492 4 087, 2 785
LUT/个 20 965 27 007, 10 412
乘法器/个 1 633 728, 657 减少2.24, 2.49倍
注:3D-Winograd的tile尺寸为6×6,Fp32;6×6, 8位定点/移位。


表选项






3.2 在CNN上进行性能测试 将3D-Winograd算法应用到以yolov2为主干网络的CNN上进行测试,对于yolov2内输入卷积核尺寸大于100的卷积层采用划分为小tile的方案,输入卷积核尺寸大于100的卷积层采用划分为大tile的方案,实验结果如表 4所示。通过实验可以看到,采用3D-Winograd方案后每个conv层的计算时延相较传统卷积算法降低7倍左右,相较2D-Winograd算法计算时延也有20%的提高,使得在嵌入式设备上加速CNN的卷积计算过程成为可能。实验中通过计算卷积运算需要多少次BFLOPS(Billion Float Operations)来衡量3D-Winograd算法的性能。
表 4 传统滑窗卷积、2D-Winograd和3D-Winograd算法性能对比 Table 4 Performance comparison of traditional sliding window learning, 2D-Winograd and 3D-Winograd algorithms
图层 输出特征图尺寸 卷核尺寸积 分块尺寸吞吐率/BFLOPS
传统滑窗卷积算法[19] 2D-Winograd[16] 3D-Winograd
Conv0 416×416×32 32/2 4×4 0.299 0.901 1.080
Conv1 208×208×64 64/2 4×4 1.595 5.168 6.201
Conv2 104×104×128 128/2 4×4 1.595 5.168 6.201
Conv3 104×104×64 64/2 4×4 0.177 0.521 0.637
Conv4 104×104×128 128/2 4×4 1.595 5.168 6.201
Conv5 52×52×256 256/4 6×6 1.595 11.361 13.623
Conv6 52×52×128 512/4 6×6 1.595 11.361 13.623
Conv7 52×52×256 256/4 6×6 0.177 1.167 1.399
Conv8 26×26×512 512/4 6×6 1.595 11.361 13.623
Conv9 26×26×256 256/4 6×6 0.177 1.167 1.399
Conv10 26×26×512 512/4 6×6 1.595 11.361 13.623
Conv11 26×26×256 256/4 6×6 0.177 1.167 1.399
Conv12 26×26×512 512/4 6×6 1.595 11.361 13.623
Conv13 26×26×1 024 1 024/4 6×6 3.190 21.022 25.230
Conv14 26×26×1 024 1 024/4 6×6 3.190 21.022 25.230
Conv15 26×26×1 024 1024/4 6×6 3.987 26.286 31.534
总时间/ms 1 052 160.963 123.799


表选项






3.3 CNN在FPGA和GPU的性能功耗比测试 将3.2节中yolov2为主干网络的CNN在GPU平台进行测试,在功耗计算方面,FPGA平台可以通过Xilinx Vivado的综合报告,得到FPGA平台的功耗为5.263 J,从而得到平均每个Conv层的功耗为0.328 94 J,而在GPU平台,一直在TX2平台的GPU+4CPU工作模式下,工作电流0.54 A、工作电压19 V,以及测得卷积时延0.049 3 s,从而得到GPU平台平均每个Conv层的功耗为8.1 J。
实验结果如表 5所示。通过实验可以看到,采用将CNN部署在FPGA平台相较于部署在GPU平台,有较低的功耗和更高的性能功耗比,非常适合在功耗要求较低的智能处理任务中应用。
表 5 CNN在FPGA和GPU的性能功耗比对比 Table 5 Comparison of CNN's performance/power ratio on FPGA and GPU
平台 平均每个Conv层吞吐率/BFLOPS 平均每个Conv层功耗/J 性能功耗比
FPGA 10.913 75 0.328 94 33.178
GPU 21.590 37 8.1 2.665


表选项






4 结束语 本文证明了一种基于一维展开的3D-Winograd算法FPGA解决方案,能够有效加速CNN在FPGA的运行效率。相较传统滑窗卷积算法和传统的Winograd算法,基于3D-Winograd算法的FPGA解决方案有更少的计算时延、更少的计算资源,以及更高的存储资源利用率。同时如果根据CNN每层的特性和硬件平台的特性选择不同的分tile方案和低比特量化方法,能够进一步有效改善在FPGA运行CNN的性能。与在GPU运行CNN的性能对比实验中,证明FPGA方案拥有较低的功耗,非常适合在功耗要求较低的智能处理任务中应用。但本文方法主要致力于算法本身的改善,对算法在硬件平台实际部署时, 如何改善硬件架构设计等问题的研究还不足,后续会继续朝着这个方向进行研究和优化。

参考文献
[1] ZHANG X F, WANG J S, ZHU C, et al. AccDNN: An IP-based DNN generator for FPGAs[C]//2018 IEEE 26th Annual International Symposium on Field-Programmable Custom Computing Machines (FCCM). Piscataway: IEEE Press, 2018: 210.
[2] GUAN Y J, LIANG H, XU N Y, et al. FP-DNN: An automated framework for mapping deep neural networks onto FPGAs with RTL-HLS hybrid templates[C]//2017 IEEE 25th Annual International Symposium on Field-Programmable Custom Computing Machines(FCCM). Piscataway: IEEE Press, 2017: 152-159.
[3] GEORGE J K, NEJADRIAHI H, SORGER V J. Towards on-chip optical FFTs for convolutional neural networks[C]//2017 IEEE International Conference on Rebooting Computing(ICRC). Piscataway: IEEE Press, 2017: 1-4.
[4] ORDó?EZ á, ARGVELLO F, HERAS D B. GPU accelerated FFT-based registration of hyperspectral scenes[J]. IEEE Journal of Selected Topics in Applied Earth Observations and Remote Sensing, 2017, 10(11): 4869-4878. DOI:10.1109/JSTARS.2017.2734052
[5] SUITA S, NISHIMURA T, TOKURA H, et al. Efficient cuDNN-compatible convolution-pooling on the GPU[C]//International Conference on Parallel Processing and Applied Mathematics. Berlin: Springer, 2019: 46-58.
[6] ZHANG C, PRASANNA V. Frequency domain acceleration of convolutional neural networks on CPU-FPGA shared memory system[C]//FPGA'17: Proceedings of the 2017 ACM/SIGDA International Symposium on Field-Programmable Gate Arrays, 2017: 35-44.
[7] CONG J, XIAO B J. Minimizing computation in convolutional neural networks[M]. Berlin: Springer, 2014: 281-290.
[8] SUDA N, CHANDRA V, DASIKA G, et al. Throughput-optimized OpenCL-based FPGA accelerator for large-scale convolutional neural networks[C]//FPGA'16: Proceedings of the 2016 ACM/SIGDA International Symposium on Field-Programmable Gate Arrays, 2016: 16-25.
[9] ZHANG C, SUN G Y, FANG Z M, et al. Caffeine: Toward uniformed representation and acceleration for deep convolutional neural networks[J]. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 2019, 38(11): 2072-2085. DOI:10.1109/TCAD.2017.2785257
[10] LAVIN A, GRAY S. Fast algorithms for convolutional neural networks[C]//2016 IEEE Conference on Computer Vision and Pattern Recognition(CVPR). Piscataway: IEEE Press, 2016: 4013-4021.
[11] ZHANG C, LI P, SUN G Y, et al. Optimizing FPGA-based accelerator design for deep convolutional neural networks[C]//FPGA'15: Proceedings of the 2015 ACM/SIGDA International Symposium on Field-Programmable Gate Arrays, 2015: 161-170.
[12] QIU J T, WANG J, YAO S, et al. Going deeper with embedded FPGA platform for convolutional neural network[C]//FPGA'16: Proceedings of the 2016 ACM/SIGDA International Symposium on Field-Programmable Gate Arrays, 2016: 26-35.
[13] YU J C, GE G J, HU Y M, et al. Instruction driven cross-layer CNN accelerator for fast detection on FPGA[J]. ACM Transactions on Reconfigurable Technology and Systems, 2018, 11(3): 1-23.
[14] AHMAD A, PASHA M A. Towards design space exploration and optimization of fast algorithms for convolutional neural networks (CNNs) on FPGAs[C]//2019 Design, Automation & Test in Europe Conference & Exhibition (DATE). Piscataway: IEEE Press, 2019: 1106-1111.
[15] LECUN Y, BOTTOU L, BENGIO Y, et al. Gradient-based learning applied to document recognition[J]. Proceedings of the IEEE, 1998, 86(11): 2278-2324. DOI:10.1109/5.726791
[16] LIANG Y, LU L Q, XIAO Q C, et al. Evaluating fast algorithms for convolutional neural networks on FPGAs[J]. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 2020, 39(4): 857-870. DOI:10.1109/TCAD.2019.2897701
[17] LU L Q, LIANG Y. SpWA: An efficient sparse Winograd convolutional neural networks accelerator on FPGAs[C]//2018 55th ACM/ESDA/IEEE Design Automation Conference (DAC). Piscataway: IEEE Press, 2018: 1-6.
[18] ZHAO Y L, WANG D H, WANG L O. Convolution accelerator designs using fast algorithms[J]. Algorithms, 2019, 12(5): 112. DOI:10.3390/a12050112
[19] REDMON J, FARHADI A. YOLO9000: Better, faster, stronger[C]//2017 IEEE Conference on Computer Vision and Pattern Recognition(CVPR). Piscataway: IEEE Press, 2017: 6517-6525.


相关话题/计算 资源 过程 实验 方案

  • 领限时大额优惠券,享本站正版考研考试资料!
    大额优惠券
    优惠券领取后72小时内有效,10万种最新考研考试考证类电子打印资料任你选。涵盖全国500余所院校考研专业课、200多种职业资格考试、1100多种经典教材,产品类型包含电子书、题库、全套资料以及视频,无论您是考研复习、考证刷题,还是考前冲刺等,不同类型的产品可满足您学习上的不同需求。 ...
    本站小编 Free壹佰分学习网 2022-09-19
  • 基于改进加权响应面的结构可靠度计算方法*
    在现有的结构可靠度分析方法中,一次二阶矩法[1]、二次二阶矩法[2-3]的精度较低,并且在非线性程度较高的情况下还会遇到无法收敛的问题。蒙特卡罗法[4-5]虽然能够得到精确解,但需要大量的抽样和计算时间,限制了其实际应用。响应面法[6]采用多项式函数来近似极限状态函数,原理简单、易于操作且计算效率较 ...
    本站小编 Free考研考试 2021-12-25
  • 深海采矿扬矿管的浮力提升方案分析*
    随着现代工业和人类活动消耗资源增加,有限的陆地资源已难以支持人类社会未来长久的可持续发展,作为潜在的资源宝库[1],海底资源的开发利用越来越受到人们的关注和重视[2]。海底集矿机与扬矿管组合的深海采矿系统凭借其高效率和可靠性成为当代深海采矿的主流系统。在海底资源开发系统中,扬矿管是一段长而柔软的管线 ...
    本站小编 Free考研考试 2021-12-25
  • 2024铝合金浸镍层的制备及生长过程*
    铝合金材料有着质量轻、强度高、切削性能良好等优点而被广泛应用在汽车、航空、航天、机械等领域。但是,铝合金的一些不良特性如显微硬度低、耐磨性差、耐腐蚀性差等限制了其应用,因此,表面改性对铝合金部件的制造过程至关重要。在各种表面处理工艺中,电镀与化学镀由于其独特的优势吸引了很多关注,通过在铝合金表面制备 ...
    本站小编 Free考研考试 2021-12-25
  • 载人航天器体装太阳电池阵有效发电面积计算方法*
    传统航天器一般采用太阳电池翼和蓄电池组合电源系统,入轨后太阳电池翼展开,阳照区通过驱动太阳电池翼对日定向为航天器供电、给蓄电池充电,阴影区由蓄电池为航天器供电[1]。航天器发电能力与轨道日照角、飞行姿态、太阳电池翼安装方式、驱动方式等密切相关,发电能力分析是航天器总体设计工作的一项重要内容[2-3] ...
    本站小编 Free考研考试 2021-12-25
  • 过站航班地面保障过程动态预测*
    随着近年来航空运输量持续平稳增长,航班高密度运行已成为常态。地面保障过程作为过站航班运行的核心部分,传统面向时间窗的固定运行模式已无法适应未来智慧机场发展趋势,因此其过程的动态精确预测成为实现航班精细化管理的关键问题[1]。地面保障指过站航班从上轮挡到撤轮挡2个保障节点之间以旅客、货邮、航空器为核心 ...
    本站小编 Free考研考试 2021-12-25
  • 脉冲射流强化喷流混合流动显示实验*
    尾喷流是飞行器3个主要的红外辐射源之一。在加力状态下,尾喷流的红外辐射可以达到飞行器总红外辐射的50%。强化喷流混合技术用于航空发动机可以有效降低尾喷流的核心区长度[1-2],从而降低红外辐射[3],提高飞行器隐身性能。强化喷流混合技术主要分为主动流动控制技术[4]和被动流动控制技术。其中,被动流动 ...
    本站小编 Free考研考试 2021-12-25
  • 飞机波浪水面迫降过程中极限冲击载荷数值研究*
    随着跨水域飞行航线日益增多,飞机在空中遭遇事故需要执行水上紧急降落任务的可能性也随之提高。有计划的水上紧急着陆被称作水上迫降,执行预定的水上迫降程序,飞机受到的纵向和横向载荷将会落在设计范围内[1-2],同时乘客将有几分钟的准备时间以承受迫降冲击。目前,飞机水上迫降的研究主要集中在平静水面迫降,形成 ...
    本站小编 Free考研考试 2021-12-25
  • 飞行器栖落机动的轨迹跟踪控制及吸引域优化计算*
    在自然界中,大型鸟类通过拉大飞行迎角来实现快速、准确的降落,将这种降落方式称为栖落机动。如果固定翼飞行器可以模仿大型鸟类进行栖落机动,即拉大飞行迎角、快速降低飞行速度并最终栖落在目标区域,那么将极大地扩展其应用场合[1-3]。栖落机动不但能保留固定翼飞行器在续航时间、飞行范围和速度等方面的优势,还能 ...
    本站小编 Free考研考试 2021-12-25
  • 高强度弹性合金的微孔铣削实验研究*
    近年来,微细切削技术愈加受到重视,成为新兴的先进制造技术,在加工领域获得广泛应用[1]。微细切削加工是指利用微型切削刀具(直径1mm以下的铣刀或钻头、微型车刀等)对微小尺寸(几微米到几毫米)的工件进行材料切削去除,并且其切削深度为微米级的切削加工方法[2-4]。一般,微细切削加工可获得较高的加工精度 ...
    本站小编 Free考研考试 2021-12-25
  • 空地量子密钥分发网络中数据协调方案*
    量子密钥分发(QuantumKeyDistribution,QKD)技术是量子通信中发展比较成熟的一个分支,目前研究人员已经在一些地区设计实验了一些节点数量有限的小型化QKD网络,其中基于量子卫星的QKD网络可以极大地增加通信距离。虽然量子卫星克服了远距离光子损耗的问题,但是通信的实时全方位覆盖和多 ...
    本站小编 Free考研考试 2021-12-25