边缘智能计算应用课件:基于TFLite的mediapipe模型文件转RKNN模型文件_第1页
边缘智能计算应用课件:基于TFLite的mediapipe模型文件转RKNN模型文件_第2页
边缘智能计算应用课件:基于TFLite的mediapipe模型文件转RKNN模型文件_第3页
边缘智能计算应用课件:基于TFLite的mediapipe模型文件转RKNN模型文件_第4页
边缘智能计算应用课件:基于TFLite的mediapipe模型文件转RKNN模型文件_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于TFLite的手掌检测模型部署边缘智能计算应用项目引导案例感知手的形状和运动的能力可能是改善跨各种技术领域和平台的用户体验的重要组成部分,在人机交互场景中起到非常重要的作用本章节任务中我们采用的是Mediapipe的模型,它是一种高保真手和手指跟踪解决方案。其使用机器学习(ML)从单帧中推断出一只手的21个2D地标。尽管当前最先进的方法主要依赖于强大的桌面环境进行推理,但通过模型转换,其具备了在边缘计算平台上使用npu资源进行图像目标检测和识别的功能。项目引导案例本项目将带着大家体验基于TFLite的手掌检测模型部署,主要任务有:TFLite模型文件转RKNN模型文件基于rknn的手掌检测手掌检测在嵌入式设备中的部署和运行项目中所涉及的操作过程主要如下图所示:TFLite模型文件转RKNN模型文件基于rknn的手掌检测手掌检测在嵌入式设备中的部署和运行基于TFLite的Mediapipe模型文件转RKNN模型文件边缘智能计算应用职业能力目标01任务描述与要求02任务分析与计划03知识储备04任务实施05任务检查与评价06任务小结07任务拓展08基于TFLite的Mediapipe模型文件转RKNN模型文件了解RKNN的相关知识了解模型转换工具RKNN-Toolkit了解TensorFlowLite工具掌握TFLite模型到RKNN模型转换的环境搭建掌握使用RKNNToolkit工具将TFLite模型转换为RKNN模型职业能力目标01知识目标技能目标职业能力目标01任务描述与要求02任务分析与计划03知识储备04任务实施05任务检查与评价06任务小结07任务拓展08基于TFLite的Mediapipe模型文件转RKNN模型文件

此任务要求搭建RKNN模型转换的环境,并配置模型量化和模型转换的相关参数,并对手势识别和手掌检测模型进行转换。任务描述任务要求完成环境的配置完成rknn模型搭建完成模型的转换任务描述与要求02职业能力目标01任务描述与要求02任务分析与计划03知识储备04任务实施05任务检查与评价06任务小结07任务拓展08基于TFLite的Mediapipe模型文件转RKNN模型文件任务分析模型处理的参数要设置为多少才比较合理?为什么要转换为rknn模型?任务分析与计划03任务计划表项目名称基于TFLite的手掌检测模型部署任务名称基于TFLite的Mediapipe模型文件转RKNN模型文件计划方式自主设计计划要求请用8个计划步骤来完整描述出如何完成本次任务序号任务计划1

2

3

45678通过上面的思考,你是否对本任务要完成的工作有所了解?让我们一起来制订完成本次任务的实施计划吧!任务分析与计划03职业能力目标01任务描述与要求02任务分析与计划03知识储备04任务实施05任务检查与评价06任务小结07任务拓展08基于TFLite的Mediapipe模型文件转RKNN模型文件rknn简介204知识储备Mediapipe简介1TensorFlowLite3MediaPipe是一款由Google开发并开源的数据流处理机器学习应用开发框架。它是一个基于图的数据处理管线,用于构建使用了多种形式的数据源,如视频、音频、传感器数据以及任何时间序列数据。04Mediapipe简介04Mediapipe简介MediaPipe是跨平台的,可以运行在嵌入式平台(树莓派等),移动设备(iOS和Android),工作站和服务器上,并支持移动端GPU加速。使用MediaPipe,可以将机器学习任务构建为一个图形的模块表示的数据流管道,可以包括推理模型和流媒体处理功能。04Mediapipe简介我们为什么需要MediaPipe呢?04Mediapipe简介构建包含推理的应用程序所涉及的不仅仅是运行机器学习推理模型。开发者还需要做到以下几点:利用各种设备的功能平衡设备资源使用和推理结果的质量通过流水线并行运行多个操作确保时间序列数据同步正确04Mediapipe简介

MediaPipe框架解决了这些挑战,开发者可以使用它轻松快速地将现有的或新的机器学习模型组合到以图表示的原型中,并将其跨平台实现。04Mediapipe简介开发人员可以配置使用MediaPipe创建的应用程序做到如下几点:有效管理资源(CPU和GPU)达到低延迟性能处理诸如音频和视频帧之类的时间序列数据的同步并测量性能和资源消耗04Mediapipe简介MediaPipe有下面三个主要部分组成:用于构建基于感官数据进行机器学习推理的框架用于性能评估的工具可重用的推理和处理组件的集合04Mediapipe简介MediaPipe的核心框架由C++实现,并提供Java以及Objective-C等语言的支持。MediaPipe的主要概念包括:图(Graph),数据包(Packet),节点(Node),数据流(Stream),

图配置(GraphConfig),计算单元(Calculator)和子图(Subgraph)04Mediapipe简介MediaPipe还提供了MediaPipeVisualizer在线工具,它帮助开发者了解其计算单元图的结构并了解其机器学习推理管道的整体行为。这个图预览工具允许用户在编辑器中直接输入或上传图形配置文件来加载。

04MediaPipeHands是一种高保真手和手指跟踪解决方案;它采用机器学习(ML)仅从单个帧中推理出手部的21个3D坐标;当前最先进的方法主要依赖于强大的算力,而使用MediaPipe提供的解决方案实现了在手机上进行实时检测的性能,甚至可以同时辨识到多只手;MediaPipe框架将在未来被广泛地研发,更多的开发者也将加入到此行列中对手部识别和模拟应用进行开发。Mediapipe简介rknn简介204知识储备Mediapipe简介1TensorFlowLite3rknn简介04RKNN是RockchipNPU平台使用的模型类型,以“rknn”后缀结尾的模型文件。将模型转换为特定格式的RKNN文件能够调用平台上的人工智能专用加速芯片(NPU),以获得更高的算力。Rockchip提供了模型转换工具RKNNToolkit,方便用户将自主研发的算法模型转换成RKNN模型。RKNNToolkit是为用户提供在PC、RockchipNPU平台上进行模型转换和性能评估的开发套件,用户通过该工具提供的Python接口可以便捷地完成模型转。RKNNToolkit支持将Caffe、TensorFlow、TensorFlowLite、ONNX、Darknet、Pytorch、MXNet等框架的模型转成RKNN模型,支持RKNN模型导入导出,后续能够在RockchipNPU平台上加载使用。从1.2.0版本开始支持多输入模型。本实验使用的是RKNNToolkit1.7.1版本。rknn简介204知识储备Mediapipe简介1TensorFlowLite304TensorFlowLiteTensorFlowLite是一组工具,可帮助开发者在移动设备、嵌入式设备和loT设备上运行模型,以便实现设备端机器学习。04TensorFlowLiteTensorFlowLite和TensorFlow有什么联系呢?04TensorFlowLiteTensorFlowLite是为了解决TensorFlow在移动平台和嵌入式端过于臃肿而定制开发的轻量级解决方案,是与TensorFlow完全独立的两个项目,与TensorFlow基本没有代码共享。04TensorFlowLiteTensorFlow本身是为桌面和服务器端设计开发的,没有为ARM移动平台定制优化,因此如果直接用在移动平台或者嵌入式端会“水土不服”。04TensorFlowLiteTensorFlowLite则实现了低能耗、低延迟的移动平台机器学习框架,并且使得编译之后的二进制发布版本更小。TensorFlowLite不仅支持传统的ARM加速,还为AndroidNeuralNetworksAPI提供了支持,在支持ANN的设备上能提供更好的性能表现。04TensorFlowLiteTensorFlowLite不仅使用了ARMNeon指令集加速,还预置了激活函数,提供了量化功能,加快了执行速度,减小了模型大小。04TensorFlowLiteTensorFlowLite具有许多优良的特性,而这些特性源于TensorFlowLite的架构设计。04TensorFlowLite我们可以用这样的方式理解TensorFlowLite与TensorFlow的差异,首先需要训练一个TensorFlow的模型文件,然后使用TensorFlowLite的模型转换器将TensorFlow模式转换为TensorFlowLite的模型文件(.tflite格式)。接着可以在移动应用里使用转换好的文件。04TensorFlowLite我们可以在Android和iOS上使用TensorFlowLite,通过TensorFlowLite加载转换好的.tflite模型文件。04TensorFlowLite但是tflite模型无法使用嵌入式开发板上的NPU资源,这样就会造成了资源的浪费。因此我们要将其转换为可以嵌入到开发板上的rknn模型。职业能力目标01任务描述与要求02任务分析与计划03知识储备04任务实施05任务检查与评价06任务小结07任务拓展08基于TFLite的Mediapipe模型文件转RKNN模型文件rknn模型的搭建205任务实施环境的搭建1模型转换305环境的搭建在做模型转换之前,需要搭建环境,安装所需的Python依赖包,手动安装以下依赖包:thirdparty/rknn_toolkit-1.7.1-cp36-cp36m-linux_x86_64.whlcertifi==2021.10.8tensorflow==2.1

安装依赖在命令行中,安装依赖包可以写一个或多个包同时安装05环境的搭建导入依赖包安装完依赖一定不要忘记导入哦!importnumpyasnp

importre

importmath

importrandom

fromrknn.apiimportRKNNrknn模型的搭建205任务实施环境的搭建1模型转换305rknn模型的搭建创建RKNN对象RKNN(verbose=True,verbose_file=None)初始化rknnSDK环境verbose指定是否要在屏幕上打印详细日志信息;默认False不打印,verbose_file调试信息指定转储到文件路径,默认为None。如果设置了verbose_file参数,且verbose参数值为True,日志信息还将写到该参数指定的文件中rknn=RKNN(verbose=True)05rknn模型的搭建创建RKNN对象rknn.config(mean_values=[[0,0,0]],std_values=[[255,255,255]],reorder_channel='012',target_platform='rk3399pro',output_optimize=1)调用config接口设置模型的预处理参数05rknn模型的搭建加载原始模型ret=rknn.load_tflite(model='./models/hand_landmark.tflite')– model:tflite模型文件(.tflite后缀)所在的路径– 返回值:0表示导入成功,-1表示导入失败加载原始的tflite模型05rknn模型的搭建构建RKNN模型rknn.build(do_quantization=True,dataset='./rknn/dataset.txt',pre_compile=False,rknn_batch_size=1)依照加载的模型结构及权重数据,构建对应的RKNN模型– do_quantization:是否对模型进行量化,值为True或False。– dataset:量化校正数据的数据集。目前支持文本文件格式,用户可以把用于校正的图片(jpg或png格式)或npy文件路径放到一个.txt文件中。文本文件里每一行一条路径信息。如有多个输入,则每个输入对应的文件用空格隔开,如:a.jpga2.jpg– pre_compile:预编译开关,如果设置成True,可以减小模型大小,及模型在硬件设备上的首次启动速度。但是打开这个开关后,构建出来的模型就只能在硬件平台上运行,无法通过模拟器进行推理或性能评估。如果硬件有更新,则对应的模型要重新构建。 model:tflite模型文件(.tflite后缀)所在的路径– 返回值:0表示导入成功,-1表示导入失败05rknn模型的搭建导出RKNN模型•ret=rknn.export_rknn('./rknn/models/best.rknn')export_path:导出模型文件的路径。返回值:0表示导出成功,-1表示导出失败将RKNN模型保存到指定文件中(.rknn后缀)05rknn模型的搭建释放RKNN运行环境rknn.release()释放RKNN运行环境时,用户不需要设置模型预处理参数不释放运行环境可能会造成内存拥挤哦!rknn模型的搭建205任务实施环境的搭建1模型转换305模型转换同上进行手掌检测模型的转换rknn=RKNN(verbose=True)rknn.config(mean_values=[[127.5,127.5,127.5]],std_values=[[127.5,127.5,127.5]],reorder_channel='210',target_platform='rk3399pro',output_optimize=1)rknn.load_tflite(model='./models/palm_detection_without_custom_op.tflite')rknn.build(do_quantization=True,dataset='./images/dataset.txt')rknn.export_rknn('./models/palm_detectionu8.rknn')rknn.release()05模型转换使用如下命令,确认RKNN模型是否转换成功,以及模型文件创建的时间ls-almodels/*.rknn!ls-almodels/*.rknn职业能力目标01任务描述与要求02任务分析与计划03知识储备04任务实施05任务检查与评价06任务小结07任务拓展08基于TFLite的Mediapipe模型文件转RKNN模型文件任务检查与评价06序号评价内容评价标准分值得分1知识运用(20%)掌握相关理论知识,理解本次任务要求,制定详细计划,计划条理清晰,逻辑正确(20分)20分

理解相关理论知识,能根据本次任务要求、制定合理计划(15分)了解相关理论知识,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论