《边缘智能计算应用》课件 项目五 基于TFLite的手掌检测模型部署_第1页
《边缘智能计算应用》课件 项目五 基于TFLite的手掌检测模型部署_第2页
《边缘智能计算应用》课件 项目五 基于TFLite的手掌检测模型部署_第3页
《边缘智能计算应用》课件 项目五 基于TFLite的手掌检测模型部署_第4页
《边缘智能计算应用》课件 项目五 基于TFLite的手掌检测模型部署_第5页
已阅读5页,还剩159页未读 继续免费阅读

下载本文档

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

文档简介

项目五基于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分)了解相关理论知识,有制定计划(10分)无制定计划(0分)2专业技能(40%)很好的完成环境的配置,rknn模型的搭建和模型的转换。(40分)40分

大体完成环境的配置,rknn模型的搭建和模型的转换。(30分)只完成环境的配置,rknn模型的搭建。(20分)只完成环境的配置。(10分)没有完成环境的配置。(0分)3核心素养(20%)具有良好的自主学习能力、分析解决问题的能力、整个任务过程中有指导他人(20分)20分

具有较好的学习能力和分析解决问题的能力,任务过程中无指导他人(15分)能够主动学习并收集信息,有请教他人进行解决问题的能力(10分)不主动学习(0分)4课堂纪律(20%)设备无损坏、设备摆放整齐、工位区域内保持整洁、无干扰课堂秩序(20分)20分

设备无损坏、无干扰课堂秩序(15分)无干扰课堂秩序(10分)干扰课堂秩序(0分)总得分1、请参照评价标准完成自评和对其他小组的互评。2、各组请代表分析本组任务实施经验。职业能力目标01任务描述与要求02任务分析与计划03知识储备04任务实施05任务检查与评价06任务小结07任务拓展08任务一基于TFLite的Mediapipe模型文件转RKNN模型文件任务小结07职业能力目标01任务描述与要求02任务分析与计划03知识储备04任务实施05任务检查与评价06任务小结07任务拓展08任务一基于TFLite的Mediapipe模型文件转RKNN模型文件任务拓展08尝试将mediepipe的模型(tflite)转onnx模型1仿照以上所学到的尝试完成转换根据上述内容完成拓展。解题

思路提示任务要求2完整叙述出操作流程谢谢大家学习项目五基于TFLite的手掌检测模型部署边缘智能计算应用任务二基于rknn的手掌检测边缘智能计算应用职业能力目标01任务描述与要求02任务分析与计划03知识储备04任务实施05任务检查与评价06任务小结07任务拓展08任务二基于rknn的手掌检测了解RKNN的相关知识了解仿射变化,归一化,量化等概念了解OpenCV的相关知识掌握OpenCV的使用掌握掌握RKNN模型的加载和使用掌握如何使用RKNN模型去检测手掌掌握手掌检测的流程职业能力目标01知识目标技能目标职业能力目标01任务描述与要求02任务分析与计划03知识储备04任务实施05任务检查与评价06任务小结07任务拓展08任务二基于rknn的手掌检测

此任务要求使用转换后的RKNN模型对手掌进行目标检测和识别,并绘制手掌轮廓。任务描述任务要求掌握手掌目标检测;完成手掌图片的截取;掌握手掌关节节点检测。任务描述与要求02职业能力目标01任务描述与要求02任务分析与计划03知识储备04任务实施05任务检查与评价06任务小结07任务拓展08任务二基于rknn的手掌检测任务分析我们要如何使用RKNN模型去检测手掌呢?我们应该用什么办法去获取手掌的关键点呢?任务分析与计划03任务计划表项目名称基于TFLite的手掌检测模型部署任务名称基于rknn的手掌检测计划方式自主设计计划要求请用8个计划步骤来完整描述出如何完成本次任务序号任务计划1

2

3

45678通过上面的思考,你是否对本任务要完成的工作有所了解?让我们一起来制订完成本次任务的实施计划吧!任务分析与计划03职业能力目标01任务描述与要求02任务分析与计划03知识储备04任务实施05任务检查与评价06任务小结07任务拓展08任务二基于rknn的手掌检测04知识储备手掌关键点介绍21非极大值抑制3图片的仿射变化4置信度与置信区间5边缘填充算法和np.pad()函数04手掌关键点介绍在计算机视觉领域中,手势识别被广泛应用于人机交互、手语识别等场景中,而手势识别依赖于手掌关键点检测,并且随着移动终端和移动互联网的普及,手势识别也广泛应用于移动终端中。04手掌关键点介绍手掌关键点是指手掌中的各个关节点,现有技术中手部关键点检测最常用的方法是使用深度卷积神经网络,通过深度卷积神经网络输出手部关键点的三维坐标。04手掌关键点介绍手掌的21个关键点04知识储备手掌关键点介绍边缘填充算法和np.pad()函数21非极大值抑制3图片的仿射变化4置信度与置信区间504边缘填充算法我们在获取的图像往往会存在一些无关的信息,因此我们要对图像进行预处理,其主要目的是消除图像中无关的信息,恢复有用的真实信息,增强有关信息的可检测性和最大限度地简化数据,从而改进特征抽取、图像分割、匹配和识别的可靠性。04边缘填充算法下面将介绍和图像预处理相关的两个应用:边缘填充算法和np.pad()函数04边缘填充算法边缘填充算法是先求出多边形的每条边与扫描线的交点,然后将交点右侧的所有像素颜色全部取为补色(或反色)。按任意顺序处理完多边形的所有边后,就完成了多边形的填充任务。04边缘填充算法边缘填充算法利用了图像处理中的求“补”或求“反”的概念,对于黑白图像,求补就是把RGB(1,1,1)(白色)的像素置为RGB(0,0,0)(黑色),反之亦然。对于彩色图像,求补就是将背景色置为填充色,反之亦然。04边缘填充算法在卷积神经网络中,为了避免因为卷积运算导致输出图像缩小和图像边缘信息丢失,常常采用图像边缘填充技术,即在图像四周边缘填充0,使得卷积运算后图像大小不会缩小,同时也不会丢失边缘和角落的信息。在Python的numpy库中,常常采用numpy.pad()进行填充操作。语法结构参数解释pad(array,pad_width,mode,**kwargs)返回值:数组array:表示需要填充的数组;pad_width:表示每个轴(axis)边缘需要填补的长度。参数输入方式为:((before_1,after_1),…(before_N,after_N))。mode:表示填充的方式(取值:str字符串或用户提供的函数),总共有11种填充模式;04边缘填充算法填充方式‘constant’——表示连续填充相同的值,每个轴可以分别指定填充值,constant_values=(x,y)时前面用x填充,后面用y填充,缺省值填充0‘edge’——表示用边缘值填充‘linear_ramp’——表示用边缘递减的方式填充‘maximum’——表示最大值填充‘mean’——表示均值填充‘median’——表示中位数填充‘minimum’——表示最小值填充‘reflect’——表示对称填充‘symmetric’——表示对称填充‘wrap’——表示用原数组后面的值填充前面,前面的值填充后面04知识储备手掌关键点介绍21非极大值抑制3图片的仿射变化4置信度与置信区间5边缘填充算法和np.pad()函数非极大值抑制,简称为NMS算法,英文为Non-MaximumSuppression。其思想是搜素局部最大值,抑制非极大值。NMS算法在不同应用中的具体实现不太一样,但思想是一样的。04非极大值抑制目标检测的过程中在同一目标的位置上会产生大量的候选框,这些候选框相互之间可能会有重叠,此时我们需要利用非极大值抑制找到最佳的目标边界框,消除冗余的边界框。04非极大值抑制而非极大值移植就是选择其中置信度最大,并去除像素点较少的框。04非极大值抑制非极大值抑制,在计算机视觉任务中得到了广泛的应用,例如边缘检测、人脸检测、目标检测(DPM,YOLO,SSD,FasterR-CNN)等。04非极大值抑制04知识储备手掌关键点介绍21非极大值抑制3图片的仿射变化4置信度与置信区间5边缘填充算法和np.pad()函数图像的几何变换主要包括:平移、缩放、旋转、仿射、透视等等。图像变换是建立在矩阵运算基础上的,通过矩阵运算可以很快的找到不同图像的对应关系。04图片的仿射变化图像的几何变换主要分为三类:刚性变换、仿射变换和透视变换。04图片的仿射变化仿射变换是建立在转至矩阵叉乘基础上以实现图像的平移、缩放、旋转、仿射、透视变换的方法。04图片的仿射变化04知识储备手掌关键点介绍21非极大值抑制3图片的仿射变化4置信度与置信区间5边缘填充算法和np.pad()函数我们先探究一个问题04置信度与置信区间假设你想知道美国有多少人热爱足球。为了得到100%正确的答案,你可以做的唯一一件事是向美国的每一位公民询问他们是否热爱足球。根据维基百科,美国有超过3.25亿的人口。与3.25亿人谈话并不现实,因此我们必须通过问更少的人来得到答案。04置信度与置信区间我们可以通过在美国随机抽取一些人(与更少人交谈)并获得热爱足球的人的百分比来做到这一点,但是我们不能100%确信这个数字是正确的,或者这个数字离真正的答案有多远。04置信度与置信区间所以,我们试图实现的是获得一个区间,例如,对这个问题的一个可能的答案是:「我95%相信在美国足球爱好者的比例是58%至62%」。这就是置信区间和置信度名字的来源,我们有一个区间,并且我们对它此一定的信心。04置信度与置信区间置信度:也称可靠度,置信水平,即估计值与总体参数在一定允许的误差范围以内,其相应的概率有多大,这个相应的概率称作置信度。置信区间:置信区间是由样本(总体样本,不是真实样本)构造的对总体参数估计的一个区间,每一个置信区间会对应一个置信水平,表示真实参数落在置信区间中的概率。置信区间随着置信度的变化而变化。职业能力目标01任务描述与要求02任务分析与计划03知识储备04任务实施05任务检查与评价06任务小结07任务拓展08任务二基于rknn的手掌检测05在做模型转换之前,需要搭建环境,安装所需的Python依赖包,手动安装以下依赖包:opencv-python==4.5.5.62certifi==2021.10.8matplotlib==3.1.0pillow==5.3.0thirdparty/rknn_toolkit-1.7.1-cp36-cp36m-linux_x86_64.whl

安装依赖在命令行中,安装依赖包可以写一个或多个包同时安装任务实施05任务实施导入依赖包安装完依赖一定不要忘记导入哦!importcv2importnumpyasnpfrommatplotlibimportpyplotaspltfromPILimportImageimportcsvfromrknn.apiimportRKNNfromsrc.miscimportnon_max_suppression_fast,_get_hand_source_points,_coordinate_affine,_draw_palm,printSoursePoints,printDetectedPoints,printDetectedTangle,printAllTureIndex,printAllAnchorsTangle05rknn模型加载frame=cv2.imread('./images/liuxiang.jpg')im2=cv2.cvtColor(frame,cv2.COLOR_RGB2BGR)plt.imshow(im2)rknn模型载入函数任务实施05rknn模型加载任务实施加载模型./models/palm_detectionu8.rknn,并初始化运行时加载模型./models/hand_landmarku8.rknn,并初始化运行时读取锚点文件./models/anchors.csv,用于被识别图像的区域划分05输入图片预处理任务实施为原图补padding,时图片变为正方形缩放图片为256*256大小将图片存储空间保存为地址连续空间执行成功输出预处理后的图片,如下图:05手掌目标检测(CPU模拟rk3399pro的情况下运算速度较慢)任务实施下图是手掌检测的关键点坐标(显示的数字的坐标,为keypoints数组的偏移量所指向的元素)执行成功后打印05模型置信度计算任务实施将模型输出结果out_clf转换为概率执行成功输出:以第0个结果为例:整数值-23.71446,转概率值5.02274e-11。表示成功,之后标记所有置信度大于0.5的位置执行成功输出:148714891549155015511552155316141615161705获得置信度满足要求的手掌识别结果任务实施执行成功后,打印N*18尺寸的数组,每一个18长度的子项表示一个置信度大于0.5的识别结果。candidate_detect=out_reg[detecion_mask]

print(candidate_detect)获得置信度满足要求锚点位置信息执行成功后,打印N*4尺寸的数组,每一个4长度的子项表示一个置信度大于0.5的锚点信息。candidate_anchors=anchors[detecion_mask]print(candidate_anchors)05获得置信度满足要求置信度实际数值任务实施执行成功后,一系列置信度大于0.5的实际置信度数字集合probabilitiesUsable=probabilities[detecion_mask]print(probabilitiesUsable)05获得所有置信度大于0.5的预选框信息任务实施执行成功后,打印一系列预选框在原图中的位置尺寸信息,并在原图中打印出来使用非极大值抑制,得出最终手掌所在的位置执行成功打印图片,为非极大值抑制后的图片显示结果,如下图05在原图中打印手掌检测的最终结果任务实施使用非极大值抑制,所确定的最佳输出,打印该结果下,手掌目标检测的7个关键点坐标,如下图:05获得手掌的精确范围和放向任务实施基于上一步骤得到的手掌检测结果,我们通过如下步骤,计算手掌反射变换所需要的3个点的坐标source通过手掌目标检测的结果,我们可以使用0和2坐标可以得到左图红色向量我们将向量乘以1.5并加上掌心2点的坐标,可以得到有图方向一致大小为原来1.5倍的绿色向上的向量,并得到此绿色向量终点的坐标。我们将左图中的向量做90度逆时针旋转,可以达到图中指向左侧的绿色向量,并得到此绿色向量终点的坐标05任务实施如果执行成功,我们将得到source的3个手掌范围范围坐标如下:[[57.75703178.80229][57.75703121.95381][0.90854454178.80229]]并将这三个点的坐标打印到原图中,如下图:05截取检测到的手掌图片并展示任务实施使用仿射变换截取手掌图片,如下图:并打印通过反射变换截取到的手掌图片,如下图:05检测手掌的指关节坐标任务实施检测并绘制手掌的21个坐标点,坐标对应关系和输出结果如下:下图是手掌关节检测的关键点坐标(数字为keypoints数组的偏移量),如下图:职业能力目标01任务描述与要求02任务分析与计划03知识储备04任务实施05任务检查与评价06任务小结07任务拓展08任务二基于rknn的手掌检测任务检查与评价06序号评价内容评价标准分值得分1知识运用(20%)掌握相关理论知识,理解本次任务要求,制定详细计划,计划条理清晰,逻辑正确(20分)20分

理解相关理论知识,能根据本次任务要求、制定合理计划(15分)了解相关理论知识,有制定计划(10分)无制定计划(0分)2专业技能(40%)很好的完成环境的配置,对手掌的目标检测,对得到的锚点框使用仿射变换,对手掌区域的图像进行平移,旋转,缩放和截取,对手掌关节节点检测,并标记输入截取到的手掌数据。(40分)40分

完成环境的配置,对手掌的目标检测,对得到的锚点框使用仿射变换,对手掌区域的图像进行平移,旋转,缩放和截取。(30分)完成环境的配置,对手掌的目标检测,对得到的锚点框使用仿射变换。(20分)完成环境的配置,对手掌的目标检测。(10分)没有完成环境的配置,对手掌的目标检测。(0分)3核心素养(20%)具有良好的自主学习能力、分析解决问题的能力、整个任务过程中有指导他人(20分)20分

具有较好的学习能力和分析解决问题的能力,任务过程中无指导他人(15分)能够主动学习并收集信息,有请教他人进行解决问题的能力(10分)不主动学习(0分)4课堂纪律(20%)设备无损坏、设备摆放整齐、工位区域内保持整洁、无干扰课堂秩序(20分)20分

设备无损坏、无干扰课堂秩序(15分)无干扰课堂秩序(10分)干扰课堂秩序(0分)总得分1、请参照评价标准完成自评和对其他小组的互评。2、各组请代表分析本组任务实施经验。职业能力目标01任务描述与要求02任务分析与计划03知识储备04任务实施05任务检查与评价06任务小结07任务拓展08任务二基于rknn的手掌检测任务小结07职业能力目标01任务描述与要求02任务分析与计划03知识储备04任务实施05任务检查与评价06任务小结07任务拓展08任务二基于rknn的手掌检测任务拓展08尝试利用手掌的检测完成,设计一个门禁系统。1进入者要做出对应的手部动作,门禁才能打开。根据上述内容完成拓展。解题

思路提示任务要求2完整叙述出操作流程谢谢大家学习项目五基于TFLite的手掌检测模型部署边缘智能计算应用任务三手掌检测在嵌入式设备中的部署和运行边缘智能计算应用职业能力目标01任务描述与要求02任务分析与计划03知识储备04任务实施05任务检查与评价06任务小结07任务拓展08任务三手掌检测在嵌入式设备中的部署和运行了解模型部署相关流程。掌握手掌检测在嵌入式设备中的部署和运行。职业能力目标01知识目标技能目标职业能力目标01任务描述与要求02任务分析与计划03知识储备04任务实施05任务检查与评价06任务小结07任务拓展08任务三手掌检测在嵌入式设备中的部署和运行

此任务要求首先要将模型进行保存与工程打包,接着使用MobaXterm工具将工程下载到嵌入式开发板中,最后进行工程代码的解压与运行,得到检测结果。任务描述任务要求完成模型的保存与工程打包;掌握MobaXterm工具的使用;完成下载工程到开发板中。任务描述与要求02职业能力目标01任务描述与要求02任务分析与计划03知识储备04任务实施05任务检查与评价06任务小结07任务拓展08任务三手掌检测在嵌入式设备中的部署和运行任务分析MobaXterm软件是如何实现将工程文件下载到开发板的?如何使用工程代码进行解压和运行?任务分析与计划03任务计划表项目名称基于TFLite的手掌检测模型部署任务名称手掌检测在嵌入式设备中的部署和运行计划方式自主设计计划要求请用8个计划步骤来完整描述出如何完成本次任务序号任务计划1

2

3

45678通过上面的思考,你是否对本任务要完成的工作有所了解?让我们一起来制订完成本次任务的实施计划吧!任务分析与计划03职业能力目标01任务描述与要求02任务分析与计划03知识储备04任务实施05任务检查与评价06任务小结07任务拓展08任务三手掌检测在嵌入式设备中的部署和运行手部关键点204知识储备手势识别1MediaPipeHands304手势识别在计算机科学中,手势识别是通过数学算法来识别人类手势的一个议题。手势识别可以来自人的身体各部位的运动,但一般是指脸部和手的运动。04手势识别用户可以使用简单的手势来控制或与设备交互,让计算机理解人类的行为。其核心技术为手势分割、手势分析以及手势识别。04手势识别手势无论是静态或动态,其识别顺序首先需进行图像的获取手的检测和分割手势的分析,然后进行静态或动态的手势识别。04手势识别手势分割是手势识别过程中关键的一步,手势分割的效果直接影响到下一步手势分析及最终的手势识别。目前最常用的手势分割法主要包括基于单目视觉的手势分割和基于立体视觉的手势分割。04手势识别手势分析是完成手势识别系统的关键技术之一。通过手势分析,可获得手势的形状特征或运动轨迹。手势的形状和运动轨迹是动态手势识别中的重要特征,与手势所表达意义有直接的关系。04手势识别手势识别是将模型参数空间里的轨迹(或点)分类到该空间里某个子集的过程,其包括静态手势识别和动态手势识别,动态手势识别最终可转化为静态手势识别。04手势识别手势识别应用场景家庭娱乐智能驾驶智能穿戴手部关键点204知识储备手势识别1MediaPipeHands3MediaPipeHands是一种高保真手和手指跟踪解决方案,它采用机器学习(ML)仅从单个帧中推理出手部的21个3D坐标04MediaPipeHands当前最先进的方法主要依赖于强大的算力,而使用MediaPipe提供的解决方案实现了在手机上进行实时检测的性能,甚至可以同时辨识到多只手。04MediaPipeHandsMediaPipe框架将在未来被广泛地研发,更多的开发者也将加入到此行列中对手部识别和模拟应用进行开发。04MediaPipeHands手部关键点204知识储备手势识别1MediaPipeHands3在计算机视觉领域中,手势识别被广泛应用于人机交互、手语识别等场景中,而手势识别依赖于手部关键点检测,并且随着移动终端和移动互联网的普及,手势识别也广泛应用于移动终端中。04手部关键点04手部关键点04手部关键点识别是指对于任何一幅给定的图像,如果图像中有手,则定位手的21个关键点的位置,每个关键点的位置用它在图像中的横纵坐标表示;这21个关键点包括大拇指、食指、中指、无名指、小拇指的指尖、指间关节,以及手心,不区分左右手;21个关键点在手上的位置分布如图所示:手部关键点04指尖识别是指只对伸出食指这种手势的食指指尖进行定位的技术,是一种特殊的手部关键点识别;手部关键点04手部关键点检测图片中的手部并返回坐标信息,精准定位食指指尖、及4个辅助关键点的坐标位置。04手部关键点给定任意的图片,如果其中手势的类别是伸出食指,那么返回指尖的位置,其中位置用横纵坐标表示;04手部关

温馨提示

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

评论

0/150

提交评论