【图像检测-车辆检测】基于YOLO实现车辆目标检测附matlab代码

简介: 【图像检测-车辆检测】基于YOLO实现车辆目标检测附matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法       神经网络预测       雷达通信      无线传感器        电力系统

信号处理              图像处理               路径规划       元胞自动机        无人机

⛄ 内容介绍

车辆目标检测是自动驾驶中的一个重要环节.针对复杂场景下的车辆目标检测模型检测速度慢,检测精度和召回率低等问题,以YOLO网络为基础,加载预训练模型,多尺寸图像训练,最终得到车辆目标检测模型.实验表明,本文方法可以在保证检测速度的情况下,尽可能多地检测出更多车辆目标且精度较高.

⛄ 部分代码

clc; clear all; close all;

rng(0);

checkpoint_folder = fullfile(pwd, 'checkpoint_folder_car');


data = load(fullfile(pwd, 'vehicleDatasetGroundTruth.mat'));

vehicleDataset = data.vehicleDataset;


vehicleDataset(1:4,:)


vehicleDataset.imageFilename = fullfile(pwd, vehicleDataset.imageFilename);


im_list = [];

for i = 1 : 4

   I = imread(vehicleDataset.imageFilename{i});

   I = insertShape(I,'Rectangle',vehicleDataset.vehicle{i});

   im_list(:,:,:,i) = mat2gray(I);

end

figure; montage(im_list);


shuffled_index = randperm(size(vehicleDataset,1));

idx = floor(0.8 * length(shuffled_index));

train_data = vehicleDataset(shuffled_index(1:idx),:);

test_data = vehicleDataset(shuffled_index(idx+1:end),:);


image_size = [224 224 3];

num_classes = size(vehicleDataset,2)-1;

anchor_boxes = [

   43 59

   18 22

   23 29

   84 109

   ];


base_network = resnet50;


featureLayer = 'activation_40_relu';

lgraph = yolov2Layers(image_size,num_classes,anchor_boxes,base_network,featureLayer);


options = trainingOptions('sgdm', ...

   'MiniBatchSize', 16, ....

   'InitialLearnRate',1e-3, ...

   'MaxEpochs',100,...

   'CheckpointPath', checkpoint_folder, ...

   'Shuffle','every-epoch', ...

   'ExecutionEnvironment', 'gpu');

[detector,info] = trainYOLOv2ObjectDetector(train_data,lgraph,options);


I = imread(test_data.imageFilename{1});

[bboxes,scores] = detect(detector,I);

I = insertObjectAnnotation(I,'rectangle',bboxes,scores);

figure; imshow(I); title('测试样例');


num_test_images = size(test_data,1);

results = table('Size',[num_test_images 3],...

   'VariableTypes',{'cell','cell','cell'},...

   'VariableNames',{'Boxes','Scores','Labels'});


for i = 1:num_test_images

   I = imread(test_data.imageFilename{i});

   [bboxes,scores,labels] = detect(detector,I);

   results.Boxes{i} = bboxes;

   results.Scores{i} = scores;

   results.Labels{i} = labels;

end


expected_results = test_data(:, 2:end);

[ap, recall, precision] = evaluateDetectionPrecision(results, expected_results);


plot(recall,precision)

xlabel('召回率')

ylabel('准确率')

grid on

title(sprintf('平均准确率 = %.2f', ap))

⛄ 运行结果

⛄ 参考文献

[1] 殷远齐, 徐源, 邢远新. 基于YOLO v4的车辆目标检测算法[J]. 计算机与现代化, 2022(000-007).

[2] 向昌成, 黄成兵, 罗平,等. 基于YOLO算法的无人机航拍图像车辆目标检测系统研究[J]. 计算机与数字工程, 2021.

[3] 龚庆武, 乔卉, 刘栋,等. 基于YOLO算法的电能质量扰动检测方法:, CN201910881278.7[P]. 2022.

[4] 李云鹏, 侯凌燕, 王超. 基于YOLOv2的复杂场景下车辆目标检测[J]. 电视技术, 2018, 42(5):7.

⛳️ 代码获取关注我

❤️部分理论引用网络文献,若有侵权联系博主删除
❤️ 关注我领取海量matlab电子书和数学建模资料


相关文章
|
1月前
|
机器学习/深度学习 算法 计算机视觉
基于yolov2深度学习网络的火焰烟雾检测系统matlab仿真
基于yolov2深度学习网络的火焰烟雾检测系统matlab仿真
|
1月前
|
传感器 算法 计算机视觉
基于肤色模型和中值滤波的手部检测算法FPGA实现,包括tb测试文件和MATLAB辅助验证
该内容是关于一个基于肤色模型和中值滤波的手部检测算法的描述,包括算法的运行效果图和所使用的软件版本(matlab2022a, vivado2019.2)。算法分为肤色分割和中值滤波两步,其中肤色模型在YCbCr色彩空间定义,中值滤波用于去除噪声。提供了一段核心程序代码,用于处理图像数据并在FPGA上实现。最终,检测结果输出到"hand.txt"文件。
|
1月前
|
机器学习/深度学习 算法 计算机视觉
基于yolov2深度学习网络的视频手部检测算法matlab仿真
基于yolov2深度学习网络的视频手部检测算法matlab仿真
|
2月前
|
机器学习/深度学习 算法 数据可视化
python/matlab图像去雾/去雨综述
python/matlab图像去雾/去雨综述
40 0
|
1月前
|
算法
m基于OFDM+QPSK和LDPC编译码以及MMSE信道估计的无线图像传输matlab仿真,输出误码率,并用图片进行测试
MATLAB2022a仿真实现了无线图像传输的算法,包括OFDM、QPSK调制、LDPC编码和MMSE信道估计。OFDM抗频率选择性衰落,QPSK用相位表示二进制,LDPC码用于前向纠错,MMSE估计信道响应。算法流程涉及编码、调制、信道估计、均衡、解码和图像重建。MATLAB代码展示了从串行数据到OFDM信号的生成,经过信道模型、噪声添加,再到接收端的信道估计和解码过程,最终计算误码率。
22 1
|
4天前
|
机器学习/深度学习 算法 计算机视觉
m基于Yolov2深度学习网络的人体喝水行为视频检测系统matlab仿真,带GUI界面
MATLAB 2022a中使用YOLOv2算法对avi视频进行人体喝水行为检测,结果显示成功检测到目标。该算法基于全卷积网络,通过特征提取、锚框和损失函数优化实现。程序首先打乱并分割数据集,利用预训练的ResNet-50和YOLOv2网络结构进行训练,最后保存模型。
14 5
|
5天前
|
算法 计算机视觉 异构计算
基于FPGA的图像累积直方图verilog实现,包含tb测试文件和MATLAB辅助验证
该内容展示了FPGA实现图像累积直方图的算法。使用Vivado2019.2和matlab2022a,通过FPGA的并行处理能力优化图像处理。算法基于像素值累加分布,计算图像中像素值小于等于特定值的像素个数。核心代码为`test_image`模块,读取二进制图像文件并传递给`im_hist`单元,生成直方图和累积直方图。
|
13天前
|
机器学习/深度学习 存储
matlab使用分位数随机森林(QRF)回归树检测异常值
matlab使用分位数随机森林(QRF)回归树检测异常值
16 0
|
13天前
|
文字识别 算法 计算机视觉
图像倾斜校正算法的MATLAB实现:图像倾斜角检测及校正
图像倾斜校正算法的MATLAB实现:图像倾斜角检测及校正
19 0
|
22天前
|
存储 人工智能 机器人
【Matlab】Matlab电话拨号音合成与识别(代码+论文)【独一无二】
【Matlab】Matlab电话拨号音合成与识别(代码+论文)【独一无二】

热门文章

最新文章