深度学习与图像处理(PaddlePaddle版)课件7.关键点检测_第1页
深度学习与图像处理(PaddlePaddle版)课件7.关键点检测_第2页
深度学习与图像处理(PaddlePaddle版)课件7.关键点检测_第3页
深度学习与图像处理(PaddlePaddle版)课件7.关键点检测_第4页
深度学习与图像处理(PaddlePaddle版)课件7.关键点检测_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

第7章关键点检测微课视频PaddlePaddlePaddleDetection主讲人:钱彬内容安排任务概述01.算法原理02.算法研发03.移动端部署安卓Java推理04.PART01任务概述任务概述01输入是一张包含目标的图像,比如人脸图像、人体图像或手部图像,输出是一组预先定义好的关键点坐标关键点检测关键点检测算法可以分为两大类:回归法(regression)和热图法(heatmap)回归法任务概述01本章将使用PaddleDetection套件中的关键点检测算法PPTinyPose来完成身份证图像矫正任务,识别出身份证区域的左上角、右上角、右下角、左下角共4个关键点(顺时针方向),即可得到一个用于标准化形变处理的透视变换矩阵,进而完成图像矫正

身份证识读APP热图是将关键点输出为与原始图片对应的热图关键点检测热图法PART02PPTinyPose算法原理PPTinyPose算法原理----Lite-HRNet骨干网络算法02相比于原始的HRNet,SmallHRNet模型减少了网络的深度和宽度1.原始的Lite-HRNetLite-HRNet使用一种名为ShuffleBlock的子模块替换SmallHRNet模型中的所有残差模块PPTinyPose算法原理----Lite-HRNet骨干网络算法02研发人员使用轻量化的条件通道加权代替ShuffleBlock中的1×1卷积形成新的网络2.条件通道加权(ConditionalChannelWeighting)PPTinyPose算法原理----数据增强和分布感知坐标表示02PPTinyPose用到了许多种数据增强算法,其中较为突出的是AID(AugmentationbyInformationDropping,信息丢弃)数据增强方法数据增强算法根据最大值和次高值使用经验公式估计关键点位置,只是对应一个粗略位置,提出了基于数理分布统计的DARK方法相比传统经验公式,DARK能将准确率进一步提高1.5%,而且该方法可以作为一个模块,轻松集成到任意的热图关键点算法中分布感知坐标表示方法PPTinyPose算法原理----无偏数据处理02经过数据增强后,最终模型预测的坐标可能跟真值对不上了UDP(UnbiasedDataProcessing,无偏数据处理)是对整个图片坐标系进行了重新定义,提出在连续空间上定义图片无偏数据处理PART03算法研发算法研发----数据集准备03本书资源可获得1.数据采集依次单击菜单栏Edit→CreatePoint,此时进入点标注模式2.数据标注算法研发----数据集准备03importglobimportjsonimportosimportos.pathasospimportshutilimportnumpyasnpclassMyEncoder(json.JSONEncoder):'''自定义json数据格式转换'''defdefault(self,obj):ifisinstance(obj,eger):……3.数据转换labelme2coco_keypoint.py

只需要修改main()函数中参数设置部分的几个参数即可。其中image_input_dir表示图像文件存放目录,json_input_dir表示标注的json文件存放目录,output_dir表示最终生成的数据集存放目录算法研发----算法训练03############全局配置####################use_gpu:true#是否使用GPUlog_iter:5#日志记录间隔save_dir:output#输出结果存放目录snapshot_epoch:10#快照间隔weights:output/config/model_final#最终输出模型权重路径epoch:800#训练轮数num_joints:&num_joints4#关键点数量……1.准备配置文件config.yml配置文件#单卡训练命令如下:pythontools/train.py-cconfig.yml--use_vdl=true#如果使用多卡训练(Windows和Mac下不支持多卡训练),命令如下(以两卡为例)exportCUDA_VISIBLE_DEVICES=0,1python-mpaddle.distributed.launchtools/train.py-cconfig.yml--use_vdl=true……2.训练算法研发----算法训练03pythontools/export_model.py-cconfig.yml--output_dir=output/inference-o\weights=output/model_final3.静态图导出转换完的静态图模型存储在output/inference/config文件夹下,包含model.pdmodel、model.pdiparams、和infer_cfg.yml四个文件。后续的推理部署环节只需要这四个文件即可。算法研发----算法训练034.FastDeploy静态图推理验证pipinstallfastdeploy-python-f/whl/fastdeploy.html选择CPU版的FastDeploy进行安装importfastdeployasfdimportcv2importos#配置模型路径model_dir="./output/inference/config"tinypose_model_file=os.path.join(model_dir,"model.pdmodel")#模型结构文件tinypose_params_file=os.path.join(model_dir,"model.pdiparams")#模型参数文件tinypose_config_file=os.path.join(model_dir,"infer_cfg.yml")#模型配置文件#配置fastdeploy的运行库并加载模型runtime_option=fd.RuntimeOption()……安装完以后编写推理脚本infer.py算法研发----算法训练034.FastDeploy静态图推理验证静态图推理结果PART04移动端部署(安卓Java推理)移动端部署----安卓基础示例程序04程序结构相对比较简单,主逻辑程序和界面程序代码位置如下:主逻辑程序clean_android_demo\app\src\main\java\com\qb\MainActivity.java。界面程序clean_android_demo\app\src\main\res\layout\activity_main.xml。本书提前准备好了一个精简的安卓示例程序clean_android_demo程序基本功能:(1)摄像头拍照支持通过摄像头拍摄图像,并将图像显示在主界面上。(2)相册照片支持从本地手机相册中选择一张图片并显示在主界面上。(3)智能识别移动端部署----配置FastDeploy库04可自行编译也可FastDeploy官网教程下载编译好的JavaSDK库1.下载FastDeploy的SDK库在版本选择上选择带TextAPI、CVAPI的版本最终项目app文件夹的结构目录clean_android_demo/app├──build.gradle├──libs│└──fastdeploy-android-sdk-xxx.aar│└──opencv453-release.aar├──└──src移动端部署----配置FastDeploy库04dependencies{implementationfileTree(dir:'libs',include:['*.aar','*.jar'],exclude:[])//...}2.在安卓项目中配置FastDeploy库clean_android_demo/app中的build.gradle文件,在dependencies字段中引入所有的aar和jar库由于OpenCV库文件和FastDeploySDK库都包含了libopencv_java4.so,两者会造成打包冲突需要在clean_android_demo/app的build.gradle,如右所示android{...//添加下面的内容

packagingOptions{pickFirst'lib/arm64-v8a/libopencv_java4.so'pickFirst'lib/armeabi-v7a/libopencv_java4.so'}sourceSets{main{jniLibs.srcDirs=['libs']}}}移动端部署----编写推理模块041.关键点检测和矫正拷贝模型到app\src\main\assets\keypoints目录下在MainActivity.java主文件头部添加引用为提高推理速度,将模型定义在detect()函数外把关键点检测模型的加载放在MainActivity类的初始化函数onCreate()中在detect()函数中来使用关键点模型进行推理privatevoiddetect(){//读取图像

Bitmapbmtemp;if(fileUri==null){//读取默认图像

bmtemp=BitmapFactory.decodeResource(this.getResources(),R.drawable.test);}else{//读取摄像头或相册中图像

try{bmtemp=……detect()函数代码移动端部署----编写推理模块041.关键点检测和矫正身份证标准尺寸为85.6mm×54.0mm,将身份证最后统一矫正为856×540像素,最终实现效果如图所示移动端部署----编写推理模块042.OCR识读下载并拷贝已训练好的PPOCRv2的静态图模型,该模型包含3个子模型和1个标签文件在MainActivity.java文件中引用OCR模型的相关接口在MainActivity类中定义成员变量ocr_model作为OCR模型的全局推理器在初始化函数onCreate()函数中实现OCR模型的加载在detect()函数中添加PPOCRv2识别代码截取出某个文字区域图像,使用PPOCRv2模型进行识别privatevoiddetect(){//读取图像、关键点检测和矫正

...//识读有效期限

Rectarea=newRect(200,438,594,76);MatroiImg=newMat(img,area);BitmapbmData=Bitmap.createBitmap(roiImg.cols(),roiImg.rows(),Bitmap.Config.ARGB_8888);Imgproc.cvtColor(roiImg,roiImg,Imgproc.COLOR_BGR2RGBA);Utils.matToBitmap(roiImg,bmData);roiImg.release();……具体

温馨提示

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

评论

0/150

提交评论