news 2026/4/26 2:18:19

【红外小目标检测实战 五】轻量化模型结构及去除DFL以加速边缘推理

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【红外小目标检测实战 五】轻量化模型结构及去除DFL以加速边缘推理

接前篇,常规卷积在CUDA上回进行内存重排,使之变为连续的,然后放到CUDA核或者Tensor核上进行一系列高性能的乘加操作。但是风车卷积不是常规的卷积,虽说参数量也小,但是在jetson上无对应的高性能算子,导致访存不连续,进而拉慢了推理性能。本篇去掉了风车型卷积,改回SPDConv,同时去掉了边缘设备上不友好的DFL结构,并将激活函数从SiLU改为ReLU重新训练,以提高边缘设备推理性能。

一、模型信息

模型结构图

YAML文件

nc:1# number of classesscales:# model compound scaling constants, i.e. 'model=yolo11n.yaml' will call yolo11.yaml with scale 'n'# [depth, width, max_channels]n:[0.5,0.50,1024]# s: [1.0, 1.00, 1024]# m: [1.00, 2.00, 512]backbone:# [from, repeats, module, args]-[-1,1,SPDConv,[32]]-[-1,1,SPDConv,[64]]-[-1,2,C3k2,[64,True,0.25]]# 2 P2-[-1,1,Conv,[64,3,2]]-[-1,2,C3k2,[128,True,0.25]]# 4 P3-[-1,1,Conv,[128,3,2]]-[-1,2,C3k2,[256,False]]# 6 P4-[-1,1,SPPF,[256,5]]-[-1,2,C2PSA,[256]]# 8head:-[-1,1,nn.Upsample,[None,2,"nearest"]]-[[-1,4],1,Concat,[1]]# cat backbone P3-[-1,2,C3k2,[128,False]]# 11-[-1,1,nn.Upsample,[None,2,"nearest"]]-[[-1,2],1,Concat,[1]]# cat backbone P2-[-1,2,C3k2,[64,False]]# 14-[-1,1,Conv,[64,3,2]]-[[-1,11],1,Concat,[1]]-[-1,2,C3k2,[128,False]]# 17# 向上分支,融合原始特征-[-1,1,nn.Upsample,[None,2,"nearest"]]-[[-1,2],1,Concat,[1]]# cat backbone P2-[-1,2,MicroC3,[64]]# 20-[-1,1,HDC,[64]]-[-1,1,ART,[64]]# 22-[17,1,Conv,[128,3,2]]-[[-1,8],1,Concat,[1]]# 24-[-1,2,C3k2,[256,True]]#-[[22,17,25],1,Detect,[nc]]# Detect(P2, P3, P4)# - [[21, 17, 24], 1, Detect, [nc]] # 减少一个concat

模型参数量分析

n-model总体FLOPs很小,只有4.78G,参数量500多K。
s-modelFLOPs也只有21.554G

二、详细改动

1.关闭DFL

ultralytics/nn/modules/head.py

classDetect(nn.Module):...def__init__(self,nc:int=80,ch:tuple=()):""" Initialize the YOLO detection layer with specified number of classes and channels. Args: nc (int): Number of classes. ch (tuple): Tuple of channel sizes from backbone feature maps. """super().__init__()self.nc=nc# number of classesself.nl=len(ch)# number of detection layers# self.reg_max = 16 # DFL channels (ch[0] // 16 to scale 4/8/12/16/20 for n/s/m/l/x)self.reg_max=1# !!!注释掉上面一句,修改为这个

2.修改模块激活函数

ultralytics/nn/modules/conv.py

classConv(nn.Module):""" Standard convolution module with batch normalization and activation. Attributes: conv (nn.Conv2d): Convolutional layer. bn (nn.BatchNorm2d): Batch normalization layer. act (nn.Module): Activation function layer. default_act (nn.Module): Default activation function (SiLU). """# default_act = nn.SiLU() # default activationdefault_act=nn.ReLU()# !!!修改在此处

其余使用到的模块,也需要检查激活函数是否为ReLU.

三、实验结果

测试集上混淆矩阵

网络在自制测试集上的召回率和准确率都很高。

推理性能

n-model在jetson nx板子上,可以达到90FPS!

四、后续

  • 推理代码分享
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 17:25:20

ANYROUTER:AI如何重构下一代网络路由开发

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个基于AI的网络路由优化系统,能够实时分析网络流量、设备状态和用户需求,自动调整路由策略以提高传输效率和稳定性。系统应包含流量监控、智能调度算…

作者头像 李华
网站建设 2026/4/22 17:28:49

30秒生成正则表达式:快速验证你的文本匹配想法

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 实现一个极速正则表达式原型工具,左侧输入测试文本数据集,右侧输入表达式立即显示匹配结果。支持:1) 多组测试数据切换 2) 匹配分组高亮 3) 常见…

作者头像 李华
网站建设 2026/4/23 11:28:02

AI体态矫正APP开发指南:低成本验证创意,按小时计费

AI体态矫正APP开发指南:低成本验证创意,按小时计费 1. 为什么需要体态矫正APP? 现代人久坐不动、低头看手机等不良习惯导致体态问题日益普遍。据统计,超过70%的上班族存在不同程度的驼背、圆肩等问题。开发一款AI体态矫正APP可以…

作者头像 李华
网站建设 2026/4/24 15:43:48

对比传统方式:OpenMetadata如何提升数据团队10倍效率

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个元数据管理效率对比工具,要求:1. 模拟传统手工维护数据字典的工作流 2. 实现OpenMetadata自动化采集流程 3. 设计对比指标:元数据采集时…

作者头像 李华
网站建设 2026/4/18 10:06:21

传统Token开发vsAI生成SATOKEN:效率对比实验

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 生成一个完整的SATOKEN管理系统对比演示项目。左侧面板展示传统手工编写的SATOKEN代码(约500行),右侧面板展示AI生成的等效功能代码。要求包含:1) 代码量对…

作者头像 李华
网站建设 2026/4/23 10:16:56

AI人脸隐私卫士 vs 传统手动打码:效率成本全面对比

AI人脸隐私卫士 vs 传统手动打码:效率成本全面对比 1. 引言:为何需要智能人脸隐私保护? 随着社交媒体、公共监控和数字档案的普及,个人面部信息正以前所未有的速度被采集与传播。在企业宣传照、新闻配图、社区活动记录等场景中&…

作者头像 李华