✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。
🍎个人主页:Matlab科研工作室
🍊个人信条:格物致知。
更多Matlab仿真内容点击👇
⛄ 内容介绍
在城市道路中路况变得更加复杂情况下,进行道路目标车辆检测是进行交通信号灯规划的基础,在进行车辆检测中存在小尺寸车辆、车辆间相互遮挡的情况,经综合考虑,选用YOLOv3目标检测算法对道路目标车辆进行检测。YOLOv3的网络架构采用Darknet-53,用UA-DETRAC数据集进行模型训练,并根据LOSS函数和m AP值进行参数优化。通过实验结果 mAP@0.5为95.6%,能够有效对道路目标车辆进行检测。
⛄ 部分代码
2、测试模型效果
2.1 加载Yolov3模型
clear;clc;
load YOLOv3.mat
2.2 读取图像
[file,path] =uigetfile({'*.jpg;*.jpeg;*.png;*.bmp;*.tif',...
'图片文件 (*.jpg,*.jpeg,*.png,*.bmp,*.tif)'},'选择一张图片');
filepath = fullfile(path,file);
img = imread(filepath);
2.3 定义参数
% 类别名称
classesNames = categorical(["car"])';
% 定义框颜色
cmaps = [
255 255 000; %蓝色
];
2.3 目标检测
overlapThreshold = 0.3;
confidenceThreshold = 0.3;
% Get the image.
img = imresize(img,[227 277]);%调整图像大小
I = single(img)/255;%图像归一化
% Convert to dlarray.
XTest = dlarray(I,'SSCB');
[bboxes, scores, labels] = yolov3Detect(net, XTest, networkOutputs, anchorBoxes, ...
anchorBoxMasks, confidenceThreshold, overlapThreshold, classNames);
% Display the detections on image.
if ~isempty(scores)
[~,ids] = ismember(labels,classesNames);
text = string(labels)+" "+string(round(scores*100))+"%";
detectedImg = insertObjectAnnotation(img, 'Rectangle', bboxes, text,...
'Color',cmaps(ids,:));
else detectedImg=img;
end
figure
imshow(detectedImg),title("识别结果")
⛄ 运行结果
⛄ 参考文献
[1] 张绪德,李康.基于YOLOv3的道路车辆检测算法研究[J].科技与创新, 2023(1):3.
[2] 刘云翔,张国庆,徐齐,等.基于RFYOLOV3算法的车辆检测方法.2021[2023-06-14].DOI:10.16652/j.issn.1004-373x.2021.13.032.
[3] 张富凯,杨 峰,李 策.基于改进YOLOv3的快速车辆检测方法[J].计算机工程与应用(12-20)[2023-06-14].