基于轻量级ShuffleNetv2+YOLOv5的DIC

编程入门 行业动态 更新时间:2024-10-22 10:41:54

基于轻量级ShuffleNetv2+YOLOv5的<a href=https://www.elefans.com/category/jswz/34/1747917.html style=DIC"/>

基于轻量级ShuffleNetv2+YOLOv5的DIC

ShuffleNetv2可以说是目前轻量级网络模型中的翘楚,将ShuffleNetv2于yolov5整合开发可以使得模型更加轻量化,在提升模型速度的同时保证有效的精度。

本文的主要工作就是将ShuffleNetv2整合进yolov5中来开发构建细胞检测模型,首先看下效果图:

这里是基于yolov5s进行改进融合的,改进后的yaml文件如下所示:

# parameters
nc: 1
depth_multiple: 0.33
width_multiple: 0.50#Anchors
anchors:- [10,13, 16,30, 33,23]  - [30,61, 62,45, 59,119]  - [116,90, 156,198, 373,326]  #Backbone
backbone:# [from, number, module, args][[-1, 1, conv_bn_relu_maxpool, [32]],    [-1, 1, ShuffleBlock, [116, 2]], [-1, 3, ShuffleBlock, [116, 1]], [-1, 1, ShuffleBlock, [232, 2]], [-1, 7, ShuffleBlock, [232, 1]], [-1, 1, ShuffleBlock, [464, 2]], [-1, 1, ShuffleBlock, [464, 1]], ]#Head
head:[[-1, 1, Conv, [96, 1, 1]],[-1, 1, nn.Upsample, [None, 2, 'nearest']],[[ -1, 4 ], 1, Concat, [1]],  [-1, 1, DWConv, [96, 3, 1]],  [-1, 1, Conv, [96, 1, 1 ]],[-1, 1, nn.Upsample, [None, 2, 'nearest']],[[-1, 2], 1, Concat, [1]],  [-1, 1, DWConv, [96, 3, 1]], [-1, 1, DWConv, [96, 3, 2]],[[-1, 11], 1, ADD, [1]], [-1, 1, DWConv, [96, 3, 1]], [-1, 1, DWConv, [ 96, 3, 2]],[[-1, 7], 1, ADD, [1]],  [-1, 1, DWConv, [96, 3, 1]],[[14, 17, 20], 1, Detect, [nc, anchors]], ]

这里的改进主要体现在两部分结合ShuffleNet的网络思想来的,首先是BackBone部分,如下:

直接使用了ShuffleBlock来替换原有的C3和Conv模块了。

之后是head部分,如下所示:

这部分主要是深度可分离卷积的使用了,进一步降低参数量的高效tricks。

接下来看下数据集:

VOC格式标注数据如下所示:

实例标注内容如下:

<annotation><folder>Hela</folder><filename>images/0edad713-0236-48ce-ba10-f6a5cc8a5194.jpg</filename><source><database>The Hela Database</database><annotation>Hela</annotation><image>Hela</image></source><owner><name>YSHC</name></owner>    <size><width>512</width><height>512</height><depth>3</depth></size><segmented>0</segmented><object>        <name>cell</name><pose>Unspecified</pose><truncated>0</truncated><difficult>0</difficult><bndbox><xmin>251</xmin><ymin>0</ymin><xmax>384</xmax><ymax>76</ymax></bndbox></object><object>        <name>cell</name><pose>Unspecified</pose><truncated>0</truncated><difficult>0</difficult><bndbox><xmin>313</xmin><ymin>67</ymin><xmax>482</xmax><ymax>159</ymax></bndbox></object><object>        <name>cell</name><pose>Unspecified</pose><truncated>0</truncated><difficult>0</difficult><bndbox><xmin>145</xmin><ymin>98</ymin><xmax>243</xmax><ymax>242</ymax></bndbox></object><object>        <name>cell</name><pose>Unspecified</pose><truncated>0</truncated><difficult>0</difficult><bndbox><xmin>251</xmin><ymin>103</ymin><xmax>400</xmax><ymax>226</ymax></bndbox></object><object>        <name>cell</name><pose>Unspecified</pose><truncated>0</truncated><difficult>0</difficult><bndbox><xmin>31</xmin><ymin>157</ymin><xmax>140</xmax><ymax>281</ymax></bndbox></object><object>        <name>cell</name><pose>Unspecified</pose><truncated>0</truncated><difficult>0</difficult><bndbox><xmin>221</xmin><ymin>218</ymin><xmax>351</xmax><ymax>327</ymax></bndbox></object><object>        <name>cell</name><pose>Unspecified</pose><truncated>0</truncated><difficult>0</difficult><bndbox><xmin>347</xmin><ymin>254</ymin><xmax>498</xmax><ymax>360</ymax></bndbox></object><object>        <name>cell</name><pose>Unspecified</pose><truncated>0</truncated><difficult>0</difficult><bndbox><xmin>117</xmin><ymin>261</ymin><xmax>221</xmax><ymax>360</ymax></bndbox></object><object>        <name>cell</name><pose>Unspecified</pose><truncated>0</truncated><difficult>0</difficult><bndbox><xmin>12</xmin><ymin>282</ymin><xmax>104</xmax><ymax>390</ymax></bndbox></object><object>        <name>cell</name><pose>Unspecified</pose><truncated>0</truncated><difficult>0</difficult><bndbox><xmin>62</xmin><ymin>354</ymin><xmax>182</xmax><ymax>464</ymax></bndbox></object><object>        <name>cell</name><pose>Unspecified</pose><truncated>0</truncated><difficult>0</difficult><bndbox><xmin>216</xmin><ymin>357</ymin><xmax>358</xmax><ymax>444</ymax></bndbox></object><object>        <name>cell</name><pose>Unspecified</pose><truncated>0</truncated><difficult>0</difficult><bndbox><xmin>80</xmin><ymin>437</ymin><xmax>221</xmax><ymax>512</ymax></bndbox></object></annotation>

YOLO格式标注数据如下所示:

样例标注数据如下所示:

0 0.541016 0.077148 0.238281 0.154297
0 0.949219 0.131836 0.101562 0.189453
0 0.617188 0.227539 0.257812 0.162109
0 0.339844 0.390625 0.316406 0.21875
0 0.630859 0.397461 0.277344 0.193359
0 0.634766 0.599609 0.210938 0.269531
0 0.829102 0.571289 0.248047 0.208984
0 0.34668 0.592773 0.341797 0.228516
0 0.175781 0.71582 0.214844 0.349609
0 0.37793 0.802734 0.205078 0.1875

接下来就可以启动模型训练了,日志输出如下所示:

接下来看下结果详情。

LABEL数据可视化:

训练batch检测样例:

F1值曲线和PR曲线 :

最后基于专用的界面实现可视化推理应用。

上传图像:

检测推理计算:

更多推荐

基于轻量级ShuffleNetv2+YOLOv5的DIC

本文发布于:2024-03-08 19:20:42,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1722013.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:DIC

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!