This repository provides the source code and resources associated with the paper DCNN-Based Screw Detection for Automated Disassembly Processes. The implementation uses Python 3, Keras and TensorFlow, integrating advanced deep learning models for screw detection in automated disassembly workflows. The detection pipeline leverages Hough Transform to identify screw candidates, followed by classification into screws or artifacts using an integrated model based on Xception and InceptionV3.
- Source code for the Screw Detector using Xception and InceptionV3.
- Pre-trained models and weights.
- Dataset for training and evaluation.
If this work is helpful in your research, please consider citing this repository. You can access the dataset here and the model weights here.
To cite this work, please use the following BibTeX entry:
@inproceedings{yildiz2019dcnn,
title={DCNN-Based Screw Detection for Automated Disassembly Processes},
author={Yildiz, Erenus and W{"o}rg{"o}tter, Florentin},
booktitle={2019 15th International Conference on Signal-Image Technology \& Internet-Based Systems (SITIS)},
pages={187--192},
year={2019},
organization={IEEE}
}
For standalone usage, such as result generation and evaluation:
- Clone this repository.
- Go to sd_venv folder and run
bash setup.py
which will install the dependencies. - Get back to the main project folder, and run
python setup.py
to download model and weights. - Update paths in the Python files as necessary to avoid path errors during execution.
The repository allows comparison of the integrated model against two baseline approaches:
- A combination of one TensorFlow model and one Keras model.
- A combination of two Keras models.
Follow these steps for evaluation:
-
Create a directory for storing detection results:
cd evaluate mkdir result_images
-
Run the two baseline models sequentially to generate detection results:
python3 evaluate_classifiers_2tf.py python3 evaluate_classifiers_2keras.py
These scripts produce the detection files
det_2tf.txt
anddet_2keras.txt
. -
Evaluate the baseline models against ground truth annotations, and generate precision-recall curves:
python3 evaluate_detection.py --det_path det_2tf.txt --gt_path gt_test.txt python3 evaluate_detection.py --det_path det_2keras.txt --gt_path gt_test.txt
-
Evaluate the integrated model:
python3 evaluate_classifiers_integrated.py
Sample results:
Maximum accuracy: 0.9897316219369895 TP: 990 TN: 3247 FP: 10 FN: 38 Accuracy: 0.9887981330221703
For questions or support, you can:
- Open an issue on the GitHub repository.