东北大学钢板表面缺陷检测数据集 钢板表面缺陷检测数据集 含xml标签文件 可用于目标检测算法 yolov5 yolov6 yolov7 yolov8

在工业制造领域,钢板表面缺陷检测至关重要,直接关乎产品质量与生产效率。今天咱就来唠唠东北大学钢板表面缺陷检测数据集,这可是个好东西,对搞目标检测算法的朋友来说,简直是宝藏。

数据集概述

这个数据集包含xml标签文件,xml文件在数据标注这块作用巨大。就好比你给一堆图片里的缺陷部位做标记,xml文件就能详细记录每个缺陷的位置、类别等信息。比如下面这段简单的xml示例代码:

<annotation>
    <folder>plates</folder>
    <filename>plate_001.jpg</filename>
    <size>
        <width>800</width>
        <height>600</height>
        <depth>3</depth>
    </size>
    <object>
        <name>scratches</name>
        <bndbox>
            <xmin>100</xmin>
            <ymin>200</ymin>
            <xmax>300</xmax>
            <ymax>400</ymax>
        </bndbox>
    </object>
</annotation>

这段代码里,指明图片所在文件夹,是具体图片名。记录了图片宽、高和通道数。而部分,明确了缺陷类别,这里是“scratches(划痕)” ,则框定了缺陷在图片中的位置坐标。通过这些xml文件,就能很方便地给目标检测算法提供准确的标注数据。

与热门目标检测算法的结合

  1. YOLO系列算法:像yolov5、yolov6、yolov7以及最新的yolov8,都是目标检测领域的佼佼者。以yolov5为例,使用这个数据集训练yolov5模型,首先要把数据集按照yolov5要求的格式整理。一般就是将xml文件转换为yolov5的txt标注格式。代码可以这么写(Python示例):
import xml.etree.ElementTree as ET
import os

def convert_xml_to_yolo(xml_path, output_path, image_width, image_height):
    tree = ET.parse(xml_path)
    root = tree.getroot()

    with open(output_path, 'w') as f:
        for obj in root.findall('object'):
            class_name = obj.find('name').text
            class_id = class_mapping[class_name] # 假设已经有class_mapping字典,映射类别名到类别ID
            bndbox = obj.find('bndbox')
            xmin = int(bndbox.find('xmin').text)
            ymin = int(bndbox.find('ymin').text)
            xmax = int(bndbox.find('xmax').text)
            ymax = int(bndbox.find('ymax').text)

            # 转换为yolo格式的归一化坐标
            x_center = (xmin + xmax) / 2 / image_width
            y_center = (ymin + ymax) / 2 / image_height
            width = (xmax - xmin) / image_width
            height = (ymax - ymin) / image_height

            f.write(f"{class_id} {x_center} {y_center} {width} {height}\n")


# 假设xml文件所在目录和输出txt文件目录
xml_dir = 'path/to/xml'
txt_dir = 'path/to/txt'

for xml_file in os.listdir(xml_dir):
    if xml_file.endswith('.xml'):
        xml_path = os.path.join(xml_dir, xml_file)
        txt_path = os.path.join(txt_dir, xml_file.replace('.xml', '.txt'))

        # 假设图片尺寸已知,这里只是示例,实际应用中需要获取真实图片尺寸
        image_width = 800
        image_height = 600

        convert_xml_to_yolo(xml_path, txt_path, image_width, image_height)

这段代码遍历xml文件夹里的所有xml文件,将每个xml文件里的标注信息提取出来,转换为yolov5需要的归一化坐标形式,并写入对应的txt文件。

  1. 训练与应用:整理好数据集后,就可以按照yolov5的训练流程开始训练模型了。训练好的模型在实际生产中就能大展身手,快速准确地检测出钢板表面的缺陷,帮助企业及时发现问题,提高产品质量。

东北大学钢板表面缺陷检测数据集凭借其xml标签文件的详细标注,与热门的YOLO系列目标检测算法完美搭配,为钢板表面缺陷检测提供了强有力的解决方案,也为工业制造智能化升级贡献了一份力量。希望各位搞算法的小伙伴能充分利用这个数据集,开发出更优秀的检测模型。

Logo

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

更多推荐