小火苗 发表于 2025-1-7 14:14

【嵌入式AI挑战营】02神经网络开发环境安装

<div>算法模型环境安装和ONNX模型获取</div>

<ol>
        <li><strong>RKNN-Toolkit2</strong></li>
</ol>

<div>PC端使用虚拟机软件,在虚拟机软件上安装的是ubuntu22.04系统,然后再这个ubuntu系统上安装RKNN-Toolkit2工具软件。</div>

<div>1.下载rknn-toolkit2程序包</div>

<div>git clone <a href="https://github.com/rockchip-linux/rknn-toolkit2">https://github.com/rockchip-linux/rknn-toolkit2</a></div>

<ol>
        <li>安装python环境<br />
        sudo apt-get update<br />
        sudo apt-get install python3 python3-dev python3-pip<br />
        sudo apt-get install libxslt1-dev zlib1g zlib1g-dev libglib2.0-0 libsm6 libgl1-mesa-glx libprotobuf-dev gcc</li>
        <li>安装RKNN-Toolkit2的依赖包<br />
        在此过程中很难安装,安装过程中经常会中断,使用国内的程序源也不太好使。<br />
        pip3 install -r rknn-toolkit2/packages/requirements_cp310-1.6.0.txt<br />
        <br />
        安装的依赖库如图所示,在使用上面的安装命令失败后,我使用的是单独的安装命令,一个个的依赖库进行安装。<br />
        如 pip3 install torch==1.10.1<br />
        其中torch是主要问题,他 经常会中断安装。</li>
        <li>安装RKNN-Toolkit2<br />
        pip3 install rknn-toolkit2/packages/rknn_toolkit2-1.6.0+81f21f4d-cp310-cp310-linux_x86_64.whl</li>
        <li>程序验证</li>
</ol>

<div></div>

<div>如图所示,调用不出来rknn.api安装失败。</div>

<div>重新安装,失败了很多次终于是成功了。</div>

<div></div>

<div></div>

<div></div>

<div>如图所示依赖库安装成功,程序调用没有问题。</div>

<ol>
        <li>人脸检测环境部署</li>
</ol>

<div>其实使用一个环境就可以,我一开始也是没有摸清脉络,所以按照教程分别安装了相应的开发环境。</div>

<ol>
        <li>获取facenet源码<br />
        git clone https://github.com/bubbliiiing/facenet-pytorch.git</li>
        <li>进入源码目录<br />
        cd facenet-pytorch</li>
        <li>搭建模型训练环境<br />
        conda create -n facenet python=3.6</li>
        <li>进入conda虚拟环境并安装运行的依赖库<br />
        conda activate facenet<br />
        pip install -r requirements.txt</li>
        <li>工程文件夹下创建ONNX文件的Python脚本文件<br />
        from nets.facenet import Facenet<br />
        from torch import onnx<br />
        import torch<br />
        model_path=&#39;model_data/facenet_mobilenet.pth&#39; #模型路径<br />
        model = Facenet(backbone=&quot;mobilenet&quot;,mode=&quot;predict&quot;,pretrained=True) #模型初始化<br />
        device = torch.device(&#39;cpu&#39;)<br />
        model.load_state_dict(torch.load(model_path, map_location=device), strict=False)<br />
        example=torch.rand(1,3,160,160) #给定一个输入<br />
        torch.onnx.export(model,example,&#39;model_data/facenet.onnx&#39;,verbose=True,opset_version=9) #导出</li>
        <li>执行脚本文件获取ONNX<br />
        python export_onnx.py</li>
        <li>依赖库安装过程</li>
</ol>

<div></div>

<div></div>

<div></div>

<div>编写的获取onnx.py文件</div>

<div>运行程序</div>

<div></div>

<div></div>

<div></div>

<div>得到了facenet.onnx文件,如图所示:</div>

<div></div>

<div></div>

<ol>
        <li>人脸特征提取环境部署</li>
</ol>

<ol>
        <li>获取 facenet 源码</li>
</ol>

<div>git clone https://github.com/bubbliiiing/facenet-pytorch.git</div>

<div>2.进入源码目录</div>

<div>cd facenet-pytorch</div>

<div>3.搭建模型训练环境</div>

<div>conda create -n facenet python=3.6</div>

<div>输入&nbsp;y&nbsp;同意安装基础 python 工具包。</div>

<div>4.进入 Conda 虚拟环境并安装运行的依赖库</div>

<div>conda activate facenet<br />
pip install -r requirements.txt</div>

<div>在&nbsp;model_data&nbsp;文件夹下存放有训练好的&nbsp;.pth&nbsp;权重文件。</div>

<div>5.在工程文件夹下创建导出 ONNX 文件的python脚本export_onnx.py</div>

<div>from nets.facenet import Facenet<br />
from torch import onnx<br />
import torch<br />
<br />
model_path=&#39;model_data/facenet_mobilenet.pth&#39; <em>#模型路径 </em><br />
model = Facenet(backbone=&quot;mobilenet&quot;,mode=&quot;predict&quot;,pretrained=True) <em>#模型初始化</em><br />
device = torch.device(&#39;cpu&#39;)<br />
model.load_state_dict(torch.load(model_path, map_location=device), strict=False)<br />
example=torch.rand(1,3,160,160) <em>#给定一个输入</em><br />
torch.onnx.export(model,example,&#39;model_data/facenet.onnx&#39;,verbose=True,opset_version=9) <em>#导出</em></div>

<div>6.执行脚本获取 ONNX 文件(facenet conda 环境下)</div>

<ol>
        <li>&nbsp;</li>
</ol>

<div>python export_onnx.py</div>

<div>在&nbsp;&lt;工程文件夹&gt;/model_data&nbsp;可以获取到装换后的 ONNX 文件。</div>

<ol>
        <li>物体识别环境部署</li>
</ol>

<div>1.获取 Yolov5 源码</div>

<div>git clone https://github.com/airockchip/yolov5.git</div>

<div>2.进入 Yolov5 源码目录</div>

<div>cd yolov5</div>

<div>3.搭建模型训练环境</div>

<div>conda create -n yolov5 python=3.9</div>

<div>输入&nbsp;y&nbsp;同意安装基础 python 工具包。</div>

<div>4.进入 Conda 虚拟环境并安装运行的依赖库</div>

<div>conda activate yolov5<br />
pip install -r requirements.txt</div>

<ul>
        <li><strong>注意</strong>:如果无法完整下载依赖的软件包请尝试设置 pip 的镜像源。</li>
</ul>

<div>5.从默认文件中导出 ONNX 文件(yolov5 conda 环境下)</div>

<div>python export.py --rknpu --weight yolov5s.pt</div>

<div>如果工程目录下没有&nbsp;yolov5s.pt&nbsp;的权重文件,会自动拉取文件并转换。在工程文件夹下会生成yolov5s.onnx和RK_anchors.txt文件,在物体识别的源码post_process&nbsp;函数会使用到&nbsp;RK_anchors.txt&nbsp;中的参数。生成的&nbsp;yolov5s.onnx&nbsp;模型相比标准的 Yolov5 模型去除了 RKNPU 不兼容的结果提取部分,在应用源码中使用 CPU 来实现,如果使用自己训练的模型需要注意执行&nbsp;export.py&nbsp;程序需要添加&nbsp;--rknpu&nbsp;参数,在 RKNPU 的应用中才能获取到真正需要的数据。</div>

<div>python export.py --rknpu --weight xxx.pt</div>

<div>将&nbsp;xxx.pt&nbsp;替换为训练获取到的.pt权重文件,训练自己需要的模型参考&nbsp;<a href="https://github.com/ultralytics/yolov5/wiki/Train-Custom-Data">yolov5官方教程</a>。</div>

<div>安装过程,如图所示:</div>

<div></div>

<div></div>

<div></div>

<div></div>

<div></div>

<div></div>

<div></div>

<p><!--importdoc--></p>
页: [1]
查看完整版本: 【嵌入式AI挑战营】02神经网络开发环境安装