运行神经网络例程openmv自动关机,运行其他的例程正常
-
文件什么的都传到sd卡中了
# TensorFlow Lite Mobilenet V1 示例 # # 谷歌的Mobilenet V1检测1000类对象 # # 警告:Mobilenet在ImageNet上受过训练,并不意味着可以对现实世界中的任何事物进行分类。 # 在现实世界中。它只是为了在ImageNet数据集上取得高得分而设计的。 # 这个例子展示了在OpenMV摄像头上运行mobilenet。 # 然而,默认模型并不能真正用于任何事情。 # 您必须使用迁移学习通过重新训练模型将模型应用于目标问题。 # # 注意:这个例子只适用于OpenMV Cam H7 Plus(带有SDRAM),而且更好! # 要获取模型,请参见OpenMV IDE中 工具->机器视觉->CNN网络库。标签也在那里。 # 工具->机器视觉。标签也在那里。 # # 在此示例中,我们将探测器窗口滑到图像上方,并获取激活列表。 # 请注意,使用带有滑动窗口的CNN计算极为复杂,因此对于详尽搜索,不要期望CNN是实时的。 import sensor, image, time, os, tf sensor.reset() # 复位并初始化传感器。 sensor.set_pixformat(sensor.RGB565) # Set pixel format to RGB565 (or GRAYSCALE) #设置图像色彩格式,有RGB565色彩图和GRAYSCALE灰度图两种 sensor.set_framesize(sensor.QVGA) # 将图像大小设置为QVGA (320x240) sensor.set_windowing((240, 240)) # 设置240X240窗口。 sensor.skip_frames(time=2000) # 等待一段时间,让相机设置生效。 mobilenet_version = "1" # 1 mobilenet_width = "0.5" # 1.0, 0.75, 0.50, 0.25 mobilenet_resolution = "128" # 224, 192, 160, 128 mobilenet = "mobilenet_v%s_%s_%s_quant.tflite" % (mobilenet_version, mobilenet_width, mobilenet_resolution) labels = [line.rstrip('\n') for line in open("mobilenet_labels.txt")] clock = time.clock() while(True): clock.tick() img = sensor.snapshot() # net.classify()将在图像的roi上运行网络(如果没有指定roi,则在整个图像上运行) # 将为每个位置生成一个分类得分输出向量。 # 在每个比例下,检测窗口都以x_overlap(0-1)和y_overlap(0-1)为指导在ROI中移动。 # 如果将重叠设置为0.5,那么每个检测窗口将与前一个窗口重叠50%。 # 请注意,重叠越多,计算工作量就越大。 # 最后,对于在网络沿x/y方向滑动后的多尺度匹配,检测窗口将由scale_mul(0-1)缩小到min_scale(0-1)。 # 下降到min_scale(0-1)。例如,如果scale_mul为0.5,则检测窗口将缩小50%。 # 请注意,如果x_overlap和y_overlap较小,则在较小的比例下可以搜索更多区域... # 默认设置只是进行一次检测...更改它们以搜索图像... for obj in tf.classify(mobilenet, img, min_scale=1.0, scale_mul=0.5, x_overlap=0.0, y_overlap=0.0): print("**********\nTop 5 Detections at [x=%d,y=%d,w=%d,h=%d]" % obj.rect()) img.draw_rectangle(obj.rect()) # 这会将标签和置信度值组合到一个元组列表中 # 然后按置信度值对该列表进行排序。 sorted_list = sorted(zip(labels, obj.output()), key = lambda x: x[1], reverse = True) for i in range(5): print("%s = %f" % (sorted_list[i][0], sorted_list[i][1])) print(clock.fps(), "fps")
-
你的这个tflite模型不对,肯定不是22KB,应该是1333KB。
但是即使是对的,也有报错,OpenMV升级后这个模型就用不了了,因为把输入限制死成int8了。
解决办法:
https://singtown.com/learn/50872/
根据教程生成模型。