2026/3/8 0:42:19
网站建设
项目流程
腾讯风铃怎么建设网站,做网站用哪个软件写比较好,怎么把自己做的网站放上网络,培训教育类网站模板下载YOLO26当前支持目标检测、实例分割、图像分类、姿态识别、旋转框检测、目标跟踪六大计算机视觉任务#xff0c;是当前最好用的框架之一。本文为YOLO26标准仓库ultralytics[1]的使用教程。安装环境
ultralytics支持两种基本运行模式#xff0c;源码运行和命令行运行。
下面主要…YOLO26当前支持目标检测、实例分割、图像分类、姿态识别、旋转框检测、目标跟踪六大计算机视觉任务是当前最好用的框架之一。本文为YOLO26标准仓库ultralytics[1]的使用教程。安装环境ultralytics支持两种基本运行模式源码运行和命令行运行。下面主要以源码运行为例进行各项功能的使用。克隆代码git clone https://github.com/ultralytics/ultralytics.git用uv安装环境uv sync激活环境source .venv/bin/activate目标检测模型训练创建一个新的py文件输入以下命令即可开始一轮模型训练。fromultralyticsimportYOLO# Load a COCO-pretrained YOLO26n modelmodelYOLO(yolo26n.pt)# Train the model on the COCO8 example dataset for 1 epochsresultsmodel.train(dataultralytics/cfg/datasets/coco8.yaml,epochs1,imgsz640)其中“yolo26n.pt”指的是用型号官方提供的yolo26n这款预训练模型为基础进行参数初始化类似可选的模型共有5种n/s/m/l/x参数量和性能依次从小到大如下表所示ultralytics/cfg/datasets/coco8.yaml指的是用该路径的配置文件配置文件由两部分构成数据集路径和类别标签。path:coco8train:images/trainval:images/valtest:# test images (optional)# Classesnames:0:person1:bicycle2:carpath为项目根路径train表示以项目根路径为基准训练集的路径val表示以项目根路径为基准验证集的路径test表示以项目根路径为基准验证集的路径。验证集的路径是必须要有的因为模型在每次训练完之后默认会执行一轮验证保存验证集上最佳的模型权重。测试集可以不需要填写如果要验证模型的泛化性能的话可以填写并在后面做验证时需要指定测试集。运行上面的代码后会自动下载coco8这个数据集8张图片4张训练4张验证。数据集默认的存放路径为../dataset一个标准的训练数据集需要按照以下的文件结构排列标签必须是labels文件夹名称不可随意修改。coco8/ ├── images/ │ ├── train/ │ │ ├── 0001.jpg │ │ ├── 0002.jpg │ │ └── ... │ └── val/ │ ├── 0101.jpg │ ├── 0102.jpg │ └── ... ├── labels/ │ ├── train/ │ │ ├── 0001.txt │ │ ├── 0002.txt │ │ └── ... │ └── val/ │ ├── 0101.txt │ ├── 0102.txt │ └── ...在每一个txt标签中单个目标以以下五个值排列例如16 0.606687 0.341381 0.544156 0.51这五个值分别表示类别id、中心点横坐标、中心点纵坐标、目标宽度、目标高度宽度和高度是归一化之后的值。class_id x_center y_center width height如果要训练其它的数据集只需要按照以上规则进行处理即可。训练完成后模型默认保存在以下路径runs/detect/train/weights其中有两个模型best.pt在验证集上效果最好的模型权重last.pt最后一轮训练保存的模型权重在训练时如果gpu是nvidia的gpu会自动用cuda进行训练。如果是macOS系统会自动用cpu需要指定device为mps才能加速训练。model.train的这个接口还可以传递更多参数核心训练参数参数类型默认值说明datastr-数据集配置文件路径如coco8.yamlepochsint100训练轮数timefloat-最大训练小时数设置后覆盖epochspatienceint100早停机制验证指标不提升的等待轮数batchint16批次大小-1 表示自动批次imgszint/list640训练/验证图像尺寸saveboolTrue是否保存训练检查点和预测结果save_periodint-1每 N 轮保存一次检查点 1 则禁用cachebool/strFalse缓存图片到 RAM (True/‘ram’) 或磁盘 (disk)deviceint/str/list-训练设备0/[0,1,2,3]/cpu/mps-1自动选择空闲 GPUworkersint8数据加载工作线程数优化器与学习率参数参数类型默认值说明optimizerstrauto优化器SGD/Adam/Adamax/AdamW/NAdam/RAdam/RMSProp/autolr0float0.01初始学习率SGD1e-2Adam1e-3lrffloat0.01最终学习率比例最终 LR lr0 × lrfmomentumfloat0.937SGD 动量或 Adam beta1weight_decayfloat0.0005权重衰减L2 正则化warmup_epochsfloat3.0热身轮数支持小数cos_lrboolFalse使用余弦学习率调度器数据增强参数参数类型默认值说明hsv_hfloat0.015HSV 色调增强幅度hsv_sfloat0.7HSV 饱和度增强幅度hsv_vfloat0.4HSV 亮度增强幅度degreesfloat0.0旋转角度±translatefloat0.1平移比例±scalefloat0.5缩放增益±shearfloat0.0剪切角度±perspectivefloat0.0透视变换比例0–0.001flipudfloat0.0垂直翻转概率fliplrfloat0.5水平翻转概率mosaicfloat1.0Mosaic 数据增强概率mixupfloat0.0MixUp 增强概率cutmixfloat0.0CutMix 增强概率copy_pastefloat0.0分割 copy-paste 概率close_mosaicint10最后 N 轮禁用 mosaic 增强erasingfloat0.4分类随机擦除概率仅分类任务训练控制参数参数类型默认值说明projectstr-项目名称结果保存根目录namestr-实验名称结果保存在project/nameexist_okboolFalse是否覆盖同名实验目录pretrainedbool/strTrue使用预训练权重布尔值或从路径加载权重字符串resumeboolFalse从运行目录中最后一个检查点恢复训练fractionfloat1.0使用训练集的比例1.0 全部freezeint/list-冻结前 N 层整数或特定层索引列表multi_scalefloat0.0多尺度训练变化图像尺寸compilebool/strFalse启用torch.compile()验证与日志参数参数类型默认值说明valboolTrue训练时是否运行验证splitstrval验证集分割val/test/trainplotsboolTrue保存训练/验证过程中的图表和图像save_jsonboolFalse保存结果到 COCO JSON 用于外部评估conffloat-置信度阈值预测默认 0.25验证默认 0.001ioufloat0.7NMS 使用的 IoU 阈值max_detint300每张图最大检测数verboseboolTrue打印详细日志seedint0随机种子保证可复现性deterministicboolTrue启用确定性操作可复现但可能更慢ampboolTrue自动混合精度AMP训练损失函数权重参数参数类型默认值说明boxfloat7.5边界框损失权重clsfloat0.5分类损失权重dflfloat1.5分布焦点损失权重posefloat12.0姿态损失权重仅姿态任务kobjfloat1.0关键点目标损失权重仅姿态任务rlefloat1.0RLE 损失权重仅姿态任务anglefloat1.0旋转角度损失权重仅 OBB 任务任务特定参数参数分割任务overlap_mask: bool True训练时合并实例掩码mask_ratio: int 4掩码下采样比例分类任务dropout: float 0.0分类头 dropout模型验证模型验证用于在数据的验证集/测试集上验证训练完的模型性能。下面是一个基本用法fromultralyticsimportYOLO modelYOLO(runs/detect/train/weights/best.pt)metricsmodel.val(datacoco8.yaml,imgsz640)model.val还支持以下参数参数类型默认值说明datastr-数据集配置文件路径如coco8.yamlimgszint/list640验证图像尺寸方形或 [h,w]batchint16批次大小-1 表示自动批次deviceint/str/list-验证设备0/[0,1,2,3]/cpu/mpsworkersint8数据加载工作线程数splitstrval数据集分割val/test/trainrectboolTrue是否使用矩形批次val 方法默认启用save_jsonboolFalse保存结果到 COCO JSON 用于外部评估conffloat0.001置信度阈值验证默认 0.001ioufloat0.7NMS 使用的 IoU 阈值max_detint300每张图最大检测数halfboolFalse如果支持使用半精度FP16dnnboolFalse使用 OpenCV DNN 进行 ONNX 推理plotsboolTrue保存验证过程中的图表和图像projectstr-项目名称结果保存根目录namestr-实验名称结果保存在project/nameexist_okboolFalse是否覆盖同名实验目录verboseboolTrue打印详细日志cachebool/strFalse缓存图片到 RAM (True/‘ram’) 或磁盘 (disk)模型推理模型推理用于对指定图片/图片文件夹进行检测。下面是一个基本用法fromultralyticsimportYOLO modelYOLO(runs/detect/train/weights/best.pt)resultsmodel.predict(ultralytics/assets/bus.jpg,saveTrue)结果默认保存在 runs/detect/predict 路径中。model.predict 还支持以下参数核心参数参数类型默认值说明sourcestr/Path/int/PIL/np.ndarray/tensor/list必填图像/视频源文件路径、URL、摄像头索引、PIL 图像、numpy 数组、torch 张量conffloat0.25置信度阈值预测默认 0.25低于此值的检测将被过滤ioufloat0.7NMS 使用的 IoU 阈值imgszint/list640输入图像尺寸方形或 [h,w]batchint1批次大小predict 方法默认为 1deviceint/str/list-推理设备0/[0,1,2,3]/cpu/mpsstreamboolFalse流模式视频/摄像头建议开启输出控制参数参数类型默认值说明showboolFalse在窗口中显示图像/视频saveboolFalse保存预测结果图像save_txtboolFalse保存结果为.txt文件xywh 格式save_confboolFalse在结果中保存置信度分数save_cropboolFalse保存裁剪的预测区域到文件save_framesboolFalse保存视频预测的每一帧projectstr-项目名称结果保存根目录namestr-实验名称结果保存在project/nameexist_okboolFalse是否覆盖同名实验目录verboseboolTrue打印详细日志可视化参数参数类型默认值说明show_labelsboolTrue在图像上绘制类别标签show_confboolTrue在图像上绘制置信度值show_boxesboolTrue在图像上绘制边界框line_widthint-边界框线宽未设置则根据图像尺寸自动缩放retina_masksboolFalse使用高分辨率分割掩码仅分割任务vid_strideint1视频源每隔 N 帧读取一帧stream_bufferboolFalseTrue 缓存所有帧False 只保留最新帧低延迟流其它参数参数类型默认值说明augmentboolFalse预测时应用测试时增强TTAagnostic_nmsboolFalse类别无关 NMSmax_detint300每张图最大检测数halfboolFalse如果支持使用半精度FP16dnnboolFalse使用 OpenCV DNN 进行 ONNX 推理visualizeboolFalse可视化模型特征预测或 TP/FP/FN 混淆矩阵验证embedlist[int]-从指定层索引返回特征嵌入prompts--SAM 类模型的提示词模型转换模型转换值得是将pytorch模型格式转换成其它格式用来加速推理或特定用途。以pt转onnx为例代码如下fromultralyticsimportYOLO modelYOLO(runs/detect/train/weights/best.pt)model.export(formatonnx)其它支持的格式和对应的参数有格式参数值说明适用场景PyTorchtorchscriptTorchScript通用部署ONNXonnxOpen Neural Network Exchange跨平台部署OpenVINOopenvinoIntel OpenVINOIntel 硬件加速TensorRTengineNVIDIA TensorRTNVIDIA GPU 推理加速CoreMLcoremlApple CoreMLiOS/macOS 部署TensorFlowsaved_modelTF SavedModelTensorFlow 生态TFLitetfliteTensorFlow Lite移动端/嵌入式TensorFlow.jstfjsTensorFlow.jsWeb/Node.js 部署PaddlePaddlepaddlePaddlePaddle百度生态MNNmnn阿里 MNN移动端部署NCNNncnn腾讯 NCNN移动端/嵌入式pbpbTensorFlow Frozen GraphTensorFlow 1.xEdge TPUedgetpuGoogle Edge TPUGoogle Coral 设备IMXimxNXP i.MXNXP 芯片RKNNrknnRockchip RKNN瑞芯微芯片核心参数参数类型默认值说明formatstrtorchscript导出格式见上表imgszint/list640输入图像尺寸方形或 [h,w]batchint1导出模型的批次大小devicestr-导出使用的设备0/cpu/mpshalfboolFalse导出为 FP16 半精度int8boolFalse导出为 INT8 精度需要校准数据dynamicboolFalse动态输入尺寸支持变化图像大小simplifyboolTrueONNX/engine 图简化opsetint-ONNX opset 版本未设置则使用测试过的默认值workspacefloat-TensorRT 工作空间大小GiB如4nmsboolFalse将 NMS 融入导出的模型optimizeboolFalseTorchScript 移动端优化kerasboolFalseTF SavedModel 启用 Keras 层了解完目标检测之后其它几个计算机视觉任务接口都是差不多的ultralytics在接口一致性上做的很好。实例分割下面是实例分割的推理代码接口和上面完全一致只是换了一个模型。fromultralyticsimportYOLO modelYOLO(yolo26n-seg.pt)resultsmodel.predict(ultralytics/assets/zidane.jpg,saveTrue)图像分类图像分类的推理只需把模型后缀改成cls。fromultralyticsimportYOLO modelYOLO(yolo26n-cls.pt)resultsmodel.predict(ultralytics/assets/zidane.jpg,saveTrue)姿态识别姿态识别的推理只需把模型后缀改成pose。fromultralyticsimportYOLO modelYOLO(yolo26n-pose.pt)resultsmodel.predict(ultralytics/assets/zidane.jpg,saveTrue)旋转框检测旋转框检测的推理只需把模型后缀改成obb。fromultralyticsimportYOLO modelYOLO(yolo26n-obb.pt)resultsmodel.predict(ultralytics/assets/zidane.jpg,saveTrue)目标跟踪目标跟踪会有点不一样它仍然是基于检测模型去做但是传入的是视频并且需要指定跟踪算法。示例代码如下fromultralyticsimportYOLO modelYOLO(yolo26n.pt)resultsmodel.track(sourcevideo.mp4,streamTrue,showTrue,trackerbotsort.yaml)跟踪算法除了botsort还支持bytetrack。这两个跟踪算法的具体参数可以在 ultralytics/cfg/trackers 的相应配置文件下去进行调整。ultralytics除了支持YOLO26以外还支持从YOLOv3开始的一系列YOLO算法和RT-DETR算法模型结构具体可在 ultralytics/cfg/models 中进行查看。参考[1] https://github.com/ultralytics/ultralytics