1.完整项目描述和程序获取
>面包多安全交易平台:https://mbd.pub/o/bread/Y56XlJZr
>如果链接失效,可以直接打开本站店铺搜索相关店铺:
>如果链接失效,程序调试报错或者项目合作也可以加微信或者QQ联系。
2.部分仿真图预览
3.算法概述
YOLOv4 的深层网络包括 SPP 模块、PANet 模块、YOLO Head 模块和部分卷积,其主要作用是加强目标特征提取并获取预测结果。SPP 模块的输入端和输出端各连接一个三次卷积块,每个三次卷积块包含 2 个 1×1 卷积和 1 个 3×3 卷积。 PANet 模块包含特征层堆叠、上采样和下采样,每次堆叠后连接一个五次卷积块,每个五次卷积块包含 3 个 1×1 卷积和 2 个 3×3 卷积。每个 YOLO Head 都由 1 个3×3 卷积和 1 个 1×1 卷积组成。可以看出 YOLOv4 深层网络含有大量 3×3 标准卷积,借鉴 MobileNet 的思想把三次卷积块、五次卷积块、YOLO Head 和下采样中的 3×3 标准卷积替换为深度可分离卷积,大幅度降低深层网络的计算量和参数量,从而使整个网络模型轻量化。
4.部分源码
.....................................................................
inputLayer = imageInputLayer(imageSize);
.....................................................................
bnecker1 = bneckLayer(Fsize33,numFilters1);
bnecker2 = bneckLayer(Fsize33,numFilters2);
bnecker3 = bneckLayer(Fsize33,numFilters2);
bnecker4 = bneckLayer(Fsize55,numFilters3);
bnecker5 = bneckLayer(Fsize55,numFilters3);
bnecker6 = bneckLayer(Fsize55,numFilters3);
bnecker7 = bneckLayer(Fsize55,numFilters4);
bnecker8 = bneckLayer(Fsize55,numFilters4);
bnecker9 = bneckLayer(Fsize55,numFilters5);
bnecker10 = bneckLayer(Fsize55,numFilters5);
bnecker11 = bneckLayer(Fsize55,numFilters5);
Fsize33b = [GPv(8) GPv(8)];%3*3维卷积
numFilters3b = GPv(9);
MobilenetV3Layer = [convolution2dLayer(Fsize33b,numFilters3b,'Padding',2)
bnecker1
bnecker2
bnecker3
convolution2dLayer([1 1],8,'Padding',2)
batchNormalizationLayer()
reluLayer()
];
%%
Resizelayer = [];
Fsize11 = [1 1];
%Necklayer:SPP+PANET
Fsize77 = [GPv(8) GPv(8)];%7*7维卷积
numFilters4 = GPv(10);
numFilters5 = GPv(11);
NECKlayer = func_neck(Fsize77,numFilters4,Fsize33,numFilters5);
%%
finalLayers = [fullyConnectedLayer(128)%全连接层
reluLayer
fullyConnectedLayer(NClass)
softmaxLayer
classificationLayer
];
%%
layers = [inputLayer;
FPNlayer;
MobilenetV3Layer;
NECKlayer;
finalLayers
];
...............................................
%调用训练库,GPU强,则可以扩充
load train3.mat
nets = trainObjectDetector(gTruth,layers,options,'NegativeOverlapRange', [0 0.02], 'PositiveOverlapRange', [0.02 1])
05_112_m