Spiegazione della routine Routine di rete neurale 25-Machine-Learning->nn_cifar10
(Nota: questa routine verrà eliminata nella versione firmware 3.6.5 e successive e sostituita con TensorFlow Lite, che offre risultati migliori. Guarda il tutorial video 42 - Rilevamento target rete neurale: https://singtown.com/learn/50918/ )
Tutorial video 22 - Rete neurale cifar10: https://singtown.com/learn/50045/
Prima di eseguire questa routine, salvare il file della rete neurale corrispondente sulla scheda di memoria SD di OpenMV in OpenMV IDE->Strumenti->Machine Vision->Libreria di rete CNN.
# cifar10例程
import sensor, image, time, os, nn
sensor.reset() # 复位并初始化传感器。
sensor.set_contrast(3)
sensor.set_pixformat(sensor.RGB565) # 设置像素格式为RGB565
sensor.set_framesize(sensor.QVGA) # 将图像大小设置为QVGA (320x240)
sensor.set_windowing((128, 128)) # 设置128 x128窗口。
sensor.skip_frames(time=1000)
sensor.set_auto_gain(False)
sensor.set_auto_exposure(False)
# 加载cifar10网络。OpenMV3 M7上使用此网络可能会超出内存。
#net = nn.load('/cifar10.network')
# 更快,更小,更准确。建议OpenMV3 M7上使用此网络。
net = nn.load('/cifar10_fast.network')
labels = ['airplane', 'automobile', 'bird', 'cat', 'deer', 'dog', 'frog', 'horse', 'ship', 'truck']
clock = time.clock() # 创建一个时钟对象来跟踪FPS帧率。
while(True):
clock.tick() # 更新FPS帧率时钟。
img = sensor.snapshot() # 拍一张照片并返回图像。
out = net.forward(img)
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, color=(255, 0, 0))
print(clock.fps())
# 注意: 当连接电脑后,OpenMV会变成一半的速度。当不连接电脑,帧率会增加。
#打印当前的帧率。
Spiegazione ufficiale della funzione del documento cinese di Singtown Technology OpenMV: