DetNet学习与总结

DetNet是一种用于物体检测的网络,其核心在于修改了ResNet50的结构,使用dilated卷积来增加感受野,同时保持高层特征图的高分辨率,以改善目标检测的准确性。与FPN相比,DetNet在减少小目标信息丢失的同时,控制了计算量的增长。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DetNet: A Backbone network for Object

这个网络主要是用来做物体检测的,而我主要是想用它的网络做backbone,了解这个网络之前需要先去了解resnet原理,差别很小
前四层完全用的是Resnet50的网络结构(1+(3+4+6)x3 = 40)
先上图:

在这里插入图片描述

上图是DetNet与ResNet的主要区别
在于bottleneck中,kernel_size为3x3的卷积层中用到了dialation

对比:
在这里插入图片描述
A中FPN在分类网络的基础上增加了不同层的融合操作,最终的预测层甚至包含stride等于64的P6层,也就是输出特征维度是输入图像的1/64,这么小的特征图对于目标的回归而言其实不是很有利,因为高层主要负责检测大尺寸目标,所以容易导致大尺寸目标的坐标回归不准。另外,虽然FPN通过特征融合的方式将高层特征和浅层特征进行融合可以提高浅层检测小尺寸目标的效果,但是由于高层这种大stride的原因,小尺寸目标的语义特征在高层丢失也比较多,因此即便融合也会对最后的结果有不利的影响。

B中分类网络一般最终的stride是32,也就是最终输出特征的尺寸是输入图像的1/32,比如在分类模型中常见的输入大小为224*224的图像,输出特征大小是7x7。

C中DetNet的backbone并没有对输入图像做过多的降采样,最终的stride保持为16,这样相当于增加了最终输出特征图的尺寸(或者叫分辨率,spatial resolution)。DetNet整体上还是沿用了FPN的特征融合方式(这部分在Figure1C中没有体现出来),只不过对高层的stride做了修改,尽可能减少了高层的小尺寸目标语义特征的丢失。

但是如果网络高层的特征不做像分类网络那样多的降采样(将stride等于32修改为stride等于16)会带来两个问题:1、增加计算量。这个很容易理解,毕竟特征图比之前的大,计算量的增加不可避免。2、高层的感受野(receptive field)减小。感受野和信息丢失类似跷跷板,既然前面选择了尽可能减少高层的特征信息丢失,那么感受野减小也是情理之中。

总结:
1、增加网络高层输出特征的分辨率,换句话说就是高层不对特征图做尺寸缩减。(代码中resnet的stride为2,detnet为1)
2、引入dilated卷积层增加网络高层的感受野,这是因为第一个改进点引起的感受野减小。
3、减小网络高层的宽度(channel),减少因增大分辨率带来的计算量。
4、dilate的卷积核是不连续的(缺点)

03-16
### DetNet 技术在网络中的应用 DetNet(Deterministic Networking)是一种旨在提供低延迟、高带宽以及严格服务质量保障的技术框架。它由 IETF 的 Deterministic Networking 工作组开发,目标是在分组交换网络中实现时间敏感型通信[^1]。 #### 主要特点 DetNet 提供了一种机制来确保数据流的时间约束性和可靠性。以下是其主要特性: - **低抖动传输**:通过预留资源并减少排队延迟,DetNet 能够显著降低数据包传递过程中的抖动效应。 - **有界延迟**:对于特定的数据流量,DetNet 可以保证端到端的最大延迟不会超过预定义的界限。 - **高度可靠的服务质量(QoS)**:即使在网络拥塞的情况下,也能维持较高的服务等级。 #### 应用场景 该技术广泛适用于工业自动化控制、媒体广播以及其他对实时性能要求极高的领域。例如,在智能制造环境中,机器之间的同步操作依赖于精确计时信号;而在专业音视频传输场合,则需确保无损播放体验。 #### 实现方式 为了达成上述目标,DetNet 结合了多种技术和协议: - 使用 RSVP-TE 或 PCEP 进行路径计算资源配置; - 基于 IEEE 802.1 TSN (Time-Sensitive Networking) 标准增强局域网能力; - 利用 MPLS 和 IP 封装形式支持异构环境下的互连互通。 ```python # 示例 Python 代码展示如何模拟简单的队列管理策略 class QueueManager: def __init__(self, max_size): self.queue = [] self.max_size = max_size def enqueue(self, item): if len(self.queue) >= self.max_size: raise OverflowError("Queue overflow") self.queue.append(item) def dequeue(self): if not self.queue: raise IndexError("Empty queue") return self.queue.pop(0) ``` 此段伪代码仅用于说明可能存在于 DetNet 中的一种基础组件行为模式,并不代表实际标准的具体实现细节。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值