Introduction #
The authors of the AFID: A Public Fabric Image Database for Defect Detection discuss the challenges in developing and comparing methods for detecting and classifying defects in the textile industry. They highlight the lack of a suitable public annotated benchmark, which makes it difficult for researchers to evaluate and compare various defect detection methods effectively. To address this issue, they aim to create a comprehensive collection of images with and without defects and make them publicly available for research and comparison purposes. The database consists of 245 images of 7 different fabrics. There are 140 defect-free images, 20 for each type of fabric. With different types of defects, there are 105 images. Images have a size of 4096×256 pixels.
Region of Interest of 256 x 256 pixels from original examples 4096 x 256 of defective fabrics, with the names used in the database. (a) broken end, (b) broken yarn, (c) broken pick, (d) weft curling, (e) fuzzy ball, (f) cut selvage, (g) crease, (h) warp ball, (i) knot, (j) contamination, (k) nep, and (l) weft craft.
Defect detection in the textile industry is essential for reducing costs and improving customer satisfaction. Over the past two decades, numerous methods and algorithms for textile defect detection have been proposed. However, comparing the results of these methods is challenging due to variations in image properties, defect types, and image resolution across different studies.
To support their research work, the authors have created a collection of samples with and without defects. This collection includes images obtained from a factory environment over a period of six months. The defects present in these images are described, and the authors note that they contain the most common types of defects found in factories, providing a valuable resource for the development and evaluation of defect detection methods.
Summary #
AFID: A Public Fabric Image Database for Defect Detection is a dataset for instance segmentation, semantic segmentation, object detection, and classification tasks. It is used in the textile industry, and in the surface defect detection domain.
The dataset consists of 247 images with 117 labeled objects belonging to 12 different classes including fuzzyball, nep, broken end, and other: broken pick, cut selvage, broken yarn, crease, warp ball, weft curling, knots, contamination, and weft crack.
Images in the AFID dataset have pixel-level instance segmentation annotations. Due to the nature of the instance segmentation task, it can be automatically transformed into a semantic segmentation (only one mask for every class) or object detection (bounding boxes for every object) tasks. There are 145 (59% of the total) unlabeled images (i.e. without annotations). There are no pre-defined train/val/test splits in the dataset. Alternatively, the dataset could be split into 2 classification image sets: no defect (141 images) and defect (106 images). Additionally, fabric code information is provided. The dataset was released in 2019 by the Universitat Politècnica de València, Spain and AITEX, Spain.
Explore #
AFID dataset has 247 images. Click on one of the examples below or open "Explore" tool anytime you need to view dataset images with annotations. This tool has extended visualization capabilities like zoom, translation, objects table, custom filters and more. Hover the mouse over the images to hide or show annotations.
Class balance #
There are 12 annotation classes in the dataset. Find the general statistics and balances for every class in the table below. Click any row to preview images that have labels of the selected class. Sort by column to find the most rare or prevalent classes.
Class ㅤ | Images ㅤ | Objects ㅤ | Count on image average | Area on image average |
---|---|---|---|---|
fuzzyball➔ mask | 38 | 39 | 1.03 | 0% |
nep➔ mask | 13 | 17 | 1.31 | 0.01% |
cut selvage➔ mask | 9 | 9 | 1 | 0.03% |
broken pick➔ mask | 9 | 9 | 1 | 2.3% |
broken end➔ mask | 9 | 10 | 1.11 | 0.1% |
broken yarn➔ mask | 8 | 15 | 1.88 | 0.19% |
warp ball➔ mask | 5 | 5 | 1 | 0% |
crease➔ mask | 5 | 5 | 1 | 0.09% |
weft curling➔ mask | 3 | 4 | 1.33 | 0.08% |
weft crack➔ mask | 1 | 1 | 1 | 22.27% |
Co-occurrence matrix #
Co-occurrence matrix is an extremely valuable tool that shows you the images for every pair of classes: how many images have objects of both classes at the same time. If you click any cell, you will see those images. We added the tooltip with an explanation for every cell for your convenience, just hover the mouse over a cell to preview the description.
Images #
Explore every single image in the dataset with respect to the number of annotations of each class it has. Click a row to preview selected image. Sort by any column to find anomalies and edge cases. Use horizontal scroll if the table has many columns for a large number of classes in the dataset.
Object distribution #
Interactive heatmap chart for every class with object distribution shows how many images are in the dataset with a certain number of objects of a specific class. Users can click cell and see the list of all corresponding images.
Class sizes #
The table below gives various size properties of objects for every class. Click a row to see the image with annotations of the selected class. Sort columns to find classes with the smallest or largest objects or understand the size differences between classes.
Class | Object count | Avg area | Max area | Min area | Min height | Min height | Max height | Max height | Avg height | Avg height | Min width | Min width | Max width | Max width |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
fuzzyball mask | 39 | 0% | 0.01% | 0% | 3px | 1.17% | 13px | 5.08% | 6px | 2.3% | 3px | 0.07% | 13px | 0.32% |
nep mask | 17 | 0.01% | 0.05% | 0% | 5px | 1.95% | 81px | 31.64% | 17px | 6.64% | 4px | 0.1% | 24px | 0.59% |
broken yarn mask | 15 | 0.1% | 0.39% | 0.01% | 17px | 6.64% | 256px | 100% | 121px | 47.45% | 5px | 0.12% | 251px | 6.13% |
broken end mask | 10 | 0.09% | 0.24% | 0% | 5px | 1.95% | 251px | 98.05% | 142px | 55.51% | 6px | 0.15% | 67px | 1.64% |
cut selvage mask | 9 | 0.03% | 0.05% | 0.01% | 6px | 2.34% | 19px | 7.42% | 12px | 4.56% | 6px | 0.15% | 151px | 3.69% |
broken pick mask | 9 | 2.3% | 13.66% | 0.17% | 35px | 13.67% | 102px | 39.84% | 63px | 24.7% | 559px | 13.65% | 3052px | 74.51% |
warp ball mask | 5 | 0% | 0% | 0% | 4px | 1.56% | 5px | 1.95% | 4px | 1.72% | 3px | 0.07% | 6px | 0.15% |
crease mask | 5 | 0.09% | 0.14% | 0.06% | 245px | 95.7% | 256px | 100% | 252px | 98.52% | 14px | 0.34% | 67px | 1.64% |
weft curling mask | 4 | 0.06% | 0.12% | 0% | 4px | 1.56% | 129px | 50.39% | 63px | 24.51% | 5px | 0.12% | 335px | 8.18% |
knots mask | 2 | 0.01% | 0.02% | 0.01% | 9px | 3.52% | 29px | 11.33% | 19px | 7.42% | 9px | 0.24% | 10px | 0.26% |
Spatial Heatmap #
The heatmaps below give the spatial distributions of all objects for every class. These visualizations provide insights into the most probable and rare object locations on the image. It helps analyze objects' placements in a dataset.
Objects #
Table contains all 117 objects. Click a row to preview an image with annotations, and use search or pagination to navigate. Sort columns to find outliers in the dataset.
Object ID ㅤ | Class ㅤ | Image name click row to open | Image size height x width | Height ㅤ | Height ㅤ | Width ㅤ | Width ㅤ | Area ㅤ |
---|---|---|---|---|---|---|---|---|
1➔ | fuzzyball mask | 0042_019_02.png | 256 x 4096 | 4px | 1.56% | 5px | 0.12% | 0% |
2➔ | fuzzyball mask | 0052_019_03.png | 256 x 4096 | 8px | 3.12% | 7px | 0.17% | 0% |
3➔ | nep mask | 0091_030_01.png | 256 x 4096 | 39px | 15.23% | 13px | 0.32% | 0.03% |
4➔ | nep mask | 0076_030_03.png | 256 x 4096 | 11px | 4.3% | 21px | 0.51% | 0.02% |
5➔ | nep mask | 0076_030_03.png | 256 x 4096 | 8px | 3.12% | 11px | 0.27% | 0.01% |
6➔ | fuzzyball mask | 0031_019_02.png | 256 x 4096 | 3px | 1.17% | 5px | 0.12% | 0% |
7➔ | broken pick mask | 0095_010_03.png | 256 x 4096 | 99px | 38.67% | 3052px | 74.51% | 0.9% |
8➔ | fuzzyball mask | 0024_019_02.png | 256 x 4096 | 9px | 3.52% | 8px | 0.2% | 0.01% |
9➔ | crease mask | 0069_023_02.png | 256 x 4096 | 256px | 100% | 18px | 0.44% | 0.1% |
10➔ | nep mask | 0086_030_02.png | 256 x 4096 | 20px | 7.81% | 8px | 0.2% | 0.01% |
License #
Citation #
If you make use of the AFID data, please cite the following reference:
AFID: a public fabric image database for defect detection.
Javier Silvestre-Blanes, Teresa Albero-Albero, Ignacio Miralles, Rubén Pérez-Llorens, Jorge Moreno
AUTEX Research Journal, No. 4, 2019
https://content.sciendo.com/view/journals/aut/ahead-of-print/article-10.2478-aut-2019-0035.xml
If you are happy with Dataset Ninja and use provided visualizations and tools in your work, please cite us:
@misc{ visualization-tools-for-afid-dataset,
title = { Visualization Tools for AFID Dataset },
type = { Computer Vision Tools },
author = { Dataset Ninja },
howpublished = { \url{ https://datasetninja.com/afid } },
url = { https://datasetninja.com/afid },
journal = { Dataset Ninja },
publisher = { Dataset Ninja },
year = { 2024 },
month = { nov },
note = { visited on 2024-11-21 },
}
Download #
Dataset AFID can be downloaded in Supervisely format:
As an alternative, it can be downloaded with dataset-tools package:
pip install --upgrade dataset-tools
… using following python code:
import dataset_tools as dtools
dtools.download(dataset='AFID', dst_dir='~/dataset-ninja/')
Make sure not to overlook the python code example available on the Supervisely Developer Portal. It will give you a clear idea of how to effortlessly work with the downloaded dataset.
The data in original format can be downloaded here:
Disclaimer #
Our gal from the legal dep told us we need to post this:
Dataset Ninja provides visualizations and statistics for some datasets that can be found online and can be downloaded by general audience. Dataset Ninja is not a dataset hosting platform and can only be used for informational purposes. The platform does not claim any rights for the original content, including images, videos, annotations and descriptions. Joint publishing is prohibited.
You take full responsibility when you use datasets presented at Dataset Ninja, as well as other information, including visualizations and statistics we provide. You are in charge of compliance with any dataset license and all other permissions. You are required to navigate datasets homepage and make sure that you can use it. In case of any questions, get in touch with us at hello@datasetninja.com.