当前位置: 首页
AI
飞桨新人赛:钢铁缺陷检测挑战赛-第1名方案

飞桨新人赛:钢铁缺陷检测挑战赛-第1名方案

热心网友 时间:2025-07-21
转载
本文介绍了基于PaddleDetection套件进行钢铁表面缺陷识别的实践过程。先介绍赛题及NEU数据集,含6种热轧带钢缺陷。接着说明数据准备步骤,包括解压、安装工具、改名、拆分及格式转换。然后详述用faster_rcnn_swin_tiny_fpn_3x_coco模型的训练流程,涉及配置文件修改、训练评估,最后提及推理及生成比赛数据的方法。

飞桨新人赛:钢铁缺陷检测挑战赛-第1名方案 - 游乐网

0.引言

作为一个新人练习赛,这个比赛可以非常好的帮助大家熟悉使用Paddle。在这里我使用PaddleDetection套件中的网络进行训练,本项目将带大家对PaddleDetection套件使用有一个实践的过程。

免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈

1.赛题介绍

本次比赛聚焦图像目标识别技术,需要选手从图像中识别出钢铁表面的缺陷位置,并给出锚点框的坐标,同时对不同的缺陷进行分类,以期产出泛化性更好、性能更稳定的钢铁表面缺陷识别模型。

2.数据介绍及数据准备

本数据集来自NEU表面缺陷检测数据集,收集了6种典型的热轧带钢表面缺陷,即氧化铁皮压入(RS)、斑块(Pa)、开裂(Cr)、点蚀(PS)、夹杂(In)和划痕(Sc)。

可在比赛页面看到详情:https://aistudio.baidu.com/aistudio/competition/detail/114/0/task-definition

数据格式转换,数据拆分

下面是Paddle提供的两个处理数据的命令说明文档。

PadlleX:

https://github.com/PaddlePaddle/PaddleX/tree/develop/docs/data

PaddleDetection: https://github.com/PaddlePaddle/PaddleDetection/blob/release%2F2.3/docs/tutorials/PrepareDataSet.md

In [ ]
# 解压文件并移除多余的目录! unzip /home/aistudio/data/data105746/train.zip -d /home/aistudio/data/steel!rm -r /home/aistudio/data/steel/__MACOSX! unzip /home/aistudio/data/data105747/test.zip -d /home/aistudio/data/steel!rm -r /home/aistudio/data/steel/__MACOSX
登录后复制    In [ ]
# 安装paddlex 用于拆分数据集# 升级pip!pip install --upgrade pip -i https://mirror.baidu.com/pypi/simple!pip install "paddlex>2.0.0" -i https://mirror.baidu.com/pypi/simple
登录后复制    In [ ]
# 修改文件名字 JPEGImages  Annotations!mv /home/aistudio/data/steel/train/ANNOTATIONS  /home/aistudio/data/steel/train/Annotations!mv /home/aistudio/data/steel/train/IMAGES  /home/aistudio/data/steel/train/JPEGImages
登录后复制    In [ ]
#使用paddleX拆分数据集!paddlex --split_dataset --format VOC --dataset_dir /home/aistudio/data/steel/train --val_value 0.001 --test_value 0.0
登录后复制    In [ ]
# 下载PaddleDetection%cd /home/aistudio/work!git clone https://gitee.com/paddlepaddle/PaddleDetection.git -b release/2.3
登录后复制    In [ ]
# 进入PaddleDetection%cd /home/aistudio/work/PaddleDetection# 安装其它依赖!pip install -r /home/aistudio/work/PaddleDetection/requirements.txt  # 临时环境安装!pip install pycocotools -i https://mirror.baidu.com/pypi/simple!pip install lap -i https://mirror.baidu.com/pypi/simple
登录后复制    In [ ]
%cd /home/aistudio/work/PaddleDetection/#转换train!python tools/x2coco.py \        --dataset_type voc \        --voc_anno_dir /home/aistudio/data/steel/train/ \--voc_anno_list /home/aistudio/data/steel/train/train_list.txt \--voc_label_list /home/aistudio/data/steel/train/labels.txt \--voc_out_name /home/aistudio/data/steel/train/voc_train.json#转换test!python tools/x2coco.py \        --dataset_type voc \        --voc_anno_dir /home/aistudio/data/steel/train/ \--voc_anno_list /home/aistudio/data/steel/train/val_list.txt \--voc_label_list /home/aistudio/data/steel/train/labels.txt \--voc_out_name /home/aistudio/data/steel/train/voc_val.json!rm -r /home/aistudio/data/steel/train/Annotations/*!mv /home/aistudio/data/steel/train/*.json /home/aistudio/data/steel/train/Annotations/
登录后复制    

3. 训练流程

在试了多种模型后,我发现faster_rcnn_swin_tiny_fpn_3x_coco效果最好。接下来就带着大家走一遍训练流程把。

3.1 配置好训练文件

3.1.1 faster_rcnn_swin_tiny_fpn_1x_coco

首先打开work/PaddleDetection/configs/faster_rcnn下的faster_rcnn_swin_tiny_fpn_1x_coco.yml 一般来说,需要修改的就是weights即模型保存路径。及训练轮次,学习率等。

可以将一些需要改动的参数放到此文件中,这样就不会防止改动了里面得文件导致使用其他模型时还要再去那个文件进行改动。此文件的参数优先级高于其他base文件。

飞桨新人赛:钢铁缺陷检测挑战赛-第1名方案 - 游乐网        

3.1.2 faster_rcnn_swin_tiny_fpn_1x_coco

然后打开_BASE_的路径,即faster_rcnn_swin_tiny_fpn_1x_coco.yml文件

飞桨新人赛:钢铁缺陷检测挑战赛-第1名方案 - 游乐网        

我们最需要改的是 第一个得数据集配置文件,以及训练参数配置文件。

3.1.3 coco_detection

打开work/PaddleDetection/configs/datasets/路径下的coco_detection.yml

改成如下。具体路径可以自己琢磨一下 飞桨新人赛:钢铁缺陷检测挑战赛-第1名方案 - 游乐网        

3.1.4 其他

其他基本不用动。打开work/PaddleDetection/configs/faster_rcnn/_base_/路径下的faster_rcnn_swin_tiny_fpn.yml。可以修改其中的batch_size。这些事基本的超参,其他的可以自行研究。

4. 训练及评估

In [ ]
# 训练!python tools/train.py -c configs/faster_rcnn/faster_rcnn_swin_tiny_fpn_3x_coco.yml --use_vdl=true --vdl_log_dir=vdl_dir/scalar --eval
登录后复制    In [ ]
# 单卡断点续训# !python tools/train.py -c configs/faster_rcnn/faster_rcnn_swin_tiny_fpn_3x_coco.yml \#                        -r /home/aistudio/work/output/faster_rcnn_swin_tiny_fpn_3x_coco/best \#                        --eval  \#                        --use_vdl=true \#                        --vdl_log_dir=vdl_dir/scalar \#                        --eval
登录后复制    

5. 生成比赛数据

In [ ]
# 推理图像和生成txt文件!python tools/infer.py -c  configs/faster_rcnn/faster_rcnn_swin_tiny_fpn_3x_coco.yml \-o weights=/home/aistudio/work/PaddleDetection/output/faster_rcnn_swin_tiny_fpn_3x_coco/34 \--infer_dir=/home/aistudio/data/steel/test/IMAGES/ \--output_dir=/home/aistudio/data/steel/infer_output\--draw_threshold=0.005 --save_txt=True
登录后复制    In [ ]
import csvimport osheaders = ['image_id','bbox','category_id','confidence']classList = ['crazing','inclusion','pitted_surface','scratches','patches','rolled-in_scale']rows = []rootdir = '/home/aistudio/data/steel/infer_output'list = os.listdir(rootdir) #列出文件夹下所有的目录与文件for i in range(0,len(list)):       path = os.path.join(rootdir,list[i])       if os.path.isfile(path) and path.endswith('txt'):           txtFile = open(path)           print(path)           result = txtFile.readlines()           for r in result:               ls = r.split(' ')               Cls = ls[0]               sco = float(ls[1])               xmin = float(ls[2])               ymin = float(ls[3])               w = float(ls[4])               h = float(ls[5])               xmax = xmin+w               ymax = ymin+h               clsID = classList.index(Cls)               imgID = list[i][:-4]               row = [imgID,[xmin,ymin,xmax,ymax],clsID,sco]               rows.append(row)with open('submission.csv','w')as f:    f_csv = csv.writer(f)    f_csv.writerow(headers)    f_csv.writerows(rows)
登录后复制    In [ ]
import pandas as pddatafile = pd.read_csv('/home/aistudio/work/PaddleDetection/submission.csv')# 按照列值排序data = datafile.sort_values(by="image_id", ascending=True)data.to_csv('submission_final.csv', mode='a+', index=False)
登录后复制    
来源:https://www.php.cn/faq/1419628.html

游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

同类文章
更多
逼AI当山顶洞人!Claude防话痨插件爆火,网友:受够了AI废话

逼AI当山顶洞人!Claude防话痨插件爆火,网友:受够了AI废话

新智元报道编辑:元宇【新智元导读】一个让AI像原始人一样说话的插件,在HN上一夜爆火,冲破2w星。它的核心只是一条简单粗暴的prompt:删掉冠词、客套和一切废话,号称能省下75%的输出token。

时间:2026-04-07 14:55
季度利润翻 8 倍,最赚钱的「卖铲人」财报背后,内存涨价狂潮如何收场?

季度利润翻 8 倍,最赚钱的「卖铲人」财报背后,内存涨价狂潮如何收场?

AI 时代最赚钱的公司,可能从来不是做 AI 的那个。作者|张勇毅编辑|靖宇淘金热里最稳赚的人,从来不是淘金的,是卖铲子的。这句老话在 2026 年的科技行业又应验了一次。只不过这次卖铲子的不是英伟

时间:2026-04-07 14:49
Claude Code Harness+龙虾科研团来了!金字塔分层架构+多智能体

Claude Code Harness+龙虾科研团来了!金字塔分层架构+多智能体

Claw AI Lab团队量子位 | 公众号 QbitAI你还在一个人做科研吗?科研最难的,从来不是问题本身,而是一个想法从文献到实验再到写作,只能靠自己一点点往前推。一个人方向偏了没人提醒,遇到歧

时间:2026-04-07 14:43
让离线强化学习从「局部描摹」变「全局布局」丨ICLR'26

让离线强化学习从「局部描摹」变「全局布局」丨ICLR'26

面对复杂连续任务的长程规划,现有的生成式离线强化学习方法往往会暴露短板。它们生成的轨迹经常陷入局部合理但全局偏航的窘境。它们太关注眼前的每一步,却忘了最终的目的地。针对这一痛点,厦门大学和香港科技大

时间:2026-04-07 14:37
美国犹他州启动新试点项目:AI为患者开具精神类药物处方

美国犹他州启动新试点项目:AI为患者开具精神类药物处方

IT之家 4 月 5 日消息,据外媒 PC Mag 当地时间 4 月 4 日报道,美国医疗机构 Legion Health 在犹他州获得监管批准,启动一项试点项目,允许 AI 系统为患者开具精神类药

时间:2026-04-07 14:30
热门专题
更多
刀塔传奇破解版无限钻石下载大全 刀塔传奇破解版无限钻石下载大全
洛克王国正式正版手游下载安装大全 洛克王国正式正版手游下载安装大全
思美人手游下载专区 思美人手游下载专区
好玩的阿拉德之怒游戏下载合集 好玩的阿拉德之怒游戏下载合集
不思议迷宫手游下载合集 不思议迷宫手游下载合集
百宝袋汉化组游戏最新合集 百宝袋汉化组游戏最新合集
jsk游戏合集30款游戏大全 jsk游戏合集30款游戏大全
宾果消消消原版下载大全 宾果消消消原版下载大全
热门教程
更多
  • 游戏攻略
  • 安卓教程
  • 苹果教程
  • 电脑教程