/ Модель

Характеристики

Лицензия
CC BY-SA 4.0
Опубликована
19 окт 2026

vit-casting-defect

Классификация изображенийИзображение → label

Небольшая Vision Transformer-модель для классификации шести типов поверхностных дефектов горячекатаной стали на изображениях.

5 524скачиваний за 30 дней1лайквеса обновлены19 окт 2026

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

Zainulabedin1 разработал TinyViT для классификации поверхностных дефектов горячекатаной стали. Это небольшая Vision Transformer-модель, обученная с нуля без предварительного обучения на ImageNet: около 113 тыс. параметров, входное изображение приводится к размеру 64×64 и разбивается на 64 патча 8×8 перед обработкой двухслойным трансформерным энкодером.

Модель относит изображения к одному из шести классов: мелкие трещины, включения, поверхностные отложения, питтинг, закатанная окалина и царапины. На тестовом наборе указаны точность 76,11% и macro F1 76,21%; автор приводит результат небольшой CNN на том же наборе — 85% точности. Модель подходит для учебных экспериментов и предварительной классификации дефектов на изображениях стали, но результат требует проверки на данных конкретной производственной линии.

Модель работает с изображениями и выдаёт класс с оценками вероятности. Она обучена на лабораторных равномерно освещённых изображениях одного семейства материалов, использует только оттенки серого и теряет мелкие детали при уменьшении до 64×64. Лицензия — Creative Commons Attribution-ShareAlike 4.0 (CC BY-SA 4.0).

Сценарии применения

  • классификация дефектов поверхности стальной полосы
  • поиск царапин и мелких трещин на изображениях стали
  • распознавание включений и окалины при контроле качества
  • учебный эксперимент с компактным ViT для промышленного контроля

Ограничения

Оценка на тестовом наборе ниже приведённой автором CNN; модель обучена на небольшом лабораторном наборе равномерно освещённых изображений горячекатаной стали. Она использует только оттенки серого и вход 64×64, поэтому теряет цветовую и мелкодетальную информацию; перенос на реальные производственные условия требует проверки.

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

TinyViT for Surface-Defect Classification (NEU)

A tiny Vision Transformer trained from scratch (no pretraining, no ImageNet) that classifies steel surface-defect images into six defect classes. The point of the project is to show a ViT can be built for manufacturing and trained on CPU: 64x64 image -> 64 patches of 8x8 -> 2-layer transformer encoder -> class, ~113k parameters, trained on CPU in minutes.

Classes

  • crazing — fine surface cracks
  • inclusion — embedded foreign material
  • patches — surface deposits
  • pitted_surface — small pits / pitting corrosion
  • rolled-in_scale — mill scale rolled into the surface
  • scratches — linear abrasions

Results

ModelTest accuracyMacro F1
TinyViT (this model)76.11%76.21%
Small CNN (same 64×64 input, honest baseline)85.00%84.99%

Per-class F1 (TinyViT): crazing 85.71% · patches 91.23% · pitted_surface 75.86% · inclusion 68.85% · scratches 68.97% · rolled-in_scale 66.67%.

Honest reading: the small CNN wins by ~9 points — convolutional inductive bias beats a from-scratch transformer on a 1,440-image dataset. The ViT is still the point of the project: 113k parameters, no pretraining, CPU-trained in ~14 minutes, and 76% is far above the 16.7% chance level. On larger industrial datasets (or with a conv stem) the gap closes; see "What I'd try next" in the notebook.

confusion matrix

Usage

import numpy as np
from PIL import Image
from model import TinyViT, load_model, predict_image, CLASS_NAMES

model = load_model("pytorch_model.bin")          # CPU by default
img = Image.open("steel_surface.jpg")            # any size, gray or RGB
cls_id, probs = predict_image(model, img)
print(CLASS_NAMES[cls_id], f"{probs[cls_id]:.1%} confidence")

Preprocessing contract (must match training): resize to 64x64 grayscale, scale to [0, 1], normalise with train-set mean/std. predict_image does this for you.

Training details

  • Data: NEU surface defect database (Northeastern University), 1,800 grayscale 200x200 images, 300 per class; stratified 80/10/10 split.
  • Augmentation: random horizontal/vertical flips, ±15° rotation, resized crop (0.85–1.0) — orientation-safe for surface textures.
  • Optimiser: AdamW (lr 3e-4, cosine schedule), early stopping on validation.
  • Full reproducible pipeline (data loader, training, CNN baseline, figures): see the project repository.

Limitations

  • Trained on lab-curated, evenly-lit 200x200 images of one material family (hot-rolled steel strip). Real production lines have different illumination, scale, motion blur, and defect mixtures.
  • Grayscale only; colour/anomaly information is discarded.
  • 64x64 input loses fine detail — crazing hairlines near the resolution limit are the hardest class (see per-class F1 in the report).

Citation / dataset credit

Built as a portfolio project for graduate applications in intelligent manufacturing / surface quality inspection (mechanical engineering × AI).

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм

Нельзя запустить

Архитектура ? неизвестна transformers в образе рантайма.

Ревизия весов
998740d

0 моделей