Text Books
Course Content
NOTE: Topics below are tentative (until we are past that week).
We will update it as we go through the lectures in each week.
Topic |
Slides |
|
Introduction |
intro.pdf |
|
Linux scheduling |
scheduling1.pdf, scheduling2.pdf |
|
Real Time Systems |
realtime1.pdf, realtime2.pdf, realtime3.pdf |
|
Hardware platforms, datasheets, IDE (STM32Cube), device drivers, hal/ll |
Cortex M4 reference manual,
Cortex M4 user manual,
STM32 Cube IDE,
Linux Device Driver,
STM32 HAL LL libraries
|
|
Machine Learning Model Compression for Inferences on Embedded Platforms |
(i) Quantization stm32cubeai.pdf, cnn-basics.pdf, quantization.pdf, (ii) Pruning slides, pruning_architecture_paper, pruning_energy_paper, pruning_gpu_issues |
|
Small Machine Learning Model Architectures for Embedded Platforms |
(i) 1x1 bottleneck layer inception-1x1-bottlenecklayer.pdf, Andrew NG video
(ii) depthwise separable convolutions mobilenet-depthwise-separable-convolution.pdf
(iii) Compact tree architecture with non-linearities like NN Bonsai_paper.pdf
|
|
Introduction to security through some demonstrations with Metasploit framework on Kali Linux |
(i) System security (virus example for reverse_tcp connection on Windows) and network security (nMap for port scanning, ssh and tomcat brute force attacks on Metasploitable) system_network_security.pdf
(ii) Mobile security mobile_security.pdf
|
|
Project Part 1
Project Part 1 Goal: Detect car horns on Sensortile M4 micro-controller at high accuracy and low latency (not missing audio)
Tutorials and resources:
Audio event detection on Sensortile Cortex M4
(a) Train a model including the class car_horn
model training
(b) Evaluate quantized model accuracy on laptop
model quantization and evaluation
(c) Evaluate deployed model latency on Sensortile M4
model deployment
This first part of the project will be marked on (i) working project demo, (ii) git repo with readme for training and deployment on Sensortile M4, (iii) extra credit: train more than one model and compare accuracy vs. latency. Deadline is Oct 8.
Project Part 2
Project Part 2 Goal: Learn how Machine Learning Core (MLC) works on STM sensors
Tutorials and resources:
MLC core on STM Sensors. The SensorTile.box has the LSM6DSOX inertial sensor module. This can sample sensors like 3-axis accelerometer and 3-axis gyroscope, process the sensor data with filters, extract features from time windows of data and use the features to run decision tree classifiers and detect events. All these are done in hardware, without involvement of the Cortex M4 CPU core. Interrupts are sent to the CPU core, based on the events detected.
Applications shows a list of applications that follow this pipeline on LSM6DSOX module.
Configurations shows a set of software tools like the ST Ble Sensor Android app, STM32Cube Programmer, Unicleo, Unico, Algobuilder, and their configurations and flows with different hardware platforms to train/test MLC. Some slide decks descrbing the tools and workflow are
workflow1, and
workflow2.
Todo:
Reproduce
Yoga pose estimation with Sensortilebox, STBLE app and Unico, as Unico works on Linux laptops. You can use Unicleo/AlgoBuilder if you have windows machine. You can collect and label you own training data for fun, or use the datalogs given. But you must load these logs in Unico, train the decision tree and deploy the UCF back on SensorTile.box to run.
Deadline is Nov 17 and demos for both parts will be taken after major exams. If you are done early, try to run both parts on the newer board together, and measure latencies.