一、前言
在深度学习的蓬勃发展中,YOLO系列模型的迭代速度令人惊叹。从YOLOv5到YOLOv11的更新仅用了短短四年时间。相比其他计算机视觉模型,YOLO具备轻量化、设备要求低、结构简洁的优点,不仅易于上手,还特别适合在校学生和初学者用于学习和实践计算机视觉算法。本教程面向对计算机视觉感兴趣的入门者和初学者,将从基础环境的配置开始,逐步引导读者完成YOLOv10的环境搭建和推理流程,并分享一些工程经验。本文暂不展开YOLO的原理分析,重点放在实践和应用层面,助力大家快速入门。
二、开发环境准备
环境准备包括python代码编写编译器和python环境集成anaconda。已安装可跳过
1、python代码编写编译器:pycharm或者vscode,结合自身习惯安装对应的编辑器。大家可参考2024年 pycharm 下载安装教程,超详细图解_pycharm官网-CSDN博客
2、anaconda虚拟环境管理:在我目前使用过程中,anaconda主要两大功能环境单独管理和环境打包。向大家解释一下为什么需要anaconda,我们在做深度学习任务的时候,不只是实现一个模型,而是多个模型,然而多个模型会涉及到不同的python版本或者不同的依赖包,这就可能导致安装在同一个环境下冲突。所以anaconda算是一个大房子可以单独建立小房间,每个房间对应一个模型的环境配置,这样方便我们使用不同模型时切换环境更方便。安装教程:Anaconda超详细安装教程(Windows环境下) - 奋斗终生 - 博客园
三、YOLOv10环境配置及推理
我们在配置一个模型之前,首先找到模型代码所在的GitHub代码库,一般都会告诉大家如何配置模型依赖的环境,yolov10的GitHub链接:https://github.com/THU-MIG/yolov10。但是yolov10有个ultralytics库,能够更快速的部署推理,我们先看看这个简单的部署。这两个方式的区别在于源码的形式更容易让大家进行debug熟悉结构。
1、创建一个yolov10的conda虚拟环境:在cmd或者pycharm的terminal中输入指令:
# 创建一个名为yolov10 python版本为3.9的虚拟环境
conda create -n yolov10 python=3.9
# 查看系统中所有的虚拟环境,可观察是否创建成功
conda env list
# 进入到yolov10的环境中
conda activate yolov10
以下为图片实例:
2、安装yolov10的依赖环境。(通过安装ultralytics实现yolo推理,下面再介绍通过源码的方式)参考文档https://docs.ultralytics.com/zh/models/yolov10/,需要安装ultralytics库,通过pip安装
pip install ultralytics
3、编写infer代码
from ultralytics import YOLO
# 导入权重模型(传入路径)
model = YOLO("yolov10n.pt")
# 推理图片
results = model("image.jpg")
# 可视化结果
results[0].show()
4、运行代码
# 在yolov10的虚拟环境, cd进入infer代码所在的目录中执行
python infer.py
代码目录结构:
执行结果:
到此已经完成u版的infer流程,train训练可以参考官方的操作文档进行学习,这就不进行累赘。
附加
注:针对源码环境配置,主要参考readme文件,和u版的区别就是讲下载的ultralytics放在代码里,方便大家对源码进行熟悉
唯一需要改的就是步骤2,不需要安装ultralytics,而是安装requirement文件,下载代码后,进入到项目路径下,执行以下命令。其余不变,需要注意的是,代码运行的目录保持为大目录下
pip install -r requirements.txt
pip install -e .
目录截图:
总结
在本篇教程中,我们从零开始逐步搭建了YOLOv10的运行环境,并完成了模型的基本推理操作。首先,我们配置了Pycharm和Anaconda,利用Anaconda实现了虚拟环境的隔离和依赖包的便捷管理,极大地简化了深度学习项目的环境搭建。随后,我们安装了YOLOv10及其所需的依赖库,确保推理正常运行。通过这篇文章,相信大家已经掌握了YOLOv10项目从环境配置到基本推理的整个流程。
YOLO系列的轻量化与高性能使其成为视觉训练的良好选择,希望通过本篇文章的实践操作,能够帮助初学者顺利入门计算机视觉开发。当然,计算机视觉是一个复杂且广泛的领域,未来可以进一步深入研究YOLO的模型结构、改进方法以及在不同应用场景中的表现和优化策略。希望本文能够为各位读者在计算机视觉的探索之旅中提供一个良好的开端!