RootDown: Deploying and Benchmarking Models for Beet-Root Detection on Edge Devices
Organizations: AIT Austrian Institute of Technology, Giefinggasse 4, 1210 Vienna, Austria Center for Vision, Automation & Control
Abstract
Quality inspection of sugar beets after harvest and storage is critical to preserve sugar content and ensure optimal processing efficiency. The transfer of harvested beets to field clamps or trucks provides an opportunity to visually inspect individual beets automatically on loader conveyors. However, this is a challenging task as the large number of beets causes partial overlap and occlusion, complicating both annotation and detection. In this work, we propose an end-to-end image-based pipeline for detecting partially occluded sugar beets in loading scenarios as a first step toward automated quality inspection. We introduce a dedicated benchmark and present an automatic annotation strategy that leverages the SAM 3 foundation model to generate bounding boxes. We compare models trained on manually annotated and automatically generated labels. Additionally, we investigate deployment considerations by benchmarking multiple inference configurations, including execution on an edge device, under realistic operational constraints regarding precision, inference time and power consumption. Our results show that, despite substantial occlusion and inherent annotation ambiguity, foundation-model-based labels can substitute for a substantial share of manual annotation, trading labeling effort for data volume at a modest accuracy cost. Furthermore, we demonstrate that a Raspberry Pi 5 equipped with a Hailo accelerator enables high-performance, low-power inference, making it a practical solution for mobile outdoor deployment.
Figures & tables
| Annotation | Ratio | Images | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Benchmark | Train | Val | Test | Train | Val | Test | Train | Val | Test | Total |
| Core - Manual | Man | Man | Man | 50 | 20 | 30 | 156 | 62 | 94 | 312 |
| Core - Auto | Auto | Auto | Man | 50 | 20 | 30 | 156 | 62 | 94 | 312 |
| Ext - Auto | Auto | Auto | Man | 55 | 24 | 21 | 250 | 110 | 94 | 454 |
| Full - Auto | Auto | Auto | Man | 59 | 26 | 16 | 350 | 153 | 94 | 597 |
| Platform | Type | Design | TOPS | TDP |
| Intel W-2125 | CPU | x86-64 | 1.2 | 120 |
| Raspberry Pi 5 | CPU | ARM64 | 0.6 | 7 |
| AMD 7430U | CPU | x86-64 | 1.5 | 15 |
| AMD 9950X3D | CPU | x86-64 | 20.0 | 170 |
| NVIDIA RTX 3090 | GPU | CUDA | 568.0 | 350 |
| Hailo-8 on RPi 5 | NPU | Custom | 26.0 | 6 |
| PyTorch | ONNX | OpenVINO | Hailo | |||||
|---|---|---|---|---|---|---|---|---|
| Platform | FP32 | FP32 | FP16 | FP32 | FP16 | INT8 | 8 | 8L |
| Raspberry Pi 5 | : | : | : | 56.0 | 56.0 | 23.3 | 58.7 | 56.2 |
| Intel W-2125 | : | : | : | 56.0 | 56.0 | 56.3 | x | x |
| AMD 7430U | 56.9 | 56.0 | 56.0 | 56.0 | 56.0 | 56.2 | x | x |
| AMD 9950X3D | : | : | : | 55.8 | 55.9 | 56.2 | x | x |
| NVIDIA RTX 3090 | : | : | : | x | x | x | x | x |
| Benchmark | ||
|---|---|---|
| Core-Auto | 42.7 | 49.5 |
| Ext-Auto | 48.0 | 49.7 |
| Full-Auto | 50.6 | 52.6 |
| Core-Manual | 56.9 | 55.3 |
| Platform | N | S | M | L | X |
| Raspberry Pi 5 | 287 | 610 | 1,563 | 1,961 | 3,704 |
| Intel W-2125 | 95 | 149 | 250 | 435 | 667 |
| AMD 7430U | 61 | 139 | 357 | 476 | 909 |
| AMD 9950X3D | 16 | 36 | 74 | 91 | 179 |
| NVIDIA RTX 3090 | 4 | 5 | 6 | 11 | 20 |
| Hailo-8L on RPi 5 | 13 | 26 | 44 | 70 | 116 |
Appendix figures & tables4 assets
Supplementary material from the paper’s appendix.
Appendix
| Parameter | State | Rec | Samples |
|---|---|---|---|
| Scenario | Front | 18 | 64 |
| Side | 2 | 10 | |
| Back | 35 | 130 | |
| Ground | 1 | 108 | |
| Lighting | Sunny | 21 | 78 |
| Mixed | 7 | 27 |
| Parameter | State | Score | Delta |
|---|---|---|---|
| Scenario | Front | 60.0 | -9.8 |
| Side | 69.9 | 0.0 | |
| Back | 68.6 | -1.2 | |
| Ground | 78.8 | 9.0 | |
| Lighting | Sunny | 68.3 | -1.5 |
| Mixed | 63.9 | -5.9 |
| PyTorch | ONNX | OpenVINO | Hailo | |||||
|---|---|---|---|---|---|---|---|---|
| Platform | FP32 | FP32 | FP16 | FP32 | FP16 | INT8 | 8 | 8L |
| Raspberry Pi 5 | : | : | 54.2 | : | 54.3 | 16.3 | 55.7 | 55.1 |
| Intel W-2125 | : | : | 54.3 | : | 54.3 | 55.1 | x | x |
| AMD 7430U | 55.3 | 54.3 | 54.3 | 54.3 | 54.3 | 55.2 | x | x |
| AMD 9950X3D | : | : | 54.3 | : | 54.1 | 55.4 | x | x |
| NVIDIA RTX 3090 | : | : | 54.3 | x | x | x | x | x |
| PyTorch | ONNX | OpenVINO | Hailo | |||||
|---|---|---|---|---|---|---|---|---|
| Platform | FP32 | FP32 | FP16 | FP32 | FP16 | INT8 | 8 | 8L |
| Raspberry Pi 5 | 1,961 | 1,299 | 1,299 | 568 | 529 | 1,136 | 47 | 70 |
| Intel W-2125 | 435 | 345 | 238 | 172 | 185 | 114 | x | x |
| AMD 7430U | 476 | 345 | 345 | 250 | 244 | 118 | x | x |
| AMD 9950X3D | 91 | 128 | 128 | 19 | 19 | 12 | x | x |
| NVIDIA RTX 3090 | 11 | 9 | 9 | x | x | x | x | x |
Object Detection
Object detection locates and classifies objects in images or video, balancing localization accuracy, robustness, and inference speed.
See all 624 papers