推荐阅读WIKI:
https://wiki.seeedstudio.com/real_time_yolo_object_detection_using_recamera_based_on_cpp/
Github源码库
https://github.com/Seeed-Studio/OSHW-reCamera-Series
内含超多AI Sensing相关资料,欢迎关注和讨论!将视觉检测算法真正部署于终端,将你的idea应用于生活。
在本地电脑上配置深度学习环境
一、配置Conda环境
使用虚拟环境进行任务运行是非常重要的,既能保护主机,又能避免不同的软件包之间冲突>
Windows 下载Anaconda
有两种下载方式一是官网下载,二是镜像下载。官网下载太慢一般都是用镜像下载
1.官网下载:conda官网(Download Anaconda Distribution | Anaconda)
https://www.anaconda.com/download
2.镜像下载:清华开源镜像
https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
安装Anaconda
注意事项:
1.选择为所有用户授权
配置环境变量
将如下路径添加到系统path,这里的路径为前面anaconda的安装路径,我的安装路径为E:\anaconda3,如果不同替换为自己的安装路径即可
E:\ANACONDA
E:\ANACONDA\Scripts
E:\ANACONDA\Library\mingw-w64\bin
E:\ANACONDA\Library\bin
在系统搜索栏,搜索“系统属性”,选择系统变量path,点击编辑,点击新建
检查是否配置成功
win+r 然后输入cmd打开终端页面,输入下边几条指令
conda --version
conda info
Linux 下载Anaconda
在Linux系统上安装完整的Anaconda(而不是Miniconda)的步骤如下:
- 下载Anaconda安装脚本
访问 Anaconda官方下载页面 获取最新的Linux安装脚本链接,或者直接使用以下命令下载.官网的最新版本可以向下兼容低等级的Python,如果想下载旧版本可以前往上文的清华源镜像站。
wget https://repo.anaconda.com/archive/Anaconda3-2025.06-0-Linux-x86_64.sh
请根据你的需求选择合适的版本。
- 运行安装脚本
下载完成后,运行安装脚本:
bash Anaconda3-2025.06-0-Linux-x86_64.sh
-
阅读并接受许可协议
安装脚本会显示许可协议,按 Enter 键滚动阅读,然后输入 yes 接受协议。 -
选择安装路径
安装程序会提示你选择安装路径。默认路径是 ~/anaconda3,你可以按 Enter 使用默认路径,或指定其他路径。 -
初始化Anaconda
安装完成后,安装程序会询问是否要初始化Anaconda。输入 yes,这样Anaconda会自动将路径添加到你的 ~/.bashrc 文件中。
Do you wish the installer to initialize Anaconda3 by running conda init? [yes|no] [no] >>> yes -
激活Anaconda
为了使更改生效,你需要重新加载 ~/.bashrc 文件:
source ~/.bashrc
- 验证安装
你可以通过以下命令验证Anaconda是否安装成功:
conda --version
如果安装成功,会显示Conda的版本号。
二、配置CUDA环境
创建虚拟环境
创建虚拟环境:
conda create --name tensorflow python=3.11
tensorflow可以改成你想要的名字
Python的版本也可以修改
查看环境列表:
conda env list
激活环境:
conda activate (输入你的环境名字)
之后的环境配置统一进入虚拟环境再按 conda install 来下载
Pytorch,CUDA,Python版本兼容表
CUDA配置
在下载CUDA与Torch之前,先查看显卡驱动
终端输入:
nvidia-smi
进入英伟达官网选择适合的版本
https://developer.nvidia.com/cuda-toolkit-archive
Windows CUDA
之后执行exe文件安装就好
选择安装位置 接着下一步,默认即可,但是要记住这个地址,下面手动配置环境变量要用到。
之后在系统配置环境变量
终端输入来检测是否安装成功
nvcc -V
Linux CUDA
在Nvidia Toolkit官网下载时选择Linux runfile选项
执行下面两行代码,进行下载与运行
wget https://developer.download.nvidia.com/compute/cuda/12.4.0/local_installers/cuda_12.4.0_550.54.14_linux.run
sudo sh cuda_12.4.0_550.54.14_linux.run
终端输入来检测是否安装成功
nvcc -V
三、配置Pytorch环境
进入pytorch官网选择合适的版本下载(查看前面的版本对照图)
官网地址:https://pytorch.org/
我们选用合适自己电脑配置的指令进行下载,我使用的是Python3.11, CUDA 12.4 所以要转到先前版本里面下载。
# Windows 与 Linux 通用
# CUDA 11.8
conda install pytorch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1 pytorch-cuda=11.8 -c pytorch -c nvidia
# CUDA 12.1
conda install pytorch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1 pytorch-cuda=12.1 -c pytorch -c nvidia
# CUDA 12.4
conda install pytorch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1 pytorch-cuda=12.4 -c pytorch -c nvidia
# CPU Only
conda install pytorch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1 cpuonly -c pytorch
查看版本 以下图为例,torch版本为2.1.2+cu121,cu121即表示支持cuda12.1的torch版本
python
import torch
print(torch.__version__)
print(torch.cuda.is_available())
四、配置YOLO环境
此章节以Yolov8为例进行讲解,但适应于所有yolo算法,只需修改指令命令行指向的模型即可。
#启动虚拟环境 查看环境配置
conda activate yolov8 (yolov8换成你的环境名字)
conda list
Yolov8所需的函数库如下:
对照自己缺少的库,进行conda install 进行安装。
# Ultralytics requirements
# Usage: pip install -r requirements.txt
# Base ----------------------------------------
matplotlib>=3.2.2
numpy>=1.22.2 # 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
torch>=1.7.0
torchvision>=0.8.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>=6.0,<=6.2 # 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
安装完配置文件在安装一下yolov8在python>=3.8版本必要安装包
pip install ultralytics
在Ultralytics官网下载模型权重文件
https://docs.ultralytics.com/zh/models/yolov8/
下载训练模型,推荐yolov8s.pt或者yolov8n.pt,模型小,下载快,下载完成后,将模型放在主文件夹下,
YOLOv8 可以在命令行界面(CLI)中直接使用,使用yolov8自带经典图片进行测试:首先cd进入yolov8主文件夹下,运行下面命令
#可以选择直接从Github下载yolo项目库,不下载,如果依赖库齐全,模型文件齐全也能执行检测,缺少的部分会自动下载
git clone https://github.com/ultralytics/ultralytics.git
无显卡驱动
yolo predict model=yolov8n.pt source='ultralytics/assets/bus.jpg' device=cpu
有显卡驱动(看扩展的部分,安装gpu版本torch才能运行)
yolo predict model=yolov8n.pt source='ultralytics/assets/bus.jpg' device=0
#可以修改source成你想检测的图片
我的结果保存在runs\detect\predict4中,你们的看Results saved to 存放地址,结果如下图
如果出现上面图片即成功
在本地电脑上训练YOLO模型
首先在yolov8主文件夹内创建data文件夹,创建一个data.yaml文件:
train: ../train/images #//xxx/xxx为训练集图片根目录地址
val: ../valid/images
test: ../test/images
nc: 3 #标签数量
names: ['Chair', 'Sofa', 'Table'] #标签名称
conda在主文件夹下运行下面命令:
关于如何制作自己的数据集,请移步"数据集制作"教程
yolo train data=data/data.yaml model=yolov8s.pt epochs=300 imgsz=640 batch=8 workers=0 device=cpu
data为yaml配置文件
model为下载的模型,放在主文件下
epochs为训练轮数
imagez为训练时ai看到的图片大小,检查大图片建议使用640,小图片可以320 越大越吃性能
batch为一轮训练中每一次放入图片数量,越大越快效果越好,但是对性能要求越高
device为使用的设备,使用cpu练就写cpu,使用显卡大多数都是0,多显卡就0,1,2,3,...多少显卡往后写多少
运行出现下面效果即为成功
得到的模型权重文件地址在输出日志中会显示出来,我的是 runs/detect/train/weights/best.pt
训练完成后转化成onnx模型
执行以下Python代码将训练好的YOLOv8模型导出为ONNX格式,并修改IR版本为8,opset版本为17,同时进行性能测试:
from ultralytics import YOLO
import onnx
# 加载PyTorch模型
model = YOLO("yolov8_best.pt")
# 2. 导出ONNX模型(使用Ultralytics支持的参数)
model.export(
format="onnx",
opset=17, # 指定Opset版本
simplify=True, # 启用模型简化
imgsz=640, # 固定输入尺寸
dynamic=False, # 禁用动态维度
batch=1 # 单批次推理
)
# 3. 后处理修改IR版本
def set_onnx_ir_version(onnx_path, ir_version=8):
model = onnx.load(onnx_path)
model.ir_version = ir_version
onnx.save(model, onnx_path)
# 4. 修改导出的ONNX文件的IR版本
set_onnx_ir_version("yolov8_best.onnx")
# Load the exported ONNX model
#onnx_model = YOLO("yolov8_best.onnx")
# Run inference
#results = onnx_model("https://ultralytics.com/images/bus.jpg")
'''
from ultralytics import YOLO
'''
# 加载模型(显式指定任务类型)
onnx_model = YOLO("yolov8_best.onnx", task="detect") # 关键修改:添加task参数
# 运行本地图片推理(自动保存+显示)
results = onnx_model(
"test_chair.jpg", # 改为你的本地图片
save=True, # 自动保存结果到runs/detect/exp
show=True, # 弹出结果窗口
conf=0.3, # 调低置信度阈值提高召回率
imgsz=640, # 指定推理尺寸(与导出时一致)
device='cpu' # 强制使用CPU(如需GPU改为0)
)
运行后会在当前目录下生成一个名为 yolov8_best.onnx 的文件,这就是转换后的ONNX模型。