例程讲解25-Machine-Learning->LetNet数字识别
视频教程35 - Lenet数字识别:https://singtown.com/learn/50543/
运行此例程前,请先在OpenMV IDE->工具->机器视觉->CNN网络库 中,将相应的神经网络文件保存到OpenMV的SD内存卡中哦。
神经网络是一个非常新的功能,目前还处于测试阶段。截至目前2018-08-15,OpenMV IDE中内置的lenet.network网络模型在OpenMV3 M7会超出内存,建议自己训练小一点的lenet模型在OpenMV3 M7使用。在OpenMV4 H7上,是可以正常使用的。(因为OpenMV4 H7性能更高)
# LetNet数字识别例程
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]*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.