当前位置: 首页 > news >正文

快速搭建yolo测试环境,超简明的神经网络训练说明书

1 快速搭建yolo测试环境

相对于更早的版本,v5是比较舒服的,直接把仓库拉下来就行,不用单独搞测试脚本和权重文件

$ git clone https://github.com/ultralytics/yolov5.git

然后就是切到目录下安装依赖的第三方库:

$ cd yolov5
$ pip install -r requirements.txt

当然可能 clone 不顺畅, 就去github 上下载压缩包然后解压到这儿也是一样的,仓库链接是这个:
https://github.com/ultralytics/yolov5
在这里插入图片描述
然后就可以找个图片测试检测了:

$ python detect.py --source path_to_your_image.jpg

这里我找了个猪头,放在上一级目录中的:
在这里插入图片描述
运行命令:

$  python.exe .\detect.py --source ..\pig.png 

输出如下:
在这里插入图片描述
虽然检测结果不咋地,橙色标注的是输出的结果,检测到鸟、狗和牛,就是没检测到猪,无语(ˉ▽ˉ;)…
如上图红色标注的信息所显示的那样,输出带标记的图片在yolov5-master/runs/exp2目录下。
下图更直观哈,可以参考下图去找输出的图片:

在这里插入图片描述
换了个车的图片,这个结果比较准确,检测到了车和驾驶室里的人,我一开始都没看到这个人
在这里插入图片描述

2 自行训练

三步走,准备数据集、配置 data.yaml 文件、运行训练命令


首先建立数据集,将数据集图片放到 train/ 和 val/ 子文件夹中,分别用于训练和验证,文件目录如下:

datasets/
└── your_dataset/├── images/│   ├── train/│   └── val/└── labels/├── train/└── val/

然后使用标注工具(如 LabelImg 或 CVAT)对图片中的目标进行标注。
LabelImg :https://github.com/HumanSignal/labelImg
CVAT:https://github.com/cvat-ai/cvat

使用工具将标注文件转换为 YOLOv5 格式,以 .txt 格式存储,每个图片对应一个 .txt 文件,文件名与图片名相同。每个 .txt 文件的内容格式如下:

<class_id> <x_center> <y_center> <width> <height>
<class_id>:类别编号(从 0 开始)。
<x_center><y_center>:目标框的中心坐标,范围为 [0, 1]
<width><height>:目标框的宽度和高度,范围为 [0, 1]

然后在 datasets/your_dataset/ 文件夹中创建一个 data.yaml 文件,内容如下:

yaml
train: datasets/your_dataset/images/train  # 训练集图片路径
val: datasets/your_dataset/images/val      # 验证集图片路径nc: 3                                      # 类别数量(根据你的数据集修改)
names: ['cat', 'dog', 'person']            # 类别名称(根据你的数据集修改)

然后用下面这个命令开始训练模型,训练过程中,终端会显示每个 epoch 的损失值、精度等信息。训练完成后,模型权重会保存在 runs/train/exp/weights/ 文件夹下

python train.py --img 640 --batch 16 --epochs 100 --data datasets/your_dataset/data.yaml --weights yolov5s.pt

说明一下参数的含义:

--img 640:输入图片的尺寸(默认 640x640)。
--batch 16:批量大小(根据你的 GPU 显存调整)。
--epochs 100:训练的轮数。
--data datasets/your_dataset/data.yaml:数据集配置文件路径。
--weights yolov5s.pt:预训练权重文件(yolov5s.pt 是 YOLOv5 的小模型,其他可选模型包括 yolov5m.pt、yolov5l.pt 和 yolov5x.pt)。

训练完了就可以评估、测试模型了,

python val.py --data datasets/your_dataset/data.yaml --weights runs/train/exp/weights/best.pt --img 640

这个命令可以用测试集评估模型,–weights用于指定权重参数,就用刚才训练得到的那个就行。

3 使用

和一开始一样,指定输入就行。当然还要指定用我们训练得到的那个权重文件,当然也可以用其它的权重文件,只要和具体的任务目标相契合就行。检测没训练过的目标那肯定是不行的,新增检测类型是需要重新训练的

python detect.py --source test_image.jpg --weights runs/train/exp/weights/best.pt --img 640

相关文章:

快速搭建yolo测试环境,超简明的神经网络训练说明书

1 快速搭建yolo测试环境 相对于更早的版本&#xff0c;v5是比较舒服的&#xff0c;直接把仓库拉下来就行&#xff0c;不用单独搞测试脚本和权重文件 $ git clone https://github.com/ultralytics/yolov5.git然后就是切到目录下安装依赖的第三方库&#xff1a; $ cd yolov5 $…...

如何在IDEA中借助深度思考模型 QwQ 提高编码效率?

通义灵码上新模型选择功能&#xff0c;不仅引入了 DeepSeek 满血版 V3 和 R1 这两大 “新星”&#xff0c;Qwen2.5-Max 和 QWQ 也强势登场&#xff0c;正式加入通义灵码的 “豪华阵容”。开发者只需在通义灵码智能问答窗口的输入框中&#xff0c;单击模型选择的下拉菜单&#x…...

探索 Ollama:开源大语言模型平台的无限可能​

在人工智能的快速发展进程中&#xff0c;大语言模型扮演着至关重要的角色。Ollama 作为一个开源的大语言模型平台&#xff0c;正逐渐崭露头角&#xff0c;为广大开发者和爱好者带来了全新的体验。它允许用户在本地环境中轻松地运行、创建和共享大型语言模型&#xff0c;极大地降…...

clickhouse多条件查询

安装包 infi.clickhouse-orm 2.1.3建表 create table test.test (name String,age UInt32,birthday Date32,sex UInt8 ) engineMergeTree() order by (name,sex)insert into test.testvalues (aa,34,1991-01-19,1), (cc,30,1994-01-19,0), (haha,31,1994-02-19,0);多条件查询…...

信息的度量

系列文章目录 文章目录 系列文章目录一、离散消息的信息量1.自信息的引入2.自信息定义 二、离散信源的平均信息量---信息熵1.信息熵定义 一、离散消息的信息量 1.自信息的引入 通信的本质是传递信息&#xff0c;为了定量表征信息的度量&#xff0c;引入自信息量的概念。事件包…...

ffmpeg+QOpenGLWidget显示视频

​一个基于 ‌FFmpeg 4.x‌ 和 QOpenGLWidget的简单视频播放器代码示例&#xff0c;实现视频解码和渲染到 Qt 窗口的功能。 1&#xff09;ffmpeg库界面&#xff0c;视频解码支持软解和硬解方式。 硬解后&#xff0c;硬件解码完成需要将数据从GPU复制到CPU。优先采用av_hwf…...

从零开始实现 C++ TinyWebServer 项目总览

文章目录 引言Web Server 概念如何实现高性能 WebServer&#xff1f;基础网络通信I/O 多路复用技术并发处理事件处理模式其他优化策略&#xff08;未实现&#xff09; 主要功能模块BufferLogSqlConnectPoolHttpRequestHttpResponseHttpConnectHeapTimerWebServer 引言 TinyWeb…...

opencv无法读取的图像,利用pil和numpy进行修复

代码总结 这段代码的功能是遍历指定文件夹下的所有图像文件&#xff0c;并修复可能存在的格式问题&#xff0c;然后覆盖原图像。 代码解析 设置输入文件夹路径&#xff08;input_folder&#xff09;。遍历文件夹中的所有文件&#xff0c;筛选出 .jpg、.jpeg、.png、.webp 格式…...

Redis分布式寻址算法

分布式寻址算法是分布式系统中用于确定数据应该存储在哪个节点的算法。这些算法对于实现高效的数据存取、负载均衡和系统扩展性至关重要。以下是几种常见的分布式寻址算法的解释&#xff1a; 1. Hash 算法 原理&#xff1a;通过哈希函数将数据的键&#xff08;Key&#xff09…...

CUDA 学习(1)——GPU 架构

典型 CPU 架构与 GPU 架构对比&#xff1a; 上图中绿色部分是计算单元&#xff0c;GPU 有更多的计算核心&#xff0c;计算能力更强。黄色部分是控制单元&#xff0c;CPU 中有大量的控制单元&#xff0c;现代 CPU 的晶体管越来越复杂&#xff0c;除了计算&#xff0c;还要实现乱…...

5个视角、5等级及10档次:《数字化转型领域 参考架构》国家标准正式出台

近日&#xff0c;国家标准GB/T 45341-2025《数字化转型管理 参考架构》正式出台。这是我国研制的首个数字化转型领域基础架构类国家标准&#xff0c;对数字化转型领域标准化建设具有重大意义。 关注WeChat Subscription Account【智慧城市指北】&#xff0c;回复关键字“20250…...

2.4 隐函数及由参数方程确定的函数求导

1.隐函数求导 1.1 例题 2. 参数方程确定的函数求导...

PROE 与 STL 格式转换:开启 3D 打印及多元应用的大门

在 3D 设计与制造的复杂生态中&#xff0c;将 PROE 格式转换为 STL 格式绝非无端之举&#xff0c;而是有着深厚且多元的现实需求作为支撑。 一、文件格式介绍​ &#xff08;一&#xff09;PROE 格式​ PROE 作为一款参数化设计软件&#xff0c;采用基于特征的参数化建模技术…...

【Bug记录】node-sass安装失败解决方案

【Bug记录】node-sass 安装失败解决办法 前言 很多小伙伴在安装 node-sass 的时候都失败了&#xff0c;主要的原因是 node 版本和项目依赖的 node-sass 版本不匹配。 解决方案 解决方案&#xff1a;把项目中的 node-sass 替换为 sass&#xff0c;其实 node-sass 已被官方弃…...

三、Python高级特性

Python中的高级数据结构&#xff1a;队列、栈、双端队列、堆与优先队列 在Python编程中&#xff0c;高级数据结构为我们提供了强大而灵活的工具来处理各种复杂的数据存储和操作需求。本文将详细介绍队列、栈、双端队列、堆与优先队列这几种常见的高级数据结构及其在Python中的…...

使用 OpenCV 拼接进行图像处理对比:以形态学操作为例

图像处理在计算机视觉中起着至关重要的作用&#xff0c;而 OpenCV 作为一个强大的图像处理库&#xff0c;提供了丰富的函数来实现各类图像处理任务。形态学操作&#xff08;Morphological Operations&#xff09;是其中常用的技术&#xff0c;尤其适用于二值图像的处理。常见的…...

OPENCV数字识别(非手写数字/采用模板匹配)

这篇文章的重点在于 模板匹配 的使用。模板匹配是计算机视觉中的一项基本技术&#xff0c;它通过比对输入图像与模板图像的相似度&#xff0c;来进行目标识别。对于数字识别&#xff0c;特别是标准数字的识别&#xff0c;模板匹配非常有效。 请看效果&#xff1a; 文章结构 …...

【STM32】知识点介绍一:硬件知识

文章目录 一、电源引脚简介二、电平信号三、电路分析 一、电源引脚简介 VCC、GND、VDD和VSS是电子电路中常见的术语&#xff0c;代表着不同的电源引脚或电压。 VCC&#xff08;Voltage at the Common Collector&#xff09;&#xff1a;VCC是指集电极&#xff08;Collector&am…...

基于SpringBoot的电影售票系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏&#xff1a;…...

记录我的ICME2025论文之旅:困顿与收获

人生第一次中B会&#xff0c;还是在课业繁重的大三上&#xff08;有点说法~&#xff09; “在最黑暗的时刻&#xff0c;总有一束光为你指引前行。” ——记录这段难忘的历程 今年的ICME投稿量创下新高&#xff0c;录取率却跌至20多%&#xff0c;并且首次加入了rebuttal&#xf…...

FreeRTOS学习(九):中断管理

FreeRTOS学习&#xff08;九&#xff09;&#xff1a;中断管理 文章目录 FreeRTOS学习&#xff08;九&#xff09;&#xff1a;中断管理前言一、中断优先级分组设置特点中断优先级分组设置 二、FreeRTOS中断优先级配置PendSV和SysTick中断优先级配置 三、中断相关寄存器PRIMASK…...

07-项目中应提前准备下一阶段计划

在项目当前版本的功能开发任务都完成之后&#xff0c;人就空出来了&#xff0c;通常这个时候&#xff0c;项目负责人还有很多繁琐的工作要做&#xff0c;比如项目内部验收、提交测试申请和版本发布等等。为了给项目成员找事情做&#xff0c;就匆匆忙忙安排下个版本的任务&#…...

【C语言】多进程/多线程

【C语言】多进程/多线程 参考链接多进程/多线程服务器1. 多进程服务器2. 多线程服务器 结语参考链接 参考链接 c 中文网 菜鸟 c 多进程/多线程服务器 多进程和多线程是常用的并发编程技术。它们都允许程序同时执行多个任务&#xff0c;提高了系统的资源利用率和程序的运行效率…...

GaussDB数据库表设计与性能优化实践

GaussDB分布式数据库表设计与性能优化实践 引言 在金融、电信、物联网等大数据场景下&#xff0c;GaussDB作为华为推出的高性能分布式数据库&#xff0c;凭借其创新的架构设计和智能优化能力&#xff0c;已成为企业核心业务系统的重要选择。本文深入探讨GaussDB分布式架构下的…...

全星FMEA软件系统——助力汽车部件行业高效管控质量风险

全星FMEA软件系统——助力汽车部件行业高效管控质量风险 在汽车部件行业&#xff0c;产品质量与可靠性直接影响整车安全性与市场竞争力。如何高效管理失效风险、优化控制计划并确保流程合规性&#xff0c;成为企业核心挑战。 全星FMEA软件系统应运而生&#xff0c;专为汽车部…...

文件I/O--C++的文件操作

一、打开文件&#xff0c;从文件中读取、写入文件 从文件中读取数据&#xff1a; #include<fstream> //fstream File stream:文件流 #include<iostream> //fstream包含了 iostream&#xff0c;所以这句可以省略&#xff0c;现在不能了 using namespace std;i…...

Docker-Compose部署 EasySearch 异常问题排查

近期将原本运行在 macOS 上的 EasySearch、Console 和 Coco-server 等服务迁移至群晖 NAS 平台。在迁移过程中遇到了EasySearch容器无法正常启动或运行中意外终止的问题。本文记录了这些问题的具体表现及解决方案&#xff0c;旨在为后续类似部署提供参考。 基础部署配置 以下…...

秒杀业务优化之从分布式锁到基于消息队列的异步秒杀

一、业务场景介绍 优惠券、门票等限时抢购常常出现在各类应用中&#xff0c;这样的业务一般为了引流宣传而降低利润&#xff0c;所以一旦出现问题将造成较大损失&#xff0c;那么在业务中就要求我们对这类型商品严格限时、限量、每位用户限一次、准确无误的创建订单&#xff0c…...

【CGE】社会核算矩阵构建(一):SAM基本结构

【CGE】社会核算矩阵构建&#xff08;一&#xff09;&#xff1a;SAM基本结构 社会核算矩阵构建&#xff08;一&#xff09;&#xff1a;SAM基本结构一、SAM的概念和基本特点二、SAM的基本结构1.开放经济体的SAM表结构2.SAM表各账户的主要核算内容&#xff08;1&#xff09;社会…...

蓝桥杯算法实战分享:算法进阶之路与实战技巧

引言 蓝桥杯作为国内极具影响力的程序设计竞赛&#xff0c;为众多编程爱好者和专业人才提供了展示自我的舞台。参与蓝桥杯不仅能检验自身编程水平&#xff0c;还能拓宽技术视野&#xff0c;为未来职业发展积累宝贵经验。本文将结合历年真题与参赛经验&#xff0c;全面分享蓝桥…...

自定义minshell

我们在前面已经了解了进程的概念&#xff0c;以及如何进行进程控制。接下来我们就使用这些知识&#xff0c;来自己实现一个shell即命令行解释器&#xff01;&#xff01;&#xff01; 一.打印命令行提示符 我们在使用Linux操作系统时&#xff0c;一登陆就会启动bash进程——命…...

坦克大战(c++)

今天我给大家分享一个c游戏。 废话不多说&#xff0c;作品展示&#xff1a; #include <stdio.h> #include <windows.h> #include <time.h> //里规格&#xff1a;长39*278 &#xff08;真坐标&#xff09;(假坐标宽为39) 高39 //外规格&#xff1a;长…...

《可爱风格 2048 游戏项目:HTML 实现全解析》

一、引言 在如今的数字化时代&#xff0c;小游戏以其简单易上手、趣味性强的特点深受大家喜爱。2048 游戏作为一款经典的数字合并游戏&#xff0c;拥有庞大的玩家群体。本文将详细介绍一个用单文件 HTML 实现的可爱风格 2048 游戏项目&#xff0c;它不仅具备传统 2048 游戏的基…...

C++ 利用类模板实现一个数组类封装

案例描述&#xff1a; 实现一个通用的数组类&#xff0c;要求如下&#xff1a; 可以对内置数据类型以及自定义数据类型的数据进行存储 将数组中的数据存储到堆区 构造函数中可以传入数组的容量 提供对应的拷贝构造函数以及operator防止浅拷贝问题 提供尾插法和尾删法对数组…...

【AndroidRTC-11】如何理解webrtc的Source、TrackSink

Android-RTC系列软重启&#xff0c;改变以往细读源代码的方式 改为 带上实际问题分析代码。增加实用性&#xff0c;方便形成肌肉记忆。同时不分种类、不分难易程度&#xff0c;在线征集问题切入点。 问题1&#xff1a;如何理解VideoSource、VideoTrack&VideoSink三者的关系…...

数据类设计_图片类设计之9_图标类设计_C++实战_(前端架构)

前言 学的东西多了,要想办法用出来.C和C是偏向底层的语言,直接与数据打交道.尝试做一些和数据方面相关的内容 引入 前面写了矩阵图形类对象和像素图形类对象,本贴通过一个快捷方式图标类的设计,来继续数据类型设计的一些讨论. 快捷方式图标是这个样子: 属性分析 首先,快捷方式…...

fuse性能关键参数entry_timeout

entry_timeout 是 FUSE&#xff08;Filesystem in Userspace&#xff09;中的一个选项&#xff0c;用于控制目录项缓存的有效期。具体来说&#xff0c;它决定了文件系统在多长时间内缓存目录项&#xff08;如文件名到 inode 的映射&#xff09;&#xff0c;从而影响文件系统的性…...

3. 轴指令(omron 机器自动化控制器)——>MC_ResetFollowingError

机器自动化控制器——第三章 轴指令 13 MC_ResetFollowingError变量▶输入变量▶输出变量▶输入输出变量 功能说明▶指令详情▶时序图▶重启动运动指令▶多重启运动指令▶异常 MC_ResetFollowingError 对指令当前位置和反馈当前位置的偏差进行复位。 指令名称FB/FUN图形表现S…...

Spring Boot项目快速创建-开发流程(笔记)

主要流程&#xff1a; 前端发送网络请求->controller->调用service->操纵mapper->操作数据库->对entity数据对象赋值->返回前端 前期准备&#xff1a; maven、mysql下载好 跟学视频&#xff0c;感谢老师&#xff1a; https://www.bilibili.com/video/BV1gm4…...

[操作系统] 进程间通信:进程池的实现

引言 在学习操作系统时&#xff0c;进程间通信&#xff08;IPC&#xff09;和多进程管理是核心内容之一。进程池是一种常见的模式&#xff0c;通过预先创建一组工作进程来处理任务&#xff0c;避免频繁创建和销毁进程带来的开销。本文将详细剖析一个用 C 实现的进程池代码&…...

信号相关的程序

1、不断打印*换行之后响应信号&#xff0c;然后循环 #include <stdio.h> #include <string.h> #include <signal.h> #include <stdlib.h> #include <unistd.h> static void alrm_handler(int signo) {write(1,"!",1); }int main( in…...

【计算机网络】-计算机网络期末复习题复习资料

一、计算机网络体系结构&#xff08;800字&#xff09; 1. OSI参考模型 七层结构&#xff1a;物理层→数据链路层→网络层→传输层→会话层→表示层→应用层 各层核心功能&#xff1a; 物理层&#xff1a;比特流传输&#xff08;如RJ45、光纤接口&#xff09; 数据链路层&…...

Linux 基础入门操作 第十二章 TINY Web 服务器

1 服务器基础架构 1.1 背景知识 Web 服务器使用 HTTP 协议与客户端&#xff08;即浏览器&#xff09;通信&#xff0c;而 HTTP 协议又基于 TCP/IP 协议。因此我们要做的工作就是利用 Linux 系统提供的 TCP 通信接口来实现 HTTP 协议。 而 Linux 为我们提供了哪些网络编程接口…...

L2-052 吉利矩阵

L2-052 吉利矩阵 - 团体程序设计天梯赛-练习集 这道题打表 打表部分被注释了 n4 [0,0,282, 2008, 10147, 40176, 132724, 381424, 981541, 2309384] n3 [0,0,21, 55, 120, 231, 406, 666, 1035, 1540] n2 [0,0,3, 4, 5, 6, 7, 8, 9, 10] l,n map(int,input().split()) if…...

BKA-CNN-LSTM、CNN-LSTM、LSTM、CNN四模型多变量时序光伏功率预测,附模型研究报告

BKA-CNN-LSTM、CNN-LSTM、LSTM、CNN四模型多变量时序光伏功率预测&#xff0c;附模型研究报告 目录 BKA-CNN-LSTM、CNN-LSTM、LSTM、CNN四模型多变量时序光伏功率预测&#xff0c;附模型研究报告预测效果基本介绍程序设计参考资料 预测效果 基本介绍 BKA-CNN-LSTM、CNN-LSTM、…...

【读书笔记】华为《从偶然到必然》

note 华为的成功并非偶然&#xff0c;而是通过IPD体系、投资组合管理、平台战略等系统性工具&#xff0c;将研发投资转化为可持续的商业竞争力。书中强调的“管理即内部因素”理念&#xff0c;揭示了企业规模扩张与管理能力匹配的深层规律&#xff0c;为高科技企业提供了可借鉴…...

flink广播算子Broadcast

文章目录 一、Broadcast二、代码示例三.或者第二种(只读取一个csv文件到广播内存中)提示:以下是本篇文章正文内容,下面案例可供参考 一、Broadcast 为了关联一个非广播流(keyed 或者 non-keyed)与一个广播流(BroadcastStream),我们可以调用非广播流的方法 connect(),…...

实时图像处理:让你的应用更智能

I. 引言 实时图像处理在现代应用中扮演着重要的角色&#xff0c;它能够使应用更加智能、响应更加迅速。本文将深入探讨实时图像处理的原理、部署过程以及未来的发展趋势&#xff0c;旨在帮助开发者更好地理解如何将实时图像处理应用于他们的项目中。 II. 实时图像处理的基础概…...

深入理解 Linux 基础 IO:从文件操作到缓冲区机制

亲爱的读者朋友们&#x1f603;&#xff0c;此文开启知识盛宴与思想碰撞&#x1f389;。 快来参与讨论&#x1f4ac;&#xff0c;点赞&#x1f44d;、收藏⭐、分享&#x1f4e4;&#xff0c;共创活力社区。 在 Linux 系统中&#xff0c;文件输入输出&#xff08;IO&#xff09;…...

汇编语言高级编程技巧:从基础到进阶

前言 汇编语言作为底层编程语言&#xff0c;直接操作硬件&#xff0c;执行效率高&#xff0c;但编写复杂逻辑时往往显得繁琐。通过使用汇编伪指令和宏&#xff0c;我们可以实现类似于高级语言的结构&#xff0c;如条件判断、循环、结构体和函数等&#xff0c;从而提升代码的可读…...