YOLO(ultralytics)是一种实时目标检测算法,通过将目标检测任务转化为回归问题,能够在一次前向传播中同时预测图像中的所有目标类别和位置,实现快速而准确的目标检测。
代码下载链接见文章后面,建议按文章的步骤走。
一、pycharm环境准备
我们在pycharm下面部署yolo,假设你已经准备好了pycharm环境,如果没有,请看我的python教程:
二、新建yolo项目
打开pycharm,如图新建一个项目
选择好目录,如图红线部分的yolo是你的项目名称,同时也是目录,然后点击Create创建项目
创建好的界面如下
三、pytorch环境安装
按住win+R打开命令提示符,然后输入cmd回车
接着输入nvidia-smi,查看cuda的最高版本
nvidia-smi
如果执行nvidia-smi,没有找到命令,可能是你没有英伟达的显卡
输入PyTorch来到pytorch官网
向下滚动,找到pytorch配置页面
比如我的cuda最高为12.0,就向下兼容选择11.8。
然后复制安装命令:
(注意这里存在的问题:--index-url 和-i是等效的,pip会去选择后面的一个,就是选择源,有可能源并没有cu118,所以下载的是cpu的版本,我们现在还不需要训练,可以不用理会这个问题,后续文章会提到)
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
打开刚开建立的pycharm项目,左下角进入终端
然后在终端输入上面的安装命令,然后回车。(若网速不佳,可以使用清华源下载。在安装链接后面加上 -i https://pypi.tuna.tsinghua.edu.cn/simple)
或者其他的源也可以,下面是国内常用源:
镜像源 | 地址 | 特点 |
清华大学镜像源 | https://pypi.tuna.tsinghua.edu.cn/simple/ | 国内最热门,更新及时 |
阿里云镜像源 | https://mirrors.aliyun.com/pypi/simple/ | 企业级支持,速度极快 |
中国科学技术大学镜像 | https://pypi.mirrors.ustc.edu.cn/simple/ | 稳定高效,适合科研场景 |
腾讯云镜像源 | https://mirrors.cloud.tencent.com/pypi/simple/ | 高速、可靠的云支持 |
华为云镜像源 | https://repo.huaweicloud.com/repository/pypi/simple/ | 华为生态强力支持 |
比如我的安装链接:
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 -i https://pypi.tuna.tsinghua.edu.cn/simple/
开始下载
安装完成
四、安装ultralytics
在终端输入指令,然后回车,如果速度慢,可以后面跟上源
pip install ultralytics
开始下载,它会下载依赖的包
下载完成
五、yolo第一个例程
yolo项目上右键新建一个test.py文件
输入如下代码
from ultralytics import YOLO
# Load a pretrained YOLO11n model
model = YOLO("yolo11n.pt")
# Run inference on 'bus.jpg' with arguments
model.predict("https://ultralytics.com/images/bus.jpg", save=True, imgsz=320, conf=0.5, show=True)
点击如图按钮运行程序
会自动下载权重、图片并预测,如果失败可以多试几次。
至此项目环境部署完成!第一个demo已经成功运行!
六、检测视频试试
修改代码,将这行注释掉
# model.predict("https://ultralytics.com/images/bus.jpg", save=True, imgsz=320, conf=0.5, show=True)
再增加一行
model.predict("dance.mp4", save=True, imgsz=320, conf=0.5, show=True)
完整的test.py如下
from ultralytics import YOLO
# Load a pretrained YOLO11n model
model = YOLO("yolo11n.pt")
# Run inference on 'bus.jpg' with arguments
# model.predict("https://ultralytics.com/images/bus.jpg", save=True, imgsz=320, conf=0.5, show=True)
model.predict("dance.mp4", save=True, imgsz=320, conf=0.5, show=True)
随便找个舞蹈视频的mp4文件
dance.mp4
运行test.py
七、yolo、pytorch、ultralytics关系
YOLO:实时目标检测算法
PyTorch:开源深度学习框架,提供动态计算图与GPU加速支持;为YOLO算法提供底层计算引擎,支持模型训练、推理及部署
Ultralytics:开源组织与代码库,维护YOLO的官方PyTorch实现;提供预训练模型、训练接口、数据增强工具链及部署优化方案。
Ultralytics的YOLO代码(如YOLOv5/YOLOv8)完全基于PyTorch开发,依赖其
torch.Tensor
数据结构与自动微分机制。YOLO算法提供检测理论框架,PyTorch提供计算基础设施,Ultralytics填补二者间的工程化鸿沟。
Ultralytics封装了复杂训练流程(如数据加载、损失计算),用户只需调用高阶API即可完成模型迭代。