版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第4章目标检测微课视频PaddlePaddlePaddleDetection主讲人:钱彬内容安排任务概述01.算法原理02.算法研发03.树莓派开发板部署04.PART01任务概述任务概述----任务背景01近几年,随着移动支付和自动化生产的推广,二维码技术得到了广泛的使用。二维码的信息容纳性高,使用便利,可以使用非接触式方式快速实现信息认证交互,因此二维码成为了目前最为普遍的信息交互方式,小至日常购物支付、出入搭乘交通,大至工厂的物流、订单管理都可以见到二维码的身影。典型的工业应用场景就是识别流水线产品的标签,实现物品快速认证和唯一性管理。由于真实工业场景复杂多样,对二维码的识别精准度和时效性提出了更高的要求。对于规范化场景下的二维码识别,目前传统的检测技术可以达到较高的精度,但是一旦拍摄距离、角度或光线发生变化,传统方法就显得力不从心。
二维码检测任务:从深度学习方法切入,使用目标检测方法实现非规范场景下的二维码高精度识别任务概述----安装PaddleDetection套件01近几年,随着移动支付和自动化生产的推广,二维码技术得到了广泛的使用。二维码的信息容纳性高,使用便利,可以使用非接触式方式快速实现信息认证交互,因此二维码成为了目前最为普遍的信息交互方式,小至日常购物支付、出入搭乘交通,大至工厂的物流、订单管理都可以见到二维码的身影。典型的工业应用场景就是识别流水线产品的标签,实现物品快速认证和唯一性管理。由于真实工业场景复杂多样,对二维码的识别精准度和时效性提出了更高的要求。对于规范化场景下的二维码识别,目前传统的检测技术可以达到较高的精度,但是一旦拍摄距离、角度或光线发生变化,传统方法就显得力不从心。
二维码检测任务:从深度学习方法切入,使用目标检测方法实现非规范场景下的二维码高精度识别任务概述----安装PaddleDetection套件01PaddleDetection是飞桨推出的目标检测算法套件,该套件内置了30多种目标检测模型以及250多种预训练模型,打通了数据处理、模型开发、训练、部署等全流程步骤。目前,PaddleDetection已应用于工业、智慧城市、安防、交通、零售、医疗等十余种行业简介安装好深度学习环境:显卡驱动、CUDA、CUDNN、NCCL(可选)安装好PaddlePaddle前提(参考书本2.2节)gitclone/PaddlePaddle/PaddleDetection.gitcdPaddleDetectionpipinstall-rrequirements.txt-i/pypi/simplepythonsetup.pyinstall安装pythonppdet/modeling/tests/test_architectures.py验证
任务概述----安装PaddleDetection套件01PART02算法原理算法原理----目标检测常用概念02xyxy:第一对xy代表了矩形框左上角的坐标,第二对xy表示矩形框右下角的坐标;xywh:xy是矩形框中心点的坐标,w是矩形框的宽度,h是矩形框的高度。边界框(BoundingBox)真实框一般由人工标注获得真实框(GroundTruthBox)预测结果计算所得的边界框称为预测框预测框(PredictionBox)预先人为设定好大小和比例的矩形框锚框(AnchorBox)算法原理----目标检测常用概念02交并比(IntersectionofUnion,IoU)算法原理----RCNN算法02训练繁琐空间特征失真特征提取模块独立存在的缺陷算法原理----FastRCNN算法02尽管FastRCNN算法大幅提升了检测速度,但是整个检测流程中的候选框生成依然使用选择性搜索算法,在候选框生成上速度较慢。算法原理----FasterRCNN算法02特征提取模块RPN生成模块RoI池化模块分类回归模块主要包括4个部分算法原理----YOLOv3算法02骨干网络FPNHEAD主要包括3个部分算法原理----YOLOv3算法021.骨干网络Darknet53整体结构图算法原理----YOLOv3算法022.FPN模块结构算法原理----YOLOv3算法023.网络Head——检测头算法原理----YOLOv3算法024.网络真值的生成(1)产生候选锚框(2)生成预测框(3)生成网络输出真实值算法原理----PicoDet算法021.ESNET骨干网络(a)步幅为1(a)步幅为2算法原理----PicoDet算法022.特征融合和检测头算法原理----PicoDet算法023.标签分配策略SimOTA首先根据中心点的先验信息计算候选区域,然后得到候选区内真值跟预测框的IoU数值,之后对每个真值框的n个最大的IoU求和获得参数k,最终通过计算候选区内所有预测框跟真值框的损失作为代价矩阵。对于每个真值框,选k值最小对应的锚框作为正样本4.其他优化策略H-Swish激活函数损失函数优化函数数据增强PART03算法研发算法研发----目标检测数据集常用格式介绍031.VOC数据格式介绍├──label_list.txt├──trainval.txt├──test.txt├──VOCdevkit/VOC2007│├──annotations│├──001789.xml│|...│├──JPEGImages│├──001789.jpg……VOC数据集组织结构如下:其中label_list.txt是类别名称列表,trainval.txt是训练和验证数据集文件列表VOC数据集的xml标注文件典型形式如下所示: <filename>001234.jpg</filename> <source>
…… </source> <owner> …… </owner> <size> <width>260</width> <height>500</height> <depth>3</depth> </size> <segmented>0</segmented> <object>
…… <bndbox> <xmin>1</xmin>
…… </bndbox> </object>算法研发----目标检测数据集常用格式介绍031.COCO数据格式介绍{"file_name":"000000391895.jpg",#图像文件名"height":360,#图像高度"width":640,#图像宽度"id":391895#图像唯一标识号}images表示标注文件图像信息列表{"segmentation":[]#分割信息"num_keypoints":17,#关键点个数"keypoints":[x1,y1,vis1,···],
#关键点坐标信息"area":2765.1486500000005,#面积"iscrowd":0,#是否密集"image_id":1,#标注图像的ID号"bbox":[199.84,200.46,77.71,70.88],#检测框坐标,形式为xywh"category_id":1,#标注对象类别号"id":156#标注信息唯一标识号}annotations段落表示标注文件中目标物体的标注信息列表算法研发----使用Labelme制作自己的二维码检测数据集031.安装Labelme#安装pyqtpipinstallpyqt5-i/pypi/simple#安装labelmepipinstalllabelme-i/pypi/simple#启动:labelmelabelme安装与启动算法研发----使用Labelme制作自己的二维码检测数据集032.使用Labelme进行标注依次单击菜单栏Edit→CreateRectangle,此时进入矩形框标注模式,鼠标形状变成了十字标志。使用拖拉的方式对目标物体进行框选算法研发----Labelme格式转换成COCO格式03pythontools/x2coco.py\--dataset_typelabelme\#原始数据格式--json_input_dir./dataset/qr/labels/\#json文件路径--image_input_dir./dataset/qr/imgs/\#图片路径--output_dir./dataset/qr_coco/\#标注文件输出路径--train_proportion0.85\#训练集占比--val_proportion0.1\#验证集占比--test_proportion0.05#测试集占比使用转换命令进行转换上述代码在转换过程中同时进行了数据拆分:训练集占比85%、验证集占比10%、测试集占比5%。算法研发----算法训练03数据集下载将该数据集转换成COCO格式将转换完的数据集放置在PaddleDetection/dataset1.数据集准备算法研发----算法训练03############################数据集设置#######################################metric:COCO#数据类型,用于评价算法性能num_classes:1#数据集的类别数(本章任务中只有二维码1个类别)TrainDataset:name:COCODataSet#数据集类型,VOC、COCO等image_dir:train#训练集图像数据路径,相对于dataset_dir的路径anno_path:annotations/instance_train.json#标注文件路径,相对dataset_dir的路径dataset_dir:dataset/qr_coco#数据文件夹相对路径,data_fields:['image','gt_bbox','gt_class','is_crowd']#使用的标注项目EvalDataset:name:COCODataSet#数据集类型,VOC、COCO等image_dir:val#验证集图像数据路径,相对于dataset_dir的路径anno_path:annotations/instance_val.json#标注文件路径,相对dataset_dir的路径dataset_dir:dataset/qr_coco#数据文件夹相对路径allow_empty:true#是否允许为空2.准备配置文件config.yml算法研发----算法训练03TestDataset:name:ImageFolderanno_path:annotations/instance_test.json#标注文件路径,相对dataset_dir的路径dataset_dir:dataset/qr_coco#测试集数据文件夹相对路径############################运行时设置#######################################use_gpu:true#是否使用gpu……############################优化器设置#######################################epoch:300#总训练轮数LearningRate:base_lr:0.32……############################模型设置#######################################architecture:PicoDet#模型名字……2.准备配置文件config.yml算法研发----算法训练03#GPU单卡训练命令如下pythontools/train.py-cconfig.yml--use_vdl=true--eval#GPU多卡训练命令如下(以两卡为例)exportCUDA_VISIBLE_DEVICES=0,1#GPU编号为0和1python-mpaddle.distributed.launch--gpus0,1tools/train.py-cconfig.yml\--use_vdl=true--eval3.启动训练算法研发----算法训练03pythontools/infer.py-cconfig.yml\--infer_img=./dataset/qr_coco/test/QR-00034.jpg\--output_dir=./output/\--draw_threshold=0.5\-oweights=output/best_model4.推理测试算法研发----算法训练03pythontools/export_model.py-cconfig.yml--output_dir=./output/inference\-oweights=./output/best_modelpythondeploy/python/infer.py--model_dir=./output/inference/config\--image_dir=./dataset/qr_coco/test--device=GPU5.动态图转静态图PART04树莓派开发板部署(LinuxCPU推理)树莓派开发板部署04树莓派(RaspberryPi)是为学生计算机编程教育而设计的微型电脑,由英国慈善组织RaspberryPi基金会开发,于2012年3月正式发售。树莓派又称卡片式电脑,基于ARM架构,系统为Linux,以MicroSD卡为内存硬盘,卡片主板周围有若干个USB接口和一个以太网接口,可连接键盘、鼠标和网线,同时拥有Wi-Fi和HDMI高清视频输出接口,以上部件全部整合在一张仅比信用卡稍大的arm主板上,具备所有PC端的基本功能,只需接通显示器和键盘,就能处理表格、玩游戏、上网、播放视频等诸多功能
目前FastDeploy还不支持32位操作系统,因此需要给树莓派安装64位的操作系统,推荐使用的树莓派操作系统是UbuntuDesktop23.10(64-bit)树莓派开发板部署----树莓派上Python推理041.参考3.4.2节中介绍的编译方法编译FastDeploy库本书配套资源中提供了编译好的FastDeploy库可以直接安装
pip3install./fastdeploy_python-0.0.0-cp311-cp311-linux_aarch64.whl-i/simple2.安装zbar和opencv对应的Python库sudoaptinstalllibzbar-devpip3installpyzbaropencv-python-i/pypi/simple3.给树莓派接上USB摄像头(插入到USB3.0接口上),拷贝静态图模型树莓派开发板部署----树莓派上Python推理044.新建infer脚本进行推理
importcv2importnumpyasnpimportfastdeployasfdimportpyzbar.pyzbaraspyzbar#创建摄像头捕捉器并设置采集分辨率cap=cv2.VideoCapture(0)cap.set(cv2.CAP_PROP_FRAME_WIDTH,640)cap.set(cv2.CAP_PROP_FRAME_HEIGHT,480)#创建窗口window_handle=dWindow("QRDetection",cv2.WINDOW_AUTOSIZE)#配置算法模型的runtimeoption=fd.RuntimeOption()……infer.py完整代码如下(deploy/python/infer.py)
树莓派开发板部署----树莓派上Python推理04这是因为FastDeploy本身是依赖OpenCV的,此时没有将OpenCV依赖的so文件拷贝到树莓派环境变量中,导致运行时相关依赖文件缺失。只需要将FastDeploy中自带的第三方OpenCV库文件拷贝到树莓派的/usr/lib文件夹中即可。5.报错处理运行上述代码后可能会遇到下述错误:error:"libopencv_flann.so.3.4:cannotopensharedobjectfile:Nosuchfileordirectory"运行效果树莓派开发板部署----树莓派上C++推理041.下载C++版FastDeploy库树莓派开发板部署----树莓派上C++推理042.在树莓派上安装C++编译环境安装编译环境:gcc、g++、gdb(调试器)接下来安装clang(编译器)、llvm(编译器)、lldb(调试器)再安装cmake编译工具以及树莓派摄像头驱动库最后,为了能方便在树莓派上编写和编译C++代码,本书推荐在树莓派上安装Qt。树莓派开发板部署----树莓派上C++推理043.编译C++版的OpenCVSDK库安装一些编译OpenCV所依赖的工具sudoapt-getinstalllibgtk2.0-devpkg-configlibswscale-devlibjpeg-devlibpng-devlibtiff-dev下载OpenCV3.4.14的Sources源码解压缩以后进入opencv-3.4.14目录,进行编译mkdirbuildcdbuildcmake..sudomakesudomakeinstall需要注释掉FastDeploy的cmake文件中相关内容树莓派开发板部署----树莓派上C++推理044.安装C++版zbar库安装命令如下sudoaptinstalllibzbar-dev准备一个FindZBar.cmake文件,导入到cmake树莓派开发板部署----树莓派上C++推理045.完整C++程序开发单击NewProject按钮来创建一个C++项目选择项目路径选择编译器拷贝FindZBar.cmake文件拷贝修改CMakeLists.txt文件(deploy/cplusplus/CMakeLists.tx
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- JJF 2479-2026轮廓标耐密封测量装置校准规范
- 高纯试剂工安全素养考核试卷含答案
- 汽车回收工5S执行考核试卷含答案
- 激光设备安装调试员风险评估与管理知识考核试卷含答案
- 粪便清运工班组考核测试考核试卷含答案
- 客运计划员测试验证评优考核试卷含答案
- 劳务派遣管理员岗中专业素质考核试卷含答案
- 光伏组件制造工岗前理论评估考核试卷含答案
- 地理信息建库员创新方法知识考核试卷含答案
- 无轨电车架线工安全意识模拟考核试卷含答案
- 2026年广东省国家工作人员学法用法考试通-用题库及答案
- 2026年辽宁省大连市辅警人员招聘考试试题及答案
- 2026新人教版二年级上册小学数学教学计划附教学进度表教案
- 金蝶云星空总账初始化操作手册
- 新版2026秋新人教版五年级上册语文全册教案合集
- 新苏教版科学五年级上册 3.9《弹力》教学课件
- 2025年新交安安全员b证考试题库及答案
- 水利水电工程单元工程施工质量检验表与验收表(SLT631.5-2025)
- 宅基地制度改革试点档案
- 《管理学》(第二版)课件全套 高教版马工程 第0-16章 绪论 - 组织变革与创新
- GB/T 18506-2013汽车轮胎均匀性试验方法
评论
0/150
提交评论