From 53686b194320468f13f73151b485e64e5f373fd6 Mon Sep 17 00:00:00 2001 From: iabdalkader Date: Fri, 25 May 2018 23:17:44 +0200 Subject: [PATCH] NN: Add example scripts. --- .../25-Machine-Learning/nn_cifar10.py | 33 +++++++++++++++++++ .../examples/25-Machine-Learning/nn_lenet.py | 31 +++++++++++++++++ 2 files changed, 64 insertions(+) create mode 100644 scripts/examples/25-Machine-Learning/nn_cifar10.py create mode 100644 scripts/examples/25-Machine-Learning/nn_lenet.py diff --git a/scripts/examples/25-Machine-Learning/nn_cifar10.py b/scripts/examples/25-Machine-Learning/nn_cifar10.py new file mode 100644 index 000000000..5ca404af2 --- /dev/null +++ b/scripts/examples/25-Machine-Learning/nn_cifar10.py @@ -0,0 +1,33 @@ +# CIFAR10 Example +import sensor, image, time, os, nn + +sensor.reset() # Reset and initialize the sensor. +sensor.set_contrast(3) +sensor.set_pixformat(sensor.RGB565) # Set pixel format to RGB565 +sensor.set_framesize(sensor.QVGA) # Set frame size to QVGA (320x240) +sensor.set_windowing((128, 128)) # Set 128x128 window. +sensor.skip_frames(time=1000) +sensor.set_auto_gain(False) +sensor.set_auto_exposure(False) + +# Load cifar10 network +net = nn.load('/cifar10.network') +# Faster, smaller and less accurate. +#net = nn.load('/cifar10_fast.network') +labels = ['airplane', 'automobile', 'bird', 'cat', 'deer', 'dog', 'frog', 'horse', 'ship', 'truck'] + +clock = time.clock() # Create a clock object to track the FPS. +while(True): + clock.tick() # Update the FPS clock. + img = sensor.snapshot() # Take a picture and return the image. + out = net.forward(img) + max_idx = out.index(max(out)) + score = int(((out[max_idx]+128)/255)*100) + if (score < 70): + score_str = "??:??%" + else: + score_str = "%s:%d%% "%(labels[max_idx], score) + img.draw_string(0, 0, score_str, color=(255, 0, 0)) + + print(clock.fps()) # Note: OpenMV Cam runs about half as fast when connected + # to the IDE. The FPS should increase once disconnected. diff --git a/scripts/examples/25-Machine-Learning/nn_lenet.py b/scripts/examples/25-Machine-Learning/nn_lenet.py new file mode 100644 index 000000000..4dc0063e8 --- /dev/null +++ b/scripts/examples/25-Machine-Learning/nn_lenet.py @@ -0,0 +1,31 @@ +# LetNet Example +import sensor, image, time, os, nn + +sensor.reset() # Reset and initialize the sensor. +sensor.set_contrast(3) +sensor.set_pixformat(sensor.GRAYSCALE) # Set pixel format to RGB565 (or GRAYSCALE) +sensor.set_framesize(sensor.QVGA) # Set frame size to QVGA (320x240) +sensor.set_windowing((128, 128)) # Set 128x128 window. +sensor.skip_frames(time=100) +sensor.set_auto_gain(False) +sensor.set_auto_exposure(False) + +# Load lenet network +net = nn.load('/lenet.network') +labels = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'] + +clock = time.clock() # Create a clock object to track the FPS. +while(True): + clock.tick() # Update the FPS clock. + img = sensor.snapshot() # Take a picture and return the image. + out = net.forward(img.copy().binary([(150, 255)], invert=True)) + max_idx = out.index(max(out)) + score = int(((out[max_idx]+128)/255)*100) + if (score < 70): + score_str = "??:??%" + else: + score_str = "%s:%d%% "%(labels[max_idx], score) + img.draw_string(0, 0, score_str) + + print(clock.fps()) # Note: OpenMV Cam runs about half as fast when connected + # to the IDE. The FPS should increase once disconnected.