目标
通过在Vision Board部署openMV实现垃圾分类。
一、基础设置
(一)配置摄像头
Vision Board自带摄像头,按照电路图使用瑞萨的FSP可以很方便的配置好。首先在stack中new一个Capture Engine Unit(r_ceu)。

然后如下配置:

同样配置好TF卡、RW007等设备,保存配置生成基础文件。
(二)配置openMV
直接在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 = "rubbish.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社区,大有可为。
审核编辑 黄宇
-
开发板
+关注
关注
25文章
6121浏览量
113139 -
模型
+关注
关注
1文章
3648浏览量
51692 -
RT-Thread
+关注
关注
32文章
1540浏览量
44250 -
openMV
+关注
关注
3文章
40浏览量
10582
发布评论请先 登录
【Vision Board创客营连载体验】RA8D1 Vision Board上的SPI实践
【Vision Board创客营连载体验】RA8D1 Vision Board初体验
【Vision Board创客营连载体验】RA8D1-Vision Board开箱使用
【Vision Board创客营连载体验】基于Vision Board的垃圾分类
【Vision Board创客营连载体验】基于RA8D1-Vision Board的自动路径规划小车
如何在openmv中实现图传功能?
vision board开发板用MDK烧录显示成功却找不到例程,为什么?
电脑连接不到openmv,是什么原因?
“你是什么垃圾?”垃圾分类机器人是否成为未来垃圾分类的福音?
OpenMV Cam上的RPC模块
机器视觉RT-Thread Vision Board主要特点
RA8D1 Vision Board上的SPI loopback测试
【Vision Board 创客营】Vision Board上的DAC实践

基于Vision Board上的openMV垃圾分类
评论