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

无anaconda搭建yolo11环境

1.下载python3.10

Python Releases for Windows | Python.org

Ctrl+R  cmd

cd到python下载目录下

下载pytorch

D:\app\python>pip install torch==2.0.0+cu118 torchvision==0.15.1+cu118 --extra-index-url https://download.pytorch.org/whl/cu118

pip install numpy==1.26.3

data

JPEGImages

labels

classes.txt

VOCdevkit

data.yaml

train: D:/app/yolo11/ultralytics-main/VOCdevkit/train/images  # train images (relative to 'path') 128 images
val: D:/app/yolo11/ultralytics-main/VOCdevkit/val/images  # val images (relative to 'path') 128 images
test: D:/app/yolo11/ultralytics-main/VOCdevkit/test/imagesnc: 2# Classes
names: ['hat','nohat']

data_divide.py

# 作者:CSDN-笑脸惹桃花 https://blog.csdn.net/qq_67105081?type=blog
# github:peng-xiaobai https://github.com/peng-xiaobai/Dataset-Conversion
import os
import shutil
import random# random.seed(0)  #随机种子,可自选开启
def split_data(file_path, label_path, new_file_path, train_rate, val_rate, test_rate):images = os.listdir(file_path)labels = os.listdir(label_path)images_no_ext = {os.path.splitext(image)[0]: image for image in images}labels_no_ext = {os.path.splitext(label)[0]: label for label in labels}matched_data = [(img, images_no_ext[img], labels_no_ext[img]) for img in images_no_ext if img in labels_no_ext]unmatched_images = [img for img in images_no_ext if img not in labels_no_ext]unmatched_labels = [label for label in labels_no_ext if label not in images_no_ext]if unmatched_images:print("未匹配的图片文件:")for img in unmatched_images:print(images_no_ext[img])if unmatched_labels:print("未匹配的标签文件:")for label in unmatched_labels:print(labels_no_ext[label])random.shuffle(matched_data)total = len(matched_data)train_data = matched_data[:int(train_rate * total)]val_data = matched_data[int(train_rate * total):int((train_rate + val_rate) * total)]test_data = matched_data[int((train_rate + val_rate) * total):]# 处理训练集for img_name, img_file, label_file in train_data:old_img_path = os.path.join(file_path, img_file)old_label_path = os.path.join(label_path, label_file)new_img_dir = os.path.join(new_file_path, 'train', 'images')new_label_dir = os.path.join(new_file_path, 'train', 'labels')os.makedirs(new_img_dir, exist_ok=True)os.makedirs(new_label_dir, exist_ok=True)shutil.copy(old_img_path, os.path.join(new_img_dir, img_file))shutil.copy(old_label_path, os.path.join(new_label_dir, label_file))# 处理验证集for img_name, img_file, label_file in val_data:old_img_path = os.path.join(file_path, img_file)old_label_path = os.path.join(label_path, label_file)new_img_dir = os.path.join(new_file_path, 'val', 'images')new_label_dir = os.path.join(new_file_path, 'val', 'labels')os.makedirs(new_img_dir, exist_ok=True)os.makedirs(new_label_dir, exist_ok=True)shutil.copy(old_img_path, os.path.join(new_img_dir, img_file))shutil.copy(old_label_path, os.path.join(new_label_dir, label_file))# 处理测试集for img_name, img_file, label_file in test_data:old_img_path = os.path.join(file_path, img_file)old_label_path = os.path.join(label_path, label_file)new_img_dir = os.path.join(new_file_path, 'test', 'images')new_label_dir = os.path.join(new_file_path, 'test', 'labels')os.makedirs(new_img_dir, exist_ok=True)os.makedirs(new_label_dir, exist_ok=True)shutil.copy(old_img_path, os.path.join(new_img_dir, img_file))shutil.copy(old_label_path, os.path.join(new_label_dir, label_file))print("数据集已划分完成")if __name__ == '__main__':file_path = r"D:\app\yolo11\ultralytics-main\data\JPEGImages"  # 图片文件夹label_path = r'D:\app\yolo11\ultralytics-main\data\labels'  # 标签文件夹new_file_path = r"D:\app\yolo11\ultralytics-main\VOCdevkit"  # 新数据存放位置split_data(file_path, label_path, new_file_path, train_rate=0.7, val_rate=0.15, test_rate=0.15)

yolov11_predict.py

import warnings
warnings.filterwarnings('ignore')
from ultralytics import YOLO
if __name__ == '__main__':model = YOLO('D:/app/yolo11/ultralytics-main/ultralytics/cfg/models/11/yolo11n.yaml')model.load('D:/app/yolo11/ultralytics-main/yolo11n.pt')  #注释则不加载results = model.train(data='D:/app/yolo11/ultralytics-main/data.yaml',  #数据集配置文件的路径epochs=50,  #训练轮次总数batch=16,  #批量大小,即单次输入多少图片训练imgsz=640,  #训练图像尺寸workers=8,  #加载数据的工作线程数device= 0,  #指定训练的计算设备,无nvidia显卡则改为 'cpu'optimizer='SGD',  #训练使用优化器,可选 auto,SGD,Adam,AdamW 等amp= True,  #True 或者 False, 解释为:自动混合精度(AMP) 训练cache=False  # True 在内存中缓存数据集图像,服务器推荐开启
)

yolov11_train.py

from ultralytics import YOLO
# 加载训练好的模型,改为自己的路径
model = YOLO('D:/app/yolo11/ultralytics-main/runs/detect/train2/weights/best.pt')  #修改为训练好的路径
source = 'D:/app/yolo11/ultralytics-main/VOCdevkit/train/images/' #修改为自己的图片路径及文件名
# 运行推理,并附加参数
model.predict(source, save=True)

http://www.xdnf.cn/news/591355.html

相关文章:

  • 鸿蒙进阶——CMakelist、GN语法简介及三方库通用移植指南
  • 技术篇-2.3.Golang应用场景及开发工具安装
  • 晶振选型三大陷阱:工作温度、电压与负载电容的隐藏矛盾
  • 【AT32】 at32 软复位
  • mssql查询历史执行过的语句日志
  • 提示词工程驱动Mermaid图表生成:技术原理与实战案例
  • 力扣面试150题-- 二叉树展开为链表
  • MYSQL备份与恢复
  • 【灵动Mini-F5265-OB】环境搭建以及按键串口驱动
  • ganache-ui使用
  • OminiScenes代码阅读
  • PyQt学习系列03-动画与过渡效果
  • 【部署】如何离线环境创建docker容器执行python命令行程序
  • 在 LangChain 中集成 Mem0 记忆系统教程
  • 向量数据库及ChromaDB的使用
  • SQL基础概念以及SQL的执行方式
  • YOLO篇-3.1.YOLO服务器运行
  • const修饰指针
  • 【信息系统项目管理师】第15章:项目风险管理 - 55个经典题目及详解
  • 参数化建模(二):避免踩坑!优劣分析与选择诀窍
  • 禅道隐藏版权信息
  • 安装openresty使用nginx+lua,openresty使用jwt解密
  • upload-labs通关笔记-第18关文件上传之条件竞争
  • 数据结构篇--二项队列
  • linux服务器查看端口是否被占用
  • 5月22日复盘-YOLOV5
  • SQLServer与MySQL数据迁移案例解析
  • fscan教程1-存活主机探测与端口扫描
  • Android 添加系统服务的完整流程
  • JavaScript【9】ES语法