| license: mit | |
| tags: | |
| - object-detection | |
| - yolov8 | |
| - tools | |
| - robotics | |
| - workshop | |
| datasets: | |
| - synthetic | |
| pipeline_tag: object-detection | |
| # Tool Detector | |
| YOLOv8m detection model for handheld workshop tools, trained on synthetic rendered data and fine-tuned on real annotated images. | |
| Intended to give a UR5 robot arm (5 kg payload, ~850 mm reach) tool identity and bounding-box location for pick-and-place tasks. | |
| ## Model Details | |
| | Property | Value | | |
| |---|---| | |
| | Architecture | YOLOv8m | | |
| | Input size | 640 × 640 | | |
| | Classes | 6 (current fine-tuned model) | | |
| | Base weights | COCO pretrained `yolov8m.pt` | | |
| | Fine-tuned on | Real annotated images (Label Studio export) | | |
| ## Classes | |
| | Index | Name | | |
| |---|---| | |
| | 0 | allen_key_set | | |
| | 1 | allen_key | | |
| | 2 | screw_driver | | |
| | 3 | hammer | | |
| | 4 | cutters | | |
| | 5 | pliers | | |
| ## Usage | |
| ```python | |
| from ultralytics import YOLO | |
| from huggingface_hub import hf_hub_download | |
| weights = hf_hub_download(repo_id="x-not/tool-detector", filename="best.pt") | |
| model = YOLO(weights) | |
| results = model("your_image.jpg", conf=0.3) | |
| results[0].show() | |
| ``` | |
| Or via the CLI: | |
| ```bash | |
| huggingface-cli download x-not/tool-detector best.pt --local-dir models/ | |
| yolo detect predict model=models/best.pt source=your_image.jpg conf=0.3 | |
| ``` | |
| ## Training | |
| Synthetic data generated with BlenderProc (Blender + Cycles): tools rendered as RGBA sprites at randomized pose/lighting, composited onto workshop background photos. | |
| Fine-tuned on real images annotated in Label Studio. | |
| Source code and full training pipeline: [github.com/NikolaasBender/Tool-Detector](https://github.com/NikolaasBender/Tool-Detector) | |