hollyedward 发表于 2024-5-5 02:52

#AI挑战营第二站# 基于RKNN toolkit的模型转换与部署

<div class='showpostmsg'> 本帖最后由 hollyedward 于 2024-5-7 01:07 编辑

<p>RKNN Toolkit2 是由<a data-pretit="瑞芯微" data-report-click="{&quot;spm&quot;:&quot;1001.2101.3001.7020&quot;,&quot;dest&quot;:&quot;https://so.csdn.net/so/search?q=%E7%91%9E%E8%8A%AF%E5%BE%AE&amp;spm=1001.2101.3001.7020&quot;,&quot;extra&quot;:&quot;{\&quot;searchword\&quot;:\&quot;瑞芯微\&quot;}&quot;}" data-tit="瑞芯微" href="https://so.csdn.net/so/search?q=%E7%91%9E%E8%8A%AF%E5%BE%AE&amp;spm=1001.2101.3001.7020" target="_blank">瑞芯微</a>电子 (Rockchip) 开发的一套用于深度学习模型优化和推理的工具。它主要面向在瑞芯微SoC上进行AI应用开发,但也可以用于PC平台进行模型的转换、量化、推理等操作。</p>

<p>Rockchip RK3566/RK3568 系列, RK3588 系列, K3562 系列, RV1103/RV1106 系列芯片搭载神经网络处理器 NPU, 利用 RKNN 可以帮助用户快速部署 AI 模型到 Rockchip 芯片上使用 NPU 硬件加速模型推理。 为了使用 RKNPU,用户首先需要在 x86 计算机上使用 RKNN-Toolkit2 工具,将训练好的模型转换为 RKNN 格式的模型,然后在开发板上使用 RKNN C API 或 Python API进行推断。</p>

<p>所需工具:</p>

<p> &nbsp;</p>

<ul>
        <li>RKNN-Toolkit2 是一个软件开发工具包,供用户在 PC 和 Rockchip NPU 平台上执行模型转换、推断和性能评估。</li>
        <li>RKNN-Toolkit-Lite2 为 Rockchip NPU 平台提供了 Python 编程接口,帮助用户部署 RKNN 模型并加速实施AI应用。</li>
        <li>RKNN Runtime 为 Rockchip NPU 平台提供了 C/C++ 编程接口,帮助用户部署 RKNN 模型并加速实施AI应用。</li>
        <li>RKNPU 内核驱动负责与 NPU 硬件交互。</li>
</ul>

<p>rknn 软件框图</p>

<p> &nbsp;</p>

<p>&nbsp;</p>

<p>环境搭建</p>

<p>&nbsp;</p>

<p>查看系统版本</p>

<pre>
<code class="language-bash">cat /proc/version</code></pre>

<p>&nbsp; ubuntu版本为22.04,对应的环境python版本为3.10</p>

<p> &nbsp;</p>

<p>安装miniconda</p>

<p>创建虚拟环境</p>

<pre>
<code class="language-bash"># 下载 RKNN-Toolkit2 仓库
git clone https://github.com/airockchip/rknn-toolkit2.git -b v1.6.0</code></pre>

<p> &nbsp;</p>

<p>&nbsp;</p>

<p>安装项目需要的依赖文件,使用python 3.10对应的配置文件</p>

<pre>
<code class="language-bash">pip install -r ./rknn-toolkit2/packages/requirements_cp310-1.6.0.txt </code></pre>

<h2>&nbsp;</h2>

<p>需要下载的依赖</p>

<h2 id="拉取和安装-rknn-toolkit2"> &nbsp;</h2>

<p>安装 rknn toolkit2</p>

<pre>
<code class="language-bash"> pip install ./rknn-toolkit2/packages/rknn_toolkit2-1.6.0+81f21f4d-cp38-cp38-linux_x86_64.whl </code></pre>

<p> &nbsp;</p>

<p>&nbsp;</p>

<p><strong>遇到的问题待解决</strong>:在服务器的ubuntu系统(版本22.04)上不能正常使用rknn-toolkit2</p>

<p>换版本都试过了没有用</p>

<p>&nbsp;</p>

<p>py38+rknn1.6.0</p>

<p>py39+rknn1.6.0</p>

<p>py310+rknn1.6.0</p>

<p>py310+rknn2.0.0</p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p>以上均报错Illegal instruction (core dumped)</p>

<p>这是系统原因吗?</p>

<p>&nbsp;</p>

<p>这里执行自带的yolov5 example也没有用</p>

<pre>
<code>python test.py
I rknn-toolkit2 version: 2.0.0b0+9bab5682
--&gt; Config model
done
--&gt; Loading model
I It is recommended onnx opset 19, but your onnx model opset is 12!
I Model converted from pytorch, 'opset_version' should be set 19 in torch.onnx.export for successful convert!
I Loading :   0%|                                                         | 0/125
done
--&gt; Building model
D base_optimize ...
D base_optimize done.
D
D fold_constant ...
D fold_constant done.
D
D correct_ops ...
D correct_ops done.
D
D fuse_ops ...
D fuse_ops done.
D
D sparse_weight ...
Illegal instruction (core dumped)</code></pre>

<p>&nbsp;</p>
</div><script>                                        var loginstr = '<div class="locked">查看本帖全部内容,请<a href="javascript:;"   style="color:#e60000" class="loginf">登录</a>或者<a href="https://bbs.eeworld.com.cn/member.php?mod=register_eeworld.php&action=wechat" style="color:#e60000" target="_blank">注册</a></div>';
                                       
                                        if(parseInt(discuz_uid)==0){
                                                                                                (function($){
                                                        var postHeight = getTextHeight(400);
                                                        $(".showpostmsg").html($(".showpostmsg").html());
                                                        $(".showpostmsg").after(loginstr);
                                                        $(".showpostmsg").css({height:postHeight,overflow:"hidden"});
                                                })(jQuery);
                                        }                </script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script>

Auralife 发表于 2025-1-15 10:39

有解决了吗
页: [1]
查看完整版本: #AI挑战营第二站# 基于RKNN toolkit的模型转换与部署