YOLOv13来了,手把手教你使用YOLOv13训练自己的数据集和推理(附YOLOv13网络结构图),全文最详细教程



前言

YOLO 系统尊嘟太卷了吧,YOLOv18、YOLOv11、YOLOv12 还没玩明白,就重磅来袭,YOLOv13 是科研团队在 2025 年 6 月 21 日开源,从 YOLOv13 论文题目我们大概就知道引入全新的超图的自适应相关增强 (HyperACE) 机制 。下图是YOLOv13 在 COCO 数据集上的性能表现,摘自论文。
在这里插入图片描述

YOLOv13 创新点:

  • 引入基于超图的自适应相关增强(HyperACE )机制:HyperACE 将多尺度特征图中的像素作为顶点,采用可学习的超边缘构造模块自适应地探索顶点之间的高阶相关性。然后,利用线性复杂度的消息传递模块,在高阶相关性的指导下,有效地聚合多尺度特征,实现对复杂场景的有效视觉感知;此外,HyperACE 中还集成了低阶相关建模,以实现完整的视觉感知。HyperACE 结构如下图所示,摘自论文。
    在这里插入图片描述

  • 作者设计了 FullPAD 架构:FullPAD 使用 HyperACE 机制聚合了从骨干网络中提取的多级特征,然后将相关增强特征分布到骨干、颈部和检测头,以实现整个管道的细粒度信息流和表征协同,从而显着改善梯度传播并增强检测性能。

  • DSC3k2:为了在不牺牲性能的情况下减小模型大小和计算成本,作者提出了一系列基于深度可分离卷积的轻量级特征提取块。

理论详解可以参考链接:论文地址


一、YOLOv13代码下载地址

官网的源码下载地址 :官网源码

如果官网打不开的话,我已经下载好 YOLOv13 源码+预训练模型+训练脚本+推理脚本+训练测试数据集+数据集处理脚本,从文章末尾的公众号发送关键字 :YOLOv13源码 ,即可获取完整源码

1.YOLOv13模型结构图

YOLOv13 模型结构如下图所示(摘自论文):
在这里插入图片描述


二、YOLO环境配置教程

YOLOv13/YOLOv12环境都是通用的,只需要安装一次就行,参考YOLOv12环境配置教程即可

抖音:☑️☑️☑️YOLOv12环境配置视频版 🔜🔜🔜:YOLOv12环境配置视频版

b站:☑️☑️☑️YOLOv12环境配置视频版 🔜🔜🔜:YOLOv12环境配置视频版

我用之前的环境运行,报错:mportError: cannot import name ‘scaled_dot_product_attention’ from ‘torch.nn.functional’ ,我猜应该是 pytorch 版本太低了,没有这个模块,那我只能在创建一个虚拟环境用于YOLOv13,那么接下来重新创建新的虚拟环境

在这里插入图片描述

1.创建虚拟环境

python 版本为 3.9、 3.10、3.11 都行,我选择3.11版本的

终端输入命令创建,(-n 后面接你要创建虚拟环境的名称,这个可以自己起一个名称,不一定要跟我一样):

conda create -n yolov13 python=3.11

输入 y 回车,等待下载即可
在这里插入图片描述

2.激活虚拟环境

激活虚拟环境语法是 conda activate myenv,myenv是自己的虚拟环境名称,命令如下:

conda activate yolov13

激活成功括号变成你刚刚创建虚拟环境名字
在这里插入图片描述

3.查询自己电脑可支持最高cuda版本是多少(无显卡的同学可以跳过这个步骤)

那怎么知道电脑有没有显卡,在开始菜单搜索设备管理器打开
在这里插入图片描述

在这里插入图片描述
有显卡的同学还需要进行查询自己电脑支持最高 cuda 版本是多少,在终端输入命令 nvidia-smi 查看
在这里插入图片描述
可以看到我电脑支持最高 cuda 版本是 12.5,所以可以安装向下版本的 cuda,那么知道这个有什么用,当然有用,可以看到 pytorch 官网安装命令都带有 cuda 版本号在这里插入图片描述
假设你电脑都不支持这么高的cuda 版本,你安装了 pytorch 那么你就用不了 GPU 了。如果你电脑支持cuda太低,你可以更新英伟达驱动,更新英伟达驱动直达地址: 英伟达驱动,根据自己电脑选择下载,安装超级简单,直接下一步下一步就行,安装完成之后重启电脑,在终端输入 nvidia-smi 命令,来查看可支持的最高 cuda 版本

4.pytorch安装

看了一眼官网的配置文件,官网安装pytorch是2.2.2的
在这里插入图片描述

电脑有英伟达显卡就安装带 cuda 的 pytorch,电脑没有显卡则安装 cpu 的 pytorch,去 pytorch 官网找到合适版本复制命令安装就行 pytorch官网直达地址是:pytorch官网,复制命令时候 -c 后面不用复制
在这里插入图片描述
复制命令到终端,出现下图这样,或者安装不了的,不急,我们换一种方式安装,就是通过离线下载安装库进行安装,我换源还是安装不了,那么我们就通过另外一种方式安装,就是下载 whl 安装包,这种成功率达到 99% 。
在这里插入图片描述

把这个下图这几个版本记住,之后离线下载对应版本就行
在这里插入图片描述

离线安装包下载地址:pytorch离线安装包下载地址

打开链接,找到版本下载即可,说一下文件名的意思,

  • cu118:是 cuda 版本是 11.8,cu102 就是 cuda 版本是 10.2 的,依次类推
  • cp311:是 Python 的版本是3.11,cp39就是Python版本是3.9,依次类推
  • win:是 Windows 操作系统的意思,这个大家应该看得懂的

因为前面我按照 python 版本为 3.11 的,那么就选择 cp311 的,系统选择 win,这个版本号一定要对上 python 的版本号哦 ,之后点击下载就行,大家根据自己需求选择安装即可

在这里插入图片描述
如果没有显卡就选择 cpu 的
在这里插入图片描述
除了下载 pytorch,还需要下载对应版本的 torchvision 和 torchaudio(前面叫你记住版本号了哦)
在下载对应版本 torchvision,我的是 torchvision==0.17.2
在这里插入图片描述

在下载对应版本的 torchaudio,我的应该是 torchaudio==2.2.2

在这里插入图片描述
下载完成,在终端进入文件所在的位置,我的在 E:\3-浏览器下载的文件,先进入E盘,再 cd 切换路径,之后 pip install 文件名 安装即可,(小技巧:打文件名时候可以用 tab 键补全,关注我不仅学到一个实用的小技巧哦)在这里插入图片描述
记得激活虚拟环境在安装
在这里插入图片描述
把刚刚下载三个文件按照顺序安装即可,顺序是: 首先是 torch,其次是 torchvision,最后是 torchaudio

5.验证 PyTorch GPU 是否可用(没有显卡的同学不用看这个步骤)

安装完成后,测试 GPU 是否可用,如果输出为 True 则表示 GPU 可以使用,要是输出 False 代表不可以使用 GPU 加速,输出 False 也是可以使用的,一般 CPU 训练会很慢,慢到你怀疑人生那种,不过用来推理还是可以的。要是没有显卡租一个服务器训练模型就行,如果这个反响比较大,我也会出一期在服务器怎么训练的教程。

在终端输入 python
在这里插入图片描述
复制下面命令到终端即可

import torch
print(torch.__version__)
print(torch.cuda.is_available())
print(torch.cuda.device_count())

在这里插入图片描述
看到这里 pytorch 安装完成

6.安装其他依赖

安装 requirements.txt 文件的环境,可以看到 YOLOv12 官网给出了很多库版本,其实有些我们用不到,我拿 YOLOv8 的 requirements.txt 来安装即可,到时候缺什么我们在单独安装,不仅减少电脑内存
下图是 YOLOv12 官网的 requirements.txt 文件,把里面内容删了,复制我给的库到 requirements.txt 文件里面
在这里插入图片描述

# Ultralytics requirements
# Example: pip install -r requirements.txt

# Base ----------------------------------------
matplotlib>=3.3.0
numpy==1.24.4 # pinned by Snyk to avoid a vulnerability
opencv-python>=4.6.0
pillow>=7.1.2
pyyaml>=5.3.1
requests>=2.23.0
scipy>=1.4.1
tqdm>=4.64.0

# Logging -------------------------------------
# tensorboard>=2.13.0
# dvclive>=2.12.0
# clearml
# comet

# Plotting ------------------------------------
pandas>=1.1.4
seaborn>=0.11.0

# Export --------------------------------------
# coremltools>=7.0  # CoreML export
# onnx>=1.12.0  # ONNX export
# onnxsim>=0.4.1  # ONNX simplifier
# nvidia-pyindex  # TensorRT export
# nvidia-tensorrt  # TensorRT export
# scikit-learn==0.19.2  # CoreML quantization
# tensorflow>=2.4.1  # TF exports (-cpu, -aarch64, -macos)
# tflite-support
# tensorflowjs>=3.9.0  # TF.js export
# openvino-dev>=2023.0  # OpenVINO export

# Extras --------------------------------------
psutil  # system utilization
py-cpuinfo  # display CPU info
thop>=0.1.1  # FLOPs computation
# ipython  # interactive notebook
# albumentations>=1.0.3  # training augmentations
# pycocotools>=2.0.6  # COCO mAP
# roboflow

复制完如下图所示:
在这里插入图片描述

接下来正常安装就行,这个安装步骤我之前视频讲过,大家有兴趣可以看我之前的安装视频,在自己的虚拟环境里面安装,安装命令如下:

pip install -r requirements.txt

在这里插入图片描述
安装完成我们测试推理,运行推理文件报错,人家提示你没有安装这个库,之后缺什么就安装什么库
在这里插入图片描述
安装命令如下:

pip install huggingface-hub==0.23.2

在这里插入图片描述

最后完美推理成功
在这里插入图片描述

7.补充(flash_attn环境)

从官网的环境配置文件看出还给出了 flash_attn 库,从库的名字看出是在linux 下安装的,那么在 windows 系统当然安装不了 linux 版本的库,如需在 windows 安装 flash_attn 库,则需要找 windows 版本的 flash_attn 库。网上应该有教程在 windows 版本安装 flash_attn 库(需要安装自行网上搜索找找看,后续有这个安装需求我也更新安装步骤出来),我就没有安装照样是可以训练和推理的,下文继续详细讲一下。
在这里插入图片描述

从官网代码可以看出,AAttn 类中的 forward 方法中人家已经写好了,安装有 flash_attn 的话,则使用 flash_attn_func 函数计算,未安装或未启用flash_attn,则使用标准的缩放点积注意力(sdpa)函数来计算;最后一种情况是在 cpu 训练,则是执行最后一段代码。也就说有没有安装 flash_attn库,照样可以训练,只是注意力计算方式有所区别,应该不会对结果产生很大影响吧(大家具体实验试试)。
在这里插入图片描述

如果安装有 flash_attn ,不想用 flash_attn_func 计算,可以通过 USE_FLASH_ATTN = True 参数设置,不需要设置 False 即可
在这里插入图片描述


三、数据集准备

1.数据集标注软件

数据集使用标注软件标注好,我这里推荐两个标注软件,一个是 labelimg,另外一个是 labelme,可以在python环境,使用 pip install labelimg 或者 pip install labelme 进行安装,看你选择哪个标注工具标注了,我使用 labelimg 标注工具

安装完成在终端输入命令启动标注软件
在这里插入图片描述
下面是软件界面
在这里插入图片描述
设置自动保存标注生成的标注文件
在这里插入图片描述

2.voc数据集格式转换

标注格式如果选择VOC格式,后面需要代码转换格式,如果选择yolo格式就不用转换,voc格式转换yolo格式代码如下:

# -*- coding: utf-8 -*-
"""
@Auth :挂科边缘
@File :xml转txt.py
@IDE :PyCharm
@Motto :学习新思想,争做新青年
@Email :179958974@qq.com
"""
import xml.etree.ElementTree as ET
import os, cv2
import numpy as np


classes = []


def convert(size, box):
    dw = 1. / (size[0])
    dh = 1. / (size[1])
    x = (box[0] + box[1]) / 2.0 - 1
    y = (box[2] + box[3]) / 2.0 - 1
    w = box[1] - box[0]
    h = box[3] - box[2]
    x = x * dw
    w = w * dw
    y = y * dh
    h = h * dh
    return (x, y, w, h)


def convert_annotation(xmlpath, xmlname):
    with open(xmlpath, "r", encoding='utf-8') as in_file:
        txtname = xmlname[:-4] + '.txt'
        txtfile = os.path.join(txtpath, txtname)
        tree = ET.parse(in_file)
        root = tree.getroot()
        filename = root.find('filename')
        img = cv2.imdecode(np.fromfile('{}/{}.{}'.format(imgpath, xmlname[:-4], postfix), np.uint8), cv2.IMREAD_COLOR)
        h, w = img.shape[:2]
        res = []
        for obj in root.iter('object'):
            cls = obj.find('name').text
            if cls not in classes:
                classes.append(cls)
            cls_id = classes.index(cls)
            xmlbox = obj.find('bndbox')
            b = (float(xmlbox.find('xmin').text), float(xmlbox.find('xmax').text), float(xmlbox.find('ymin').text),
                 float(xmlbox.find('ymax').text))
            bb = convert((w, h), b)
            res.append(str(cls_id) + " " + " ".join([str(a) for a in bb]))
        if len(res) != 0:
            with open(txtfile, 'w+') as f:
                f.write('\n'.join(res))


if __name__ == "__main__":
    postfix = 'png'  # 图像后缀
    imgpath = r'E:\A-毕业设计代做数据\helmet\test\images'  # 图像文件路径
    xmlpath = r'E:\A-毕业设计代做数据\helmet\test\annotations'  # xml文件文件路径
    txtpath = r'E:\A-毕业设计代做数据\helmet\test\labels'  # 生成的txt文件路径

    if not os.path.exists(txtpath):
        os.makedirs(txtpath, exist_ok=True)

    list = os.listdir(xmlpath)
    error_file_list = []
    for i in range(0, len(list)):
        try:
            path = os.path.join(xmlpath, list[i])
            if ('.xml' in path) or ('.XML' in path):
                convert_annotation(path, list[i])
                print(f'file {list[i]} convert success.')
            else:
                print(f'file {list[i]} is not xml format.')
        except Exception as e:
            print(f'file {list[i]} convert error.')
            print(f'error message:\n{e}')
            error_file_list.append(list[i])
    print(f'this file convert failure\n{error_file_list}')
    print(f'Dataset Classes:{classes}')

代码需要修改的地方如下:
1.postfix参数填图片的后缀,需要注意图片格式要统一,是png格式就写png,是jpg格式就写jpg
2.imgpath参数填图片所在的路径
3.xmlpath参数填标注文件的路径
4.txtpath参数填生成的yolo格式的文件
在这里插入图片描述

3.数据集划分

划分训练集和验证集代码如下:

# -*- coding: utf-8 -*-
"""
@Auth : 挂科边缘
@File :划分.py
@IDE :PyCharm
@Motto:学习新思想,争做新青年
@Email :179958974@qq.com
"""

import os, shutil
from sklearn.model_selection import train_test_split


val_size = 0.2
postfix = 'jpg'
imgpath = r'E:\A-毕业设计代做数据\datasets\images'
txtpath =  r'E:\A-毕业设计代做数据\datasets\labels'



output_train_img_folder =r'E:\A-毕业设计代做数据\datasets\dataset_kengwa/images/train'
output_val_img_folder =  r'E:\A-毕业设计代做数据\datasets\dataset_kengwa/images/val'
output_train_txt_folder =  r'E:\A-毕业设计代做数据\datasets\dataset_kengwa\labels/train'
output_val_txt_folder =  r'E:\A-毕业设计代做数据\datasets\dataset_kengwa\labels/val'

os.makedirs(output_train_img_folder, exist_ok=True)
os.makedirs(output_val_img_folder, exist_ok=True)
os.makedirs(output_train_txt_folder, exist_ok=True)
os.makedirs(output_val_txt_folder, exist_ok=True)


listdir = [i for i in os.listdir(txtpath) if 'txt' in i]
train, val = train_test_split(listdir, test_size=val_size, shuffle=True, random_state=0)


for i in train:
    img_source_path = os.path.join(imgpath, '{}.{}'.format(i[:-4], postfix))
    txt_source_path = os.path.join(txtpath, i)

    img_destination_path = os.path.join(output_train_img_folder, '{}.{}'.format(i[:-4], postfix))
    txt_destination_path = os.path.join(output_train_txt_folder, i)

    shutil.copy(img_source_path, img_destination_path)
    shutil.copy(txt_source_path, txt_destination_path)

for i in val:
    img_source_path = os.path.join(imgpath, '{}.{}'.format(i[:-4], postfix))
    txt_source_path = os.path.join(txtpath, i)

    img_destination_path = os.path.join(output_val_img_folder, '{}.{}'.format(i[:-4], postfix))
    txt_destination_path = os.path.join(output_val_txt_folder, i)

    shutil.copy(img_source_path, img_destination_path)
    shutil.copy(txt_source_path, txt_destination_path)

需要修改的地方如下
在这里插入图片描述
下面四个参数只需在自己电脑任意位置新建一个文件夹就行,用于存放生成的训练集和验证集,比如新建一个文件夹叫dataset_kengwa,后面的路径不用动,如下图左边的框出来的路径覆盖成你的就行
在这里插入图片描述
数据集有以下两种方式放置,都可以进行训练,常见的数据集放置是第一种,也有开源的数据集按照第二种方式放置的,我都遇见过,也能训练起来
在这里插入图片描述

4.修改yolo的训练配置文件

我们需要在项目下创建一个 data.yaml 的文件,文件名根据数据集名称取,我这里方便演示直接叫data.yaml,如下图所示
在这里插入图片描述
代码如下:

train: E:\Desktop\new-yolov9\yolotest\images\train  # train images (relative to 'path') 4 images
val: E:\Desktop\new-yolov9\yolotest\images\val  # val images (relative to 'path') 4 images

nc: 2

# class names
names: ['dog','cat']

四、YOLOv13推理

(1)官网的预训练模型下载

进入官网的源码下载地址 :官网模型下载地址,往下面拉,看到模型位置,YOLOv13 针对不同的场景和应用提供了 YOLOv13n、YOLOv13s 等不同大小的模型,具体看官网提供的,需要下载哪个,鼠标左键单击下载就行。

在这里插入图片描述

我的源码包已经下载好了模型了,如果需要其他权重自行下载就行

(2)在根目录新建一个python文件,取名为:detect.py
在这里插入图片描述
(3)把推理代码复制到detect.py文件
注意注意注意:模型路径改成你自己的路径,还有预测图像也改成你自己的路径
推理的代码如下:

# -*- coding: utf-8 -*-
"""
@Auth : 挂科边缘
@File :detect.py
@IDE :PyCharm
@Motto:学习新思想,争做新青年
@Email :179958974@qq.com
"""

from ultralytics import YOLO

if __name__ == '__main__':

    # Load a model
    model = YOLO(model=r'D:\2-Python\1-YOLO\YOLOv11\ultralytics-8.3.2\yolo11n-seg.pt')  
    model.predict(source=r'D:\2-Python\1-YOLO\YOLOv11\ultralytics-8.3.2\ultralytics\assets\bus.jpg',
                  save=True,
                  show=False,
                  )

推理代码的参数解释
1.model参数:该参数可以填入模型文件路径
2.source参数:该参数可以填入需要推理的图片或者视频路径,如果打开摄像头推理则填入0就行
3.save参数:该参数填入True,代表把推理结果保存下来,默认是不保存的,所以一般都填入True
4.show参数:该参数填入True,代表把推理结果以窗口形式显示出来,默认是显示的,这个参数根据自己需求打开就行,不显示你就填False就行

目标检测模型推理结果如下:
在这里插入图片描述


五、YOLOv13训练

(1)在根目录新建一个python文件,取名为:train.py,如果之前看过我的文章,已经新建过就不用重新新建了
在这里插入图片描述

(2)把训练代码复制到train.py文件,如果之前看过我的文章,已经复制过了就不用重新复制了,只需修改参数就行
训练的代码如下:

# -*- coding: utf-8 -*-
"""
@Auth : 挂科边缘
@File :trian.py
@IDE :PyCharm
@Motto:学习新思想,争做新青年
@Email :179958974@qq.com
"""
import warnings
warnings.filterwarnings('ignore')
from ultralytics import YOLO

if __name__ == '__main__':
    model = YOLO(model=r'D:\1-Python\1-YOLO\YOLOv13\yolov13-main\ultralytics\cfg\models\v13\yolov13.yaml')
    model.load('yolov13n.pt') # 加载预训练权重,改进或者做对比实验时候不建议打开,因为用预训练模型整体精度没有很明显的提升
    model.train(data=r'data.yaml',
                imgsz=640,
                epochs=50,
                batch=4,
                workers=0,
                device='',
                optimizer='SGD',
                close_mosaic=10,
                resume=False,
                project='runs/train',
                name='exp',
                single_cls=False,
                cache=False,
                )

注意注意注意:模型配置路径改成你自己的路径,还有数据集配置文件也修改成你自己的路径

在这里插入图片描述
训练代码的参数解释:

  • model参数:该参数填入模型配置文件的路径,改进的话建议不需要填预训练模型权重
  • data参数:该参数可以填入训练数据集配置文件的路径
  • imgsz参数:该参数代表输入图像的尺寸,指定为 640x640 像素
  • epochs参数:该参数代表训练的轮数
  • batch参数:该参数代表批处理大小,电脑显存越大,就设置越大,根据自己电脑性能设置
  • workers参数:该参数代表数据加载的工作线程数,出现显存爆了的话可以设置为0,默认是8
  • device参数:该参数代表用哪个显卡训练,留空表示自动选择可用的GPU或CPU
  • optimizer参数:该参数代表优化器类型
  • close_mosaic参数:该参数代表在多少个 epoch 后关闭 mosaic 数据增强
  • resume参数:该参数代表是否从上一次中断的训练状态继续训练。设置为False表示从头开始新的训练。如果设置为True,则会加载上一次训练的模型权重和优化器状态,继续训练。这在训练被中断或在已有模型的基础上进行进一步训练时非常有用。
  • project参数:该参数代表项目文件夹,用于保存训练结果
  • name参数:该参数代表命名保存的结果文件夹
  • single_cls参数:该参数代表是否将所有类别视为一个类别,设置为False表示保留原有类别
  • cache参数:该参数代表是否缓存数据,设置为False表示不缓存。

注意注意注意:一般做科研改进工作时候可以不用预训练权重,因为用预训练模型整体精度很难提高

没有加载预训练模型,训练成功:
在这里插入图片描述

我这里演示加载预训练权重,训练输出如下所示:
在这里插入图片描述


六、解决训练过程中断怎么继续上次训练

在训练过程不小心中断了,那怎么继续上次的训练了,这里先不慌,官网也的代码写得非常好,它有这个断点训练功能,那么 YOLOv8 v10 v11 v12 处理的方法都是一模一样,接下来直接看图操作就行:
在这里插入图片描述

  • model参数:该参数填入上次中断的模型,为 last.pt

  • resume参数:该参数设置为True,则会加载上一次训练的模型权重和优化器状态,继续训练。


总结

YOLOv13 训练自己数据集和推理到此结束,我已经下载好 YOLOv13 源码+预训练模型+训练脚本+推理脚本+训练测试数据集+数据集处理脚本,从公众号发送关键字 :YOLOv13源码,即可获取完整源码,有问题可以留言,创作不易,请帮忙点个爱心呗,谢谢
在这里插入图片描述

YOLOv11(You Only Look Once Version 11)是一种先进的实时目标检测算法,它在新的版本中引入了多项改进,如更大的网络规模、更强的特征提取能力以及更精细的锚点设计。下面是使用YOLOv11进行自定义数据集训练推理的基本步骤: 1. **获取YOLOv11模型**: 首先,你需要下载YOLOv11的预训练权重,通常可以在GitHub或者其他开源资源上找到。官方可能会提供预训练的模型配置文件。 2. **准备数据集**: 对于训练,你需要准备标注好的图片数据集。每个图像应包含对应的目标框及其类别标签。数据集应该按照YOLO的要求组织,包括图片路径对应的XML或CSV标签文件。 3. **数据预处理**: 使用YOLO提供的工具(如Darknet中的yolov5-preprocess.py)对你的数据进行预处理,这通常涉及尺寸标准化、颜色归一化等操作。 4. **修改配置文件**: 找到YOLOv11的主配置文件(例如darknet.yaml),根据需要调整超参数,如学习率、批大小、训练轮数等。同时,指定你的数据集路径。 5. **训练模型**: - 运行命令行脚本(如darknet detect或train)开始训练过程。训练会逐步优化模型参数,使其适应你的特定任务。 6. **验证与保存**: 定期验证模型性能,检查是否过拟合或欠拟合。当达到满意的精度后,可以保存模型以便后续推理。 7. **推理阶段**: - 对新的未标记图像使用训练好的模型进行预测。同样,需要使用预先设置好的输入规格,并可能进行后处理,比如非极大值抑制(NMS)。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

挂科边缘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值