Edge AI People Counting on the Nuvoton M55M1 EVB
Deploy a real-time headcount system using a top-down camera and a model accelerated by the Ethos-U55 NPU. All inference runs locally on-device — no cloud or external storage.
- ≥95% headcount accuracy
- ≥15 FPS inference
- Zero-Cloud: all processing on-device, no data transmitted externally
Nuvoton-Team-2/
├── data/ # dataset structure, metadata, and data instructions
├── ml/ # training, local inference, and conversion scripts
└── deployment/ # export / Vela / board integration notes and scripts
- ML_YOLO Repo — training, export, and quantization pipeline
- ML_M55M1_SampleCode — sample M55M1 ML application reference
- M55M1 BSP — board support package for lower-level firmware integration
- NuEdgeWise
- bdanko/overhead-person-detection — overhead/top-down detection dataset used for initial training tests
python3.11 -m venv .venv
source .venv/bin/activatepip install --upgrade pip setuptools
pip install torch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1
pip install ultralytics opencv-python matplotlib pyyaml datasets pillow
pip install numpy==1.26.4 py-cpuinfo seabornmkdir -p repos
cd repos
git clone https://github.com/OpenNuvoton/ML_YOLO.git
git clone https://github.com/OpenNuvoton/ML_M55M1_SampleCode.git
cd ..python -c "from ultralytics import YOLO; YOLO('yolov8n.pt')"data/README.mdfor dataset format and labeling expectationsml/README.mdfor dataset conversion, training, and local inferencedeployment/README.mdfor export / deployment notes
- Local YOLOv8 ReLU6 training pipeline is working
- Initial training on overhead-person dataset at 192×192 completed successfully
- Local inference demo supports image/video testing with baseline vs custom checkpoints