教你从零开始在MaixCAM上部署自己本地训练的Yolov5模型(1)-Yolov5s环境的搭建

本博客会从一个从未部署过任何环境的电脑上一步步复现如何本地训练自定义模型并成功部署到Maixcam上实现数字识别的功能。
文章中会引用到我当时学习是参考到的文章,都会在下面列出来,在此对这些向我提供过帮助的博主表示感谢!!
本文中默认读者已经了解过相对应的知识,一些非常详细的操作我会引用一些文章。

写在前面:
参考一下我自己的电脑版本

系统Windows11
显卡NVIDA Geforce 3060 Laptop

1.1 Pytorch框架的搭建

点这里:Pytorch环境搭建

截至至本文书写当前,所用的软件版本如下

Anaconda版本Anaconda3-2024.06-1-Windows-x86_64
用于虚拟环境的Python版本3.10.15

教程已经写的非常明白了,我在下面贴上自己所使用的Pytorch版本,挂梯子打开页面~

配置清华下载源

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
conda config --set show_channel_urls yes

常用的指令我就直接放在下面了~

conda info --envs //查看配置的所有虚拟环境信息
conda create -n yolov5_test python=3.10 //创建一个名为yolov5_test的环境,其使用python版本为3.10 
conda activate yolov5_test  //激活yolov5_test环境,这个时候我们看见最左边的括号变为pytorch
conda deactivate  //退出当前激活的虚拟环境
conda remove -n yolov5_test --all  //移除yolov5_test环境

我在这里创建了一个基于python3.10.15的虚拟环境,命名为yolov5_test,里面已经安装好了Pytorch框架。

验证是否安装成功
在yolov5_test环境下输入python
依次输入
import torch
torch.cuda.is_available()

若返回True则说明安装成功
在这里插入图片描述

1.2 CUDA+CUDNN的安装

这里附上我所使用的CUDA和CUDNN的版本

CUDA版本cuda_11.8.0_522.06_windows
CUDNN版本cudnn-windows-x86_64-8.9.6.50_cuda11-archive

具体的安装教程可以参考这篇博客:CUDA安装教程(超详细)

Tips:尽量安装在默认路径!!!不然出现一些莫名其妙的错误还是得卸了重装。
在这里插入图片描述
建议尽量与我的版本保持一致。

1.3 下载Pycharm

请自行到微信公众号或者其它网站上搜索下载方法,这里不做讲解。

1.4 拉取Yolov5s的源码

上GitHub拉取一下源码 https://github.com/ultralytics/yolov5

在这里插入图片描述
将下载的压缩包解压之后放在自己存放python代码的文件夹中,用pycharm打开后,打开设置,将刚刚创建好的Conda环境添加进来作为解释器,如下图。
在这里插入图片描述

双击打开项目中requirements.txt文件,可以发现,这个文件是运行yolov5所必需的一些软件包,我们在终端-本地中运行下列代码,即可正常安装所需要的软件包
Tips:当挂载镜像源下载的时候千万不要挂梯子!

pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

在这里插入图片描述

1.5 测试能否运行示例

安装完成后,我们双击打开detect.py文件并运行
在这里插入图片描述
由于此时我们并没有下载预训练权重文件,而运行detect.py需要,如果是在线下载的话速度过慢,故我们直接通过github的连接下载。

获得预训练权重
一般为了缩短网络的训练时间,并达到更好的精度,我们一般加载预训练权重进行网络的训练。而yolov5的5.0版本给我们提供了几个预训练权重,我们可以对应我们不同的需求选择不同的版本的预训练权重。通过如下的图可以获得权重的名字和大小信息,可以预料的到,预训练权重越大,训练出来的精度就会相对来说越高,但是其检测的速度就会越慢。预训练权重可以通过下面给出的网址进行下载,本次测试示例和训练自己的数据集用的预训练权重为yolov5s.pt。

https://github.com/ultralytics/yolov5/releases

我们点击 Show all 49 assets,展开后即可找到yolov5s.pt 下载后移动至项目文件夹即可。
在这里插入图片描述

运行detect.py完成后,可以通过查看runs文件夹下的detect/exp查看对应的预测照片。
在这里插入图片描述

至此,我们的拉取源码,环境配置检测部分已经结束了,接下来的部分就是自己训练自定义模型的过程。

资料如图所示:
通过百度网盘分享的文件:资料.zip
链接:https://pan.baidu.com/s/16h4Th9UbOF9YfJEgItYwYA?pwd=6969
提取码:6969
在这里插入图片描述

<think>好的,用户想了解如何在MaixCam上使用OCR功能,特别是程或示例代码。首先,我需要回忆一下MaixCam的相关文档和资源。记得MaixCam是基于K210芯片的开发板,支持MicroPython,所以用户可能需要MicroPython的示例代码。 用户提到的参考引用里有一段关于使用PP-OCR模型的代码,这可能是一个关键点。我需要确认MaixCam是否支持PP-OCR模型,或者是否有其他预训练的OCR模型可用。通常,Maix的库如maix.image和maix.nn会用于图像处理和神经网络推理。 接下来,应该分步骤说明如何使用。首先,确保固件版本支持OCR,可能需要更新固件。然后,准备模型文件,比如加载官方的OCR模型或者自己训练模型。接着,编写代码的步骤:初始化摄像头、加载模型、处理图像、运行推理、解析结果并显示。 需要注意代码的正确性,比如导入正确的模块,处理图像尺寸是否匹配模型输入,后处理部分如何从输出中提取文字和坐标。可能还需要处理图像的二值化或缩放,确保模型能正确识别。 用户可能需要知道如何获取模型文件,比如从官方GitHub仓库下载,或者使用在线转换工具将模型转换为Maix可用的格式。此外,常见问题如摄像头初始化失败、模型加载错误如何处理,这些也应该包括在程中。 最后,生成相关问题,帮助用户深入使用,比如优化识别速度、处理中文OCR、提升准确率的方法,以及与其他开发板的对比。确保回答结构清晰,步骤详细,用户能一步步跟随操作。</think>### MaixCam OCR 使用程 #### 1. 环境准备 - **固件更新**:确保MaixCam固件版本支持OCR功能(建议使用2023年后的固件)[^1] - **模型下载**:从官方GitHub仓库获取预训练OCR模型(如`ppocr_mbv3.kmodel`) - **工具安装**:通过MaixPy IDE连接设备,准备MicroPython开发环境 #### 2. 基础代码框架 ```python import camera, display, image, nn, app # 初始化硬件 cam = camera.Camera() disp = display.Display() ocr_model = nn.load('/flash/ppocr_mbv3.kmodel') # 模型加载路径 while True: img = cam.read() # 读取摄像头帧 img_processed = img.resize(224, 224).binary() # 图像预处理 outputs = ocr_model.forward(img_processed) # 执行OCR推理 text_result = nn.post_process(outputs) # 解析文字结果 # 显示识别结果 disp.clear() img.draw_string(10, 10, text_result, scale=2) disp.show(img) ``` #### 3. 关键步骤解析 1. **图像预处理** - 使用`resize()`调整至模型输入尺寸$224\times224$ - `binary()`进行二值化增强文字对比度 - 可通过`histeq()`直方图均衡进一步优化识别效果 2. **模型输出解析** 典型OCR模型输出包含: $$ \text{Output} = [x_1,y_1,x_2,y_2,\cdots,\text{char}_1,\text{char}_2,\cdots] $$ 需通过后处理提取文字坐标和内容 #### 4. 性能优化技巧 - 设置ROI区域缩小识别范围 - 使用`clock()`函数监测帧率: ```python fps = time.clock().fps() ``` - 通过`nn.set_channel_priority(2)`提升AI运算效率
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值