# Edge Impulse - OpenMV Image Classification Example
import sensor, image, time, os, tf
from pyb import UART
import json
sensor.reset() # Reset and initialize the sensor.
sensor.set_pixformat(sensor.RGB565) # Set pixel format to RGB565 (or GRAYSCALE)
sensor.set_framesize(sensor.QVGA) # Set frame size to QVGA (320x240)
sensor.set_windowing((240, 240)) # Set 240x240 window.
sensor.skip_frames(time=2000) # Let the camera adjust.
net = "trained.tflite"#调用神经网络模型
labels = [line.rstrip('\n') for line in open("labels.txt")]
color_threshold = [(0, 100, 19, 127, -9, 127)]#红色色块提取
uart = UART(3, 115200)#串口通信
def zfl(s, width):
return '{:0>{w}}'.format(s, w=width)
def find_max(blobs):
max_pixels=0
for blob in blobs:
if blob[4] > max_pixels:
max_blob=blob
max_pixels = blob[4]
return max_blob
clock = time.clock()
while(True):
clock.tick()
img = sensor.snapshot()
blobs = img.find_blobs(color_threshold,pixels_threshold=100, area_threshold=10)
#色块提取,确定roi区域
if blobs:
max_blob = find_max(blobs)
x = max_blob.x()
y = max_blob.y()
w = max_blob.w()
h = max_blob.h()
thresholds = (x,y,w,h)
#获取图像xy伸缩率,float形式
x_change = 240.0/w
y_change = 240.0/h
#中心位置转为4位字符串形式
X = zfl(str(max_blob.cx()),4)
Y = zfl(str(max_blob.cy()),4)
#图像roi区域复制,便于之后操作
img = img.crop(roi=thresholds,x_scale=x_change,y_scale=y_change,copy_to_fb=True)
#神经网络判别并输出,置信度70%
for obj in tf.classify(net, img, min_scale=1.0, scale_mul=0.8, x_overlap=0.5, y_overlap=0.5):
# print("----------" )
predictions_list = list(zip(labels, obj.output()))
for i in range(len(predictions_list)):
if (predictions_list[i][1] > 0.6):#相似度达到60%以上认为是
output_str = 'AB'+X+Y
print("%s"%(predictions_list[i][0]))
uart.write(output_str)
print(output_str)
print(clock.fps())
输出的fps只有3.5,我需要fps至少为20,怎么提高传输的速度呢?