Date:2024年1月24日
概要说明
yolo简介及背景
yolo(You Only Look Once)是目前一种普及性较高的人工智能目标检测方法,它将目标检测任务重新定义为单一的回归问题,从而实现了从图像像素到边界框坐标和类别概率的直接映射。在业界,Yolo的新应用层出不穷,其需求多样变化、源码结构复杂化、跨编程语言不成熟等问题依然存在,处于一个快速更迭的阶段。
开发需求
本文的背景是需要在Windows 11(x64) 环境下,以时下最新,也最具检测能力的 yolov8 框架上,实现对OpenCV、Python和C++集成开发环境的部署。由于没有发现网上有较为详细的搭建指南,笔者根据工程需要进行整理,并提供过程中出现的部分错误与对应的解决方法。为了长期支持的考虑,本文采用的各个模块均为2年以内的稳定版本。
阅读本文可以帮助读者完成yolov8基础编译环境的快速部署,以满足 yolov8 在C++工业应用上的工程化需要。
本文所用到的环境版本如下:
cmake 3.27.1
libtorch 2.1.2 + cpu
opencv 4.8.1
vs 2017
正文
一、搭建Windows下python环境
小节概述
由于yolo默认支持于Windows/Linux环境下的python语言,且大部分算法实施与调优依靠此环境,因此给出目前通用的python下开发环境搭建过程。如仅需要C++的开发环境配置,请直接阅读本文正文部分的第二节:搭建Windows下C++环境.
本小节需要的素材有:
- Anaconda
- Pytorch
- Yolov8
搭建过程
1.Anaconda环境
Anaconda是一个Python包管理软件,利用工具/命令conda来进行package和environment的管理,可以很方便地解决多版本Python并存、切换以及各种第三方包安装问题。在我们激活yolo进行训练任务前,对conda环境的配置是较为广泛易用的方法。
我们选择 Anaconda/miniconda 两个版本中的一个进行下载。为了更好的兼容CUDA,建议选择3.8(也即后缀-py38_以上的版本,无需使用最新版),对于比较基础的功能使用,笔者推荐选择包体较小的 miniconda 即可。
Anaconda:
miniconda:
Index of /anaconda/miniconda/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
二者的下载均在清华大学公开源中下载即可,无需使用vpn,下面是以miniconda为例进行的安装操作,如需使用完整的Anaconda也可以同时操作。
安装过程中,请点选使用conda的PATH环境变量支持
安装完成后,在联网环境下创建一个新的虚拟环境,测试是否可以用conda分别管理多个项目的包支持。
1、打开Anaconda prompt
PyPI镜像设置国内默认源,此操作可以将软件所需依赖转到国内下载
输入命令:(参考pypi | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror)
pip config set global.index-url Simple Index
2、创建与激活环境【注意很多操作要在激活环境下完成】
创建新的conda环境的命令:
conda create -n yolov8test python=3.8
其中 -n yolov8test 是笔者自定义的conda空间名,python=3.8是指定python的版本为v3.8版本
回车,输入y,完成所需的安装,显示:Executing transaction: done 即成功
激活conda环境的命令:
conda activate yolov8test
2.安装pytorch
在GPU工作环境下,安装pytorch需要 CUDA 的支持。如果只需要训练、简单推理,则无需单独安装CUDA,直接安装pytorch;如果有部署需求,例如导出TensorRT模型,则需要进行CUDA安装。由于显卡的CUDA版本各有不同,因此我们需要根据自己的 Cuda 版本,选择不同的 pytorch 版本
1、查询本机显卡对应的 CUDA 版本
打开cmd窗口,以 Nvidia Geforce 3060为例,
输入命令,在图示位置找到 CUDA 版本信息:
nvidia-smi
2、下载Pytorch,选择对应的版本进行安装即可
需要注意:
1)安装CUDA不是必须项
2) 16XX 系列的Nvidia显卡,请固定安装cu102的版本,否则可能训练出现问题。
30XX、40XX系列的Nvidia显卡,要安装【cu111以上】的版本,否则无法正常运行
3、激活conda环境,在Anaconda prompt下输入指令:
conda activate yolov8test
(再次提醒,“yolov8test”是个人自定义的conda空间名称,此处请使用你自己的conda空间)
4、进行指定版本的pytorch和cuda工具链的安装
笔者在这里使用了 v1.13.0 版本安装未成功,推荐使用 v1.12.0 及以下版本。
输入指令:
conda install pytorch==1.12.0 torchvision==0.13.0 torchaudio==0.12.0 cudatoolkit=11.3 -c pytorch
出现 Proceed ([y]/n)? 信息,输入y
等一阵子以后,会有一个进度条卡在(more hidden),稍等一下即可完成安装
3.源码安装Yolov8
首先获取yolov8源码,从github上进行clone:
std,lib,int,C++,Yolov8,Win11,安装,cv From: https://blog.csdn.net/qq_29068607/article/details/140670973