github.com/martin-ez/Embedded-Custom-Object-Detection ↗
Training methodology of a Deep Convolutional Network to perform object detection on embedded and IoT devices.
Open this visualization on its own page →
Contributors
1
Lines of Code
70
From
2019-07-05
To
2019-09-04
About martin-ez/Embedded-Custom-Object-Detection
This project is a practical toolkit for deploying custom object detection models on embedded devices like the Raspberry Pi. It wraps TensorFlow's Object Detection API and provides four main utility scripts that handle the complete workflow: downloading pre-trained models, converting custom datasets to TensorFlow's training format, performing transfer learning on new classes, and running inference on images or webcam feeds.
The project was developed for monitoring an aquaponics system at the University of Los Andes, where it detects fish and plants to track their movement and growth over time. Transfer learning allows users to retrain existing COCO-trained models on custom object classes with relatively small datasets of 150-200 labeled images. The toolkit handles the resource-intensive training on desktop or laptop computers with GPU support, then exports the trained models for deployment on resource-constrained Raspberry Pi devices.
The workflow involves collecting and labeling images in PascalVOC format using the labelImg utility, converting them to TensorFlow record files, configuring training parameters via a JSON config file, and monitoring training loss over thousands of steps. Users can recover from interrupted training sessions by freezing checkpoints and resuming from that point. The project includes a test server for validating detection results and supports webcam-based continuous detection with configurable confidence thresholds and sampling rates.