rk3588下使用openvino2024.2

        openvino是啥这里就不说了,上网一查,一大堆的资料说明,这里使用的是openvino2024.2的版本,跟之前的不一样,这个版本已经摒弃了mo的方式去转化模型,而是使用ovc来转化模型,等等......具体详情,看官方资料:

        OpenVINO 2024.2 — OpenVINO™ documentation

        下载openvino:

                https://github.com/openvinotoolkit/openvino  或者

                下载英特尔发行版 OpenVINO 工具套件 (intel.cn)

                我的选项如下:     

                        下载下来的压缩包为:openvino_genai_ubuntu20_2024.2.0.0_arm64.tar.gz

                        注意平台:我这是板端使用,所以是arm64

        一 openvino板端安装

                参考教程:                   Install OpenVINO™ Runtime on Linux from an Archive File — OpenVINO™ documentationCopy to clipboardCopy to clipboardCopy to clipboardCopy to clipboardCopy to clipboardCopy to clipboardCopy to clipboardCopy to clipboardCopy to clipboardCopy to clipboardCopy to clipboardCopy to clipboardCopy to clipboardCopy to clipboardCopy to clipboardCopy to clipboardCopy to clipboard — Version(2024)icon-default.png?t=N7T8https://docs.openvino.ai/2024/get-started/install-openvino/install-openvino-archive-linux.html
Install OpenVINO™ GenAI — OpenVINO™ documentationCopy to clipboardCopy to clipboardCopy to clipboardCopy to clipboardCopy to clipboardCopy to clipboardCopy to clipboardCopy to clipboard — Version(2024)icon-default.png?t=N7T8https://docs.openvino.ai/2024/get-started/install-openvino/install-openvino-genai.html

                我这边不是放在/opt/intel下面的,装在用户目录下,单独记录以下

                1. 将openvino_genai_ubuntu20_2024.2.0.0_arm64.tar.gz放到板端

                2. 解压:

                        tar -xvf openvino_genai_ubuntu20_2024.2.0.0_arm64.tar.gz

                        mv openvino_genai_ubuntu20_2024.2.0.0_arm64  openvino_2024_2

                3. 安装依赖

                        cd ~/openvino_2024_2

                        sudo -E ./install_dependencies/install_openvino_dependencies.sh

                        python -m pip install -r ./python/requirements.txt       

                                // 这里我是新建了一个python的虚拟环境

                4. 创建软连接

                        cd ~

                        sudo ln -s openvino_2024_2 openvino_2024

                5. 设置环境变量

                        vi ~/.bashrc

                        source ~/openvino_2024_2/setupvars.sh        // 加入

                        source ~/.bashrc

                这样openvino在板端就安装好了,超简单的哈!!!openvino的库在runtime/lib/下

        二 编译cpp demo

                1. cd ~/openvino_2024_2/samples/cpp
                2. 编译
                        bash build_samples.sh
                        报错:openvino_2024_2/runtime/lib/intel64/libopenvino_genai.so.2024.2.0.0
                                这个文件不存在
                        修改openvino_2024_2/runtime/cmake/OpenVINOGenAITargets-release.cmake,把其中的intel64换成aarch64
                        再次编译:
                        bash build_samples.sh       

                               // 编译通过,可执行文件生成openvino_cpp_samples_build/aarch64/Release

        三 测试hello_classification

                这是一个分类的demo,所以下载分类的模型就可以了,我这里下载的是alexnet 模型 
                  1. 下载模型,我尝试了几个模型,有些模型推理结果有问题,可能是模型的问题吧
'''通过这种方式获取onnx的模型,后续转成IR格式后,测试失败'''
import torchvision.models as models
import torch

alexnet = models.alexnet(pretrained=True)
alexnet.load_state_dict(torch.load("alexnet-owt-7be5be79.pth"))    # pth路径按需更改

onnx_path = "./AlexNet.onnx"
test_input = torch.randn([1, 3, 224, 224])
torch.onnx.export(alexnet, test_input, onnx_path, export_params=True, verbose=True)
'''使用这种方式,直接转成的IR格式,推理结果也不对'''
import torchvision.models as models
import openvino as ov

alexnet = models.alexnet(pretrained=True)
# for name, layer in alexnet.named_modules():
#     if name == '':
#         input_layer_name = name  # 空字符串表示输入层
#         print('Input layer name:', input_layer_name)
#         break
# # 如果需要检查模型的其他属性,可以继续遍历模型的层
# for name, layer in alexnet.named_modules():
#     print(name, layer)
ov_model = ov.convert_model(alexnet, input={"x":[1,3,224,224]})
ov.save_model(ov_model, "alexnet.xml")

         推理失败的结果如下

                        这里提供一个推理正确的模型,下载地址:https://github.com/onnx/models/blob/main/validated/vision/classification/alexnet/model/bvlcalexnet-3.onnx
                2. 模型转换

                        cd /home/toybrick/openvino_2024_2/python/openvino/tools/ovc/

                        python ovc.py ~/bvlcalexnet-3.onnx  

                                 // 默认生成到ovc路径下面

                        python ovc.py ~/bvlcalexnet-3.onnx --output_model ~/bvlcalexnet-3.xml    

                                // 指定输出路径和输出名称

                3. 下载测试图片

                        地址:storage.openvinotoolkit.org

                4. c++测试demo
                        cd ~/openvino_cpp_samples_build/aarch64/Release
                        ./hello_classification ~/bvlcalexnet-3.xml ~/cat.jpg CPU  
                        输出结果如下:
               
                5. python测试demo

                        cd openvino_2024_2/samples/python/hello_classification

                        python hello_classification.py ~/bvlcalexnet-3.xml ~/cat.jpg CPU

                        输出结果如下:

        四 附录

                open_model_zoo,可下载intel和public的模型

                        https://github.com/openvinotoolkit/open_model_zoo/tree/master

                        downloader.py下载模型:

                                python downloader.py --name 名字    

                                        # 名字就是open_model_zoo/models/intel下的每个文件夹的名称
                                如:
                                python .\downloader.py --name action-recognition-0001

                                python .\downloader.py --print_all         # 显示所有可下载的模型

                        omz_downloader.exe 下载模型:             

                                pip install openvino-dev

                                Install the omz-tools
                                        // 在目录open_model_zoo/tools/model_tools下运行
                                        pip install .

                                omz_downloader.exe --name googlenet-v1-tf
                               

                open_model_zoo,模型转换

                        omz_converter.exe --name 名字        // 同上

                        如:

                        omz_converter.exe --name action-recognition-0001

                        或:

                         python .\downloader.py --name action-recognition-0001

                 查看是否有GPU

                        linux:
                            lspci -nn -s 0:002.0

                        windows:
                            桌面右击显示设置,选择高级显示器设置,点击显示器1的显示适配器属性,查看适配器字符串内容

                openvino手册

                        Overview — OpenVINO™ documentation

                        OpenVINO 2024.2 — OpenVINO™ documentation

                onnx模型库

                        https://github.com/onnx/models

                获取模型地址

                        https://www.kaggle.com/models

                        https://huggingface.co/

                        PyTorch Hub | PyTorch

                open_model_zoo\models下的每个模型文件内部,都有相应的md说明文档 (懒得手动翻就去下面的网址查看)

        https://github.com/openvinotoolkit/open_model_zoo/blob/master/models/intel/index.md

      https://docs.openvino.ai/2022.3/omz_models_group_intel.html#doxid-omz-models-group-intel

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值