Skip to content

Linear classifiers (SVM and softmax) inside an Arduino device

Notifications You must be signed in to change notification settings

auralius/arduino-linear-classifier

Repository files navigation

arduino-linear-classifier

This is a demonstration for the linear classifiers (SVM and softmax) described in https://github.com/auralius/AEK3LBB3 or https://auralius.github.io/AEK3LBB3/intro.html.

The classifier is used to classify handwritten digits as explained in https://archive.ics.uci.edu/dataset/80/optical+recognition+of+handwritten+digits.

Description

There is also a demonstration by using the USPS dataset, which has higher resolution (16x16). The demo still works with Arduino UNO R3. In fact, this is where we meet the storage limit of our Aduino UNO R3.

Description

Devices used:

  • Tested on:

    • Arduino UNO R3

    • Arduino Mega2560

    • Arduino UNO R4 WiFi or UNO R4 Minima

  • 2.4" TFT-LCD with touch from MCUFRIEND_kbv (purchase link)

The obtained weight matrix Wfrom AEK3LBB3 is then plugged into the classifier program inside the Arduino device. The classifier program is mainly composed of

  • acquisition

  • discretization, position- and size-normalization

  • matrix multiplication (which is the prediction part of the classifier)

Note:

  • This implementation has been tested on Arduino Uno R3, R4, and Mega2560. However, special actions are needed for Arduino UNO R4. To make the LCD works with an Arduino Uno R4, instead of using the default MCUFRIEND_kbv library, use the alternative library from this link.

About

Linear classifiers (SVM and softmax) inside an Arduino device

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published