版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
边缘计算算法SDK应用(基于RockX)边缘智能计算应用人体关键点算法接口应用
边缘智能计算应用职业能力目标01任务描述与要求02任务分析与计划03知识储备04任务实施05任务检查与评价06任务小结07任务拓展08人体关键点算法接口应用
了解人体关键点检测定义和应用场景;了解RockX人体关键点检测算法接口的定义与使用;了解多线程调用算法进行图像识别的知识。掌握USB摄像头采集图像;掌握人体关键点检测算法接口的定义;掌握人体关键点检测算法接口的调用,并识别图片;掌握多线程调用算法进行图像识别。职业能力目标01知识目标技能目标职业能力目标01任务描述与要求02任务分析与计划03知识储备04任务实施05任务检查与评价06任务小结07任务拓展08
人体关键点算法接口应用
此任务的主要内容是了解人体关键点定义和应用场景,RockX人体关键点相关算法接口的定义与使用的相关知识,实现多线程调用算法进行图像识别,通过本次学习,掌握人体关键点算法接口的应用。任务描述任务要求完成RockX人体骨骼关键点检测算法接口的定义与使用;多线程方式实现视频流的人体骨骼点检测。任务描述与要求02职业能力目标01任务描述与要求02任务分析与计划03知识储备04任务实施05任务检查与评价06任务小结07任务拓展08
人体关键点算法接口应用任务分析怎么样实现摄像头对人体关键点的识别?如何使用多线程方式实现视频流的人体骨骼点检测?任务分析与计划03任务计划表项目名称边缘计算算法SDK应用(基于RockX)任务名称人体关键点算法接口的应用计划方式自主设计计划要求请用6个计划步骤来完整描述出如何完成本次任务序号任务计划1
2
3
456通过上面的思考,你是否对本任务要完成的工作有所了解?让我们一起来制订完成本次任务的实施计划吧!任务分析与计划03职业能力目标01任务描述与要求02任务分析与计划03知识储备04任务实施05任务检查与评价06任务小结07任务拓展08
人体关键点算法接口的应用RockX人体关键点检测算法接口的定义与使用204知识储备人体关键点含义和应用场景11人体关键点检测含义2人体关键点检测应用场景0404
人体骨骼关键点检测是计算机视觉的基础性算法之一,在计算机视觉的其他相关领域的研究中都起到了基础性的作用,如行为识别、人物跟踪、步态识别等相关领域。具体应用主要集中在智能视频监控,病人监护系统,人机交互,虚拟现实,人体动画,智能家居,智能安防,运动员辅助训练等等。人体关键点检测含义04人体骨骼关键点检测也称为PoseEstimation,主要检测人体的关节、五官等,通过关键点描述人体骨骼信息。人体关键点检测含义04人体骨架点检测是对图像或者视频中的人体进行主要关节点定位的过程,其作用是服务于人体动作的分类或识别,安全监控,人机交互,数字娱乐,体育分析等领域都离不开对人体动作的分析。因此,对人体骨架点检测的深入研究,有着广阔的应用前景。人体关键点检测含义04实现人体检型,通常采用人体姿态估计(HumanPostureEstimation),即将图片中已经检测到的人体关键点正确联系起来从而实现人体姿态的估计,实现人体的检测。人体关键点通常对应人体上有一定自由度的关节,比如颈、肩、肘、腕、腰、膝、踝等。人体关键点检测含义人体关键点检测描述了人体关键点细粒度的信息,识别人的动作,能够作为行为识别、步态识别、人机交互的基础,人体姿态估计是机器理解图片和视频中的人物行为的关键步骤。04人体关键点检测含义人体关键点,即为人体骨架中与运动强相关的主要骨骼连接点。人体关键点的相对位置反映了人体姿态,刻画了人所处的运动状态。有常规的站立、坐下、行走、跑步、跳跃等动作形态,还有游泳、舞蹈、武术等大范围的体育运动形态。04人体关键点检测含义04图片的数量未知。图片中人与人之间的接触会极大影响识别效率,比如追挡、接触、掩盖。图片中的人数的增加会直接导致计算的复杂度提高。由于人体具有相当的柔性,会出现各种姿态和形状,而且还面临着遮挡、光照、雾等环境的影响。人体骨骼关键点检测难点人体关键点检测含义04人体骨骼关键点检测方法主要分两周:自上而下和自下而上。自上而下:先检测人体,在检测单人人体关键点。自下而上:先将图片中所有的关键点检测出来,再进行关键点聚类。人体骨骼关键点检测方法人体关键点检测含义1人体关键点检测含义2人体关键点检测应用场景0404(1)用于检测儿童或者老人是否突然摔倒,人体是否由于碰撞或疾病造成摔倒(2)用于体育、健身和舞蹈等肢体相关的教学和核对(3)用于理解人体的明确的肢体信号和指示(如机场跑道信号、交警信号、航海旗语等)(4)用于协助进行姿态保持和保证(如学生课堂听讲和学情报告)(5)用于增强安保和监控人体行为(如识别校园学生追打和上下楼梯推搡等行为)运动捕捉虚拟游戏舞蹈教学人体关键点检测应用场景041、人类行为识别:人类行为识别是指在给定的图片或者图片序列中识别出人体的动作意图。人类行为识别是计算机视觉领域一个极其重要的研究方向。人体关键点检测应用场景042、人机交互:人机交互是指设计一种计算机和用户进行信息传递的接口程序。人机交互处于计算机科学,行为科学,设计,媒体研究的交叉点。人体关键点检测应用场景043、服装解析:服装解析是指在一张图像中解析出人体上不同的服装。解析服装的视觉算法具有各种各样的潜在应用价值,更好的理解图像,人物服饰识别,或基于内容的图像检索等。人体关键点检测应用场景044、运动捕捉和增强现实(CGI):通过检测出人体关键点,将人体姿态应用到图形、特效增强、艺术造型等,使用计算机合成技术将相关数据加载在电影人物上。人体关键点检测应用场景045、虚拟游戏:在交互游戏中追踪人体对象的运动,使用人体关键点检测技术来追踪人类玩家的运动,从而利用它来渲染虚拟人物的动作。人体关键点检测应用场景046、训练机器人:人类教练通过演示特定的动作,来教机器人学习这一动作,机器人识别人体关键点,计算如何移动自己的活动关节,来进行相同的动作。人体关键点检测应用场景RockX人体关键点检测算法接口的定义与使用204知识储备人体关键点含义和应用场景1RockX人体关键点检测算法接口的定义与使用04RockX人体关键点相关算法库是集成在核心开发板上的一套python的接口库,可以直接调用。主要包含:人脸检测,人脸特征获取,人体关键点,目标追踪等相关算法RockX人体关键点检测算法接口的定义与使用04人体关键点检测的性能说明:mAP@OKS0.5=0.623表示OKS=0.5时对应的mAP=0.623。MSCOCOval2017是COCO2017KeypointDetectionTask的验证集,共5000张,其中2000多张有关键点。RockX人体关键点检测算法接口的定义与使用04人体关键点位置信息RockX人体关键点检测算法接口的定义与使用04人体关键点位置信息检测之前的照片RockX人体关键点检测算法接口的定义与使用04人体关键点位置信息检测之后的照片目标检测结果用蓝框框表示,表明目标检测为人的概率为1.0。然后17个关键点都可见且用红点表示出来。旁边是红点的编号,从1~17。职业能力目标01任务描述与要求02任务分析与计划03知识储备04任务实施05任务检查与评价06任务小结07任务拓展08
人体关键点算法接口的应用05任务实施多线程方式实现视频流的人体骨骼点检测2RockX人体骨骼关键点检测算法接口的定义与使用142加载图片数据1导入相关的库3加载图片数据调用人体骨骼点检测函数RockX人体骨骼关键点检测算法接口的定义与使用05RockX人体骨骼关键点检测算法接口的定义与使用画出人体的骨骼点位和骨骼点连线5RockX人体骨骼关键点检测算法接口的定义与使用05下面通过人体骨骼点检测实验,利用opencv采集图片,识别图片中的目标物体,来诠释RockX人体骨骼点检测算法接口的定义和使用RockX人体关键点相关算法接口的定义与使用05importtime#时间库importcv2#引入opencv图像处理库fromrockximportRockX#引入车牌识别算法接口库1导入相关的库RockX人体骨骼关键点检测算法接口的定义与使用05图片使用OpenCV利用摄像头采集一张图片,或者使用OpenCV读取现有的图片,这里使用读取摄像头的方式2加载图片数据RockX人体骨骼关键点检测算法接口的定义与使用05cap=cv2.VideoCapture(0)time.Sleep(2)cap.set(cv2.CAP_PROP_FRAME_WIDTH,640)cap.set(cv2.CAP_PROP_FRAME_HEIGHT,480)dWindow('image_win',flags=cv2.WINDOW_NORMAL|cv2.WINDOW_KEEPRATIO)ret,frame=cap.read()cv2.imshow('image_win',frame)cv2.waitKey(200)cv2.imwrite("图片名称",frame)cap.release()cv2.destroyAllWindows()2加载图片数据读取一张图片利用OpenCV打开摄像头采集一张图片,在之前的章节有介绍,例如以下案例:RockX人体骨骼关键点检测算法接口的定义与使用05importipywidgetsaswidgets#jupyter画图库fromIPython.displayimportdisplay#jupyter显示库imgbox=widgets.Image()#定义一个图像盒子,用于装载图像数据display(imgbox)#将盒子显示出来imgbox.value=cv2.imencode('.jpg',image_pose)[1].tobytes()#把图像值转成byte类型的值2加载图片数据(2)显示读取的图片利用以下函数显示读取的图片RockX人体骨骼关键点检测算法接口的定义与使用05in_img_h,in_img_w,ch=image_pose.shapeprint(in_img_h,in_img_w,ch)2加载图片数据(3)获取图片信息获取图片的长,宽和通道数RockX人体骨骼关键点检测算法接口的定义与使用05在RockX库中,包含了算法各种功能模式,实例化算法为:handle=RockX(功能类型)功能类型:这里采用人体骨骼点检测的功能模式RockX.ROCKX_MODULE_POSE_BODY是人体骨骼点检测功能类型3实例化算法接口RockX人体关键点相关算法接口的定义与使用054调用人体骨骼点检测函数参数说明:in_img:输入图片(numpyndarray)width:图片宽height:图片高pixel_fmt:图片pixelformat为了获取目标的位置,调用人体骨骼点检测函数,通过对图像的检测,识别人体骨骼点的位置信息rockx_pose_body(self,in_img,width,height,pixel_fmt)返回值说明:ret:状态码,0为成功,其他失败results:RockX对象的列表,就是说一张图可能包含多个人体骨骼点对象,每个对象包含了人体骨骼点的位置信息等results[0].points是所有关节点的坐标信息列表,每个关键点包含x,y坐标值RockX人体骨骼关键点检测算法接口的定义与使用055画出人体的骨骼点位和骨骼点连线cv2.circle(img,center,radius,color=(0,255,0),thickness=3)(1)利用OpenCV在图像上画出骨骼点位cv2.circle()的作用是根据坐标,描绘一个简单的圆点,参数依次为:图片,中心点坐标,圆点半径,线条颜色,线条粗细RockX人体关键点相关算法接口的定义与使用055画出人体的骨骼点位和骨骼点连线cv2.line(img,pt1,pt2,color=(0,255,0),thickness=3)(2)利用OpenCV在图像上画出骨骼点连线cv2.line()的作用是根据坐标,描绘一个简单的圆点,参数依次为:图片,起点坐标,结束点坐标,线条颜色,线条粗细RockX人体骨骼关键点检测算法接口的定义与使用055画出人体的骨骼点位和骨骼点连线RockX.ROCKX_POSE_BODY_KEYPOINTS_PAIRS(3)人体骨骼关键点的配对这个是算法自带已经集成在RockX里面的配对列表这里绘画结果,都只采用获取到的第一个人体来说明,也就是results[0],如果有需要多个,数值可用变量代替RockX人体骨骼关键点检测算法接口的定义与使用056将经过算法处理的图像显示importipywidgetsaswidgets#jupyter画图库fromIPython.displayimportdisplay#jupyter显示库imgbox=widgets.Image()#定义一个图像盒子,用于装载图像数据display(imgbox)#将盒子显示出来imgbox.value=cv2.imencode('.jpg',image_pose)[1].tobytes()#把图像值转成byte类型的值(3)人体骨骼关键点的配对利用jupyter的画图库和显示库,来显示获取的图片05任务实施多线程方式实现视频流的人体骨骼点检测2RockX人体关键点相关算法接口的定义与使用142定义摄像头采集线程1引入相关的库3定义算法识别线程调用两个线程,启动视频流的人体骨骼点检测5停止线程多线程方式实现视频流的人体骨骼点检测05多线程方式实现视频流的目标检测根据前面学到的知识点,利用多线程,使图像采集和算法识别同时运行,从而实现视频流的人体骨骼点检测,并且可以避免一些因花时间太久,导致的视频卡顿多线程实现的人体骨骼点检测是针对多个人体的识别和实时画面的捕获。多线程方式实现视频流的人体骨骼点检测05使用线程可以把占据长时间的程序中的任务放到后台去处理。用户界面可以更加吸引人,比如用户点击了一个按钮去触发某些事件的处理,可以弹出一个进度条来显示处理的进度。程序的运行速度可能加快。在一些等待的任务实现上如用户输入、文件读写和网络收发数据等,线程就比较有用了。在这种情况下我们可以释放一些珍贵的资源如内存占用等等。1引入相关的库多线程类似于同时执行多个不同程序,多线程运行有如下优点:多线程方式实现视频流的人体骨骼点检测051引入相关的库importtime#时间库importcv2#引入opencv图像处理库fromlib.ft2importft#中文描绘库importthreading#这是python的标准库,线程库importipywidgetsaswidgets#jupyter画图库fromIPython.displayimportdisplay#jupyter显示库fromrockximportRockX#引入算法库每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。多线程方式实现视频流的人体骨骼点检测052定义摄像头采集线程结合上面的opencv采集图像的内容,利用多线程的方式串起来,形成一个可传参,可调用的通用类。这里定义了一个全局变量camera_img,用作存储获取的图片数据,以便于其他线程可以调用init初始化函数实例化该线程的时候,会自动执行初始化函数,在初始化函数里面,打开摄像头,并设置分辨run函数该函数是在实例化后,执行start启动函数的时候,会自动执行。在该函数里,实现了循环获取图像的内容请说说执行线程的几种方式?多线程方式实现视频流的人体骨骼点检测052定义摄像头采集线程classCameraThread(threading.Thread):def__init__(self,camera_id,camera_width,camera_height):threading.Thread.__init__(self)self.working=Trueself.cap=cv2.VideoCapture(camera_id)#打开摄像头self.cap.set(cv2.CAP_PROP_FRAME_WIDTH,camera_width)#设置摄像头分辨率宽度self.cap.set(cv2.CAP_PROP_FRAME_HEIGHT,camera_height)#设置摄像头分辨率高度代码分析多线程方式实现视频流的人体骨骼点检测05defrun(self):globalcamera_img#定义一个全局变量,用于存储获取的图片,以便于算法可以直接调用whileself.working:try: ret,image=self.cap.read()#获取新的一帧图片,ret为获取的状态值 ifnotret: time.sleep(0.1) continuecamera_img=imageexceptExceptionase: pass defstop(self): self.working=False self.cap.release()多线程方式实现视频流的人体骨骼点检测0523定义算法识别线程结合调用算法接口的内容和图像显示内容,利用多线程的方式整合起来,循环识别,对摄像头采集线程中获取的每一帧图片进行识别,并显示,形成视频流的画面init初始化函数实例化该线程的时候,会自动执行初始化函数,在初始化函数里面,定义了显示内容,并实例化车牌识别run函数该函数是在实例化后,执行start启动函数的时候,会自动执行。在该函数是一个循环,实现了对采集的每一帧图片进行算法识别,然后将结果绘画在图片上,并将处理后的图片显示出来多线程方式实现视频流的人体骨骼点检测05调用两个线程,启动视频流的人体骨骼点检测camera_th=CameraThread(0,640,480)camera_th.start()face_detect_th=FaceDetectThread()face_detect_th.start()实例化两个线程,并启动这两个线程,实现完整的目标功能,运行时,加载模型比较久,需要等待几秒多线程方式实现视频流的人体骨骼点检测055停止线程obj_detect_th.stop()camera_th.stop()为了避免占用资源,需要停止摄像头采集线程和算法识别线程,或者重启内核职业能力目标01任务描述与要求02任务分析与
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 服装企业零星改造施工安全管理细则
- 竞买人权益保护法律法规解读
- 跨海大桥海上施工应急救援预案
- 心灵的慰藉:心理护理的关怀
- 护理安全与安全管理
- 护理团队协作精神
- Furin-IN-3-生命科学试剂-MCE
- 导尿管道护理的基本原则与实践
- FMJ-01-054-生命科学试剂-MCE
- 2025年无人机管制系统安全加固
- 2024算力中心冷板式液冷发展研究报告
- 煤炭企业组织结构的创新
- 装配式建筑装饰装修技术 课件 模块三 装配式吊顶
- 新青岛版-二年级下册数学-口算题
- 2024年福建省莆田市初中毕业班质量检查二模英语试卷
- 十大零容忍培训
- 药物不良反应培训讲义
- 汉语写作与百科知识样题
- 提高喷射混凝土施工一次验收合格率QC成果
- 2018年山东德州中考英语试卷真题含答案
- 小白船叶圣陶读后感
评论
0/150
提交评论