例程讲解25-nn_stm32cubeai stm32_cubeai神经网络

# STM32 CUBE.AI on OpenMV MNIST Example
# See https://github.com/openmv/openmv/blob/master/src/stm32cubeai/README.MD

import sensor, image, time, nn_st

sensor.reset()                      # 复位并初始化传感器。

sensor.set_contrast(3)
sensor.set_brightness(0)
sensor.set_auto_gain(True)
sensor.set_auto_exposure(True)
sensor.set_pixformat(sensor.GRAYSCALE) # Set pixel format to Grayscale
#设置图像色彩格式,有RGB565色彩图和GRAYSCALE灰度图两种

sensor.set_framesize(sensor.QQQVGA)   # 将图像大小设置为80X60

sensor.skip_frames(time = 2000)     # 等待设置生效。
clock = time.clock()                # 创建一个时钟对象来跟踪FPS帧率。

# [CUBE.AI] 初始化网络
net = nn_st.loadnnst('network')

nn_input_sz = 28 # The NN input is 28x28

while(True):
    clock.tick()             # 更新FPS帧率时钟。
    img = sensor.snapshot()  # 拍一张照片并返回图像。

    # Crop in the middle (avoids vignetting)
    # 中间裁切(避免晕饰)
    img.crop((img.width()//2-nn_input_sz//2,
              img.height()//2-nn_input_sz//2,
              nn_input_sz,
              nn_input_sz))

    # 对图像进行二值化
    img.midpoint(2, bias=0.5, threshold=True, offset=5, invert=True)

    # [CUBE.AI] 运行推理
    out = net.predict(img)
    print('Network argmax output: {}'.format( out.index(max(out)) ))
    img.draw_string(0, 0, str(out.index(max(out))))
    print('FPS {}'.format(clock.fps())) # 注意: 当连接电脑后,OpenMV会变成一半的速度。

results matching ""

    No results matching ""