Edge drone detection project using Spresense board, Seeed Studio XIAO nRF52 chip, Adafruit ILI9341 TFT Screen, Spresense camera module and Android app.
| Folder | Content |
|---|---|
android_code |
Code for the DroneFinder Android application |
archive |
Archived test/unused code |
assets |
Various assets, mostly images for this README |
draw_convnet |
Python script to display ConvNets for the report |
nrf_arduino_code |
Arduino code for the XIAO Seeed Studio nRF52 chip |
python_code |
Python TensorFlow code for training and converting TF models to TFLM format |
spresense_code |
Arduino code for the Spresense mainboard |
spresense_take_dataset |
Spresense Arduino script used to gather drone classification dataset |
Open the Arduino IDE and set your main script folder to the root SRC folder of the project source code. The Arduino IDE will create a libraries folder where it will put all the libraries it is going to download.
Open the nRF52 code using the Arduino IDE and connect the nRF52 through USB. Download the XIAO nRF52 board package for programming the nRF52, and the Adafruit GFX library and Adafruit ILI9341 library to control the TFT screen. Compile and flash the program onto the nRF52 chip.
Open the Spresense code using the Arduino IDE. Download the board package from this GitHub repository (board package from the person detection project). Instructions how to manually install a board package can be found in this post. No additional library needed, as TFLM is already shaded in that board package. Compiel and flash the program onto the Spresense.
Open the Android app code using Android Studio and compile against Java 17, target Android SDK 33.
To run python_code/finetune_model.py you will need a Python virtual environment with TensorFlow 2.8.0, requirements are provided in python_code/requirements.tflmm.txt (TFLMM stands for TensorFlow Lite Model Maker). Install everything using pip install requirements.tflmm.txt. This code is for fine-tuning pre-trained image classifiers on the latest drone dataset.
To run python_code/train_classifier.py you will need a Python virtual environment with TensorFlow 2.8.0 (the previous one should work though). If it does not, create a new one and use pip install requirements.tfl.txt. This code is for designing from scratch and training image classifiers.
Only the last processed version of the drone dataset is provided in the folder python_code/dataset_v3_1-balanced.