MATLAB 训练CNN模型 yolo v4

news2025/4/23 2:41:55

学生对小车控制提出了更好的要求,能否加入深度学习模型。

考虑到小车用matlab来做,yolo v5及以上版本都需要在pytorch下训练,还是用早期版本来演示。

1 yolov4 调用

参考 trainYOLOv4ObjectDetector (mathworks.com)

name = "tiny-yolov4-coco";

% 需要安装工具包,调用已训练的yolo v4模型
detector = yolov4ObjectDetector(name);
disp(detector) 
analyzeNetwork(detector. Network) %网络架构

%车检测
img = imread("highway.png");
[bboxes,scores,labels] = detect(detector,img) %label中判断有无目标对象
%车检测
detectedImg = insertObjectAnnotation(img,"Rectangle",bboxes,labels);%插入bbox
figure
imshow(detectedImg)

%人检测
I = imread("visionteam.jpg");
[bboxes, scores, labels] = detect(detector, I, Threshold=0.4)
detectedImg = insertObjectAnnotation(I, "Rectangle", bboxes, "person");
figure
imshow(detectedImg)

早期版本调用比较简单。

2 yolov4 训练

如果模拟小车进行车道保持,需要考虑行人、学校等环境,则需要对模拟的环境进行训练,自己构建数据集,然后进行使用。

具体方式看 官网的介绍 

trainYOLOv4ObjectDetector (mathworks.com)

或者matlab中搜索 

Object Detection Using YOLO v4 Deep Learning

3 yolo v5 及以上版本训练

AI 生成的,未测试。

3.1 安装必要的软件和库

确保你的系统已安装以下组件:

  • MATLAB(建议R2021b或更高版本,支持Python接口)

  • Python 3.8+(建议使用Anaconda管理环境)

  • Ultralytics YOLOv11(通过pip安装)

  • PyTorch(支持CUDA的版本,如果使用GPU)

pip install ultralytics torch torchvision

3.2. 在MATLAB中配置Python环境

在MATLAB中设置Python解释器路径:

pyenv('Version', '你的Python路径(如C:\Anaconda3\python.exe)');

验证Python是否成功连接:

py.sys.version

3.3. 调用YOLOv11模型进行推理

使用MATLAB的py接口调用YOLOv11进行目标检测

% 加载YOLOv11模型
model = py.ultralytics.YOLO('yolov11n.pt');  % 使用预训练权重

% 进行目标检测
results = model.predict('test.jpg');  % 输入图像路径

% 获取检测结果
bboxes = results.xyxy[0];  % 边界框坐标(x1, y1, x2, y2, conf, class)
disp(bboxes);

3.4. 训练YOLOv11模型

YOLOv11的训练通常在Python环境下进行,但可以通过MATLAB调用Python脚本实现:

(1) 准备数据集

确保数据集格式符合YOLO要求:

├─train
│  ├─images
│  └─labels
└─valid
    ├─images
    └─labels

创建data.yaml文件:

train: ./train/images
val: ./valid/images
nc: 6  # 类别数
names: ['class1', 'class2', 'class3']  # 类别名称
(2) 在MATLAB中调用训练脚本
% 定义训练命令
train_cmd = ['yolo detect train data=data.yaml model=yolov11n.pt epochs=50 batch=16 imgsz=640 device=0'];

% 执行训练
system(['python -c "from ultralytics import YOLO; model = YOLO(''yolov11n.pt''); model.train(data=''data.yaml'', epochs=50, batch=16, imgsz=640, device=0)"']);

在MATLAB中可视化训练结果

训练完成后,可以使用MATLAB加载训练日志并绘制损失曲线:

% 读取训练日志(假设保存在results.csv)
data = readtable('results.csv');
plot(data.epoch, data.train_box_loss, 'b-', 'LineWidth', 2);
hold on;
plot(data.epoch, data.val_box_loss, 'r-', 'LineWidth', 2);
xlabel('Epoch');
ylabel('Loss');
legend('Train Loss', 'Validation Loss');
title('YOLOv11 Training Progress');

部署训练好的模型(调用.onnx)

训练完成后,可以导出模型并在MATLAB中加载:

% 导出ONNX格式(在Python中执行)
system('python -c "from ultralytics import YOLO; model = YOLO(''best.pt''); model.export(format=''onnx'')"');

% 在MATLAB中加载ONNX模型
net = importONNXNetwork('best.onnx');

可以看出,在matlab中训练yolo v5以上模型并不友好。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2340458.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【前端】跟着maxkb学习logicflow流程图画法

文章目录 背景1. 选定学习对象-maxkb应用逻辑编排2. 确定实现框架3. 关键逻辑:查看app-node.js4. 学习开始节点绘制流程数据形式 5. 给节点增加表单输入框遇到过的问题 背景 看看前端如何绘制流程图,界面好看点。 "logicflow/core": "1.…

【漏洞复现】CVE-2024-38856(ApacheOfbiz RCE)

【漏洞复现】CVE-2024-38856(ApacheOfbiz RCE) 1. 漏洞描述 Apache OFBiz 是一个开源的企业资源规划(ERP)系统。它提供了一套企业应用程序,用于集成和自动化企业的许多业务流程。 这个漏洞是由于对 CVE-2023-51467 的…

超详细VMware虚拟机扩容磁盘容量-无坑版

1.环境: 虚拟机:VMware Workstation 17 Pro-17.5.2 Linux系统:Ubuntu 22.04 LTS 2.硬盘容量 虚拟机当前硬盘容量180G -> 扩展至 300G 3.操作步骤 (1)在虚拟机关机的状态下,虚拟机硬盘扩容之前必…

全面理解Linux 系统日志:核心文件与查看方法

全文目录 1 Linux 系统日志分类及功能1.1 通用日志1.1.1 ‌/var/log/messages1.1.2 ‌/var/log/syslog 1.2 安全相关日志1.2.1 ‌/var/log/auth.log‌(Debian/Ubuntu)或 ‌/var/log/secure‌(RHEL/CentOS)1.2.2 /var/log/audit/au…

机器学习-08-关联规则更新

总结 本系列是机器学习课程的系列课程,主要介绍机器学习中关联规则和协同过滤。 参考 机器学习(三):Apriori算法(算法精讲) Apriori 算法 理论 重点 【手撕算法】【Apriori】关联规则Apriori原理、代码…

Flutter与FastAPI的OSS系统实现

作者:孙嘉成 目录 一、对象存储 二、FastAPI与对象存储 2.1 缤纷云S4服务API对接与鉴权实现 2.2 RESTful接口设计与异步路由优化 三、Flutter界面与数据交互开发 3.1 应用的创建 3.2页面的搭建 3.3 文件的上传 关键词:对象存储、FastAPI、Flutte…

Kubernetes控制平面组件:API Server详解(二)

云原生学习路线导航页(持续更新中) kubernetes学习系列快捷链接 Kubernetes架构原则和对象设计(一)Kubernetes架构原则和对象设计(二)Kubernetes架构原则和对象设计(三)Kubernetes控…

MySQL-锁机制3-意向共享锁与意向排它锁、死锁

文章目录 一、意向锁二、死锁应该如何避免死锁问题? 总结 一、意向锁 在表获取共享锁或者排它锁时,需要先检查该表有没有被其它事务获取过X锁,通过意向锁可以避免大量的行锁扫描,提升表获取锁的效率。意向锁是一种表级锁&#xf…

报告系统状态的连续日期 mysql + pandas(连续值判断)

本题用到知识点:row_number(), union, date_sub(), to_timedelta()…… 目录 思路 pandas Mysql 思路 链接:报告系统状态的连续日期 思路: 判断连续性常用的一个方法,增量相同的两个列的差值是固定的。 让日期与行号 * 天数…

Tailwind 武林奇谈:bg-blue-400 失效,如何重拾蓝衣神功?

前言 江湖有云,Tailwind CSS,乃前端武林中的轻功秘籍。习得此技,排版如行云流水,配色似御风随形,收放自如,随心所欲。 某日,小侠你奋笔敲码,正欲施展“蓝衣神功”(bg-blue-400),让按钮怒气冲冠、蓝光满面,怎料一招使出,画面竟一片白茫茫大地真干净,毫无半点杀气…

开始放飞之先搞个VSCode

文章目录 开始放飞之先搞个VSCode重要提醒安装VSCode下载MinGW-w64回到VSCode中去VSCode原生调试键盘问题遗留问题参考文献 开始放飞之先搞个VSCode 突然发现自己的新台式机上面连个像样的编程环境都没有,全是游戏了!!!&#xff…

基于SA模拟退火算法的车间调度优化matlab仿真,输出甘特图和优化收敛曲线

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 基于SA模拟退火算法的车间调度优化matlab仿真,输出甘特图和优化收敛曲线。输出指标包括最小平均流动时间,最大完工时间,最小间隙时间。 2…

【仿Mudou库one thread per loop式并发服务器实现】SERVER服务器模块实现

SERVER服务器模块实现 1. Buffer模块2. Socket模块3. Channel模块4. Poller模块5. EventLoop模块5.1 TimerQueue模块5.2 TimeWheel整合到EventLoop5.1 EventLoop与线程结合5.2 EventLoop线程池 6. Connection模块7. Acceptor模块8. TcpServer模块 1. Buffer模块 Buffer模块&…

uniapp h5接入地图选点组件

uniapp h5接入地图选点组件 1、申请腾讯地图key2、代码接入2.1入口页面 (pages/map/map)templatescript 2.2选点页面(pages/map/mapselect/mapselect)templatescript 该内容只针对uniapp 打包h5接入地图选点组件做详细说明&#x…

【随缘更新,免积分下载】Selenium chromedriver驱动下载(最新版135.0.7049.42)

目录 一、chromedriver概述 二、chromedriver使用方式 三、chromedriver新版本下载🔥🔥🔥 四、Selenium与Chrome参数设置🔥🔥 五、Selenium直接操控已打开的Chrome浏览器🔥🔥🔥…

jenkins批量复制Job项目的shell脚本实现

背景 现在需要将“测试” 目录中的所有job全部复制到 一个新目录中 test2。可以结合jenkins提供的apilinux shell 进行实现。 测试目录的实际文件夹名称是 test。 脚本运行效果如下: [qdevsom5f-dev-hhyl shekk]$ ./copy_jenkins_job.sh 创建文件夹 test2 获取源…

iOS Google登录

iOS Google登录 SDK下载地址在 Firebase 有下载,要下载整个SDK文件,然后拿其中的Google 登录SDK来使用 Firebase 官方文档 github 下载链接

嵌入式工程师( C / C++ )笔试面试题汇总

注:本文为 “嵌入式工程师笔试面试题” 相关文章合辑。 未整理去重。 如有内容异常,请看原文。 嵌入式必会 C 语言笔试题汇总 Z 沉浮 嵌入式之旅 2021 年 01 月 19 日 00:00 用预处理指令 #define 声明一个常数,用以表明 1 年中有多少秒&a…

重构便携钢琴专业边界丨特伦斯便携钢琴V30Pro定义新一代便携电钢琴

在便携电钢琴领域,特伦斯推出的V30Pro折叠钢琴以"技术革新场景适配"的双重升级引发关注。这款产品不仅延续了品牌标志性的折叠结构,更通过声学系统重构与智能交互优化,重新定义了便携乐器的专业边界。 ▶ 核心特点:技术…

DiffuRec: A Diffusion Model for Sequential Recommendation

DiffuRec: A Diffusion Model for Sequential Recommendation Background 序列推荐(Sequential Recommendation, SR)领域,主流方法是将用户与物品表示为fixed embedding。然而,这种静态向量表达方式难以全面刻画用户多样化的兴趣…