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

YOLOv6 安装及使用详细教程

前言YOLOv6 是美团研发的轻量级目标检测算法兼顾检测精度与推理速度适配工业落地与学术入门场景。该算法针对工程化部署深度优化环境配置简单、运行流程清晰是零基础用户入门目标检测的优选方案。本文将手把手带你完成 YOLOv6 的安装与基础使用快速掌握目标检测核心实操流程。一、源代码的下载手动下载压缩包适合未安装 Git 的新手打开 YOLOv6 官方 GitHub 仓库https://github.com/meituan/YOLOv6点击页面右上角的「Code」按钮选择「Download ZIP」下载代码压缩包将压缩包解压到电脑任意目录:二、环境变量的配置步骤 1打开终端Windows打开 Anaconda Prompt 或 cmdLinux/Mac打开终端Terminal。步骤2创建虚拟环境到这一步说明虚拟环境创建成功激活yolov6环境:激活成功标志终端提示符前出现(yolov6)。步骤3环境配置1.进入yolov6的工程目录2.执行pip install -r requirements.txt。如果网速较慢可以切换国内清华PyPI镜像源秒速完成安装 pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple将我们的torch版本降为2.6.0下载网址在https://pytorch.org/get-started/previous-versions/安装好后输入一下语句进行验证如果输出true就可以了三、代码的调试四、数据集的准备YOLOv6 支持 YOLO 格式数据集目录结构如下plaintextdata/ ├── images/ # 所有图片.jpg/.png │ ├── img1.jpg │ ├── img2.jpg │ └── ... └── labels/ # 对应标签文件.txt与图片同名 ├── img1.txt ├── img2.txt └── ...去网上找自己需要训练的数据集然后将他划分成训练集和测试集将以下代码放在data里面txt_split.py就可以自己划分 **** 整个文件适用于将已转换的txt标签文件进行数据集划分 import os import random import argparse import shutil from tqdm import tqdm # 参数解析 parser argparse.ArgumentParser() parser.add_argument(--txt_path, default../data/labels, typestr, helpinput txt label path) parser.add_argument(--images_path, default../data/images, typestr, helporiginal images path) parser.add_argument(--output_path, default../data, typestr, helpoutput base path) opt parser.parse_args() # 定义划分比例 trainval_percent 1.0 train_percent 0.8 val_percent 0.2 # 设置路径 txt_path opt.txt_path images_path opt.images_path output_path opt.output_path # 创建输出目录结构 os.makedirs(os.path.join(output_path, images/train), exist_okTrue) os.makedirs(os.path.join(output_path, images/val), exist_okTrue) os.makedirs(os.path.join(output_path, images/test), exist_okTrue) os.makedirs(os.path.join(output_path, labels/train), exist_okTrue) os.makedirs(os.path.join(output_path, labels/val), exist_okTrue) os.makedirs(os.path.join(output_path, labels/test), exist_okTrue) # 获取所有TXT文件 txt_files [f for f in os.listdir(txt_path) if f.endswith(.txt)] random.shuffle(txt_files) num len(txt_files) # 划分数据集 tv int(num * trainval_percent) tr int(tv * train_percent) ta tv - tr # 确保trainvaltrainval trainval txt_files[:tv] train trainval[:tr] val trainval[tr:tr ta] test txt_files[tv:] # 处理训练集 print(Processing training set...) train_list [] for txt_file in tqdm(train): image_id os.path.splitext(txt_file)[0] # 移动标签文件 src_txt os.path.join(txt_path, txt_file) dst_txt os.path.join(output_path, labels/train, txt_file) if os.path.exists(src_txt): shutil.move(src_txt, dst_txt) # 移动对应的图片文件 src_img os.path.join(images_path, f{image_id}.jpg) dst_img os.path.join(output_path, images/train, f{image_id}.jpg) if os.path.exists(src_img): shutil.move(src_img, dst_img) train_list.append(dst_img) # 处理验证集 print(Processing validation set...) val_list [] for txt_file in tqdm(val): image_id os.path.splitext(txt_file)[0] # 移动标签文件 src_txt os.path.join(txt_path, txt_file) dst_txt os.path.join(output_path, labels/val, txt_file) if os.path.exists(src_txt): shutil.move(src_txt, dst_txt) # 移动对应的图片文件 src_img os.path.join(images_path, f{image_id}.jpg) dst_img os.path.join(output_path, images/val, f{image_id}.jpg) if os.path.exists(src_img): shutil.move(src_img, dst_img) val_list.append(dst_img) # 处理测试集 print(Processing test set...) test_list [] for txt_file in tqdm(test): image_id os.path.splitext(txt_file)[0] # 移动标签文件 src_txt os.path.join(txt_path, txt_file) dst_txt os.path.join(output_path, labels/test, txt_file) if os.path.exists(src_txt): shutil.move(src_txt, dst_txt) # 移动对应的图片文件 src_img os.path.join(images_path, f{image_id}.jpg) dst_img os.path.join(output_path, images/test, f{image_id}.jpg) if os.path.exists(src_img): shutil.move(src_img, dst_img) test_list.append(dst_img) # 保存路径文件 def save_path_file(file_path, path_list): with open(file_path, w) as f: for path in path_list: f.write(f{path}\n) save_path_file(os.path.join(output_path, train.txt), train_list) save_path_file(os.path.join(output_path, val.txt), val_list) save_path_file(os.path.join(output_path, test.txt), test_list) print(Dataset preparation completed!) print(fTrain: {len(train_list)} images, Val: {len(val_list)} images, Test: {len(test_list)} images)五、源代码的修改与训练修改在data下面新建文件myvoc.yaml在里面写入以下代码开始训练bash运行# 回到 YOLOv6 根目录 cd .. # 训练命令以 yolov6s 为例 python tools/train.py \ --batch 16 \ # 批次大小根据显卡显存调整显存小则改8/4 --epochs 100 \ # 训练轮数 --data data/myvoc.yaml \ # 自定义数据集配置 --cfg configs/yolov6s.py \ # 模型配置文件 --weights weights/yolov6s.pt \ # 预训练权重 --device 0 \ # 显卡编号CPU 写 cpu --name my_train \ # 训练任务名称结果保存在 runs/train/my_train --save-dir runs/train \ # 结果保存目录 --eval-interval 5 # 每5轮验证一次六、模型验证验证训练好的模型bash运行# 评估模型精度mAP python tools/eval.py \ --weights runs/train/my_train/weights/best_ckpt.pt \ # 训练好的最优权重 --data data/myvoc.yaml \ --device 0 \ --batch 16批量图片 / 视频推理bash运行# 批量图片指定目录 python tools/infer.py --weights 权重文件 --source data/images/test/ --device 0 # 视频推理 python tools/infer.py --weights 权重文件 --source test_video.mp4 --device 0 # 摄像头实时推理 python tools/infer.py --weights 权重文件 --source 0 --device 0

相关文章:

YOLOv6 安装及使用详细教程

前言 YOLOv6 是美团研发的轻量级目标检测算法,兼顾检测精度与推理速度,适配工业落地与学术入门场景。该算法针对工程化部署深度优化,环境配置简单、运行流程清晰,是零基础用户入门目标检测的优选方案。本文将手把手带你完成 YOLO…...

Windows安装OpenClaw龙虾(新手入门必备)

目录 一、准备工作(必做) 二、方案A:原生PowerShell一键安装(新手首选) 1. 打开管理员PowerShell 2. 解锁脚本执行权限(必做) 3. 一键安装OpenClaw 4. 验证安装 5. 初始化配置&#xff0…...

基于终端 ANSI 转义序列的“等离子体流体动画”

目录 创意项目:终端等离子体场 (Terminal Plasma) 代码设计的“极限”考量 挑战扩展方向 如果您喜欢此文章,请收藏、点赞、评论,谢谢,祝您快乐每一天。 挑战开发极限,不仅是代码量的缩减,更是对算法、位…...

JVM面试题100道(含答案解析)

在Java后端开发面试中,JVM(Java Virtual Machine) 几乎是必问的核心知识点。 很多互联网公司(如大厂或中大型技术团队)在技术面试中都会重点考察 JVM内存模型、垃圾回收机制、类加载机制以及JVM调优能力。 本文整理了一…...

【杂谈】结构体的内存对齐与位段

目录 一、结构体内存对齐问题(节省时间) 1.什么是内存对齐 2.需要使用内存对齐的原因 3.内存对齐的规则 4.举例 5.小结 二、结构体实现位段操作(节省空间) 1.位域简介与使用原因 2.位域的定义与使用时的注意事项 3.举例 …...

前端开发 - this 指向问题(直接调用函数、对象方法、类方法)

一、直接调用函数 1、基本介绍非严格模式:this 为 window严格模式,this 为 undefined2、演示 function fn() {console.log(this); } fn();# 非严格模式下运行,输出结果Window {window: Window, self: Window, document: document, name: , lo…...

2026精选课题-基于springboot大学生社团管理系统的设计与实现

专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/学生代理交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…...

智能电网无线通信中仅存在式被动侦察的基准数据集

大家读完觉得有帮助记得关注和点赞!!!摘要在智能电网通信中对仅存在式被动侦察进行基准测试具有挑战性,因为攻击者只接收信号,但附近的观察者仍然可以通过额外的阴影和多径效应改变传播,从而重塑信道相干性…...

Web安全实战:绕过__wakeup漏洞攻防解析

1. 从一道CTF题说起:为什么我的反序列化总被“叫醒”? 大家好,我是老张,一个在Web安全领域摸爬滚打了十来年的老兵。今天想和大家聊聊一个在PHP安全里既经典又有点“狡猾”的漏洞——__wakeup魔术方法的绕过。这事儿说起来&#x…...

Vue3+WebRtcServer实现海康监控rtsp流视频的跨域播放解决方案

1. 为什么你的海康监控视频在Vue3里播不出来? 最近好几个做安防项目的朋友都跟我吐槽同一个问题:他们在Vue3项目里想直接播放海康威视摄像头的RTSP视频流,结果要么黑屏,要么疯狂报跨域错误。浏览器控制台里一片红,全是…...

深入解析tile_images与tile_images_offset:图像拼接的灵活应用

1. 从“拼图游戏”到工业视觉:为什么你需要了解图像拼接 如果你玩过拼图游戏,或者用手机App把几张照片拼成一张长图,那你对“图像拼接”这个概念一定不陌生。在工业视觉和图像处理领域,这种需求同样普遍,甚至更为关键。…...

Ubuntu22.04下BBR与CUBIC拥塞控制算法的性能对比测试

1. 为什么我们要关心拥塞控制算法? 如果你用过家里的宽带,或者在公司里传过大文件,肯定遇到过这种情况:明明网速标称很高,但下载东西就是时快时慢,看视频也总在缓冲。很多时候,这口“锅”可能不…...

手把手教你玩转Nunchaku FLUX.1:从安装到出图,新手完整指南

手把手教你玩转Nunchaku FLUX.1:从安装到出图,新手完整指南 想试试用AI生成图片,但看到复杂的界面和参数就头疼?别担心,今天我来带你从零开始,一步步玩转Nunchaku FLUX.1 CustomV3这个强大的文生图工具。你…...

R提供了一些函数用于判断逻辑表达式的结果

下面内容摘录自《用R探索医药数据科学》专栏文章的部分内容(原文5241字)。 3章4节:R的逻辑运算和矩阵运算_逻辑判断矩阵在r语言中的应用-CSDN博客 逻辑运算和矩阵运算是R语言中两个重要的功能模块,前者用于逻辑判断和条件筛选&am…...

Linux下hadoop2.9.2单节点伪分布搭建完全教程

配置静态 IP 在实际应用中,由于我们使用的是 DHCP(Dynamic Host Configuration Protocol: 动态主机配置协议)服务器来分配的地址,那么每次重启DHCP 服务器 ip 地址有 可能是会变动的。 而我们用Linux 来搭建集群学习Ha…...

OpenClaw 技能插件开发实战:适配职业教育的 AI 实训案例

一、前言随着人工智能技术在职业教育领域的深度渗透,传统AI实训模式逐渐暴露出诸多痛点:实训内容脱离企业真实应用场景、学生上手门槛高、实训平台功能固化难以拓展、缺乏可落地的实战化开发任务,难以满足职教领域“岗课赛证”融合的人才培养…...

【Docker】Linux系统上卸载旧Docker、卸载Podman并重新安装Docker及配置国内镜像源

一、卸载 Podman 可以使用如下命令卸载 Podman dnf remove -y podman buildah 二、卸载旧版本 Docker 若系统中已存在旧版 Docker,请按以下步骤彻底卸载: 1.停止Docker服务 sudo systemctl stop docker 2. 卸载 Docker 相关软件包 sudo yum remov…...

halcon5_1

图像采集助手-Image Aequisition 1.配置相机IP 和巨型帧等 2.通过海康MVS软件 找到 对应halcon 版本 下载MVS https://www.hikrobotics.com/cn/machinevision/service/download/?module0 3. 找到对应halcon版本的 海康相机三方配置文件 4.找到Halocn文件目录 粘贴上图文…...

Vue3+Vue-Router项目在Edge浏览器无法最小化问题

补充: 不同环境的情况不一样,可参考:https://github.com/vuejs/router/issues/2644 ---------------------------------------------------------------------------- 已有大佬排查并解决了该问题: https://blog.csdn.net/u01…...

C/C++数据结构与算法(第二弹)

目录 栈和队列 1.栈 1.1栈的概念以及结构 1.2栈的实现 2.队列 2.1队列的概念以及结构 2.2队列的实现 3.栈和队列OJ题 1. 括号匹配问题。OJ链接 2. 用队列实现栈。OJ链接 3. 用栈实现队列。OJ链接 4. 设计循环队列。OJ链接 二叉树 1.树概念以及结构 1.1树的概念 …...

(75页PPT)TPM自主保养概论(附下载方式)

篇幅所限,本文只提供部分资料内容,完整资料请看下面链接 https://download.csdn.net/download/2501_92808811/92608801 资料解读:《(75页PPT)TPM自主保养概论》 详细资料请看本解读文章的最后内容。 本文旨在系统性…...

数据治理(一)

数据治理的介绍及作用 数据治理:是运用专业方法和技术手段理清企业的数据资产并开展治理工作,是围绕将数据作为企业资产而开展的一系列的具体化工作。 作用:保证数据的可信可靠可用,满足业务对数据质量和数据安全的系列举措。 框…...

[Redis小技巧10]深入 Redis Stream:从原理到生产级实践

一、Stream 是什么?为什么需要它? Redis Stream 是 Redis 5.0 引入的一种持久化、可追加、支持消费者组的消息队列数据结构。它解决了传统 LIST(缺乏消息确认)和 PUB/SUB(非持久化、无重试机制)在构建可靠消…...

基于A* 算法的无人机三维路径规划:MATLAB实现之旅

基于A* 算法的无人机三维路径规划算法,MATLAB编程实现。在无人机应用日益广泛的今天,高效的路径规划算法至关重要。A 算法凭借其在寻找最优路径方面的出色表现,成为众多路径规划场景中的热门选择。本文就来聊聊基于A 算法的无人机三维路径规划…...

PID 和 LQR 主动悬架模型对比:探索汽车平顺性的优化之路

【PID和LQR主动悬架模型对比】分别建立了PID控制和LQR控制的的主动悬架模型,比较两种控制器的控制效果。 以悬架主动力为控制目标,输入为B级随机路面,输出为车身垂向加速度、俯仰角加速度、悬架动挠度等平顺性评价指标,可做汽车平…...

探索一维光子晶体态密度案例:从理论到代码实现

一维光子晶体态密度案例在光子学领域,一维光子晶体态密度是一个极为有趣且重要的研究方向。它不仅有助于我们深入理解光子在周期性结构中的行为,还为诸如滤波器、波导等光学器件的设计提供了理论基础。 一维光子晶体理论基础 一维光子晶体,简…...

探索 10KV 级联 H 桥并网系统:性能与控制的奇妙之旅

级联H桥并网 10KV。 每相12个H桥,单个H桥直流电压为850V,采用电流闭环控制。 为了测试系统控制性能效果,在1s时,控制输出电流从2000A下降到1500A,控制效果好,电流电压无超调,网侧电流THD只有0.3…...

风光储柴直流微电网的并离网切换模型与技术实现

风光储柴直流微电网可并离网切换 含: 1.永磁直驱风机+mppt+整流+并网逆变 mppt采用扫描搜索法 整流采用转速外环电流内环双闭环控制 并网逆变采用电压外环电流内环控制 满功率运行 2.PV+mppt+boost+并网逆变…...

研究flow3d模拟选区激光熔化Inconel 718制件内部缺陷的形成机理,优化工艺参数,从...

研究flow3d模拟选区激光熔化Inconel 718制件内部缺陷的形成机理,优化工艺参数,从而得到具有优良性能的产品。 SLM成形过程中存在许多复杂的物理现象,如 粉末层的吸收率、熔池的熔化与凝固、因表面张力引起的马兰格尼对流效应和由于材料达到沸…...

COMSOL波在可变折射率光纤中的传播

comsol波在光纤中得传播,可变折射率光纤光纤通信系统的性能很大程度上取决于光在纤芯中的传输特性。对于渐变折射率光纤而言,其纤芯折射率呈现非均匀分布,这种结构能有效减小模式色散。在COMSOL中实现这类仿真时,有个特别有意思的…...