NEU-DET数据集包含了六种主要的表面缺陷类别,包括:缺陷、涂层剥落、油污、锈蚀、划痕和水印。 每种类型缺陷各300个样本,总共1800张灰度图像,每张图像原始分辨率为200*200像素。 其中训练集为1620张,测试集为180张。 对于缺陷检测任务,该数据集还提供了标注,注明了每个图像中缺陷的类别和位置。

最近在研究表面缺陷检测相关项目,发现了一个超好用的数据集——NEU - DET数据集,今天就来跟大家分享分享。

数据集概览

NEU - DET数据集涵盖了六种主要的表面缺陷类别,分别是缺陷、涂层剥落、油污、锈蚀、划痕和水印。这六种缺陷类别基本覆盖了常见的产品表面问题场景,对工业生产中的质量检测很有意义。

它一共包含1800张灰度图像,每种类型缺陷各有300个样本。这里要提一下灰度图像,在计算机视觉中,灰度图像处理起来相对彩色图像会简单一些,计算量也小,而且对于很多表面缺陷检测任务,灰度图像能提供足够的信息来识别缺陷。每张图像的原始分辨率为200 * 200像素,这个分辨率不算高,但对于初步的缺陷检测研究已经足够。

NEU-DET数据集包含了六种主要的表面缺陷类别,包括:缺陷、涂层剥落、油污、锈蚀、划痕和水印。 每种类型缺陷各300个样本,总共1800张灰度图像,每张图像原始分辨率为200*200像素。 其中训练集为1620张,测试集为180张。 对于缺陷检测任务,该数据集还提供了标注,注明了每个图像中缺陷的类别和位置。

从数据集划分角度看,训练集有1620张图像,测试集为180张。合理的数据集划分有助于我们更好地训练和评估模型性能。

数据标注的重要性

这个数据集还为缺陷检测任务提供了标注,标注信息注明了每个图像中缺陷的类别和位置。标注就像是模型学习的导师,告诉模型哪里是缺陷、是什么类型的缺陷。

下面简单写个代码示例,来看看在Python中如何读取这个数据集的标注信息(假设标注信息是用JSON格式存储的):

import json

def read_annotation(file_path):
    with open(file_path, 'r') as f:
        annotation = json.load(f)
        # 假设JSON结构里有缺陷类别和位置的字段
        defect_type = annotation['defect_type']
        defect_location = annotation['defect_location']
        return defect_type, defect_location

annotation_file = 'path/to/your/annotation.json'
type, location = read_annotation(annotation_file)
print(f"缺陷类别: {type}, 缺陷位置: {location}")

在这段代码里,我们使用Python的json库来读取JSON格式的标注文件。json.load(f)方法将文件内容加载为Python的字典结构,然后我们可以根据JSON文件的实际结构提取出缺陷类别和位置信息。

数据集的应用场景

基于NEU - DET数据集,我们可以尝试搭建各种缺陷检测模型,比如卷积神经网络(CNN)。CNN在图像识别领域表现非常出色,它能够自动学习图像中的特征。下面是一个简单的使用Keras搭建CNN模型的代码示例,用于在这个数据集上进行缺陷分类(代码只是简单示例,实际应用需要更多调优):

from keras.models import Sequential
from keras.layers import Conv2D, MaxPooling2D, Flatten, Dense

model = Sequential()
model.add(Conv2D(32, (3, 3), activation='relu', input_shape=(200, 200, 1)))
model.add(MaxPooling2D((2, 2)))
model.add(Conv2D(64, (3, 3), activation='relu'))
model.add(MaxPooling2D((2, 2)))
model.add(Flatten())
model.add(Dense(64, activation='relu'))
model.add(Dense(6, activation='softmax'))

model.compile(optimizer='adam',
              loss='categorical_crossentropy',
              metrics=['accuracy'])

在这个模型中,我们先使用Conv2D层进行卷积操作,提取图像特征,relu激活函数增加模型的非线性。MaxPooling2D层用于下采样,减少数据量同时保留主要特征。Flatten层将多维数据展平为一维,方便后续全连接层处理。最后通过Dense层构建全连接神经网络,输出6个类别(对应六种缺陷类型)的概率,使用softmax激活函数进行分类。

总的来说,NEU - DET数据集为表面缺陷检测的研究和实践提供了非常好的基础,无论是新手学习还是老手深入研究,都能从中获取不少价值。希望大家也能尝试用这个数据集做一些有趣的项目~

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐