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

GC10-DET数据集数据处理

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

目录

这里写目录标题

  • GC10-DET数据集数据处理
    • 目录
    • 简介:
    • 数据集介绍
    • 1.去除无标签数据
    • 2. 替换错误的标签名
    • 3.下载链接

简介:

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 shutillabel = [] # 创建个空列表用于存储有标签文件名单
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 = 0for 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\\'+a1shutil.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 globfolder_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


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部