1. 项目概述与核心挑战在无人机应急巡查、卫星灾害监测等场景中从遥感图像中实时、准确地分割出水体区域是评估洪涝范围、监测水体污染、预警地质灾害的关键一环。然而这个看似直观的任务背后却横亘着几座技术“大山”。首先传统的基于光谱指数如NDWI、MNDWI的方法其效果严重依赖于精确的大气校正而大气校正本身就是一个计算复杂、需要多参数辅助的预处理步骤在星载或机载的实时处理场景中几乎无法实现。其次水体的光谱特征并非一成不变受水体深度、悬浮物、叶绿素含量、甚至拍摄时太阳高度角的影响同一条河流在不同河段、不同时间可能呈现出截然不同的颜色这给基于固定阈值的分割方法带来了巨大挑战。近年来基于深度学习的语义分割网络如UNet、DeepLab系列展现出了强大的特征学习能力。但为了追求高精度这些网络往往设计得非常庞大和复杂动辄数千万甚至上亿的参数计算开销巨大。将它们直接部署到Jetson Orin NX这类机载或星载的边缘计算设备上要么推理速度无法满足“实时”要求通常指每秒处理数帧以上要么巨大的功耗和内存占用让设备不堪重负。因此这个项目的核心目标非常明确设计一个专为边缘实时水体分割而生的轻量级网络。它必须能在不进行大气校正的前提下直接从原始遥感数据DN值或TOA辐射亮度值中鲁棒地分割出水体同时保持极低的参数量和计算量确保在资源受限的平台上也能流畅运行。我们提出的ASFC-LNetApproximate Spectral Feature soft-Constraint Lightweight Network正是对这一系列挑战的回应。2. 核心设计思路与方案选型面对上述挑战我们的设计思路围绕三个核心原则展开特征互补、计算高效和边界精准。传统的深度学习方法主要利用RGB三通道的空间纹理和形态特征这在水体与背景对比明显时效果很好但对于小水体、浑浊水体或与阴影混淆的区域容易漏检或误检。而传统的光谱指数方法虽然对水体敏感但受噪声和未校正的大气影响大单独使用会产生大量椒盐噪声。2.1 为什么选择“近似光谱特征”而非“精确光谱特征”这是本方案的一个关键出发点。在实时边缘计算场景下获取经过精确大气校正的地表反射率数据是不现实的。因此我们退而求其次使用“近似光谱特征”。具体来说我们直接对原始波段的数字量化值DN进行简单的波段运算例如计算 (Green - NIR) / (Green NIR) 来模拟NDWI。虽然这些计算得到的值并非物理意义上真实的地表反射率比值但它们保留了不同地物尤其是水体在不同波段间的相对差异关系。这种“近似”的特征作为一个强有力的先验知识可以引导网络关注那些光谱响应模式像水体的区域。注意这里的“近似”不是妥协而是一种面向实际工程约束的务实选择。它放弃了物理精度换取了实时处理的可能性并通过后续的神经网络融合来弥补其噪声和不确定性。2.2 网络架构总览分而治之软约束融合ASFC-LNet的整体架构是一个精心设计的“分-合-精”流程如图1所示此处为文字描述原论文有结构图。其核心包含三个模块轻量级伪孪生特征提取网络LPSE采用两个结构相似但深度不同的分支分别从原始RGB图像和计算得到的近似光谱指数图中提取特征。一个分支专注于空间形态特征RGB分支另一个分支专注于光谱响应特征光谱分支。这种“伪孪生”设计而非完全相同的孪生网络是因为光谱特征图本身信息量单通道或少数通道和复杂度通常低于RGB图像可以用更浅的网络来提取从而进一步节省计算。近似光谱特征软约束融合机制ASFC这是网络的“大脑”和“仲裁者”。它不是一个简单的特征拼接或相加而是引入了一个空间注意力机制动态地为每个像素位置生成一个融合权重图。这个权重图同时考虑了空间分支和光谱分支的特征显著性。如果某个位置在光谱特征上表现出强烈的水体特性而在空间纹理上不明显如小面积水体ASFC会给予光谱特征更高的权重反之亦然。这种“软约束”意味着光谱特征不是硬性规则而是以一种可学习、自适应的方式去影响和修正空间特征的判断。基于自蒸馏的边缘感知轻量解码器水陆边界往往是分割的难点边缘模糊、渐变区域容易出错。我们在解码器中引入了一个空洞空间金字塔池化ASPP模块专门用于增强边缘区域的多尺度上下文信息。更巧妙的是我们设计了一个自蒸馏机制利用主水体分割解码器的预测结果和真实标签动态生成一个“边缘标签”用来监督一个额外的、轻量的边缘解码器。在训练阶段这个边缘解码器迫使共享的特征提取层更关注边界信息。在推理阶段边缘解码器被移除不增加任何额外计算开销却让主解码器继承了更好的边界感知能力。2.3 轻量化策略选型背后的考量为了实现实时性我们在各个模块都贯彻了轻量化设计LPSE中的基础块借鉴了ShuffleNet的思想大量使用深度可分离卷积Depthwise Separable Convolution和通道混洗Channel Shuffle。深度可分离卷积将标准卷积分解为逐通道卷积和逐点卷积能大幅减少参数和计算量。通道混洗则促进了不同通道组间信息的流通弥补了分组卷积可能造成的信息隔离。ASPP的放置ASPP模块能有效扩大感受野捕捉多尺度上下文但它本身会引入额外的计算。一个常见的做法是将其放在主分割路径上。在我们的设计中我们将其移到了辅助的边缘解码器中。这样在推理时ASPP带来的计算负担被完全移除而其对边界信息的增强效果通过自蒸馏机制已经“知识蒸馏”到了主网络的特征中。1x1卷积的广泛使用在解码器头部我们使用1x1卷积将通道数映射到类别数。1x1卷积是性价比最高的操作之一它能进行通道间的信息整合和降维且参数量极少。3. 核心模块深度解析与实操要点3.1 轻量级伪孪生特征提取网络LPSE的实现细节LPSE由两个分支构成空间特征提取分支和光谱特征提取分支。两者采用相似的模块化设计但深度不同。空间特征提取分支的结构类似于一个轻量化的主干网络。它包含一个初始卷积层随后是三个由DownSampling Block和多个Basic Block构成的阶段Stage。具体配置为stage[4, 8, 4]即三个阶段分别包含4、8、4个Basic Block。下采样块DownSampling Block为了实现高效的下采样我们没有使用传统的最大池化而是采用了步长为2的深度卷积Depthwise Convolution with stride2。随后接一个1x1卷积来调整通道数。经过下采样后特征图空间尺寸减半通道数翻倍。这样做的好处是深度卷积首先在空间上进行压缩再由1x1卷积进行通道融合和扩展比直接使用标准卷积下采样更高效。基础块Basic Block这是特征提取的核心单元。其流程为输入特征图 -通道分割Channel Split- 分支1: 1x1卷积 - 分支2: 3x3深度卷积 -通道拼接Concat-通道混洗Channel Shuffle。这个块的设计确保了输入输出的空间尺寸和通道数不变是一个高效的残差学习单元。光谱特征提取分支是空间分支的“轻量版”。由于近似光谱指数图通常是单通道或少数通道包含的信息相对简单我们不需要那么深的网络来提取特征。因此我们减少了每个阶段中Basic Block的数量配置为stage[2, 4, 2]。这样在保证能提取多尺度光谱特征的同时进一步压缩了参数量和计算量。实操心得在自定义这个分支时通道数的设置需要谨慎。虽然光谱输入通道少但经过第一个1x1卷积升维后后续层的通道数设置可以与空间分支对齐或按比例缩减这需要通过实验来确定一个平衡点既要保证特征表达能力又不能引入过多冗余。3.2 近似光谱特征软约束融合机制ASFC的工作原理ASFC模块是本文的创新核心其目的是自适应地融合空间和光谱特征。它不是一个简单的注意力机制应用而是有明确的物理和逻辑考量。步骤一生成空间注意力图对于输入的特征图X(尺寸 H x W x C)我们同时计算其全局平均池化Global Average Pooling和全局最大池化Global Max Pooling结果得到两个 H x W x 1 的特征图。平均池化捕捉全局上下文最大池化捕捉最显著的特征。将这两个结果在通道维度拼接得到一个 H x W x 2 的特征图它融合了两种不同的空间统计信息。步骤二生成共享融合权重将这个拼接后的特征图通过一个1x1卷积层起到融合和降维作用再经过Sigmoid激活函数生成一个范围在[0, 1]之间的空间注意力权重图Weight Map。权值越接近1表示该像素位置的特征越重要。关键设计共享权重我们不是为空间特征和光谱特征分别生成独立的权重图而是将两者的空间注意力图Ms_spatial和Ms_spectral先拼接再通过一个共享的卷积层生成一个统一的融合权重图Weight。这样设计基于两点考虑一致性引导当空间特征和光谱特征在目标区域都表现出高响应时即两者注意力图一致共享权重能强化这种共识。冲突仲裁当两者不一致时例如光谱认为是水体空间纹理像阴影共享权重的生成过程拼接后卷积实际上是一个“仲裁”过程网络会学习在冲突情况下如何取舍生成一个折中的、更鲁棒的权重。步骤三加权融合最后使用这个统一的权重图分别对空间特征和光谱特征进行元素级乘法Element-wise Multiplication然后将加权后的特征相加得到融合后的特征F_fusion。 公式表示为F_fusion Feature_spatial * Weight Feature_spectral * Weight这个过程可以直观理解为网络自己学习了一幅“地图”这幅地图告诉它在图像的哪些区域应该更相信RGB纹理在哪些区域应该更相信光谱指数从而实现动态的、像素级的特征优选。3.3 基于自蒸馏的边缘感知解码器边界分割不准是语义分割的常见问题。我们设计了一个双解码器结构但在推理时只有一个生效。水体解码器主解码器接收ASFC融合后的特征经过简单的上采样和1x1卷积输出最终的水体分割概率图。损失函数采用标准的二元交叉熵损失L_WB。边缘解码器辅助解码器其输入是融合特征经过一个ASPP模块增强后的特征。ASPP使用不同膨胀率如6, 12, 18的空洞卷积并行处理特征以捕获多尺度的上下文信息这对理解边缘的渐变和上下文关系至关重要。边缘解码器结构与主解码器类似输出边缘预测图。自蒸馏机制的精髓 在训练时我们需要一个“老师”来指导边缘解码器。这个老师不是固定的真实边缘标签因为标注数据通常不提供单独的边缘标注而是动态生成的。生成方式如下将主解码器的输出概率图二值化R(x,y)。使用一个简单的边缘提取算子如Canny或Sobel在代码中通常是一个固定的卷积核从二值化结果中提取预测边缘。将这个预测边缘与真实标签的掩码G(x,y)进行元素相乘。SD_edge G(x,y) * Edge_Extract(R(x,y))。 这样生成的SD_edge自蒸馏边缘标签具有一个关键特性它只保留那些在真实水体区域内的、并且被主解码器初步预测出来的边缘。这相当于让边缘解码器去重点学习那些“已经被主解码器大致找到但可能不够精确”的边界。边缘解码器的损失函数采用Dice损失L_SDE它对小目标如细边缘更友好。总损失为L L_WB λ * L_SDEλ为平衡系数。注意事项自蒸馏机制的成功依赖于主解码器在训练初期不能太差否则生成的边缘标签噪声太大。在实践中可以采用课程学习Curriculum Learning的策略例如在训练初期让λ较小随着训练进行逐渐增大让网络先学会找大体区域再精细化边缘。4. 从训练到部署完整实操流程与核心环节4.1 数据准备与预处理我们使用了两个数据集FloodNet无人机航拍和GF-FloodNet高分二号卫星。FloodNet包含2343张3000x4000的RGB图像。我们需要将类别进行合并把waterflooded-roadswimming-pool合并为“水体”标签1其余所有类别合并为“背景”标签0。由于图像尺寸巨大需要裁剪成适合网络输入的小块如256x256或512x512。同时必须保留原始的JPEG格式数据因为我们不进行大气校正。GF-FloodNet包含13388张256x256的多光谱图像R, G, B, NIR四个波段。我们需要用这些波段来计算近似光谱指数如NDWI。数据划分时要注意地理分布均衡避免模型过拟合到特定区域。近似光谱指数的计算 在数据加载管道DataLoader中我们需要在线计算近似光谱指数。以NDWI为例def calculate_ndwi(image): # image: [C, H, W], 假设通道顺序为 [R, G, B, NIR] green image[1, :, :] # G波段 nir image[3, :, :] # NIR波段 ndwi (green - nir) / (green nir 1e-6) # 加一个小数防止除零 # 将NDWI值归一化到[0, 1]或[-1, 1]区间方便网络处理 ndwi_normalized (ndwi 1) / 2 # 假设NDWI范围在[-1,1] return ndwi_normalized.unsqueeze(0) # 增加通道维度变成[1, H, W]这样网络的输入就变成了一个双流输入一个3通道的RGB张量和一个1通道的或多个通道的如果用了多个指数近似光谱特征图。4.2 模型训练与调参策略训练环境使用PyTorch框架在NVIDIA RTX A6000 GPU上进行训练。优化器Adam优化器初始学习率设为0.0005。这是一个相对较小的学习率因为我们的网络轻量参数更新需要更精细。学习率调度采用余弦退火Cosine Annealing策略让学习率从初始值平滑下降到最小值如0.000005。这有助于模型在训练后期稳定收敛。批次大小设置为64。较大的批次大小有助于稳定梯度估计但需要根据GPU显存调整。如果显存不足可以使用梯度累积Gradient Accumulation来模拟大批次效果。训练轮数50个Epoch。对于轻量级网络通常不需要像大型网络那样训练上百个Epoch。损失函数权重总损失L L_WB λ * L_SDE。在实验中λ可以设置为1。但如前所述可以采用动态调整策略。训练技巧预热Warm-up在训练的最开始1-2个Epoch使用一个非常小的学习率如初始学习率的十分之一进行预热有助于稳定训练初期。数据增强对于遥感图像常用的增强包括随机水平/垂直翻转、随机旋转90度倍数、颜色抖动对RGB流等。注意对光谱指数图进行增强时需要确保其与RGB图进行完全相同的空间变换旋转、裁剪等以保持空间对齐。类别不平衡处理水体像素通常远少于背景像素。除了使用Dice Loss这类对类别不平衡不敏感的损失函数外也可以在数据加载时对包含水体的图像进行过采样。4.3 模型轻量化与嵌入式部署实战训练完成后我们得到一个PyTorch模型.pth文件。为了在Jetson Orin NX上实现高效推理需要经过以下步骤步骤一模型转换PyTorch - ONNXONNXOpen Neural Network Exchange是一个开放的模型格式是连接训练框架和部署引擎的桥梁。import torch import onnx model ASFC_LNet() # 你的模型类 model.load_state_dict(torch.load(best_model.pth)) model.eval() dummy_input_rgb torch.randn(1, 3, 256, 256).to(cuda) dummy_input_spec torch.randn(1, 1, 256, 256).to(cuda) # 假设光谱指数为单通道 # 导出ONNX模型注意输入是两个 torch.onnx.export(model, (dummy_input_rgb, dummy_input_spec), asfc_lnet.onnx, input_names[rgb_input, spec_input], output_names[output], opset_version11, dynamic_axes{rgb_input: {0: batch_size}, spec_input: {0: batch_size}, output: {0: batch_size}})关键点导出时必须指定动态批次维度dynamic_axes以便在部署时处理不同批次的输入。步骤二TensorRT优化与量化TensorRT是NVIDIA的高性能深度学习推理优化器和运行时。它能对模型进行图优化、层融合、精度校准等操作极大提升推理速度。生成TensorRT引擎可以使用TensorRT的Python API或命令行工具trtexec。这里以trtexec为例它最简单直接。/usr/src/tensorrt/bin/trtexec \ --onnxasfc_lnet.onnx \ --saveEngineasfc_lnet_fp16.engine \ --fp16 \ --workspace1024 \ --verbose--fp16: 启用FP16半精度量化。这是加速推理的关键Jetson Orin的GPU对FP16有很好的支持速度比FP32快很多精度损失通常可接受。--workspace: 设置GPU内存工作空间大小MB。如果遇到“out of memory”错误可以适当增大此值。--verbose: 输出详细信息便于调试。INT8量化可选进一步加速INT8量化能带来更大的速度提升和内存节省但需要一部分校准数据来确定每一层的动态范围。/usr/src/tensorrt/bin/trtexec \ --onnxasfc_lnet.onnx \ --saveEngineasfc_lnet_int8.engine \ --int8 \ --calib校准数据缓存文件 \ --workspace1024生成校准数据通常需要编写一个Python脚本用一批代表性数据训练集的一个子集跑一遍模型统计每一层激活值的分布。步骤三Jetson Orin NX上的C推理部署在生产环境中通常使用C进行部署以获得最佳性能。核心流程如下#include NvInfer.h #include NvOnnxParser.h #include cuda_runtime_api.h // 1. 加载TensorRT引擎文件 std::ifstream engineFile(asfc_lnet_int8.engine, std::ios::binary); engineFile.seekg(0, std::ifstream::end); size_t size engineFile.tellg(); engineFile.seekg(0); std::vectorchar engineData(size); engineFile.read(engineData.data(), size); nvinfer1::IRuntime* runtime nvinfer1::createInferRuntime(logger); nvinfer1::ICudaEngine* engine runtime-deserializeCudaEngine(engineData.data(), size, nullptr); // 2. 创建执行上下文 nvinfer1::IExecutionContext* context engine-createExecutionContext(); // 3. 准备输入输出缓冲区 void* buffers[3]; // 假设有两个输入一个输出 int inputIndexRGB engine-getBindingIndex(rgb_input); int inputIndexSpec engine-getBindingIndex(spec_input); int outputIndex engine-getBindingIndex(output); // 在GPU上分配内存 (cudaMalloc) cudaMalloc(buffers[inputIndexRGB], batchSize * 3 * 256 * 256 * sizeof(float)); cudaMalloc(buffers[inputIndexSpec], batchSize * 1 * 256 * 256 * sizeof(float)); cudaMalloc(buffers[outputIndex], batchSize * 1 * 256 * 256 * sizeof(float)); // 4. 数据预处理并拷贝到GPU // - 将RGB图像从uint8 [0,255] 归一化到float32 [0,1]或[-1,1] // - 计算光谱指数并归一化 // - 使用cudaMemcpyHostToDevice将数据拷贝到buffers中 // 5. 执行推理 context-enqueueV2(buffers, stream, nullptr); // stream是CUDA流 // 6. 将结果拷贝回CPU并后处理 cudaMemcpyAsync(outputHost, buffers[outputIndex], outputSize, cudaMemcpyDeviceToHost, stream); cudaStreamSynchronize(stream); // 7. 后处理对输出的概率图进行阈值化如0.5得到二值分割图部署优化技巧流水线Pipeline使用多个CUDA流实现数据拷贝Host-Device、内核执行、数据拷贝Device-Host的重叠最大化GPU利用率。批处理Batching虽然实时处理常为单张图但TensorRT引擎支持动态批次。如果处理的是视频流或连续图像可以积累几帧一起处理能显著提升吞吐量。使用DLADeep Learning AcceleratorJetson Orin系列内置了DLA核心可以将其用于部分网络层的计算与GPU并行进一步提升能效比。在构建引擎时可以通过--useDLACore参数指定。5. 实验结果分析与避坑指南5.1 性能对比与结果解读我们在FloodNet和GF-FloodNet数据集上进行了充分的实验对比如表1和表2所示此处为文字描述原论文有详细表格。关键指标解读IoU交并比这是分割任务的核心指标。ASFC-LNet在FloodNet上达到70.74%在GF-FloodNet上达到92.26%。后者精度更高可能是因为卫星图像分辨率相对均匀且GF-FloodNet数据质量较好。参数量0.22M与计算量0.32 GFLOPs这是一个巨大的优势。对比DeepLabv3参数量约54M我们的模型体积缩小了250倍以上。这使得模型可以轻松部署在内存有限的嵌入式设备上。推理时间6.45 ms在Jetson Orin NX上这意味着每秒可以处理约155张256x256的图像完全满足实时性要求通常30 FPS。视觉对比分析 从论文中的可视化图图8-12可以清晰看出ASFC-LNet的优势小水体检测在FloodNet场景1中左上角的小型蓝色水体DeepLabv3完全漏检UNet和Ewas检测不全而ASFC-LNet完整检出。这得益于光谱特征的软约束即使空间纹理特征弱光谱响应也能提供强信号。复杂边界处理在存在藻类覆盖图9或树木遮挡图10的水体边界我们的方法能生成更清晰、连贯的边界。这直接归功于自蒸馏的边缘感知解码器。抗光谱变异在大范围卫星影像图12中河流、湖泊、水库颜色各异但我们的方法都能较准确地分割说明模型对水体的光谱变化有一定的鲁棒性。5.2 消融实验的启示消融实验表3和表4清晰地证明了每个模块的有效性基线模型仅空间特征IoU为67.66%FloodNet。这说明仅靠RGB空间特征模型能力有限。 ASFC融合IoU提升至70.64%。2.98个百分点的提升直接证明了近似光谱特征软约束的有效性。它提供了RGB通道之外的关键判别信息。 自蒸馏边缘解码器并将ASPP移至其中IoU进一步提升至70.74%同时参数量从2.2M暴降至0.22M计算量从3.68 GFLOPs降至0.32 GFLOPs。这说明了我们架构设计的精妙之处将计算密集的模块ASPP放到仅在训练时使用的辅助分支中通过知识蒸馏将其效益传递到主网络在推理时将其剥离实现了精度和效率的双赢。5.3 常见问题与排查技巧实录在实际复现和部署过程中你可能会遇到以下问题问题1模型训练时Loss不下降或震荡剧烈。可能原因学习率设置不当数据预处理特别是光谱指数计算和归一化有误类别极端不平衡。排查步骤检查数据加载器确保RGB和光谱指数图是正确对齐的。可视化几对输入数据看看。将学习率调低一个数量级如从0.0005调到0.0001试试或者加入Warm-up。检查损失函数。尝试使用Focal Loss或Dice Loss替代标准的交叉熵损失以缓解背景像素占主导的问题。监控中间特征图。在ASFC融合前后分别可视化空间特征、光谱特征和融合权重图看它们是否具有合理的注意力模式。问题2模型在训练集上表现好但在验证集上IoU很低。可能原因过拟合验证集和训练集的数据分布差异大在遥感中很常见如城乡差异、季节差异。排查步骤增强数据多样性。使用更激进的数据增强如MixUp、CutMix等。在GF-FloodNet这类多区域数据集上确保训练集和验证集都包含所有地区的样本而不是按图像顺序简单划分。尝试加入轻微的权重衰减Weight Decay或Dropout层虽然轻量网络一般不用太多Dropout。问题3TensorRT转换失败或推理结果错误。可能原因ONNX导出时节点不支持动态维度设置错误FP16/INT8量化导致精度损失过大。排查步骤使用trtexec的--verbose模式查看转换失败的具体层或错误信息。简化模型。检查网络中是否有非常规操作如自定义的通道混洗。尝试用TensorRT支持的标准算子替换。先使用FP32模式不加--fp16生成引擎确保模型转换和推理正确。然后再尝试FP16。对于INT8确保校准数据具有代表性。在Python中使用TensorRT的API进行推理并与PyTorch原始模型的输出进行逐层对比使用小的随机输入定位产生差异的层。问题4在Jetson上推理速度达不到预期。可能原因没有启用GPU的FP16或INT8加速内存带宽瓶颈CPU预处理成为瓶颈。排查步骤使用sudo jetson_clocks命令将Jetson设备设置为最大性能模式。使用nvprof或Nsight Systems工具进行性能剖析查看是内核执行慢还是数据搬运慢。优化数据预处理流水线。尽可能将图像归一化、光谱指数计算等操作放在GPU上进行例如使用CUDA核或PyTorch/TensorRT的插件。避免在CPU和GPU之间频繁拷贝小数据。确保使用的是TensorRT优化后的引擎.engine文件而不是直接运行ONNX模型。问题5对小水体的分割仍然不理想。可能原因下采样倍数过大小水体特征在深层丢失光谱指数对于某些特殊小水体如非常清澈或污染严重响应不强。优化方向调整LPSE网络的下采样策略。可以考虑移除第一个下采样或者使用空洞卷积来保持更大的特征图分辨率但这会增加计算量。尝试不同的或组合多个近似光谱指数如NDWI, MNDWI作为光谱分支的输入为网络提供更丰富的光谱线索。在损失函数中为小水体像素增加权重或者采用基于IoU的损失函数如IoU Loss或Tversky Loss它们对小目标更敏感。这个项目从问题定义、算法设计、代码实现到最终部署形成了一个完整的闭环。它告诉我们在边缘AI应用中极致的性能优化来自于算法创新与工程实践的紧密结合。放弃对“绝对精度”的执念在“可用精度”和“可用资源”之间找到最佳平衡点并利用软约束、知识蒸馏等思想将先验知识巧妙地嵌入轻量网络中是解决此类问题的有效路径。