DataNinja
An end-to-end object detection workbench that covers dataset management, model training, and one-click deployment to embedded hardware.
Introduction
DataNinja is a full-stack machine learning workbench designed for object detection tasks. It provides a browser-based interface to manage datasets, configure and train detection models, evaluate results, and, most distinctively, push trained models to embedded hardware in a single workflow.
The motivation behind the project was to bridge the gap between the server side (where GPUs live and models are trained) and the edge side (where inference actually runs, often on low-power embedded SoCs or FPGAs). Most open-source ML tools at the time handled one or the other; DataNinja treats them as a single, connected pipeline.
Architecture
The system has two independent components that communicate over HTTP.
Web is the user-facing Flask application. It manages datasets, exposes an algorithm library, schedules training and testing jobs, and displays real-time resource usage (GPU utilization, memory, CPU load, and the number of running and pending tasks). When a user submits a training job, the web layer enqueues the task rather than blocking; an internal scheduler dispatches jobs to available GPU workers, keeping the interface responsive and making it easy to queue multiple runs.
Embedded Worker is a collection of Docker images, each targeting a specific hardware platform. A worker exposes a lightweight HTTP dispatcher: the main server sends a POST request with dataset path, training hyperparameters, and target platform; the worker runs the full training-and-conversion pipeline and streams logs back.
Algorithm Library
The server-side training backend is built on MMDetection, Alibaba’s open-source detection toolbox. The workbench ships with pre-integrated configurations for the following architectures:
| Architecture | Backbone |
|---|---|
| Faster R-CNN | ResNet-50 / ResNet-101 with FPN |
| RetinaNet | ResNet-50 / ResNet-101 with FPN |
| SSD | 300 × 300 / 512 × 512 |
| YOLOv3 | 320 / 416 / 608 input resolution |
Training is configurable via the UI: batch size, number of epochs, learning rate, optimizer (SGD or Adam), LR milestones, and weight decay are all exposed as form fields with validation before the job is submitted to the queue.
Embedded Deployment
One of the key features of DataNinja is the ability to deploy trained models to embedded hardware. After training on a GPU server, models can be pushed to edge devices with vendor-specific NPUs and FPGAs. Each target platform ships as a self-contained Docker image, so deployment requires no manual toolchain setup on the host.

The Disqus comment system is loading ...
If the message does not appear, please check your Disqus configuration.