在Edge Impuse上生成的神经网络模型只能全屏识别物品。怎么样可以像模板识别一样用小一点的矩形框选出识别到的物品
-
在Edge Impuse上生成的神经网络模型只能全屏识别物品。怎么样可以像模板识别一样用小一点的矩形框选出识别到的物品
这里附上生成的代码:# Edge Impulse - OpenMV Image Classification Exampleimport sensor, image, time, os, tf, uos, gc
flag=0
a=0
b=0
pre=0
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.
from pyb import UART
net = None
labels = None
uart = UART(3, 115200)
while(True):
#a=uart.read()
#if a==b'o' :
try:
# load the model, alloc the model file on the heap if we have at least 64K free after loading
net = tf.load("trained.tflite", load_to_fb=uos.stat('trained.tflite')[6] > (gc.mem_free() - (64*1024)))
except Exception as e:
print(e)
raise Exception('Failed to load "trained.tflite", did you copy the .tflite and labels.txt file onto the mass-storage device? (' + str(e) + ')')try: labels = [line.rstrip('\n') for line in open("labels.txt")] except Exception as e: raise Exception('Failed to load "labels.txt", did you copy the .tflite and labels.txt file onto the mass-storage device? (' + str(e) + ')') clock = time.clock() while(True): clock.tick() img = sensor.snapshot() # default settings just do one detection... change them to search the image... for obj in net.classify(img, min_scale=1.0, scale_mul=0.8, x_overlap=0.5, y_overlap=0.5) : print("**********\nPredictions at [x=%d,y=%d,w=%d,h=%d]" % obj.rect()) img.draw_rectangle(obj.rect()) #, roi=(10, 0, 60, 60)) # This combines the labels and confidence values into a list of tuples predictions_list = list(zip(labels, obj.output())) for i in range(len(predictions_list)): print("%s = %f" % (predictions_list[i][0], predictions_list[i][1])) if predictions_list[0][1]>0.85: flag=1 elif predictions_list[1][1]>0.85: flag=2 elif predictions_list[0][1]<0.85 and predictions_list[1][1]<0.85: flag=3 if pre!=flag: b=0 pre=flag if flag==1: if b<=2: uart.write("z1") b+=1 if flag==2: if b<=2: uart.write("z2") b+=1 if flag==3: if b<=2: uart.write("g") b+=1 print(clock.fps(), "fps")
求大佬解答
-
最近会发布edge impulse使用FOMO目标点检测的视频。