通过在Vision Board部署openMV实现垃圾分类。
Vision Board自带摄像头,按照威廉希尔官方网站
图使用瑞萨的FSP可以很方便的配置好。首先在stack中new一个Capture Engine Unit(r_ceu)
。
然后如下配置:
同样配置好TF卡、RW007等设备,保存配置生成基础文件。
直接在RT-Studio上设置好相关选项。
顺便把SDRAM等打开。保存工程,打开工程执行编译后下载到Vision Board开发板,检查下openMV是否正常运行。
看看micropython信息:
MicroPython v1.13-148-ged7ddd4 on 2020-11-03; RA8 with RT-Thread
Type "help()" for more information.
>>>
因为时间问题,来不及自己训练模型。于是在gayhub上找了几个星比较多的模型。
当然也可以自己收集相关图像使用edgeimpulse训练模型,相关[教程在此](Open MV Cam H7 Plus | Edge Impulse Documentation)。
本次直接将labels.txt 和 rubbish.tflite拷贝到Vision Board开发板的TF卡中,edgeimpulse生成的py脚本直接用上。
edgeimpulse生成的py脚本内容如下:
import sensor, image, time, os, tf
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")]
clock = time.clock()
while(True):
clock.tick()
img = sensor.snapshot()
# search the image...
for obj in tf.classify(net, 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())
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]))
通过openMV连接Vision Board开发板,运行上述py脚本。
找来一个水瓶和旧电池。
结果如下,这个水瓶形状不规则,所以……
Vision Board开发板在部署openMV的时候,240X240的图像FPS可以达到10左右,说明性能还是比较强大。
同时,因为瑞萨制程,运行案例时候,MCU发热量控制的相当不错,很是惊喜。
RT-Thread集成了openMV后,可以很方便的部署一些简单的图像识别和AI应用,背靠openMV社区,大有可为。
更多回帖