AiWin2021上海智慧工匠智能算法竞赛之工业图像缺陷检测

摘要:

合集:AI案例-CV-制造业
数据集:钢铁缺陷数据集
数据集价值:预测钢铁制造过程中缺陷的位置和类型
解决方案:Tensorflow框架

一、智慧工匠赛题描述

赛题:工业图像缺陷检测
主办方:联通(上海)产业互联网有限公司和上海地铁维护保障有限公司
AI问题:目标检测
主页:http://www.aiwin.org.cn/competitions/60

二、智慧工匠数据集内容

目录: dataset
=>train
==>annotations
==>images:1,180 个文件
=>test
==>images:1,000 个文件

三、Kaggle2019钢铁缺陷识别

钢铁是现代社会最重要的建筑材料之一。钢结构建筑能够抵抗自然和人为磨损,这使得这种材料在全球范围内广泛应用。为了帮助提高钢铁生产的效率,本届竞赛将通过识别缺陷来推动这一进程。

西弗吉尼亚钢铁公司(Severstal)正引领着高效钢铁开采与生产的革命。他们认为,冶金业的未来需要在经济、生态和社会三大维度实现协同发展——而这家企业始终以严肃态度践行社会责任。近期,该公司打造了全国最大的工业数据湖,将此前被丢弃的拍字节数据转化为宝贵的资产。如今,西弗吉尼亚钢铁正寻求通过机器学习技术优化自动化流程、提升生产效率并维持卓越品质。

平板钢的生产工艺尤为精密。从加热轧制到干燥切割,多台设备在钢板出厂前均会与其接触。目前,西弗吉尼亚钢铁采用高频摄像头图像驱动的缺陷检测算法,实时监控生产流程。

在此次竞赛中,您将协助工程师团队优化算法,实现钢板表面缺陷的精准定位与分类。若项目成功,您将助力维持钢铁制造的行业标杆地位,推动西弗吉尼亚钢铁在创新之路上的持续突破,最终塑造一个更强大、更高效的全球工业生态。

四、钢铁缺陷数据集内容

在这项比赛中,您将预测钢铁制造过程中缺陷的位置和类型。图像均以唯一ImageId命名,您需要对测试集中的缺陷进行分割和分类。每张图像可能包含无缺陷、单一类别缺陷或多类别缺陷。对于每张图像,您需要为每个类别(ClassId = [1, 2, 3, 4])分割出相应缺陷区域。

每个缺陷类别的分割区域将编码为单行记录,即使在同一图像中存在多个不连续的缺陷区域。您可在评估页面了解更多编码标准。

文件说明: train_images/ – 训练图像文件夹 test_images/ – 需要分割与分类的测试图像文件夹 train.csv – 包含缺陷分割区域的训练标注数据(ClassId = [1, 2, 3, 4])

图片数据样例:

五、解决方案样例

源码:训练Training.ipynb 和 推论Inference.ipynb

加载库

from time import time
from datetime import datetime

import pandas as pd
import numpy as np
import os
import cv2
from PIL import Image
import seaborn as sns
import matplotlib.pyplot as plt
%matplotlib inline

from sklearn.model_selection import train_test_split

import keras
from keras.preprocessing.image import ImageDataGenerator
from keras import backend as K
from keras.layers import GlobalAveragePooling2D, Dense, Conv2D, BatchNormalization, Dropout
from keras.models import Model, load_model
import tensorflow as tf
from tensorflow.python.keras.callbacks import TensorBoard
from keras.callbacks import ModelCheckpoint

from sklearn.metrics import recall_score
from random import random
from random import seed

# https://github.com/qubvel/segmentation_models
import segmentation_models
print(segmentation_models.__version__)

import segmentation_models as sm
from segmentation_models import Unet
from segmentation_models import get_preprocessing

from tensorflow.keras.utils import plot_model

segmentation_models 是一个专注于 图像分割任务 的 Python 库,旨在简化深度学习模型的开发与部署。以下是其核心特点和功能:

  • 预训练模型:提供多种经典分割模型(如 U-Net、Mask R-CNN、DeepLab 等)的预训练版本,支持直接调用或微调。
  • 框架兼容性:支持 PyTorch 和 TensorFlow/Keras 框架,适配不同深度学习环境。
  • 高效训练:内置优化器、损失函数和数据增强工具,加速模型训练流程。
  • 医学影像专用:特别针对医学图像(如 MRI、CT)优化,提供预处理和后处理工具(如 N4ITK 归一化)。
  • 实时推理:支持模型量化(Quantization)和剪枝(Pruning),提升推理速度。

工作路径

数据源:./data/
训练数据:./data/train.csv
训练图片数据:./data/train_images
测试图片数据:./data/test_images
模型文件路径:./model/
日志文件路径:./log/

源码开源协议

作者:https://github.com/k-billa

六、获取案例套装

文件包大小:1.7 GB

获取:社会基础服务计算机视觉案例套装

发表评论