当前位置: 首页> 汽车> 新车 > 网站seo设置是什么意思_郑州网约车租赁公司_查询关键词排名工具_百度seo排名主要看啥

网站seo设置是什么意思_郑州网约车租赁公司_查询关键词排名工具_百度seo排名主要看啥

时间:2025/7/12 2:07:02来源:https://blog.csdn.net/qq_42681787/article/details/143753892 浏览次数: 0次
网站seo设置是什么意思_郑州网约车租赁公司_查询关键词排名工具_百度seo排名主要看啥

 本教程记录自己一下在RK3568上部署yolo8的步骤

板端驱动 

在板端,首先查看rknpu驱动是否安装、存在。若键入下面的命令有返回则,证明驱动已安装。

dmesg | grep -i rknpu

瑞芯微官方说,驱动版本最好大于0.9.2。但是我看有的博主说,低于这个版本的也可行正常推理

其他博主的驱动版本升级教程

 按照瑞芯微的官方文档,接下来需要检查RKNPU2 环境是否安装

 使用下面的命令 查询rknn_server版本

strings /usr/bin/rknn_server | grep -i "rknn_server version"

其实,如果你是用linux x86电脑通过数据线连接板端,在linux x86安装rknn-toolkit2,进行模型转化,并编写代码传输至板端仿真代码结果。这种情况,需要在板端安装rknn_server。我这里是直接在板端安装rknn-toolkit2、进行模型转化......,总之我这里一切操作都是在板端,像我这种情况是不需要再板端安装rknn_server的

 使用下面的命令 查询librknnrt.so库版本

strings /usr/lib/librknnrt.so | grep -i "librknnrt version"

官方文档要求,两者输入的版本必须一致。

我的板子执行上面的 命令查询rknn_server版本,结果没有返回任何信息,查询librknnrt.so返回的信息显示是1.5.0。

于是果断选择更新 rknn_server与librknnrt.so

首先github上下载rknpu

将下载下来的文件拷贝到板卡上,将下面对应文件拷贝对板卡的对应位置

sudo cp rknn-toolkit2/rknpu/runtime/Linux/rknn_server/aarch64/usr/bin/* /usr/bin/
sudo cp rknn-toolkit2/rknpu/runtime/Linux/librnkk_api/aarch64/librknnrt.so /usr/lib/

给rknn_server赋予可执行权限

sudo chmod +x /usr/bin/rknn_server
sudo chmod +x /usr/bin/start_rknn.sh
sudo chmod +x /usr/bin/restart_rknn.sh

紧接着重启服务

cd /usr/bin
./restart_rknn.sh 

接下来控制台会有信息输出,打印出版本后,就可以用ctrl+c关闭掉

重新查看rknn_server与librknnrt.so版本,发现两者一致,并升级到2.3.0

注意,若使用strings命令发现  -bash: strings:未找到命令 

则需要安装strings命令

sudo apt-get update
sudo apt-get install binutils

在板端配置rknn-toolkit2

其实配置rknn-toolkit2环境,官方推荐在linux x86电脑上配置,在上面进行模型pt-onnx-rknn转化,最后将rknn模型及其推代码部署到板端。我这里直接在板端配置rknn-toolkit2

将事先下载好的rknn-toolkit2文件夹上传到板端,在rknn-toolkit2/rknn-toolkit2/packages/arm64中安装对应的rknn-toolkit。先安装requirement.txt,我这里选择的是arm64_requirements_cp310.txt,然后安装对应的whl,我这里选择的是rknn_toolkit2-2.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

 我这是在板端用miniconda虚拟环境安装的。若执行以下命令没有报错,则安装rknn-toolkit2成功。

$ python3
>>> from rknn.api import RKNN

pt模型转onnx模型

这里需要下载瑞芯微官方github上推出的yolo8,项目名称叫做ultralytics_yolov8,这个项目其实就瑞芯微为了yolo8能更好的适配自家芯片,在ultralytics官方项目微改得来的,其使用方式跟Ultralytics基本无差别,可以用它训练自己的模型,也可以用官方ultraltics训练模型,但如果想要将自己训练好的yolo8 pt模型转化为onnx,以便于后续将onnx转换为rknn模型,这里一定要使用瑞芯微的ultralytics_yolov8将pt模型转化为onnx。这里简单解释一下瑞芯微的ultralytics_yolov8相比官方ultralytics的改动及其原因:

在基于不影响输出结果, 不需要重新训练模型的条件下, 有以下改动:

  • 修改输出结构, 移除后处理结构(yolo8后处理结果对于rknn量化不友好)

  • dfl 结构在 瑞芯微NPU 处理上性能不佳,移至模型外部的后处理阶段,此操作大部分情况下可提升推理性能。

  • 模型输出分支新增置信度的总和,用于后处理阶段加速阈值筛选。

以上移除的操作, 均需要在外部使用CPU进行相应的处理. (对应的后处理代码可以在 RKNN_Model_Zoo 中找到)

将下载好的ultralytics_yolov8上传到板端,并配置ultralytics_yolov8所需的依赖,建议pip install ultralytics,自动安装完依赖之后,在卸载掉ultralytics,因为我们要使用瑞芯微的ultralytics_yolo8(跟官方ultralytics所需依赖一模一样), 只借助pip install ultralytics自动安装依赖。

从瑞芯微官方github网站下载ultralytics_yolo8项目,把自己训练好的pt模型放到项目目录下,

在ultralytics_yolov8\ultralytics\cfg\default.yaml中修改模型地址为自己的模型地址

 接下来使用下面的命令用瑞芯微提供的ultralytics_yolo8将pt转换为onnx。 

export PYTHONPATH=./
python ./ultralytics/engine/exporter.py

此时在ultralytics目录下产生onnx文件,用netron打开onnx文件可以看到模型的输出是下面这个样子的

onnx转rknn

onnx转rknn及其推理代码可以在rknn_model_zoo中找到,下载rknn_model_zoo上传到板端,

将导出的onnx复制到 rknn_model_zoo/examples/yolov8/python

 修改convert.py中 DEFAULT_RKNN_PATH变量,这个变量是定义转化后rknn的保存路径,我把它设置为当前目录

运行下面的脚本将onnx转换为rknn

python convert.py <onnx_model> <TARGET_PLATFORM> <dtype(optional)> <output_rknn_path(optional)># such as: 
python convert.py fall_down.onnx rk3568
# output model will be saved as ../model/yolov8.rknn
```*Description:*- `<onnx_model>`: Specify ONNX model path.
- `<TARGET_PLATFORM>`: Specify NPU platform name. Such as 'rk3588'.
- `<dtype>(optional)`: Specify as `i8`, `u8` or `fp`. `i8`/`u8` for doing quantization, `fp` for no quantization. Default is `i8`.
- `<output_rknn_path>(optional)`: Specify save path for the RKNN model, default save in the same directory as ONNX model with name `yolov8.rknn`

 此时,在该目录下生成rknn模型,后续可以用于推理。

rknn模型推理

推理代码包含c++和python版本的都可以在rknn_model_zoo/examples中找到。

rknn支持的模型及其推理代码案例

比如yolo8 rknn的python推理就在rknn_model_zoo/examples/yolov8/python/yolov8.py中,在这个py文件中,只需要更改一下模型地址、模型标签、推理尺寸......即可实现推理自己的rknn模型,这里比较简单,可以自己去查看源码,这里不做演示。

总结,瑞芯微教程基本上都可以在ultralytics_yolo8、rknn_toolkit2、rknn_model_zoo这三个项目的doc目录下找到,模型量化、转化、推理、部署等教程都在这里面。不仅是yolo8部署教程、包括其他yolo版本都可以找到教程。总之,关于rknn的一切教程都在ultralytics_yolo8、rknn_toolkit2、rknn_model_zoo这三个项目中。

附:RKNN 查看NPU相关的命

# 查看驱动版本
cat /sys/kernel/debug/rknpu/version结果:RKNPU driver: v0.8.2# 查看电源状态
cat /sys/kernel/debug/rknpu/power
结果 off# 查看NPU使用率,需要root权限
cat /sys/kernel/debug/rknpu/load
结果 NPU load:  Core0:  0%, Core1:  0%, Core2:  0%,# 查看NPU可用的频率,然后设置频率
cat /sys/class/devfreq/fdab0000.npu/available_frequencies结果300000000 400000000 500000000 600000000 700000000 800000000 900000000 1000000000echo userspace > /sys/class/devfreq/fdab0000.npu/governor
结果:无echo 1000000000 > /sys/class/devfreq/fdab0000.npu/userspace/set_freq
结果:无# 查看NPU当前工作频率
cat /sys/kernel/debug/rknpu/freq
结果:1000000000NPU其他相关
# 查看librknnrt库版本
strings /usr/lib/librknnrt.so | grep "librknnrt version"结果:librknnrt version: 1.4.0 (a10f100eb@2022-09-09T09:07:14)
# 查看rknn_server版本
strings /usr/bin/rknn_server | grep build
结果:1.3.0 (121b661 build: 2022-04-29 11:12:02)
.note.gnu.build-id
# 查看NPU驱动版本
dmesg | grep -i rknpu
结果
[187804.047298] RKNPU fdab0000.npu: RKNPU: set rknpu freq: 1000000000, volt: 787500
[187806.290136] RKNPU fdab0000.npu: RKNPU: set rknpu freq: 1000000000, volt: 787500
# 或者
sudo cat /sys/kernel/debug/rknpu/version

关键字:网站seo设置是什么意思_郑州网约车租赁公司_查询关键词排名工具_百度seo排名主要看啥

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: