enet报文解析
YOLOv2的损失函数解析,今天没来得及做这个工作,来解析一篇高速度的针对嵌入式端的语义分割算法吧,即ENet。
1、前导码和起始定界符一般会被忽略,太底层了,Wireshark一般不显示
2、Ethernet帧的最小长度为:
(7+1)+6+6+2+46+4=72byte;
有时候被忽略前8为就是72-8=64;
如果再忽略fcs的4位,就是64-4=60。
为什么Wireshark抓到的ASK帧有时候是55byte,有时候是54byte,那是因为软件没有补零
EthernetType
ENet实现了在嵌入式端的实时语义分割,并且精度稍微好于SegNet,先看一下论文给出的速度测试图。
对于分辨率为640360的图片,ENet执行前向推理的速度也可以达到14.6fps,接近实时,我用keras提炼了ENet的网络结构,并实现了训练和预测图片,并实现了训练和预测图片,最后在我的电脑Core-i7CPU上的推理速度为0.55s一张图像。正则匹配一张图片
ENet网络结构如下,网络结构参考ResNet,将其结构描述为一个主分支与一个带有卷积核的附加分支,最后进行像素级的相加融合。
ENet中的每个block如Fig2.b所示,每个block包含有三个卷积层:一个1x1的映射用于减少维度,一个主卷积层,一个1x1的扩张。将BN层与PReLU层穿插其中,将此结构组合定义为bottleneck模型。如果bottleneck为下采样,则在主分支上添加一个最大池化层,同时,bollteneck中第一个1x1的映射被一个大小为2x2,stride为2的卷积进行替换,对激活值进行padding操作,使其与featuremap的尺寸相匹配。卷积大小为3x3的,类型有普通卷积,空洞卷积,及转置卷积等,有时,用1x5或者5x1的非对称卷积对其替换。对于正则化处理,在bottleneck2.0之前使用p=0.01,其他条件下使p=0.1。ENet的初始部分包含单独的一个block。如上图a.第一阶段包含5个bottleneck部分。第二,三阶段结构相同,但第三阶段的开始处并未有下采样的过程。前三个阶段属于编码阶段。第四五阶段属于解码阶段。由于cuDNN使用分离的内核进行卷积与偏差项的计算,为了减少内核的调用与内存的占用,该网络并未使用偏差项,结果发现,准确率也并未受很大的影
响。在每个卷积层与pReLU层之间添加了一层BN层。在解码网络部分,最大池化层,被最大上采样层代替,padding被无偏差项的空间卷积替换。ENet在最后一个上采样过程中并未使用最大池化的索引,因为输入图片的通道为3,而输出通道数为类别数,最终,用一个全卷积模型作为网络的最后模型,占用部分解码网络的处理时间。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。