深度学习与图像处理(PaddlePaddle版)课件5.语义分割_第1页
深度学习与图像处理(PaddlePaddle版)课件5.语义分割_第2页
深度学习与图像处理(PaddlePaddle版)课件5.语义分割_第3页
深度学习与图像处理(PaddlePaddle版)课件5.语义分割_第4页
深度学习与图像处理(PaddlePaddle版)课件5.语义分割_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

第5章语义分割微课视频PaddlePaddlePaddleSeg主讲人:钱彬内容安排任务概述01.算法原理02.算法研发03.QtC++桌面客户端部署04.PART01任务概述任务概述----任务背景01本章将基于语义分割技术开发一款用于PC桌面应用的证件照制作工具,可以让用户方便的制作出不同颜色背景的标准证件照片。

证件照制作将图像中的每个像素划分到一组预定义的语义类别中语义分割PaddleSeg是基于PaddlePaddle的图像语义分割算法套件,内置了众多前沿的语义分割算法和预训练模型,支持全流程的数据标注、模型训练、验证和部署等功能,可以有效助力语义分割算法在医疗、工业、遥感、娱乐等场景的应用落地简介任务概述----安装PaddleSeg套件01安装好深度学习环境:显卡驱动、CUDA、CUDNN、NCCL(可选)安装好PaddlePaddle前提(参考书本2.2节)gitclone/PaddlePaddle/PaddleSeg.gitcdPaddleSegpipinstall-v-e.安装任务概述----安装PaddleSeg套件01PART02算法原理算法原理----FCN算法02解决了像素分割问题从分割精度上发现:FCN-32s<FCN-16s<FCN-8s,可以看出使用多尺度特征融合有利于提高分割准确性算法原理----UNet算法02形状类似于一个大写的U形字母能够适应小数据集在多个尺度上实现图像特征提取算法原理----HRNet算法02以高分辨率子网络为起点,逐步并行增加低分辨率子网络分支。同时,多次引入多尺度融合,使得多分辨率子网络信息反复融合,最终能够得到丰富的高分辨率表示特征高、中、低分辨率特征融合算法原理----OCRNet算法02解决语义分割上下文信息缺失难题包括三个阶段:形成软物体区域(SoftObjectRegions)计算物体区域表示(ObjectRegionRepresentations)得到物体上下文特征表示和上下文信息增强的特征表示(AugmentedRepresentation)最终获得较高的精度,本章将使用OCRNet算法PART03算法研发算法研发----数据集准备03来源:论文《PrivacyPreservingPortraitMatting》规模:10421张人像照片以及对应的真值掩码图P3M_10k算法研发----数据集准备03importosimportcv2#定义数据集目录dataset_folder="./dataset/P3M_10k"alpha_folder=os.path.join(dataset_folder,"alpha")#创建掩码文件夹mask_folder=os.path.join(dataset_folder,"mask")ifnotos.path.exists(mask_folder):os.mkdir(mask_folder)#检索文件alphalist=os.listdir(alpha_folder)数据集转换:原始标注灰度值范围为0~255,需要将该数据集的掩码图像制作成只有0和1两个值的灰度图,其中0表示背景,1表示人像(convert_mask.py)算法研发----数据集准备03#循环处理thr=50forimgnameinalphalist:print("开始处理图像:"+imgname)#读取alpha图像imgpath=os.path.join(alpha_folder,imgname)alpha=cv2.imread(imgpath,cv2.IMREAD_GRAYSCALE)#阈值化alpha[alpha<thr]=0alpha[alpha>=thr]=1#掩码保存maskpath=os.path.join(mask_folder,imgname)cv2.imwrite(maskpath,alpha)数据集转换:原始标注灰度值范围为0~255,需要将该数据集的掩码图像制作成只有0和1两个值的灰度图,其中0表示背景,1表示人像(convert_mask.py)算法研发----数据集准备03pythontools/data/gray2pseudo_color.py./dataset/P3M_10k/mask./dataset/P3M_10k/colormask伪彩色可视化:将黑色的二值掩码图转换成便于肉眼辨识的伪彩色掩码图算法研发----使用Labelme制作自己的语义分割数据集03选择多边形标注模式。具体的,单击菜单栏Edit→CreatePolygons沿着人像(前景)边界逐个单击画点,最后闭合成一个完整的轮廓(结束时要单击第1个点形成闭合曲线)标注区域内有背景时将其标注为_background_类别pythontools/data/labelme2seg.py./photos生成伪码图算法研发----算法训练031.准备配置文件(config.yml)batch_size:4#迭代一次送入网络的图片数量,实际batchsize等于batchsize乘以卡数iters:80000#模型训练迭代的轮数train_dataset:type:Datasetdataset_root:./dataset/P3M_10k#数据集路径train_path:./dataset/P3M_10k/train.txt#训练样本和真值的路径文档num_classes:2#类别数量(包含背景类)mode:train#训练模式,可选train或者val等transforms:#数据增强-type:Resizetarget_size:[512,512]#图片重置大小尺寸,分别为宽和高-type:RandomHorizontalFlip#水平翻转-type:RandomDistort#随机进行亮度、对比度、饱和度变动……算法研发----算法训练032.训练pythontools/train.py--configconfig.yml--do_eval--use_vdl--save_interval1000--save_diroutputexportCUDA_VISIBLE_DEVICES=0,1python-mpaddle.distributed.launchtools/train.py--configconfig.yml--do_eval--use_vdl--save_interval1000--save_diroutput多卡进行训练算法研发----算法训练033.模型评估python-mpaddle.distributed.launchtools/val.py\--configconfig.yml\--model_pathoutput/best_model/model.pdparams运行上述命令后,输出结果如下:[EVAL]#Images:1042mIoU:0.9884Acc:0.9946Kappa:0.9883Dice:0.9941[EVAL]ClassIoU:[0.99150.9852]Kappa系数越高模型质量越好算法研发----算法训练034.动态图预测pythontools/predict.py\--configconfig.yml\--model_pathoutput/best_model/model.pdparams\--image_path./dataset/test_human\--save_diroutput/result算法研发----算法训练035.静态图导出pythontools/export.py\--configconfig.yml\--model_pathoutput/best_model/model.pdparams\--save_diroutput/inference\--input_shape13512512使用静态图推理脚本推理pythondeploy/python/infer.py\--config./output/inference/deploy.yaml\--image_path./dataset/test_humanPART04QtC++桌面客户端部署(WindowsCPU推理)QtC++桌面客户端部署----Qt基础示例程序介绍04

选择Qt的编译器环境切换为Release模式精简的Qt基础示例程序clean_qt_demoQtC++桌面客户端部署----Qt基础示例程序介绍04运行后主界面选择照片制作保存照片QtC++桌面客户端部署----配置并导入FastDeploy库041.下载FastDeploy的SDK库QtC++桌面客户端部署----配置并导入FastDeploy库042.在Qt项目中配置FastDeploy库添加FastDeploy库的头文件和库文件INCLUDEPATH+=C:\fastdeploy_cpu\includeINCLUDEPATH+=C:\fastdeploy_cpu\third_libs\install\opencv\build\includeLIBS+=-LC:\fastdeploy_cpu\lib\-lfastdeployLIBS+=-LC:\fastdeploy_cpu\third_libs\install\opencv\build\x64\vc15\lib\-lopencv_world3416algorithm.h文件添加#include"fastdeploy/vision.h"#include<opencv2/opencv.hpp>usingnamespacecv;QtC++桌面客户端部署----配置并导入FastDeploy库043.编写算法推理模块深度学习模型推理接口MakeIDPhoto(),对输入的照片进行语义分割,然后与新的背景(此处使用蓝色)进行合成QImageMakeIDPhoto(QImageimg){//读取模型automodel_file="inference/model.pdmodel";autoparams_file="inference/model.pdiparams";autoconfig_file="inference//deploy.yaml";autooption=fastdeploy::RuntimeOption();option.UseCpu();automodel=fastdeploy::vision::segmentation::PaddleSegModel(model_file,params_file,config_file,option);……在背景合成部分,采用了抠图(Matting)领域中常用的图像合成方法将Qt的QImage图像类和OpenCV的Mat图像类进行相互转换//cv::Mat转换成QImageQImagecvMat2QImage(constMat&mat){constuchar*pSrc=(constuchar*)mat.data;QImageimage(pSrc,mat.cols,mat.rows,mat.step,QImage::Format_RGB888);returnimage.rgbSwapped();}

温馨提示

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

评论

0/150

提交评论