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个文件夹啦,放一起得了~
对比数量发现部分样本无标签,需要清除没有标签的数据,并把有标签数据复制一份到新的文件夹;文件名就不改了。
步骤如下:
- 手动创建个文件夹(Newdata_GC10-DET,然后里面创个子文件夹‘IMAGES’)用来保存处理好的图片数据
- 创个空列表label
- 遍历label文件夹,把所有的有标签文件名写到列表里(存个名单喽);
- 开始对着label名单,遍历 数据文件里的子文件夹(我是手动一个一个改的从1~10);
- 在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