We propose a novel anchor-free model with an edgeless kernel for recognizing and classifying complex unstructured recyclables, and a recyclables dataset required for model training.
First, we create a recyclable dataset according to the resource separation and emission standards set by the Korean Ministry of Environment. Also, We define a class for waste that the general public should recycle and strengthen the annotation.
Second, the proposed edgeless module consists of two types: Background Noise Reduce Module for correcting the feature map of the backbone and an Instance separation module for correcting the feature map of the head. Background Noise Reduce Module for the feature map of the backbone corrects the edges of the entire feature map of the input image.
The Instance separation module for the feature map of head corrects the edges of each instance contained in the image. The result is improved detection accuracy for overlapping or small wastes. Our model with an Edgeless module shows optimal performance in recyclable recognizing.
And we shall show that the AP score is improved by 3.9% and the F1 score by more than 2% compared to the latest models of the one-stage detector and compare the performance with other latest models.
The repo is based on mmdetection.
Please refer to install.md for installation and dataset preparation.
Build Recyclables dataset [masati91/Recyclables-Waste-Dataset]
- Download train2017, val2017 and annotations
- Prepare dataset
mmdetection
├── mmdet
├── tools
├── configs
├── data
│ ├── coco
│ │ ├── annotations
│ │ ├── train2017
│ │ ├── val2017
- Check the model config
- To train ELTD (ex. ResNet-50, anchor-free)
python tools/train.py --config configs/eltd/eltd_r50_fpn_1x_coco.py
python demo/masati_inference.py --config ${CONFIG_FILE} --imgpath ${INPUT_IAMGE_FILE} --checkpoint ${CHECKPOINT_FILE}
Optional arguments:
--config ${CONFIG_FILE}: Model config file--imgpath ${INPUT_IAMGE_FILE}: Path to folder with images to test--checkpoint ${CHECKPOINT_FILE}: Model checkpoint file
If you want to specify the result save directory in the command, you can edit an argument --savepath ${YOUR_WORK_DIR}.
- Confirm the
demo/f1score/sample_GT.csvfile. (If you test with your image, you have to write the csv file.)
python demo/f1score/f1_score.py --gt_file ${ANSWER_FILE} --pred_file ${YOUR_ANSWER_FILE}
- Small Size Backbone
| Model | Backbone | F1 Score | mAP | Pretrained models |
|---|---|---|---|---|
| YOLOv3 | Darknet-53 | 71.379 | 0.239 | Download |
| SSD | VGG16 | 75.573 | 0.307 | Download |
| RetinaNet | R-50-FPN | 77.161 | 0.353 | Download |
| YOLOF | R-50-FPN | 82.404 | 0.458 | Download |
| SABL | R-50-FPN | 79.805 | 0.475 | Download |
| FSAF | R-50-FPN | 80.212 | 0.479 | Download |
| ELTD | R-50-FPN | 82.849 | 0.518 | Download |
- Large Size Backbone
| Model | Backbone | F1 Score | mAP | Pretrained models |
|---|---|---|---|---|
| CornerNet | Hourglass104 | 84.724 | 0.575 | Download |
| CentripetalNet | Hourglass104 | 79.326 | 0.586 | Download |
| ELTD | R-101-FPN | 84.899 | 0.545 | Download |
| ELTD | X-101-64x4d-FPN | 85.594 | 0.596 | Download |
@article{kang2021,
author={BoSeon Kang, ChangSeong Jeong},
journal={},
title={Edgeless Layer for Recyclable Trash Detection},
year={2021},
pages={},
doi={}}
