百度飞桨部署全流程讲解以及Jetson nano部署实战案例(上)

百度飞桨部署全流程讲解以及Jetson nano部署实战案例(上)

这个是我看了反复看了四五遍BML的培训的部署课程写的一个理解,可能有理解不到位的地方可以看下原B站视频,讲的也很好。

https://www.bilibili.com/video/BV1YQ4y127rB?from=search&seid=4040677619604070442&spm_id_from=333.337.0.0

这里是由于内容体系太复杂太多了,所以分为上下两个,第一部分写下整个飞桨的部署推理理论的核心架构,第二部分在我自己的Jetson nano上跑下视频中的实例。

首先什么是部署,在飞桨中简单来说就是我没有GPU或者一些好的硬件设备。但是我可以先在平台上进行训练,然后把这个模型放到像服务器或者我自己的硬件设备你可以看作是一个小服务器上面去。

那这两个有什么区别呢?服务器肯定是好的,性能够强,迭代够快。适合互联网呀、大公司这种情况。那边缘端其实工业上都会经常考虑的,一些小任务量的反复的工作其实也不需要那么高的性能和迭代,所以智能硬件发挥了很大的作用。
请添加图片描述

那总的来说,为什么玩AI的人叫炼丹?看一下下面的AI项目的一般步骤,首先是我接了一个项目,然后我用了很多数据集给他们标记好,然后开始修改模型,调调参数做一个模型出来。然后我们把这个模型放到一个硬件上去,就可以在工业上使用了,然后一个项目get,钱就赚到了。
请添加图片描述

但是这期间不会这么顺的呀,首先那么我不仅要检测裂痕了,我还要检测个杂物,是不是要多个功能。然后何恺明大佬又出了一个新的模型了,那你是不是想换一下,然后龙芯又出新的芯片A35000了那是不是得换一下,所以百度这边的真实流程是下图。
请添加图片描述

专业的流程如下图,上面是端侧,部署起来需要SDK。下面的QPS云端设备需要用一下。

请添加图片描述

emm—这里就是百度自己家给自己做广告了,说用他们的产品这些迭代的过程可以很方遍,而且公有云管理起来很方便。
请添加图片描述
继续做广告哈,首先公有云部署第一点钱少能干就不提了,模型泛化其实几乎所有算法追求的方向。举个例子,比如说我现在针对小猫识别做出了一个很好的模型,然后我能拿这个模型去识别小狗呢,或者识别所有的小动物呢?这个可以大大地减少了模型的强度。
请添加图片描述

这里是百度特有的一些功能,也是产品优势,不作技术讲解
请添加图片描述
这个功能是不错的
请添加图片描述

云部署和端侧部署的优缺点比较
请添加图片描述

端侧部署现在主要的问题是设备太多了,各种硬件厂商都有自己的标准,这里我做个广告,大佬英伟达我就不多说了,国产华为也是YYDS。龙芯3A5000现在也可以完成了飞桨的认证,也可以玩AI了。当然英特尔的更是推荐,因为英特尔形成了自己完善的体系,几乎所有人的电脑里面都有一块英特尔,通过飞桨你不需要显卡也可以玩AI。
请添加图片描述

现在我们来看下市面主流的产品的有五种,算力依次递减,GPU价格比较贵,已经深有所感了哈哈哈哈。CPU的价格时最低的在众多的硬件条件中,所以在CPU的推理部署是很值得深入研究的一个领域。像龙芯和英特尔都是不错的CPU品牌。
请添加图片描述

举一个例子,比如说现在一个很典型的经常做的一个项目,我在马路等地方有很多个摄像头,现在想要去识别人脸然后找到这个犯罪份子。那么首先现在的方法是把摄像头连入服务器,然后把所有视频在服务器进行分析,这就叫公有云部署。
那现在我的端侧的AI芯片越来越强大了,那我是不是可以直接在端侧就可以识别出犯罪份子。这就叫端侧部署。

请添加图片描述
第二种方法,如果我每个摄像头都布置了一个AI芯片,然后对人流先来个人脸识别,把脸先定位出来了,然后把这脸传入到服务器端去识别。这个就是协同部署推理设备的形式。
请添加图片描述

端侧部署其实是对模型的本身的算法机构有一个压缩的过程,就是会把模型进行一些列的处理。这个过程主要分为前置压缩和后置压缩,然后在百度这边发布SDK后,然后在端侧调用SDK。

请添加图片描述

在这个过程中我们主流的深度学习架构不同,然后飞浆平台作为中间媒介,先将主流的深度框架语言转化成中间语言,然后再根据硬件条件的不同部署到不同的硬件。
请添加图片描述

比如说左边的算法融合,把三个算子的计算量简化成一个算子的计算量,然后可以使得模型得到压缩,这种方法有很多,十多种。
请添加图片描述

高精度模型需要耗时巨大,高性能模型的精度不够。
请添加图片描述

请添加图片描述

这是模型处理后的性能提升效果。
请添加图片描述

对于模型的精确度和耗时的问题两个,在保持一定的精确度条件下减少耗时,减少耗时提高精度。
请添加图片描述

请添加图片描述

SDK是一个压缩包,在电脑下载后这是一个包的整体结构,可以适配不同语言,不同的硬件环境。
请添加图片描述
请添加图片描述
请添加图片描述

百度这块有个有个硬件商城提供了不少硬件,但是主要是还是以英伟达系列为主的一些硬件,主要分为超高性能、高性能、低成本/小功耗这三类,看不同的需求来购置不同的器件。比如说工业上有预算的话可以买个万把快的期间。

请添加图片描述

最好那些其实有点贵,学生党买起来有点吃力。我在商城看了一下,很贵。有实力有时间的伙伴还是自己买了部署一下吧。
请添加图片描述

这章图就是后面要分别在服务器和Jetson nano 的部署实战的详细步骤,过几天我把nano弄过来跑一下出个教程。
请添加图片描述

  • 9
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 要在Jetson Nano上部署YoloX,您可以按照以下步骤进行操作: 1. 安装JetPack SDK:JetPack SDK是NVIDIA Jetson平台的软件开发工具包,包括操作系统、CUDA、TensorRT等必要组件。您可以从NVIDIA官网下载并安装适用于Jetson Nano的JetPack SDK。 2. 安装PyTorch:YoloX是基于PyTorch框架实现的,因此您需要在Jetson Nano上安装PyTorch。您可以使用pip命令安装PyTorch,也可以从源代码编译安装。 3. 下载YoloX代码:您可以从YoloX的GitHub仓库下载源代码,并将其复制到Jetson Nano上。 4. 下载预训练模型:YoloX需要使用预训练模型进行目标检测。您可以从YoloX的GitHub仓库下载预训练模型,并将其复制到Jetson Nano上。 5. 运行YoloX:在Jetson Nano上运行YoloX,您需要使用Python脚本调用YoloX的API,并传入相应的参数。您可以参考YoloX的文档和示例代码进行操作。 需要注意的是,由于Jetson Nano的计算资源有限,可能会影响YoloX的性能。您可以通过调整模型参数、使用更高效的算法等方式来优化YoloX的性能。 ### 回答2: Jetson Nano是一款小型、低功耗的人工智能计算机,而YOLOX则是一种基于目标检测的模型,用于实时识别图像中的对象。在Jetson Nano上部署YOLOX可以让我们使用这个强大的小型计算机进行高效的目标检测。 首先,我们需要准备Jetson Nano开发板和一台电脑。在电脑上,我们需要进行一些准备工作,包括安装JetPack和配置SSH远程连接。JetPack是一种能够在Jetson Nano上安装所需软件的软件包,其中包括CUDA、cuDNN等开发工具,这些工具可以支持将YOLOX部署Jetson Nano上。SSH远程连接可以使我们在Jetson Nano上直接使用电脑的命令行。 接下来,我们需要下载YOLOX的源代码,并进行配置和编译。具体来说,我们需要安装Python3、Numpy、Pillow、torch、opencv-python等软件包,并将其与Jetson Nano的架构匹配。这些工具可以使我们更加方便地进行模型训练和推理。 然后,我们需要选择适合我们的数据集并进行训练。这里我们可以使用COCO数据集或其他开源数据集进行训练。在训练过程中,我们需要进行超参数的调整和优化,以达到最佳的目标检测效果。 最后,在经过训练的YOLOX模型上运行推理,并确定模型在不同场景下的准确率。为了实现实时目标检测,我们可以使用OpenCV库将摄像头的实时图像输入到YOLOX模型中,以检测图像中的对象。 总之,在Jetson Nano上部署YOLOX需要执行一系列复杂的步骤,包括软件安装、数据集训练和模型推理。我们需要耐心和精力投入,才能最终实现高效的目标检测。 ### 回答3: Jetson Nano是针对边缘计算开发的一款小型计算机,而YoloX是一种新型的目标检测算法,可以在低功耗设备上快速识别目标。在Jetson Nano上部署YoloX可以让我们在嵌入式设备上实现实时目标检测,非常有用。 部署YoloX的过程相对复杂,但是我们可以按照下面的步骤逐步实现: 1. 安装JetPack 4.4+: JetPack是NVIDIA官方提供的一套软件开发工具包,其中包含了CUDA、cuDNN等深度学习库。首先需要下载并安装 JetPack 4.4+,具体安装步骤可以参考官网提示。 2. 安装OpenCV:在Jetson Nano上运行YoloX需要使用OpenCV库,下载之后进行安装,安装命令如下: ``` sudo apt-get update sudo apt-get install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev sudo apt-get install libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev libv4l-dev ``` 3. 下载并编译YoloX源码:从 GitHub 下载 YoloX 源码,然后进行编译。编译命令如下: ``` git clone https://github.com/Megvii-BaseDetection/YOLOX.git cd YOLOX sudo apt-get install python3-pip pip3 install Cython numpy sudo apt-get install ninja-build python3 setup.py build develop ``` 注:为了编译 YoloX 代码,您需要一张 NVIDIA GPU 卡,并配置好 CUDA 和 cuDNN。 4. 下载预训练的模型权重:在进行模型训练之前,需要准备一个已经训练好的模型权重。您可以从 YoloX 官方仓库 处下载预训练的权重,或是使用自己的数据集训练出自己的模型权重。 5. 测试模型:在部署完成后,我们可以使用 YoloX 官方提供的测试脚本来测试模型,具体的测试命令如下: ``` python tools/demo.py image -n yolox-s-416 --path assets/dog.jpg --conf 0.25 --nms 0.45 ``` 这个脚本将会加载预训练的 yolox-s 模型,然后使用一张测试图片(dog.jpg)进行测试,并将结果保存到 output 文件夹下。 总结: 在这篇文章中,我们介绍了在Jetson Nano上部署YoloX的过程及方法,从安装基本的JetPack到编译源代码,再到下载预训练模型,最后通过测试脚本检验模型的准确性。这个过程可能比较繁琐,需要好好的理解和操作。随着AI的深入应用,我们相信越来越多的开发者、技术爱好者们会对边缘计算的优化、应用上有更多的发现和深入研究。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

翼达口香糖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值