海云捷讯杯 赛后总结 目标检测——缺陷检测(模型训练部分)

news2024/12/27 6:57:18

      在这次比赛中,本人在队伍中主要负责模型训练部分,所以本文主要讲述如何使用PaddleDetection代码自定义数据集进行目标检测,欢迎大家纠错讨论哦,不胜荣幸~


参考项目:

SSDquexianjiance - 飞桨AI Studio (baidu.com)

感谢大佬!

1.实现平台 飞桨AI Studio

2.数据集制作

VOC数据集目录格式如下:在这里插入图片描述

(如何制作VOC)数据集本文暂时不做讲解。

将标注生成的XML文件存入Annotations,图片存入JPEGImages,训练集、测试集、验证集的划分情况存入ImageSets。 在ImageSets下创建一个Main文件夹,并且在Mian文件夹下建立label_list.txt,里面存入标注的标签。 此label_list.txt文件复制一份与Annotations、ImageSets、JPEGImages同级位置放置。 其内容如下:

2.在Github中下载PaddleDetectionGitHub - PaddlePaddle/PaddleDetection: Object Detection toolkit based on PaddlePaddle. It supports object detection, instance segmentation, multiple object tracking and real-time multi-person keypoint detection.

按我的理解,Paddledetection是训练的辅助工具,等于是写好了大部分代码,我们操作者只需要修改其中参数即可,下载下来后,他是一个压缩包,我们把它解压下来,放在和我们项目NoteBook路径的同一路径,可以方便直接调用。这里如果使用PaddleAIStudio工具也是需要上传PaddleDetection工具包的。(一个偷懒的技巧,因为飞桨AI的项目里,有很多关于Paddledetection的项目,大多是已经配置好的,我们可以在他们的基础上用,省的自己去下载了。)

环境准备

注:由于我是直接在飞桨AI Studio中进行模型训练的,其中关于Paddlede各种环境一般都是配置好的,所以我仅仅做了以下两种操作

#配置python环境变量
%env PYTHONPATH=/home/aistudio/PaddleDetection
#测试项目环境
!export PYTHONPATH=`pwd`:$PYTHONPATH
!python ppdet/modeling/tests/test_architectures.py

 运行结果如下:

如果结果是OK则表示环境OK。这步如果不是OK,那么后面的代码也不用抱有任何侥幸心理了,百分百跑不通的。


开始训练

from paddlelite.lite import *

 选择需要的模型进行训练,本文选用的是ssd_mobilenet_v1

#开始训练
%cd /home/aistudio/PaddleDetection/
!python -u tools/train.py -c configs/ssd/ssd_mobilenet_v1_voc.yml --use_tb=True --eval

跑完结果如图 

查看训练效果

训练完成后输出的模型保存在 ./PaddleDetection/output/ssd_mobilenet_v1_voc 文件夹下,本次训练总轮数默认为28000轮,每隔2000轮保存一次模型,以轮次命名的均为阶段性模型,model_final为训练结束时保存的模型,best_model是每次评估后的最佳mAP模型

注:本文只是讲述如何运用简单运用PaddleDetection进行模型训练,但是要想得到满意的训练结果,需要根据具体情况调整参数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/613971.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

云上高校导航

2023042719 - 云上高校导航 中国大学生计算机设计大赛 广西赛区 软件应用与开发 - 移动应用开发(非游戏类) 三等奖 “云上高校导航”是一套基于小程序云开发的校园导航类系统开发方案。 该开发方案可供开发者进行二次开发,用于解决师生和访客…

MySQL数据库理论基础

数据库-理论基础 1.什么是数据库2.数据库管理系统(DBMS)3.数据库与文件系统的区别4.数据库的发展史5. 常见数据库5.1 关系型数据库5.2 非关系型数据库 6.MySQL简介7. MySQL的特性8.MySQL获取9.MySQL在企业中应用10.MySQL体系结构 1.什么是数据库 数据: 描述事物的符…

Linux 高级篇-定制自己的Linux 系统

Linux 高级篇-定制自己的Linux 系统 基本介绍 通过裁剪现有Linux 系统(CentOS7.6),创建属于自己的min Linux 小系统,可以加深我们对linux 的理解。利用centos7.6,搭建一个小小linux 系统, 很有趣。 基本原理 启动流程介绍: 制…

LeetCode25. K 个一组翻转链表

给你链表的头节点 head ,每 k 个节点一组进行翻转,请你返回修改后的链表。 k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。 你不能只是单纯的改变节点内部的值…

操作系统之IO管理

目录 IO设备的概念和分类 IO控制器 IO控制方式 IO软件层次结构 IO应用程序接口和驱动程序接口 IO核心子系统 假脱机技术 IO设备的分配和回收 缓冲区管理 磁盘的结构 磁盘调度算法 磁盘的管理 固态硬盘 本文内容摘自:5.1_1_I-O设备的概念和分类_哔哩哔哩…

cookie 和 session 的恩恩怨怨

目录 cookie 1. Cookie 从哪里来? 2. Cookie 到哪里去? 3. Cookie 有啥用? Session Session 中的常用方法 模拟实现一个登录页面: session 和 cookie 的最官方的恩恩怨怨 cookie Cookie 是浏览器在本地存储数据的一种机制 1. Cookie 从哪里来? Cookie 从服务器…

chatgpt赋能python:Python如何将两张图片横向拼在一起

Python如何将两张图片横向拼在一起 在网页设计中,有时候需要将两张图片横向拼在一起来达到更好的展示效果。本文将介绍如何使用Python实现这一功能。 前置知识 在使用Python进行图像处理之前,先了解以下几个库: Pillow:Python…

chatgpt赋能python:Python如何取非

Python如何取非 Python是一种强大的编程语言,可以用于许多不同的任务,包括搜索引擎优化(SEO)。在这篇文章中,我们将重点介绍Python如何取非,这对于SEO优化非常重要。 什么是取非? 在SEO中&am…

chatgpt赋能python:Python如何手动安装包:技术向SEO文章

Python如何手动安装包:技术向SEO文章 虽然大多数Python用户都习惯使用pip来安装和管理包,但手动安装包是必要的技能之一。这篇文章将介绍如何使用Python的标准方法手动安装包,并提供实际的指导。 为什么要手动安装包? 有时候&a…

达梦数据库读写分离集群搭建

目录 说明... 3 前期准备... 4 开始搭建读写分离... 5 一、主库200. 5 1、卸载原实例... 5 2、创建新的实例... 6 3、配置主库200. 6 4、启动主库... 8 5、设置OGUID.. 8 二、配置2台备库... 9 1、创建新的实例... 9 2、备份恢复(初始化实例后应该先备份…

VS2012编译VTK7.1.1库,使用VTK加载显示STL图像

文章目录 cmake配置项目编译VTK库代码测试报错:no override found for vtkpolydata下载VTK库下载地址,下载VTK源码 https://vtk.org/download/ 需要工具 1.VS2012 2.CMAKE 官网 https://cmake.org/ cmake配置项目 下载后的vtk7.1.1库解压 安装好cmake,打开cmake-gui,在whe…

chatgpt赋能python:Python循环语句详解:如何循环执行一个语句

Python循环语句详解:如何循环执行一个语句 Python是一种简单易学、优雅高效的编程语言,在很多领域都有广泛应用。其中,循环语句特别重要,可以让我们轻松实现重复执行某个语句的功能。本文将介绍Python的循环语句及其应用场景&…

01:快速入门爬虫

1.引导 1.Robots协议 Robots协议(爬虫协议)的全称是“网络爬虫排除标准”(Robots Exclusion Protocol),网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。该协议是国际互联网界通行的道…

Pytorch1.12.1+cu113安装记录

因为torch1.7.0对于SiLU算子导出不支持,需要1.7.1才支持.于是索性准备更新一下自己的算法版本库,查询到CUDA11.3支持的最高Pytorch版本为1.12.1,于是统一做一下更新.这里采用离线下载的方式,因为在线下载实在是太蛋疼了 1. Pytorch离线包下载 这是官方提供的版本,我这里不直接…

Python-web开发学习笔记(4):CSS基础

🚀 Python-web开发学习笔记系列往期文章: 🍃 Python-web开发学习笔记(1)--- HTML基础 🍃 Python-web开发学习笔记(2)--- HTML基础 🍃 Python-web开发学习笔记&#xff08…

面试常考算法(1):反转链表、局部反转链表(包含误区分析)

BM1 反转链表 给定一个单链表的头结点pHead(该头节点是有值的,,$ 长度为n,反转该链表后,返回新链表的表头。   数据范围: 0 ≤ n ≤ 1000 0 \leq n \leq 1000 0≤n≤1000   要求: 空间复杂度 O ( 1 ) O(1) O(1) &#xff0c…

QT QHorizontalSpacer弹簧控件

本文详细的介绍了QHorizontalSpacer控件的各种操作,例如:新建界面、控件布局、隐藏控件、设置宽高、添加布局、其它参数、.h源文件、cpp源文件、其它文章等等操作。 实际开发中,一个界面上可能包含十几个控件,手动调整它们的位置既…

最优化简明版(上)

引言 本文简单地介绍一些凸优化(Convex Optimization)的基础知识,可能不会有很多证明推导,目的是能快速应用到机器学习问题上。 凸集 直线与线段 设 x 1 ≠ x 2 x_1 \neq x_2 x1​x2​为 R n \Bbb R^n Rn空间中的两个点,那么具有下列形…

基于 log4j2 插件实现统一日志脱敏,性能远超正则替换

前言 金融用户敏感数据如何优雅地实现脱敏? 日志脱敏之后,无法根据信息快速定位怎么办? 经过了这两篇文章之后,我们对日志脱敏应该有了一定的理解。 但是实际项目中,我们遇到的情况往往更加复杂: 1&am…

开发云原生应用应遵循的十二要素

代码库:一份版本控制下的基准代码库,多份部署 应用程序的源代码仓库应该只包含一个应用程序,并列出它所依赖的资源清单。对于不同的环境,我们应该不需要重新编译或打包应用程序。每个环境中特有的设置应该与代码无关 依赖&#…