DOI: 10.5281/zenodo.5482333
title: Chinese Chemical Safety Signs (CCSS)

description: <strong>Chinese Chemical Safety Signs (CCSS)</strong> This dataset is compiled as a benchmark for recognizing chemical safety signs from images. We provide both the dataset and the experimental results. <strong><em>1. The Dataset</em></strong> The complete dataset is contained in the folder <code>ccss/data</code>. The images include signs based on the Chinese standard "Safety Signs and their Application Guidelines" (GB 2894-2008) for safety signs in chemical environments. This standard, in turn, refers to the standards ISO 7010 (Graphical symbols – Safety Colours and Safety Signs – Safety signs used in workplaces and public areas), GB/T 10001 (Public Information Graphic Symbols for Signs), and GB 13495 (Fire Safety Signs) <strong>1.1. Image Collection</strong> We collect photos of commonly used chemical safety signs in chemical laboratories and chemistry teaching. For a discussion of the standards we base our collections, refer to the book "Talking about Hazardous Chemicals and Safety Signs" for common signs, and refer to the safety signs guidelines (GB 2894-2008). The shooting was mainly carried out in 6 locations, namely on the road, in a parking lot, construction walls, in a chemical laboratory, outside near big machines, and inside the factory and corridor. Shooting scale: Images in which the signs appear in small, medium and large scales were taken for each location by shooting photos from different distances. Shooting light: good lighting conditions and poor lighting conditions were investigated. Part of the images contain multiple targets and the other part contains only single signs. Under all conditions, a total of 4650 photos were taken in the original data. These were expanded to 27,900 photos were via data enhancement. All images are located in folder <code>ccss/data/JPEGImages</code>. The file <code>ccss/data/features/enhanced_data_to_original_data.csv</code> provides a mapping between the enhanced image name and the corresponding original image. <strong>1.2. Annotation and Labelimg</strong> We use Labelimg as labeling tool, which, in turn, uses the PASCAL-VOC labelimg format. The annotation is stored in the folder <code>ccss/data/Annotations</code>. Faster R-CNN and SSD are two algorithms that use this format. When training YOLOv5, you can run <code>trans_voc2yolo.py</code> to convert the XML file in PASCAL-VOC format to a txt file. We provide further meta-information about the dataset in form of a CSV file <code>features.csv</code> which notes, for each image, which other features it has (lighting conditions, scale, multiplicity, etc.). We apply the COCO standard for deciding whether a target is small, medium, or large in size. <strong>1.3. Dataset Features</strong> As stated above, the images have been shot under different conditions. We provide all the feature information in folder <code>ccss/data/features</code>. For each feature, there is a separate list of file names in that folder. The file <code>ccss/data/features/features_on_original_data.csv</code> is a CSV file which notes all the features of each original image. <strong>1.4. Dataset Division</strong> The data set is fixedly divided into 7:3 training set and test set. You can find the corresponding image names in the files <code>ccss/data/training_data_file_names.txt</code> and <code>ccss/data/test_data_file_names.txt</code>. <strong><em>2. Baseline Experiments</em></strong> We provide baseline results with five models, namely Faster R-CNN (R), Faster R-CNN (M), SSD, YOLOv3-spp, and YOLOv5. All code and results is given in folder <code>ccss/experiment</code>. <strong>2.2. Environment and Configuration:</strong> Single Intel Core i7-8700 CPU NVIDIA GTX1060 GPU 16 GB of RAM Python: 3.8.10 pytorch: 1.9.0 pycocotools: pycocotools-win Visual Studio 2017 Windows 10 <strong>2.3. Applied Models</strong> The source codes and results of the applied models is given in folder <code>ccss/experiment</code> with sub-folders corresponding to the model names. <em>2.3.1. Faster R-CNN</em> Faster R-CNN (R) has the backbone resnet50+fpn. we downloaded the pre-training weights from https://download.pytorch.org/models/fasterrcnn_resnet50_fpn_coco-258fb6c6.pth we modify the type information of the JSON file to match our application. run <code>train_res50_fpn.py</code> finally, the weights trained by the training set. The Faster R-CNN (R) source code used in our experiment is given in folder <code>ccss/experiment/sources/faster_rcnn (R)</code>. The weights of the fully-trained Faster R-CNN (R) model are stored in file <code>ccss/experiment/trained_models/faster_rcnn (R).pth</code>. The performance measurements of Faster R-CNN (R) are stored in folder <code>ccss/experiment/performance_indicators/faster_rcnn (R)</code>. Faster R-CNN (M) has the backbone mobilenetv2. backbone: MobileNetV2. we modify the type information of the JSON file to match our application. run <code>train_mobilenetv2.py</code> finally, the weights trained by the training set. The Faster R-CNN (M) source code used in our experiment is given in folder <code>ccss/experiment/sources/faster_rcnn (M)</code>. The weights of the fully-trained Faster R-CNN (M) model are stored in file <code>ccss/experiment/trained_models/faster_rcnn (M).pth</code>. The performance measurements of Faster R-CNN (M) are stored in folder <code>ccss/experiment/performance_indicators/faster_rcnn (M)</code>. <em>2.3.2. SSD</em> backbone: resnet50 we downloaded pre-training weights from https://download.pytorch.org/models/resnet50-19c8e357.pth the same training method as Faster R-CNN is applied. The SSD source code used in our experiment is given in folder <code>ccss/experiment/sources/ssd</code>. The weights of the fully-trained SSD model are stored in file <code>ccss/experiment/trained_models/ssd.pth</code>. The performance measurements of SSD are stored in folder <code>ccss/experiment/performance_indicators/ssd</code>. <em>2.3.3. YOLOv3-spp</em> backbone: DarkNet53 we modified the type information of the XML file to match our application run <code>trans_voc2yolo.py</code> to convert the XML file in VOC format to a txt file. the weights used are: yolov3-spp-ultralytics-608.pt. The YOLOv3-spp source code used in our experiment is given in folder <code>ccss/experiment/sources/yolov3-spp</code>. The weights of the fully-trained YOLOv3-spp model are stored in file <code>ccss/experiment/trained_models/yolov3-spp.pt</code>. The performance measurements of YOLOv3-spp are stored in folder <code>ccss/experiment/performance_indicators/yolov3-spp</code>. <em>2.3.4. YOLOv5</em> backbone: CSP_DarkNet we modified the type information of the XML file to match our application run <code>trans_voc2yolo.py</code> to convert the XML file in VOC format to a txt file. the weights used are: yolov5s. The YOLOv5 source code used in our experiment is given in folder <code>ccss/experiment/sources/yolov5</code>. The weights of the fully-trained YOLOv5 model are stored in file <code>ccss/experiment/trained_models/yolov5.pt</code>. The performance measurements of YOLOv5 are stored in folder <code>ccss/experiment/performance_indicators/yolov5</code>. <strong>2.4. Evaluation</strong> The computed evaluation metrics as well as the code needed to compute them from our dataset are provided in the folder <code>ccss/experiment/performance_indicators</code>. They are provided over the complete test st as well as separately for the image features (over the test set). <strong><em>3. Code Sources</em></strong> Faster R-CNN (R and M) https://github.com/WZMIAOMIAO/deep-learning-for-image-processing/tree/master/pytorch_object_detection/faster_rcnn official code: https://github.com/pytorch/vision/blob/main/torchvision/models/detection/faster_rcnn.py SSD https://github.com/WZMIAOMIAO/deep-learning-for-image-processing/tree/master/pytorch_object_detection/ssd official code: https://github.com/pytorch/vision/blob/main/torchvision/models/detection/ssd.py YOLOv3-spp https://github.com/WZMIAOMIAO/deep-learning-for-image-processing/tree/master/pytorch_object_detection/yolov3-spp YOLOv5 https://github.com/ultralytics/yolov5 We are particularly thankful to the author of the GitHub repository WZMIAOMIAO/deep-learning-for-image-processing (with whom we are not affiliated). Their instructive videos and codes were most helpful during our work. In particular, we based our own experimental codes on his work (and obtained permission to include it in this archive).