缺陷检测数据集GC10-DET的数据处理

文章介绍了GC10-DET数据集的处理过程,包括去除无标签数据和替换错误的标签名。数据集是针对真实工业表面缺陷的图像,包含10种类型,如冲孔、焊缝和油斑等。作者提供了数据处理的步骤,如创建新文件夹存储有标签的图像,以及使用Python脚本定位并修正错误的标签名称。
摘要由CSDN通过智能技术生成

GC10-DET数据集数据处理

PS:前几天写机器视觉课程作业用的,留个记录,便于复习查找;
数据集介绍CV自:地址

目录

简介:

GC10-DET是在真实工业中收集的表面缺陷数据集。一个真实的行业。它包含十种类型的表面缺陷,即冲孔(Pu)、焊缝(Wl)、新月形缝隙(Cg)、水斑(Water Spot)。油斑(Os)、丝斑(Ss)、夹杂物(In)、轧坑(Rp)、折痕(Cr)、腰部折痕 (Wf)。所收集的缺陷都在钢板的表面。该数据集包括3570张灰度 图像。

数据集介绍

GC10-DET数据集可以在github上获得(https://github.com/lvxiaoming2019/GC10-DET-Metallic-Surface-Defect-Matasets)

GC10-DET是在真实工业中收集的表面缺陷数据集。一个真实的行业。它包含十种类型的表面缺陷,即冲孔(Pu)、焊缝(Wl)、新月形缝隙(Cg)、水斑(Water Spot)。(Cg)、水斑(Ws)、油斑(Os)、丝斑(Ss)、夹杂物(In)、轧坑(Rp)、折痕(Cr)、腰部折痕 (Wf)。所收集的缺陷都在钢板的表面。该数据集包括3570张灰度 图像。

  • 冲孔:在钢带的生产线上,钢带需要根据产品规格进行冲孔。产品规格;机械故障可能导致不必要的冲孔,从而导致冲孔 缺陷。
  • 焊接线。当带钢被更换时,需要对带钢的两卷进行焊接,并产生 焊接线就产生了。严格说来,这不是一个缺陷,但需要自动 检测和跟踪,以便在后续切割中规避。
  • 月牙形间隙。在钢带生产中,切割有时会产生缺陷,就像半个 一个圆。
  • 水斑。水斑是由生产中的干燥产生的。在不同的产品和 不同的产品和工艺,对这种缺陷的要求是不同的。然而,由于水斑一般对比度较低,并且与油斑等其他缺陷相似,因此通常被视为 一般来说,水斑的对比度较低,而且与其他缺陷(如油斑)相似,所以它们通常会被误测。
  • 油斑。油斑通常是由机械润滑剂的污染引起的,这将影响产品的外观。影响产品的外观。丝斑。带材表面的局部或连续的波浪状斑块,可能出现在上、下表面,在整个带材长度方向上密度不均匀。在整个带材长度方向上,密度不均匀。一般来说。主要原因是辊子的温度不均匀和压力不均匀。
  • 夹杂物。夹杂物是金属表面缺陷的一种典型缺陷,通常表现为小斑点。鱼鳞状、条状、块状不规则地分布在带钢的上、下表面 全局或局部),并常伴有粗糙的麻点表面。有些内含物是 松散,容易脱落,有的则被压入板中。
  • 轧制坑。轧制凹坑是钢板表面的周期性隆起或凹坑,呈点状。片状,或条状。它们分布在整个带钢长度或截面上,主要是由工作辊或张力辊损坏造成的。工作辊或张力辊损坏造成的。
  • 折痕。折痕是一种垂直的横向折痕,有规则的或不规则的间距,横跨带钢,或在带钢的边缘。在板带的边缘。主要原因是在开卷过程中,沿板带移动方向的局部屈服 在开卷过程中的局部屈服。
  • 腰部褶皱。缺陷部位有明显的褶皱,比较流行,有点像 皱纹,说明缺陷的局部变形太大。其原因是由于 低碳。

1.去除无标签数据

可以看出,原数据集的data 和 label 文件名是完全对应的

数据集是多标签数据没有必要分10个文件夹啦,放一起得了~

对比数量发现部分样本无标签,需要清除没有标签的数据,并把有标签数据复制一份到新的文件夹;文件名就不改了。

步骤如下:

  1. 手动创建个文件夹(Newdata_GC10-DET,然后里面创个子文件夹‘IMAGES’)用来保存处理好的图片数据
  2. 创个空列表label
  3. 遍历label文件夹,把所有的有标签文件名写到列表里(存个名单喽);
  4. 开始对着label名单,遍历 数据文件里的子文件夹(我是手动一个一个改的从1~10);
  5. 在label名单里的图片就给它复制到新文件夹里
    在这里插入图片描述
    在这里插入图片描述
import os
import shutil

label = [] # 创建个空列表用于存储有标签文件名单
for root, dirs, files in os.walk('E:\\机器视觉\\DataGC10-DET\\lable', topdown=False):
    for name in files:
        # a是.xml格式的标签文件名
        a = str(os.path.join(name))
        # print(os.path.join(name)) 
        b = a.split('.')
        label.append(b[0]) # b[0]是不含.xml后缀的文件名
        

for root, dirs, files in os.walk('E:\\机器视觉\\DataGC10-DET\\data\\10', topdown=False):
    non_label = 0
    for name in files:
        # a1是读取的带后缀的图片文件名()
        a1 = str(os.path.join(name))
        b1 = a1.split('.') # b1[0]是不含.jpg后缀的文件名
       
        if b1[0] in label:
            # old 是图片原地址 
            old = 'E:\\机器视觉\\DataGC10-DET\\data\\'+'10\\'+ a1
            # new 是新地址
            new = 'E:\\机器视觉\\DataGC10-DET\\Newdata_GC10-DET\\data\\'+a1
            shutil.copyfile(oldname, newname,follow_symlinks=False)
        else:
            non_label += 1

2. 替换错误的标签名

根据说明文件,这个数据集一共有10个类别

调试的时候发现有118个标签文档里的’10_yaozhe’被标成了’10_yaozhed’(如文件img_07_4405133600_00033.xml)
在这里插入图片描述

(还有个标签’d’,这个我直接找出来删掉了)

**目标:**找到错误标签并修改

代码如下:

import os
import glob

folder_path = 'E:\\机器视觉\\DataGC10-DET\\newdata\\Annotations'  # 目标文件夹路径
search_str = '10_yaozhed'  # 要搜索的字符串
# search_str = '10_yaozhe'
replace_str = '10_yaozhe'  # 要替换的字符串

# 查找含有search_str字符串的文件,并将文件名放入列表中
file_list = glob.glob(os.path.join(folder_path, '*.xml'))
search_result = []
for file_path in file_list:
    with open(file_path, 'r') as f:
        content = f.read()
        if search_str in content:
            search_result.append(file_path)
            # print(file_path)
for i in range(6):
    print(search_result[i])

# 逐一打开文件并替换字符串
for file_path in search_result:
    with open(file_path, 'r') as f:
        content = f.read()
    content = content.replace(search_str, replace_str)
    with open(file_path, 'w') as f:
        f.write(content)

3.下载链接

原数据集:

AI studio:工业金属表面缺陷数据集(GC10-DET) - 飞桨AI Studio (baidu.com)

百度云:

链接:https://pan.baidu.com/s/1LlSGmSaWdoht_-gEBuXzWA?pwd=6666
提取码:6666

处理好的数据集:

AI studio:钢铁缺陷检测数据集 - 飞桨AI Studio (baidu.com)

百度云:

链接:https://pan.baidu.com/s/1G0S0nmdYmL6gK-rMkAlPVA?pwd=8888
提取码:8888

  • 13
    点赞
  • 65
    收藏
    觉得还不错? 一键收藏
  • 24
    评论
评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值