重庆网站公司UI设计师需要多久时间来掌握设计技能?
摘要:重庆网站公司,ui设计师什么设计要学多久,聊城有什么网站制作公司,无锡网站制作哪家实惠在英特尔 开发者套件爱克斯开发板使用OpenVinoSharp部署Yolov8模型 一、英特尔开发套件 AIxBoard 介绍1. 产品定位2. 产品参数
重庆网站公司,ui设计师什么设计要学多久,聊城有什么网站制作公司,无锡网站制作哪家实惠在英特尔 开发者套件爱克斯开发板使用OpenVinoSharp部署Yolov8模型 一、英特尔开发套件 AIxBoard 介绍1. 产品定位2. 产品参数3. AI推理单元 二、配置 .NET 环境1. 添加 Microsoft 包存储库2. 安装 SDK3. 测试安装4. 测试控制台项目 三、安装 OpenVINO Runtime1. 下载 OpenVINO… 在英特尔® 开发者套件爱克斯开发板使用OpenVinoSharp部署Yolov8模型 一、英特尔开发套件 AIxBoard 介绍1. 产品定位2. 产品参数3. AI推理单元 二、配置 .NET 环境1. 添加 Microsoft 包存储库2. 安装 SDK3. 测试安装4. 测试控制台项目 三、安装 OpenVINO Runtime1. 下载 OpenVINO Runtime2. 解压安装包3. 安装依赖4. 配置环境变量 四、配置 AlxBoard_deploy_yolov8 项目1. 创建 AlxBoard_deploy_yolov8 项目2. 添加 OpenVINOSharp 依赖3. 添加OpenCvSharp 五、运行AlxBoard_deploy_yolov8 项目1. 编译运行 Yolov8-det 模型2. 编译运行 Yolov8-cls 模型3. 编译运行 Yolov8-pose 模型4. 编译运行 Yolov8-seg 模型 六、模型运行时间七、总结 英特尔发行版 OpenVINO™工具套件基于oneAPI 而开发可以加快高性能计算机视觉和深度学习视觉应用开发速度工具套件适用于从边缘到云的各种英特尔平台上帮助用户更快地将更准确的真实世界结果部署到生产系统中。通过简化的开发工作流程 OpenVINO™可赋能开发者在现实世界中部署高性能应用程序和算法。 C#是由C和C衍生出来的一种安全的、稳定的、简单的、优雅的面向对象编程语言。C#综合了VB简单的可视化操作和C的高运行效率以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为.NET开发的首选语言。然而 OpenVINO™未提供C#语言接口这对在C#中使用 OpenVINO™带来了很多麻烦在之前的工作中我们推出了OpenVinoSharp旨在推动 OpenVINO™在C#领域的应用目前已经成功在Window平台实现使用。在本文中我们将介绍如何在 AIxBoard开发板上基于Linux系统实现OpenVinoSharp。 项目中所使用的代码已上传至OpenVinoSharp仓库中GitHub网址为
https://github.com/guojin-yan/OpenVINOSharp/blob/openvinosharp3.0/tutorial_examples/AlxBoard_deploy_yolov8/Program.cs技术文档首发网址在英特尔® 开发者套件上使用 OpenVINOSharp 部署 YOLOv8 模型 | 开发者实战
一、英特尔开发套件 AIxBoard 介绍 1. 产品定位 英特尔开发套件 AIxBoard(爱克斯板)是英特尔开发套件官方序列中的一员专为入门级人工智能应用和边缘智能设备而设计。爱克斯板能完美胜人工智能学习、开发、实训、应用等不同应用场景。该套件预装了英特尔OpenVINO™工具套件、模型仓库和演示案例便于您轻松快捷地开始应用开发。 套件主要接口与Jetson Nano载板兼容GPIO与树莓派兼容能够最大限度地复用成熟的生态资源。这使得套件能够作为边缘计算引擎为人工智能产品验证和开发提供强大支持同时也可以作为域控核心为机器人产品开发提供技术支撑。 使用AIxBoard(爱克斯板)开发套件您将能够在短时间内构建出一个出色的人工智能应用应用程序。无论是用于科研、教育还是商业领域爱克斯板都能为您提供良好的支持。借助 OpenVINO™ 工具套件CPU、iGPU 都具备强劲的 AI 推理能力支持在图像分类、目标检测、分割和语音处理等应用中并行运行多个神经网络。
2. 产品参数
主控英特尔赛扬N5105 2.0-2.9GHz (formerly Jasper Lake)内存板载LPDDR4x 2933MHz, 4GB/6GB/8GB存储板载 64GB eMMC存储存储扩展1个M.2 Key-M 2242扩展槽, 支持SATANVME协议BIOSAMI UEFI BIOS系统支持Ubuntu20.04 LTSWinodws 10/11
3. AI推理单元 借助OpenVINO工具能够实现CPUiGPU异构计算推理IGPU算力约为0.6TOPS
CPUINT8/FP16/FP32iGPUINT8/FP16 0.6TOPSGNA高斯及神经加速器
二、配置 .NET 环境 .NET 是一个免费的跨平台开源开发人员平台 用于构建多种应用程序。下面将演示 AIxBoard 如何在 Ubuntu 20.04 上安装 .NET环境支持 .NET Core 2.0-3.1 系列 以及.NET 5-8 系列 如果你的 AIxBoard 使用的是其他Linux系统你可以参考在 Linux 发行版上安装 .NET - .NET | Microsoft Learn。
1. 添加 Microsoft 包存储库 使用 APT 进行安装可通过几个命令来完成。 安装 .NET 之前请运行以下命令将 Microsoft 包签名密钥添加到受信任密钥列表并添加包存储库。 打开终端并运行以下命令
wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb下图为输入上面命令后控制台的输出 2. 安装 SDK .NET SDK 使你可以通过 .NET 开发应用。 如果安装 .NET SDK则无需安装相应的运行时。 若要安装 .NET SDK请运行以下命令
sudo apt-get update
sudo apt-get install -y dotnet-sdk-3.1下图为安装后控制台的输出 3. 测试安装 通过命令行可以检查 SDK 版本以及Runtime时版本。
dotnet --list-sdks
dotnet --list-runtimes下图为输入测试命令后控制台的输出 4. 测试控制台项目 在linux环境下我们可以通过dotnet命令来创建和编译项目项目创建命令为
dotnet new project_type -o project name此处我们创建一个简单测试控制台项目
dotnet new console -o test_net6.0
cd test_net6.0
dotnet run下图为输入测试命令后控制台的输出以及项目文件夹文件情况C#项目会自动创建一个Program.cs程序文件里面包含了程序运行入口主函数同时还会创建一个***.csproj**文件负责指定项目编译中的一些配置。 以上就是.NET环境的配置步骤如果你的环境与本文不匹配可以通过.NET 文档 | Microsoft Learn 获取更多安装步骤。
三、安装 OpenVINO Runtime OpenVINO™ 有两种安装方式: OpenVINO Runtime和OpenVINO Development Tools。OpenVINO Runtime包含用于在处理器设备上运行模型部署推理的核心库。OpenVINO Development Tools是一组用于处理OpenVINO和OpenVINO模型的工具包括模型优化器、OpenVINO Runtime、模型下载器等。在此处我们只需要安装OpenVINO Runtime即可。
1. 下载 OpenVINO Runtime 访问Download the Intel Distribution of OpenVINO Toolkit页面按照下面流程选择相应的安装选项在下载页面由于我们的设备使用的是Ubuntu20.04因此下载时按照指定的编译版本下载即可。 2. 解压安装包 我们所下载的 OpenVINO Runtime 本质是一个C依赖包因此我们把它放到我们的系统目录下这样在编译时会根据设置的系统变量获取依赖项。首先在系统文件夹下创建一个文件夹
sudo mkdir -p /opt/intel然后解压缩我们下载的安装文件并将其移动到指定文件夹下
tar -xvzf l_openvino_toolkit_ubuntu20_2023.0.1.11005.fa1c41994f3_x86_64.tgz
sudo mv l_openvino_toolkit_ubuntu20_2023.0.1.11005.fa1c41994f3_x86_64 /opt/intel/openvino_2022.3.03. 安装依赖 接下来我们需要安装 OpenVINO Runtime 所许雅的依赖项通过命令行输入以下命令即可
cd /opt/intel/openvino_2022.3.0/
sudo -E ./install_dependencies/install_openvino_dependencies.sh4. 配置环境变量 安装完成后我们需要配置环境变量以保证在调用时系统可以获取对应的文件通过命令行输入以下命令即可
source /opt/intel/openvino_2022.3.0/setupvars.sh以上就是 OpenVINO Runtime 环境的配置步骤如果你的环境与本文不匹配可以通过Install OpenVINO™ Runtime — OpenVINO™ documentation — Version(2023.0)获取更多安装步骤。
四、配置 AlxBoard_deploy_yolov8 项目 项目中所使用的代码已经放在GitHub仓库AlxBoard_deploy_yolov8大家可以根据情况自行下载和使用下面我将会从头开始一步步构建AlxBoard_deploy_yolov8项目。
1. 创建 AlxBoard_deploy_yolov8 项目 在该项目中我们需要使用OpenCvSharp该依赖目前在Ubutun平台最高可以支持.NET Core 3.1因此我们此处创建一个.NET Core 3.1的项目使用Terminal输入以下指令创建并打开项目文件
dotnet new console --framework netcoreapp3.1 -o AlxBoard_deploy_yolov8
cd AlxBoard_deploy_yolov8创建完项目后将AlxBoard_deploy_yolov8的代码内容替换到创建的项目中的Program.cs文件中.
2. 添加 OpenVINOSharp 依赖 由于OpenVINOSharp 当前正处于开发阶段还未创建Linux版本的NuGet Package因此需要通过下载项目源码以项目引用的方式使用。 下载源码 通过Git下载项目源码新建一个Terminal并输入以下命令克隆远程仓库将该项目放置在AlxBoard_deploy_yolov8同级目录下。 git clone https://github.com/guojin-yan/OpenVINOSharp.git
cd OpenVINOSharp本文的项目目录为 Program--|-AlxBoard_deploy_yolov8|-OpenVINOSharp修改OpenVINO™ 依赖 由于项目源码的OpenVINO™ 依赖与本文设置不同因此需要修改OpenVINO™ 依赖项的路径主要通过修改OpenVINOSharp/src/OpenVINOSharp/native_methods/ov_base.cs文件即可修改内容如下 private const string dll_extern ./openvino2023.0/openvino_c.dll;
---修改为---
private const string dll_extern libopenvino_c.so;添加项目依赖 在Terminal输入以下命令即可将OpenVINOSharp添加到AlxBoard_deploy_yolov8项目引用中。 dotnet add reference ./../OpenVINOSharp/src/OpenVINOSharp/OpenVINOSharp.csproj添加环境变量 该项目需要调用OpenVINO™动态链接库因此需要在当前环境下增加OpenVINO™动态链接库路径 export LD_LIBRARY_PATH/opt/intel/openvino_2023.0/runtime/lib/intel643. 添加OpenCvSharp 安装NuGet Package OpenCvSharp可以通过NuGet Package安装只需要在Terminal输入以下命令 dotnet add package OpenCvSharp4_.runtime.ubuntu.20.04-x64
dotnet add package OpenCvSharp4添加环境变量 将以下路径添加到环境变量中 export LD_LIBRARY_PATH/home/ygj/Program/OpenVINOSharp/tutorial_examples/AlxBoard_deploy_yolov8/bin/Debug/netcoreapp3.1/runtimes/ubuntu.20.04-x64/native/bin/Debug/netcoreapp3.1/runtimes/ubuntu.20.04-x64/native是AlxBoard_deploy_yolov8编译后生成的路径该路径下存放了libOpenCvSharpExtern.so文件该文件主要是封装的OpenCV中的各种接口。也可以将该文件拷贝到项目运行路径下。 检测libOpenCvSharpExtern依赖 由于libOpenCvSharpExtern.so是在其他环境下编译好的动态链接库本机电脑可能会缺少相应的依赖因此可以通过ldd命令检测。 ldd libOpenCvSharpExtern.so如果输出内容中没有no found的说明不缺少依赖如果存在则需要安装缺少的依赖项才可以正常使用。 添加完项目依赖以及NuGet Package后项目的配置文件内容为
Project SdkMicrosoft.NET.SdkItemGroupProjectReference Include..\OpenVINOSharp\src\OpenVINOSharp\OpenVINOSharp.csproj //ItemGroupItemGroupPackageReference IncludeOpenCvSharp4 Version4.8.0.20230708 /PackageReference IncludeOpenCvSharp4_.runtime.ubuntu.20.04-x64 Version4.8.0.20230708 //ItemGroupPropertyGroupOutputTypeExe/OutputTypeTargetFrameworknetcoreapp3.1/TargetFramework/PropertyGroup/Project五、运行AlxBoard_deploy_yolov8 项目
该项目测试所使用的模型与文件都可以在OpenVINOSharp中找到因此下面我们通过OpenVINOSharp 仓库下的模型与文件进行测试。 通过dotnet运行只需要运行以下命令即可
dotnet run argsargs参数设指的是模型预测类型、模型路径、图片文件路径参数预测类型输入包括 ‘det’、‘seg’、‘pose’、‘cls’ 四种类型默认推理设备设置为’AUTO’对于’det’、seg’预测可以设置path_to_lable参数如果设置该参数会将结果绘制到图片上如果未设置会通过控制台打印出来
1. 编译运行 Yolov8-det 模型
编译运行命令为:
dotnet run det /home/ygj/Program/OpenVINOSharp/model/yolov8/yolov8s.xml /home/ygj/Program/OpenVINOSharp/dataset/image/demo_2.jpg GPU.0 /home/ygj/Program/OpenVINOSharp/dataset/lable/COCO_lable.txt模型推理输出结果为
---- OpenVINO INFO----
Description : OpenVINO Runtime
Build number: 2023.0.1-11005-fa1c41994f3-releases/2023/0
Set inference device GPU.0.
[INFO] Loading model files: /home/ygj/Program/OpenVINOSharp/model/yolov8/yolov8s.xml
[INFO] model name: torch_jit
[INFO] inputs:
[INFO] input name: images
[INFO] input type: f32
[INFO] input shape: Shape : [1, 3, 640, 640]
[INFO] outputs:
[INFO] output name: output0
[INFO] output type: f32
[INFO] output shape: Shape : [1, 84, 8400]
[INFO] Read image files: /home/ygj/Program/OpenVINOSharp/dataset/image/demo_2.jpgDetection result : 1: 0 0.89 (x:744 y:43 width:388 height:667)
2: 0 0.88 (x:149 y:202 width:954 height:507)
3: 27 0.72 (x:435 y:433 width:98 height:284)2. 编译运行 Yolov8-cls 模型
编译运行命令为:
dotnet run cls /home/ygj/Program/OpenVINOSharp/model/yolov8/yolov8s-cls.xml /home/ygj/Program/OpenVINOSharp/dataset/image/demo_7.jpg GPU.0模型推理输出结果为
---- OpenVINO INFO----
Description : OpenVINO Runtime
Build number: 2023.0.1-11005-fa1c41994f3-releases/2023/0
Set inference device GPU.0.
[INFO] Loading model files: /home/ygj/Program/OpenVINOSharp/model/yolov8/yolov8s-cls.xml
[INFO] model name: torch_jit
[INFO] inputs:
[INFO] input name: images
[INFO] input type: f32
[INFO] input shape: Shape : [1, 3, 224, 224]
[INFO] outputs:
[INFO] output name: output0
[INFO] output type: f32
[INFO] output shape: Shape : [1, 1000]
[INFO] Read image files: /home/ygj/Program/OpenVINOSharp/dataset/image/demo_7.jpgClassification Top 10 result : classid probability
------- -----------
294 0.992173
269 0.002861
296 0.002111
295 0.000714
270 0.000546
276 0.000432
106 0.000159
362 0.000147
260 0.000078
272 0.0000703. 编译运行 Yolov8-pose 模型
编译运行命令为:
dotnet run pose /home/ygj/Program/OpenVINOSharp/model/yolov8/yolov8s-pose.xml /home/ygj/Program/OpenVINOSharp/dataset/image/demo_9.jpg GPU.0模型推理输出结果为
---- OpenVINO INFO----
Description : OpenVINO Runtime
Build number: 2023.0.1-11005-fa1c41994f3-releases/2023/0
Set inference device GPU.0.
[INFO] Loading model files: /home/ygj/Program/OpenVINOSharp/model/yolov8/yolov8s-pose.xml
[INFO] model name: torch_jit
[INFO] inputs:
[INFO] input name: images
[INFO] input type: f32
[INFO] input shape: Shape : [1, 3, 640, 640]
[INFO] outputs:
[INFO] output name: output0
[INFO] output type: f32
[INFO] output shape: Shape : [1, 56, 8400]
[INFO] Read image files: /home/ygj/Program/OpenVINOSharp/dataset/image/demo_9.jpgClassification result : 1: 1 0.94 (x:104 y:22 width:152 height:365) Nose: (188 ,60 ,0.93) Left Eye: (192 ,53 ,0.83) Right Eye: (180 ,54 ,0.90) Left Ear: (196 ,53 ,0.50) Right Ear: (167 ,56 ,0.76) Left Shoulder: (212 ,92 ,0.93) Right Shoulder: (151 ,93 ,0.94) Left Elbow: (230 ,146 ,0.90) Right Elbow: (138 ,142 ,0.93) Left Wrist: (244 ,199 ,0.89) Right Wrist: (118 ,187 ,0.92) Left Hip: (202 ,192 ,0.97) Right Hip: (168 ,193 ,0.97) Left Knee: (184 ,272 ,0.96) Right Knee: (184 ,276 ,0.97) Left Ankle: (174 ,357 ,0.87) Right Ankle: (197 ,354 ,0.88) 4. 编译运行 Yolov8-seg 模型
编译运行命令为:
dotnet run seg /home/ygj/Program/OpenVINOSharp/model/yolov8/yolov8s-seg.xml /home/ygj/Program/OpenVINOSharp/dataset/image/demo_2.jpg GPU.0 /home/ygj/Program/OpenVINOSharp/dataset/lable/COCO_lable.txt模型推理输出结果为
---- OpenVINO INFO----
Description : OpenVINO Runtime
Build number: 2023.0.1-11005-fa1c41994f3-releases/2023/0
Set inference device GPU.0.
[INFO] Loading model files: /home/ygj/Program/OpenVINOSharp/model/yolov8/yolov8s-seg.xml
47
[INFO] model name: torch_jit
[INFO] inputs:
[INFO] input name: images
[INFO] input type: f32
[INFO] input shape: Shape : [1, 3, 640, 640]
[INFO] outputs:
[INFO] output name: output0
[INFO] output type: f32
[INFO] output shape: Shape : [1, 116, 8400]
[INFO] Read image files: /home/ygj/Program/OpenVINOSharp/dataset/image/demo_2.jpgSegmentation result : 1: 0 0.90 (x:745 y:42 width:403 height:671)
2: 0 0.86 (x:121 y:196 width:1009 height:516)
3: 27 0.69 (x:434 y:436 width:90 height:280)六、模型运行时间 AIxBoard开发板板载了英特尔赛扬N5105 CPU以及英特尔11代集成显卡此处对CPU、GPU的推理情况做了一个简单测试主要检测了模型推理时间并使用英特尔幻影峡谷进行了同步测试测试结果如表所示.
DeviceCPU: N5105GPU: Intel 11th 集显CPU: i7-1165G7GPU: lntel® Iris® Xe GraphicsYolov8-det586.3ms83.1ms127.1ms19.5msYolov8-seg795.6ms112.5ms140.1ms25.0msYolov8-pose609.8ms95.1ms117.2ms23.3msYolov8-cls33.1ms9.2ms6.1ms2.7ms 可以看出英特尔赛扬N5105 CPU在模型推理性能是十分强大的且搭配的英特尔11代集成显卡将推理速度提升了6倍左右针对Yolov8模型平均处理速度可以达到10FPs。而相比于幻影峡谷的推理速度AIxBoard开发板推理性能大约为其五分之一这相比一般的开发板AIxBoard开发板的算力还是十分强大的。
七、总结 在该项目中我们基于Ubutn 20.04 系统成功实现了在C#环境下调用OpenVINO™部署深度学习模型验证了在Linux环境下OpenVINOSharp项目的的可行性这对后面在Linux环境下开发OpenVINOSharp具有很重要的意义。 除此之外我们还使用OpenVINOSharp检验了AIxBoard开发板的模型推理能力最总针对Yolov8模型平均处理速度可以达到10FPs这对目前大多数开发板来说已经达到了很高的推理速度。后续我还会将继续使用OpenVINOSharp在AIxBoard开发板部署更多的深度学习模型。
